SWIFT UETR Tracker Payment records API

The Payment records API from SWIFT UETR Tracker — 1 operation(s) for payment records.

Operations 1

GET /records/{record_token} Get a payment record #

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/uetr-ai:uetr-ai-payment-records-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

uetr-ai-payment-records-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: uetr.ai Payment records API
  version: '2026-10-14'
  description: Track international bank transfers by their UETR and read what the banks report about them. Every call acts on one uetr.ai account, with the rights of the user who created the credential. The same actions are tools on the MCP server at https://uetr.ai/mcp.
  contact:
    name: uetr.ai support
    email: hello@uetr.ai
    url: https://uetr.ai/contact
servers:
- url: https://uetr.ai/api/v1
tags:
- name: Payment records
paths:
  /records/{record_token}:
    get:
      operationId: get_payment_record
      summary: Get a payment record
      description: 'Read a payment record from its link: the bank reports on a paid transfer, shared by its owner with whoever holds the link. Any key can read a record it has the link to, from any account. A link the owner replaced, or one that never existed, is not found. Reading changes nothing and is not counted as a visit to the record.'
      tags:
      - Payment records
      security:
      - apiKey: []
      parameters:
      - name: record_token
        in: path
        required: true
        schema:
          type: string
          minLength: 8
          maxLength: 64
          description: The token at the end of a payment record link (/p/...), or the whole link.
      - $ref: '#/components/parameters/Version'
      responses:
        '200':
          description: Get a payment record
          headers:
            uetr-version:
              $ref: '#/components/headers/Version'
          content:
            application/json:
              schema:
                anyOf:
                - type: object
                  properties:
                    found:
                      type: boolean
                      const: true
                    paused:
                      type: boolean
                      const: false
                    archivedAt:
                      type:
                      - string
                      - 'null'
                      format: date-time
                    checksFinished:
                      type: boolean
                    request:
                      type: object
                      properties:
                        uetr:
                          type: string
                        status:
                          type: string
                        statusCode:
                          type:
                          - string
                          - 'null'
                        statusReported:
                          type: boolean
                        statusInfo:
                          anyOf:
                          - type: object
                            properties:
                              code:
                                type: string
                              short_description:
                                type: string
                              long_description:
                                type: string
                              next_action:
                                type: string
                              severity:
                                type: string
                              is_terminal:
                                type: boolean
                            required:
                            - code
                            - short_description
                            - long_description
                            - next_action
                            - severity
                            - is_terminal
                            additionalProperties: false
                          - type: 'null'
                        senderBic:
                          type:
                          - string
                          - 'null'
                        beneficiaryBic:
                          type:
                          - string
                          - 'null'
                        lastPolledAt:
                          type:
                          - string
                          - 'null'
                          format: date-time
                          description: 'When the transfer was last checked, or null: the record gives no check time that would say when the record owner''s own checks ran.'
                        showFees:
                          type: boolean
                        showCommentary:
                          type: boolean
                      required:
                      - uetr
                      - status
                      - statusCode
                      - statusReported
                      - statusInfo
                      - senderBic
                      - beneficiaryBic
                      - lastPolledAt
                      - showFees
                      - showCommentary
                      additionalProperties: false
                    events:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                          observed_at:
                            anyOf:
                            - type: string
                              format: date-time
                            - type: string
                              const: ''
                            description: 'When the report was first received, or empty when the record gives no receipt time: for a report received before the transfer was added (received_before_added is true), and for every report once each receipt time would say when the record owner''s own checks ran. Its time, when the bank gave one, is bank_reported_at, and time_order keeps its place.'
                          received_before_added:
                            type: boolean
                            description: True when the report was received before the transfer was added. Its receipt time is not given; bank_reported_at is unchanged.
                          time_order:
                            type: integer
                            description: 'The report''s place among the record''s reports by time: the bank''s time when the report has one, otherwise when it was first received, and reports with one bank time in the order they were first received. The earliest is 0, and reports at one time share a place. A report with no receipt time keeps its place by it.'
                          bank_reported_at:
                            type:
                            - string
                            - 'null'
                            format: date-time
                          report_clock:
                            type: object
                            properties:
                              at:
                                type:
                                - string
                                - 'null'
                                format: date-time
                              observedAt:
                                type:
                                - string
                                - 'null'
                                format: date-time
                              unavailable:
                                type: boolean
                              sourceObservedAt:
                                type:
                                - string
                                - 'null'
                                format: date-time
                            required:
                            - at
                            - observedAt
                            - unavailable
                            additionalProperties: false
                          created_at:
                            type:
                            - string
                            - 'null'
                            format: date-time
                          source_bank_name:
                            type: string
                          source_bank_bic:
                            type: string
                          source_bank_country:
                            type:
                            - string
                            - 'null'
                          status_code:
                            type:
                            - string
                            - 'null'
                          bank_processing_status:
                            type:
                            - string
                            - 'null'
                          extended_tracking_status:
                            type:
                            - string
                            - 'null'
                          amount:
                            anyOf:
                            - type:
                              - number
                              - string
                            - type: 'null'
                            description: When currency is supplied, the amount is in that currency's major units, not minor units. Strings are returned unchanged; a null currency remains unspecified.
                          fees:
                            anyOf:
                            - type:
                              - number
                              - string
                            - type: 'null'
                            description: When currency is supplied, the fee is in that currency's major units, not minor units. Strings are returned unchanged; a null currency remains unspecified.
                          currency:
                            type:
                            - string
                            - 'null'
                          payment_date:
                            type:
                            - string
                            - 'null'
                          bank_reference_number:
                            type:
                            - string
                            - 'null'
                          chips_ssn:
                            type:
                            - string
                            - 'null'
                          evidence:
                            type: array
                            items: {}
                          status_info:
                            anyOf:
                            - type: object
                              properties:
                                code:
                                  type: string
                                short_description:
                                  type: string
                                long_description:
                                  type: string
                                next_action:
                                  type: string
                                severity:
                                  type: string
                                is_terminal:
                                  type: boolean
                              required:
                              - code
                              - short_description
                              - long_description
                              - next_action
                              - severity
                              - is_terminal
                              additionalProperties: false
                            - type: 'null'
                        required:
                        - id
                        - observed_at
                        - received_before_added
                        - bank_reported_at
                        - created_at
                        - source_bank_name
                        - source_bank_bic
                        - source_bank_country
                        - status_code
                        - bank_processing_status
                        - extended_tracking_status
                        - amount
                        - fees
                        - currency
                        - payment_date
                        - bank_reference_number
                        - chips_ssn
                        - status_info
                        additionalProperties: false
                    route:
                      type: array
                      items:
                        type: object
                        properties:
                          key:
                            type: string
                          kind:
                            type: string
                            enum:
                            - sender
                            - hop
                            - beneficiary
                            - handoff
                          bic:
                            type:
                            - string
                            - 'null'
                          country:
                            type:
                            - string
                            - 'null'
                          name:
                            type:
                            - string
                            - 'null'
                          provenance:
                            type: string
                            enum:
                            - user
                            - trail
                          time:
                            type:
                            - string
                            - 'null'
                          timeSource:
                            type: string
                            enum:
                            - bank
                            - monitoring
                          receivedBeforeAdded:
                            type: boolean
                            description: 'True on a monitoring-timed stop first seen before the transfer was added: the record gives it no time.'
                          city:
                            type:
                            - string
                            - 'null'
                          chargeBearer:
                            type:
                            - string
                            - 'null'
                          current:
                            type: boolean
                          eventId:
                            type:
                            - string
                            - 'null'
                        required:
                        - key
                        - kind
                        - bic
                        - country
                        - name
                        additionalProperties: false
                    position_sentence:
                      type:
                      - string
                      - 'null'
                      description: The payment position from its status and verified route, when commentary is shown.
                  required:
                  - found
                  - paused
                  - checksFinished
                  - request
                  - events
                  - route
                  additionalProperties: false
                - type: object
                  properties:
                    found:
                      type: boolean
                      const: true
                    paused:
                      type: boolean
                      const: true
                    pausedSince:
                      type:
                      - string
                      - 'null'
                      format: date-time
                      description: When automatic checking ended, or null when no date is known.
                  required:
                  - found
                  - paused
                  - pausedSince
                  additionalProperties: false
                description: 'The record as its page shows it. A paused record (paused: true) carries no reports: its transfer''s checking ended before the transfer finished, and the record resumes by itself when checking resumes.'
              example:
                found: true
                paused: false
                archivedAt: null
                checksFinished: false
                request:
                  uetr: eb6305c9-1f7f-49de-aed0-16487c27b42d
                  status: in_progress
                  statusCode: ACSP/G000
                  statusReported: true
                  statusInfo:
                    code: ACSP/G000
                    short_description: PaymentTransferredAndTracked
                    long_description: The Status Originator transferred the payment to the next Agent or to a Market Infrastructure. The payment transfer is tracked. No further updates will follow from the Status Originator.
                    next_action: On track. The payment was passed on and stays tracked, and this bank sends no further updates on it.
                    severity: info
                    is_terminal: false
                  senderBic: BANKGB2L
                  beneficiaryBic: BANKDEFF
                  lastPolledAt: '2026-10-14T09:20:00.000Z'
                  showFees: true
                  showCommentary: true
                events:
                - id: c2a4e6f8-1b3d-4f5a-8c7e-9d0b2a4c6e81
                  observed_at: '2026-10-14T09:10:00.000Z'
                  received_before_added: false
                  bank_reported_at: '2026-10-14T09:10:00.000Z'
                  created_at: '2026-10-14T09:10:00.000Z'
                  source_bank_name: Demo Sending Bank
                  source_bank_bic: BANKGB2L
                  source_bank_country: GB
                  status_code: ACSP/G000
                  bank_processing_status: null
                  extended_tracking_status: ''
                  amount: 1500.5
                  fees: null
                  currency: USD
                  payment_date: '2026-10-01'
                  bank_reference_number: null
                  chips_ssn: null
                  evidence: []
                  status_info:
                    code: ACSP/G000
                    short_description: PaymentTransferredAndTracked
                    long_description: The Status Originator transferred the payment to the next Agent or to a Market Infrastructure. The payment transfer is tracked. No further updates will follow from the Status Originator.
                    next_action: On track. The payment was passed on and stays tracked, and this bank sends no further updates on it.
                    severity: info
                    is_terminal: false
                - id: d3b5f7a9-2c4e-4a6b-9d8f-0e1c3b5d7f92
                  observed_at: '2026-10-14T09:20:00.000Z'
                  received_before_added: false
                  bank_reported_at: '2026-10-14T09:20:00.000Z'
                  created_at: '2026-10-14T09:20:00.000Z'
                  source_bank_name: Demo Correspondent Bank
                  source_bank_bic: BANKUS33
                  source_bank_country: US
                  status_code: ACSP/G000
                  bank_processing_status: null
                  extended_tracking_status: ''
                  amount: 1500.5
                  fees: null
                  currency: USD
                  payment_date: '2026-10-01'
                  bank_reference_number: null
                  chips_ssn: null
                  evidence: []
                  status_info:
                    code: ACSP/G000
                    short_description: PaymentTransferredAndTracked
                    long_description: The Status Originator transferred the payment to the next Agent or to a Market Infrastructure. The payment transfer is tracked. No further updates will follow from the Status Originator.
                    next_action: On track. The payment was passed on and stays tracked, and this bank sends no further updates on it.
                    severity: info
                    is_terminal: false
                route: []
                position_sentence: Handed to the next bank or payment system; the payment transfer remains tracked. The reports do not say which bank holds the money.
        '400':
          description: '`credential_in_url`: API key sent in the URL. `invalid_request`: Invalid request. `unsupported_version`: Unsupported API version.'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              examples:
                credential_in_url:
                  summary: API key sent in the URL
                  value:
                    type: https://uetr.ai/docs/api/errors#credential_in_url
                    title: API key sent in the URL
                    status: 400
                    code: credential_in_url
                    detail: API key sent in the URL.
                invalid_request:
                  summary: Invalid request
                  value:
                    type: https://uetr.ai/docs/api/errors#invalid_request
                    title: Invalid request
                    status: 400
                    code: invalid_request
                    detail: Invalid request.
                unsupported_version:
                  summary: Unsupported API version
                  value:
                    type: https://uetr.ai/docs/api/errors#unsupported_version
                    title: Unsupported API version
                    status: 400
                    code: unsupported_version
                    detail: Unsupported API version.
        '401':
          description: '`invalid_credential`: Valid key or token required.'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              examples:
                invalid_credential:
                  summary: Valid key or token required
                  value:
                    type: https://uetr.ai/docs/api/errors#invalid_credential
                    title: Valid key or token required
                    status: 401
                    code: invalid_credential
                    detail: Valid key or token required.
        '403':
          description: '`credential_suspended`: Key or connection paused. `credential_account_changed`: Key or connection belongs to another account. `staff_credentials_refused`: Not available to staff accounts. `customer_view_refused`: Not available in a customer view. `machine_access_not_available`: API access is not available yet.'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              examples:
                credential_suspended:
                  summary: Key or connection paused
                  value:
                    type: https://uetr.ai/docs/api/errors#credential_suspended
                    title: Key or connection paused
                    status: 403
                    code: credential_suspended
                    detail: Key or connection paused.
                credential_account_changed:
                  summary: Key or connection belongs to another account
                  value:
                    type: https://uetr.ai/docs/api/errors#credential_account_changed
                    title: Key or connection belongs to another account
                    status: 403
                    code: credential_account_changed
                    detail: Key or connection belongs to another account.
                staff_credentials_refused:
                  summary: Not available to staff accounts
                  value:
                    type: https://uetr.ai/docs/api/errors#staff_credentials_refused
                    title: Not available to staff accounts
                    status: 403
                    code: staff_credentials_refused
                    detail: Not available to staff accounts.
                customer_view_refused:
                  summary: Not available in a customer view
                  value:
                    type: https://uetr.ai/docs/api/errors#customer_view_refused
                    title: Not available in a customer view
                    status: 403
                    code: customer_view_refused
                    detail: Not available in a customer view.
                machine_access_not_available:
                  summary: API access is not available yet
                  value:
                    type: https://uetr.ai/docs/api/errors#machine_access_not_available
                    title: API access is not available yet
                    status: 403
                    code: machine_access_not_available
                    detail: API access is not available yet.
        '404':
          description: '`not_found`: Not found.'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              examples:
                not_found:
                  summary: Not found
                  value:
                    type: https://uetr.ai/docs/api/errors#not_found
                    title: Not found
                    status: 404
                    code: not_found
                    detail: Not found.
        '429':
          description: '`rate_limited`: Too many requests.'
          headers:
            Retry-After:
              $ref: '#/components/headers/RetryAfter'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              examples:
                rate_limited:
                  summary: Too many requests
                  value:
                    type: https://uetr.ai/docs/api/errors#rate_limited
                    title: Too many requests
                    status: 429
                    code: rate_limited
                    detail: Too many requests.
        '500':
          description: '`request_failed`: Request failed.'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              examples:
                request_failed:
                  summary: Request failed
                  value:
                    type: https://uetr.ai/docs/api/errors#request_failed
                    title: Request failed
                    status: 500
                    code: request_failed
                    detail: Request failed.
        '503':
          description: '`machine_access_disabled`: API access is switched off. `temporarily_unavailable`: Temporarily unavailable.'
          headers:
            Retry-After:
              $ref: '#/components/headers/RetryAfter'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              examples:
                machine_access_disabled:
                  summary: API access is switched off
                  value:
                    type: https://uetr.ai/docs/api/errors#machine_access_disabled
                    title: API access is switched off
                    status: 503
                    code: machine_access_disabled
                    detail: API access is switched off.
                temporarily_unavailable:
                  summary: Temporarily unavailable
                  value:
                    type: https://uetr.ai/docs/api/errors#temporarily_unavailable
                    title: Temporarily unavailable
                    status: 503
                    code: temporarily_unavailable
                    detail: Temporarily unavailable.
      x-mcp-tool: get_payment_record
      x-mcp-annotations:
        readOnlyHint: true
        destructiveHint: false
        idempotentHint: true
        openWorldHint: false
