Developer docs
Get a payment record
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.
GET
https://uetr.ai/api/v1/records/{record_token}- MCP tool:
get_payment_record - Access: any key or connection
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
record_token | path | string (at least 8 characters, at most 64 characters) | Yes | The token at the end of a payment record link (/p/...), or the whole link. |
Response
The response is one of 2 shapes.
When paused is false
| Field | Type | Required | Description |
|---|---|---|---|
found | boolean | Yes | |
paused | boolean | Yes | |
archivedAt | string or null | No | |
checksFinished | boolean | Yes | |
request | object | Yes | |
request.uetr | string | Yes | |
request.status | string | Yes | |
request.statusCode | string or null | Yes | |
request.statusReported | boolean | Yes | |
request.statusInfo | object or null | Yes | |
request.statusInfo.code | string | Yes | |
request.statusInfo.short_description | string | Yes | |
request.statusInfo.long_description | string | Yes | |
request.statusInfo.next_action | string | Yes | |
request.statusInfo.severity | string | Yes | |
request.statusInfo.is_terminal | boolean | Yes | |
request.senderBic | string or null | Yes | |
request.beneficiaryBic | string or null | Yes | |
request.lastPolledAt | string or null | Yes | |
request.showFees | boolean | Yes | |
request.showCommentary | boolean | Yes | |
events | array of object | Yes | |
events[].id | string | Yes | |
events[].observed_at | string | Yes | |
events[].bank_reported_at | string or null | Yes | |
events[].report_clock | object | No | |
events[].report_clock.at | string or null | Yes | |
events[].report_clock.observedAt | string or null | Yes | |
events[].report_clock.unavailable | boolean | Yes | |
events[].report_clock.sourceObservedAt | string or null | No | |
events[].created_at | string or null | Yes | |
events[].source_bank_name | string | Yes | |
events[].source_bank_bic | string | Yes | |
events[].source_bank_country | string or null | Yes | |
events[].status_code | string or null | Yes | |
events[].bank_processing_status | string or null | Yes | |
events[].extended_tracking_status | string or null | Yes | |
events[].amount | number or string or null | Yes | |
events[].fees | number or string or null | Yes | |
events[].currency | string or null | Yes | |
events[].payment_date | string or null | Yes | |
events[].bank_reference_number | string or null | Yes | |
events[].chips_ssn | string or null | Yes | |
events[].evidence | array of value | No | |
events[].status_info | object or null | Yes | |
events[].status_info.code | string | Yes | |
events[].status_info.short_description | string | Yes | |
events[].status_info.long_description | string | Yes | |
events[].status_info.next_action | string | Yes | |
events[].status_info.severity | string | Yes | |
events[].status_info.is_terminal | boolean | Yes | |
route | array of object | Yes | |
route[].key | string | Yes | |
route[].kind | sender, hop, beneficiary, handoff | Yes | |
route[].bic | string or null | Yes | |
route[].country | string or null | Yes | |
route[].name | string or null | Yes | |
route[].provenance | user, trail | No | |
route[].time | string or null | No | |
route[].timeSource | bank, monitoring | No | |
route[].city | string or null | No | |
route[].chargeBearer | string or null | No | |
route[].current | boolean | No | |
route[].eventId | string or null | No | |
position_sentence | string or null | No | The payment position from its status and verified route, when commentary is shown. |
When paused is true
| Field | Type | Required | Description |
|---|---|---|---|
found | boolean | Yes | |
paused | boolean | Yes | |
pausedSince | string or null | Yes | When automatic checking ended, or null when no date is known. |
Example
curl -X GET "https://uetr.ai/api/v1/records/0f1e2d3c4b5a69788796a5b4c3d2e1f0" \ -H "Authorization: Bearer $UETR_API_KEY"
The answer:
{
"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",
"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",
"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."
}Refusals
Besides the access refusals every call can meet, this call can answer:
not_found(404): Not found.