Synctera Internal Accounts API

The internal account resource is used for managing links to internal accounts where the funds are managed by integrators.

OpenAPI Specification

synctera-internal-accounts-api-openapi.yml Raw ↑
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 Internal Accounts 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: 'The internal account resource is used for managing links to internal

    accounts where the funds are managed by integrators.

    '
  name: Internal Accounts
paths:
  /internal_accounts:
    description: 'The internal account resource is used for managing links to internal accounts where the funds are managed by integrators.

      '
    summary: Internal Accounts
    get:
      description: 'Returns a list of all internal accounts.

        '
      operationId: listInternalAccounts
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/page_token'
      - $ref: '#/components/parameters/internal_account_id_query'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internal_accounts_list'
          description: List of internal accounts
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: List internal accounts
      tags:
      - Internal Accounts
      x-external: true
    post:
      description: 'Add an internal account

        '
      operationId: addInternalAccounts
      parameters:
      - $ref: '#/components/parameters/idempotency_key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/internal_account'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internal_account'
          description: The internal account added.
        '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: Add internal accounts
      tags:
      - Internal Accounts
      x-external: true
  /internal_accounts/{internal_account_id}:
    summary: Internal Accounts
    patch:
      description: 'Patch internal account.

        '
      operationId: patchInternalAccount
      parameters:
      - $ref: '#/components/parameters/internal_account_id_path'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/internal_account_patch'
        description: Internal Account fields to be patched
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internal_account'
          description: Updated internal account
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found'
        '461':
          $ref: '#/components/responses/account_closed'
      summary: Patch internal account
      tags:
      - Internal Accounts
      x-external: true
components:
  schemas:
    balance_type:
      description: 'For `SAVING` and `CHECKING` accounts:

        * `ACCOUNT_BALANCE`: the amount of money in the account. Equal to the sum of credits minus debits for all posted transactions.

        * `AVAILABLE_BALANCE`: the account balance minus any pending debits.


        For `LINE_OF_CREDIT` accounts:

        * `ACCOUNT_BALANCE`: the amount of credit currently in use. Equal to the sum of debits minus credits for all posted transactions.

        * `AVAILABLE_BALANCE`: the amount of credit available. Equal to the credit limit minus `account_balance` minus any pending debits.

        '
      enum:
      - ACCOUNT_BALANCE
      - AVAILABLE_BALANCE
      type: string
    balance:
      properties:
        balance:
          description: balance in ISO 4217 minor currency units. Unit in cents.
          example: 43
          format: int64
          readOnly: true
          type: integer
        type:
          $ref: '#/components/schemas/balance_type'
      required:
      - type
      - balance
      type: object
    internal_accounts_list:
      allOf:
      - properties:
          internal_accounts:
            description: Array of internal accounts
            items:
              $ref: '#/components/schemas/internal_account'
            type: array
        required:
        - internal_accounts
        type: object
      - $ref: '#/components/schemas/paginated_response'
    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
    account_id_query_schema:
      example: 64438afd-fa20-4010-a573-2bbdca77cdb6,84ef251c-ab8f-47a5-bbfd-a16648f95157
      items:
        format: uuid
        type: string
      type: array
    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
    internal_account_patch:
      properties:
        description:
          description: A user provided description for the current account
          type: string
      type: object
    internal_account:
      properties:
        account_number:
          description: Generated internal account number
          maxLength: 17
          minLength: 14
          readOnly: true
          type: string
        balances:
          description: A list of balances for internal account based on different type
          items:
            $ref: '#/components/schemas/balance'
          readOnly: true
          type: array
        bank_routing:
          description: Bank routing number
          maxLength: 9
          readOnly: true
          type: string
        creation_time:
          description: The date and time the resource was created.
          example: '2021-06-14T11:23:41Z'
          format: date-time
          readOnly: true
          type: string
        currency:
          description: Account currency or account settlement currency. ISO 4217 alphabetic currency code.
          example: VEF
          pattern: ^[A-Z]{3}$
          type: string
        description:
          description: A user provided description for the current account
          type: string
        gl_type:
          description: Whether the account will represent assets or liabilities
          enum:
          - ASSET
          - LIABILITY
          type: string
        id:
          description: Generated ID for internal account
          format: uuid
          readOnly: true
          type: string
        is_system_acc:
          default: false
          description: Is a system-controlled internal account
          type: boolean
        last_updated_time:
          description: The date and time the resource was last updated.
          example: '2022-01-18T17:54:12Z'
          format: date-time
          readOnly: true
          type: string
        status:
          enum:
          - ACTIVE
          type: string
      required:
      - status
      - currency
      type: object
  responses:
    already_exists:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error'
      description: Resource already exists error
    account_closed:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error'
      description: Account has been closed
    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
    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
  parameters:
    internal_account_id_query:
      description: 'Internal account ID(s). Multiple IDs can be provided as a comma-separated list.

        '
      explode: false
      in: query
      name: id
      required: false
      schema:
        $ref: '#/components/schemas/account_id_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
    internal_account_id_path:
      description: Unique identifier for the internal account.
      in: path
      name: internal_account_id
      required: true
      schema:
        example: 1eec6d0a-94b3-422d-bfc5-938ebff87fb0
        format: uuid
        type: string
    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
    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
  securitySchemes:
    bearerAuth:
      bearerFormat: api_key
      scheme: bearer
      type: http
x-readme:
  explorer-enabled: true
  proxy-enabled: true
  samples-enabled: true