openapi: 3.1.0
info:
  title: Currencies
  description: |-
    Operations related to monetary currencies (US Dollar, Euro, Japanese Yen, etc.) used in (international) financial transactions, such as international wire transfers.

    This API provides the following features:

      1. [List available currencies](#op-listCurrencies) for foreign exchange transactions.
      1. [Generate a currency conversion quote](#op-generateCurrencyConversionQuote)
      1. [Accept a currency conversion quote](#op-acceptedCurrencyConversionQuote)
  version: 0.4.0
  contact:
    name: Apiture
    url: https://developer.apiture.com/help/support/
    email: api@apiture.com
  termsOfService: https://developer.apiture.com/docs/Apiture-API-License-Agreement.pdf
  license:
    name: Apiture API License
    url: https://developer.apiture.com/docs/Apiture-API-License-Agreement.pdf
x-apiture-namespace: bankingCurrencies
x-apiture-package-name: banking-currencies
servers:
  - url: /banking
tags:
  - name: Currencies
    description: Banking Currencies
paths:
  /currencies:
    get:
      summary: Return a list of currencies that may be used for foreign exchange transactions
      description: |-
        Return a list of currencies that may be used for foreign exchange transactions, such as international wire transfers.

        This operation is only allowed for banking customers/members who have entitlements to list currencies; the operation returns 403 Forbidden for others (with a `forbidden` problem type).
      operationId: listCurrencies
      x-apiture-api: bankingCurrencies
      x-apiture-group: currencies
      tags:
        - Currencies
      security:
        - accessToken:
            - data/read
      responses:
        '200':
          description: OK. The operation succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/currencies'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/currencies'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: listCurrencies
  /conversionQuotes:
    post:
      summary: Generate a currency conversion quote from US dollars to another currency.
      description: |-
        Generate a quote for converting from US dollars to a target currency. The request must contain either the `sourceAmount` in US dollars or the `targetAmount` in the `targetCurrency`. The response includes the computed `targetAmount` if `sourceAmount` was provided or the computed `sourceAmount` if `targetAmount` was provided. The response also includes exchange rate for US dollars to target currency and an date-time when the rate expires.

        This operation is only allowed for banking customers/members who have entitlements to list currencies; the operation returns 403 Forbidden for others (with a `forbidden` problem type).
      operationId: generateCurrencyConversionQuote
      x-apiture-api: bankingCurrencies
      x-apiture-group: currencies
      tags:
        - Currencies
      security:
        - accessToken:
            - data/read
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/currencyConversionQuoteRequest'
          application/vnd.restful+json:
            schema:
              $ref: '#/components/schemas/currencyConversionQuoteRequest'
      responses:
        '200':
          description: OK. The operation succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/currencyConversionQuote'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/currencyConversionQuote'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid.

            This problem response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0`](https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0)<br>
              The syntax of the request entity is correct but was unable to process the contained instructions.
              Remediation: Provide a semantically correct request.

            * [`https://static.api.apiture.com/errors/invalidCurrencyCode/v1.0.0`](https://static.api.apiture.com/errors/invalidCurrencyCode/v1.0.0)<br>
              The currency code in the request is invalid.
              Remediation: Use a currency code from the listCurrencies operation response.

            * [`https://static.api.apiture.com/errors/missingSourceOrTargetAmount/v1.0.0`](https://static.api.apiture.com/errors/missingSourceOrTargetAmount/v1.0.0)<br>
              The request must specify a `sourceAmount` or `targetAmount`.
              Remediation: Pass one of `sourceAmount` and `targetAmount`.

            * [`https://static.api.apiture.com/errors/sourceAndTargetAmountAreMutuallyExclusive/v1.0.0`](https://static.api.apiture.com/errors/sourceAndTargetAmountAreMutuallyExclusive/v1.0.0)<br>
              The request contains both `sourceAmount` and `targetAmount`.
              Remediation: Pass only one of `sourceAmount` and `targetAmount` but not both.
          x-apiture-errors:
            - $ref: '#/components/x-apiture-errors/unprocessableEntity'
            - invalidCurrencyCode
            - missingSourceOrTargetAmount
            - sourceAndTargetAmountAreMutuallyExclusive
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: generateCurrencyConversionQuote
  /acceptedConversionQuotes:
    post:
      summary: Accept a currency conversion quote from US dollars to another currency.
      description: |-
        Accept a quote for converting from US dollars to a target currency.

        Quotes accepted after the expiration timestamp are rejected.

        This operation is only allowed for banking customers/members who have entitlements to list currencies; the operation returns 403 Forbidden for others (with a `forbidden` problem type).
      operationId: acceptCurrencyConversionQuote
      x-apiture-api: bankingCurrencies
      x-apiture-group: currencies
      tags:
        - Currencies
      security:
        - accessToken:
            - data/write
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/acceptCurrencyConversionQuoteRequest'
          application/vnd.restful+json:
            schema:
              $ref: '#/components/schemas/acceptCurrencyConversionQuoteRequest'
      responses:
        '200':
          description: OK. The operation succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/acceptedCurrencyConversionQuote'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/acceptedCurrencyConversionQuote'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid.

            This problem response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0`](https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0)<br>
              The syntax of the request entity is correct but was unable to process the contained instructions.
              Remediation: Provide a semantically correct request.

            * [`https://static.api.apiture.com/errors/invalidCurrencyConversionQuote/v1.0.0`](https://static.api.apiture.com/errors/invalidCurrencyConversionQuote/v1.0.0)<br>
              The currency quote in the request is invalid.
              Remediation: Use a valid currency conversion quote.

            * [`https://static.api.apiture.com/errors/currencyConversionQuoteExpired/v1.0.0`](https://static.api.apiture.com/errors/currencyConversionQuoteExpired/v1.0.0)<br>
              The given currency conversion quote has expired.
              Remediation: Request a new currency conversion quote.
          x-apiture-errors:
            - $ref: '#/components/x-apiture-errors/unprocessableEntity'
            - invalidCurrencyConversionQuote
            - currencyConversionQuoteExpired
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: acceptCurrencyConversionQuote
components:
  schemas:
    currencyFields:
      title: Currency Fields (v1.0.0)
      description: Fields used to compose currency schemas.
      x-apiture-fragment: true
      type: object
      properties:
        code:
          $ref: '#/components/schemas/currencyCode'
        label:
          description: The label/name of this currency.
          type: string
          format: text
          minLength: 3
          maxLength: 35
      x-apiture-version: 1.0.0
    currency:
      x-apiture-version: 2.0.0
      title: Currency (v2.0.0)
      description: A Monetary Currency.
      type: object
      required:
        - code
        - label
      allOf:
        - $ref: '#/components/schemas/currencyFields'
      example:
        code: USD
        label: United States dollar
    currencyReference:
      title: Currency Reference (v1.0.0)
      description: A reference for a monetary currency.
      required:
        - code
      allOf:
        - $ref: '#/components/schemas/currencyFields'
      example:
        code: USD
        label: United States dollar
      x-apiture-version: 1.0.0
    currencies:
      x-apiture-version: 2.0.1
      title: Currencies (v2.0.1)
      description: A list of monetary currencies.
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: An array of supported currencies for obtaining currency conversion quotes.
              type: array
              minItems: 10
              maxItems: 2000
              items:
                $ref: '#/components/schemas/currency'
      example:
        items:
          - code: AUD
            label: Australian dollar
          - code: BBD
            label: Barbados dollar
          - code: BMD
            label: Bermudian dollar
          - code: BRL
            label: Brazilian real
          - code: CHF
            label: Swiss franc
          - code: COP
            label: Colombian peso
          - code: DKK
            label: Danish krone
          - code: CAD
            label: Canadian dollar
          - code: EUR
            label: Euro
          - code: FJD
            label: Fiji dollar
          - code: GBP
            label: Pound sterling
          - code: HKD
            label: Hong Kong dollar
          - code: INR
            label: Indian rupee
          - code: JPY
            label: Japanese yen
          - code: KRW
            label: South Korean won
          - code: MXN
            label: Mexican peso
          - code: NZD
            label: New Zealand dollar
          - code: SEK
            label: Swedish kronor
          - code: SGD
            label: Singapore dollar
          - code: USD
            label: United States dollar
    currencyConversionQuoteFields:
      x-apiture-version: 1.1.0
      title: Currency Conversion Quote Fields (v1.1.0)
      description: Fields used to compose currency conversion quote schemas.
      x-apiture-fragment: true
      type: object
      properties:
        settlementAccount:
          description: A reference to the account used to settle currency conversions.
          allOf:
            - $ref: '#/components/schemas/transferAccountReference'
        targetCurrency:
          description: The target currency for the currency conversion quote. This must not be `USD` (US dollars).
          allOf:
            - $ref: '#/components/schemas/currency'
        sourceAmount:
          description: The amount of money in US dollars to be converted to the target currency. `sourceAmount` and `targetAmount` are mutually exclusive.
          allOf:
            - $ref: '#/components/schemas/monetaryValue'
        targetAmount:
          description: The target amount in the target currency. `sourceAmount` and `targetAmount` are mutually exclusive.
          allOf:
            - $ref: '#/components/schemas/foreignExchangeMonetaryValue'
    immutableCurrencyConversionQuoteFields:
      x-apiture-version: 1.1.0
      title: Currency Conversion Quote Fields (v1.1.0)
      description: Immutable fields used to compose currency conversion quote schemas.
      x-apiture-fragment: true
      type: object
      properties:
        vendorQuoteId:
          description: The currency conversion quote identifier provided by the vendor.
          allOf:
            - $ref: '#/components/schemas/externalResourceId'
        conversionRate:
          description: A multiplication factor, expressed in decimal notation, for converting from US Dollars to the target currency. This numeric value is represented as a decimal string so that it can be exact with no loss of precision.
          allOf:
            - $ref: '#/components/schemas/conversionRate'
        expiresAt:
          description: |-
            The timestamp when this currency conversion rate expires, in [RFC 3336](https://tools.ietf.org/html/rfc3339#date-time) `date-time` UTC format.

            For currency conversion quotes that have not been accepted, this is when the quote expires.

            For accepted currency conversion quotes, this is when the currency conversion must be finalized by.
          allOf:
            - $ref: '#/components/schemas/readOnlyTimestamp'
    currencyConversionQuoteRequest:
      x-apiture-version: 2.1.0
      title: Currency Conversion Quote Request (v2.1.0)
      description: A request to obtain a currency conversion quote for converting between US dollars and a target currency. The request must contain the `targetCurrency` and either a `sourceAmount` (the amount in US dollars) or a `targetAmount` (the amount in the target currency).
      required:
        - targetCurrency
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/currencyConversionQuoteFields'
      examples:
        - targetCurrency:
            code: EUR
            label: Euro
          sourceAmount: '1305.99'
        - targetCurrency:
            code: EUR
            label: Euro
          targetAmount: '1000.00'
    acceptCurrencyConversionQuoteRequest:
      x-apiture-version: 1.1.0
      title: Accept Currency Conversion Quote (v1.1.0)
      description: |-
        A request to accept a currency conversion quote between US dollars and a target currency for a specific target amount.

        The `signature` is used to validate the quote being accepted.

        Additional properties are not verified against the `signature`.
      required:
        - signature
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/currencyConversionQuoteFields'
        - $ref: '#/components/schemas/immutableCurrencyConversionQuoteFields'
        - type: object
          properties:
            signature:
              $ref: '#/components/schemas/currencyConversionQuoteSignature'
      example:
        signature: eyJhbGciOiJFUzI
    currencyConversionQuoteSignature:
      title: Currency Conversion Quote Signature (v1.0.0)
      description: A cryptographic digital signature representing a currency conversion quote. Use this signature to [accept this currency conversion quote](#op-acceptedCurrencyConversionQuote).
      type: string
      pattern: .{1,2048}
      minLength: 1
      maxLength: 2048
      example: eyJhbGciOiJFUzI
      x-apiture-version: 1.0.0
    currencyConversionQuote:
      x-apiture-version: 3.0.0
      title: Currency Conversion Quote (v3.0.0)
      description: |-
        Represents a quote for a currency conversion rate. A currency conversion quote consists of the a `sourceAmount` in US dollars, a target currency, the corresponding amount in a target currency, the currency conversion rate, and a date-time when the conversion rate expires.

        The data in the response follows these conversion constraints:

          * `targetAmount = sourceAmount * conversionRate`
          * `sourceAmount = targetAmount / conversionRate`

        If the request specified a target amount in the target currency, the `sourceAmount` may be rounded up to the next penny to ensure the full target amount is covered.
      required:
        - vendorQuoteId
        - sourceAmount
        - targetAmount
        - targetCurrency
        - conversionRate
        - expiresAt
        - signature
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/currencyConversionQuoteFields'
        - $ref: '#/components/schemas/immutableCurrencyConversionQuoteFields'
        - type: object
          properties:
            signature:
              $ref: '#/components/schemas/currencyConversionQuoteSignature'
      example:
        settlementAccount:
          id: e821ce54-c715
          label: Premiere Checking *6789
          type: checking
          location: internal
        vendorQuoteId: 54a0945f-5d7a
        sourceAmount: '1000.00'
        targetAmount: '12250.00'
        targetCurrency:
          code: EUR
          label: Euro
        conversionRate: '1.225'
        expiresAt: '2024-07-18T13:57:45.375Z'
        signature: eyJhbGciOiJFUzI
    acceptedCurrencyConversionQuote:
      x-apiture-version: 2.0.0
      title: Accepted Currency Conversion Quote (v2.0.0)
      description: An accepted currency conversion quote. Accepted currency conversions represent a conversion rate between two currencies for a specific amount.
      required:
        - id
        - vendorQuoteId
        - sourceAmount
        - targetAmount
        - targetCurrency
        - conversionRate
        - expiresAt
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/currencyConversionQuoteFields'
        - $ref: '#/components/schemas/immutableCurrencyConversionQuoteFields'
        - type: object
          properties:
            id:
              description: The unique identifier for this accepted currency conversion quote. This is derived and immutable.
              allOf:
                - $ref: '#/components/schemas/readOnlyResourceId'
      example:
        id: 3e8375b1-8c34
        vendorQuoteId: 54a0945f-5d7a
        settlementAccount:
          id: e821ce54-c715
          label: Premiere Checking *6789
          type: checking
          location: internal
        sourceAmount: '1000.00'
        targetAmount: '12250.00'
        targetCurrency:
          code: EUR
          label: Euro
        conversionRate: '1.225'
        expiresAt: '2024-07-18T13:57:45.375Z'
    acceptedCurrencyConversionQuoteReference:
      x-apiture-version: 1.1.0
      title: Accepted Currency Quote Reference (v1.1.0)
      description: Representation of an accepted currency conversion quote.
      required:
        - signature
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/currencyConversionQuoteFields'
        - $ref: '#/components/schemas/immutableCurrencyConversionQuoteFields'
        - type: object
          properties:
            id:
              description: The unique identifier for this accepted currency conversion quote. This is derived and immutable.
              allOf:
                - $ref: '#/components/schemas/readOnlyResourceId'
            signature:
              description: A cryptographic digital signature representing an accepted currency conversion quote. This signature is different from the one used to accept a quote.
              allOf:
                - $ref: '#/components/schemas/currencyConversionQuoteSignature'
      example:
        id: 3e8375b1-8c34
        vendorQuoteId: 54a0945f-5d7a
        settlementAccount:
          id: e821ce54-c715
          label: Premiere Checking *6789
          type: checking
          location: internal
        sourceAmount: '1000.00'
        targetAmount: '12250.00'
        targetCurrency:
          code: EUR
          label: Euro
        conversionRate: '1.225'
        expiresAt: '2024-07-18T13:57:45.375Z'
        signature: eyJhbGciOiJFUzI
    conversionRate:
      title: Conversion Rate (v1.0.0)
      description: A currency conversion rate. The numeric value is represented as a decimal string so that it can be exact with no loss of precision.
      example: '3456.78'
      format: decimal
      type: string
      pattern: ^(0|[1-9][0-9]*)\.[0-9]*$
      maxLength: 16
      x-apiture-version: 1.0.0
    foreignExchangeMonetaryValue:
      title: Foreign Exchange Monetary Value (v1.0.0)
      description: A monetary value in a foreign currency, supporting only positive amounts. The numeric value is represented as a decimal string so that it can be exact with no loss of precision.
      example: '34.5678'
      format: decimal
      type: string
      pattern: ^(0|[1-9][0-9]*)(\.[0-9]{1,4})?$
      maxLength: 16
      x-apiture-version: 1.0.0
    problemResponse:
      title: Problem Response (v0.4.1)
      x-apiture-version: 0.4.1
      description: API problem or error response, as per [RFC 9457 application/problem+json](https://tools.ietf.org/html/rfc9457).
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/apiProblem'
      example:
        id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
        type: https://static.api.apiture.com/errors/noSuchAccount/v1.0.0
        title: Account Not Found
        status: 422
        occurredAt: '2022-04-25T12:42:21.375Z'
        detail: No account exists for the given account reference
        instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/problemResponse
    currencyCode:
      description: A [ISO 4217 currency code](https://en.wikipedia.org/wiki/ISO_4217) This is always upper case ASCII. Crypto currencies with codes longer that 3 characters are not supported.
      type: string
      format: text
      pattern: ^[A-Z]{3}$
      minLength: 3
      maxLength: 3
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/currencyCode
      x-apiture-version: 1.0.0
      title: ' (v1.0.0)'
    abstractBody:
      title: Abstract Body (v0.2.0)
      x-apiture-version: 0.2.0
      description: An abstract schema used to define other request and response body model schemas.
      x-apiture-fragment: true
      type: object
      properties: {}
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/abstractBody
    transferAccountReference:
      x-apiture-version: 3.0.0
      title: Transfer Account Reference (v3.0.0)
      description: A reference to a banking account used within an account to account transfer. This object may be set from an account's `account.reference` object.
      type: object
      required:
        - id
      properties:
        id:
          description: The unique ID of a banking account.
          $ref: '#/components/schemas/resourceId'
        label:
          $ref: '#/components/schemas/accountLabel'
        type:
          description: The product type of the account.
          $ref: '#/components/schemas/productType'
        location:
          description: Indicates where an account is held.
          $ref: '#/components/schemas/accountLocation'
      example:
        id: e821ce54-c715
        label: Premiere Checking *6789
        type: checking
        location: internal
      x-resolved-from: ../../transfers/openapi.yaml#/components/schemas/transferAccountReference
    monetaryValue:
      x-apiture-version: 1.1.1
      title: Monetary Value (v1.1.1)
      description: The monetary value, supporting only positive amounts. The numeric value is  represented as a string so that it can be exact with no loss of precision.
      example: '3456.78'
      format: decimal
      type: string
      pattern: ^(0|[1-9][0-9]*)\.[0-9][0-9]$
      maxLength: 16
      x-apiture-since: 0.4.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/monetaryValue
    externalResourceId:
      x-apiture-version: 1.1.0
      title: External Resource Identifier (v1.1.0)
      description: The unique, opaque system identifier for an external resource. This case-sensitive ID is also used as path parameters in URLs or in other properties or parameters that reference an external resource by ID rather than URL.
      type: string
      format: text
      readOnly: true
      minLength: 1
      maxLength: 256
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/externalResourceId
    readOnlyTimestamp:
      title: Read-Only Timestamp (v1.0.0)
      description: 'A readonly or derived timestamp (an instant in time) formatted in [RFC 3339](https://tools.ietf.org/html/rfc3339) `date-time` UTC format: `YYYY-MM-DDThh:mm:ss.sssZ`.'
      type: string
      minLength: 20
      maxLength: 30
      format: date-time
      readOnly: true
      example: '2021-10-30T19:06:04.250Z'
      x-apiture-since: 0.4.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/readOnlyTimestamp
      x-apiture-version: 1.0.0
    readOnlyResourceId:
      x-apiture-version: 1.0.1
      title: Read-only Resource Identifier (v1.0.1)
      description: The unique, opaque system-assigned identifier for a resource. This case-sensitive ID is also used in URLs as path parameters or in other properties or parameters that reference a resource by ID rather than URL. Resource IDs are immutable.
      readOnly: true
      allOf:
        - $ref: '#/components/schemas/resourceId'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/readOnlyResourceId
    apiProblem:
      x-apiture-version: 1.2.1
      title: API Problem (v1.2.1)
      description: API problem or error, as per [RFC 7807 application/problem+json](https://tools.ietf.org/html/rfc7807).
      type: object
      properties:
        type:
          type: string
          format: uri-reference
          description: |
            A [URI reference (RFC3986)](https://tools.ietf.org/html/rfc3986) that identifies the problem type. If present, this is the URL of human-readable HTML documentation for the problem type. When this member is not present, its value is assumed to be `"about:blank"`.
          example: https://static.api.apiture.com/errors/forbidden/v1.0.0
          maxLength: 2048
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. The title is usually the same for all problem with the same `type`.
          maxLength: 120
          format: text
          example: User is not authorized to perform the requested action or access the requested resource.
        status:
          type: integer
          format: int32
          description: |
            The [HTTP status code](https://datatracker.ietf.org/doc/html/rfc7231#section-6) for this occurrence of the problem.
          minimum: 100
          maximum: 599
          example: 403
        detail:
          type: string
          description: |
            A human-readable explanation specific to this occurrence of the problem.
          maxLength: 256
          format: text
          example: User is not authorized to perform this operation.
        instance:
          type: string
          format: uri-reference
          description: |
            A URI reference that identifies the specific occurrence of the problem. This is the URI of an API resource that the problem is related to, with a unique error correlation ID URI fragment
          example: https://prduction.api.apiture.com/banking/accounts/ad80fc3e722q5402a#189c13ff-c54c-45f7-b8e0-c88984ba724d
          maxLength: 2048
        id:
          description: The unique identifier for this problem. This is an immutable opaque string.
          $ref: '#/components/schemas/readOnlyResourceId'
        occurredAt:
          description: The timestamp when the problem occurred, in [RFC 3339](https://tools.ietf.org/html/rfc3339) date-time `YYYY-MM-DDThh:mm:ss.sssZ` format, UTC.
          $ref: '#/components/schemas/readOnlyTimestamp'
        problems:
          description: Optional root-causes if there are multiple problems in the request or API call processing.
          type: array
          maxItems: 128
          items:
            $ref: '#/components/schemas/apiProblem'
        attributes:
          type: object
          description: Additional optional attributes related to the problem. This data conforms to the schema associated with the error type.
      example:
        id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
        type: https://static.api.apiture.com/errors/accountNotFound/v1.0.0
        title: Account Not Found
        status: 422
        occurredAt: '2022-04-25T12:42:21.375Z'
        detail: No account exists at the given account_url
        instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/apiProblem
    resourceId:
      x-apiture-version: 1.0.1
      title: Resource Identifier (v1.0.1)
      description: The unique, opaque system identifier for a resource. This case-sensitive ID is also used as path parameters in URLs or in other properties or parameters that reference a resource by ID rather than URL.
      type: string
      pattern: ^[-_:.~$a-zA-Z0-9]{6,48}$
      minLength: 6
      maxLength: 48
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/resourceId
    accountLabel:
      title: Account Label (v1.0.0)
      description: The human-readable label for this account. This is either the `nickname` (if assigned for the current customer), or the `product.label` concatenated with the `maskedNumber`.
      type: string
      minLength: 1
      maxLength: 80
      format: text
      example: Checking *1008
      x-resolved-from: ../../accounts/openapi.yaml#/components/schemas/accountLabel
      x-apiture-version: 1.0.0
    productType:
      x-apiture-version: 2.2.0
      title: Product Type (v2.2.0)
      description: |+
        The type (or category) of banking product.

        <strong><code>productType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>savings</code></strong></td><td>Savings: <p>Savings Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>checking</code></strong></td><td>Checking: <p>Checking Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>cd</code></strong></td><td>CD: <p>Certificate of Deposit Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>ira</code></strong></td><td>IRA: <p>Individual Retirement Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>loan</code></strong></td><td>Loan: <p>Loan Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>creditCard</code></strong></td><td>Credit Card: <p>Credit Card Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>moneyMarket</code></strong></td><td>Money Market: <p>Money Market Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>healthSavings</code></strong></td><td>Health Savings: <p>Health Savings Account</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: productType
      enum:
        - savings
        - checking
        - cd
        - ira
        - loan
        - creditCard
        - moneyMarket
        - healthSavings
      x-resolved-from: ../../products/openapi.yaml#/components/schemas/productType
    accountLocation:
      x-apiture-version: 1.1.0
      title: Account Location (v1.1.0)
      description: |+
        Indicates where an account is held

        <strong><code>accountLocation</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>internal</code></strong></td><td>Internal: <p>Accounts held by the banking customer at the current financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>external</code></strong></td><td>External: <p>Accounts held by the banking customer at another financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>outside</code></strong></td><td>Outside: <p>Non-banking accounts such as brokerage and fund accounts.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>peer</code></strong></td><td>Peer: <p>Accounts held by others at the same financial institution, for which the banking customer has transfer to and/or transfer from entitlements.</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: accountLocation
      enum:
        - internal
        - external
        - outside
        - peer
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/accountLocation
    requiredIdentityChallenge:
      x-apiture-version: 1.2.3
      title: Required Challenge (v1.2.3)
      description: A request from the service for the user to verify their identity. This contains a challenge ID, the corresponding operation ID, and a list of challenge factors for identity verification. The user must complete one of these challenge factors to satisfy the challenge. This schema defines the attributes in the 401 [Unauthorized problem response](#schema-apiProblem) when the 401 problem type name is `challengeRequired`. See the "Challenge API" for details.
      type: object
      required:
        - operationId
        - challengeId
        - factors
      properties:
        operationId:
          $ref: '#/components/schemas/challengeOperationId'
        challengeId:
          description: The unique ID of this challenge instance. This is an opaque string. This is passed when starting a challenge factor or when validating the identity challenge responses.
          $ref: '#/components/schemas/readOnlyResourceId'
        factors:
          description: 'A list of challenge factors. The user must complete one of these challenge factors. The `labels` in each factor identify one or more channels the user may use, such as a list of email addresses the system may use to send a one-time passcode to the user. ***Note**: The same channel may be used by multiple factors in the array of factors. For example, the user''s primary mobile phone number may be used for both an `sms` factor and a `voice` factor.'
          type: array
          minItems: 1
          maxItems: 8
          items:
            $ref: '#/components/schemas/challengeFactor'
      example:
        operationId: createTransfer
        challengeId: 0504076c566a3cf7009c
        factors:
          - type: sms
            labels:
              - '9876'
            id: 85c0ee5753fcd0b0953f
          - type: voice
            labels:
              - '9876'
            id: d089e10a80a8627df37b
          - type: voice
            labels:
              - '6754'
            id: 10506ecf9d1c2ee00403
          - type: email
            labels:
              - an****nk@example.com
              - an****98@example.com
            id: e917d671cb2f030b56f1
          - type: authenticatorToken
            labels:
              - Acme fob
            id: fe6c452d7da0bbb4e407
          - type: securityQuestions
            securityQuestions:
              questions:
                - id: q1
                  prompt: What is your mother's maiden name?
                - id: q4
                  prompt: What is your high school's name?
                - id: q9
                  prompt: What is the name of your first pet?
            id: df33c6f88a37d6b3f0a6
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/requiredIdentityChallenge
    challengeOperationId:
      x-apiture-version: 1.0.1
      title: Challenge Operation ID (v1.0.1)
      description: The ID of an operation/action for which the user must verify their identity via an identity challenge. This is passed when starting a challenge factor or when validating the identity challenge responses.
      type: string
      pattern: ^[-a-zA-Z0-9$_]{6,48}$
      minLength: 6
      maxLength: 48
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeOperationId
    challengeFactor:
      x-apiture-version: 1.2.1
      title: Challenge Factor (v1.2.1)
      description: A challenge factor. See [`requiredIdentityChallenge`](#schema-requiredIdentityChallenge) for multiple examples.
      type: object
      required:
        - type
      properties:
        id:
          description: |-
            The ID of an a challenge factor. This ID is unique within the challenge factors associated with a challenge. The client should pass this `id` value as the `factorId` when starting or verifying a challenge factor.

            *Note*: The `id` will become `required` in a future update to this schema.
          $ref: '#/components/schemas/challengeFactorId'
        type:
          $ref: '#/components/schemas/challengeFactorType'
        labels:
          description: A list of text label which identifies the channel(s) through which the user completes the challenge. For an `sms` or `voice` challenge, the only label item is the last four digits of the corresponding phone number. For an `email` challenge, each label is the masked email address.
          type: array
          minItems: 1
          maxItems: 4
          items:
            type: string
            maxLength: 300
            format: text
        securityQuestions:
          $ref: '#/components/schemas/challengeSecurityQuestions'
      example:
        type: sms
        labels:
          - '9876'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeFactor
    challengeFactorId:
      title: Challenge Factor ID (v1.0.0)
      description: The ID of an a challenge factor. This ID is unique within the factors offered with a challenge.
      type: string
      pattern: ^[-a-zA-Z0-9$_]{3,48}$
      minLength: 3
      maxLength: 48
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeFactorId
      x-apiture-version: 1.0.0
    challengeFactorType:
      title: Challenge Factor Type (v1.0.0)
      description: |+
        The name of challenge factor.

        <strong><code>challengeFactorType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>sms</code></strong></td><td>SMS: <p>One-time passcode sent to the primary mobile phone number</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>email</code></strong></td><td>Email: <p>One-time passcode sent to the primary email address</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>voice</code></strong></td><td>Voice: <p>One-time passcode communicated via automated voice phone call</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>authenticatorToken</code></strong></td><td>authenticator Token: <p>One-time passcode issued by a pre-registered hardware device, such as a token key fob, or an authenticator app</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>securityQuestions</code></strong></td><td>Security Questions: <p>Prompt with the user&#39;s security questions registered with their security profile</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: challengeFactorType
      enum:
        - sms
        - email
        - voice
        - securityQuestions
        - authenticatorToken
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeFactorType
      x-apiture-version: 1.0.0
    challengeSecurityQuestions:
      x-apiture-version: 1.0.1
      title: Challenge Security Questions (v1.0.1)
      description: Describes a `securityQuestions` challenge. This is omitted if the challenge `type` is not `securityQuestions`.
      type: object
      required:
        - questions
      properties:
        questions:
          description: The array of security questions.
          type: array
          minItems: 1
          maxItems: 8
          items:
            $ref: '#/components/schemas/challengeSecurityQuestion'
      example:
        questions:
          - id: q1
            prompt: What is your mother's maiden name?
          - id: q4
            prompt: What is your high school's name?
          - id: q9
            prompt: What is the name of your first pet?
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeSecurityQuestions
    challengeSecurityQuestion:
      x-apiture-version: 1.0.1
      title: Challenge Security Question (v1.0.1)
      description: A single security question within the `questions` array of the [`challengeSecurityQuestions`](#schema-challengeSecurityQuestions)
      type: object
      required:
        - id
        - prompt
      properties:
        id:
          description: The unique ID of security question prompt. This should be included in the [`challengeVerification`](#schema-challengeVerification) response as the `promptId`.
          $ref: '#/components/schemas/challengePromptId'
        prompt:
          description: The text prompt of this security question.
          type: string
          format: text
          maxLength: 80
      example:
        id: 74699fa628911e762ea5
        prompt: What is your mother's maiden name?
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeSecurityQuestion
    challengePromptId:
      title: Challenge Prompt ID (v1.0.0)
      description: The unique ID of a prompt (such as a security question) in a challenge factor.
      type: string
      pattern: ^[-_:.~$a-zA-Z0-9]+$
      minLength: 1
      maxLength: 48
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengePromptId
      x-apiture-version: 1.0.0
  securitySchemes:
    accessToken:
      type: openIdConnect
      description: OpenId Connect (OIDC) authentication/authorization. The client uses the `authorization_endpoint` and `token_endpoint` to obtain an access token to pass in the `Authorization` header. Those endpoints are available via the OIDC Configuration URL. The actual URL may vary with each financial institution. See details at [Secure Access](https://dx.apiture.com/docs/api/concepts/api-keys/).
      openIdConnectUrl: https://auth.apiture.com/oidc/.well-known/openid-configuration
      x-resolved-from: ../../common/openapi.yaml#/components/securitySchemes/accessToken
  x-apiture-errors:
    invalidCurrencyCode:
      description: The currency code in the request is invalid.
      remediation: Use a currency code from the listCurrencies operation response.
    missingSourceOrTargetAmount:
      description: The request must specify a `sourceAmount` or `targetAmount`.
      remediation: Pass one of `sourceAmount` and `targetAmount`.
    sourceAndTargetAmountAreMutuallyExclusive:
      description: The request contains both `sourceAmount` and `targetAmount`
      remediation: Pass only one of `sourceAmount` and `targetAmount` but not both.
    invalidCurrencyConversionQuote:
      description: The currency quote in the request is invalid.
      remediation: Use a valid currency conversion quote.
    currencyConversionQuoteExpired:
      description: The given currency conversion quote has expired.
      remediation: Request a new currency conversion quote.
    unprocessableEntity:
      description: The syntax of the request entity is correct but was unable to process the contained instructions.
      remediation: Provide a semantically correct request.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/unprocessableEntity
    unauthorized:
      description: The request lacks valid authentication credentials for the target resource or operation.
      remediation: Authenticate the user and pass the required authorization with the request.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/unauthorized
    forbidden:
      description: The user or agent is not allowed to perform this operation; authentication credentials were provided in the request, but the server considers them insufficient to grant access.
      remediation: Check the user's permissions and entitlements before attempting the operation.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/forbidden
    customerDisabled:
      description: The customer is disabled.
      remediation: Have the customer contact the financial institution for support.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/customerDisabled
    antiMalwareRequired:
      description: The financial institution requires the customer to have anti-malware software installed.
      remediation: Direct the user to the software requirements guide to install the correct anti-malware software.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/antiMalwareRequired
    modificationForbidden:
      description: The customer is properly authenticated but not authorized to create, modify, or delete resources.
      remediation: Avoid modification operation for customers with read-only authorization.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/modificationForbidden
    challengeRequired:
      description: The operation requires the customer to complete an identity challenge.
      remediation: Complete the challenge as per the problem response, and add an additional `Challenge` header to the call.
      attributes:
        $ref: '#/components/schemas/requiredIdentityChallenge'
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/challengeRequired
    challengeBlocked:
      description: The user has failed challenges too many times and is blocked from attempting more or performing operations which require additional authentication.
      remediation: Have the user end their login session and login again.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/challengeBlocked
    noIdentityChallengeFactors:
      description: This operation requires an identity challenge, but the user does not have the necessary registered authentication factors.
      remediation: Have the user register one or more challenge security code delivery factors.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/noIdentityChallengeFactors
    invalidIdentityChallengeHeader:
      description: The additional on-time `Challenge` header in this request is expired, already used, or otherwise invalid.
      remediation: Supply a valid, unexpired, unclaimed `Challenge` header in the request.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/invalidIdentityChallengeHeader
    tooManyRequests:
      description: The client has sent too many requests in a given amount of time, exceeding rate limiting.
      remediation: Slow down the rate of API calls.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/tooManyRequests
  responses:
    '401':
      description: |
        Unauthorized. The operation requires authentication but no authentication or insufficient authentication was given.

        This problem response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/unauthorized/v1.0.0`](https://static.api.apiture.com/errors/unauthorized/v1.0.0)<br>
          The request lacks valid authentication credentials for the target resource or operation.
          Remediation: Authenticate the user and pass the required authorization with the request.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/unauthorized'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/unauthorized/v1.0.0
              title: Unauthorized
              status: 401
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request lacks valid authentication credentials
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/unauthorized/v1.0.0
              title: Unauthorized
              status: 401
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request lacks valid authentication credentials
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/401
    '403':
      description: |
        Forbidden. The authenticated caller is not authorized to perform the requested operation.

        This problem response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/forbidden/v1.0.0`](https://static.api.apiture.com/errors/forbidden/v1.0.0)<br>
          The user or agent is not allowed to perform this operation; authentication credentials were provided in the request, but the server considers them insufficient to grant access.
          Remediation: Check the user's permissions and entitlements before attempting the operation.

        * [`https://static.api.apiture.com/errors/customerDisabled/v1.0.0`](https://static.api.apiture.com/errors/customerDisabled/v1.0.0)<br>
          The customer is disabled.
          Remediation: Have the customer contact the financial institution for support.

        * [`https://static.api.apiture.com/errors/antiMalwareRequired/v1.0.0`](https://static.api.apiture.com/errors/antiMalwareRequired/v1.0.0)<br>
          The financial institution requires the customer to have anti-malware software installed.
          Remediation: Direct the user to the software requirements guide to install the correct anti-malware software.

        * [`https://static.api.apiture.com/errors/modificationForbidden/v1.0.0`](https://static.api.apiture.com/errors/modificationForbidden/v1.0.0)<br>
          The customer is properly authenticated but not authorized to create, modify, or delete resources.
          Remediation: Avoid modification operation for customers with read-only authorization.

        * [`https://static.api.apiture.com/errors/challengeRequired/v1.0.0`](https://static.api.apiture.com/errors/challengeRequired/v1.0.0)<br>
          The operation requires the customer to complete an identity challenge.
          Remediation: Complete the challenge as per the problem response, and add an additional `Challenge` header to the call.
        The `attributes` object in the error may have the properties defined by the [`requiredIdentityChallenge` schema](#schema-requiredIdentityChallenge).
        * [`https://static.api.apiture.com/errors/challengeBlocked/v1.0.0`](https://static.api.apiture.com/errors/challengeBlocked/v1.0.0)<br>
          The user has failed challenges too many times and is blocked from attempting more or performing operations which require additional authentication.
          Remediation: Have the user end their login session and login again.

        * [`https://static.api.apiture.com/errors/noIdentityChallengeFactors/v1.0.0`](https://static.api.apiture.com/errors/noIdentityChallengeFactors/v1.0.0)<br>
          This operation requires an identity challenge, but the user does not have the necessary registered authentication factors.
          Remediation: Have the user register one or more challenge security code delivery factors.

        * [`https://static.api.apiture.com/errors/invalidIdentityChallengeHeader/v1.0.0`](https://static.api.apiture.com/errors/invalidIdentityChallengeHeader/v1.0.0)<br>
          The additional on-time `Challenge` header in this request is expired, already used, or otherwise invalid.
          Remediation: Supply a valid, unexpired, unclaimed `Challenge` header in the request.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/forbidden'
        - $ref: '#/components/x-apiture-errors/customerDisabled'
        - $ref: '#/components/x-apiture-errors/antiMalwareRequired'
        - $ref: '#/components/x-apiture-errors/modificationForbidden'
        - $ref: '#/components/x-apiture-errors/challengeRequired'
        - $ref: '#/components/x-apiture-errors/challengeBlocked'
        - $ref: '#/components/x-apiture-errors/noIdentityChallengeFactors'
        - $ref: '#/components/x-apiture-errors/invalidIdentityChallengeHeader'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/forbidden/v1.0.0
              title: Forbidden
              status: 403
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request has valid authentication, but the authenticated agent is forbidden from accessing this resource or operation
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/forbidden/v1.0.0
              title: Forbidden
              status: 403
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request has valid authentication, but the authenticated agent is forbidden from accessing this resource or operation
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/403
    '429':
      description: |
        Too Many Requests. The client has sent too many requests in a given amount of time.

        This problem response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/tooManyRequests/v1.0.0`](https://static.api.apiture.com/errors/tooManyRequests/v1.0.0)<br>
          The client has sent too many requests in a given amount of time, exceeding rate limiting.
          Remediation: Slow down the rate of API calls.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/tooManyRequests'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/tooManyRequests/v1.0.0
              title: Too Many Requests
              status: 429
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The user has sent too many requests in a given amount of time.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/tooManyRequests/v1.0.0
              title: Too Many Requests
              status: 429
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The user has sent too many requests in a given amount of time.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/429
    4XX:
      description: Client Request Problem. The client request had a problem not listed under another specific 400-level HTTP response code. View the `detail` in the problem response for additional details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/methodNotAllowed/v1.0.0
              title: Method Not Allowed
              status: 405
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: This HTTP method is not allowed for the given resource URL.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/methodNotAllowed/v1.0.0
              title: Method Not Allowed
              status: 405
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: This HTTP method is not allowed for the given resource URL.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/4XX
    5XX:
      description: Server Problem. The server encountered a problem not listed under another specific 500-level HTTP response code. View the `detail` in the problem response for additional details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/gatewayTimeout/v1.0.0
              title: Insufficient Storage
              status: 507
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The server is unable to store the representation needed to successfully complete the request.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/gatewayTimeout/v1.0.0
              title: Insufficient Storage
              status: 507
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The server is unable to store the representation needed to successfully complete the request.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/5XX
x-resolved-from: ../../currencies/status-codes-openapi.yaml
x-resolved-at: '2024-12-09T22:17:42.200Z'
x-apiture-annotated-at: '2024-12-09T22:17:42.450Z'