components:
  parameters:
    Version:
      name: uetr-version
      in: header
      required: false
      description: The API version to run the call under. Without it, a call runs under the version the credential was created on. An empty value is refused as an unknown version.
      schema:
        type: string
        enum:
        - '2026-10-14'
  headers:
    Version:
      description: The API version the call ran under.
      required: true
      schema:
        type: string
        enum:
        - '2026-10-14'
    RetryAfter:
      description: The seconds to wait before trying again. It is sent exactly when the body carries `retry_after_seconds`, with the same value.
      schema:
        type: integer
        minimum: 0
  schemas:
    Problem:
      type: object
      description: A refusal (RFC 9457). Act on `code`; pass `detail` on to the person.
      required:
      - type
      - title
      - status
      - code
      - detail
      properties:
        type:
          type: string
          format: uri
        title:
          type: string
        status:
          type: integer
        code:
          type: string
          enum:
          - customer_view_refused
          - machine_access_disabled
          - machine_access_not_available
          - credential_in_url
          - invalid_credential
          - rate_limited
          - temporarily_unavailable
          - credential_suspended
          - credential_account_changed
          - staff_credentials_refused
          - read_only_credential
          - machine_writes_disabled
          - action_not_available
          - not_permitted
          - invalid_request
          - unsupported_version
          - request_too_large
          - unsupported_media_type
          - not_found
          - method_not_allowed
          - request_failed
          - checks_ended
          - monitoring_ended
          - recheck_not_available
          - recheck_cooldown
          - check_not_started
          - lookup_limit
          - account_email_missing
          - plan_unverified
          - plan_expired
          - transfer_not_editable
          - corrections_used
          - label_not_available
          - check_frequency_not_available
          - rescue_limit
          - active_transfer_limit
          - monthly_limit_reached
          - transfer_archived
          - subscription_required
          - demo_transfer
          - record_not_available
          - already_owner
          - seat_exists
          - seat_on_other_account
          - manages_paid_account
          - team_requires_subscription
          - seat_limit
          - seat_not_active
          - seat_reservation_failed
          - invitation_not_pending
          - invitation_queued
          - invitation_rate_limited
          - invitation_prepare_failed
          - invitation_send_failed
          - invitation_not_sent
          - invitation_check_failed
          - member_removal_failed
          - destination_not_allowed
          - endpoint_exists
          - endpoint_limit
        detail:
          type: string
        retry_after_seconds:
          type: integer
          minimum: 0
        limit:
          type: integer
        usage:
          type: integer
        archive_needed:
          type: integer
        resets_at:
          type: string
          format: date-time
        invalid_params:
          type: array
          items:
            type: object
            required:
            - name
            - reason
            properties:
              name:
                type: string
              reason:
                type: string
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: 'An API key from the MCP and API page on uetr.ai, sent only in the Authorization header. A key sent in a URL is revoked. A connected app''s access token is refused here: it works only on the MCP server.'