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 Transactions 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: - description: Create and manage transactions name: Transactions paths: /transactions/internal_transfer: description: An internal transfer is an immediate payment between two accounts within the same Fintech. summary: Initiate an internal account-to-account transfer post: description: Create an internal transfer operationId: createInternalTransfer parameters: - $ref: '#/components/parameters/idempotency_key' requestBody: content: application/json: schema: $ref: '#/components/schemas/internal_transfer' description: Transfer request body required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/internal_transfer_response' description: Transaction Response '400': $ref: '#/components/responses/bad_request' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '422': $ref: '#/components/responses/unprocessable_entity' '500': $ref: '#/components/responses/internal_server_error' summary: Create an internal transfer tags: - Transactions x-external: true /transactions/pending: description: 'Pending transactions represent a "hold" of a paricular amount on an account balance. ' summary: List pending transactions get: description: 'Get paginated list of pending transactions matching the provided filters ' operationId: listPendingTransactions parameters: - $ref: '#/components/parameters/account_no' - $ref: '#/components/parameters/account_id2' - $ref: '#/components/parameters/from_date' - $ref: '#/components/parameters/to_date' - $ref: '#/components/parameters/status4' - $ref: '#/components/parameters/transaction_id1' - $ref: '#/components/parameters/type' - $ref: '#/components/parameters/subtype' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/page_token' responses: '200': content: application/json: schema: $ref: '#/components/schemas/pending_transactions' description: Paginated list of pending transactions '400': $ref: '#/components/responses/bad_request' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '422': $ref: '#/components/responses/unprocessable_entity' '500': $ref: '#/components/responses/internal_server_error' summary: List pending transactions tags: - Transactions x-external: true /transactions/pending/{id}: description: 'A pending transaction represent a "hold" of a paricular amount on an account balance. ' summary: Get pending transaction get: description: 'Get a pending transaction by its uuid ' operationId: getPendingTransactionByID parameters: - $ref: '#/components/parameters/id1' responses: '200': content: application/json: schema: $ref: '#/components/schemas/pending_transaction' description: Pending Transaction '400': $ref: '#/components/responses/bad_request' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '422': $ref: '#/components/responses/unprocessable_entity' '500': $ref: '#/components/responses/internal_server_error' summary: Get a pending transaction tags: - Transactions x-external: true /transactions/posted: description: 'Posted transactions represent a completed money movement. ' summary: List posted transactions get: description: 'Get paginated list of posted transactions matching the provided filters ' operationId: listPostedTransactions parameters: - $ref: '#/components/parameters/account_no' - $ref: '#/components/parameters/account_id2' - $ref: '#/components/parameters/from_date' - $ref: '#/components/parameters/to_date' - $ref: '#/components/parameters/type' - $ref: '#/components/parameters/subtype' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/page_token' responses: '200': content: application/json: schema: $ref: '#/components/schemas/posted_transactions' description: Paginated list of posted transactions '400': $ref: '#/components/responses/bad_request' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '422': $ref: '#/components/responses/unprocessable_entity' '500': $ref: '#/components/responses/internal_server_error' summary: List posted transactions tags: - Transactions x-external: true /transactions/posted/{id}: description: 'A posted transaction represents a completed money movement. ' summary: Get posted transaction get: description: 'Get a posted transaction by its uuid ' operationId: getPostedTransactionByID parameters: - $ref: '#/components/parameters/id1' responses: '200': content: application/json: schema: $ref: '#/components/schemas/posted_transaction' description: Posted Transaction '400': $ref: '#/components/responses/bad_request' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '422': $ref: '#/components/responses/unprocessable_entity' '500': $ref: '#/components/responses/internal_server_error' summary: Get a posted transaction tags: - Transactions x-external: true components: schemas: risk_info: description: Information received by the transaction risk/fraud service related to this transaction nullable: true 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 internal_transfer_response: allOf: - $ref: '#/components/schemas/internal_transfer' - properties: id: description: The transaction id associated with the transfer format: uuid type: string required: - id type: object pending_transaction: properties: account_id: description: The account id associated with the hold example: 81f8799f-8888-496f-ad70-1f9ce6cf763b type: string account_no: description: The account number associated with the hold type: string created: description: The creation date of the hold format: date-time type: string data: $ref: '#/components/schemas/pending_transaction_data' id: format: int64 type: integer idemkey: description: The idempotency key used when initially creating this hold. type: string offset_account_id: description: The offset account id associated with the hold example: 8ade5876-e302-4cdc-b478-0c789e04e58f type: string offset_account_no: description: The offset account number associated with the hold type: string reference_id: description: An external ID provided by the payment network to represent this transaction. nullable: true type: string tenant: description: The tenant associated with this hold, in the form "_" type: string updated: description: The date the hold was last update format: date-time type: string uuid: description: The unique identifier of the hold transaction. format: uuid type: string required: - id - uuid - tenant - idemkey - account_no - account_id - created - updated - data - reference_id - offset_account_no - offset_account_id title: A pending transaction type: object transaction_line1: properties: account_id: description: The account uuid associated with this transaction line example: 7f346df6-18b9-4b2f-9857-5f714ddd565e type: string account_no: description: The account number associated with this transaction line type: string amount: description: The amount (in cents) of the transaction format: int64 type: integer available_balance: description: The account "available balance" at the point in time this transaction was posted format: int64 type: integer balance: description: The account balance at the point in time this transaction was posted format: int64 type: integer created: description: The creation date of the transaction format: date-time type: string currency: description: ISO 4217 alphabetic currency code of the transfer amount type: string dc_sign: $ref: '#/components/schemas/dc_sign' is_fee: description: Whether or not this line is considered a fee type: boolean is_gl_acc: description: Whether or not this line represents a GL account type: boolean is_offset: description: Whether or not this line is considered the "offset" line type: boolean is_primary: description: Whether or not this line is considered the "primary" line type: boolean meta: nullable: true type: object network: description: The network this transaction is associated with type: string related_line: format: int64 type: integer seq: format: int64 type: integer tenant: description: The tenant associated with this transaction, in the form "_" type: string updated: description: The date the transaction was last updated format: date-time type: string uuid: format: uuid type: string required: - uuid - account_no - account_id - tenant - amount - dc_sign - seq - is_primary - is_offset - is_fee - is_gl_acc - related_line - currency - network - meta - balance - available_balance - created - updated type: object pending_transaction_history: properties: account_id: description: The account id associated with the hold example: 88564692-a977-4932-9b8d-6e2742d4b1a4 type: string account_no: description: The account number associated with the hold type: string created: description: The creation date of the hold format: date-time type: string data: $ref: '#/components/schemas/pending_transaction_history_data' id: format: int64 type: integer idemkey: description: The idempotency key used when initially creating this transaction. type: string offset_account_id: description: The offset account id associated with the hold example: f7a653cc-328e-49a8-83cc-1c1735ef5161 type: string offset_account_no: description: The offset account number associated with the hold type: string reference_id: description: An external ID provided by the payment network to represent this transaction. nullable: true type: string tenant: description: The tenant associated with this transaction, in the form "_" type: string updated: description: The date the hold was last update format: date-time type: string uuid: description: The unique identifier of the hold transaction. format: uuid type: string required: - id - uuid - tenant - idemkey - account_no - account_id - created - updated - data - reference_id - offset_account_no - offset_account_id title: A pending transaction history type: object pending_transaction_history_data: properties: amount: description: The amount of the hold. format: int64 minimum: 0 type: integer auto_post_at: description: The time the transaction will be automatically posted. format: date-time type: string avail_balance: description: The account "available balance" at the time this hold was created (to be deprecated) format: int64 type: integer available_balance: description: The account "available balance" at the time this hold was created format: int64 type: integer balance: description: The account balance at the time this hold was created format: int64 type: integer currency: description: ISO 4217 alphabetic currency code of the transfer amount type: string dc_sign: $ref: '#/components/schemas/dc_sign' effective_date: description: The effective date of the transaction once it gets posted format: date-time type: string expires_at: description: The date that at which this hold is no longer valid. format: date-time type: string external_data: $ref: '#/components/schemas/external_data' force_post: description: Whether or not the hold was forced (spending controls ignored) type: boolean idemkey: description: The idempotency key used when initially creating this hold. type: string memo: description: A short note to the recipient type: string network: description: The network this transaction is associated with type: string operation: enum: - hold_new - hold_increase - hold_decrease - hold_replace - hold_decline - hold_cancel - hold_post type: string reason: description: If a hold has been declined or modified, this will include the reason. type: string req_amount: description: The requested amount, in the case of hold modifications. format: int64 minimum: 0 type: integer risk_info: $ref: '#/components/schemas/risk_info' status: description: The status of the hold. enum: - PENDING - REPLACED - DECLINED - RELEASED - PARTCLEARD - EXPIRED - CLEARED - INTERNAL_ERROR type: string subtype: description: The specific transaction type. For example, for `ach`, this may be "outgoing_debit". type: string total_amount: description: The total amount of the hold. This may be different than `amount` in the case where a hold increase or decrease was requested. format: int64 minimum: 0 type: integer transaction_id: description: The uuid of the transaction that this pending transaction originated from, if any. This is primary used when a transaction "posts", but a subset of the amount reserved until a future settlement date. format: uuid type: string transaction_time: description: The time the transaction occurred. format: date-time type: string type: description: The general type of transaction. For example, "card" or "ach". type: string user_data: $ref: '#/components/schemas/user_data' was_partial: description: Does this hold represent a partial debit (or credit)? type: boolean required: - memo - type - subtype - operation - idemkey - expires_at - effective_date - total_amount - amount - req_amount - dc_sign - currency - network - was_partial - force_post - status - reason - balance - avail_balance - available_balance - transaction_time - risk_info - user_data - external_data - auto_post_at title: A pending transaction history data type: object posted_transactions: 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. nullable: true type: string result: description: List of posted transactions items: $ref: '#/components/schemas/posted_transaction' type: array required: - next_page_token - result title: Posted Transactions Response type: object posted_transaction_data: properties: external_data: $ref: '#/components/schemas/external_data' force_post: description: Whether or not the hold was forced (spending controls ignored) type: boolean hold_id: description: The uuid of the hold (pending transaction) that this transaction originated from, if any. format: uuid type: string lines: description: The set of accounting entries associated with this transaction. For example, a debit to a customer account will have a corresponding credit in a general ledger account. items: $ref: '#/components/schemas/transaction_line1' type: array memo: description: A short note to the recipient type: string metadata: nullable: true type: object original_trx: description: The "original" transaction that this transaction is related to. This is only populated in the case of reversed transactions. format: uuid type: string risk_info: $ref: '#/components/schemas/risk_info' user_data: description: An unstructured JSON blob representing additional transaction information specific to each payment rail. nullable: true type: object required: - memo - user_data - external_data - risk_info - metadata - lines - force_post type: object pending_transactions: 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. nullable: true type: string result: description: List of pending transactions items: $ref: '#/components/schemas/pending_transaction' type: array required: - next_page_token - result title: Pending Transactions Response type: object posted_transaction: properties: created: description: The creation date of the transaction format: date-time type: string data: $ref: '#/components/schemas/posted_transaction_data' effective_date: description: The "effective date" of a transaction. This may be earlier than posted_date in some cases (for example, a transaction that occurs on a Saturday may not be posted until the following Monday, but would have an effective date of Saturday) format: date-time type: string id: format: int64 type: integer idemkey: description: The idempotency key used when initially creating this transaction. example: 80e9e648-c016-421a-bab5-7f311c5a9fdd type: string info_only: description: Whether or not this transaction represents a purely informational operation or an actual money movement type: boolean lead_mode: description: Whether or not this transaction was created operating in "lead ledger" mode type: boolean posted_date: description: The date the transaction was posted. This is the date any money is considered to be added or removed from an account. format: date-time type: string reference_id: description: An external ID provided by the payment network to represent this transaction. This will always be null for internal transfers. nullable: true type: string status: type: string subtype: description: The specific transaction type. For example, for `ach`, this may be "outgoing_debit". type: string tenant: description: The tenant associated with this transaction, in the form "_" type: string transaction_time: description: The time the transaction occurred. format: date-time type: string type: description: The general type of transaction. For example, "card" or "ach". type: string updated: description: The date the transaction was last updated format: date-time type: string uuid: description: The unique identifier of the transaction. format: uuid type: string required: - id - uuid - tenant - idemkey - type - subtype - status - info_only - lead_mode - data - posted_date - effective_date - transaction_time - created - updated - reference_id title: A posted transaction 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 user_data: description: An unstructured JSON blob representing additional transaction information specific to each payment rail. nullable: true type: object pending_transaction_data: properties: amount: description: The amount of the hold. format: int64 minimum: 0 type: integer auto_post_at: description: The account "available balance" at the time this hold was created format: date-time type: string avail_balance: description: The account "available balance" at the time this hold was created (to be deprecated) format: int64 type: integer available_balance: description: The account "available balance" at the time this hold was created format: int64 type: integer balance: description: The account balance at the time this hold was created format: int64 type: integer currency: description: ISO 4217 alphabetic currency code of the transfer amount type: string dc_sign: $ref: '#/components/schemas/dc_sign' effective_date: description: The effective date of the transaction once it gets posted format: date-time type: string expires_at: description: The date that at which this hold is no longer valid. format: date-time type: string external_data: $ref: '#/components/schemas/external_data' force_post: description: Whether or not the hold was forced (spending controls ignored) type: boolean history: description: An array representing any previous states of the hold, if it has been modified (For example, increasing or decreasing the hold amount). items: $ref: '#/components/schemas/pending_transaction_history' type: array idemkey: description: The idempotency key used when initially creating this hold. type: string memo: description: A short note to the recipient type: string network: description: The network this transaction is associated with type: string operation: enum: - hold_new - hold_increase - hold_decrease - hold_replace - hold_decline - hold_cancel - hold_post type: string reason: description: If a hold has been declined or modified, this will include the reason. type: string req_amount: description: The requested amount, in the case of hold modifications. format: int64 minimum: 0 type: integer risk_info: $ref: '#/components/schemas/risk_info' status: description: The status of the hold. enum: - PENDING - REPLACED - DECLINED - RELEASED - PARTCLEARD - EXPIRED - CLEARED - INTERNAL_ERROR type: string subtype: description: The specific transaction type. For example, for `ach`, this may be "outgoing_debit". type: string total_amount: description: The total amount of the hold. This may be different than `amount` in the case where a hold increase or decrease was requested. format: int64 minimum: 0 type: integer transaction_id: description: The uuid of the transaction that this pending transaction originated from, if any. This is primary used when a transaction "posts", but a subset of the amount reserved until a future settlement date. format: uuid type: string transaction_time: description: The time that the transaction was created format: date-time type: string type: description: The general type of transaction. For example, "card" or "ach". type: string user_data: $ref: '#/components/schemas/user_data' was_partial: description: Does this hold represent a partial debit (or credit)? type: boolean required: - memo - type - subtype - operation - idemkey - expires_at - effective_date - total_amount - amount - req_amount - dc_sign - currency - network - was_partial - force_post - status - reason - balance - avail_balance - available_balance - auto_post_at - risk_info - user_data - external_data - history - transaction_time title: Pending transaction data type: object external_data: description: an unstructured json blob representing additional transaction information supplied by the integrator. nullable: true type: object dc_sign: description: The `dc_sign` represents the direction money was moved. enum: - debit - credit type: string parameters: type: description: Only display transactions matching the given type in: query name: type required: false schema: type: string x-external: true subtype: description: Only display transactions matching the given subtype in: query name: subtype required: false schema: type: string x-external: true id1: description: Transaction ID in: path name: id required: true schema: example: 69c8bfb7-a0ab-4b55-9f2b-6d8065d71220 format: uuid type: string account_id2: description: Account ID in: query name: account_id required: false schema: example: d6201244-02d1-493e-87f6-a3391527abfc format: uuid type: string x-external: true account_no: description: Account number in: query name: account_no required: false schema: type: string 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 to_date: description: Only display transactions with a posting date less than or equal to to_date in: query name: to_date required: false schema: format: date type: string x-external: true transaction_id1: description: Only display holds linked to the provided transaction id in: query name: transaction_id required: false schema: example: cc89a467-e868-4281-b015-d95830a312eb format: uuid type: string x-external: true status4: description: The status of the transaction in: query name: status required: false schema: default: PENDING type: string 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 from_date: description: Only display transactions with a posting date greater than from_date in: query name: from_date required: false schema: format: date type: string x-external: true idempotency_key: description: An idempotency key is an arbitrary unique value generated by client to detect subsequent retries of the same request. It is recommended that a UUID or a similar random identifier be used as an idempotency key in: header name: Idempotency-Key required: false schema: example: df122e6f-2ba8-48a5-9508-4350bba5f27e type: string x-external: true responses: 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 unprocessable_entity: content: application/problem+json: schema: $ref: '#/components/schemas/error' description: Unprocessable entity request response internal_server_error: content: application/problem+json: schema: $ref: '#/components/schemas/error' description: Internal server error unauthorized: content: application/problem+json: schema: $ref: '#/components/schemas/error' description: Unauthorized securitySchemes: bearerAuth: bearerFormat: api_key scheme: bearer type: http x-readme: explorer-enabled: true proxy-enabled: true samples-enabled: true