openapi: 3.0.3 info: description: '

Let''s build something great.

Welcome to the official reference documentation for Synctera APIs. Our APIs are the best way to automate your company''s banking needs and are designed to be easy to understand and implement.

We''re continuously growing this library and what you see here is just the start, but if you need something specific or have a question, contact us.

' license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html title: Synctera Accounts PaymentSchedules API version: 0.20.0 servers: - description: Production url: https://api.synctera.com/v0 - description: Sandbox (no real world financial impact) url: https://api-sandbox.synctera.com/v0 security: - bearerAuth: [] tags: - name: PaymentSchedules paths: /payment_schedules: summary: PaymentSchedules get: description: Get paginated list of payment schedules operationId: listPaymentSchedules parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/id_query2' - $ref: '#/components/parameters/account_id_query1' - $ref: '#/components/parameters/customer_id_query1' responses: '200': content: application/json: schema: $ref: '#/components/schemas/payment_schedule_list' description: List of payment schedules '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '500': $ref: '#/components/responses/internal_server_error' summary: List payment schedules tags: - PaymentSchedules x-external: true post: description: Create a payment schedule operationId: createPaymentSchedule requestBody: content: application/json: schema: $ref: '#/components/schemas/payment_schedule' description: payment schedule to create required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/payment_schedule' description: Created payment schedule '400': $ref: '#/components/responses/bad_request' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '409': $ref: '#/components/responses/already_exists' '500': $ref: '#/components/responses/internal_server_error' summary: Create a payment schedule tags: - PaymentSchedules x-external: true /payment_schedules/{payment_schedule_id}: patch: description: Update a payment schedule operationId: patchPaymentSchedule parameters: - $ref: '#/components/parameters/schedule_id_path' requestBody: content: application/json: schema: $ref: '#/components/schemas/patch_payment_schedule' description: payment schedule to update required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/payment_schedule' description: Updated payment schedule '400': $ref: '#/components/responses/bad_request' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/not_found' '409': $ref: '#/components/responses/already_exists' '500': $ref: '#/components/responses/internal_server_error' summary: Update a payment schedule tags: - PaymentSchedules x-external: true /payment_schedules/payments: summary: PaymentSchedules get: description: Get paginated list of payments operationId: listPayments parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/id_query2' - $ref: '#/components/parameters/payment_schedule_id_query' - $ref: '#/components/parameters/account_id_query1' - $ref: '#/components/parameters/customer_id_query1' responses: '200': content: application/json: schema: $ref: '#/components/schemas/payment_list' description: List of payment schedules '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '500': $ref: '#/components/responses/internal_server_error' summary: List payments tags: - PaymentSchedules x-external: true components: schemas: ach_request_hold_data: properties: amount: type: integer duration: example: 2 minimum: 0 type: integer required: - amount - duration type: object internal_transfer: example: amount: 1025 currency: USD originating_account_id: 1cde7350-f511-4a07-b314-06bf48a96a43 receiving_account_id: 921e1160-6227-4069-bd24-becf90390289 type: ACCOUNT_TO_ACCOUNT properties: amount: description: The amount (in cents) to transfer from originating account to receiving account. format: int64 minimum: 1 type: integer currency: description: ISO 4217 alphabetic currency code of the transfer amount example: USD type: string memo: description: A short note to the recipient type: string metadata: description: Arbitrary key-value metadata to associate with the transaction type: object originating_account_alias: description: An alias representing a GL account to debit. This is alternative to specifying by account id example: ach_suspense type: string originating_account_customer_id: description: The customer id of the owner of the originating account. format: uuid type: string originating_account_id: description: The UUID of the account being debited format: uuid type: string receiving_account_alias: description: An alias representing a GL account to credit. This is an alternative to specifying by account id example: ach_suspense type: string receiving_account_customer_id: description: The customer id of the owner of the receiving account. Only required when type is "outgoing_remittance" format: uuid type: string receiving_account_id: description: The UUID of the account being credited format: uuid type: string type: description: The desired transaction type to use for this transfer enum: - ACCOUNT_TO_ACCOUNT - ACH_CREDIT_SWEEP - ACH_DEBIT_SWEEP - ACH_FLOAT_TRANSFER - CASHBACK - FEE - INCOMING_WIRE - INTEREST_PAYOUT - MANUAL_ADJUSTMENT - MANUAL_ADJUSTMENT_REVERSAL - OUTGOING_INTERNATIONAL_REMITTANCE - OUTGOING_INTERNATIONAL_REMITTANCE_REVERSAL - PROMOTIONAL_CREDIT - SIGN_UP_BONUS - SUBSCRIPTION_FEE - TRANSFER_FEE - TRANSFER_FEE_REVERSAL type: string required: - amount - currency - type type: object payment_schedule_status: description: 'Status of the payment schedule. ' enum: - ACTIVE - EXPIRED - CANCELLED readOnly: true type: string x-enumDescriptions: - ACTIVE: Payment schedule will run the next payment - EXPIRED: Payment schedule has completed all the payments - CANCELLED: Payment schedule has cancelled all the future payments payment_status: description: Payment request status enum: - COMPLETED - ERROR type: string risk_data: properties: client_ip: description: Client IP type: string type: object payment_schedule_list: allOf: - properties: payment_schedules: description: Array of payment schedules. items: $ref: '#/components/schemas/payment_schedule' type: array required: - payment_schedules type: object - $ref: '#/components/schemas/paginated_response' patch_payment_schedule: description: Patch request for payment schedule properties: status: description: Target payment schedule status enum: - CANCELLED type: string type: object payment_date: properties: execution_date: description: Execution date for the next payment format: date type: string scheduled_date: description: Scheduled date for the next payment format: date type: string readOnly: true required: - scheduled_date - execution_date type: object outgoing_ach_request: description: Send an ACH properties: amount: description: Amount to transfer in ISO 4217 minor currency units example: 607 type: integer company_entry_description: description: Company entry description ACH field. Originator inserts this field's value to provide the Receiver with a description of the entry's purpose. example: PAYROLL maxLength: 10 type: string currency: description: ISO 4217 alphabetic currency code of the transfer amount example: USD type: string customer_id: description: The customer's unique identifier example: 2071f55a-0aeb-4f62-85a9-68f72856d463 format: uuid type: string dc_sign: description: The type of transaction (debit or credit). A debit is a transfer in and a credit is a transfer out of the originating account enum: - debit - credit example: debit type: string effective_date: description: Effective date transaction proccesses (is_same_day needs to be false or not present at all) example: '2022-03-18' format: date type: string external_data: description: Additional transfer metadata structured as key-value pairs type: object final_customer_id: description: ID of the international customer that receives the final remittance transfer (required for OFAC enabled payments) format: uuid type: string hold: $ref: '#/components/schemas/ach_request_hold_data' id: example: 1f453c98-9c30-42b7-9835-cfc1e33f5e70 format: uuid readOnly: true type: string is_same_day: description: Send as same day ACH transaction (use only is_same_day without specific effective_date) type: boolean memo: description: Memo for the payment type: string originating_account_id: description: The unique identifier for an originating account example: 4394f57f-3396-4661-bd03-27684791611f format: uuid type: string receiving_account_id: description: The unique identifier for an receiving account example: 18b1f30b-227f-4720-9956-4c6805e5cdfa format: uuid type: string reference_info: description: Will be sent to the ACH network and maps to Addenda record 05 - the recipient bank will receive this info example: Tempore atque et cum. type: string risk: $ref: '#/components/schemas/risk_data' example: null required: - customer_id - amount - currency - receiving_account_id - dc_sign - originating_account_id title: Send ACH requests type: object payment_list: allOf: - properties: payments: description: Array of payments items: $ref: '#/components/schemas/payment' type: array required: - payments type: object - $ref: '#/components/schemas/paginated_response' internal_transfer_instruction: properties: request: $ref: '#/components/schemas/internal_transfer' type: enum: - INTERNAL_TRANSFER type: string required: - type - request type: object schedule_config: description: Payment schedule recurrence configuration properties: count: description: Number of times to recur. Exactly one of end_date or count must be provided format: int32 minimum: 1 type: integer end_date: description: End date of the schedule (exclusive). Exactly one of end_date or count must be provided format: date type: string frequency: enum: - DAILY - WEEKLY - MONTHLY type: string interval: description: Interval between recurrences, e.g. interval = 2 with frequency = WEEKLY means every other week. maximum: 366 minimum: 1 type: integer start_date: description: Start date of the schedule (inclusive) format: date type: string required: - start_date - frequency - interval type: object ach_instruction: properties: request: $ref: '#/components/schemas/outgoing_ach_request' type: enum: - ACH type: string required: - type - request type: object error: properties: detail: description: a human-readable string explaining this particular error example: 'missing required fields: first_name, dob' type: string status: description: the HTTP status code for this response example: 400 type: integer title: description: a human-readable string for this general category of error example: Bad Request Body type: string type: description: a URI that identifies this general category of error example: https://dev.synctera.com/errors/bad-request-body type: string title: Standard error response (RFC 7807 problem report) type: object paginated_response: properties: next_page_token: description: If returned, use the next_page_token to query for the next page of results. Not returned if there are no more rows. example: d61grelm5f type: string title: Paginated List response type: object payment_instruction: discriminator: mapping: ACH: '#/components/schemas/ach_instruction' INTERNAL_TRANSFER: '#/components/schemas/internal_transfer_instruction' propertyName: type oneOf: - $ref: '#/components/schemas/ach_instruction' - $ref: '#/components/schemas/internal_transfer_instruction' payment_error_details: description: Payment error details. It will be included only when status is ERROR properties: code: type: string details: type: string type: object payment: description: Executed payment properties: description: description: User provided description for the payment schedule type: string error_details: $ref: '#/components/schemas/payment_error_details' id: description: Payment ID format: uuid type: string metadata: description: User provided JSON format data for the payment schedule type: object payment_date: $ref: '#/components/schemas/payment_date' payment_instruction: $ref: '#/components/schemas/payment_instruction' payment_schedule_id: description: ID of the payment schedule that executed this payment format: uuid type: string status: $ref: '#/components/schemas/payment_status' transaction_id: description: Transaction ID. It will be included only when status is COMPLETED format: uuid type: string type: object payment_schedule: description: Payment schedule properties: description: description: User provided description for the payment schedule type: string id: description: Payment schedule ID format: uuid readOnly: true type: string metadata: description: User provided JSON format data type: object next_payment_date: $ref: '#/components/schemas/payment_date' payment_instruction: $ref: '#/components/schemas/payment_instruction' schedule: $ref: '#/components/schemas/schedule_config' status: $ref: '#/components/schemas/payment_schedule_status' required: - description - schedule - payment_instruction type: object id_list_query_schema: example: 64438afd-fa20-4010-a573-2bbdca77cdb6,84ef251c-ab8f-47a5-bbfd-a16648f95157 items: format: uuid type: string type: array responses: internal_server_error: content: application/problem+json: schema: $ref: '#/components/schemas/error' description: Internal server error already_exists: content: application/problem+json: schema: $ref: '#/components/schemas/error' description: Resource already exists error not_found: content: application/problem+json: schema: $ref: '#/components/schemas/error' description: Resource not found bad_request: content: application/problem+json: schema: $ref: '#/components/schemas/error' description: BadRequest forbidden: content: application/problem+json: schema: $ref: '#/components/schemas/error' description: Forbidden error unauthorized: content: application/problem+json: schema: $ref: '#/components/schemas/error' description: Unauthorized parameters: account_id_query1: description: Originating account IDs. Multiple IDs can be provided as a comma-separated list. explode: false in: query name: account_id required: false schema: $ref: '#/components/schemas/id_list_query_schema' style: form x-external: true customer_id_query1: description: The IDs of customers who created the payment schedules. Multiple IDs can be provided as a comma-separated list. explode: false in: query name: customer_id required: false schema: $ref: '#/components/schemas/id_list_query_schema' style: form x-external: true page_token: in: query name: page_token required: false schema: description: Optional pagination token to be provided to retrieve subsequent pages, returned from previous get example: h50ffqz9q5 type: string x-external: true payment_schedule_id_query: description: Payment schedule IDs. Multiple IDs can be provided as a comma-separated list. explode: false in: query name: schedule_id required: false schema: $ref: '#/components/schemas/id_list_query_schema' style: form x-external: true id_query2: description: IDs. Multiple IDs can be provided as a comma-separated list. explode: false in: query name: id required: false schema: $ref: '#/components/schemas/id_list_query_schema' style: form x-external: true limit: in: query name: limit required: false schema: default: 100 description: 'Maximum number of objects to return per page. If the limit is greater than 100, then it will be set to 100. ' example: 100 minimum: 1 type: integer x-external: true schedule_id_path: description: Payment schedule ID in: path name: payment_schedule_id required: true schema: format: uuid type: string securitySchemes: bearerAuth: bearerFormat: api_key scheme: bearer type: http x-readme: explorer-enabled: true proxy-enabled: true samples-enabled: true