Payments Canada single credit transfer API

The single credit transfer API from Payments Canada — 1 operation(s) for single credit transfer.

Business capability
Real-Time Payment Management BC-1340.50

Operations 1

POST /payments Send Single Credit Transfer #

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/payments-canada-single-credit-transfer-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

payments-canada-single-credit-transfer-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Inbound Participant Payment single credit transfer API
  description: Payments Related Endpoints for RTR Exchange, including Credit Transfer, and associated Enquiries.
  version: 1.1.0
servers:
- url: https://api.payments.ca/rtr-sandbox
  description: Sandbox Environment
tags:
- name: single credit transfer
paths:
  /payments:
    parameters:
    - $ref: '#/components/parameters/TraceabilityId'
    - $ref: '#/components/parameters/Signature'
    - $ref: '#/components/parameters/RequestId'
    post:
      summary: Send Single Credit Transfer
      description: This service can be used by a RTR Sending Participant to send a new RTR Payment to RTR Exchange using ISO 20022 pacs.008 message format.
      tags:
      - single credit transfer
      security:
      - oAuth:
        - client_credentials
      requestBody:
        content:
          application/vnd.api.v1+json:
            schema:
              $ref: '#/components/schemas/SendPayment'
      responses:
        '400':
          $ref: '#/components/responses/400-bad-request'
        '401':
          $ref: '#/components/responses/401-unauthorized'
        '403':
          $ref: '#/components/responses/403-forbidden'
        '404':
          $ref: '#/components/responses/404-not-found'
        '429':
          $ref: '#/components/responses/429-too-many-requests'
        '500':
          $ref: '#/components/responses/500-internal-server-error'
        '503':
          $ref: '#/components/responses/503-service-unavailable'
        '200':
          description: Payment Status Report
          headers:
            x-jws-signature:
              $ref: '#/components/headers/x-jws-signature'
          content:
            application/vnd.api.v1+json:
              schema:
                $ref: '#/components/schemas/PacsResponse'
      operationId: postPayments
      x-operation-id-source: derived
