Synctera External Accounts API

The External Account resource is used for managing links to accounts that operate outside of the Synctera ecosystem.

OpenAPI Specification

synctera-external-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 External 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 External Account resource is used for managing links to accounts

    that operate outside of the Synctera ecosystem.

    '
  name: External Accounts
paths:
  /external_accounts:
    description: 'The External Account resource is used for managing links to accounts that operate outside of the Synctera ecosystem.

      '
    summary: External Accounts
    get:
      description: 'Returns a list of all external accounts assigned to customers.

        '
      operationId: listExternalAccounts
      parameters:
      - $ref: '#/components/parameters/customer_id_query_array'
      - $ref: '#/components/parameters/business_id_query_array'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/page_token'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/external_accounts_list'
          description: List of external accounts
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: List external accounts
      tags:
      - External Accounts
      x-external: true
    post:
      description: 'Add an external account for a customer. The account will be created in an unverified state.

        '
      operationId: addExternalAccounts
      parameters:
      - $ref: '#/components/parameters/idempotency_key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/add_accounts_request'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/external_account'
          description: The external 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 an external account
      tags:
      - External Accounts
      x-external: true
  /external_accounts/{external_account_id}:
    description: 'The External Account resource is used for managing links to accounts that operate outside of the Synctera ecosystem.

      '
    summary: External Accounts
    delete:
      description: 'Deletes an external account, given an external account ID. If no accounts left, the access token to the financial institution will be removed

        '
      operationId: deleteExternalAccount
      parameters:
      - $ref: '#/components/parameters/external_account_id'
      responses:
        '200':
          $ref: '#/components/responses/delete_response'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
        '409':
          $ref: '#/components/responses/already_exists'
        '422':
          $ref: '#/components/responses/unprocessable_entity'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: Delete an external account
      tags:
      - External Accounts
      x-external: true
    get:
      description: 'Returns an external account, given an external account ID.

        '
      operationId: getExternalAccount
      parameters:
      - $ref: '#/components/parameters/external_account_id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/external_account'
          description: The external account
        '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 an external account
      tags:
      - External Accounts
      x-external: true
    patch:
      description: 'Edits an unverified external account, given an external account ID.

        '
      operationId: updateExternalAccount
      parameters:
      - $ref: '#/components/parameters/idempotency_key'
      - $ref: '#/components/parameters/external_account_id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/patch_external_account'
        description: External account to be updated
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/external_account'
          description: Updated external account
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
        '409':
          $ref: '#/components/responses/already_exists'
        '422':
          $ref: '#/components/responses/unprocessable_entity'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: Patch an external account
      tags:
      - External Accounts
      x-external: true
  /external_accounts/{external_account_id}/balance:
    description: 'The External Account resource is used for managing links to accounts that operate outside of the Synctera ecosystem.

      '
    summary: External Accounts
    get:
      description: 'Returns an external account balance, given an external account ID.

        '
      operationId: getExternalAccountBalance
      parameters:
      - $ref: '#/components/parameters/external_account_id'
      - $ref: '#/components/parameters/max_age'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/external_account_balance'
          description: The external account
        '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 an external account balance
      tags:
      - External Accounts
      x-external: true
  /external_accounts/{external_account_id}/transactions:
    description: 'The External Account resource is used for managing links to accounts that operate outside of the Synctera ecosystem.

      '
    summary: External Accounts
    get:
      description: 'Returns a list of transactions on from the external account, given an external account ID. Maximum 500 transctions will be returned.

        '
      operationId: getExternalAccountTransactions
      parameters:
      - $ref: '#/components/parameters/external_account_id'
      - description: Date range filtering for transactions. Date is inclusive. Date must be in UTC.
        in: query
        name: start_date
        required: true
        schema:
          format: date
          type: string
        x-external: true
      - description: Date range filtering for transactions. Date is exclusive. Date must be in UTC.
        in: query
        name: end_date
        required: true
        schema:
          format: date
          type: string
        x-external: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/external_accounts_transaction_list'
          description: The external account
        '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: List transactions of a given external account
      tags:
      - External Accounts
      x-external: true
  /external_accounts/access_tokens:
    description: 'Create a permanent access token for an external account

      '
    summary: External account access token
    post:
      operationId: createAccessToken
      parameters:
      - $ref: '#/components/parameters/idempotency_key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/external_account_access_token'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/external_account_access_token'
          description: New verification link token
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: Create a permanent access token for an external account
      tags:
      - External Accounts
      x-external: true
  /external_accounts/add_vendor_accounts:
    description: 'The External Account resource is used for managing links to accounts that operate outside of the Synctera ecosystem.

      '
    summary: External Accounts
    post:
      description: 'Add external accounts for a customer through an existing access token. The token must be valid, and the information on the accounts returned by the vendor must correspond to the customer. A success response for this route may include failures if an account could not be added, so it''s important that the caller checks the response body.

        '
      operationId: addVendorExternalAccounts
      parameters:
      - $ref: '#/components/parameters/idempotency_key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/add_vendor_accounts_request'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/add_vendor_accounts_response'
          description: 'Result of adding accounts through the vendor.

            '
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: Add external accounts through a vendor, such as Plaid.
      tags:
      - External Accounts
      x-external: true
  /external_accounts/link_tokens:
    description: 'Create a link token to verify an external account

      '
    summary: External account verification link token
    post:
      operationId: createVerificationLinkToken
      parameters:
      - $ref: '#/components/parameters/idempotency_key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/external_account_link_token'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/external_account_link_token'
          description: New verification link token
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: Create a link token to verify an external account
      tags:
      - External Accounts
      x-external: true
  /external_accounts/sync_vendor_accounts:
    description: 'The External Account resource is used for managing links to accounts that operate outside of the Synctera ecosystem.

      '
    summary: External Accounts
    post:
      description: 'Sync external accounts for a customer through an existing access token. The token must be valid, and the information on the accounts returned by the vendor must correspond to the customer. A success response for this route may include failures if an account could not be added and deletions if the account is removed by the end user, so it''s important that the caller checks the response body.

        '
      operationId: syncVendorExternalAccounts
      parameters:
      - $ref: '#/components/parameters/idempotency_key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/add_vendor_accounts_request'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/add_vendor_accounts_response'
          description: 'Result of syncing accounts through the vendor.

            '
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: Sync external accounts through a vendor, such as Plaid.
      tags:
      - External Accounts
      x-external: true
