Tribe Payments Direct payments API

Some supported ASPSPs provide a more direct approach to some actions. Instead of retrieving prior user consent, actions can be executed directly, followed by an SCA confirmation in the next step. [Direct action security](#security--direct-security) is also different from the usual action [security](#security).

Operations 3

POST /direct/payments/{bankIdentifier} Initiate a single new payment.
GET /direct/payments/{bankIdentifier}/{paymentId} Retrieve content of an initiated payment.
GET /direct/payments/{bankIdentifier}/{paymentId}/status Retrieve current status of an initiated payment.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tribe-payments-direct-payments-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

tribe-payments-direct-payments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: 'Open Banking: TPP API v2 Direct payments API'
  description: Endpoints for interacting with ASPSPs accounts.
  version: 2.0.0
servers:
- url: '%tpp_api_url%/tpp/v2'
security:
- tokenAuth: []
- clientId: []
tags:
- name: Direct payments
  description: 'Some supported ASPSPs provide a more direct approach to some actions. Instead of retrieving prior user consent, actions can be executed directly,

    followed by an SCA confirmation in the next step. [Direct action security](#security--direct-security) is also different from the usual action [security](#security).'
paths:
  /direct/payments/{bankIdentifier}:
    post:
      tags:
      - Direct payments
      summary: Initiate a single new payment.
      description: "The action is initiated by the TPP, and it is a part of the [Direct_payment flow](#appendix--workflow--direct-payment). \n\nThe `bankIdentifier` parameter in the URL may be omitted. In this case, the user is redirected to the `scaRedirect` URL from the response and then needs to select the BANK through which the payment is executed. \n\nIn the `TPP-Redirect-URI` header, the URL to which the PSU is redirected after payment confirmation needs to be provided.\nAdditional parameters indicating the `status` and `paymentId` (optionally, with a message) are added to the URL after the redirect.\nThis can be used to indicate if payment was confirmed successfully."
      parameters:
      - name: TPP-Redirect-URI
        in: header
        required: true
        description: The URI of the TPP, where the transaction flow redirects to after the successful SCA.
        schema:
          type: string
          example: http://example.com/payment-initiated
      - name: bankIdentifier
        in: path
        required: true
        allowEmptyValue: true
        description: The identifier of a BANK to initiate the payment. In case the parameter is not provided, the user has the option to select their bank through the GUI during the SCA confirmation.
        schema:
          type: string
          example: MOOWGB22
      - name: Digest
        in: header
        description: A hash (SHA256, SHA512) of the request content encoded in base64.
        required: false
        schema:
          type: string
          example: SHA-256=LsUn8L4rScYKhYKf8eNr5QIbiB+1n9wFioBJ0C3XSU8=
      - name: X-Request-Id
        in: header
        description: A randomly generated request ID - must be a valid UUID.
        required: true
        schema:
          type: string
          example: 39c97edf-7469-42af-96ca-169a902fd8a6
      - name: Signature
        in: header
        description: A calculated HTTP Signature for the request.
        required: false
        schema:
          type: string
          example: keyId="SN=3595A71FCB74E837959C3F0CF5F73A03B31F1952,CA=TribePayments CA",algorithm="rsa-sha256",headers="digest x-request-id x-client-id",signature="fNQmDCpFT5K8qAx0bNvNQsRfCm9mGKN/Srv7pufS07s8VuEGGk7HTVGVfwkYFrhpnXxtWimu77/3o+U+v61ZYsLdfOyKpv3v8u3jwee3warI6u+FyZbBvMFDnzWND68lecWB5OTdh6GlNQp8fQKp/ef/mJOVGhZ1wMVVTMH9kbH6/hVV6OoYpMs0kpIpfglnWXDJSiu8glTAGi7iC5n9eWCDunoH0a2QT2vr/gI6acEvPIin2Cqm8rIGCYk43G8K1fhdVaMDvhkyG76ld/IM7wVWzBkxiwrDYf1h3nDpzxPhJKHUv4d/BMcUd2JuVW+y5yYMd8RUnf6Ti5mmSEC90w=="
      - name: Tpp-Signature-Certificate
        in: header
        description: A certificate that was used to sign the request. Provided as a base64 encoded value.
        required: false
        schema:
          type: string
          example: MIIFLjCCBBagAwIBAgIBEzANBgkqhkiG9w0BAQsFADCBszElMCMGCSqGSIb3DQEJARYWaW5mb0B0cmliZXBheW1lbnRzLmNvbTElMCMGA1UEAwwcVHBwU2FuZGJveCBRc2VhbCBDZXJ0aWZpY2F0ZTEZMBcGA1UECwwQT3BlbmJhbmtpbmcgVGVhbTEZMBcGA1UECgwQVHJpYmVQYXltZW50cyBDQTEPMA0GA1UEBwwGTG9uZG9uMQ8wDQYDVQQIDAZMb25kb24xCzAJBgNVBAYTAkdCMB4XDTIxMDkyODE1MTA0NVoXDTMxMDkyNjE1MTA0NVowgcsxCzAJBgNVBAYTAkdCMQ8wDQYDVQQIDAZMb25kb24xDzANBgNVBAcMBkxvbmRvbjEWMBQGA1UECgwNVHJpYmVQYXltZW50czEZMBcGA1UECwwQT3BlbmJhbmtpbmcgVGVhbTElMCMGA1UEAwwcVHBwU2FuZGJveCBRc2VhbCBDZXJ0aWZpY2F0ZTElMCMGCSqGSIb3DQEJARYWaW5mb0B0cmliZXBheW1lbnRzLmNvbTEZMBcGA1UEYQwQR0ItVFNULTAwMDAwMDAwMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxZeuMSN1RyuMj/xNfwPzfW3ffepWQ4PYSE6kdja75EALosifw6n5RhDte9De57xxXnQAzyJcCGC/4GCpMfzecN/hcmSxHZhe8zbITqRmyLPXbcaEswDnGYRxIGNqGG2RWKZ6I0wSGK89t1Fw1Kz8ob8Lzh6k0UQNfujYOItTaVM4JCgKp5yjTb0HWcqp7X2Jb0eamMWfY5cxKolbJYSIlclt4loAhpEdCiqVJi5hc05+GrsSjchjNQzUpwot/GZFfm2faBPSR5sfxV0B+pXLehmzXdF7nA6Q2hAqXb8jjpbIXgDzcSRdaP7kNBLzXzNuUUUNf2LL4rFkTn5k2XgrcCAwEAAaOCATEwggEtMB0GA1UdDgQWBBSmFBRxrHvtWHkjDHg6Do6GrW5evDAfBgNVHSMEGDAWgBSmFBRxrHvtWHkjDHg6Do6GrW5evDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIFoDBKBgNVHREEQzBBggtleGFtcGxlLmNvbYIPd3d3LmV4YW1wbGUuY29tghBtYWlsLmV4YW1wbGUuY29tgg9mdHAuZXhhbXBsZS5jb20wLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMEQGCCsGAQUFBwEBBDgwNjA0BggrBgEFBQcwAYYoaHR0cDovL3RwcC12YWxpZGF0b3Iub3BlbmJhbmsubG9jYWwvb2NzcDATBgNVHSUEDDAKBggrBgEFBQcDCTANBgkqhkiG9w0BAQsFAAOCAQEAXgIfFYqAv/KKh/7l8XfnsQC6QXhQ6h+0Cm9lO03XxoUcZDGlPLYrjhaiTs7gfGcQjktBRnY+mSLMVfea+bSHI3tj+e8fkRNKryU2wLQpFfmTN2e7lF5tIc1KxHusxU5nSqRxVq/tmGx4Jt2G2lVmdjdrBGnpzbce8+YjPJGAHB+lxC7rX2qp8yNvFXWAEn8T6FjZN7/yBqIzIXUyGAuAuFB/zQm1O73JLhkeLJA6+5NYRgPGYMANjsMmQvUu68Ztk8wX1+HYXcHIQ6NHuDhjtzYwMPio9rr2uXBvIopKwkOivic6vHMb4pEiowZjBswIaN2ppjtn8Z+VFDb8/2fKyA==
      - name: Date
        in: header
        required: false
        description: A standard HTTP header element defines the date and time at which the request originated (as defined by RFC 7231).
        schema:
          type: string
          example: Thu, 18 Apr 2024 11:02:45 GMT
      requestBody:
        description: The information about the executed payment.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SinglePayment'
        required: true
      responses:
        '201':
          description: A successful response indicating a payment initiation request was created. Payment execution does not start until the PSU performs the SCA.
          headers:
            X-Request-Id:
              schema:
                type: string
                example: 39c97edf-7469-42af-96ca-169a902fd8a6
              description: The same value as provided in the request.
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
        '400':
          description: A generic error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized, e.g., expired token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden, not allowed to access the resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '405':
          description: A forbidden HTTP method.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAllowedError'
        '406':
          description: An unsupported Accept header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAcceptableError'
        '415':
          description: An unsupported Content-Type header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnsupportedMediaTypeError'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessExceededError'
        '500':
          description: An Internal Server Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
  /direct/payments/{bankIdentifier}/{paymentId}:
    get:
      tags:
      - Direct payments
      summary: Retrieve content of an initiated payment.
      description: The action is initiated by the TPP, and it is a part of the [Get data flow](#appendix--workflow--get-data).
      parameters:
      - name: paymentId
        in: path
        required: true
        description: The ID of a payment to retrieve.
        schema:
          type: string
      - name: bankIdentifier
        in: path
        required: true
        allowEmptyValue: true
        description: The identifier of a BANK to initiate the payment. In case the parameter is not provided, the user has the option to select their bank through the GUI during the SCA confirmation.
        schema:
          type: string
          example: MOOWGB22
      - name: Digest
        in: header
        description: A hash (SHA256, SHA512) of the request content encoded in base64.
        required: false
        schema:
          type: string
          example: SHA-256=LsUn8L4rScYKhYKf8eNr5QIbiB+1n9wFioBJ0C3XSU8=
      - name: X-Request-Id
        in: header
        description: A randomly generated request ID - must be a valid UUID.
        required: true
        schema:
          type: string
          example: 39c97edf-7469-42af-96ca-169a902fd8a6
      - name: Signature
        in: header
        description: A calculated HTTP Signature for the request.
        required: false
        schema:
          type: string
          example: keyId="SN=3595A71FCB74E837959C3F0CF5F73A03B31F1952,CA=TribePayments CA",algorithm="rsa-sha256",headers="digest x-request-id x-client-id",signature="fNQmDCpFT5K8qAx0bNvNQsRfCm9mGKN/Srv7pufS07s8VuEGGk7HTVGVfwkYFrhpnXxtWimu77/3o+U+v61ZYsLdfOyKpv3v8u3jwee3warI6u+FyZbBvMFDnzWND68lecWB5OTdh6GlNQp8fQKp/ef/mJOVGhZ1wMVVTMH9kbH6/hVV6OoYpMs0kpIpfglnWXDJSiu8glTAGi7iC5n9eWCDunoH0a2QT2vr/gI6acEvPIin2Cqm8rIGCYk43G8K1fhdVaMDvhkyG76ld/IM7wVWzBkxiwrDYf1h3nDpzxPhJKHUv4d/BMcUd2JuVW+y5yYMd8RUnf6Ti5mmSEC90w=="
      - name: Tpp-Signature-Certificate
        in: header
        description: A certificate that was used to sign the request. Provided as a base64 encoded value.
        required: false
        schema:
          type: string
          example: MIIFLjCCBBagAwIBAgIBEzANBgkqhkiG9w0BAQsFADCBszElMCMGCSqGSIb3DQEJARYWaW5mb0B0cmliZXBheW1lbnRzLmNvbTElMCMGA1UEAwwcVHBwU2FuZGJveCBRc2VhbCBDZXJ0aWZpY2F0ZTEZMBcGA1UECwwQT3BlbmJhbmtpbmcgVGVhbTEZMBcGA1UECgwQVHJpYmVQYXltZW50cyBDQTEPMA0GA1UEBwwGTG9uZG9uMQ8wDQYDVQQIDAZMb25kb24xCzAJBgNVBAYTAkdCMB4XDTIxMDkyODE1MTA0NVoXDTMxMDkyNjE1MTA0NVowgcsxCzAJBgNVBAYTAkdCMQ8wDQYDVQQIDAZMb25kb24xDzANBgNVBAcMBkxvbmRvbjEWMBQGA1UECgwNVHJpYmVQYXltZW50czEZMBcGA1UECwwQT3BlbmJhbmtpbmcgVGVhbTElMCMGA1UEAwwcVHBwU2FuZGJveCBRc2VhbCBDZXJ0aWZpY2F0ZTElMCMGCSqGSIb3DQEJARYWaW5mb0B0cmliZXBheW1lbnRzLmNvbTEZMBcGA1UEYQwQR0ItVFNULTAwMDAwMDAwMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxZeuMSN1RyuMj/xNfwPzfW3ffepWQ4PYSE6kdja75EALosifw6n5RhDte9De57xxXnQAzyJcCGC/4GCpMfzecN/hcmSxHZhe8zbITqRmyLPXbcaEswDnGYRxIGNqGG2RWKZ6I0wSGK89t1Fw1Kz8ob8Lzh6k0UQNfujYOItTaVM4JCgKp5yjTb0HWcqp7X2Jb0eamMWfY5cxKolbJYSIlclt4loAhpEdCiqVJi5hc05+GrsSjchjNQzUpwot/GZFfm2faBPSR5sfxV0B+pXLehmzXdF7nA6Q2hAqXb8jjpbIXgDzcSRdaP7kNBLzXzNuUUUNf2LL4rFkTn5k2XgrcCAwEAAaOCATEwggEtMB0GA1UdDgQWBBSmFBRxrHvtWHkjDHg6Do6GrW5evDAfBgNVHSMEGDAWgBSmFBRxrHvtWHkjDHg6Do6GrW5evDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIFoDBKBgNVHREEQzBBggtleGFtcGxlLmNvbYIPd3d3LmV4YW1wbGUuY29tghBtYWlsLmV4YW1wbGUuY29tgg9mdHAuZXhhbXBsZS5jb20wLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMEQGCCsGAQUFBwEBBDgwNjA0BggrBgEFBQcwAYYoaHR0cDovL3RwcC12YWxpZGF0b3Iub3BlbmJhbmsubG9jYWwvb2NzcDATBgNVHSUEDDAKBggrBgEFBQcDCTANBgkqhkiG9w0BAQsFAAOCAQEAXgIfFYqAv/KKh/7l8XfnsQC6QXhQ6h+0Cm9lO03XxoUcZDGlPLYrjhaiTs7gfGcQjktBRnY+mSLMVfea+bSHI3tj+e8fkRNKryU2wLQpFfmTN2e7lF5tIc1KxHusxU5nSqRxVq/tmGx4Jt2G2lVmdjdrBGnpzbce8+YjPJGAHB+lxC7rX2qp8yNvFXWAEn8T6FjZN7/yBqIzIXUyGAuAuFB/zQm1O73JLhkeLJA6+5NYRgPGYMANjsMmQvUu68Ztk8wX1+HYXcHIQ6NHuDhjtzYwMPio9rr2uXBvIopKwkOivic6vHMb4pEiowZjBswIaN2ppjtn8Z+VFDb8/2fKyA==
      - name: Date
        in: header
        required: false
        description: A standard HTTP header element defines the date and time at which the request originated (as defined by RFC 7231).
        schema:
          type: string
          example: Thu, 18 Apr 2024 11:02:45 GMT
      responses:
        '200':
          description: A successful response returns the content of a previously initiated payment.
          headers:
            X-Request-Id:
              schema:
                type: string
                example: 39c97edf-7469-42af-96ca-169a902fd8a6
              description: The same value as provided in the request.
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SinglePayment'
        '400':
          description: A generic error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized, e.g., expired token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden, not allowed to access the resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: Forbidden, not allowed to access the resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '405':
          description: A forbidden HTTP method.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAllowedError'
        '406':
          description: An unsupported Accept header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAcceptableError'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessExceededError'
        '500':
          description: An Internal Server Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
  /direct/payments/{bankIdentifier}/{paymentId}/status:
    get:
      tags:
      - Direct payments
      summary: Retrieve current status of an initiated payment.
      description: The action is initiated by the TPP, and it is a part of the [Get data flow](#appendix--workflow--get-data).
      parameters:
      - name: paymentId
        in: path
        required: true
        description: The ID of a payment to retrieve.
        schema:
          type: string
      - name: bankIdentifier
        in: path
        required: true
        allowEmptyValue: true
        description: The identifier of a BANK to initiate the payment. In case the parameter is not provided, the user has the option to select their bank through the GUI during the SCA confirmation.
        schema:
          type: string
          example: MOOWGB22
      - name: Digest
        in: header
        description: A hash (SHA256, SHA512) of the request content encoded in base64.
        required: false
        schema:
          type: string
          example: SHA-256=LsUn8L4rScYKhYKf8eNr5QIbiB+1n9wFioBJ0C3XSU8=
      - name: X-Request-Id
        in: header
        description: A randomly generated request ID - must be a valid UUID.
        required: true
        schema:
          type: string
          example: 39c97edf-7469-42af-96ca-169a902fd8a6
      - name: Signature
        in: header
        description: A calculated HTTP Signature for the request.
        required: false
        schema:
          type: string
          example: keyId="SN=3595A71FCB74E837959C3F0CF5F73A03B31F1952,CA=TribePayments CA",algorithm="rsa-sha256",headers="digest x-request-id x-client-id",signature="fNQmDCpFT5K8qAx0bNvNQsRfCm9mGKN/Srv7pufS07s8VuEGGk7HTVGVfwkYFrhpnXxtWimu77/3o+U+v61ZYsLdfOyKpv3v8u3jwee3warI6u+FyZbBvMFDnzWND68lecWB5OTdh6GlNQp8fQKp/ef/mJOVGhZ1wMVVTMH9kbH6/hVV6OoYpMs0kpIpfglnWXDJSiu8glTAGi7iC5n9eWCDunoH0a2QT2vr/gI6acEvPIin2Cqm8rIGCYk43G8K1fhdVaMDvhkyG76ld/IM7wVWzBkxiwrDYf1h3nDpzxPhJKHUv4d/BMcUd2JuVW+y5yYMd8RUnf6Ti5mmSEC90w=="
      - name: Tpp-Signature-Certificate
        in: header
        description: A certificate that was used to sign the request. Provided as a base64 encoded value.
        required: false
        schema:
          type: string
          example: MIIFLjCCBBagAwIBAgIBEzANBgkqhkiG9w0BAQsFADCBszElMCMGCSqGSIb3DQEJARYWaW5mb0B0cmliZXBheW1lbnRzLmNvbTElMCMGA1UEAwwcVHBwU2FuZGJveCBRc2VhbCBDZXJ0aWZpY2F0ZTEZMBcGA1UECwwQT3BlbmJhbmtpbmcgVGVhbTEZMBcGA1UECgwQVHJpYmVQYXltZW50cyBDQTEPMA0GA1UEBwwGTG9uZG9uMQ8wDQYDVQQIDAZMb25kb24xCzAJBgNVBAYTAkdCMB4XDTIxMDkyODE1MTA0NVoXDTMxMDkyNjE1MTA0NVowgcsxCzAJBgNVBAYTAkdCMQ8wDQYDVQQIDAZMb25kb24xDzANBgNVBAcMBkxvbmRvbjEWMBQGA1UECgwNVHJpYmVQYXltZW50czEZMBcGA1UECwwQT3BlbmJhbmtpbmcgVGVhbTElMCMGA1UEAwwcVHBwU2FuZGJveCBRc2VhbCBDZXJ0aWZpY2F0ZTElMCMGCSqGSIb3DQEJARYWaW5mb0B0cmliZXBheW1lbnRzLmNvbTEZMBcGA1UEYQwQR0ItVFNULTAwMDAwMDAwMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxZeuMSN1RyuMj/xNfwPzfW3ffepWQ4PYSE6kdja75EALosifw6n5RhDte9De57xxXnQAzyJcCGC/4GCpMfzecN/hcmSxHZhe8zbITqRmyLPXbcaEswDnGYRxIGNqGG2RWKZ6I0wSGK89t1Fw1Kz8ob8Lzh6k0UQNfujYOItTaVM4JCgKp5yjTb0HWcqp7X2Jb0eamMWfY5cxKolbJYSIlclt4loAhpEdCiqVJi5hc05+GrsSjchjNQzUpwot/GZFfm2faBPSR5sfxV0B+pXLehmzXdF7nA6Q2hAqXb8jjpbIXgDzcSRdaP7kNBLzXzNuUUUNf2LL4rFkTn5k2XgrcCAwEAAaOCATEwggEtMB0GA1UdDgQWBBSmFBRxrHvtWHkjDHg6Do6GrW5evDAfBgNVHSMEGDAWgBSmFBRxrHvtWHkjDHg6Do6GrW5evDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIFoDBKBgNVHREEQzBBggtleGFtcGxlLmNvbYIPd3d3LmV4YW1wbGUuY29tghBtYWlsLmV4YW1wbGUuY29tgg9mdHAuZXhhbXBsZS5jb20wLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMEQGCCsGAQUFBwEBBDgwNjA0BggrBgEFBQcwAYYoaHR0cDovL3RwcC12YWxpZGF0b3Iub3BlbmJhbmsubG9jYWwvb2NzcDATBgNVHSUEDDAKBggrBgEFBQcDCTANBgkqhkiG9w0BAQsFAAOCAQEAXgIfFYqAv/KKh/7l8XfnsQC6QXhQ6h+0Cm9lO03XxoUcZDGlPLYrjhaiTs7gfGcQjktBRnY+mSLMVfea+bSHI3tj+e8fkRNKryU2wLQpFfmTN2e7lF5tIc1KxHusxU5nSqRxVq/tmGx4Jt2G2lVmdjdrBGnpzbce8+YjPJGAHB+lxC7rX2qp8yNvFXWAEn8T6FjZN7/yBqIzIXUyGAuAuFB/zQm1O73JLhkeLJA6+5NYRgPGYMANjsMmQvUu68Ztk8wX1+HYXcHIQ6NHuDhjtzYwMPio9rr2uXBvIopKwkOivic6vHMb4pEiowZjBswIaN2ppjtn8Z+VFDb8/2fKyA==
      - name: Date
        in: header
        required: false
        description: A standard HTTP header element defines the date and time at which the request originated (as defined by RFC 7231).
        schema:
          type: string
          example: Thu, 18 Apr 2024 11:02:45 GMT
      responses:
        '200':
          description: 'A successful response returns the content with the transaction status indication.


            The transaction status is filled with codes of the ISO 20022.'
          headers:
            X-Request-Id:
              schema:
                type: string
                example: 39c97edf-7469-42af-96ca-169a902fd8a6
              description: The same value as provided in the request.
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionStatus'
        '400':
          description: A generic error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized, e.g., expired token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden, not allowed to access the resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: Forbidden, not allowed to access the resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '405':
          description: A forbidden HTTP method.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAllowedError'
        '406':
          description: An unsupported Accept header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAcceptableError'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessExceededError'
        '500':
          description: An Internal Server Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
components:
  schemas:
    PaymentResponse:
      type: object
      description: A JSON body.
      required:
      - paymentId
      - transactionStatus
      properties:
        paymentId:
          type: string
          description: The unique payment identifier.
          example: 1234-wertiq-983
          maxLength: 255
        transactionStatus:
          type: string
          description: The transaction status is filled with codes of ISO 20022. See [Payment status](#appendix--enum--payment-statuses).
          example: RCVD
          minLength: 4
          maxLength: 4
        _links:
          $ref: '#/components/schemas/PaymentLinks'
    BankReference:
      type: object
      description: The information about the payment receiver's institution. Mandatory to use with the [SWIFT](#appendix--enum--payment-schemes) payment scheme.
      properties:
        name:
          type: string
          description: The name of the institution.
          example: Example bank
        bic:
          type: string
          description: The Business Identifier Code is an international standard for routing business transactions and identifying business parties.
          example: FAKEBICX
        country:
          type: string
          description: Two characters as defined by ISO 3166.
          maxLength: 2
          minLength: 2
          example: GB
    AccountReference:
      type: object
      description: The identifier of the addressed account.
      properties:
        iban:
          description: The IBAN of the account.
          type: string
          example: GB29NWBK60161331926819
          maxLength: 34
        bban:
          type: string
          description: The local ASPSP identifier of the account.
          example: '29823529'
          maxLength: 30
        accountNumber:
          type: string
          description: 'The account number. Used to identify the account in the United Kingdom.

            '
          minLength: 8
          maxLength: 8
          example: '29823529'
        sortCode:
          type: string
          description: The sort code. Used to identify the account in the United Kingdom.
          minLength: 6
          maxLength: 6
          example: '902127'
    UnsupportedMediaTypeError:
      type: object
      description: An unsupported `Content-Type` header.
      required:
      - code
      - requestId
      - timestamp
      properties:
        code:
          type: string
          description: The message code to explain the nature of the underlying error.
          example: REQUEST_FORMAT_INVALID
        title:
          type: string
          description: The short, human-readable description of the error.
          example: Only application/json supported
          maxLength: 70
        timestamp:
          type: string
          description: ISO-8601 timestamp
          example: 2023-04-19T13:33:42+0000
        requestId:
          type: string
          description: The request ID as communicated in the `X-Request-Id` header.
          example: 39c97edf-7469-42af-96ca-169a902fd8a6
        additionalErrors:
          $ref: '#/components/schemas/EmptyAdditionalErrors'
    TransactionStatus:
      type: object
      description: Contains status of the payment.
      properties:
        transactionStatus:
          type: string
          description: The transaction status is filled with codes of ISO 20022. See [Payment status](#appendix--enum--payment-statuses).
          example: RCVD
          minLength: 4
          maxLength: 4
    NotFoundError:
      type: object
      description: Not found.
      required:
      - code
      - requestId
      - timestamp
      properties:
        code:
          type: string
          description: The message code to explain the nature of the underlying error.
          example: RESOURCE_NOT_FOUND
        title:
          type: string
          description: The short, human-readable description of the error.
          example: Account not found
          maxLength: 70
        timestamp:
          type: string
          description: ISO-8601 timestamp
          example: 2023-04-19T13:33:42+0000
        requestId:
          type: string
          description: The request ID as communicated in the `X-Request-Id` header.
          example: 39c97edf-7469-42af-96ca-169a902fd8a6
        additionalErrors:
          $ref: '#/components/schemas/EmptyAdditionalErrors'
    NotAcceptableError:
      type: object
      description: An unsupported `Accept` header.
      required:
      - code
      - requestId
      - timestamp
      properties:
        code:
          type: string
          description: The message code to explain the nature of the underlying error.
          example: REQUESTED_FORMATS_INVALID
        title:
          type: string
          description: The short, human-readable description of the error.
          example: Only application/json supported
          maxLength: 70
        timestamp:
          type: string
          description: ISO-8601 timestamp
          example: 2023-04-19T13:33:42+0000
        requestId:
          type: string
          description: The request ID as communicated in the `X-Request-Id` header.
          example: 39c97edf-7469-42af-96ca-169a902fd8a6
        additionalErrors:
          $ref: '#/components/schemas/EmptyAdditionalErrors'
    EmptyAdditionalErrors:
      type: array
      example: []
      items:
        $ref: '#/components/schemas/AdditionalError'
    NotAllowedError:
      type: object
      description: A forbidden HTTP method.
      required:
      - code
      - requestId
      - timestamp
      properties:
        code:
          type: string
          description: The message code to explain the nature of the underlying error.
          example: SERVICE_INVALID
        title:
          type: string
          description: The short, human-readable description of the error.
          example: Used HTTP method not supported for current action
          maxLength: 70
        timestamp:
          type: string
          description: ISO-8601 timestamp
          example: 2023-04-19T13:33:42+0000
        requestId:
          type: string
          description: The request ID as communicated in the `X-Request-Id` header.
          example: 39c97edf-7469-42af-96ca-169a902fd8a6
        additionalErrors:
          $ref: '#/components/schemas/EmptyAdditionalErrors'
    ForbiddenError:
      type: object
      description: The forbidden error object example.
      required:
      - code
      - requestId
      - timestamp
      properties:
        code:
          type: string
          description: The message code to explain the nature of the underlying error.
          example: ROLE_INVALID
        title:
          type: string
          description: The short, human-readable description of the error.
          example: Role not valid for current resource
          maxLength: 70
        timestamp:
          type: string
          description: ISO-8601 timestamp
          example: 2023-04-19T13:33:42+0000
        requestId:
          type: string
          description: The request ID as communicated in the `X-Request-Id` header.
          example: 39c97edf-7469-42af-96ca-169a902fd8a6
        additionalErrors:
          $ref: '#/components/schemas/EmptyAdditionalErrors'
    InternalServerError:
      type: object
      description: The forbidden error object example.
      required:
      - code
      - requestId
      - timestamp
      properties:
        code:
          type: string
          description: The message code to explain the nature of the underlying error.
          example: INTERNAL_ERROR
        title:
          type: string
          description: The short, human-readable description of the error.
          example: Internal Error
          maxLength: 70
        timestamp:
          type: string
          description: ISO-8601 timestamp
          example: 2023-04-19T13:33:42+0000
        requestId:
          type: string
          description: The request ID as communicated in the `X-Request-Id` header.
          example: 39c97edf-7469-42af-96ca-169a902fd8a6
        additionalErrors:
          $ref: '#/components/schemas/EmptyAdditionalErrors'
    UnauthorizedError:
      type: object
      description: The unauthorized error object example.
      required:
      - code
      - requestId
      - timestamp
      properties:
        code:
          type: string
          description: The message code to explain the nature of the underlying error.
          example: TOKEN_INVALID
        title:
          type: string
          description: The short, human-readable description of the error.
          example: OAuth token not valid
          maxLength: 70
        timestamp:
          type: string
          description: ISO-8601 timestamp
          example: 2023-04-19T13:33:42+0000
        requestId:
          type: string
          description: The request ID as communicated in the `X-Request-Id` header.
          example: 39c97edf-7469-42af-96ca-169a902fd8a6
        additionalErrors:
          $ref: '#/components/schemas/EmptyAdditionalErrors'
    Error:
      type: object
      description: The generic error object example.
      required:
      - code
      - requestId
      - timestamp
      properties:
        code:
          type: string
          description: The message code to explain the nature of the underlying error.
          example: FORMAT_ERROR
        title:
          type: string
          description: The short, human-readable description of the error.
          example: Error in provided content
          maxLength: 70
        timestamp:
          type: string
          description: ISO-8601 timestamp
          example: 2023-04-19T13:33:42+0000
        requestId:
          type: string
          description: The request ID as communicated in the `X-Request-Id` header.
          example: 39c97edf-7469-42af-96ca-169a902fd8a6
        additionalErrors:
          type: array
          description: Might be used if more than one error is to be communicated.
          items:
            $ref: '#/components/schemas/AdditionalError'
    SinglePayment:
      type: object
      description: A JSON structure initiating a single payment.
      required:
      - instructedAmount
      - creditorAccount
      - creditorName
      properties:
        paymentScheme:
          type: string
          example: SCT
          description: Describes which payment scheme is used. See [Payment Schemes](#appendix--enum--payment-schemes) for possible values.
          enum:
          - FPS
          - BACS
          - CHAPS
          - SCT
          - SCTI
          - SWIFT
        debtorAccount:
          $ref: '#/components/schemas/AccountReference'
        debtorName:
          type: string
          description: The name of debtor/sender.
          example: John Doe
          maxLength: 70
        creditorAccount:
          $ref: '#/components/schemas/AccountReference'
        creditorName:
          type: string
          description: The name of creditor/receiver.
          example: John Doe
          maxLength: 70
        remittanceInformationUnstructured:
          type: string
          description: An unstructured reference of the transaction.
          example: Ref1234
          maxLength: 140
        remittanceInformationStructured:
          $ref: '#/components/schemas/RemittanceInformationStructured'
        creditorAddress:
          $ref: '#/components/schemas/CreditorAddress'
        instructedAmount:
          $ref: '#/components/schemas/StructuredAmount'
        creditorBank:
          $ref: '#/components/schemas/BankReference'
    AccessExceededError:
      type: object


# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tribe-payments/refs/heads/main/openapi/tribe-payments-direct-payments-api-openapi.yml