components:
  responses:
    404-not-found:
      description: Resources Not Found
    403-forbidden:
      description: Forbidden
      content:
        application/vnd.api.v1+json:
          schema:
            $ref: types.yaml#/ErrorModel
    500-internal-server-error:
      description: Internal Server Error
      content:
        application/vnd.api.v1+json:
          schema:
            $ref: types.yaml#/ErrorModel
    400-bad-request:
      description: Bad Request - Validation Errors
      content:
        application/vnd.api.v1+json:
          schema:
            $ref: types.yaml#/ErrorModel
    503-service-unavailable:
      description: Service Unavailable - The server cannot handle the request for a service due to temporary maintenance.
    401-unauthorized:
      description: Unauthorized
    429-too-many-requests:
      description: Too many requests; blocked due to rate limiting.
  parameters:
    Signature:
      in: header
      name: x-jws-signature
      description: The JWS signature of request payload.
      schema:
        type: string
        minLength: 1
      required: true
      example: eyJjcml0IjpbImlhdCJdLCJpYXQiOjE2MzcyNzIxMzUyNTIsImFsZyI6IlJTMjU2Iiwia2lkIjoic2lnbi1rZXktY2EwMDAwMDEtMDAxIn0.V7skMzl3rUZK7N5pYVlicNt3TWXNBZyX-rtNV7n5rOc.hBDcIL9ptXWfOsg2pRSTy5dzFsowqjvE0G8dglODTSFpRM-iL1khjomuaYx_LnZV_lTnwkfMHknLdJuG5ucM7gpTZ98a1egjTcQisWHRO0fCr-sxqZXusGIB-hgAnB16Fn9UtdNdzsl447C0c3sSmytYn6eeMu5c6RWVrq-xB5KD9_JGexpyTw3IBvXavpd7h7QgnNzmcdWjV0yVXh74x4gmD8hTSbRkv54MYzap2BSFXLgxCwOrS7Jw0tQzCcP8a7gcOunO9Zr3ArgH-4Ur0VRWxIH4GaDksCBKdx1JdXFUToqG5Ben-FNyAzxkVxtuuwYMCbT1I3-8mCoj7nTtYw
    TraceabilityId:
      description: A unique identifier per RTR Exchange API call for purpose of tracing a request through all systems. For example, traceability-id must be UUID. All the messages sent to other systems will have the same traceability-id as the message that originated them.
      in: header
      name: traceability-id
      schema:
        type: string
        format: uuid
      required: true
      example: e23d32eb-c7f2-4836-a314-557efe95a525
    RequestId:
      in: header
      name: x-uetr
      description: "This is the UETR, a unique ID generated for each Credit Transfer (pacs.008) used for message tracking purposes. This header is required for the following ISO specs:\n  - pacs.008\n  - pacs.004 (post-R1 scope)\n  - pacs.028\n  - camt.029 (post-R1 scope)\n  - camt.056 (post-R1 scope)\n  - camt.006\nNote that this header may be required in new ISO messages that are not listed above in future releases, the list will be updated per release."
      schema:
        type: string
        minLength: 1
        maxLength: 36
      required: false
      example: eb6305c9-1f7f-49de-aed0-16487c27b42d
  schemas:
    IsoHeader:
      type: object
      required:
      - business_application_header
      properties:
        business_application_header:
          $ref: BusinessApplicationHeaderV02.yaml#/definitions/business_application_header
    SendPayment:
      description: pacs.008 message wrapper
      allOf:
      - $ref: '#/components/schemas/IsoHeader'
      - type: object
        required:
        - fi_to_fi_customer_credit_transfer
        properties:
          fi_to_fi_customer_credit_transfer:
            $ref: FIToFICustomerCreditTransferIncomingV08.yaml#/definitions/fi_to_fi_customer_credit_transfer
    SyntaxError:
      description: 'admi.002 message wrapper for syntax errors in API request payload.

        '
      type: object
      required:
      - message_reject
      properties:
        message_reject:
          $ref: MessageRejectV01.yaml#/definitions/message_reject
    PacsResponse:
      allOf:
      - $ref: '#/components/schemas/IsoHeader'
      - oneOf:
        - $ref: '#/components/schemas/SyntaxError'
        - $ref: '#/components/schemas/PaymentStatusReport'
    PaymentStatusReport:
      description: 'pacs.002 message wrapper - There are 2 possible scenarios of pacs.002 response:  1. Validation or Business Error - Transaction Status is RJCT,  2. Successful response - Transaction Status is not RJCT

        '
      type: object
      required:
      - fi_to_fi_payment_status_report
      properties:
        fi_to_fi_payment_status_report:
          $ref: FIToFIPaymentStatusReportV10.yaml#/definitions/fi_to_fi_payment_status_report
  headers:
    x-jws-signature:
      description: The JWS signature of response payload.
      schema:
        type: string
        minLength: 1
      required: true
      example: eyJjcml0IjpbImlhdCJdLCJpYXQiOjE2MzcyNzIxMzUyNTIsImFsZyI6IlJTMjU2Iiwia2lkIjoic2lnbi1rZXktY2EwMDAwMDEtMDAxIn0.V7skMzl3rUZK7N5pYVlicNt3TWXNBZyX-rtNV7n5rOc.hBDcIL9ptXWfOsg2pRSTy5dzFsowqjvE0G8dglODTSFpRM-iL1khjomuaYx_LnZV_lTnwkfMHknLdJuG5ucM7gpTZ98a1egjTcQisWHRO0fCr-sxqZXusGIB-hgAnB16Fn9UtdNdzsl447C0c3sSmytYn6eeMu5c6RWVrq-xB5KD9_JGexpyTw3IBvXavpd7h7QgnNzmcdWjV0yVXh74x4gmD8hTSbRkv54MYzap2BSFXLgxCwOrS7Jw0tQzCcP8a7gcOunO9Zr3ArgH-4Ur0VRWxIH4GaDksCBKdx1JdXFUToqG5Ben-FNyAzxkVxtuuwYMCbT1I3-8mCoj7nTtYw
  securitySchemes:
    oAuth:
      type: oauth2
      description: This API uses OAuth 2 with the implicit grant flow. (The access token expires in 5 minutes)
      flows:
        clientCredentials:
          tokenUrl: https://api.payments.ca/accesstoken
          scopes:
            client_credentials: Required to get credentials for the API call