OpenAPI Specification
openapi: 3.0.3
info:
description: '<h2>Let''s build something great.</h2><p>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.</p><p>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, <a class=''text-blue-600'' href=''https://synctera.com/contact'' target=''_blank'' rel=''noreferrer''>contact us</a>.</p>
'
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
title: Synctera Accounts ACH 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 payments
name: ACH
paths:
/ach:
description: 'The ACH object represents your sent ACH.
'
summary: Sent ACH
get:
description: List sent ACH transactions
operationId: listTransactionsOut
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/page_token'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/outgoing_ach_list'
description: List of sent ACH transactions.
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'500':
$ref: '#/components/responses/internal_server_error'
summary: List sent ACH transactions
tags:
- ACH
x-external: true
post:
description: 'Send an ACH
'
operationId: addTransactionOut
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/outgoing_ach_request'
description: Send ACH request
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/outgoing_ach'
description: Sent ACH 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: Send an ACH
tags:
- ACH
x-external: true
/ach/{transaction_id}:
summary: Sent ACH detail
get:
description: Get a single sent ACH transaction
operationId: getTransactionOut
parameters:
- $ref: '#/components/parameters/transaction_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/outgoing_ach'
description: Sent ACH transaction representation.
'400':
$ref: '#/components/responses/bad_request'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/not_found'
'500':
$ref: '#/components/responses/internal_server_error'
summary: Get a sent ACH transaction
tags:
- ACH
x-external: true
patch:
description: Update a sent ACH transaction (either status or funds availability)
operationId: patchTransactionOut
parameters:
- $ref: '#/components/parameters/transaction_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/outgoing_ach_patch'
description: Update sent ach transaction
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/outgoing_ach'
description: Sent ACH transaction representation.
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/not_found'
'422':
$ref: '#/components/responses/unprocessable_entity'
'500':
$ref: '#/components/responses/internal_server_error'
summary: Update a sent ACH transaction
tags:
- ACH
x-external: true
components:
schemas:
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
ach_request_hold_data:
properties:
amount:
type: integer
duration:
example: 2
minimum: 0
type: integer
required:
- amount
- duration
type: object
outgoing_ach_list:
allOf:
- properties:
transactions:
description: Array of sent ACH transactions.
items:
$ref: '#/components/schemas/outgoing_ach'
type: array
required:
- transactions
type: object
- $ref: '#/components/schemas/paginated_response'
outgoing_ach_patch:
description: Update sent ach transaction
properties:
funds_availability_time:
example: 2022-03-18TT17:54:12Z
format: date-time
type: string
status:
enum:
- CANCELED
type: string
type: object
hold_data:
properties:
amount:
type: integer
availability_time:
example: 2022-03-18TT17:54:12Z
format: date-time
type: string
required:
- amount
- availability_time
type: object
risk_data:
properties:
client_ip:
description: Client IP
type: string
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
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
outgoing_ach:
description: Represents a sent ACH transaction.
properties:
account_name:
description: Receiving account name
example: Bruce Wayne
type: string
account_no:
description: Receiving account number
example: '122455799'
type: string
amount:
description: Transaction amount in cents
example: 1560
type: integer
bank_id:
example: 1
type: integer
effective_date:
description: Effective date of the transaction
example: '2022-03-25'
format: date
type: string
external_id:
description: Transaction ID in the ledger
example: 27f6473f-50fd-4dae-8c05-41b9bc3b4e3f
format: uuid
type: string
hold:
$ref: '#/components/schemas/hold_data'
id:
example: 2cbc0558-e2c5-4ffa-b30c-44a1389d6920
format: uuid
type: string
is_same_day:
description: Was initiated as same-day ACH transaction
type: boolean
memo:
type: string
partner_id:
example: 2
type: integer
reference_info:
description: Transaction reference info
type: string
source_account_name:
description: Originating account name
example: Thomas Anderson
type: string
source_account_no:
description: Originating account number
example: '123638791329'
type: string
status:
enum:
- INIT
- PENDING
- CANCELED
- COMPLETE
- DECLINED
type: string
trace_no:
description: Trace number of the transaction
example: '123456780000069'
type: string
required:
- id
- bank_id
- partner_id
- external_id
- account_no
- amount
- source_account_no
- is_same_day
- effective_date
- trace_no
- status
- memo
type: object
responses:
forbidden:
content:
application/problem+json:
schema:
$ref: '#/components/schemas/error'
description: Forbidden error
not_found:
content:
application/problem+json:
schema:
$ref: '#/components/schemas/error'
description: Resource not found
internal_server_error:
content:
application/problem+json:
schema:
$ref: '#/components/schemas/error'
description: Internal server error
bad_request:
content:
application/problem+json:
schema:
$ref: '#/components/schemas/error'
description: BadRequest
unprocessable_entity:
content:
application/problem+json:
schema:
$ref: '#/components/schemas/error'
description: Unprocessable entity request response
unauthorized:
content:
application/problem+json:
schema:
$ref: '#/components/schemas/error'
description: Unauthorized
parameters:
transaction_id:
description: Transaction ID in the ledger
in: path
name: transaction_id
required: true
schema:
example: 0cf88729-42fe-482d-904f-2f0508252858
format: uuid
type: string
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
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
securitySchemes:
bearerAuth:
bearerFormat: api_key
scheme: bearer
type: http
x-readme:
explorer-enabled: true
proxy-enabled: true
samples-enabled: true