components:
  schemas:
    patch_accounts_request_routing_identifiers:
      properties:
        ach_routing_number:
          description: 'The routing number used for US ACH payments. On write, Synctera will store the entire routing number; on read, we only return the last 4 characters.

            '
          example: '756392185'
          minLength: 1
          type: string
        bank_name:
          description: The name of the bank managing the account
          example: Chase
          minLength: 1
          type: string
      title: Identifiers for the bank
      type: object
    external_account:
      properties:
        account_identifiers:
          $ref: '#/components/schemas/account_identifiers'
        account_owner_names:
          description: 'The names of the account owners. Values may be masked, in which case the array will be empty.

            '
          items:
            example: Dr. Winston Zieme
            type: string
          type: array
        business_id:
          description: 'The identifier for the business customer associated with this external account. Exactly one of `business_id` or `customer_id` will be returned.

            '
          example: 98f62347-33d0-4421-bfc0-91729390eff1
          format: uuid
          type: string
        creation_time:
          example: '2022-01-01T00:00:00.000Z'
          format: date-time
          type: string
        customer_id:
          description: 'The identifier for the personal customer associated with this external account. Exactly one of `customer_id` or `business_id` will be returned.

            '
          example: e2197030-7aaf-472d-a454-5c1703d46417
          format: uuid
          type: string
        id:
          description: External account unique identifier
          example: 90928aae-f478-443a-bdcc-00cf888df49b
          format: uuid
          readOnly: true
          type: string
        last_updated_time:
          example: '2022-01-01T00:00:00.000Z'
          format: date-time
          type: string
        metadata:
          description: User-supplied JSON format metadata.
          type: object
        name:
          description: The official name of the account
          example: Plaid Checking
          type: string
        nickname:
          description: A user-meaningful name for the account
          example: Credit Card Account
          nullable: true
          type: string
        routing_identifiers:
          $ref: '#/components/schemas/account_routing'
        status:
          description: The current state of the account
          enum:
          - ACTIVE
          - CLOSED
          type: string
        type:
          description: The type of the account
          enum:
          - CHECKING
          - SAVINGS
          - CREDIT_CARD
          - MONEY_MARKET
          - INVESTMENT_529
          - OTHER
          type: string
        vendor_data:
          $ref: '#/components/schemas/external_account_vendor_data'
        vendor_info:
          $ref: '#/components/schemas/vendor_info'
        verification:
          $ref: '#/components/schemas/account_verification'
      required:
      - id
      - account_owner_names
      - status
      - type
      - routing_identifiers
      - account_identifiers
      - verification
      - creation_time
      - last_updated_time
      title: External account
      type: object
    vendor_info:
      description: 'The information provided to Synctera from the vendor. Interpretation of this object is up to the client.

        '
      discriminator:
        mapping:
          application/json: '#/components/schemas/vendor_json'
          text/xml: '#/components/schemas/vendor_xml'
        propertyName: content_type
      oneOf:
      - $ref: '#/components/schemas/vendor_json'
      - $ref: '#/components/schemas/vendor_xml'
      title: Vendor Info
      type: object
    add_vendor_account_failure:
      properties:
        reason:
          $ref: '#/components/schemas/add_vendor_accounts_error_reason'
        reason_description:
          description: A human-readable message describing the reason for the failure.
          type: string
        vendor_account_id:
          description: 'The vendor account ID for the account that failed. For Plaid, this is an `account_id`.

            '
          example: blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo
          type: string
        vendor_error_message:
          description: 'The display_message returned by the vendor. Only returned if reason is set to `PROVIDER_ERROR`. For Plaid, this is the `display_message`.

            '
          type: string
        vendor_request_id:
          description: 'A unique identifier for the request from the vendor, which can be used for troubleshooting. Only returned if reason is set to `PROVIDER_ERROR`.

            '
          type: string
      required:
      - vendor_account_id
      - reason
      - reason_description
      type: object
    add_accounts_request_routing_identifiers:
      properties:
        ach_routing_number:
          description: 'The routing number used for US ACH payments.

            '
          example: '756392185'
          minLength: 1
          type: string
        bank_countries:
          description: The countries that this bank operates the account in
          items:
            enum:
            - US
            type: string
          minItems: 1
          type: array
        bank_name:
          description: The name of the bank managing the account
          example: Chase
          minLength: 1
          type: string
        wire_routing_number:
          description: 'The routing number used for US wire payments.

            '
          example: '915075033'
          minLength: 1
          type: string
      required:
      - bank_name
      - bank_countries
      - ach_routing_number
      title: Identifiers for the bank
      type: object
    business_id2:
      description: 'Unique ID for the business. Exactly one of `business_id` or `person_id` must be set.

        '
      example: d4f6d078-ccf9-42c1-a001-df2c96783294
      format: uuid
      type: string
    external_account_link_token:
      properties:
        business_id:
          description: 'The identifier for the business customer associated with this external account. Exactly one of `business_id` or `customer_id` must be specified.

            '
          example: d3087ca5-aaf9-4f7c-9241-58ab458e15ac
          format: uuid
          type: string
        client_name:
          description: The name of your application, as it should be displayed in Link. Maximum length of 30 characters.
          type: string
        country_codes:
          description: Country codes in the ISO-3166-1 alpha-2 country code standard.
          items:
            enum:
            - US
            type: string
          minItems: 1
          type: array
        customer_id:
          description: 'The identifier for the personal customer associated with this external account. Exactly one of `customer_id` or `business_id` must be specified.

            '
          example: 3d92aac9-bdf5-498f-96b0-e67da46be85e
          format: uuid
          type: string
        expiration:
          description: The expiration date for the link_token. Expires in 4 hours.
          format: date-time
          readOnly: true
          type: string
        language:
          description: 'The language that corresponds to the link token. For Plaid, see their [documentation](https://plaid.com/docs/api/tokens/#link-token-create-request-language) for a list of allowed values.

            '
          enum:
          - EN
          - FR
          - ES
          - NL
          - DE
          type: string
        link_customization_name:
          description: 'The name of the Link customization from the Plaid Dashboard to be applied to Link. If not specified, the default customization will be used. When using a Link customization, the language in the customization must match the language selected via the language parameter, and the countries in the customization should match the country codes selected via country_codes.

            '
          type: string
        link_token:
          description: 'A link_token, which can be supplied to Link in order to initialize it and receive a public_token, which can be exchanged for an access_token.

            '
          readOnly: true
          type: string
        redirect_uri:
          description: 'A URI indicating the destination where a user should be forwarded after completing the Link flow; used to support OAuth authentication flows when launching Link in the browser or via a webview.

            '
          type: string
        request_id:
          description: A unique identifier for the request, which can be used for troubleshooting.
          readOnly: true
          type: string
        sdk_type:
          default: WEB
          description: Describes the environment of the client code running a vendor-supplied SDK
          enum:
          - WEB
          - IOS
          - ANDROID
          type: string
        type:
          description: The type of the link token. DEPOSITORY for checking and savings accounts, CREDIT for credit card type accounts, INVESTMENT for investment accounts, and MICRO_DEPOSIT for depository accounts with support for micro-deposits verification.
          enum:
          - DEPOSITORY
          - CREDIT
          - INVESTMENT
          - MICRO_DEPOSIT
          type: string
        vendor_access_token:
          description: The access token associated with the Item data is being requested for.
          type: string
        vendor_institution_id:
          description: 'The ID of the institution the access token is requested for. If present the link token will be created in an update mode.

            '
          minLength: 1
          type: string
        verify_owner:
          default: false
          description: 'If true, Synctera will attempt to verify that the external account owner is the same as the customer by comparing external account data to customer data. At least 2 of the following fields must match: name, phone number, email, address. Verification is disabled by default.

            '
          type: boolean
      required:
      - client_name
      - language
      - country_codes
      - type
      type: object
    add_accounts_request:
      properties:
        account_identifiers:
          $ref: '#/components/schemas/add_accounts_request_account_identifiers'
        account_owner_names:
          description: The names of the account owners.
          items:
            example: Miss Clark Maggio
            minLength: 1
            type: string
          minItems: 1
          type: array
        business_id:
          description: 'The identifier for the business customer associated with this external account. Exactly one of `business_id` or `customer_id` must be specified.

            '
          example: fc8d475c-0d6d-4139-8010-93c57ce5eed1
          format: uuid
          type: string
        customer_id:
          description: 'The identifier for the personal customer associated with this external account. Exactly one of `customer_id` or `business_id` must be specified.

            '
          example: 91a0ced5-2403-4a98-9b9f-c4577834eac1
          format: uuid
          type: string
        customer_type:
          $ref: '#/components/schemas/ext_account_customer_type'
        metadata:
          description: User-supplied metadata
          type: object
        nickname:
          description: A user-meaningful name for the account
          example: Money Market Account
          minLength: 1
          type: string
        routing_identifiers:
          $ref: '#/components/schemas/add_accounts_request_routing_identifiers'
        type:
          description: The type of the account
          enum:
          - CHECKING
          - SAVINGS
          type: string
        vendor_account_id:
          description: The ID of the vendor account, will be empty for MANUAL vendor
          example: blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo
          minLength: 1
          type: string
        verification:
          $ref: '#/components/schemas/account_verification'
      required:
      - type
      - customer_type
      - account_owner_names
      - routing_identifiers
      - account_identifiers
      type: object
    external_accounts_list:
      allOf:
      - properties:
          external_accounts:
            description: Array of external accounts
            items:
              $ref: '#/components/schemas/external_account'
            type: array
        required:
        - external_accounts
        type: object
      - $ref: '#/components/schemas/paginated_response'
    ext_account_customer_type:
      description: 'The type of customer in the external financial institution. _Not_ necessarily the customer type on Synctera''s platform: a business customer might link to the owner''s personal account at an external financial institution.

        '
      enum:
      - PERSONAL
      - BUSINESS
      type: string
    account_identifiers:
      properties:
        iban:
          description: 'The IBAN of the account. Value may be masked, in which case only the last four digits are returned.

            '
          example: CY06470650023917R423TV710402
          type: string
        number:
          description: 'The account number. Value may be masked, in which case only the last four digits are returned.

            '
          example: '78277121'
          type: string
      required:
      - number
      title: Identifiers for the account
      type: object
    plaid_account_verification:
      allOf:
      - $ref: '#/components/schemas/base_account_verification'
      title: Information specific to Plaid verification
    manual_account_verification:
      allOf:
      - $ref: '#/components/schemas/base_account_verification'
      title: Information specific to Manual verification
    vendor_xml:
      properties:
        content_type:
          description: Describes the content-type encoding received from the vendor
          enum:
          - text/xml
          type: string
        vendor:
          example: IDOLOGY
          type: string
        xml:
          description: Data representaion in XML
          type: string
      required:
      - vendor
      - content_type
      - xml
    external_account_transaction:
      properties:
        amount:
          description: Transaction amount. Number in cents. E.g. 1000 represents $10.00
          format: int64
          type: integer
        authorized_date:
          description: Date that the transaction is authorized. ISO 8601 format ( YYYY-MM-DD ).
          format: date
          nullable: true
          type: string
        category:
          description: Category of the transaction
          items:
            type: string
          type: array
        check_number:
          description: Check number of the transaction. This field will be null if not a check transaction.
          type: string
        currency:
          description: ISO 4217 alphabetic currency code
          example: USD
          type: string
        date:
          description: 'For pending transactions, this represents the date of the transaction occurred; for posted transactions, this represents the date of the transaction posted. ISO 8601 format ( YYYY-MM-DD ).

            '
          format: date
          type: string
        is_pending:
          description: Indicates the transaction is pending or unsettled if true.
          type: boolean
        merchant_name:
          description: Merchant name of the transaction
          example: Fancy store
          type: string
        payment_channel:
          description: channel used to make a payment
          enum:
          - IN_STORE
          - ONLINE
          - OTHER
          type: string
          x-enumDescriptions:
          - IN_STORE: In store transaction.
          - ONLINE: Online transaction.
          - OTHER: Transactions that relate to banks, e.g. fees or deposits.
        payment_method:
          description: Transfer type of the transaction, e.g. ACH
          type: string
        transaction_id:
          description: case-sensitive transaction ID
          type: string
      type: object
    delete_response:
      description: Deleted object information
      properties:
        id:
          description: Object ID
          format: uuid
          type: string
        resource:
          description: The resource name
          type: string
      title: Deleted Object
      type: object
    add_accounts_request_account_identifiers:
      properties:
        number:
          description: 'The account number. On write, Synctera will store the entire account number; on read, we only return the last 4 characters.

            '
          example: '78277121'
          minLength: 1
          type: string
      required:
      - number
      title: Identifiers for the account
      type: object
    vendor_json:
      properties:
        content_type:
          description: Describes the content-type encoding received from the vendor
          enum:
          - application/json
          type: string
        json:
          description: Data representation in JSON
          type: object
        vendor:
          example: SOCURE
          type: string
      required:
      - vendor
      - content_type
      - json
    add_vendor_accounts_response:
      properties:
        added_accounts:
          items:
            $ref: '#/components/schemas/external_account'
            description: Information about a successfully added external account.
          type: array
        deleted_accounts:
          items:
            $ref: '#/components/schemas/external_account'
            description: Information about a successfully deleted external account.
          type

# --- truncated at 32 KB (47 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/synctera/refs/heads/main/openapi/synctera-external-accounts-api-openapi.yml