Developer docs
List transfers
List the transfers in this account with their current status, newest first, one page at a time. Paid transfers come in the full view and the rest in the free view, exactly as the dashboard shows them. Archived transfers are left out unless asked for. Pass next_cursor as cursor until it is null. Reading changes nothing.
GET
https://uetr.ai/api/v1/transfers- MCP tool:
list_transfers - Access: any key or connection
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
archived | query | exclude, include, only (default exclude) | No | exclude (default): active transfers. include: all. only: archived transfers. |
cursor | query | string (at most 200 characters) | No | The next_cursor of the previous page. |
limit | query | integer (at least 1, at most 100, default 50) | No | Transfers per page, 1 to 100. Default 50. |
Response
| Field | Type | Required | Description |
|---|---|---|---|
transfers | array of object | Yes | |
transfers[].id | string (uuid) | Yes | The transfer's id in this account. |
transfers[].uetr | string | Yes | The Unique End-to-end Transaction Reference. |
transfers[].label | string or null | Yes | The account's own label for the transfer. |
transfers[].view | full, free | Yes | full: every report as the paid timeline shows it. free: the free tracker view. |
transfers[].status | searching, not_found, check_failed, in_transit, on_hold, credited, rejected, returned, cancelled | Yes | The transfer's current status. |
transfers[].position_sentence | string or null | No | In the full view, the payment position from its status and verified route. A reporting bank alone never establishes a position. |
transfers[].status_code | string or null | Yes | The latest ISO 20022 status code, in the full view only. |
transfers[].status_explanation | string or null | Yes | What the status code means, in plain English. |
transfers[].checks_finished | boolean | Yes | True when no automatic check is scheduled: a final outcome, an archived transfer, or a closed monitoring window. list_transfers judges the transfer's own entry, as the dashboard shows it; get_transfer judges every lookup of the UETR, as the timeline does. |
transfers[].amount | object | Yes | The amount entered for the search, as last corrected by the account owner. bank_reported_amount is what a bank reported. |
transfers[].amount.value | number | Yes | The amount. |
transfers[].amount.currency | string | Yes | ISO 4217 currency code. |
transfers[].payment_date | string | Yes | The payment date entered for the search, as last corrected by the account owner. |
transfers[].bank_reported_amount | object or null | Yes | The latest amount a bank reported, with its value date. When no bank stated a currency, the currency is the one entered for the search. A free transfer's figure is the one its free tracker shows, from the reports revealed so far. |
transfers[].bank_reported_amount.value | number | Yes | The amount. |
transfers[].bank_reported_amount.currency | string | Yes | ISO 4217 currency code. |
transfers[].bank_reported_amount.payment_date | string or null | Yes | |
transfers[].last_checked_at | string or null | Yes | When the transfer was last checked. |
transfers[].monitoring_until | string or null | Yes | When this transfer's monitoring window ends or ended (at archiving, if earlier): the paid window, or for a free transfer its free checking window. Checks can finish before it, and a paid transfer still inside its free checking window keeps free checks after it; checks_finished says whether any is scheduled. |
transfers[].check_frequency_minutes | integer or null | Yes | How often this transfer's own checks run, in the full view; null when it has none scheduled. |
transfers[].archived | boolean | Yes | True when the transfer is archived. |
transfers[].added_at | string | Yes | When the transfer was added. |
next_cursor | string or null | Yes | Pass as cursor for the next page; null on the last. |
Example
curl -X GET "https://uetr.ai/api/v1/transfers" \ -H "Authorization: Bearer $UETR_API_KEY"
The answer:
{
"transfers": [
{
"id": "8d2f6b1e-4c3a-4f7d-9e8b-5a1c2d3e4f60",
"uetr": "eb6305c9-1f7f-49de-aed0-16487c27b42d",
"label": null,
"view": "full",
"status": "in_transit",
"status_code": "ACSP/G000",
"status_explanation": "Passed to the next agent or market infrastructure, with tracking continuing.",
"checks_finished": false,
"amount": {
"value": 1500.5,
"currency": "USD"
},
"payment_date": "2026-10-01",
"bank_reported_amount": {
"value": 1500.5,
"currency": "USD",
"payment_date": "2026-10-01"
},
"last_checked_at": "2026-10-14T09:20:00.000Z",
"monitoring_until": "2026-11-14T09:00:00.000Z",
"check_frequency_minutes": 60,
"archived": false,
"added_at": "2026-10-14T09:00:00.000Z"
}
],
"next_cursor": null
}Refusals
Besides the access refusals every call can meet, this call can answer:
- None of its own.