{"openapi":"3.1.0","info":{"title":"uetr.ai 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."},"servers":[{"url":"https://uetr.ai/api/v1"}],"tags":[{"name":"Transfers"},{"name":"Payment records"},{"name":"Account"},{"name":"Team"},{"name":"Webhooks"},{"name":"Owner confirmation"}],"paths":{"/account":{"get":{"operationId":"get_account","summary":"Get the account","description":"Get the account this API key or connected app acts on: its id, this user's role, the plan, and any scheduled deletion date. Check it to notice when that account changes or is ending. Reading changes nothing.","tags":["Account"],"security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Get the account","content":{"application/json":{"schema":{"type":"object","properties":{"account":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The account id. It changes if the key starts acting on another account."},"role":{"type":"string","enum":["owner","member"],"description":"This user's role in the account."},"plan":{"type":"object","properties":{"id":{"type":"string","description":"free, rescue, monitor, monitor_20, or operator for the retired Operator plan."},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},"subscription_status":{"anyOf":[{"type":"string","enum":["active","payment_due","ended"]},{"type":"null"}],"description":"For a subscription plan: active, payment_due or ended. Null otherwise."},"scheduled_deletion_at":{"type":["string","null"],"description":"When the account is scheduled to be deleted, or null."}},"required":["id","role","plan","subscription_status","scheduled_deletion_at"],"additionalProperties":false},"credential":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"scope":{"type":"string","enum":["read","read_write"]},"api_version":{"type":"string","description":"The version this credential's requests use when they send no Uetr-Version header: the version it was created on, while that version is served."}},"required":["id","scope","api_version"],"additionalProperties":false}},"required":["account","credential"],"additionalProperties":false},"example":{"account":{"id":"5e8a1c3f-7b2d-4e6a-9f0c-1d3b5a7c9e2f","role":"owner","plan":{"id":"monitor","name":"Monitor"},"subscription_status":"active","scheduled_deletion_at":null},"credential":{"id":"9a7b5c3d-1e2f-4a6b-8c0d-2e4f6a8b0c1d","scope":"read","api_version":"2026-10-14"}}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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.","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_account","x-mcp-annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}},"/account/billing-link":{"get":{"operationId":"get_billing_link","summary":"Get the billing page link","description":"Get the address of the account's billing page on the website, where the account owner, signed in, manages the plan, payment details and invoices. Only the account owner can open it, so a teammate's key is refused. Reading changes nothing.","tags":["Account"],"security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Get the billing page link","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"The billing page."}},"required":["url"],"additionalProperties":false},"example":{"url":"https://uetr.ai/billing"}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `not_permitted`: Not permitted.","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."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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.","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_billing_link","x-mcp-annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"x-owner-only":true}},"/account/usage":{"get":{"operationId":"get_plan_usage","summary":"Get plan usage","description":"Get the account's plan and how many of its active transfers are in use. Finished transfers archive themselves a week after their last check and are not counted. Archived transfers stay in the account and never count. On a custom package, also how many transfers were added in the current billing period against the package's volume, and when it resets. Reading changes nothing.","tags":["Account"],"security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Get plan usage","content":{"application/json":{"schema":{"type":"object","properties":{"plan":{"type":"object","properties":{"id":{"type":"string","description":"free, rescue, monitor, monitor_20, or operator for the retired Operator plan."},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},"active_transfers":{"anyOf":[{"type":"object","properties":{"limit":{"type":"integer","description":"Active transfers the plan covers."},"in_use":{"type":"integer","description":"Active transfers in the account. It can exceed the limit after the plan changed."}},"required":["limit","in_use"],"additionalProperties":false},{"type":"null"}],"description":"Null unless the account has an active subscription; get_account gives the subscription status."},"package":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"included_transfers":{"type":"integer","description":"Transfers included in each billing period."},"additional_transfers":{"type":"integer","description":"Extra transfers allowed in each billing period beyond the included ones, billed on the renewal invoice at the package's pro-rated rate."},"added_this_period":{"type":"integer","description":"Transfers added in the current billing period, extra ones included. Deleting a transfer does not lower it."},"additional_added_this_period":{"type":"integer","description":"Of those, the extra transfers billed on the renewal invoice."},"period_start":{"type":["string","null"],"description":"When the current billing period started."},"resets_at":{"type":["string","null"],"description":"When the next billing period starts and the count begins again."}},"required":["name","included_transfers","additional_transfers","added_this_period","additional_added_this_period","period_start","resets_at"],"additionalProperties":false},{"type":"null"}],"description":"Null unless the account has a custom package. Adds stop with monthly_limit_reached once added_this_period reaches included_transfers plus additional_transfers."}},"required":["plan","active_transfers","package"],"additionalProperties":false},"example":{"plan":{"id":"monitor","name":"Monitor"},"active_transfers":{"limit":10,"in_use":1},"package":null}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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. `plan_unverified`: Plan could not be verified.","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."}},"plan_unverified":{"summary":"Plan could not be verified","value":{"type":"https://uetr.ai/docs/api/errors#plan_unverified","title":"Plan could not be verified","status":503,"code":"plan_unverified","detail":"Plan could not be verified."}}}}}}},"x-mcp-tool":"get_plan_usage","x-mcp-annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}},"/export":{"get":{"operationId":"export_transfers","summary":"Export the account's transfers","description":"Export every transfer in the account, archived ones included, with the bank reports its records hold: the same records the account's export download contains, named the API's way. A page holds up to 50 UETRs in UETR order, each exported once as one transfer however many times the account added it; pass next_cursor as cursor for the next page. Reading changes nothing.","tags":["Account"],"security":[{"apiKey":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$","description":"The next_cursor of the previous page."}},{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Export the account's transfers","content":{"application/json":{"schema":{"type":"object","properties":{"exported_at":{"type":"string"},"transfers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"uetr":{"type":"string"},"label":{"type":["string","null"]},"archived_at":{"type":["string","null"],"description":"When the transfer was archived, or null."},"amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":"string"}},"required":["value","currency"],"additionalProperties":false},{"type":"null"}]},"payment_date":{"type":["string","null"]},"events":{"type":"array","items":{"type":"object","properties":{"reported_at":{"type":["string","null"],"description":"When the bank reported this status, if the report carries that time."},"observed_at":{"type":"string","description":"When this report was first received."},"status":{"anyOf":[{"type":"string","enum":["searching","not_found","check_failed","in_transit","on_hold","credited","rejected","returned","cancelled"]},{"type":"null"}]},"status_code":{"type":["string","null"],"description":"The ISO 20022 status code the bank reported."},"status_explanation":{"type":["string","null"]},"reporting_bank":{"type":"object","properties":{"name":{"type":"string"},"country":{"type":["string","null"]},"bic":{"type":["string","null"]}},"required":["name","country","bic"],"additionalProperties":false,"description":"The bank that reported. It is not necessarily on the payment's route."},"bank_processing_status":{"type":["string","null"],"description":"The bank's own processing status, in its words."},"extended_tracking_status":{"type":["string","null"],"description":"The bank's extended tracking status, in its words."},"amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."}},"required":["value","currency"],"additionalProperties":false},{"type":"null"}],"description":"The amount this report carried, when it carried one."},"currency":{"type":["string","null"],"description":"The currency the report stated, when it stated one. A report can state a currency with no amount and no fees."},"fees":{"type":"array","items":{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":["string","null"]},"role":{"type":"string","enum":["total","component","bank"],"description":"A stated total, one part of a total, or one bank's charge."},"label":{"type":["string","null"],"description":"The bank's own name for the fee, if it gave one."},"charged_by":{"type":["string","null"],"description":"The bank the report says charged it, if any."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the fee belongs to, as the bank record numbers it; null when the fee belongs to the report as a whole."}},"required":["value","currency","role","label","charged_by","event_number"],"additionalProperties":false},"description":"Every fee this report stated, as the bank listed them."},"payment_date":{"type":["string","null"],"description":"The value date this report carried, when it carried one."},"bank_reference":{"type":["string","null"],"description":"The bank's reference for the payment."},"chips_ssn":{"type":["string","null"],"description":"The CHIPS sequence number the bank reported."},"details":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"cancellation_request"},"code":{"type":"string","description":"The bank's literal cancellation-request code, separate from the transaction status. It does not establish that money was stopped or returned."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","event_number","bank"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"amount"},"role":{"type":"string","enum":["reported","instructed","sent","settled","confirmed","received"],"description":"Which amount the bank stated."},"value":{"type":"number"},"currency":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","role","value","currency","event_number","bank"],"additionalProperties":false,"description":"An amount the report states, by its role. The event's own amount is the figure the timeline quotes for the report."},{"type":"object","properties":{"kind":{"type":"string","const":"reference"},"type":{"type":"string","enum":["payment_reference","fed_imad","network_reference","instruction_id"]},"value":{"type":"string"},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","type","value","event_number","bank"],"additionalProperties":false,"description":"A reference the report states, such as a FED IMAD or an instruction ID."},{"type":"object","properties":{"kind":{"type":"string","const":"time"},"stage":{"type":"string","enum":["initiated","message_received","acknowledgement_received","arrived","departed","transaction_status","updated","confirmed","completed"],"description":"The stage the time belongs to: the payment started, a message or the sender's acknowledgement was received, the payment arrived at or departed from a step of the route, the transaction status was set, the bank last updated its status, or the payment was confirmed or completed."},"at":{"type":"string"},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","stage","at","event_number","bank"],"additionalProperties":false,"description":"A time the bank states for one stage of the payment."},{"type":"object","properties":{"kind":{"type":"string","const":"duration"},"type":{"type":"string","enum":["bank_stated","elapsed","time_at_bank"],"description":"bank_stated: how long the payment took, as the bank states it. elapsed: the time from the payment's start to the report's latest update. time_at_bank: how long the payment stayed at one bank on the route, between its arrival and its departure there."},"value":{"type":"string","description":"The duration, in words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","type","value","event_number","bank"],"additionalProperties":false,"description":"How long the payment took, or stayed at one bank."},{"type":"object","properties":{"kind":{"type":"string","const":"exchange_rate"},"rate":{"type":"number"},"from_currency":{"type":["string","null"]},"to_currency":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","rate","from_currency","to_currency","event_number","bank"],"additionalProperties":false,"description":"An exchange rate the report states."},{"type":"object","properties":{"kind":{"type":"string","const":"chain_bank"},"role":{"type":"string","enum":["sending","crediting","current","route"],"description":"sending: the sending bank. crediting: the bank crediting the payee. current: the bank the report says holds the payment now. route: a bank the report lists in the payment's chain."},"name":{"type":["string","null"]},"bic":{"type":["string","null"]},"location":{"type":["string","null"]},"country":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."}},"required":["kind","role","name","bic","location","country","event_number"],"additionalProperties":false,"description":"A bank this report names in the payment's chain, as the report states it."},{"type":"object","properties":{"kind":{"type":"string","const":"charge_bearer"},"code":{"type":"string","description":"The charge bearer code, as the bank stated it."},"explanation":{"type":["string","null"],"description":"Who pays the charges, for the codes SHA, OUR and BEN and their equivalents."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","explanation","event_number","bank"],"additionalProperties":false,"description":"Who the report says bears the charges."},{"type":"object","properties":{"kind":{"type":"string","const":"fee_note"},"code":{"type":["string","null"]},"description":{"type":["string","null"],"description":"The bank's own words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","description","event_number","bank"],"additionalProperties":false,"description":"A note the bank gives about fees."},{"type":"object","properties":{"kind":{"type":"string","const":"reject_return_reason"},"code":{"type":"string"},"description":{"type":["string","null"],"description":"The bank's own words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","description","event_number","bank"],"additionalProperties":false,"description":"The reason a bank gives for rejecting or returning the payment."},{"type":"object","properties":{"kind":{"type":"string","const":"message"},"event_type":{"type":["string","null"],"description":"The tracking event type, such as CTPT or CTSU."},"message_name":{"type":["string","null"],"description":"The message name, such as pacs.008.001.08."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","event_type","message_name","event_number","bank"],"additionalProperties":false,"description":"A payment message the report lists."},{"type":"object","properties":{"kind":{"type":"string","const":"event_status"},"status":{"type":"string"},"reason":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","status","reason","event_number","bank"],"additionalProperties":false,"description":"The status the report gives one event, with its reason, as the bank stated them."}]},"description":"Every further detail the bank record shows for this report, in the record's order, with the bank's times by stage and then durations last. Kinds: amounts by role, references, banks the report names in the payment's chain, exchange rates, the charge bearer, fee notes, reject or return reasons, messages, event statuses and literal cancellation-request codes. A cancellation request is separate from the transaction outcome. Fees are in fees. A detail that restates the bank reference, the bank's status time or a stored amount is left out. New kinds and values can appear within an API version; skip any you do not recognise."}},"required":["reported_at","observed_at","status","status_code","status_explanation","reporting_bank","bank_processing_status","extended_tracking_status","amount","currency","fees","payment_date","bank_reference","chips_ssn","details"],"additionalProperties":false},"description":"The bank reports the account's records hold, one entry per report, in the order they were received; empty for a transfer in the free view or with no reports yet. get_transfer returns the same reports in payment lifecycle order, with every figure the full view shows."}},"required":["id","uetr","label","archived_at","amount","payment_date","events"],"additionalProperties":false}},"next_cursor":{"type":["string","null"],"description":"Null on the last page."}},"required":["exported_at","transfers","next_cursor"],"additionalProperties":false},"example":{"exported_at":"2026-10-14T09:25:00.000Z","transfers":[{"id":"8d2f6b1e-4c3a-4f7d-9e8b-5a1c2d3e4f60","uetr":"eb6305c9-1f7f-49de-aed0-16487c27b42d","label":null,"archived_at":null,"amount":{"value":1500.5,"currency":"USD"},"payment_date":"2026-10-01","events":[{"reported_at":"2026-10-14T09:10:00.000Z","observed_at":"2026-10-14T09:10:00.000Z","status":"in_transit","status_code":"ACSP/G000","status_explanation":"Passed to the next agent or market infrastructure, with tracking continuing.","reporting_bank":{"name":"Demo Sending Bank","country":"GB","bic":null},"bank_processing_status":null,"extended_tracking_status":null,"amount":{"value":1500.5,"currency":"USD"},"currency":"USD","fees":[],"payment_date":"2026-10-01","bank_reference":null,"chips_ssn":null,"details":[{"kind":"charge_bearer","code":"SHAR","explanation":"Shared charges (SHA)","event_number":null,"bank":null}]},{"reported_at":"2026-10-14T09:20:00.000Z","observed_at":"2026-10-14T09:20:00.000Z","status":"in_transit","status_code":"ACSP/G000","status_explanation":"Passed to the next agent or market infrastructure, with tracking continuing.","reporting_bank":{"name":"Demo Correspondent Bank","country":"US","bic":null},"bank_processing_status":null,"extended_tracking_status":null,"amount":{"value":1500.5,"currency":"USD"},"currency":"USD","fees":[],"payment_date":"2026-10-01","bank_reference":null,"chips_ssn":null,"details":[]}]}],"next_cursor":null}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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.","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":"export_transfers","x-mcp-annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}},"/pending-access":{"get":{"operationId":"list_pending_access","summary":"List requests waiting for the owner","description":"List the team invitations, payment record shares and webhook endpoints that API keys and connected apps asked for on this account, newest first, with whether the account owner confirmed, declined or has not answered yet. A confirmed record share carries the record link while it still works. Only the account owner's API keys and connected apps can list them. Reading changes nothing.","tags":["Owner confirmation"],"security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"List requests waiting for the owner","content":{"application/json":{"schema":{"type":"object","properties":{"requests":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["team_invite","record_share","webhook_endpoint"],"description":"team_invite: an invitation to the team. record_share: a payment record link. webhook_endpoint: a webhook endpoint that receives status changes."},"status":{"type":"string","enum":["pending","confirmed","declined","expired"],"description":"pending: waiting for the account owner. confirmed: the owner approved it and it took effect. declined: the owner refused it. expired: nobody answered within seven days, or a later request for the same transfer with different settings replaced it."},"created_at":{"type":"string"},"expires_at":{"type":"string"},"decided_at":{"type":["string","null"]},"invite_email":{"type":["string","null"],"description":"For a team invite: the address to invite."},"uetr":{"type":["string","null"],"description":"For a record share: the transfer's UETR."},"record_url":{"type":["string","null"],"description":"For a confirmed record share: the payment record link, while the record still has that link. Null otherwise."},"endpoint_url":{"type":["string","null"],"description":"For a webhook endpoint: its host and a masked path. Null otherwise."}},"required":["id","kind","status","created_at","expires_at","decided_at","invite_email","uetr","record_url","endpoint_url"],"additionalProperties":false}}},"required":["requests"],"additionalProperties":false},"example":{"requests":[{"id":"4c7e1a3b-8d2f-4b6e-a9c5-3f6b9e2d5a8c","kind":"webhook_endpoint","status":"pending","created_at":"2026-10-14T09:35:00.000Z","expires_at":"2026-10-21T09:35:00.000Z","decided_at":null,"invite_email":null,"uetr":null,"record_url":null,"endpoint_url":"hooks.slack.com/services/••••"},{"id":"2e5a8d1b-6c9f-4d2a-b4e7-0f3c6d9a2b5e","kind":"team_invite","status":"pending","created_at":"2026-10-14T09:30:00.000Z","expires_at":"2026-10-21T09:30:00.000Z","decided_at":null,"invite_email":"teammate@example.com","uetr":null,"record_url":null,"endpoint_url":null},{"id":"1d4f7a2c-5b8e-4c1f-a3d6-9e2b5c8f1a4d","kind":"record_share","status":"confirmed","created_at":"2026-10-14T09:25:00.000Z","expires_at":"2026-10-21T09:25:00.000Z","decided_at":"2026-10-14T09:41:00.000Z","invite_email":null,"uetr":"eb6305c9-1f7f-49de-aed0-16487c27b42d","record_url":"https://uetr.ai/p/0f1e2d3c4b5a69788796a5b4c3d2e1f0","endpoint_url":null}]}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `not_permitted`: Not permitted.","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."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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.","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":"list_pending_access","x-mcp-annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"x-owner-only":true}},"/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","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"found":{"type":"boolean","const":true},"paused":{"type":"boolean","const":false},"archivedAt":{"type":["string","null"]},"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"]},"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":{"type":"string"},"bank_reported_at":{"type":["string","null"]},"report_clock":{"type":"object","properties":{"at":{"type":["string","null"]},"observedAt":{"type":["string","null"]},"unavailable":{"type":"boolean"},"sourceObservedAt":{"type":["string","null"]}},"required":["at","observedAt","unavailable"],"additionalProperties":false},"created_at":{"type":["string","null"]},"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"}]},"fees":{"anyOf":[{"type":["number","string"]},{"type":"null"}]},"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","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"]},"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"],"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","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."}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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.","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.","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}}},"/team":{"get":{"operationId":"list_team_members","summary":"List the team","description":"List the people who share this account: the owner, each teammate and each pending invitation, with the seats the plan includes. Only the account owner's API keys and connected apps can list the team, while the plan includes team seats. Reading changes nothing.","tags":["Team"],"security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"List the team","content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"],"additionalProperties":false},"members":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The seat id, used to resend an invitation or remove the teammate."},"email":{"type":"string"},"status":{"type":"string","enum":["invited","active"],"description":"invited: the invitation is not accepted yet. active: a teammate."},"invited_at":{"type":"string"},"accepted_at":{"type":["string","null"]},"invitation_delivery":{"anyOf":[{"type":"string","enum":["pending","sent","unverified"]},{"type":"null"}],"description":"For a pending invitation: sent when it is queued for delivery; pending or unverified when delivery is not confirmed, and resend_team_invitation can try again. Null for a teammate."},"alerts":{"anyOf":[{"type":"string","enum":["on","off"]},{"type":"null"}],"description":"For a teammate: whether they still receive the team's transfer alerts. Null for a pending invitation."}},"required":["id","email","status","invited_at","accepted_at","invitation_delivery","alerts"],"additionalProperties":false}},"seats":{"type":"object","properties":{"limit":{"type":"integer"},"used":{"type":"integer"}},"required":["limit","used"],"additionalProperties":false,"description":"Seats the plan includes and seats in use, the owner and pending invitations included."}},"required":["owner","members","seats"],"additionalProperties":false},"example":{"owner":{"email":"owner@example.com"},"members":[{"id":"7b2e9c4a-1d5f-4a8e-b3c6-4e7a0d2f5b8c","email":"colleague@example.com","status":"active","invited_at":"2026-10-02T10:15:00.000Z","accepted_at":"2026-10-02T11:03:00.000Z","invitation_delivery":null,"alerts":"on"},{"id":"6f1c2b9e-3d4a-4e8f-9b7c-1a2d3e4f5a6b","email":"new.colleague@example.com","status":"invited","invited_at":"2026-10-14T08:45:00.000Z","accepted_at":null,"invitation_delivery":"unverified","alerts":null}],"seats":{"limit":10,"used":3}}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `not_permitted`: Not permitted.","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."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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.","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":"list_team_members","x-mcp-annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"x-owner-only":true}},"/team/members":{"post":{"operationId":"invite_team_member","summary":"Invite a teammate","description":"Ask to invite someone to the team. The account owner must confirm the invitation on the website before anything happens: until then no invitation is sent and no seat is used. The owner sees the request on the website and is normally notified by email. Asking again for the same address returns the open request. Only the account owner's API keys and connected apps can ask, while the plan includes team seats.","tags":["Team"],"security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/Version"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"email":{"type":"string","format":"email","maxLength":255,"description":"The address to invite."}},"required":["email"]},"examples":{"example_1":{"summary":"Invite a teammate","value":{"email":"teammate@example.com"}}}}}},"responses":{"200":{"description":"Invite a teammate","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","const":"pending_owner_confirmation","description":"Nothing has taken effect yet: the account owner must confirm the request."},"request":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["team_invite","record_share","webhook_endpoint"],"description":"team_invite: an invitation to the team. record_share: a payment record link. webhook_endpoint: a webhook endpoint that receives status changes."},"status":{"type":"string","enum":["pending","confirmed","declined","expired"],"description":"pending: waiting for the account owner. confirmed: the owner approved it and it took effect. declined: the owner refused it. expired: nobody answered within seven days, or a later request for the same transfer with different settings replaced it."},"created_at":{"type":"string"},"expires_at":{"type":"string"},"decided_at":{"type":["string","null"]},"invite_email":{"type":["string","null"],"description":"For a team invite: the address to invite."},"uetr":{"type":["string","null"],"description":"For a record share: the transfer's UETR."},"record_url":{"type":["string","null"],"description":"For a confirmed record share: the payment record link, while the record still has that link. Null otherwise."},"endpoint_url":{"type":["string","null"],"description":"For a webhook endpoint: its host and a masked path. Null otherwise."}},"required":["id","kind","status","created_at","expires_at","decided_at","invite_email","uetr","record_url","endpoint_url"],"additionalProperties":false},"detail":{"type":"string","description":"Plain English to pass on to the person behind the request."}},"required":["status","request","detail"],"additionalProperties":false},"example":{"status":"pending_owner_confirmation","request":{"id":"2e5a8d1b-6c9f-4d2a-b4e7-0f3c6d9a2b5e","kind":"team_invite","status":"pending","created_at":"2026-10-14T09:30:00.000Z","expires_at":"2026-10-21T09:30:00.000Z","decided_at":null,"invite_email":"teammate@example.com","uetr":null,"record_url":null,"endpoint_url":null},"detail":"The account owner must confirm the invitation to teammate@example.com on the website before it takes effect. They have been notified by email."}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `read_only_credential`: Read-only key or connection. `not_permitted`: Not permitted.","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."}},"read_only_credential":{"summary":"Read-only key or connection","value":{"type":"https://uetr.ai/docs/api/errors#read_only_credential","title":"Read-only key or connection","status":403,"code":"read_only_credential","detail":"Read-only key or connection."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"409":{"description":"`already_owner`: Already the account owner.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"already_owner":{"summary":"Already the account owner","value":{"type":"https://uetr.ai/docs/api/errors#already_owner","title":"Already the account owner","status":409,"code":"already_owner","detail":"Already the account owner."}}}}}},"413":{"description":"`request_too_large`: Request too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"request_too_large":{"summary":"Request too large","value":{"type":"https://uetr.ai/docs/api/errors#request_too_large","title":"Request too large","status":413,"code":"request_too_large","detail":"Request too large."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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. `machine_writes_disabled`: Changes are switched off.","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."}},"machine_writes_disabled":{"summary":"Changes are switched off","value":{"type":"https://uetr.ai/docs/api/errors#machine_writes_disabled","title":"Changes are switched off","status":503,"code":"machine_writes_disabled","detail":"Changes are switched off."}}}}}}},"x-mcp-tool":"invite_team_member","x-mcp-annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"x-owner-only":true}},"/team/members/{member_id}":{"delete":{"operationId":"remove_team_member","summary":"Remove a teammate","description":"Remove a teammate from the account, or cancel a pending invitation, and free the seat. A removed teammate loses access to the account at once, and the API keys and connected apps they set up for it stop working. Transfers they added stay in the account. Only the account owner's API keys and connected apps can remove, while the plan includes team seats.","tags":["Team"],"security":[{"apiKey":[]}],"parameters":[{"name":"member_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The teammate's seat id, from list_team_members."}},{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Remove a teammate","content":{"application/json":{"schema":{"type":"object","properties":{"removed":{"type":"boolean","const":true},"member_id":{"type":"string","format":"uuid"}},"required":["removed","member_id"],"additionalProperties":false},"example":{"removed":true,"member_id":"6f1c2b9e-3d4a-4e8f-9b7c-1a2d3e4f5a6b"}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `read_only_credential`: Read-only key or connection. `not_permitted`: Not permitted.","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."}},"read_only_credential":{"summary":"Read-only key or connection","value":{"type":"https://uetr.ai/docs/api/errors#read_only_credential","title":"Read-only key or connection","status":403,"code":"read_only_credential","detail":"Read-only key or connection."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"409":{"description":"`seat_not_active`: Seat no longer active.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"seat_not_active":{"summary":"Seat no longer active","value":{"type":"https://uetr.ai/docs/api/errors#seat_not_active","title":"Seat no longer active","status":409,"code":"seat_not_active","detail":"Seat no longer active."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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. `machine_writes_disabled`: Changes are switched off. `member_removal_failed`: Teammate not removed.","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."}},"machine_writes_disabled":{"summary":"Changes are switched off","value":{"type":"https://uetr.ai/docs/api/errors#machine_writes_disabled","title":"Changes are switched off","status":503,"code":"machine_writes_disabled","detail":"Changes are switched off."}},"member_removal_failed":{"summary":"Teammate not removed","value":{"type":"https://uetr.ai/docs/api/errors#member_removal_failed","title":"Teammate not removed","status":503,"code":"member_removal_failed","detail":"Teammate not removed."}}}}}}},"x-mcp-tool":"remove_team_member","x-mcp-annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"x-owner-only":true}},"/team/members/{member_id}/resend":{"post":{"operationId":"resend_team_invitation","summary":"Resend a team invitation","description":"Send a pending team invitation again when its delivery was not confirmed. An invitation already queued for delivery is refused, and invitations to one address are limited each hour. No seat changes. Only the account owner's API keys and connected apps can resend, while the plan includes team seats.","tags":["Team"],"security":[{"apiKey":[]}],"parameters":[{"name":"member_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The teammate's seat id, from list_team_members."}},{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Resend a team invitation","content":{"application/json":{"schema":{"type":"object","properties":{"member_id":{"type":"string","format":"uuid"},"email":{"type":"string"},"delivery":{"type":"string","enum":["sent","unverified"],"description":"sent: the invitation is queued for delivery. unverified: delivery could not be confirmed, so the invitation may not arrive; resend_team_invitation can try again."}},"required":["member_id","email","delivery"],"additionalProperties":false},"example":{"member_id":"6f1c2b9e-3d4a-4e8f-9b7c-1a2d3e4f5a6b","email":"new.colleague@example.com","delivery":"sent"}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `read_only_credential`: Read-only key or connection. `not_permitted`: Not permitted.","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."}},"read_only_credential":{"summary":"Read-only key or connection","value":{"type":"https://uetr.ai/docs/api/errors#read_only_credential","title":"Read-only key or connection","status":403,"code":"read_only_credential","detail":"Read-only key or connection."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"409":{"description":"`invitation_not_pending`: Invitation no longer pending. `invitation_queued`: Invitation already queued.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invitation_not_pending":{"summary":"Invitation no longer pending","value":{"type":"https://uetr.ai/docs/api/errors#invitation_not_pending","title":"Invitation no longer pending","status":409,"code":"invitation_not_pending","detail":"Invitation no longer pending."}},"invitation_queued":{"summary":"Invitation already queued","value":{"type":"https://uetr.ai/docs/api/errors#invitation_queued","title":"Invitation already queued","status":409,"code":"invitation_queued","detail":"Invitation already queued."}}}}}},"413":{"description":"`request_too_large`: Request too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"request_too_large":{"summary":"Request too large","value":{"type":"https://uetr.ai/docs/api/errors#request_too_large","title":"Request too large","status":413,"code":"request_too_large","detail":"Request too large."}}}}}},"429":{"description":"`rate_limited`: Too many requests. `invitation_rate_limited`: Too many invitations.","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."}},"invitation_rate_limited":{"summary":"Too many invitations","value":{"type":"https://uetr.ai/docs/api/errors#invitation_rate_limited","title":"Too many invitations","status":429,"code":"invitation_rate_limited","detail":"Too many invitations."}}}}}},"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. `machine_writes_disabled`: Changes are switched off. `invitation_check_failed`: Invitation not checked. `invitation_send_failed`: Invitation not sent. `invitation_not_sent`: Invitation not sent.","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."}},"machine_writes_disabled":{"summary":"Changes are switched off","value":{"type":"https://uetr.ai/docs/api/errors#machine_writes_disabled","title":"Changes are switched off","status":503,"code":"machine_writes_disabled","detail":"Changes are switched off."}},"invitation_check_failed":{"summary":"Invitation not checked","value":{"type":"https://uetr.ai/docs/api/errors#invitation_check_failed","title":"Invitation not checked","status":503,"code":"invitation_check_failed","detail":"Invitation not checked."}},"invitation_send_failed":{"summary":"Invitation not sent","value":{"type":"https://uetr.ai/docs/api/errors#invitation_send_failed","title":"Invitation not sent","status":503,"code":"invitation_send_failed","detail":"Invitation not sent."}},"invitation_not_sent":{"summary":"Invitation not sent","value":{"type":"https://uetr.ai/docs/api/errors#invitation_not_sent","title":"Invitation not sent","status":503,"code":"invitation_not_sent","detail":"Invitation not sent."}}}}}}},"x-mcp-tool":"resend_team_invitation","x-mcp-annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"x-owner-only":true}},"/transfers":{"get":{"operationId":"list_transfers","summary":"List transfers","description":"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.","tags":["Transfers"],"security":[{"apiKey":[]}],"parameters":[{"name":"archived","in":"query","required":false,"schema":{"type":"string","enum":["exclude","include","only"],"default":"exclude","description":"exclude (default): active transfers. include: all. only: archived transfers."}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":200,"description":"The next_cursor of the previous page."}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":50,"description":"Transfers per page, 1 to 100. Default 50."}},{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"List transfers","content":{"application/json":{"schema":{"type":"object","properties":{"transfers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The transfer's id in this account."},"uetr":{"type":"string","description":"The Unique End-to-end Transaction Reference."},"label":{"type":["string","null"],"description":"The account's own label for the transfer."},"view":{"type":"string","enum":["full","free"],"description":"full: every report as the paid timeline shows it. free: the free tracker view."},"status":{"type":"string","enum":["searching","not_found","check_failed","in_transit","on_hold","credited","rejected","returned","cancelled"],"description":"The transfer's current status."},"position_sentence":{"type":["string","null"],"description":"In the full view, the payment position from its status and verified route. A reporting bank alone never establishes a position."},"status_code":{"type":["string","null"],"description":"The latest ISO 20022 status code, in the full view only."},"status_explanation":{"type":["string","null"],"description":"What the status code means, in plain English."},"checks_finished":{"type":"boolean","description":"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."},"amount":{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."}},"required":["value","currency"],"additionalProperties":false,"description":"The amount entered for the search, as last corrected by the account owner. bank_reported_amount is what a bank reported."},"payment_date":{"type":"string","description":"The payment date entered for the search, as last corrected by the account owner."},"bank_reported_amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."},"payment_date":{"type":["string","null"]}},"required":["value","currency","payment_date"],"additionalProperties":false},{"type":"null"}],"description":"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."},"last_checked_at":{"type":["string","null"],"description":"When the transfer was last checked."},"monitoring_until":{"type":["string","null"],"description":"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."},"check_frequency_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"How often this transfer's own checks run, in the full view; null when it has none scheduled."},"archived":{"type":"boolean","description":"True when the transfer is archived."},"added_at":{"type":"string","description":"When the transfer was added."}},"required":["id","uetr","label","view","status","status_code","status_explanation","checks_finished","amount","payment_date","bank_reported_amount","last_checked_at","monitoring_until","check_frequency_minutes","archived","added_at"],"additionalProperties":false}},"next_cursor":{"type":["string","null"],"description":"Pass as cursor for the next page; null on the last."}},"required":["transfers","next_cursor"],"additionalProperties":false},"example":{"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}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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.","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":"list_transfers","x-mcp-annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},"post":{"operationId":"add_transfer","summary":"Add a transfer","description":"Add a transfer to the account by its UETR, with the amount, currency and date it was sent. The account's plan decides how it is monitored, as for an add on the website. Adding a UETR the account already holds returns that transfer and uses no more of the plan; an archived one is returned archived. Returns the transfer and the outcome.","tags":["Transfers"],"security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/Version"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"uetr":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$","description":"The transfer's UETR."},"amount":{"type":"object","properties":{"value":{"type":"number","exclusiveMinimum":0},"currency":{"type":"string","pattern":"^[A-Za-z]{3}$"}},"required":["value","currency"],"additionalProperties":false,"description":"The amount sent and its currency. The currency is a three-letter code in any letter case, one of USD, EUR, GBP, JPY, CHF, CAD, AUD, AED, BDT, BRL, CNY, HKD, IDR, ILS, INR, JOD, MAD, MXN, MYR, NZD, PHP, PKR, PLN, QAR, SAR, SGD, SZL, THB, TRY, TWD, TZS, XAF, XOF, ZAR. The value can have at most 2 decimal places, or none for JPY, XAF and XOF."},"payment_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"The date the payment was sent. It can be no later than the next calendar day in UTC."}},"required":["uetr","amount","payment_date"]},"examples":{"example_1":{"summary":"Add a transfer","value":{"uetr":"eb6305c9-1f7f-49de-aed0-16487c27b42d","amount":{"value":1500.5,"currency":"USD"},"payment_date":"2026-10-01"}}}}}},"responses":{"200":{"description":"Add a transfer","content":{"application/json":{"schema":{"type":"object","properties":{"transfer":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The transfer's id in this account."},"uetr":{"type":"string","description":"The Unique End-to-end Transaction Reference."},"label":{"type":["string","null"],"description":"The account's own label for the transfer."},"view":{"type":"string","enum":["full","free"],"description":"full: every report as the paid timeline shows it. free: the free tracker view."},"status":{"type":"string","enum":["searching","not_found","check_failed","in_transit","on_hold","credited","rejected","returned","cancelled"],"description":"The transfer's current status."},"position_sentence":{"type":["string","null"],"description":"In the full view, the payment position from its status and verified route. A reporting bank alone never establishes a position."},"status_code":{"type":["string","null"],"description":"The latest ISO 20022 status code, in the full view only."},"status_explanation":{"type":["string","null"],"description":"What the status code means, in plain English."},"checks_finished":{"type":"boolean","description":"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."},"amount":{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."}},"required":["value","currency"],"additionalProperties":false,"description":"The amount entered for the search, as last corrected by the account owner. bank_reported_amount is what a bank reported."},"payment_date":{"type":"string","description":"The payment date entered for the search, as last corrected by the account owner."},"bank_reported_amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."},"payment_date":{"type":["string","null"]}},"required":["value","currency","payment_date"],"additionalProperties":false},{"type":"null"}],"description":"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."},"last_checked_at":{"type":["string","null"],"description":"When the transfer was last checked."},"monitoring_until":{"type":["string","null"],"description":"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."},"check_frequency_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"How often this transfer's own checks run, in the full view; null when it has none scheduled."},"archived":{"type":"boolean","description":"True when the transfer is archived."},"added_at":{"type":"string","description":"When the transfer was added."}},"required":["id","uetr","label","view","status","status_code","status_explanation","checks_finished","amount","payment_date","bank_reported_amount","last_checked_at","monitoring_until","check_frequency_minutes","archived","added_at"],"additionalProperties":false,"description":"The transfer."},"events":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"reported_at":{"type":["string","null"],"description":"When the bank reported this status, if the report carries that time."},"observed_at":{"type":"string","description":"When this report was first received."},"status":{"anyOf":[{"type":"string","enum":["searching","not_found","check_failed","in_transit","on_hold","credited","rejected","returned","cancelled"]},{"type":"null"}]},"status_code":{"type":["string","null"],"description":"The ISO 20022 status code the bank reported."},"status_explanation":{"type":["string","null"]},"reporting_bank":{"type":"object","properties":{"name":{"type":"string"},"country":{"type":["string","null"]},"bic":{"type":["string","null"]}},"required":["name","country","bic"],"additionalProperties":false,"description":"The bank that reported. It is not necessarily on the payment's route."},"bank_processing_status":{"type":["string","null"],"description":"The bank's own processing status, in its words."},"extended_tracking_status":{"type":["string","null"],"description":"The bank's extended tracking status, in its words."},"amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."}},"required":["value","currency"],"additionalProperties":false},{"type":"null"}],"description":"The amount this report carried, when it carried one."},"currency":{"type":["string","null"],"description":"The currency the report stated, when it stated one. A report can state a currency with no amount and no fees."},"fees":{"type":"array","items":{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":["string","null"]},"role":{"type":"string","enum":["total","component","bank"],"description":"A stated total, one part of a total, or one bank's charge."},"label":{"type":["string","null"],"description":"The bank's own name for the fee, if it gave one."},"charged_by":{"type":["string","null"],"description":"The bank the report says charged it, if any."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the fee belongs to, as the bank record numbers it; null when the fee belongs to the report as a whole."}},"required":["value","currency","role","label","charged_by","event_number"],"additionalProperties":false},"description":"Every fee this report stated, as the bank listed them."},"payment_date":{"type":["string","null"],"description":"The value date this report carried, when it carried one."},"bank_reference":{"type":["string","null"],"description":"The bank's reference for the payment."},"chips_ssn":{"type":["string","null"],"description":"The CHIPS sequence number the bank reported."},"details":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"cancellation_request"},"code":{"type":"string","description":"The bank's literal cancellation-request code, separate from the transaction status. It does not establish that money was stopped or returned."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","event_number","bank"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"amount"},"role":{"type":"string","enum":["reported","instructed","sent","settled","confirmed","received"],"description":"Which amount the bank stated."},"value":{"type":"number"},"currency":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","role","value","currency","event_number","bank"],"additionalProperties":false,"description":"An amount the report states, by its role. The event's own amount is the figure the timeline quotes for the report."},{"type":"object","properties":{"kind":{"type":"string","const":"reference"},"type":{"type":"string","enum":["payment_reference","fed_imad","network_reference","instruction_id"]},"value":{"type":"string"},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","type","value","event_number","bank"],"additionalProperties":false,"description":"A reference the report states, such as a FED IMAD or an instruction ID."},{"type":"object","properties":{"kind":{"type":"string","const":"time"},"stage":{"type":"string","enum":["initiated","message_received","acknowledgement_received","arrived","departed","transaction_status","updated","confirmed","completed"],"description":"The stage the time belongs to: the payment started, a message or the sender's acknowledgement was received, the payment arrived at or departed from a step of the route, the transaction status was set, the bank last updated its status, or the payment was confirmed or completed."},"at":{"type":"string"},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","stage","at","event_number","bank"],"additionalProperties":false,"description":"A time the bank states for one stage of the payment."},{"type":"object","properties":{"kind":{"type":"string","const":"duration"},"type":{"type":"string","enum":["bank_stated","elapsed","time_at_bank"],"description":"bank_stated: how long the payment took, as the bank states it. elapsed: the time from the payment's start to the report's latest update. time_at_bank: how long the payment stayed at one bank on the route, between its arrival and its departure there."},"value":{"type":"string","description":"The duration, in words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","type","value","event_number","bank"],"additionalProperties":false,"description":"How long the payment took, or stayed at one bank."},{"type":"object","properties":{"kind":{"type":"string","const":"exchange_rate"},"rate":{"type":"number"},"from_currency":{"type":["string","null"]},"to_currency":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","rate","from_currency","to_currency","event_number","bank"],"additionalProperties":false,"description":"An exchange rate the report states."},{"type":"object","properties":{"kind":{"type":"string","const":"chain_bank"},"role":{"type":"string","enum":["sending","crediting","current","route"],"description":"sending: the sending bank. crediting: the bank crediting the payee. current: the bank the report says holds the payment now. route: a bank the report lists in the payment's chain."},"name":{"type":["string","null"]},"bic":{"type":["string","null"]},"location":{"type":["string","null"]},"country":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."}},"required":["kind","role","name","bic","location","country","event_number"],"additionalProperties":false,"description":"A bank this report names in the payment's chain, as the report states it."},{"type":"object","properties":{"kind":{"type":"string","const":"charge_bearer"},"code":{"type":"string","description":"The charge bearer code, as the bank stated it."},"explanation":{"type":["string","null"],"description":"Who pays the charges, for the codes SHA, OUR and BEN and their equivalents."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","explanation","event_number","bank"],"additionalProperties":false,"description":"Who the report says bears the charges."},{"type":"object","properties":{"kind":{"type":"string","const":"fee_note"},"code":{"type":["string","null"]},"description":{"type":["string","null"],"description":"The bank's own words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","description","event_number","bank"],"additionalProperties":false,"description":"A note the bank gives about fees."},{"type":"object","properties":{"kind":{"type":"string","const":"reject_return_reason"},"code":{"type":"string"},"description":{"type":["string","null"],"description":"The bank's own words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","description","event_number","bank"],"additionalProperties":false,"description":"The reason a bank gives for rejecting or returning the payment."},{"type":"object","properties":{"kind":{"type":"string","const":"message"},"event_type":{"type":["string","null"],"description":"The tracking event type, such as CTPT or CTSU."},"message_name":{"type":["string","null"],"description":"The message name, such as pacs.008.001.08."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","event_type","message_name","event_number","bank"],"additionalProperties":false,"description":"A payment message the report lists."},{"type":"object","properties":{"kind":{"type":"string","const":"event_status"},"status":{"type":"string"},"reason":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","status","reason","event_number","bank"],"additionalProperties":false,"description":"The status the report gives one event, with its reason, as the bank stated them."}]},"description":"Every further detail the bank record shows for this report, in the record's order, with the bank's times by stage and then durations last. Kinds: amounts by role, references, banks the report names in the payment's chain, exchange rates, the charge bearer, fee notes, reject or return reasons, messages, event statuses and literal cancellation-request codes. A cancellation request is separate from the transaction outcome. Fees are in fees. A detail that restates the bank reference, the bank's status time or a stored amount is left out. New kinds and values can appear within an API version; skip any you do not recognise."}},"required":["reported_at","observed_at","status","status_code","status_explanation","reporting_bank","bank_processing_status","extended_tracking_status","amount","currency","fees","payment_date","bank_reference","chips_ssn","details"],"additionalProperties":false}},{"type":"null"}],"description":"Every bank report, in the full view only, in payment lifecycle order as the timeline shows them: the last is the latest stage, which may have been received before an earlier stage's report (see observed_at)."},"waiting_at":{"type":["string","null"],"description":"In the full view, the bank the payment is waiting at, when the reports name one; otherwise null."},"free":{"anyOf":[{"type":"object","properties":{"has_activity":{"type":"boolean","description":"True once any bank has reported the transfer."},"last_update_at":{"type":["string","null"],"description":"When the free view last changed."},"reporting_bank_countries":{"type":"array","items":{"type":"string"},"description":"Home countries of the banks that reported. These are not the payment's route."},"reporting_banks":{"type":"integer","description":"How many banks have reported."},"next_update_at":{"type":["string","null"],"description":"When the free view next refreshes."},"pending_update_at":{"type":["string","null"],"description":"When a newer report becomes visible in the free view."},"checks_end_at":{"type":["string","null"],"description":"When free automatic checks end."},"checks_ended":{"type":"boolean"},"reports":{"type":"array","items":{"type":"object","properties":{"bank_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The reporting bank, numbered within this transfer; its name is in the full view."},"reported_at":{"type":["string","null"],"description":"The report's time."},"time_source":{"anyOf":[{"type":"string","enum":["bank_reported","first_received"]},{"type":"null"}],"description":"Whether the time is the one the bank gave, or when the report was first received."},"amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":["string","null"]}},"required":["value","currency"],"additionalProperties":false},{"type":"null"}],"description":"The amount this report carried, when it carried one; the currency is null when the report gave none."},"payment_date":{"type":["string","null"],"description":"The value date this report carried, when it carried one."},"details_in_full_view":{"type":"object","properties":{"bank_name":{"type":"boolean"},"bic":{"type":"boolean"},"status":{"type":"boolean"},"message":{"type":"boolean"},"reference":{"type":"boolean"},"fees":{"type":"boolean"}},"required":["bank_name","bic","status","message","reference","fees"],"additionalProperties":false,"description":"Which details this report holds that the full view shows. Only their presence is in the free view."}},"required":["bank_number","reported_at","time_source","amount","payment_date","details_in_full_view"],"additionalProperties":false},"description":"The reports the free view shows, in its order: the report behind the current status first, then newest first by reported_at, with reports that have no time last. At most 50."},"total_reports":{"type":"integer","description":"How many reports the free view counts."},"report_counts":{"type":"object","properties":{"with_bank_time":{"type":"integer"},"with_fees":{"type":"integer"},"with_messages":{"type":"integer"},"bank_references":{"type":"integer","description":"Distinct bank references."}},"required":["with_bank_time","with_fees","with_messages","bank_references"],"additionalProperties":false,"description":"Counts of details the full view shows, as the free tracker lists them."},"reported_by":{"type":"object","properties":{"amount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"value_date":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["amount","value_date"],"additionalProperties":false,"description":"The numbered bank (as in reports) behind the summary's bank-reported amount and value date."},"pending_report_at":{"type":["string","null"],"description":"The recorded time of the newer report not yet in the free view, when it has one."},"attention":{"anyOf":[{"type":"string","enum":["action_needed","waiting"]},{"type":"null"}],"description":"A bank's current report flags an issue: action needed, or waiting at a bank. The code and bank are in the full view."},"delay":{"anyOf":[{"type":"object","properties":{"days":{"type":"integer"},"tier":{"type":"string","enum":["slow","very_slow"]}},"required":["days","tier"],"additionalProperties":false},{"type":"null"}],"description":"Whole days since any bank last reported, when that is longer than usual."},"payment_route":{"anyOf":[{"type":"object","properties":{"sender":{"anyOf":[{"type":"object","properties":{"name":{"type":["string","null"],"description":"The bank's name, when the directory knows it."},"bic":{"type":"string"}},"required":["name","bic"],"additionalProperties":false},{"type":"null"}]},"beneficiary":{"anyOf":[{"type":"object","properties":{"name":{"type":["string","null"],"description":"The bank's name, when the directory knows it."},"bic":{"type":"string"}},"required":["name","bic"],"additionalProperties":false},{"type":"null"}]},"other_banks":{"type":"boolean","description":"True when other banks took part; they are named in the full view."}},"required":["sender","beneficiary","other_banks"],"additionalProperties":false},{"type":"null"}],"description":"The sending and beneficiary banks the reports confirm."}},"required":["has_activity","last_update_at","reporting_bank_countries","reporting_banks","next_update_at","pending_update_at","checks_end_at","checks_ended","reports","total_reports","report_counts","reported_by","pending_report_at","attention","delay","payment_route"],"additionalProperties":false},{"type":"null"}],"description":"The free tracker's view, in the free view only."},"corrections_remaining":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"How many more corrections the account owner can make to the entered amount, currency and payment date now that a bank has reported. Null when no bank has reported, when the API key or connected app is not the account owner's, when the transfer is archived, or when the count could not be read."},"outcome":{"type":"string","enum":["created","existing","archived"],"description":"created: a new transfer. existing: the account already held it. archived: the account holds it archived; restore it to resume monitoring."}},"required":["transfer","events","waiting_at","free","corrections_remaining","outcome"],"additionalProperties":false},"example":{"transfer":{"id":"8d2f6b1e-4c3a-4f7d-9e8b-5a1c2d3e4f60","uetr":"eb6305c9-1f7f-49de-aed0-16487c27b42d","label":null,"view":"full","status":"searching","position_sentence":null,"status_code":null,"status_explanation":null,"checks_finished":false,"amount":{"value":1500.5,"currency":"USD"},"payment_date":"2026-10-01","bank_reported_amount":null,"last_checked_at":"2026-10-14T09:00:00.000Z","monitoring_until":"2026-11-14T09:00:00.000Z","check_frequency_minutes":60,"archived":false,"added_at":"2026-10-14T09:00:00.000Z"},"events":[],"waiting_at":null,"free":null,"corrections_remaining":null,"outcome":"created"}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `read_only_credential`: Read-only key or connection. `not_permitted`: Not permitted.","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."}},"read_only_credential":{"summary":"Read-only key or connection","value":{"type":"https://uetr.ai/docs/api/errors#read_only_credential","title":"Read-only key or connection","status":403,"code":"read_only_credential","detail":"Read-only key or connection."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"409":{"description":"`active_transfer_limit`: Active transfer limit reached. `monthly_limit_reached`: Monthly transfer limit reached. `rescue_limit`: Rescue covers one transfer. `transfer_archived`: Transfer is archived. `account_email_missing`: No email address on the account. `demo_transfer`: The demo transfer cannot be changed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"active_transfer_limit":{"summary":"Active transfer limit reached","value":{"type":"https://uetr.ai/docs/api/errors#active_transfer_limit","title":"Active transfer limit reached","status":409,"code":"active_transfer_limit","detail":"Active transfer limit reached."}},"monthly_limit_reached":{"summary":"Monthly transfer limit reached","value":{"type":"https://uetr.ai/docs/api/errors#monthly_limit_reached","title":"Monthly transfer limit reached","status":409,"code":"monthly_limit_reached","detail":"Monthly transfer limit reached."}},"rescue_limit":{"summary":"Rescue covers one transfer","value":{"type":"https://uetr.ai/docs/api/errors#rescue_limit","title":"Rescue covers one transfer","status":409,"code":"rescue_limit","detail":"Rescue covers one transfer."}},"transfer_archived":{"summary":"Transfer is archived","value":{"type":"https://uetr.ai/docs/api/errors#transfer_archived","title":"Transfer is archived","status":409,"code":"transfer_archived","detail":"Transfer is archived."}},"account_email_missing":{"summary":"No email address on the account","value":{"type":"https://uetr.ai/docs/api/errors#account_email_missing","title":"No email address on the account","status":409,"code":"account_email_missing","detail":"No email address on the account."}},"demo_transfer":{"summary":"The demo transfer cannot be changed","value":{"type":"https://uetr.ai/docs/api/errors#demo_transfer","title":"The demo transfer cannot be changed","status":409,"code":"demo_transfer","detail":"The demo transfer cannot be changed."}}}}}},"413":{"description":"`request_too_large`: Request too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"request_too_large":{"summary":"Request too large","value":{"type":"https://uetr.ai/docs/api/errors#request_too_large","title":"Request too large","status":413,"code":"request_too_large","detail":"Request too large."}}}}}},"429":{"description":"`rate_limited`: Too many requests. `lookup_limit`: Lookup limit reached.","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."}},"lookup_limit":{"summary":"Lookup limit reached","value":{"type":"https://uetr.ai/docs/api/errors#lookup_limit","title":"Lookup limit reached","status":429,"code":"lookup_limit","detail":"Lookup limit reached."}}}}}},"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. `machine_writes_disabled`: Changes are switched off. `plan_unverified`: Plan could not be verified. `check_not_started`: Check not started.","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."}},"machine_writes_disabled":{"summary":"Changes are switched off","value":{"type":"https://uetr.ai/docs/api/errors#machine_writes_disabled","title":"Changes are switched off","status":503,"code":"machine_writes_disabled","detail":"Changes are switched off."}},"plan_unverified":{"summary":"Plan could not be verified","value":{"type":"https://uetr.ai/docs/api/errors#plan_unverified","title":"Plan could not be verified","status":503,"code":"plan_unverified","detail":"Plan could not be verified."}},"check_not_started":{"summary":"Check not started","value":{"type":"https://uetr.ai/docs/api/errors#check_not_started","title":"Check not started","status":503,"code":"check_not_started","detail":"Check not started."}}}}}}},"x-mcp-tool":"add_transfer","x-mcp-annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}}},"/transfers/{uetr}":{"delete":{"operationId":"delete_transfer","summary":"Delete a transfer","description":"Permanently delete a transfer from the account, archived or not, with its timeline. It cannot be undone; archiving keeps the transfer instead. Adding the UETR again later starts a new transfer.","tags":["Transfers"],"security":[{"apiKey":[]}],"parameters":[{"name":"uetr","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$","description":"The transfer's UETR."}},{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Delete a transfer","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean","const":true},"uetr":{"type":"string","description":"The UETR of the deleted transfer."}},"required":["deleted","uetr"],"additionalProperties":false},"example":{"deleted":true,"uetr":"eb6305c9-1f7f-49de-aed0-16487c27b42d"}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `read_only_credential`: Read-only key or connection. `not_permitted`: Not permitted.","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."}},"read_only_credential":{"summary":"Read-only key or connection","value":{"type":"https://uetr.ai/docs/api/errors#read_only_credential","title":"Read-only key or connection","status":403,"code":"read_only_credential","detail":"Read-only key or connection."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"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."}}}}}},"409":{"description":"`demo_transfer`: The demo transfer cannot be changed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"demo_transfer":{"summary":"The demo transfer cannot be changed","value":{"type":"https://uetr.ai/docs/api/errors#demo_transfer","title":"The demo transfer cannot be changed","status":409,"code":"demo_transfer","detail":"The demo transfer cannot be changed."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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. `machine_writes_disabled`: Changes are switched off. `plan_unverified`: Plan could not be verified.","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."}},"machine_writes_disabled":{"summary":"Changes are switched off","value":{"type":"https://uetr.ai/docs/api/errors#machine_writes_disabled","title":"Changes are switched off","status":503,"code":"machine_writes_disabled","detail":"Changes are switched off."}},"plan_unverified":{"summary":"Plan could not be verified","value":{"type":"https://uetr.ai/docs/api/errors#plan_unverified","title":"Plan could not be verified","status":503,"code":"plan_unverified","detail":"Plan could not be verified."}}}}}}},"x-mcp-tool":"delete_transfer","x-mcp-annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},"get":{"operationId":"get_transfer","summary":"Get a transfer","description":"Get one transfer in this account by its UETR, with every bank report in the full view, or the free tracker's view for a free transfer. The number of people who follow the transfer's updates comes from get_watcher_count. The demo transfer 00000000-0000-4000-8000-000000000000 works for every key. Each hour (UTC) it is searching, with no bank reports, for its first 10 minutes, then gains a bank report every 10 minutes until it is credited at 50 minutes past the hour. Reading changes nothing.","tags":["Transfers"],"security":[{"apiKey":[]}],"parameters":[{"name":"uetr","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$","description":"The transfer's UETR."}},{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Get a transfer","content":{"application/json":{"schema":{"type":"object","properties":{"transfer":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The transfer's id in this account."},"uetr":{"type":"string","description":"The Unique End-to-end Transaction Reference."},"label":{"type":["string","null"],"description":"The account's own label for the transfer."},"view":{"type":"string","enum":["full","free"],"description":"full: every report as the paid timeline shows it. free: the free tracker view."},"status":{"type":"string","enum":["searching","not_found","check_failed","in_transit","on_hold","credited","rejected","returned","cancelled"],"description":"The transfer's current status."},"position_sentence":{"type":["string","null"],"description":"In the full view, the payment position from its status and verified route. A reporting bank alone never establishes a position."},"status_code":{"type":["string","null"],"description":"The latest ISO 20022 status code, in the full view only."},"status_explanation":{"type":["string","null"],"description":"What the status code means, in plain English."},"checks_finished":{"type":"boolean","description":"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."},"amount":{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."}},"required":["value","currency"],"additionalProperties":false,"description":"The amount entered for the search, as last corrected by the account owner. bank_reported_amount is what a bank reported."},"payment_date":{"type":"string","description":"The payment date entered for the search, as last corrected by the account owner."},"bank_reported_amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."},"payment_date":{"type":["string","null"]}},"required":["value","currency","payment_date"],"additionalProperties":false},{"type":"null"}],"description":"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."},"last_checked_at":{"type":["string","null"],"description":"When the transfer was last checked."},"monitoring_until":{"type":["string","null"],"description":"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."},"check_frequency_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"How often this transfer's own checks run, in the full view; null when it has none scheduled."},"archived":{"type":"boolean","description":"True when the transfer is archived."},"added_at":{"type":"string","description":"When the transfer was added."}},"required":["id","uetr","label","view","status","status_code","status_explanation","checks_finished","amount","payment_date","bank_reported_amount","last_checked_at","monitoring_until","check_frequency_minutes","archived","added_at"],"additionalProperties":false,"description":"The transfer."},"events":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"reported_at":{"type":["string","null"],"description":"When the bank reported this status, if the report carries that time."},"observed_at":{"type":"string","description":"When this report was first received."},"status":{"anyOf":[{"type":"string","enum":["searching","not_found","check_failed","in_transit","on_hold","credited","rejected","returned","cancelled"]},{"type":"null"}]},"status_code":{"type":["string","null"],"description":"The ISO 20022 status code the bank reported."},"status_explanation":{"type":["string","null"]},"reporting_bank":{"type":"object","properties":{"name":{"type":"string"},"country":{"type":["string","null"]},"bic":{"type":["string","null"]}},"required":["name","country","bic"],"additionalProperties":false,"description":"The bank that reported. It is not necessarily on the payment's route."},"bank_processing_status":{"type":["string","null"],"description":"The bank's own processing status, in its words."},"extended_tracking_status":{"type":["string","null"],"description":"The bank's extended tracking status, in its words."},"amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."}},"required":["value","currency"],"additionalProperties":false},{"type":"null"}],"description":"The amount this report carried, when it carried one."},"currency":{"type":["string","null"],"description":"The currency the report stated, when it stated one. A report can state a currency with no amount and no fees."},"fees":{"type":"array","items":{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":["string","null"]},"role":{"type":"string","enum":["total","component","bank"],"description":"A stated total, one part of a total, or one bank's charge."},"label":{"type":["string","null"],"description":"The bank's own name for the fee, if it gave one."},"charged_by":{"type":["string","null"],"description":"The bank the report says charged it, if any."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the fee belongs to, as the bank record numbers it; null when the fee belongs to the report as a whole."}},"required":["value","currency","role","label","charged_by","event_number"],"additionalProperties":false},"description":"Every fee this report stated, as the bank listed them."},"payment_date":{"type":["string","null"],"description":"The value date this report carried, when it carried one."},"bank_reference":{"type":["string","null"],"description":"The bank's reference for the payment."},"chips_ssn":{"type":["string","null"],"description":"The CHIPS sequence number the bank reported."},"details":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"cancellation_request"},"code":{"type":"string","description":"The bank's literal cancellation-request code, separate from the transaction status. It does not establish that money was stopped or returned."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","event_number","bank"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"amount"},"role":{"type":"string","enum":["reported","instructed","sent","settled","confirmed","received"],"description":"Which amount the bank stated."},"value":{"type":"number"},"currency":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","role","value","currency","event_number","bank"],"additionalProperties":false,"description":"An amount the report states, by its role. The event's own amount is the figure the timeline quotes for the report."},{"type":"object","properties":{"kind":{"type":"string","const":"reference"},"type":{"type":"string","enum":["payment_reference","fed_imad","network_reference","instruction_id"]},"value":{"type":"string"},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","type","value","event_number","bank"],"additionalProperties":false,"description":"A reference the report states, such as a FED IMAD or an instruction ID."},{"type":"object","properties":{"kind":{"type":"string","const":"time"},"stage":{"type":"string","enum":["initiated","message_received","acknowledgement_received","arrived","departed","transaction_status","updated","confirmed","completed"],"description":"The stage the time belongs to: the payment started, a message or the sender's acknowledgement was received, the payment arrived at or departed from a step of the route, the transaction status was set, the bank last updated its status, or the payment was confirmed or completed."},"at":{"type":"string"},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","stage","at","event_number","bank"],"additionalProperties":false,"description":"A time the bank states for one stage of the payment."},{"type":"object","properties":{"kind":{"type":"string","const":"duration"},"type":{"type":"string","enum":["bank_stated","elapsed","time_at_bank"],"description":"bank_stated: how long the payment took, as the bank states it. elapsed: the time from the payment's start to the report's latest update. time_at_bank: how long the payment stayed at one bank on the route, between its arrival and its departure there."},"value":{"type":"string","description":"The duration, in words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","type","value","event_number","bank"],"additionalProperties":false,"description":"How long the payment took, or stayed at one bank."},{"type":"object","properties":{"kind":{"type":"string","const":"exchange_rate"},"rate":{"type":"number"},"from_currency":{"type":["string","null"]},"to_currency":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","rate","from_currency","to_currency","event_number","bank"],"additionalProperties":false,"description":"An exchange rate the report states."},{"type":"object","properties":{"kind":{"type":"string","const":"chain_bank"},"role":{"type":"string","enum":["sending","crediting","current","route"],"description":"sending: the sending bank. crediting: the bank crediting the payee. current: the bank the report says holds the payment now. route: a bank the report lists in the payment's chain."},"name":{"type":["string","null"]},"bic":{"type":["string","null"]},"location":{"type":["string","null"]},"country":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."}},"required":["kind","role","name","bic","location","country","event_number"],"additionalProperties":false,"description":"A bank this report names in the payment's chain, as the report states it."},{"type":"object","properties":{"kind":{"type":"string","const":"charge_bearer"},"code":{"type":"string","description":"The charge bearer code, as the bank stated it."},"explanation":{"type":["string","null"],"description":"Who pays the charges, for the codes SHA, OUR and BEN and their equivalents."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","explanation","event_number","bank"],"additionalProperties":false,"description":"Who the report says bears the charges."},{"type":"object","properties":{"kind":{"type":"string","const":"fee_note"},"code":{"type":["string","null"]},"description":{"type":["string","null"],"description":"The bank's own words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","description","event_number","bank"],"additionalProperties":false,"description":"A note the bank gives about fees."},{"type":"object","properties":{"kind":{"type":"string","const":"reject_return_reason"},"code":{"type":"string"},"description":{"type":["string","null"],"description":"The bank's own words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","description","event_number","bank"],"additionalProperties":false,"description":"The reason a bank gives for rejecting or returning the payment."},{"type":"object","properties":{"kind":{"type":"string","const":"message"},"event_type":{"type":["string","null"],"description":"The tracking event type, such as CTPT or CTSU."},"message_name":{"type":["string","null"],"description":"The message name, such as pacs.008.001.08."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","event_type","message_name","event_number","bank"],"additionalProperties":false,"description":"A payment message the report lists."},{"type":"object","properties":{"kind":{"type":"string","const":"event_status"},"status":{"type":"string"},"reason":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","status","reason","event_number","bank"],"additionalProperties":false,"description":"The status the report gives one event, with its reason, as the bank stated them."}]},"description":"Every further detail the bank record shows for this report, in the record's order, with the bank's times by stage and then durations last. Kinds: amounts by role, references, banks the report names in the payment's chain, exchange rates, the charge bearer, fee notes, reject or return reasons, messages, event statuses and literal cancellation-request codes. A cancellation request is separate from the transaction outcome. Fees are in fees. A detail that restates the bank reference, the bank's status time or a stored amount is left out. New kinds and values can appear within an API version; skip any you do not recognise."}},"required":["reported_at","observed_at","status","status_code","status_explanation","reporting_bank","bank_processing_status","extended_tracking_status","amount","currency","fees","payment_date","bank_reference","chips_ssn","details"],"additionalProperties":false}},{"type":"null"}],"description":"Every bank report, in the full view only, in payment lifecycle order as the timeline shows them: the last is the latest stage, which may have been received before an earlier stage's report (see observed_at)."},"waiting_at":{"type":["string","null"],"description":"In the full view, the bank the payment is waiting at, when the reports name one; otherwise null."},"free":{"anyOf":[{"type":"object","properties":{"has_activity":{"type":"boolean","description":"True once any bank has reported the transfer."},"last_update_at":{"type":["string","null"],"description":"When the free view last changed."},"reporting_bank_countries":{"type":"array","items":{"type":"string"},"description":"Home countries of the banks that reported. These are not the payment's route."},"reporting_banks":{"type":"integer","description":"How many banks have reported."},"next_update_at":{"type":["string","null"],"description":"When the free view next refreshes."},"pending_update_at":{"type":["string","null"],"description":"When a newer report becomes visible in the free view."},"checks_end_at":{"type":["string","null"],"description":"When free automatic checks end."},"checks_ended":{"type":"boolean"},"reports":{"type":"array","items":{"type":"object","properties":{"bank_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The reporting bank, numbered within this transfer; its name is in the full view."},"reported_at":{"type":["string","null"],"description":"The report's time."},"time_source":{"anyOf":[{"type":"string","enum":["bank_reported","first_received"]},{"type":"null"}],"description":"Whether the time is the one the bank gave, or when the report was first received."},"amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":["string","null"]}},"required":["value","currency"],"additionalProperties":false},{"type":"null"}],"description":"The amount this report carried, when it carried one; the currency is null when the report gave none."},"payment_date":{"type":["string","null"],"description":"The value date this report carried, when it carried one."},"details_in_full_view":{"type":"object","properties":{"bank_name":{"type":"boolean"},"bic":{"type":"boolean"},"status":{"type":"boolean"},"message":{"type":"boolean"},"reference":{"type":"boolean"},"fees":{"type":"boolean"}},"required":["bank_name","bic","status","message","reference","fees"],"additionalProperties":false,"description":"Which details this report holds that the full view shows. Only their presence is in the free view."}},"required":["bank_number","reported_at","time_source","amount","payment_date","details_in_full_view"],"additionalProperties":false},"description":"The reports the free view shows, in its order: the report behind the current status first, then newest first by reported_at, with reports that have no time last. At most 50."},"total_reports":{"type":"integer","description":"How many reports the free view counts."},"report_counts":{"type":"object","properties":{"with_bank_time":{"type":"integer"},"with_fees":{"type":"integer"},"with_messages":{"type":"integer"},"bank_references":{"type":"integer","description":"Distinct bank references."}},"required":["with_bank_time","with_fees","with_messages","bank_references"],"additionalProperties":false,"description":"Counts of details the full view shows, as the free tracker lists them."},"reported_by":{"type":"object","properties":{"amount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"value_date":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["amount","value_date"],"additionalProperties":false,"description":"The numbered bank (as in reports) behind the summary's bank-reported amount and value date."},"pending_report_at":{"type":["string","null"],"description":"The recorded time of the newer report not yet in the free view, when it has one."},"attention":{"anyOf":[{"type":"string","enum":["action_needed","waiting"]},{"type":"null"}],"description":"A bank's current report flags an issue: action needed, or waiting at a bank. The code and bank are in the full view."},"delay":{"anyOf":[{"type":"object","properties":{"days":{"type":"integer"},"tier":{"type":"string","enum":["slow","very_slow"]}},"required":["days","tier"],"additionalProperties":false},{"type":"null"}],"description":"Whole days since any bank last reported, when that is longer than usual."},"payment_route":{"anyOf":[{"type":"object","properties":{"sender":{"anyOf":[{"type":"object","properties":{"name":{"type":["string","null"],"description":"The bank's name, when the directory knows it."},"bic":{"type":"string"}},"required":["name","bic"],"additionalProperties":false},{"type":"null"}]},"beneficiary":{"anyOf":[{"type":"object","properties":{"name":{"type":["string","null"],"description":"The bank's name, when the directory knows it."},"bic":{"type":"string"}},"required":["name","bic"],"additionalProperties":false},{"type":"null"}]},"other_banks":{"type":"boolean","description":"True when other banks took part; they are named in the full view."}},"required":["sender","beneficiary","other_banks"],"additionalProperties":false},{"type":"null"}],"description":"The sending and beneficiary banks the reports confirm."}},"required":["has_activity","last_update_at","reporting_bank_countries","reporting_banks","next_update_at","pending_update_at","checks_end_at","checks_ended","reports","total_reports","report_counts","reported_by","pending_report_at","attention","delay","payment_route"],"additionalProperties":false},{"type":"null"}],"description":"The free tracker's view, in the free view only."},"corrections_remaining":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"How many more corrections the account owner can make to the entered amount, currency and payment date now that a bank has reported. Null when no bank has reported, when the API key or connected app is not the account owner's, when the transfer is archived, or when the count could not be read."}},"required":["transfer","events","waiting_at","free","corrections_remaining"],"additionalProperties":false},"example":{"transfer":{"id":"00000000-0000-4000-8000-000000000000","uetr":"00000000-0000-4000-8000-000000000000","label":"Demo transfer","view":"full","status":"in_transit","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.","status_code":"ACSP/G000","status_explanation":"Passed to the next agent or market infrastructure, with tracking continuing.","checks_finished":false,"amount":{"value":12500,"currency":"EUR"},"payment_date":"2026-10-14","bank_reported_amount":{"value":12500,"currency":"EUR","payment_date":"2026-10-14"},"last_checked_at":"2026-10-14T09:20:00.000Z","monitoring_until":"2026-10-14T10:00:00.000Z","check_frequency_minutes":10,"archived":false,"added_at":"2026-10-14T09:00:00.000Z"},"events":[{"reported_at":"2026-10-14T09:10:00.000Z","observed_at":"2026-10-14T09:10:00.000Z","status":"in_transit","status_code":"ACSP/G000","status_explanation":"Passed to the next agent or market infrastructure, with tracking continuing.","reporting_bank":{"name":"Demo Sending Bank","country":"GB","bic":null},"bank_processing_status":null,"extended_tracking_status":null,"amount":{"value":12500,"currency":"EUR"},"currency":"EUR","fees":[],"payment_date":"2026-10-14","bank_reference":null,"chips_ssn":null,"details":[{"kind":"charge_bearer","code":"SHAR","explanation":"Shared charges (SHA)","event_number":null,"bank":null}]},{"reported_at":"2026-10-14T09:20:00.000Z","observed_at":"2026-10-14T09:20:00.000Z","status":"in_transit","status_code":"ACSP/G000","status_explanation":"Passed to the next agent or market infrastructure, with tracking continuing.","reporting_bank":{"name":"Demo Correspondent Bank","country":"US","bic":null},"bank_processing_status":null,"extended_tracking_status":null,"amount":{"value":12500,"currency":"EUR"},"currency":"EUR","fees":[],"payment_date":"2026-10-14","bank_reference":null,"chips_ssn":null,"details":[]}],"waiting_at":null,"free":null,"corrections_remaining":null}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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.","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.","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_transfer","x-mcp-annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}},"/transfers/{uetr}/archive":{"post":{"operationId":"archive_transfer","summary":"Archive a transfer","description":"Archive a transfer: its checks stop, and it and its timeline stay in the account. Archived transfers use no active transfer place. Restoring needs an active subscription and a free active transfer place, so on a free or lapsed account archiving ends the transfer's checks: it cannot be restored unless the account subscribes. Archiving an archived transfer changes nothing. Returns the transfer.","tags":["Transfers"],"security":[{"apiKey":[]}],"parameters":[{"name":"uetr","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$","description":"The transfer's UETR."}},{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Archive a transfer","content":{"application/json":{"schema":{"type":"object","properties":{"transfer":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The transfer's id in this account."},"uetr":{"type":"string","description":"The Unique End-to-end Transaction Reference."},"label":{"type":["string","null"],"description":"The account's own label for the transfer."},"view":{"type":"string","enum":["full","free"],"description":"full: every report as the paid timeline shows it. free: the free tracker view."},"status":{"type":"string","enum":["searching","not_found","check_failed","in_transit","on_hold","credited","rejected","returned","cancelled"],"description":"The transfer's current status."},"position_sentence":{"type":["string","null"],"description":"In the full view, the payment position from its status and verified route. A reporting bank alone never establishes a position."},"status_code":{"type":["string","null"],"description":"The latest ISO 20022 status code, in the full view only."},"status_explanation":{"type":["string","null"],"description":"What the status code means, in plain English."},"checks_finished":{"type":"boolean","description":"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."},"amount":{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."}},"required":["value","currency"],"additionalProperties":false,"description":"The amount entered for the search, as last corrected by the account owner. bank_reported_amount is what a bank reported."},"payment_date":{"type":"string","description":"The payment date entered for the search, as last corrected by the account owner."},"bank_reported_amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."},"payment_date":{"type":["string","null"]}},"required":["value","currency","payment_date"],"additionalProperties":false},{"type":"null"}],"description":"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."},"last_checked_at":{"type":["string","null"],"description":"When the transfer was last checked."},"monitoring_until":{"type":["string","null"],"description":"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."},"check_frequency_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"How often this transfer's own checks run, in the full view; null when it has none scheduled."},"archived":{"type":"boolean","description":"True when the transfer is archived."},"added_at":{"type":"string","description":"When the transfer was added."}},"required":["id","uetr","label","view","status","status_code","status_explanation","checks_finished","amount","payment_date","bank_reported_amount","last_checked_at","monitoring_until","check_frequency_minutes","archived","added_at"],"additionalProperties":false,"description":"The transfer."},"events":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"reported_at":{"type":["string","null"],"description":"When the bank reported this status, if the report carries that time."},"observed_at":{"type":"string","description":"When this report was first received."},"status":{"anyOf":[{"type":"string","enum":["searching","not_found","check_failed","in_transit","on_hold","credited","rejected","returned","cancelled"]},{"type":"null"}]},"status_code":{"type":["string","null"],"description":"The ISO 20022 status code the bank reported."},"status_explanation":{"type":["string","null"]},"reporting_bank":{"type":"object","properties":{"name":{"type":"string"},"country":{"type":["string","null"]},"bic":{"type":["string","null"]}},"required":["name","country","bic"],"additionalProperties":false,"description":"The bank that reported. It is not necessarily on the payment's route."},"bank_processing_status":{"type":["string","null"],"description":"The bank's own processing status, in its words."},"extended_tracking_status":{"type":["string","null"],"description":"The bank's extended tracking status, in its words."},"amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."}},"required":["value","currency"],"additionalProperties":false},{"type":"null"}],"description":"The amount this report carried, when it carried one."},"currency":{"type":["string","null"],"description":"The currency the report stated, when it stated one. A report can state a currency with no amount and no fees."},"fees":{"type":"array","items":{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":["string","null"]},"role":{"type":"string","enum":["total","component","bank"],"description":"A stated total, one part of a total, or one bank's charge."},"label":{"type":["string","null"],"description":"The bank's own name for the fee, if it gave one."},"charged_by":{"type":["string","null"],"description":"The bank the report says charged it, if any."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the fee belongs to, as the bank record numbers it; null when the fee belongs to the report as a whole."}},"required":["value","currency","role","label","charged_by","event_number"],"additionalProperties":false},"description":"Every fee this report stated, as the bank listed them."},"payment_date":{"type":["string","null"],"description":"The value date this report carried, when it carried one."},"bank_reference":{"type":["string","null"],"description":"The bank's reference for the payment."},"chips_ssn":{"type":["string","null"],"description":"The CHIPS sequence number the bank reported."},"details":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"cancellation_request"},"code":{"type":"string","description":"The bank's literal cancellation-request code, separate from the transaction status. It does not establish that money was stopped or returned."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","event_number","bank"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"amount"},"role":{"type":"string","enum":["reported","instructed","sent","settled","confirmed","received"],"description":"Which amount the bank stated."},"value":{"type":"number"},"currency":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","role","value","currency","event_number","bank"],"additionalProperties":false,"description":"An amount the report states, by its role. The event's own amount is the figure the timeline quotes for the report."},{"type":"object","properties":{"kind":{"type":"string","const":"reference"},"type":{"type":"string","enum":["payment_reference","fed_imad","network_reference","instruction_id"]},"value":{"type":"string"},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","type","value","event_number","bank"],"additionalProperties":false,"description":"A reference the report states, such as a FED IMAD or an instruction ID."},{"type":"object","properties":{"kind":{"type":"string","const":"time"},"stage":{"type":"string","enum":["initiated","message_received","acknowledgement_received","arrived","departed","transaction_status","updated","confirmed","completed"],"description":"The stage the time belongs to: the payment started, a message or the sender's acknowledgement was received, the payment arrived at or departed from a step of the route, the transaction status was set, the bank last updated its status, or the payment was confirmed or completed."},"at":{"type":"string"},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","stage","at","event_number","bank"],"additionalProperties":false,"description":"A time the bank states for one stage of the payment."},{"type":"object","properties":{"kind":{"type":"string","const":"duration"},"type":{"type":"string","enum":["bank_stated","elapsed","time_at_bank"],"description":"bank_stated: how long the payment took, as the bank states it. elapsed: the time from the payment's start to the report's latest update. time_at_bank: how long the payment stayed at one bank on the route, between its arrival and its departure there."},"value":{"type":"string","description":"The duration, in words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","type","value","event_number","bank"],"additionalProperties":false,"description":"How long the payment took, or stayed at one bank."},{"type":"object","properties":{"kind":{"type":"string","const":"exchange_rate"},"rate":{"type":"number"},"from_currency":{"type":["string","null"]},"to_currency":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","rate","from_currency","to_currency","event_number","bank"],"additionalProperties":false,"description":"An exchange rate the report states."},{"type":"object","properties":{"kind":{"type":"string","const":"chain_bank"},"role":{"type":"string","enum":["sending","crediting","current","route"],"description":"sending: the sending bank. crediting: the bank crediting the payee. current: the bank the report says holds the payment now. route: a bank the report lists in the payment's chain."},"name":{"type":["string","null"]},"bic":{"type":["string","null"]},"location":{"type":["string","null"]},"country":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."}},"required":["kind","role","name","bic","location","country","event_number"],"additionalProperties":false,"description":"A bank this report names in the payment's chain, as the report states it."},{"type":"object","properties":{"kind":{"type":"string","const":"charge_bearer"},"code":{"type":"string","description":"The charge bearer code, as the bank stated it."},"explanation":{"type":["string","null"],"description":"Who pays the charges, for the codes SHA, OUR and BEN and their equivalents."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","explanation","event_number","bank"],"additionalProperties":false,"description":"Who the report says bears the charges."},{"type":"object","properties":{"kind":{"type":"string","const":"fee_note"},"code":{"type":["string","null"]},"description":{"type":["string","null"],"description":"The bank's own words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","description","event_number","bank"],"additionalProperties":false,"description":"A note the bank gives about fees."},{"type":"object","properties":{"kind":{"type":"string","const":"reject_return_reason"},"code":{"type":"string"},"description":{"type":["string","null"],"description":"The bank's own words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","description","event_number","bank"],"additionalProperties":false,"description":"The reason a bank gives for rejecting or returning the payment."},{"type":"object","properties":{"kind":{"type":"string","const":"message"},"event_type":{"type":["string","null"],"description":"The tracking event type, such as CTPT or CTSU."},"message_name":{"type":["string","null"],"description":"The message name, such as pacs.008.001.08."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","event_type","message_name","event_number","bank"],"additionalProperties":false,"description":"A payment message the report lists."},{"type":"object","properties":{"kind":{"type":"string","const":"event_status"},"status":{"type":"string"},"reason":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","status","reason","event_number","bank"],"additionalProperties":false,"description":"The status the report gives one event, with its reason, as the bank stated them."}]},"description":"Every further detail the bank record shows for this report, in the record's order, with the bank's times by stage and then durations last. Kinds: amounts by role, references, banks the report names in the payment's chain, exchange rates, the charge bearer, fee notes, reject or return reasons, messages, event statuses and literal cancellation-request codes. A cancellation request is separate from the transaction outcome. Fees are in fees. A detail that restates the bank reference, the bank's status time or a stored amount is left out. New kinds and values can appear within an API version; skip any you do not recognise."}},"required":["reported_at","observed_at","status","status_code","status_explanation","reporting_bank","bank_processing_status","extended_tracking_status","amount","currency","fees","payment_date","bank_reference","chips_ssn","details"],"additionalProperties":false}},{"type":"null"}],"description":"Every bank report, in the full view only, in payment lifecycle order as the timeline shows them: the last is the latest stage, which may have been received before an earlier stage's report (see observed_at)."},"waiting_at":{"type":["string","null"],"description":"In the full view, the bank the payment is waiting at, when the reports name one; otherwise null."},"free":{"anyOf":[{"type":"object","properties":{"has_activity":{"type":"boolean","description":"True once any bank has reported the transfer."},"last_update_at":{"type":["string","null"],"description":"When the free view last changed."},"reporting_bank_countries":{"type":"array","items":{"type":"string"},"description":"Home countries of the banks that reported. These are not the payment's route."},"reporting_banks":{"type":"integer","description":"How many banks have reported."},"next_update_at":{"type":["string","null"],"description":"When the free view next refreshes."},"pending_update_at":{"type":["string","null"],"description":"When a newer report becomes visible in the free view."},"checks_end_at":{"type":["string","null"],"description":"When free automatic checks end."},"checks_ended":{"type":"boolean"},"reports":{"type":"array","items":{"type":"object","properties":{"bank_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The reporting bank, numbered within this transfer; its name is in the full view."},"reported_at":{"type":["string","null"],"description":"The report's time."},"time_source":{"anyOf":[{"type":"string","enum":["bank_reported","first_received"]},{"type":"null"}],"description":"Whether the time is the one the bank gave, or when the report was first received."},"amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":["string","null"]}},"required":["value","currency"],"additionalProperties":false},{"type":"null"}],"description":"The amount this report carried, when it carried one; the currency is null when the report gave none."},"payment_date":{"type":["string","null"],"description":"The value date this report carried, when it carried one."},"details_in_full_view":{"type":"object","properties":{"bank_name":{"type":"boolean"},"bic":{"type":"boolean"},"status":{"type":"boolean"},"message":{"type":"boolean"},"reference":{"type":"boolean"},"fees":{"type":"boolean"}},"required":["bank_name","bic","status","message","reference","fees"],"additionalProperties":false,"description":"Which details this report holds that the full view shows. Only their presence is in the free view."}},"required":["bank_number","reported_at","time_source","amount","payment_date","details_in_full_view"],"additionalProperties":false},"description":"The reports the free view shows, in its order: the report behind the current status first, then newest first by reported_at, with reports that have no time last. At most 50."},"total_reports":{"type":"integer","description":"How many reports the free view counts."},"report_counts":{"type":"object","properties":{"with_bank_time":{"type":"integer"},"with_fees":{"type":"integer"},"with_messages":{"type":"integer"},"bank_references":{"type":"integer","description":"Distinct bank references."}},"required":["with_bank_time","with_fees","with_messages","bank_references"],"additionalProperties":false,"description":"Counts of details the full view shows, as the free tracker lists them."},"reported_by":{"type":"object","properties":{"amount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"value_date":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["amount","value_date"],"additionalProperties":false,"description":"The numbered bank (as in reports) behind the summary's bank-reported amount and value date."},"pending_report_at":{"type":["string","null"],"description":"The recorded time of the newer report not yet in the free view, when it has one."},"attention":{"anyOf":[{"type":"string","enum":["action_needed","waiting"]},{"type":"null"}],"description":"A bank's current report flags an issue: action needed, or waiting at a bank. The code and bank are in the full view."},"delay":{"anyOf":[{"type":"object","properties":{"days":{"type":"integer"},"tier":{"type":"string","enum":["slow","very_slow"]}},"required":["days","tier"],"additionalProperties":false},{"type":"null"}],"description":"Whole days since any bank last reported, when that is longer than usual."},"payment_route":{"anyOf":[{"type":"object","properties":{"sender":{"anyOf":[{"type":"object","properties":{"name":{"type":["string","null"],"description":"The bank's name, when the directory knows it."},"bic":{"type":"string"}},"required":["name","bic"],"additionalProperties":false},{"type":"null"}]},"beneficiary":{"anyOf":[{"type":"object","properties":{"name":{"type":["string","null"],"description":"The bank's name, when the directory knows it."},"bic":{"type":"string"}},"required":["name","bic"],"additionalProperties":false},{"type":"null"}]},"other_banks":{"type":"boolean","description":"True when other banks took part; they are named in the full view."}},"required":["sender","beneficiary","other_banks"],"additionalProperties":false},{"type":"null"}],"description":"The sending and beneficiary banks the reports confirm."}},"required":["has_activity","last_update_at","reporting_bank_countries","reporting_banks","next_update_at","pending_update_at","checks_end_at","checks_ended","reports","total_reports","report_counts","reported_by","pending_report_at","attention","delay","payment_route"],"additionalProperties":false},{"type":"null"}],"description":"The free tracker's view, in the free view only."},"corrections_remaining":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"How many more corrections the account owner can make to the entered amount, currency and payment date now that a bank has reported. Null when no bank has reported, when the API key or connected app is not the account owner's, when the transfer is archived, or when the count could not be read."}},"required":["transfer","events","waiting_at","free","corrections_remaining"],"additionalProperties":false},"example":{"transfer":{"id":"8d2f6b1e-4c3a-4f7d-9e8b-5a1c2d3e4f60","uetr":"eb6305c9-1f7f-49de-aed0-16487c27b42d","label":null,"view":"full","status":"in_transit","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.","status_code":"ACSP/G000","status_explanation":"Passed to the next agent or market infrastructure, with tracking continuing.","checks_finished":true,"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-10-14T09:25:00.000Z","check_frequency_minutes":null,"archived":true,"added_at":"2026-10-14T09:00:00.000Z"},"events":[{"reported_at":"2026-10-14T09:10:00.000Z","observed_at":"2026-10-14T09:10:00.000Z","status":"in_transit","status_code":"ACSP/G000","status_explanation":"Passed to the next agent or market infrastructure, with tracking continuing.","reporting_bank":{"name":"Demo Sending Bank","country":"GB","bic":null},"bank_processing_status":null,"extended_tracking_status":null,"amount":{"value":1500.5,"currency":"USD"},"currency":"USD","fees":[],"payment_date":"2026-10-01","bank_reference":null,"chips_ssn":null,"details":[{"kind":"charge_bearer","code":"SHAR","explanation":"Shared charges (SHA)","event_number":null,"bank":null}]},{"reported_at":"2026-10-14T09:20:00.000Z","observed_at":"2026-10-14T09:20:00.000Z","status":"in_transit","status_code":"ACSP/G000","status_explanation":"Passed to the next agent or market infrastructure, with tracking continuing.","reporting_bank":{"name":"Demo Correspondent Bank","country":"US","bic":null},"bank_processing_status":null,"extended_tracking_status":null,"amount":{"value":1500.5,"currency":"USD"},"currency":"USD","fees":[],"payment_date":"2026-10-01","bank_reference":null,"chips_ssn":null,"details":[]}],"waiting_at":null,"free":null,"corrections_remaining":null}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `read_only_credential`: Read-only key or connection.","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."}},"read_only_credential":{"summary":"Read-only key or connection","value":{"type":"https://uetr.ai/docs/api/errors#read_only_credential","title":"Read-only key or connection","status":403,"code":"read_only_credential","detail":"Read-only key or connection."}}}}}},"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."}}}}}},"409":{"description":"`demo_transfer`: The demo transfer cannot be changed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"demo_transfer":{"summary":"The demo transfer cannot be changed","value":{"type":"https://uetr.ai/docs/api/errors#demo_transfer","title":"The demo transfer cannot be changed","status":409,"code":"demo_transfer","detail":"The demo transfer cannot be changed."}}}}}},"413":{"description":"`request_too_large`: Request too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"request_too_large":{"summary":"Request too large","value":{"type":"https://uetr.ai/docs/api/errors#request_too_large","title":"Request too large","status":413,"code":"request_too_large","detail":"Request too large."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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. `machine_writes_disabled`: Changes are switched off.","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."}},"machine_writes_disabled":{"summary":"Changes are switched off","value":{"type":"https://uetr.ai/docs/api/errors#machine_writes_disabled","title":"Changes are switched off","status":503,"code":"machine_writes_disabled","detail":"Changes are switched off."}}}}}}},"x-mcp-tool":"archive_transfer","x-mcp-annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}}},"/transfers/{uetr}/check-frequency":{"patch":{"operationId":"set_check_frequency","summary":"Set a transfer's check frequency","description":"Set how often this transfer's own checks run, in minutes: one of 5, 15, 30, 60, 180, 360, 720, 1440. Only a paid transfer whose monitoring runs and whose checks have not ended has a frequency to set; a free, finished or lapsed transfer keeps its schedule. Only the account owner's API keys and connected apps can change it. Returns the transfer.","tags":["Transfers"],"security":[{"apiKey":[]}],"parameters":[{"name":"uetr","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$","description":"The transfer's UETR."}},{"$ref":"#/components/parameters/Version"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"minutes":{"type":"integer","description":"Minutes between checks: one of 5, 15, 30, 60, 180, 360, 720, 1440."}},"required":["minutes"]},"examples":{"example_1":{"summary":"Check every 15 minutes","value":{"minutes":15}}}}}},"responses":{"200":{"description":"Set a transfer's check frequency","content":{"application/json":{"schema":{"type":"object","properties":{"transfer":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The transfer's id in this account."},"uetr":{"type":"string","description":"The Unique End-to-end Transaction Reference."},"label":{"type":["string","null"],"description":"The account's own label for the transfer."},"view":{"type":"string","enum":["full","free"],"description":"full: every report as the paid timeline shows it. free: the free tracker view."},"status":{"type":"string","enum":["searching","not_found","check_failed","in_transit","on_hold","credited","rejected","returned","cancelled"],"description":"The transfer's current status."},"position_sentence":{"type":["string","null"],"description":"In the full view, the payment position from its status and verified route. A reporting bank alone never establishes a position."},"status_code":{"type":["string","null"],"description":"The latest ISO 20022 status code, in the full view only."},"status_explanation":{"type":["string","null"],"description":"What the status code means, in plain English."},"checks_finished":{"type":"boolean","description":"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."},"amount":{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."}},"required":["value","currency"],"additionalProperties":false,"description":"The amount entered for the search, as last corrected by the account owner. bank_reported_amount is what a bank reported."},"payment_date":{"type":"string","description":"The payment date entered for the search, as last corrected by the account owner."},"bank_reported_amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."},"payment_date":{"type":["string","null"]}},"required":["value","currency","payment_date"],"additionalProperties":false},{"type":"null"}],"description":"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."},"last_checked_at":{"type":["string","null"],"description":"When the transfer was last checked."},"monitoring_until":{"type":["string","null"],"description":"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."},"check_frequency_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"How often this transfer's own checks run, in the full view; null when it has none scheduled."},"archived":{"type":"boolean","description":"True when the transfer is archived."},"added_at":{"type":"string","description":"When the transfer was added."}},"required":["id","uetr","label","view","status","status_code","status_explanation","checks_finished","amount","payment_date","bank_reported_amount","last_checked_at","monitoring_until","check_frequency_minutes","archived","added_at"],"additionalProperties":false,"description":"The transfer."},"events":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"reported_at":{"type":["string","null"],"description":"When the bank reported this status, if the report carries that time."},"observed_at":{"type":"string","description":"When this report was first received."},"status":{"anyOf":[{"type":"string","enum":["searching","not_found","check_failed","in_transit","on_hold","credited","rejected","returned","cancelled"]},{"type":"null"}]},"status_code":{"type":["string","null"],"description":"The ISO 20022 status code the bank reported."},"status_explanation":{"type":["string","null"]},"reporting_bank":{"type":"object","properties":{"name":{"type":"string"},"country":{"type":["string","null"]},"bic":{"type":["string","null"]}},"required":["name","country","bic"],"additionalProperties":false,"description":"The bank that reported. It is not necessarily on the payment's route."},"bank_processing_status":{"type":["string","null"],"description":"The bank's own processing status, in its words."},"extended_tracking_status":{"type":["string","null"],"description":"The bank's extended tracking status, in its words."},"amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."}},"required":["value","currency"],"additionalProperties":false},{"type":"null"}],"description":"The amount this report carried, when it carried one."},"currency":{"type":["string","null"],"description":"The currency the report stated, when it stated one. A report can state a currency with no amount and no fees."},"fees":{"type":"array","items":{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":["string","null"]},"role":{"type":"string","enum":["total","component","bank"],"description":"A stated total, one part of a total, or one bank's charge."},"label":{"type":["string","null"],"description":"The bank's own name for the fee, if it gave one."},"charged_by":{"type":["string","null"],"description":"The bank the report says charged it, if any."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the fee belongs to, as the bank record numbers it; null when the fee belongs to the report as a whole."}},"required":["value","currency","role","label","charged_by","event_number"],"additionalProperties":false},"description":"Every fee this report stated, as the bank listed them."},"payment_date":{"type":["string","null"],"description":"The value date this report carried, when it carried one."},"bank_reference":{"type":["string","null"],"description":"The bank's reference for the payment."},"chips_ssn":{"type":["string","null"],"description":"The CHIPS sequence number the bank reported."},"details":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"cancellation_request"},"code":{"type":"string","description":"The bank's literal cancellation-request code, separate from the transaction status. It does not establish that money was stopped or returned."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","event_number","bank"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"amount"},"role":{"type":"string","enum":["reported","instructed","sent","settled","confirmed","received"],"description":"Which amount the bank stated."},"value":{"type":"number"},"currency":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","role","value","currency","event_number","bank"],"additionalProperties":false,"description":"An amount the report states, by its role. The event's own amount is the figure the timeline quotes for the report."},{"type":"object","properties":{"kind":{"type":"string","const":"reference"},"type":{"type":"string","enum":["payment_reference","fed_imad","network_reference","instruction_id"]},"value":{"type":"string"},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","type","value","event_number","bank"],"additionalProperties":false,"description":"A reference the report states, such as a FED IMAD or an instruction ID."},{"type":"object","properties":{"kind":{"type":"string","const":"time"},"stage":{"type":"string","enum":["initiated","message_received","acknowledgement_received","arrived","departed","transaction_status","updated","confirmed","completed"],"description":"The stage the time belongs to: the payment started, a message or the sender's acknowledgement was received, the payment arrived at or departed from a step of the route, the transaction status was set, the bank last updated its status, or the payment was confirmed or completed."},"at":{"type":"string"},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","stage","at","event_number","bank"],"additionalProperties":false,"description":"A time the bank states for one stage of the payment."},{"type":"object","properties":{"kind":{"type":"string","const":"duration"},"type":{"type":"string","enum":["bank_stated","elapsed","time_at_bank"],"description":"bank_stated: how long the payment took, as the bank states it. elapsed: the time from the payment's start to the report's latest update. time_at_bank: how long the payment stayed at one bank on the route, between its arrival and its departure there."},"value":{"type":"string","description":"The duration, in words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","type","value","event_number","bank"],"additionalProperties":false,"description":"How long the payment took, or stayed at one bank."},{"type":"object","properties":{"kind":{"type":"string","const":"exchange_rate"},"rate":{"type":"number"},"from_currency":{"type":["string","null"]},"to_currency":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","rate","from_currency","to_currency","event_number","bank"],"additionalProperties":false,"description":"An exchange rate the report states."},{"type":"object","properties":{"kind":{"type":"string","const":"chain_bank"},"role":{"type":"string","enum":["sending","crediting","current","route"],"description":"sending: the sending bank. crediting: the bank crediting the payee. current: the bank the report says holds the payment now. route: a bank the report lists in the payment's chain."},"name":{"type":["string","null"]},"bic":{"type":["string","null"]},"location":{"type":["string","null"]},"country":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."}},"required":["kind","role","name","bic","location","country","event_number"],"additionalProperties":false,"description":"A bank this report names in the payment's chain, as the report states it."},{"type":"object","properties":{"kind":{"type":"string","const":"charge_bearer"},"code":{"type":"string","description":"The charge bearer code, as the bank stated it."},"explanation":{"type":["string","null"],"description":"Who pays the charges, for the codes SHA, OUR and BEN and their equivalents."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","explanation","event_number","bank"],"additionalProperties":false,"description":"Who the report says bears the charges."},{"type":"object","properties":{"kind":{"type":"string","const":"fee_note"},"code":{"type":["string","null"]},"description":{"type":["string","null"],"description":"The bank's own words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","description","event_number","bank"],"additionalProperties":false,"description":"A note the bank gives about fees."},{"type":"object","properties":{"kind":{"type":"string","const":"reject_return_reason"},"code":{"type":"string"},"description":{"type":["string","null"],"description":"The bank's own words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","description","event_number","bank"],"additionalProperties":false,"description":"The reason a bank gives for rejecting or returning the payment."},{"type":"object","properties":{"kind":{"type":"string","const":"message"},"event_type":{"type":["string","null"],"description":"The tracking event type, such as CTPT or CTSU."},"message_name":{"type":["string","null"],"description":"The message name, such as pacs.008.001.08."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","event_type","message_name","event_number","bank"],"additionalProperties":false,"description":"A payment message the report lists."},{"type":"object","properties":{"kind":{"type":"string","const":"event_status"},"status":{"type":"string"},"reason":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","status","reason","event_number","bank"],"additionalProperties":false,"description":"The status the report gives one event, with its reason, as the bank stated them."}]},"description":"Every further detail the bank record shows for this report, in the record's order, with the bank's times by stage and then durations last. Kinds: amounts by role, references, banks the report names in the payment's chain, exchange rates, the charge bearer, fee notes, reject or return reasons, messages, event statuses and literal cancellation-request codes. A cancellation request is separate from the transaction outcome. Fees are in fees. A detail that restates the bank reference, the bank's status time or a stored amount is left out. New kinds and values can appear within an API version; skip any you do not recognise."}},"required":["reported_at","observed_at","status","status_code","status_explanation","reporting_bank","bank_processing_status","extended_tracking_status","amount","currency","fees","payment_date","bank_reference","chips_ssn","details"],"additionalProperties":false}},{"type":"null"}],"description":"Every bank report, in the full view only, in payment lifecycle order as the timeline shows them: the last is the latest stage, which may have been received before an earlier stage's report (see observed_at)."},"waiting_at":{"type":["string","null"],"description":"In the full view, the bank the payment is waiting at, when the reports name one; otherwise null."},"free":{"anyOf":[{"type":"object","properties":{"has_activity":{"type":"boolean","description":"True once any bank has reported the transfer."},"last_update_at":{"type":["string","null"],"description":"When the free view last changed."},"reporting_bank_countries":{"type":"array","items":{"type":"string"},"description":"Home countries of the banks that reported. These are not the payment's route."},"reporting_banks":{"type":"integer","description":"How many banks have reported."},"next_update_at":{"type":["string","null"],"description":"When the free view next refreshes."},"pending_update_at":{"type":["string","null"],"description":"When a newer report becomes visible in the free view."},"checks_end_at":{"type":["string","null"],"description":"When free automatic checks end."},"checks_ended":{"type":"boolean"},"reports":{"type":"array","items":{"type":"object","properties":{"bank_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The reporting bank, numbered within this transfer; its name is in the full view."},"reported_at":{"type":["string","null"],"description":"The report's time."},"time_source":{"anyOf":[{"type":"string","enum":["bank_reported","first_received"]},{"type":"null"}],"description":"Whether the time is the one the bank gave, or when the report was first received."},"amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":["string","null"]}},"required":["value","currency"],"additionalProperties":false},{"type":"null"}],"description":"The amount this report carried, when it carried one; the currency is null when the report gave none."},"payment_date":{"type":["string","null"],"description":"The value date this report carried, when it carried one."},"details_in_full_view":{"type":"object","properties":{"bank_name":{"type":"boolean"},"bic":{"type":"boolean"},"status":{"type":"boolean"},"message":{"type":"boolean"},"reference":{"type":"boolean"},"fees":{"type":"boolean"}},"required":["bank_name","bic","status","message","reference","fees"],"additionalProperties":false,"description":"Which details this report holds that the full view shows. Only their presence is in the free view."}},"required":["bank_number","reported_at","time_source","amount","payment_date","details_in_full_view"],"additionalProperties":false},"description":"The reports the free view shows, in its order: the report behind the current status first, then newest first by reported_at, with reports that have no time last. At most 50."},"total_reports":{"type":"integer","description":"How many reports the free view counts."},"report_counts":{"type":"object","properties":{"with_bank_time":{"type":"integer"},"with_fees":{"type":"integer"},"with_messages":{"type":"integer"},"bank_references":{"type":"integer","description":"Distinct bank references."}},"required":["with_bank_time","with_fees","with_messages","bank_references"],"additionalProperties":false,"description":"Counts of details the full view shows, as the free tracker lists them."},"reported_by":{"type":"object","properties":{"amount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"value_date":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["amount","value_date"],"additionalProperties":false,"description":"The numbered bank (as in reports) behind the summary's bank-reported amount and value date."},"pending_report_at":{"type":["string","null"],"description":"The recorded time of the newer report not yet in the free view, when it has one."},"attention":{"anyOf":[{"type":"string","enum":["action_needed","waiting"]},{"type":"null"}],"description":"A bank's current report flags an issue: action needed, or waiting at a bank. The code and bank are in the full view."},"delay":{"anyOf":[{"type":"object","properties":{"days":{"type":"integer"},"tier":{"type":"string","enum":["slow","very_slow"]}},"required":["days","tier"],"additionalProperties":false},{"type":"null"}],"description":"Whole days since any bank last reported, when that is longer than usual."},"payment_route":{"anyOf":[{"type":"object","properties":{"sender":{"anyOf":[{"type":"object","properties":{"name":{"type":["string","null"],"description":"The bank's name, when the directory knows it."},"bic":{"type":"string"}},"required":["name","bic"],"additionalProperties":false},{"type":"null"}]},"beneficiary":{"anyOf":[{"type":"object","properties":{"name":{"type":["string","null"],"description":"The bank's name, when the directory knows it."},"bic":{"type":"string"}},"required":["name","bic"],"additionalProperties":false},{"type":"null"}]},"other_banks":{"type":"boolean","description":"True when other banks took part; they are named in the full view."}},"required":["sender","beneficiary","other_banks"],"additionalProperties":false},{"type":"null"}],"description":"The sending and beneficiary banks the reports confirm."}},"required":["has_activity","last_update_at","reporting_bank_countries","reporting_banks","next_update_at","pending_update_at","checks_end_at","checks_ended","reports","total_reports","report_counts","reported_by","pending_report_at","attention","delay","payment_route"],"additionalProperties":false},{"type":"null"}],"description":"The free tracker's view, in the free view only."},"corrections_remaining":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"How many more corrections the account owner can make to the entered amount, currency and payment date now that a bank has reported. Null when no bank has reported, when the API key or connected app is not the account owner's, when the transfer is archived, or when the count could not be read."}},"required":["transfer","events","waiting_at","free","corrections_remaining"],"additionalProperties":false},"example":{"transfer":{"id":"8d2f6b1e-4c3a-4f7d-9e8b-5a1c2d3e4f60","uetr":"eb6305c9-1f7f-49de-aed0-16487c27b42d","label":null,"view":"full","status":"in_transit","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.","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":15,"archived":false,"added_at":"2026-10-14T09:00:00.000Z"},"events":[{"reported_at":"2026-10-14T09:10:00.000Z","observed_at":"2026-10-14T09:10:00.000Z","status":"in_transit","status_code":"ACSP/G000","status_explanation":"Passed to the next agent or market infrastructure, with tracking continuing.","reporting_bank":{"name":"Demo Sending Bank","country":"GB","bic":null},"bank_processing_status":null,"extended_tracking_status":null,"amount":{"value":1500.5,"currency":"USD"},"currency":"USD","fees":[],"payment_date":"2026-10-01","bank_reference":null,"chips_ssn":null,"details":[{"kind":"charge_bearer","code":"SHAR","explanation":"Shared charges (SHA)","event_number":null,"bank":null}]},{"reported_at":"2026-10-14T09:20:00.000Z","observed_at":"2026-10-14T09:20:00.000Z","status":"in_transit","status_code":"ACSP/G000","status_explanation":"Passed to the next agent or market infrastructure, with tracking continuing.","reporting_bank":{"name":"Demo Correspondent Bank","country":"US","bic":null},"bank_processing_status":null,"extended_tracking_status":null,"amount":{"value":1500.5,"currency":"USD"},"currency":"USD","fees":[],"payment_date":"2026-10-01","bank_reference":null,"chips_ssn":null,"details":[]}],"waiting_at":null,"free":null,"corrections_remaining":3}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `read_only_credential`: Read-only key or connection. `not_permitted`: Not permitted.","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."}},"read_only_credential":{"summary":"Read-only key or connection","value":{"type":"https://uetr.ai/docs/api/errors#read_only_credential","title":"Read-only key or connection","status":403,"code":"read_only_credential","detail":"Read-only key or connection."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"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."}}}}}},"409":{"description":"`check_frequency_not_available`: Check frequency cannot be changed. `checks_ended`: Automatic checks have ended. `monitoring_ended`: Monitoring has ended. `transfer_archived`: Transfer is archived. `demo_transfer`: The demo transfer cannot be changed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"check_frequency_not_available":{"summary":"Check frequency cannot be changed","value":{"type":"https://uetr.ai/docs/api/errors#check_frequency_not_available","title":"Check frequency cannot be changed","status":409,"code":"check_frequency_not_available","detail":"Check frequency cannot be changed."}},"checks_ended":{"summary":"Automatic checks have ended","value":{"type":"https://uetr.ai/docs/api/errors#checks_ended","title":"Automatic checks have ended","status":409,"code":"checks_ended","detail":"Automatic checks have ended."}},"monitoring_ended":{"summary":"Monitoring has ended","value":{"type":"https://uetr.ai/docs/api/errors#monitoring_ended","title":"Monitoring has ended","status":409,"code":"monitoring_ended","detail":"Monitoring has ended."}},"transfer_archived":{"summary":"Transfer is archived","value":{"type":"https://uetr.ai/docs/api/errors#transfer_archived","title":"Transfer is archived","status":409,"code":"transfer_archived","detail":"Transfer is archived."}},"demo_transfer":{"summary":"The demo transfer cannot be changed","value":{"type":"https://uetr.ai/docs/api/errors#demo_transfer","title":"The demo transfer cannot be changed","status":409,"code":"demo_transfer","detail":"The demo transfer cannot be changed."}}}}}},"413":{"description":"`request_too_large`: Request too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"request_too_large":{"summary":"Request too large","value":{"type":"https://uetr.ai/docs/api/errors#request_too_large","title":"Request too large","status":413,"code":"request_too_large","detail":"Request too large."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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. `machine_writes_disabled`: Changes are switched off.","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."}},"machine_writes_disabled":{"summary":"Changes are switched off","value":{"type":"https://uetr.ai/docs/api/errors#machine_writes_disabled","title":"Changes are switched off","status":503,"code":"machine_writes_disabled","detail":"Changes are switched off."}}}}}}},"x-mcp-tool":"set_check_frequency","x-mcp-annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"x-owner-only":true}},"/transfers/{uetr}/details":{"patch":{"operationId":"update_transfer","summary":"Correct a transfer's details","description":"Corrects the amount, currency or payment date entered for a transfer. Bank-reported figures never change. After a bank has reported, the owner can make up to 3 corrections. The owner's corrections on the website count toward the same limit. Give all three details as they should stand; a correction replaces them together, as the website's form does. After a bank has reported, sending the details every copy of this transfer in the account already holds changes nothing and uses no correction; if an older copy holds other details, the save aligns it and counts as one correction. Before a report, every save checks the transfer again. The UETR cannot be changed: it identifies the payment. A correction is refused once the transfer is archived, or when its checks ended before any bank reported on it. Only the account owner's API keys and connected apps can correct details. Returns the transfer, the outcome and the corrections left.","tags":["Transfers"],"security":[{"apiKey":[]}],"parameters":[{"name":"uetr","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$","description":"The transfer's UETR."}},{"$ref":"#/components/parameters/Version"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"amount":{"type":"object","properties":{"value":{"type":"number","exclusiveMinimum":0},"currency":{"type":"string","pattern":"^[A-Za-z]{3}$"}},"required":["value","currency"],"additionalProperties":false,"description":"The amount sent and its currency. The currency is a three-letter code in any letter case, one of USD, EUR, GBP, JPY, CHF, CAD, AUD, AED, BDT, BRL, CNY, HKD, IDR, ILS, INR, JOD, MAD, MXN, MYR, NZD, PHP, PKR, PLN, QAR, SAR, SGD, SZL, THB, TRY, TWD, TZS, XAF, XOF, ZAR. The value can have at most 2 decimal places, or none for JPY, XAF and XOF."},"payment_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"The date the payment was sent. A changed date can be no later than the next calendar day in UTC."}},"required":["amount","payment_date"]},"examples":{"example_1":{"summary":"Correct the amount","value":{"amount":{"value":1505.5,"currency":"USD"},"payment_date":"2026-10-01"}}}}}},"responses":{"200":{"description":"Correct a transfer's details","content":{"application/json":{"schema":{"type":"object","properties":{"transfer":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The transfer's id in this account."},"uetr":{"type":"string","description":"The Unique End-to-end Transaction Reference."},"label":{"type":["string","null"],"description":"The account's own label for the transfer."},"view":{"type":"string","enum":["full","free"],"description":"full: every report as the paid timeline shows it. free: the free tracker view."},"status":{"type":"string","enum":["searching","not_found","check_failed","in_transit","on_hold","credited","rejected","returned","cancelled"],"description":"The transfer's current status."},"position_sentence":{"type":["string","null"],"description":"In the full view, the payment position from its status and verified route. A reporting bank alone never establishes a position."},"status_code":{"type":["string","null"],"description":"The latest ISO 20022 status code, in the full view only."},"status_explanation":{"type":["string","null"],"description":"What the status code means, in plain English."},"checks_finished":{"type":"boolean","description":"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."},"amount":{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."}},"required":["value","currency"],"additionalProperties":false,"description":"The amount entered for the search, as last corrected by the account owner. bank_reported_amount is what a bank reported."},"payment_date":{"type":"string","description":"The payment date entered for the search, as last corrected by the account owner."},"bank_reported_amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."},"payment_date":{"type":["string","null"]}},"required":["value","currency","payment_date"],"additionalProperties":false},{"type":"null"}],"description":"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."},"last_checked_at":{"type":["string","null"],"description":"When the transfer was last checked."},"monitoring_until":{"type":["string","null"],"description":"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."},"check_frequency_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"How often this transfer's own checks run, in the full view; null when it has none scheduled."},"archived":{"type":"boolean","description":"True when the transfer is archived."},"added_at":{"type":"string","description":"When the transfer was added."}},"required":["id","uetr","label","view","status","status_code","status_explanation","checks_finished","amount","payment_date","bank_reported_amount","last_checked_at","monitoring_until","check_frequency_minutes","archived","added_at"],"additionalProperties":false,"description":"The transfer."},"events":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"reported_at":{"type":["string","null"],"description":"When the bank reported this status, if the report carries that time."},"observed_at":{"type":"string","description":"When this report was first received."},"status":{"anyOf":[{"type":"string","enum":["searching","not_found","check_failed","in_transit","on_hold","credited","rejected","returned","cancelled"]},{"type":"null"}]},"status_code":{"type":["string","null"],"description":"The ISO 20022 status code the bank reported."},"status_explanation":{"type":["string","null"]},"reporting_bank":{"type":"object","properties":{"name":{"type":"string"},"country":{"type":["string","null"]},"bic":{"type":["string","null"]}},"required":["name","country","bic"],"additionalProperties":false,"description":"The bank that reported. It is not necessarily on the payment's route."},"bank_processing_status":{"type":["string","null"],"description":"The bank's own processing status, in its words."},"extended_tracking_status":{"type":["string","null"],"description":"The bank's extended tracking status, in its words."},"amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."}},"required":["value","currency"],"additionalProperties":false},{"type":"null"}],"description":"The amount this report carried, when it carried one."},"currency":{"type":["string","null"],"description":"The currency the report stated, when it stated one. A report can state a currency with no amount and no fees."},"fees":{"type":"array","items":{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":["string","null"]},"role":{"type":"string","enum":["total","component","bank"],"description":"A stated total, one part of a total, or one bank's charge."},"label":{"type":["string","null"],"description":"The bank's own name for the fee, if it gave one."},"charged_by":{"type":["string","null"],"description":"The bank the report says charged it, if any."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the fee belongs to, as the bank record numbers it; null when the fee belongs to the report as a whole."}},"required":["value","currency","role","label","charged_by","event_number"],"additionalProperties":false},"description":"Every fee this report stated, as the bank listed them."},"payment_date":{"type":["string","null"],"description":"The value date this report carried, when it carried one."},"bank_reference":{"type":["string","null"],"description":"The bank's reference for the payment."},"chips_ssn":{"type":["string","null"],"description":"The CHIPS sequence number the bank reported."},"details":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"cancellation_request"},"code":{"type":"string","description":"The bank's literal cancellation-request code, separate from the transaction status. It does not establish that money was stopped or returned."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","event_number","bank"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"amount"},"role":{"type":"string","enum":["reported","instructed","sent","settled","confirmed","received"],"description":"Which amount the bank stated."},"value":{"type":"number"},"currency":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","role","value","currency","event_number","bank"],"additionalProperties":false,"description":"An amount the report states, by its role. The event's own amount is the figure the timeline quotes for the report."},{"type":"object","properties":{"kind":{"type":"string","const":"reference"},"type":{"type":"string","enum":["payment_reference","fed_imad","network_reference","instruction_id"]},"value":{"type":"string"},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","type","value","event_number","bank"],"additionalProperties":false,"description":"A reference the report states, such as a FED IMAD or an instruction ID."},{"type":"object","properties":{"kind":{"type":"string","const":"time"},"stage":{"type":"string","enum":["initiated","message_received","acknowledgement_received","arrived","departed","transaction_status","updated","confirmed","completed"],"description":"The stage the time belongs to: the payment started, a message or the sender's acknowledgement was received, the payment arrived at or departed from a step of the route, the transaction status was set, the bank last updated its status, or the payment was confirmed or completed."},"at":{"type":"string"},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","stage","at","event_number","bank"],"additionalProperties":false,"description":"A time the bank states for one stage of the payment."},{"type":"object","properties":{"kind":{"type":"string","const":"duration"},"type":{"type":"string","enum":["bank_stated","elapsed","time_at_bank"],"description":"bank_stated: how long the payment took, as the bank states it. elapsed: the time from the payment's start to the report's latest update. time_at_bank: how long the payment stayed at one bank on the route, between its arrival and its departure there."},"value":{"type":"string","description":"The duration, in words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","type","value","event_number","bank"],"additionalProperties":false,"description":"How long the payment took, or stayed at one bank."},{"type":"object","properties":{"kind":{"type":"string","const":"exchange_rate"},"rate":{"type":"number"},"from_currency":{"type":["string","null"]},"to_currency":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","rate","from_currency","to_currency","event_number","bank"],"additionalProperties":false,"description":"An exchange rate the report states."},{"type":"object","properties":{"kind":{"type":"string","const":"chain_bank"},"role":{"type":"string","enum":["sending","crediting","current","route"],"description":"sending: the sending bank. crediting: the bank crediting the payee. current: the bank the report says holds the payment now. route: a bank the report lists in the payment's chain."},"name":{"type":["string","null"]},"bic":{"type":["string","null"]},"location":{"type":["string","null"]},"country":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."}},"required":["kind","role","name","bic","location","country","event_number"],"additionalProperties":false,"description":"A bank this report names in the payment's chain, as the report states it."},{"type":"object","properties":{"kind":{"type":"string","const":"charge_bearer"},"code":{"type":"string","description":"The charge bearer code, as the bank stated it."},"explanation":{"type":["string","null"],"description":"Who pays the charges, for the codes SHA, OUR and BEN and their equivalents."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","explanation","event_number","bank"],"additionalProperties":false,"description":"Who the report says bears the charges."},{"type":"object","properties":{"kind":{"type":"string","const":"fee_note"},"code":{"type":["string","null"]},"description":{"type":["string","null"],"description":"The bank's own words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","description","event_number","bank"],"additionalProperties":false,"description":"A note the bank gives about fees."},{"type":"object","properties":{"kind":{"type":"string","const":"reject_return_reason"},"code":{"type":"string"},"description":{"type":["string","null"],"description":"The bank's own words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","description","event_number","bank"],"additionalProperties":false,"description":"The reason a bank gives for rejecting or returning the payment."},{"type":"object","properties":{"kind":{"type":"string","const":"message"},"event_type":{"type":["string","null"],"description":"The tracking event type, such as CTPT or CTSU."},"message_name":{"type":["string","null"],"description":"The message name, such as pacs.008.001.08."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","event_type","message_name","event_number","bank"],"additionalProperties":false,"description":"A payment message the report lists."},{"type":"object","properties":{"kind":{"type":"string","const":"event_status"},"status":{"type":"string"},"reason":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","status","reason","event_number","bank"],"additionalProperties":false,"description":"The status the report gives one event, with its reason, as the bank stated them."}]},"description":"Every further detail the bank record shows for this report, in the record's order, with the bank's times by stage and then durations last. Kinds: amounts by role, references, banks the report names in the payment's chain, exchange rates, the charge bearer, fee notes, reject or return reasons, messages, event statuses and literal cancellation-request codes. A cancellation request is separate from the transaction outcome. Fees are in fees. A detail that restates the bank reference, the bank's status time or a stored amount is left out. New kinds and values can appear within an API version; skip any you do not recognise."}},"required":["reported_at","observed_at","status","status_code","status_explanation","reporting_bank","bank_processing_status","extended_tracking_status","amount","currency","fees","payment_date","bank_reference","chips_ssn","details"],"additionalProperties":false}},{"type":"null"}],"description":"Every bank report, in the full view only, in payment lifecycle order as the timeline shows them: the last is the latest stage, which may have been received before an earlier stage's report (see observed_at)."},"waiting_at":{"type":["string","null"],"description":"In the full view, the bank the payment is waiting at, when the reports name one; otherwise null."},"free":{"anyOf":[{"type":"object","properties":{"has_activity":{"type":"boolean","description":"True once any bank has reported the transfer."},"last_update_at":{"type":["string","null"],"description":"When the free view last changed."},"reporting_bank_countries":{"type":"array","items":{"type":"string"},"description":"Home countries of the banks that reported. These are not the payment's route."},"reporting_banks":{"type":"integer","description":"How many banks have reported."},"next_update_at":{"type":["string","null"],"description":"When the free view next refreshes."},"pending_update_at":{"type":["string","null"],"description":"When a newer report becomes visible in the free view."},"checks_end_at":{"type":["string","null"],"description":"When free automatic checks end."},"checks_ended":{"type":"boolean"},"reports":{"type":"array","items":{"type":"object","properties":{"bank_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The reporting bank, numbered within this transfer; its name is in the full view."},"reported_at":{"type":["string","null"],"description":"The report's time."},"time_source":{"anyOf":[{"type":"string","enum":["bank_reported","first_received"]},{"type":"null"}],"description":"Whether the time is the one the bank gave, or when the report was first received."},"amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":["string","null"]}},"required":["value","currency"],"additionalProperties":false},{"type":"null"}],"description":"The amount this report carried, when it carried one; the currency is null when the report gave none."},"payment_date":{"type":["string","null"],"description":"The value date this report carried, when it carried one."},"details_in_full_view":{"type":"object","properties":{"bank_name":{"type":"boolean"},"bic":{"type":"boolean"},"status":{"type":"boolean"},"message":{"type":"boolean"},"reference":{"type":"boolean"},"fees":{"type":"boolean"}},"required":["bank_name","bic","status","message","reference","fees"],"additionalProperties":false,"description":"Which details this report holds that the full view shows. Only their presence is in the free view."}},"required":["bank_number","reported_at","time_source","amount","payment_date","details_in_full_view"],"additionalProperties":false},"description":"The reports the free view shows, in its order: the report behind the current status first, then newest first by reported_at, with reports that have no time last. At most 50."},"total_reports":{"type":"integer","description":"How many reports the free view counts."},"report_counts":{"type":"object","properties":{"with_bank_time":{"type":"integer"},"with_fees":{"type":"integer"},"with_messages":{"type":"integer"},"bank_references":{"type":"integer","description":"Distinct bank references."}},"required":["with_bank_time","with_fees","with_messages","bank_references"],"additionalProperties":false,"description":"Counts of details the full view shows, as the free tracker lists them."},"reported_by":{"type":"object","properties":{"amount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"value_date":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["amount","value_date"],"additionalProperties":false,"description":"The numbered bank (as in reports) behind the summary's bank-reported amount and value date."},"pending_report_at":{"type":["string","null"],"description":"The recorded time of the newer report not yet in the free view, when it has one."},"attention":{"anyOf":[{"type":"string","enum":["action_needed","waiting"]},{"type":"null"}],"description":"A bank's current report flags an issue: action needed, or waiting at a bank. The code and bank are in the full view."},"delay":{"anyOf":[{"type":"object","properties":{"days":{"type":"integer"},"tier":{"type":"string","enum":["slow","very_slow"]}},"required":["days","tier"],"additionalProperties":false},{"type":"null"}],"description":"Whole days since any bank last reported, when that is longer than usual."},"payment_route":{"anyOf":[{"type":"object","properties":{"sender":{"anyOf":[{"type":"object","properties":{"name":{"type":["string","null"],"description":"The bank's name, when the directory knows it."},"bic":{"type":"string"}},"required":["name","bic"],"additionalProperties":false},{"type":"null"}]},"beneficiary":{"anyOf":[{"type":"object","properties":{"name":{"type":["string","null"],"description":"The bank's name, when the directory knows it."},"bic":{"type":"string"}},"required":["name","bic"],"additionalProperties":false},{"type":"null"}]},"other_banks":{"type":"boolean","description":"True when other banks took part; they are named in the full view."}},"required":["sender","beneficiary","other_banks"],"additionalProperties":false},{"type":"null"}],"description":"The sending and beneficiary banks the reports confirm."}},"required":["has_activity","last_update_at","reporting_bank_countries","reporting_banks","next_update_at","pending_update_at","checks_end_at","checks_ended","reports","total_reports","report_counts","reported_by","pending_report_at","attention","delay","payment_route"],"additionalProperties":false},{"type":"null"}],"description":"The free tracker's view, in the free view only."},"corrections_remaining":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"How many more corrections the account owner can make to the entered amount, currency and payment date now that a bank has reported. Null when no bank has reported, when the API key or connected app is not the account owner's, when the transfer is archived, or when the count could not be read."},"outcome":{"type":"string","enum":["requeued","corrected","unchanged"],"description":"requeued: no bank had reported yet, so the next check uses the corrected details and no correction was used. corrected: a bank had reported, so the entered details were corrected and one correction was used. unchanged: a bank had reported and every copy of this transfer in the account already held these details, so nothing changed and no correction was used."}},"required":["transfer","events","waiting_at","free","corrections_remaining","outcome"],"additionalProperties":false},"example":{"transfer":{"id":"8d2f6b1e-4c3a-4f7d-9e8b-5a1c2d3e4f60","uetr":"eb6305c9-1f7f-49de-aed0-16487c27b42d","label":null,"view":"full","status":"in_transit","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.","status_code":"ACSP/G000","status_explanation":"Passed to the next agent or market infrastructure, with tracking continuing.","checks_finished":false,"amount":{"value":1505.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"},"events":[{"reported_at":"2026-10-14T09:10:00.000Z","observed_at":"2026-10-14T09:10:00.000Z","status":"in_transit","status_code":"ACSP/G000","status_explanation":"Passed to the next agent or market infrastructure, with tracking continuing.","reporting_bank":{"name":"Demo Sending Bank","country":"GB","bic":null},"bank_processing_status":null,"extended_tracking_status":null,"amount":{"value":1500.5,"currency":"USD"},"currency":"USD","fees":[],"payment_date":"2026-10-01","bank_reference":null,"chips_ssn":null,"details":[{"kind":"charge_bearer","code":"SHAR","explanation":"Shared charges (SHA)","event_number":null,"bank":null}]},{"reported_at":"2026-10-14T09:20:00.000Z","observed_at":"2026-10-14T09:20:00.000Z","status":"in_transit","status_code":"ACSP/G000","status_explanation":"Passed to the next agent or market infrastructure, with tracking continuing.","reporting_bank":{"name":"Demo Correspondent Bank","country":"US","bic":null},"bank_processing_status":null,"extended_tracking_status":null,"amount":{"value":1500.5,"currency":"USD"},"currency":"USD","fees":[],"payment_date":"2026-10-01","bank_reference":null,"chips_ssn":null,"details":[]}],"waiting_at":null,"free":null,"corrections_remaining":2,"outcome":"corrected"}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `read_only_credential`: Read-only key or connection. `not_permitted`: Not permitted.","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."}},"read_only_credential":{"summary":"Read-only key or connection","value":{"type":"https://uetr.ai/docs/api/errors#read_only_credential","title":"Read-only key or connection","status":403,"code":"read_only_credential","detail":"Read-only key or connection."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"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."}}}}}},"409":{"description":"`transfer_not_editable`: Transfer details cannot be changed. `corrections_used`: No corrections left. `transfer_archived`: Transfer is archived. `demo_transfer`: The demo transfer cannot be changed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"transfer_not_editable":{"summary":"Transfer details cannot be changed","value":{"type":"https://uetr.ai/docs/api/errors#transfer_not_editable","title":"Transfer details cannot be changed","status":409,"code":"transfer_not_editable","detail":"Transfer details cannot be changed."}},"corrections_used":{"summary":"No corrections left","value":{"type":"https://uetr.ai/docs/api/errors#corrections_used","title":"No corrections left","status":409,"code":"corrections_used","detail":"No corrections left."}},"transfer_archived":{"summary":"Transfer is archived","value":{"type":"https://uetr.ai/docs/api/errors#transfer_archived","title":"Transfer is archived","status":409,"code":"transfer_archived","detail":"Transfer is archived."}},"demo_transfer":{"summary":"The demo transfer cannot be changed","value":{"type":"https://uetr.ai/docs/api/errors#demo_transfer","title":"The demo transfer cannot be changed","status":409,"code":"demo_transfer","detail":"The demo transfer cannot be changed."}}}}}},"413":{"description":"`request_too_large`: Request too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"request_too_large":{"summary":"Request too large","value":{"type":"https://uetr.ai/docs/api/errors#request_too_large","title":"Request too large","status":413,"code":"request_too_large","detail":"Request too large."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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. `machine_writes_disabled`: Changes are switched off.","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."}},"machine_writes_disabled":{"summary":"Changes are switched off","value":{"type":"https://uetr.ai/docs/api/errors#machine_writes_disabled","title":"Changes are switched off","status":503,"code":"machine_writes_disabled","detail":"Changes are switched off."}}}}}}},"x-mcp-tool":"update_transfer","x-mcp-annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"x-owner-only":true}},"/transfers/{uetr}/label":{"patch":{"operationId":"rename_transfer","summary":"Rename a transfer","description":"Set or clear a transfer's label, at most 64 characters; an empty label clears it, as does one of only spaces or invisible characters. A label cannot contain tabs, line breaks or other control characters, or characters that change the direction of the text. A label can be set once the transfer has been found. Only the account owner's API keys and connected apps can rename a transfer. Returns the transfer.","tags":["Transfers"],"security":[{"apiKey":[]}],"parameters":[{"name":"uetr","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$","description":"The transfer's UETR."}},{"$ref":"#/components/parameters/Version"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"label":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"description":"The new label, or null to clear it."}},"required":["label"]},"examples":{"example_1":{"summary":"Label a transfer","value":{"label":"Invoice 42"}}}}}},"responses":{"200":{"description":"Rename a transfer","content":{"application/json":{"schema":{"type":"object","properties":{"transfer":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The transfer's id in this account."},"uetr":{"type":"string","description":"The Unique End-to-end Transaction Reference."},"label":{"type":["string","null"],"description":"The account's own label for the transfer."},"view":{"type":"string","enum":["full","free"],"description":"full: every report as the paid timeline shows it. free: the free tracker view."},"status":{"type":"string","enum":["searching","not_found","check_failed","in_transit","on_hold","credited","rejected","returned","cancelled"],"description":"The transfer's current status."},"position_sentence":{"type":["string","null"],"description":"In the full view, the payment position from its status and verified route. A reporting bank alone never establishes a position."},"status_code":{"type":["string","null"],"description":"The latest ISO 20022 status code, in the full view only."},"status_explanation":{"type":["string","null"],"description":"What the status code means, in plain English."},"checks_finished":{"type":"boolean","description":"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."},"amount":{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."}},"required":["value","currency"],"additionalProperties":false,"description":"The amount entered for the search, as last corrected by the account owner. bank_reported_amount is what a bank reported."},"payment_date":{"type":"string","description":"The payment date entered for the search, as last corrected by the account owner."},"bank_reported_amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."},"payment_date":{"type":["string","null"]}},"required":["value","currency","payment_date"],"additionalProperties":false},{"type":"null"}],"description":"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."},"last_checked_at":{"type":["string","null"],"description":"When the transfer was last checked."},"monitoring_until":{"type":["string","null"],"description":"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."},"check_frequency_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"How often this transfer's own checks run, in the full view; null when it has none scheduled."},"archived":{"type":"boolean","description":"True when the transfer is archived."},"added_at":{"type":"string","description":"When the transfer was added."}},"required":["id","uetr","label","view","status","status_code","status_explanation","checks_finished","amount","payment_date","bank_reported_amount","last_checked_at","monitoring_until","check_frequency_minutes","archived","added_at"],"additionalProperties":false,"description":"The transfer."},"events":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"reported_at":{"type":["string","null"],"description":"When the bank reported this status, if the report carries that time."},"observed_at":{"type":"string","description":"When this report was first received."},"status":{"anyOf":[{"type":"string","enum":["searching","not_found","check_failed","in_transit","on_hold","credited","rejected","returned","cancelled"]},{"type":"null"}]},"status_code":{"type":["string","null"],"description":"The ISO 20022 status code the bank reported."},"status_explanation":{"type":["string","null"]},"reporting_bank":{"type":"object","properties":{"name":{"type":"string"},"country":{"type":["string","null"]},"bic":{"type":["string","null"]}},"required":["name","country","bic"],"additionalProperties":false,"description":"The bank that reported. It is not necessarily on the payment's route."},"bank_processing_status":{"type":["string","null"],"description":"The bank's own processing status, in its words."},"extended_tracking_status":{"type":["string","null"],"description":"The bank's extended tracking status, in its words."},"amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."}},"required":["value","currency"],"additionalProperties":false},{"type":"null"}],"description":"The amount this report carried, when it carried one."},"currency":{"type":["string","null"],"description":"The currency the report stated, when it stated one. A report can state a currency with no amount and no fees."},"fees":{"type":"array","items":{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":["string","null"]},"role":{"type":"string","enum":["total","component","bank"],"description":"A stated total, one part of a total, or one bank's charge."},"label":{"type":["string","null"],"description":"The bank's own name for the fee, if it gave one."},"charged_by":{"type":["string","null"],"description":"The bank the report says charged it, if any."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the fee belongs to, as the bank record numbers it; null when the fee belongs to the report as a whole."}},"required":["value","currency","role","label","charged_by","event_number"],"additionalProperties":false},"description":"Every fee this report stated, as the bank listed them."},"payment_date":{"type":["string","null"],"description":"The value date this report carried, when it carried one."},"bank_reference":{"type":["string","null"],"description":"The bank's reference for the payment."},"chips_ssn":{"type":["string","null"],"description":"The CHIPS sequence number the bank reported."},"details":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"cancellation_request"},"code":{"type":"string","description":"The bank's literal cancellation-request code, separate from the transaction status. It does not establish that money was stopped or returned."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","event_number","bank"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"amount"},"role":{"type":"string","enum":["reported","instructed","sent","settled","confirmed","received"],"description":"Which amount the bank stated."},"value":{"type":"number"},"currency":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","role","value","currency","event_number","bank"],"additionalProperties":false,"description":"An amount the report states, by its role. The event's own amount is the figure the timeline quotes for the report."},{"type":"object","properties":{"kind":{"type":"string","const":"reference"},"type":{"type":"string","enum":["payment_reference","fed_imad","network_reference","instruction_id"]},"value":{"type":"string"},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","type","value","event_number","bank"],"additionalProperties":false,"description":"A reference the report states, such as a FED IMAD or an instruction ID."},{"type":"object","properties":{"kind":{"type":"string","const":"time"},"stage":{"type":"string","enum":["initiated","message_received","acknowledgement_received","arrived","departed","transaction_status","updated","confirmed","completed"],"description":"The stage the time belongs to: the payment started, a message or the sender's acknowledgement was received, the payment arrived at or departed from a step of the route, the transaction status was set, the bank last updated its status, or the payment was confirmed or completed."},"at":{"type":"string"},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","stage","at","event_number","bank"],"additionalProperties":false,"description":"A time the bank states for one stage of the payment."},{"type":"object","properties":{"kind":{"type":"string","const":"duration"},"type":{"type":"string","enum":["bank_stated","elapsed","time_at_bank"],"description":"bank_stated: how long the payment took, as the bank states it. elapsed: the time from the payment's start to the report's latest update. time_at_bank: how long the payment stayed at one bank on the route, between its arrival and its departure there."},"value":{"type":"string","description":"The duration, in words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","type","value","event_number","bank"],"additionalProperties":false,"description":"How long the payment took, or stayed at one bank."},{"type":"object","properties":{"kind":{"type":"string","const":"exchange_rate"},"rate":{"type":"number"},"from_currency":{"type":["string","null"]},"to_currency":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","rate","from_currency","to_currency","event_number","bank"],"additionalProperties":false,"description":"An exchange rate the report states."},{"type":"object","properties":{"kind":{"type":"string","const":"chain_bank"},"role":{"type":"string","enum":["sending","crediting","current","route"],"description":"sending: the sending bank. crediting: the bank crediting the payee. current: the bank the report says holds the payment now. route: a bank the report lists in the payment's chain."},"name":{"type":["string","null"]},"bic":{"type":["string","null"]},"location":{"type":["string","null"]},"country":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."}},"required":["kind","role","name","bic","location","country","event_number"],"additionalProperties":false,"description":"A bank this report names in the payment's chain, as the report states it."},{"type":"object","properties":{"kind":{"type":"string","const":"charge_bearer"},"code":{"type":"string","description":"The charge bearer code, as the bank stated it."},"explanation":{"type":["string","null"],"description":"Who pays the charges, for the codes SHA, OUR and BEN and their equivalents."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","explanation","event_number","bank"],"additionalProperties":false,"description":"Who the report says bears the charges."},{"type":"object","properties":{"kind":{"type":"string","const":"fee_note"},"code":{"type":["string","null"]},"description":{"type":["string","null"],"description":"The bank's own words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","description","event_number","bank"],"additionalProperties":false,"description":"A note the bank gives about fees."},{"type":"object","properties":{"kind":{"type":"string","const":"reject_return_reason"},"code":{"type":"string"},"description":{"type":["string","null"],"description":"The bank's own words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","description","event_number","bank"],"additionalProperties":false,"description":"The reason a bank gives for rejecting or returning the payment."},{"type":"object","properties":{"kind":{"type":"string","const":"message"},"event_type":{"type":["string","null"],"description":"The tracking event type, such as CTPT or CTSU."},"message_name":{"type":["string","null"],"description":"The message name, such as pacs.008.001.08."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","event_type","message_name","event_number","bank"],"additionalProperties":false,"description":"A payment message the report lists."},{"type":"object","properties":{"kind":{"type":"string","const":"event_status"},"status":{"type":"string"},"reason":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","status","reason","event_number","bank"],"additionalProperties":false,"description":"The status the report gives one event, with its reason, as the bank stated them."}]},"description":"Every further detail the bank record shows for this report, in the record's order, with the bank's times by stage and then durations last. Kinds: amounts by role, references, banks the report names in the payment's chain, exchange rates, the charge bearer, fee notes, reject or return reasons, messages, event statuses and literal cancellation-request codes. A cancellation request is separate from the transaction outcome. Fees are in fees. A detail that restates the bank reference, the bank's status time or a stored amount is left out. New kinds and values can appear within an API version; skip any you do not recognise."}},"required":["reported_at","observed_at","status","status_code","status_explanation","reporting_bank","bank_processing_status","extended_tracking_status","amount","currency","fees","payment_date","bank_reference","chips_ssn","details"],"additionalProperties":false}},{"type":"null"}],"description":"Every bank report, in the full view only, in payment lifecycle order as the timeline shows them: the last is the latest stage, which may have been received before an earlier stage's report (see observed_at)."},"waiting_at":{"type":["string","null"],"description":"In the full view, the bank the payment is waiting at, when the reports name one; otherwise null."},"free":{"anyOf":[{"type":"object","properties":{"has_activity":{"type":"boolean","description":"True once any bank has reported the transfer."},"last_update_at":{"type":["string","null"],"description":"When the free view last changed."},"reporting_bank_countries":{"type":"array","items":{"type":"string"},"description":"Home countries of the banks that reported. These are not the payment's route."},"reporting_banks":{"type":"integer","description":"How many banks have reported."},"next_update_at":{"type":["string","null"],"description":"When the free view next refreshes."},"pending_update_at":{"type":["string","null"],"description":"When a newer report becomes visible in the free view."},"checks_end_at":{"type":["string","null"],"description":"When free automatic checks end."},"checks_ended":{"type":"boolean"},"reports":{"type":"array","items":{"type":"object","properties":{"bank_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The reporting bank, numbered within this transfer; its name is in the full view."},"reported_at":{"type":["string","null"],"description":"The report's time."},"time_source":{"anyOf":[{"type":"string","enum":["bank_reported","first_received"]},{"type":"null"}],"description":"Whether the time is the one the bank gave, or when the report was first received."},"amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":["string","null"]}},"required":["value","currency"],"additionalProperties":false},{"type":"null"}],"description":"The amount this report carried, when it carried one; the currency is null when the report gave none."},"payment_date":{"type":["string","null"],"description":"The value date this report carried, when it carried one."},"details_in_full_view":{"type":"object","properties":{"bank_name":{"type":"boolean"},"bic":{"type":"boolean"},"status":{"type":"boolean"},"message":{"type":"boolean"},"reference":{"type":"boolean"},"fees":{"type":"boolean"}},"required":["bank_name","bic","status","message","reference","fees"],"additionalProperties":false,"description":"Which details this report holds that the full view shows. Only their presence is in the free view."}},"required":["bank_number","reported_at","time_source","amount","payment_date","details_in_full_view"],"additionalProperties":false},"description":"The reports the free view shows, in its order: the report behind the current status first, then newest first by reported_at, with reports that have no time last. At most 50."},"total_reports":{"type":"integer","description":"How many reports the free view counts."},"report_counts":{"type":"object","properties":{"with_bank_time":{"type":"integer"},"with_fees":{"type":"integer"},"with_messages":{"type":"integer"},"bank_references":{"type":"integer","description":"Distinct bank references."}},"required":["with_bank_time","with_fees","with_messages","bank_references"],"additionalProperties":false,"description":"Counts of details the full view shows, as the free tracker lists them."},"reported_by":{"type":"object","properties":{"amount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"value_date":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["amount","value_date"],"additionalProperties":false,"description":"The numbered bank (as in reports) behind the summary's bank-reported amount and value date."},"pending_report_at":{"type":["string","null"],"description":"The recorded time of the newer report not yet in the free view, when it has one."},"attention":{"anyOf":[{"type":"string","enum":["action_needed","waiting"]},{"type":"null"}],"description":"A bank's current report flags an issue: action needed, or waiting at a bank. The code and bank are in the full view."},"delay":{"anyOf":[{"type":"object","properties":{"days":{"type":"integer"},"tier":{"type":"string","enum":["slow","very_slow"]}},"required":["days","tier"],"additionalProperties":false},{"type":"null"}],"description":"Whole days since any bank last reported, when that is longer than usual."},"payment_route":{"anyOf":[{"type":"object","properties":{"sender":{"anyOf":[{"type":"object","properties":{"name":{"type":["string","null"],"description":"The bank's name, when the directory knows it."},"bic":{"type":"string"}},"required":["name","bic"],"additionalProperties":false},{"type":"null"}]},"beneficiary":{"anyOf":[{"type":"object","properties":{"name":{"type":["string","null"],"description":"The bank's name, when the directory knows it."},"bic":{"type":"string"}},"required":["name","bic"],"additionalProperties":false},{"type":"null"}]},"other_banks":{"type":"boolean","description":"True when other banks took part; they are named in the full view."}},"required":["sender","beneficiary","other_banks"],"additionalProperties":false},{"type":"null"}],"description":"The sending and beneficiary banks the reports confirm."}},"required":["has_activity","last_update_at","reporting_bank_countries","reporting_banks","next_update_at","pending_update_at","checks_end_at","checks_ended","reports","total_reports","report_counts","reported_by","pending_report_at","attention","delay","payment_route"],"additionalProperties":false},{"type":"null"}],"description":"The free tracker's view, in the free view only."},"corrections_remaining":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"How many more corrections the account owner can make to the entered amount, currency and payment date now that a bank has reported. Null when no bank has reported, when the API key or connected app is not the account owner's, when the transfer is archived, or when the count could not be read."}},"required":["transfer","events","waiting_at","free","corrections_remaining"],"additionalProperties":false},"example":{"transfer":{"id":"8d2f6b1e-4c3a-4f7d-9e8b-5a1c2d3e4f60","uetr":"eb6305c9-1f7f-49de-aed0-16487c27b42d","label":"Invoice 42","view":"full","status":"in_transit","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.","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"},"events":[{"reported_at":"2026-10-14T09:10:00.000Z","observed_at":"2026-10-14T09:10:00.000Z","status":"in_transit","status_code":"ACSP/G000","status_explanation":"Passed to the next agent or market infrastructure, with tracking continuing.","reporting_bank":{"name":"Demo Sending Bank","country":"GB","bic":null},"bank_processing_status":null,"extended_tracking_status":null,"amount":{"value":1500.5,"currency":"USD"},"currency":"USD","fees":[],"payment_date":"2026-10-01","bank_reference":null,"chips_ssn":null,"details":[{"kind":"charge_bearer","code":"SHAR","explanation":"Shared charges (SHA)","event_number":null,"bank":null}]},{"reported_at":"2026-10-14T09:20:00.000Z","observed_at":"2026-10-14T09:20:00.000Z","status":"in_transit","status_code":"ACSP/G000","status_explanation":"Passed to the next agent or market infrastructure, with tracking continuing.","reporting_bank":{"name":"Demo Correspondent Bank","country":"US","bic":null},"bank_processing_status":null,"extended_tracking_status":null,"amount":{"value":1500.5,"currency":"USD"},"currency":"USD","fees":[],"payment_date":"2026-10-01","bank_reference":null,"chips_ssn":null,"details":[]}],"waiting_at":null,"free":null,"corrections_remaining":3}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `read_only_credential`: Read-only key or connection. `not_permitted`: Not permitted.","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."}},"read_only_credential":{"summary":"Read-only key or connection","value":{"type":"https://uetr.ai/docs/api/errors#read_only_credential","title":"Read-only key or connection","status":403,"code":"read_only_credential","detail":"Read-only key or connection."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"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."}}}}}},"409":{"description":"`label_not_available`: Label not available yet. `transfer_archived`: Transfer is archived. `demo_transfer`: The demo transfer cannot be changed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"label_not_available":{"summary":"Label not available yet","value":{"type":"https://uetr.ai/docs/api/errors#label_not_available","title":"Label not available yet","status":409,"code":"label_not_available","detail":"Label not available yet."}},"transfer_archived":{"summary":"Transfer is archived","value":{"type":"https://uetr.ai/docs/api/errors#transfer_archived","title":"Transfer is archived","status":409,"code":"transfer_archived","detail":"Transfer is archived."}},"demo_transfer":{"summary":"The demo transfer cannot be changed","value":{"type":"https://uetr.ai/docs/api/errors#demo_transfer","title":"The demo transfer cannot be changed","status":409,"code":"demo_transfer","detail":"The demo transfer cannot be changed."}}}}}},"413":{"description":"`request_too_large`: Request too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"request_too_large":{"summary":"Request too large","value":{"type":"https://uetr.ai/docs/api/errors#request_too_large","title":"Request too large","status":413,"code":"request_too_large","detail":"Request too large."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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. `machine_writes_disabled`: Changes are switched off.","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."}},"machine_writes_disabled":{"summary":"Changes are switched off","value":{"type":"https://uetr.ai/docs/api/errors#machine_writes_disabled","title":"Changes are switched off","status":503,"code":"machine_writes_disabled","detail":"Changes are switched off."}}}}}}},"x-mcp-tool":"rename_transfer","x-mcp-annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"x-owner-only":true}},"/transfers/{uetr}/recheck":{"post":{"operationId":"recheck_transfer","summary":"Re-check a transfer now","description":"Check the banks' trackers for this transfer now, then return it with any new reports. Available for transfers in the full view while monitoring runs and checks have not ended. A transfer can be re-checked once a minute and 20 times a day, and an account 20 times a minute and 500 times a day, counted together for the website and the API. Only the account owner's API keys and connected apps can re-check.","tags":["Transfers"],"security":[{"apiKey":[]}],"parameters":[{"name":"uetr","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$","description":"The transfer's UETR."}},{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Re-check a transfer now","content":{"application/json":{"schema":{"type":"object","properties":{"transfer":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The transfer's id in this account."},"uetr":{"type":"string","description":"The Unique End-to-end Transaction Reference."},"label":{"type":["string","null"],"description":"The account's own label for the transfer."},"view":{"type":"string","enum":["full","free"],"description":"full: every report as the paid timeline shows it. free: the free tracker view."},"status":{"type":"string","enum":["searching","not_found","check_failed","in_transit","on_hold","credited","rejected","returned","cancelled"],"description":"The transfer's current status."},"position_sentence":{"type":["string","null"],"description":"In the full view, the payment position from its status and verified route. A reporting bank alone never establishes a position."},"status_code":{"type":["string","null"],"description":"The latest ISO 20022 status code, in the full view only."},"status_explanation":{"type":["string","null"],"description":"What the status code means, in plain English."},"checks_finished":{"type":"boolean","description":"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."},"amount":{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."}},"required":["value","currency"],"additionalProperties":false,"description":"The amount entered for the search, as last corrected by the account owner. bank_reported_amount is what a bank reported."},"payment_date":{"type":"string","description":"The payment date entered for the search, as last corrected by the account owner."},"bank_reported_amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."},"payment_date":{"type":["string","null"]}},"required":["value","currency","payment_date"],"additionalProperties":false},{"type":"null"}],"description":"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."},"last_checked_at":{"type":["string","null"],"description":"When the transfer was last checked."},"monitoring_until":{"type":["string","null"],"description":"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."},"check_frequency_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"How often this transfer's own checks run, in the full view; null when it has none scheduled."},"archived":{"type":"boolean","description":"True when the transfer is archived."},"added_at":{"type":"string","description":"When the transfer was added."}},"required":["id","uetr","label","view","status","status_code","status_explanation","checks_finished","amount","payment_date","bank_reported_amount","last_checked_at","monitoring_until","check_frequency_minutes","archived","added_at"],"additionalProperties":false,"description":"The transfer."},"events":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"reported_at":{"type":["string","null"],"description":"When the bank reported this status, if the report carries that time."},"observed_at":{"type":"string","description":"When this report was first received."},"status":{"anyOf":[{"type":"string","enum":["searching","not_found","check_failed","in_transit","on_hold","credited","rejected","returned","cancelled"]},{"type":"null"}]},"status_code":{"type":["string","null"],"description":"The ISO 20022 status code the bank reported."},"status_explanation":{"type":["string","null"]},"reporting_bank":{"type":"object","properties":{"name":{"type":"string"},"country":{"type":["string","null"]},"bic":{"type":["string","null"]}},"required":["name","country","bic"],"additionalProperties":false,"description":"The bank that reported. It is not necessarily on the payment's route."},"bank_processing_status":{"type":["string","null"],"description":"The bank's own processing status, in its words."},"extended_tracking_status":{"type":["string","null"],"description":"The bank's extended tracking status, in its words."},"amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."}},"required":["value","currency"],"additionalProperties":false},{"type":"null"}],"description":"The amount this report carried, when it carried one."},"currency":{"type":["string","null"],"description":"The currency the report stated, when it stated one. A report can state a currency with no amount and no fees."},"fees":{"type":"array","items":{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":["string","null"]},"role":{"type":"string","enum":["total","component","bank"],"description":"A stated total, one part of a total, or one bank's charge."},"label":{"type":["string","null"],"description":"The bank's own name for the fee, if it gave one."},"charged_by":{"type":["string","null"],"description":"The bank the report says charged it, if any."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the fee belongs to, as the bank record numbers it; null when the fee belongs to the report as a whole."}},"required":["value","currency","role","label","charged_by","event_number"],"additionalProperties":false},"description":"Every fee this report stated, as the bank listed them."},"payment_date":{"type":["string","null"],"description":"The value date this report carried, when it carried one."},"bank_reference":{"type":["string","null"],"description":"The bank's reference for the payment."},"chips_ssn":{"type":["string","null"],"description":"The CHIPS sequence number the bank reported."},"details":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"cancellation_request"},"code":{"type":"string","description":"The bank's literal cancellation-request code, separate from the transaction status. It does not establish that money was stopped or returned."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","event_number","bank"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"amount"},"role":{"type":"string","enum":["reported","instructed","sent","settled","confirmed","received"],"description":"Which amount the bank stated."},"value":{"type":"number"},"currency":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","role","value","currency","event_number","bank"],"additionalProperties":false,"description":"An amount the report states, by its role. The event's own amount is the figure the timeline quotes for the report."},{"type":"object","properties":{"kind":{"type":"string","const":"reference"},"type":{"type":"string","enum":["payment_reference","fed_imad","network_reference","instruction_id"]},"value":{"type":"string"},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","type","value","event_number","bank"],"additionalProperties":false,"description":"A reference the report states, such as a FED IMAD or an instruction ID."},{"type":"object","properties":{"kind":{"type":"string","const":"time"},"stage":{"type":"string","enum":["initiated","message_received","acknowledgement_received","arrived","departed","transaction_status","updated","confirmed","completed"],"description":"The stage the time belongs to: the payment started, a message or the sender's acknowledgement was received, the payment arrived at or departed from a step of the route, the transaction status was set, the bank last updated its status, or the payment was confirmed or completed."},"at":{"type":"string"},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","stage","at","event_number","bank"],"additionalProperties":false,"description":"A time the bank states for one stage of the payment."},{"type":"object","properties":{"kind":{"type":"string","const":"duration"},"type":{"type":"string","enum":["bank_stated","elapsed","time_at_bank"],"description":"bank_stated: how long the payment took, as the bank states it. elapsed: the time from the payment's start to the report's latest update. time_at_bank: how long the payment stayed at one bank on the route, between its arrival and its departure there."},"value":{"type":"string","description":"The duration, in words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","type","value","event_number","bank"],"additionalProperties":false,"description":"How long the payment took, or stayed at one bank."},{"type":"object","properties":{"kind":{"type":"string","const":"exchange_rate"},"rate":{"type":"number"},"from_currency":{"type":["string","null"]},"to_currency":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","rate","from_currency","to_currency","event_number","bank"],"additionalProperties":false,"description":"An exchange rate the report states."},{"type":"object","properties":{"kind":{"type":"string","const":"chain_bank"},"role":{"type":"string","enum":["sending","crediting","current","route"],"description":"sending: the sending bank. crediting: the bank crediting the payee. current: the bank the report says holds the payment now. route: a bank the report lists in the payment's chain."},"name":{"type":["string","null"]},"bic":{"type":["string","null"]},"location":{"type":["string","null"]},"country":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."}},"required":["kind","role","name","bic","location","country","event_number"],"additionalProperties":false,"description":"A bank this report names in the payment's chain, as the report states it."},{"type":"object","properties":{"kind":{"type":"string","const":"charge_bearer"},"code":{"type":"string","description":"The charge bearer code, as the bank stated it."},"explanation":{"type":["string","null"],"description":"Who pays the charges, for the codes SHA, OUR and BEN and their equivalents."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","explanation","event_number","bank"],"additionalProperties":false,"description":"Who the report says bears the charges."},{"type":"object","properties":{"kind":{"type":"string","const":"fee_note"},"code":{"type":["string","null"]},"description":{"type":["string","null"],"description":"The bank's own words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","description","event_number","bank"],"additionalProperties":false,"description":"A note the bank gives about fees."},{"type":"object","properties":{"kind":{"type":"string","const":"reject_return_reason"},"code":{"type":"string"},"description":{"type":["string","null"],"description":"The bank's own words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","description","event_number","bank"],"additionalProperties":false,"description":"The reason a bank gives for rejecting or returning the payment."},{"type":"object","properties":{"kind":{"type":"string","const":"message"},"event_type":{"type":["string","null"],"description":"The tracking event type, such as CTPT or CTSU."},"message_name":{"type":["string","null"],"description":"The message name, such as pacs.008.001.08."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","event_type","message_name","event_number","bank"],"additionalProperties":false,"description":"A payment message the report lists."},{"type":"object","properties":{"kind":{"type":"string","const":"event_status"},"status":{"type":"string"},"reason":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","status","reason","event_number","bank"],"additionalProperties":false,"description":"The status the report gives one event, with its reason, as the bank stated them."}]},"description":"Every further detail the bank record shows for this report, in the record's order, with the bank's times by stage and then durations last. Kinds: amounts by role, references, banks the report names in the payment's chain, exchange rates, the charge bearer, fee notes, reject or return reasons, messages, event statuses and literal cancellation-request codes. A cancellation request is separate from the transaction outcome. Fees are in fees. A detail that restates the bank reference, the bank's status time or a stored amount is left out. New kinds and values can appear within an API version; skip any you do not recognise."}},"required":["reported_at","observed_at","status","status_code","status_explanation","reporting_bank","bank_processing_status","extended_tracking_status","amount","currency","fees","payment_date","bank_reference","chips_ssn","details"],"additionalProperties":false}},{"type":"null"}],"description":"Every bank report, in the full view only, in payment lifecycle order as the timeline shows them: the last is the latest stage, which may have been received before an earlier stage's report (see observed_at)."},"waiting_at":{"type":["string","null"],"description":"In the full view, the bank the payment is waiting at, when the reports name one; otherwise null."},"free":{"anyOf":[{"type":"object","properties":{"has_activity":{"type":"boolean","description":"True once any bank has reported the transfer."},"last_update_at":{"type":["string","null"],"description":"When the free view last changed."},"reporting_bank_countries":{"type":"array","items":{"type":"string"},"description":"Home countries of the banks that reported. These are not the payment's route."},"reporting_banks":{"type":"integer","description":"How many banks have reported."},"next_update_at":{"type":["string","null"],"description":"When the free view next refreshes."},"pending_update_at":{"type":["string","null"],"description":"When a newer report becomes visible in the free view."},"checks_end_at":{"type":["string","null"],"description":"When free automatic checks end."},"checks_ended":{"type":"boolean"},"reports":{"type":"array","items":{"type":"object","properties":{"bank_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The reporting bank, numbered within this transfer; its name is in the full view."},"reported_at":{"type":["string","null"],"description":"The report's time."},"time_source":{"anyOf":[{"type":"string","enum":["bank_reported","first_received"]},{"type":"null"}],"description":"Whether the time is the one the bank gave, or when the report was first received."},"amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":["string","null"]}},"required":["value","currency"],"additionalProperties":false},{"type":"null"}],"description":"The amount this report carried, when it carried one; the currency is null when the report gave none."},"payment_date":{"type":["string","null"],"description":"The value date this report carried, when it carried one."},"details_in_full_view":{"type":"object","properties":{"bank_name":{"type":"boolean"},"bic":{"type":"boolean"},"status":{"type":"boolean"},"message":{"type":"boolean"},"reference":{"type":"boolean"},"fees":{"type":"boolean"}},"required":["bank_name","bic","status","message","reference","fees"],"additionalProperties":false,"description":"Which details this report holds that the full view shows. Only their presence is in the free view."}},"required":["bank_number","reported_at","time_source","amount","payment_date","details_in_full_view"],"additionalProperties":false},"description":"The reports the free view shows, in its order: the report behind the current status first, then newest first by reported_at, with reports that have no time last. At most 50."},"total_reports":{"type":"integer","description":"How many reports the free view counts."},"report_counts":{"type":"object","properties":{"with_bank_time":{"type":"integer"},"with_fees":{"type":"integer"},"with_messages":{"type":"integer"},"bank_references":{"type":"integer","description":"Distinct bank references."}},"required":["with_bank_time","with_fees","with_messages","bank_references"],"additionalProperties":false,"description":"Counts of details the full view shows, as the free tracker lists them."},"reported_by":{"type":"object","properties":{"amount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"value_date":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["amount","value_date"],"additionalProperties":false,"description":"The numbered bank (as in reports) behind the summary's bank-reported amount and value date."},"pending_report_at":{"type":["string","null"],"description":"The recorded time of the newer report not yet in the free view, when it has one."},"attention":{"anyOf":[{"type":"string","enum":["action_needed","waiting"]},{"type":"null"}],"description":"A bank's current report flags an issue: action needed, or waiting at a bank. The code and bank are in the full view."},"delay":{"anyOf":[{"type":"object","properties":{"days":{"type":"integer"},"tier":{"type":"string","enum":["slow","very_slow"]}},"required":["days","tier"],"additionalProperties":false},{"type":"null"}],"description":"Whole days since any bank last reported, when that is longer than usual."},"payment_route":{"anyOf":[{"type":"object","properties":{"sender":{"anyOf":[{"type":"object","properties":{"name":{"type":["string","null"],"description":"The bank's name, when the directory knows it."},"bic":{"type":"string"}},"required":["name","bic"],"additionalProperties":false},{"type":"null"}]},"beneficiary":{"anyOf":[{"type":"object","properties":{"name":{"type":["string","null"],"description":"The bank's name, when the directory knows it."},"bic":{"type":"string"}},"required":["name","bic"],"additionalProperties":false},{"type":"null"}]},"other_banks":{"type":"boolean","description":"True when other banks took part; they are named in the full view."}},"required":["sender","beneficiary","other_banks"],"additionalProperties":false},{"type":"null"}],"description":"The sending and beneficiary banks the reports confirm."}},"required":["has_activity","last_update_at","reporting_bank_countries","reporting_banks","next_update_at","pending_update_at","checks_end_at","checks_ended","reports","total_reports","report_counts","reported_by","pending_report_at","attention","delay","payment_route"],"additionalProperties":false},{"type":"null"}],"description":"The free tracker's view, in the free view only."},"corrections_remaining":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"How many more corrections the account owner can make to the entered amount, currency and payment date now that a bank has reported. Null when no bank has reported, when the API key or connected app is not the account owner's, when the transfer is archived, or when the count could not be read."}},"required":["transfer","events","waiting_at","free","corrections_remaining"],"additionalProperties":false},"example":{"transfer":{"id":"8d2f6b1e-4c3a-4f7d-9e8b-5a1c2d3e4f60","uetr":"eb6305c9-1f7f-49de-aed0-16487c27b42d","label":null,"view":"full","status":"in_transit","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.","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:25:00.000Z","monitoring_until":"2026-11-14T09:00:00.000Z","check_frequency_minutes":60,"archived":false,"added_at":"2026-10-14T09:00:00.000Z"},"events":[{"reported_at":"2026-10-14T09:10:00.000Z","observed_at":"2026-10-14T09:10:00.000Z","status":"in_transit","status_code":"ACSP/G000","status_explanation":"Passed to the next agent or market infrastructure, with tracking continuing.","reporting_bank":{"name":"Demo Sending Bank","country":"GB","bic":null},"bank_processing_status":null,"extended_tracking_status":null,"amount":{"value":1500.5,"currency":"USD"},"currency":"USD","fees":[],"payment_date":"2026-10-01","bank_reference":null,"chips_ssn":null,"details":[{"kind":"charge_bearer","code":"SHAR","explanation":"Shared charges (SHA)","event_number":null,"bank":null}]},{"reported_at":"2026-10-14T09:20:00.000Z","observed_at":"2026-10-14T09:20:00.000Z","status":"in_transit","status_code":"ACSP/G000","status_explanation":"Passed to the next agent or market infrastructure, with tracking continuing.","reporting_bank":{"name":"Demo Correspondent Bank","country":"US","bic":null},"bank_processing_status":null,"extended_tracking_status":null,"amount":{"value":1500.5,"currency":"USD"},"currency":"USD","fees":[],"payment_date":"2026-10-01","bank_reference":null,"chips_ssn":null,"details":[]}],"waiting_at":null,"free":null,"corrections_remaining":3}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `read_only_credential`: Read-only key or connection. `not_permitted`: Not permitted.","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."}},"read_only_credential":{"summary":"Read-only key or connection","value":{"type":"https://uetr.ai/docs/api/errors#read_only_credential","title":"Read-only key or connection","status":403,"code":"read_only_credential","detail":"Read-only key or connection."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"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."}}}}}},"409":{"description":"`recheck_not_available`: Re-check not available. `checks_ended`: Automatic checks have ended. `monitoring_ended`: Monitoring has ended. `transfer_archived`: Transfer is archived. `demo_transfer`: The demo transfer cannot be changed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"recheck_not_available":{"summary":"Re-check not available","value":{"type":"https://uetr.ai/docs/api/errors#recheck_not_available","title":"Re-check not available","status":409,"code":"recheck_not_available","detail":"Re-check not available."}},"checks_ended":{"summary":"Automatic checks have ended","value":{"type":"https://uetr.ai/docs/api/errors#checks_ended","title":"Automatic checks have ended","status":409,"code":"checks_ended","detail":"Automatic checks have ended."}},"monitoring_ended":{"summary":"Monitoring has ended","value":{"type":"https://uetr.ai/docs/api/errors#monitoring_ended","title":"Monitoring has ended","status":409,"code":"monitoring_ended","detail":"Monitoring has ended."}},"transfer_archived":{"summary":"Transfer is archived","value":{"type":"https://uetr.ai/docs/api/errors#transfer_archived","title":"Transfer is archived","status":409,"code":"transfer_archived","detail":"Transfer is archived."}},"demo_transfer":{"summary":"The demo transfer cannot be changed","value":{"type":"https://uetr.ai/docs/api/errors#demo_transfer","title":"The demo transfer cannot be changed","status":409,"code":"demo_transfer","detail":"The demo transfer cannot be changed."}}}}}},"413":{"description":"`request_too_large`: Request too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"request_too_large":{"summary":"Request too large","value":{"type":"https://uetr.ai/docs/api/errors#request_too_large","title":"Request too large","status":413,"code":"request_too_large","detail":"Request too large."}}}}}},"429":{"description":"`rate_limited`: Too many requests. `recheck_cooldown`: Re-check too soon.","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."}},"recheck_cooldown":{"summary":"Re-check too soon","value":{"type":"https://uetr.ai/docs/api/errors#recheck_cooldown","title":"Re-check too soon","status":429,"code":"recheck_cooldown","detail":"Re-check too soon."}}}}}},"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. `machine_writes_disabled`: Changes are switched off.","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."}},"machine_writes_disabled":{"summary":"Changes are switched off","value":{"type":"https://uetr.ai/docs/api/errors#machine_writes_disabled","title":"Changes are switched off","status":503,"code":"machine_writes_disabled","detail":"Changes are switched off."}}}}}}},"x-mcp-tool":"recheck_transfer","x-mcp-annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"x-owner-only":true}},"/transfers/{uetr}/record-share":{"post":{"operationId":"share_payment_record","summary":"Share a payment record","description":"Ask for the payment record link of a paid transfer, to share its bank reports. The account owner must confirm the request on the website before the link is shared: until then the caller does not receive it. The owner sees the request on the website and is normally notified by email. Once confirmed, list_pending_access returns the link. Asking again for the same transfer with the same settings returns the open request; with different settings, the new request replaces it. Only the account owner's API keys and connected apps can ask.","tags":["Transfers"],"security":[{"apiKey":[]}],"parameters":[{"name":"uetr","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$","description":"The transfer's UETR."}},{"$ref":"#/components/parameters/Version"}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"show_fees":{"type":"boolean","description":"Show bank fees on the record. Leave out to keep the current setting."},"show_commentary":{"type":"boolean","description":"Show uetr.ai's plain-language explanations on the record. Leave out to keep the current setting."}}},"examples":{"example_1":{"summary":"Share a transfer's payment record","value":{}}}}}},"responses":{"200":{"description":"Share a payment record","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","const":"pending_owner_confirmation","description":"Nothing has taken effect yet: the account owner must confirm the request."},"request":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["team_invite","record_share","webhook_endpoint"],"description":"team_invite: an invitation to the team. record_share: a payment record link. webhook_endpoint: a webhook endpoint that receives status changes."},"status":{"type":"string","enum":["pending","confirmed","declined","expired"],"description":"pending: waiting for the account owner. confirmed: the owner approved it and it took effect. declined: the owner refused it. expired: nobody answered within seven days, or a later request for the same transfer with different settings replaced it."},"created_at":{"type":"string"},"expires_at":{"type":"string"},"decided_at":{"type":["string","null"]},"invite_email":{"type":["string","null"],"description":"For a team invite: the address to invite."},"uetr":{"type":["string","null"],"description":"For a record share: the transfer's UETR."},"record_url":{"type":["string","null"],"description":"For a confirmed record share: the payment record link, while the record still has that link. Null otherwise."},"endpoint_url":{"type":["string","null"],"description":"For a webhook endpoint: its host and a masked path. Null otherwise."}},"required":["id","kind","status","created_at","expires_at","decided_at","invite_email","uetr","record_url","endpoint_url"],"additionalProperties":false},"detail":{"type":"string","description":"Plain English to pass on to the person behind the request."}},"required":["status","request","detail"],"additionalProperties":false},"example":{"status":"pending_owner_confirmation","request":{"id":"1d4f7a2c-5b8e-4c1f-a3d6-9e2b5c8f1a4d","kind":"record_share","status":"pending","created_at":"2026-10-14T09:25:00.000Z","expires_at":"2026-10-21T09:25:00.000Z","decided_at":null,"invite_email":null,"uetr":"eb6305c9-1f7f-49de-aed0-16487c27b42d","record_url":null,"endpoint_url":null},"detail":"The account owner must confirm sharing this payment record on the website before it takes effect. They have been notified by email."}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `read_only_credential`: Read-only key or connection. `not_permitted`: Not permitted.","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."}},"read_only_credential":{"summary":"Read-only key or connection","value":{"type":"https://uetr.ai/docs/api/errors#read_only_credential","title":"Read-only key or connection","status":403,"code":"read_only_credential","detail":"Read-only key or connection."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"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."}}}}}},"409":{"description":"`record_not_available`: No payment record. `demo_transfer`: The demo transfer cannot be changed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"record_not_available":{"summary":"No payment record","value":{"type":"https://uetr.ai/docs/api/errors#record_not_available","title":"No payment record","status":409,"code":"record_not_available","detail":"No payment record."}},"demo_transfer":{"summary":"The demo transfer cannot be changed","value":{"type":"https://uetr.ai/docs/api/errors#demo_transfer","title":"The demo transfer cannot be changed","status":409,"code":"demo_transfer","detail":"The demo transfer cannot be changed."}}}}}},"413":{"description":"`request_too_large`: Request too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"request_too_large":{"summary":"Request too large","value":{"type":"https://uetr.ai/docs/api/errors#request_too_large","title":"Request too large","status":413,"code":"request_too_large","detail":"Request too large."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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. `machine_writes_disabled`: Changes are switched off.","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."}},"machine_writes_disabled":{"summary":"Changes are switched off","value":{"type":"https://uetr.ai/docs/api/errors#machine_writes_disabled","title":"Changes are switched off","status":503,"code":"machine_writes_disabled","detail":"Changes are switched off."}}}}}}},"x-mcp-tool":"share_payment_record","x-mcp-annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"x-owner-only":true}},"/transfers/{uetr}/restore":{"post":{"operationId":"restore_transfer","summary":"Restore an archived transfer","description":"Restore an archived transfer so its monitoring resumes. Restoring needs an active subscription and a free active transfer place. Restoring an active transfer changes nothing. Returns the transfer.","tags":["Transfers"],"security":[{"apiKey":[]}],"parameters":[{"name":"uetr","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$","description":"The transfer's UETR."}},{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Restore an archived transfer","content":{"application/json":{"schema":{"type":"object","properties":{"transfer":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The transfer's id in this account."},"uetr":{"type":"string","description":"The Unique End-to-end Transaction Reference."},"label":{"type":["string","null"],"description":"The account's own label for the transfer."},"view":{"type":"string","enum":["full","free"],"description":"full: every report as the paid timeline shows it. free: the free tracker view."},"status":{"type":"string","enum":["searching","not_found","check_failed","in_transit","on_hold","credited","rejected","returned","cancelled"],"description":"The transfer's current status."},"position_sentence":{"type":["string","null"],"description":"In the full view, the payment position from its status and verified route. A reporting bank alone never establishes a position."},"status_code":{"type":["string","null"],"description":"The latest ISO 20022 status code, in the full view only."},"status_explanation":{"type":["string","null"],"description":"What the status code means, in plain English."},"checks_finished":{"type":"boolean","description":"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."},"amount":{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."}},"required":["value","currency"],"additionalProperties":false,"description":"The amount entered for the search, as last corrected by the account owner. bank_reported_amount is what a bank reported."},"payment_date":{"type":"string","description":"The payment date entered for the search, as last corrected by the account owner."},"bank_reported_amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."},"payment_date":{"type":["string","null"]}},"required":["value","currency","payment_date"],"additionalProperties":false},{"type":"null"}],"description":"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."},"last_checked_at":{"type":["string","null"],"description":"When the transfer was last checked."},"monitoring_until":{"type":["string","null"],"description":"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."},"check_frequency_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"How often this transfer's own checks run, in the full view; null when it has none scheduled."},"archived":{"type":"boolean","description":"True when the transfer is archived."},"added_at":{"type":"string","description":"When the transfer was added."}},"required":["id","uetr","label","view","status","status_code","status_explanation","checks_finished","amount","payment_date","bank_reported_amount","last_checked_at","monitoring_until","check_frequency_minutes","archived","added_at"],"additionalProperties":false,"description":"The transfer."},"events":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"reported_at":{"type":["string","null"],"description":"When the bank reported this status, if the report carries that time."},"observed_at":{"type":"string","description":"When this report was first received."},"status":{"anyOf":[{"type":"string","enum":["searching","not_found","check_failed","in_transit","on_hold","credited","rejected","returned","cancelled"]},{"type":"null"}]},"status_code":{"type":["string","null"],"description":"The ISO 20022 status code the bank reported."},"status_explanation":{"type":["string","null"]},"reporting_bank":{"type":"object","properties":{"name":{"type":"string"},"country":{"type":["string","null"]},"bic":{"type":["string","null"]}},"required":["name","country","bic"],"additionalProperties":false,"description":"The bank that reported. It is not necessarily on the payment's route."},"bank_processing_status":{"type":["string","null"],"description":"The bank's own processing status, in its words."},"extended_tracking_status":{"type":["string","null"],"description":"The bank's extended tracking status, in its words."},"amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number","description":"The amount."},"currency":{"type":"string","description":"ISO 4217 currency code."}},"required":["value","currency"],"additionalProperties":false},{"type":"null"}],"description":"The amount this report carried, when it carried one."},"currency":{"type":["string","null"],"description":"The currency the report stated, when it stated one. A report can state a currency with no amount and no fees."},"fees":{"type":"array","items":{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":["string","null"]},"role":{"type":"string","enum":["total","component","bank"],"description":"A stated total, one part of a total, or one bank's charge."},"label":{"type":["string","null"],"description":"The bank's own name for the fee, if it gave one."},"charged_by":{"type":["string","null"],"description":"The bank the report says charged it, if any."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the fee belongs to, as the bank record numbers it; null when the fee belongs to the report as a whole."}},"required":["value","currency","role","label","charged_by","event_number"],"additionalProperties":false},"description":"Every fee this report stated, as the bank listed them."},"payment_date":{"type":["string","null"],"description":"The value date this report carried, when it carried one."},"bank_reference":{"type":["string","null"],"description":"The bank's reference for the payment."},"chips_ssn":{"type":["string","null"],"description":"The CHIPS sequence number the bank reported."},"details":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"cancellation_request"},"code":{"type":"string","description":"The bank's literal cancellation-request code, separate from the transaction status. It does not establish that money was stopped or returned."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","event_number","bank"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"amount"},"role":{"type":"string","enum":["reported","instructed","sent","settled","confirmed","received"],"description":"Which amount the bank stated."},"value":{"type":"number"},"currency":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","role","value","currency","event_number","bank"],"additionalProperties":false,"description":"An amount the report states, by its role. The event's own amount is the figure the timeline quotes for the report."},{"type":"object","properties":{"kind":{"type":"string","const":"reference"},"type":{"type":"string","enum":["payment_reference","fed_imad","network_reference","instruction_id"]},"value":{"type":"string"},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","type","value","event_number","bank"],"additionalProperties":false,"description":"A reference the report states, such as a FED IMAD or an instruction ID."},{"type":"object","properties":{"kind":{"type":"string","const":"time"},"stage":{"type":"string","enum":["initiated","message_received","acknowledgement_received","arrived","departed","transaction_status","updated","confirmed","completed"],"description":"The stage the time belongs to: the payment started, a message or the sender's acknowledgement was received, the payment arrived at or departed from a step of the route, the transaction status was set, the bank last updated its status, or the payment was confirmed or completed."},"at":{"type":"string"},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","stage","at","event_number","bank"],"additionalProperties":false,"description":"A time the bank states for one stage of the payment."},{"type":"object","properties":{"kind":{"type":"string","const":"duration"},"type":{"type":"string","enum":["bank_stated","elapsed","time_at_bank"],"description":"bank_stated: how long the payment took, as the bank states it. elapsed: the time from the payment's start to the report's latest update. time_at_bank: how long the payment stayed at one bank on the route, between its arrival and its departure there."},"value":{"type":"string","description":"The duration, in words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","type","value","event_number","bank"],"additionalProperties":false,"description":"How long the payment took, or stayed at one bank."},{"type":"object","properties":{"kind":{"type":"string","const":"exchange_rate"},"rate":{"type":"number"},"from_currency":{"type":["string","null"]},"to_currency":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","rate","from_currency","to_currency","event_number","bank"],"additionalProperties":false,"description":"An exchange rate the report states."},{"type":"object","properties":{"kind":{"type":"string","const":"chain_bank"},"role":{"type":"string","enum":["sending","crediting","current","route"],"description":"sending: the sending bank. crediting: the bank crediting the payee. current: the bank the report says holds the payment now. route: a bank the report lists in the payment's chain."},"name":{"type":["string","null"]},"bic":{"type":["string","null"]},"location":{"type":["string","null"]},"country":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."}},"required":["kind","role","name","bic","location","country","event_number"],"additionalProperties":false,"description":"A bank this report names in the payment's chain, as the report states it."},{"type":"object","properties":{"kind":{"type":"string","const":"charge_bearer"},"code":{"type":"string","description":"The charge bearer code, as the bank stated it."},"explanation":{"type":["string","null"],"description":"Who pays the charges, for the codes SHA, OUR and BEN and their equivalents."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","explanation","event_number","bank"],"additionalProperties":false,"description":"Who the report says bears the charges."},{"type":"object","properties":{"kind":{"type":"string","const":"fee_note"},"code":{"type":["string","null"]},"description":{"type":["string","null"],"description":"The bank's own words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","description","event_number","bank"],"additionalProperties":false,"description":"A note the bank gives about fees."},{"type":"object","properties":{"kind":{"type":"string","const":"reject_return_reason"},"code":{"type":"string"},"description":{"type":["string","null"],"description":"The bank's own words."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","code","description","event_number","bank"],"additionalProperties":false,"description":"The reason a bank gives for rejecting or returning the payment."},{"type":"object","properties":{"kind":{"type":"string","const":"message"},"event_type":{"type":["string","null"],"description":"The tracking event type, such as CTPT or CTSU."},"message_name":{"type":["string","null"],"description":"The message name, such as pacs.008.001.08."},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","event_type","message_name","event_number","bank"],"additionalProperties":false,"description":"A payment message the report lists."},{"type":"object","properties":{"kind":{"type":"string","const":"event_status"},"status":{"type":"string"},"reason":{"type":["string","null"]},"event_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The event inside this report's own list of events that the detail belongs to, as the bank record numbers it. It is not a position in events. Null when the detail belongs to the report as a whole."},"bank":{"type":["string","null"],"description":"The bank the report ties this detail to: its name, or its BIC when the report gives no name."}},"required":["kind","status","reason","event_number","bank"],"additionalProperties":false,"description":"The status the report gives one event, with its reason, as the bank stated them."}]},"description":"Every further detail the bank record shows for this report, in the record's order, with the bank's times by stage and then durations last. Kinds: amounts by role, references, banks the report names in the payment's chain, exchange rates, the charge bearer, fee notes, reject or return reasons, messages, event statuses and literal cancellation-request codes. A cancellation request is separate from the transaction outcome. Fees are in fees. A detail that restates the bank reference, the bank's status time or a stored amount is left out. New kinds and values can appear within an API version; skip any you do not recognise."}},"required":["reported_at","observed_at","status","status_code","status_explanation","reporting_bank","bank_processing_status","extended_tracking_status","amount","currency","fees","payment_date","bank_reference","chips_ssn","details"],"additionalProperties":false}},{"type":"null"}],"description":"Every bank report, in the full view only, in payment lifecycle order as the timeline shows them: the last is the latest stage, which may have been received before an earlier stage's report (see observed_at)."},"waiting_at":{"type":["string","null"],"description":"In the full view, the bank the payment is waiting at, when the reports name one; otherwise null."},"free":{"anyOf":[{"type":"object","properties":{"has_activity":{"type":"boolean","description":"True once any bank has reported the transfer."},"last_update_at":{"type":["string","null"],"description":"When the free view last changed."},"reporting_bank_countries":{"type":"array","items":{"type":"string"},"description":"Home countries of the banks that reported. These are not the payment's route."},"reporting_banks":{"type":"integer","description":"How many banks have reported."},"next_update_at":{"type":["string","null"],"description":"When the free view next refreshes."},"pending_update_at":{"type":["string","null"],"description":"When a newer report becomes visible in the free view."},"checks_end_at":{"type":["string","null"],"description":"When free automatic checks end."},"checks_ended":{"type":"boolean"},"reports":{"type":"array","items":{"type":"object","properties":{"bank_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The reporting bank, numbered within this transfer; its name is in the full view."},"reported_at":{"type":["string","null"],"description":"The report's time."},"time_source":{"anyOf":[{"type":"string","enum":["bank_reported","first_received"]},{"type":"null"}],"description":"Whether the time is the one the bank gave, or when the report was first received."},"amount":{"anyOf":[{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":["string","null"]}},"required":["value","currency"],"additionalProperties":false},{"type":"null"}],"description":"The amount this report carried, when it carried one; the currency is null when the report gave none."},"payment_date":{"type":["string","null"],"description":"The value date this report carried, when it carried one."},"details_in_full_view":{"type":"object","properties":{"bank_name":{"type":"boolean"},"bic":{"type":"boolean"},"status":{"type":"boolean"},"message":{"type":"boolean"},"reference":{"type":"boolean"},"fees":{"type":"boolean"}},"required":["bank_name","bic","status","message","reference","fees"],"additionalProperties":false,"description":"Which details this report holds that the full view shows. Only their presence is in the free view."}},"required":["bank_number","reported_at","time_source","amount","payment_date","details_in_full_view"],"additionalProperties":false},"description":"The reports the free view shows, in its order: the report behind the current status first, then newest first by reported_at, with reports that have no time last. At most 50."},"total_reports":{"type":"integer","description":"How many reports the free view counts."},"report_counts":{"type":"object","properties":{"with_bank_time":{"type":"integer"},"with_fees":{"type":"integer"},"with_messages":{"type":"integer"},"bank_references":{"type":"integer","description":"Distinct bank references."}},"required":["with_bank_time","with_fees","with_messages","bank_references"],"additionalProperties":false,"description":"Counts of details the full view shows, as the free tracker lists them."},"reported_by":{"type":"object","properties":{"amount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"value_date":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["amount","value_date"],"additionalProperties":false,"description":"The numbered bank (as in reports) behind the summary's bank-reported amount and value date."},"pending_report_at":{"type":["string","null"],"description":"The recorded time of the newer report not yet in the free view, when it has one."},"attention":{"anyOf":[{"type":"string","enum":["action_needed","waiting"]},{"type":"null"}],"description":"A bank's current report flags an issue: action needed, or waiting at a bank. The code and bank are in the full view."},"delay":{"anyOf":[{"type":"object","properties":{"days":{"type":"integer"},"tier":{"type":"string","enum":["slow","very_slow"]}},"required":["days","tier"],"additionalProperties":false},{"type":"null"}],"description":"Whole days since any bank last reported, when that is longer than usual."},"payment_route":{"anyOf":[{"type":"object","properties":{"sender":{"anyOf":[{"type":"object","properties":{"name":{"type":["string","null"],"description":"The bank's name, when the directory knows it."},"bic":{"type":"string"}},"required":["name","bic"],"additionalProperties":false},{"type":"null"}]},"beneficiary":{"anyOf":[{"type":"object","properties":{"name":{"type":["string","null"],"description":"The bank's name, when the directory knows it."},"bic":{"type":"string"}},"required":["name","bic"],"additionalProperties":false},{"type":"null"}]},"other_banks":{"type":"boolean","description":"True when other banks took part; they are named in the full view."}},"required":["sender","beneficiary","other_banks"],"additionalProperties":false},{"type":"null"}],"description":"The sending and beneficiary banks the reports confirm."}},"required":["has_activity","last_update_at","reporting_bank_countries","reporting_banks","next_update_at","pending_update_at","checks_end_at","checks_ended","reports","total_reports","report_counts","reported_by","pending_report_at","attention","delay","payment_route"],"additionalProperties":false},{"type":"null"}],"description":"The free tracker's view, in the free view only."},"corrections_remaining":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"How many more corrections the account owner can make to the entered amount, currency and payment date now that a bank has reported. Null when no bank has reported, when the API key or connected app is not the account owner's, when the transfer is archived, or when the count could not be read."}},"required":["transfer","events","waiting_at","free","corrections_remaining"],"additionalProperties":false},"example":{"transfer":{"id":"8d2f6b1e-4c3a-4f7d-9e8b-5a1c2d3e4f60","uetr":"eb6305c9-1f7f-49de-aed0-16487c27b42d","label":null,"view":"full","status":"in_transit","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.","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"},"events":[{"reported_at":"2026-10-14T09:10:00.000Z","observed_at":"2026-10-14T09:10:00.000Z","status":"in_transit","status_code":"ACSP/G000","status_explanation":"Passed to the next agent or market infrastructure, with tracking continuing.","reporting_bank":{"name":"Demo Sending Bank","country":"GB","bic":null},"bank_processing_status":null,"extended_tracking_status":null,"amount":{"value":1500.5,"currency":"USD"},"currency":"USD","fees":[],"payment_date":"2026-10-01","bank_reference":null,"chips_ssn":null,"details":[{"kind":"charge_bearer","code":"SHAR","explanation":"Shared charges (SHA)","event_number":null,"bank":null}]},{"reported_at":"2026-10-14T09:20:00.000Z","observed_at":"2026-10-14T09:20:00.000Z","status":"in_transit","status_code":"ACSP/G000","status_explanation":"Passed to the next agent or market infrastructure, with tracking continuing.","reporting_bank":{"name":"Demo Correspondent Bank","country":"US","bic":null},"bank_processing_status":null,"extended_tracking_status":null,"amount":{"value":1500.5,"currency":"USD"},"currency":"USD","fees":[],"payment_date":"2026-10-01","bank_reference":null,"chips_ssn":null,"details":[]}],"waiting_at":null,"free":null,"corrections_remaining":3}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `read_only_credential`: Read-only key or connection.","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."}},"read_only_credential":{"summary":"Read-only key or connection","value":{"type":"https://uetr.ai/docs/api/errors#read_only_credential","title":"Read-only key or connection","status":403,"code":"read_only_credential","detail":"Read-only key or connection."}}}}}},"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."}}}}}},"409":{"description":"`active_transfer_limit`: Active transfer limit reached. `subscription_required`: Active subscription required. `demo_transfer`: The demo transfer cannot be changed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"active_transfer_limit":{"summary":"Active transfer limit reached","value":{"type":"https://uetr.ai/docs/api/errors#active_transfer_limit","title":"Active transfer limit reached","status":409,"code":"active_transfer_limit","detail":"Active transfer limit reached."}},"subscription_required":{"summary":"Active subscription required","value":{"type":"https://uetr.ai/docs/api/errors#subscription_required","title":"Active subscription required","status":409,"code":"subscription_required","detail":"Active subscription required."}},"demo_transfer":{"summary":"The demo transfer cannot be changed","value":{"type":"https://uetr.ai/docs/api/errors#demo_transfer","title":"The demo transfer cannot be changed","status":409,"code":"demo_transfer","detail":"The demo transfer cannot be changed."}}}}}},"413":{"description":"`request_too_large`: Request too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"request_too_large":{"summary":"Request too large","value":{"type":"https://uetr.ai/docs/api/errors#request_too_large","title":"Request too large","status":413,"code":"request_too_large","detail":"Request too large."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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. `machine_writes_disabled`: Changes are switched off.","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."}},"machine_writes_disabled":{"summary":"Changes are switched off","value":{"type":"https://uetr.ai/docs/api/errors#machine_writes_disabled","title":"Changes are switched off","status":503,"code":"machine_writes_disabled","detail":"Changes are switched off."}}}}}}},"x-mcp-tool":"restore_transfer","x-mcp-annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}},"/transfers/{uetr}/share-link":{"get":{"operationId":"get_share_link","summary":"Get a transfer's share link","description":"Get the link to a transfer's public status page, the page the website shares. Anyone with the link can open the page and, while the transfer is still being checked, sign up for its email alerts. The link stays the same for the life of the transfer, so share it only with people who should follow it. Reading changes nothing.","tags":["Transfers"],"security":[{"apiKey":[]}],"parameters":[{"name":"uetr","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$","description":"The transfer's UETR."}},{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Get a transfer's share link","content":{"application/json":{"schema":{"type":"object","properties":{"uetr":{"type":"string"},"url":{"type":"string","description":"The public status page."}},"required":["uetr","url"],"additionalProperties":false},"example":{"uetr":"eb6305c9-1f7f-49de-aed0-16487c27b42d","url":"https://uetr.ai/r/4c9e2a7f1b3d5e6a8c0f2b4d6e8a1c3e"}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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.","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.","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_share_link","x-mcp-annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}},"/transfers/{uetr}/watchers":{"get":{"operationId":"get_watcher_count","summary":"Count the people following a transfer","description":"Count how many people follow a transfer's updates by email: those who receive its email alerts through its share link or payment record link, from sign-ups they confirmed and have not stopped, each address once. An archived transfer sends no alerts, so it counts none. It never returns their addresses, and alert sign-ups are made and stopped only by each person. Reading changes nothing.","tags":["Transfers"],"security":[{"apiKey":[]}],"parameters":[{"name":"uetr","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$","description":"The transfer's UETR."}},{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Count the people following a transfer","content":{"application/json":{"schema":{"type":"object","properties":{"uetr":{"type":"string"},"watchers":{"type":"integer","description":"How many people receive the alerts."}},"required":["uetr","watchers"],"additionalProperties":false},"example":{"uetr":"eb6305c9-1f7f-49de-aed0-16487c27b42d","watchers":2}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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.","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.","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_watcher_count","x-mcp-annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}},"/webhooks":{"get":{"operationId":"list_webhook_endpoints","summary":"List webhook endpoints","description":"List the account's webhook endpoints with their status and events, oldest first. Addresses show only their host and a masked path, and signing secrets are never returned. Only the account owner's API keys and connected apps can read webhooks. Reading changes nothing.","tags":["Webhooks"],"security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"List webhook endpoints","content":{"application/json":{"schema":{"type":"object","properties":{"endpoints":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"url":{"type":"string","description":"The address's host and a masked path. The full address is never shown."},"destination":{"type":"string","enum":["json","slack","teams"],"description":"json: signed JSON. slack and teams: a readable message for a Slack or Microsoft Teams incoming webhook."},"events":{"type":"array","items":{"type":"string","enum":["status_changed","final_state","checks_ended"]}},"status":{"type":"string","enum":["pending","active","paused"],"description":"pending: waiting for the account owner to confirm it on the website; until then it receives test events only. active: receiving events. paused: deliveries stopped after sustained failures; a test event that succeeds resumes it."},"paused_at":{"type":["string","null"]},"created_at":{"type":"string"},"created_by":{"type":"string","enum":["website","api"],"description":"website: added on the website. api: added by an API key or a connected app."},"api_version":{"type":"string"}},"required":["id","url","destination","events","status","paused_at","created_at","created_by","api_version"],"additionalProperties":false}}},"required":["endpoints"],"additionalProperties":false},"example":{"endpoints":[{"id":"8e2c4a6b-0d3f-4e7a-9b1c-5f8d2a4c6e0b","url":"hooks.example.com/••••","destination":"json","events":["status_changed","final_state","checks_ended"],"status":"active","paused_at":null,"created_at":"2026-10-14T08:40:00.000Z","created_by":"website","api_version":"2026-10-14"},{"id":"3b1f8c2e-6a4d-4f5e-9c7b-2d8e1a0f4b6c","url":"hooks.slack.com/services/••••","destination":"slack","events":["status_changed"],"status":"active","paused_at":null,"created_at":"2026-10-14T09:35:00.000Z","created_by":"api","api_version":"2026-10-14"}]}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `not_permitted`: Not permitted.","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."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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.","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":"list_webhook_endpoints","x-mcp-annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"x-owner-only":true},"post":{"operationId":"create_webhook_endpoint","summary":"Add a webhook endpoint","description":"Ask to send the account's transfer events to an HTTPS address: your own receiver, or a Slack or Microsoft Teams incoming webhook, which gets a readable message. The endpoint starts pending: it receives only test events, on a sample transfer, until the account owner confirms it on the website, and the owner is normally notified by email. The signing secret is returned once, here; deliveries carry Standard Webhooks headers signed with it. Only the account owner's API keys and connected apps can add endpoints.","tags":["Webhooks"],"security":[{"apiKey":[]}],"parameters":[{"$ref":"#/components/parameters/Version"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"url":{"type":"string","maxLength":2048,"description":"The full HTTPS address. It must use a domain name and the standard port."},"events":{"type":"array","items":{"type":"string","enum":["status_changed","final_state","checks_ended"]},"minItems":1,"maxItems":3,"description":"The events to send. Defaults to all of them."}},"required":["url"]},"examples":{"example_1":{"summary":"Send status changes to a Slack channel","value":{"url":"https://hooks.slack.com/services/T000/B000/XXXX","events":["status_changed"]}}}}}},"responses":{"200":{"description":"Add a webhook endpoint","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","const":"pending_owner_confirmation"},"endpoint":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"url":{"type":"string","description":"The address's host and a masked path. The full address is never shown."},"destination":{"type":"string","enum":["json","slack","teams"],"description":"json: signed JSON. slack and teams: a readable message for a Slack or Microsoft Teams incoming webhook."},"events":{"type":"array","items":{"type":"string","enum":["status_changed","final_state","checks_ended"]}},"status":{"type":"string","enum":["pending","active","paused"],"description":"pending: waiting for the account owner to confirm it on the website; until then it receives test events only. active: receiving events. paused: deliveries stopped after sustained failures; a test event that succeeds resumes it."},"paused_at":{"type":["string","null"]},"created_at":{"type":"string"},"created_by":{"type":"string","enum":["website","api"],"description":"website: added on the website. api: added by an API key or a connected app."},"api_version":{"type":"string"}},"required":["id","url","destination","events","status","paused_at","created_at","created_by","api_version"],"additionalProperties":false},"signing_secret":{"type":"string","description":"The secret that signs every delivery, starting whsec_. It is shown only now: store it in the receiver's secret settings."},"request":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["team_invite","record_share","webhook_endpoint"],"description":"team_invite: an invitation to the team. record_share: a payment record link. webhook_endpoint: a webhook endpoint that receives status changes."},"status":{"type":"string","enum":["pending","confirmed","declined","expired"],"description":"pending: waiting for the account owner. confirmed: the owner approved it and it took effect. declined: the owner refused it. expired: nobody answered within seven days, or a later request for the same transfer with different settings replaced it."},"created_at":{"type":"string"},"expires_at":{"type":"string"},"decided_at":{"type":["string","null"]},"invite_email":{"type":["string","null"],"description":"For a team invite: the address to invite."},"uetr":{"type":["string","null"],"description":"For a record share: the transfer's UETR."},"record_url":{"type":["string","null"],"description":"For a confirmed record share: the payment record link, while the record still has that link. Null otherwise."},"endpoint_url":{"type":["string","null"],"description":"For a webhook endpoint: its host and a masked path. Null otherwise."}},"required":["id","kind","status","created_at","expires_at","decided_at","invite_email","uetr","record_url","endpoint_url"],"additionalProperties":false},"detail":{"type":"string","description":"Plain English to pass on to the person behind the request."}},"required":["status","endpoint","signing_secret","request","detail"],"additionalProperties":false},"example":{"status":"pending_owner_confirmation","request":{"id":"4c7e1a3b-8d2f-4b6e-a9c5-3f6b9e2d5a8c","kind":"webhook_endpoint","status":"pending","created_at":"2026-10-14T09:35:00.000Z","expires_at":"2026-10-21T09:35:00.000Z","decided_at":null,"invite_email":null,"uetr":null,"record_url":null,"endpoint_url":"hooks.slack.com/services/••••"},"detail":"The account owner must confirm the webhook endpoint hooks.slack.com/services/•••• on the website before it takes effect. They have been notified by email.","endpoint":{"id":"3b1f8c2e-6a4d-4f5e-9c7b-2d8e1a0f4b6c","url":"hooks.slack.com/services/••••","destination":"slack","events":["status_changed"],"status":"pending","paused_at":null,"created_at":"2026-10-14T09:35:00.000Z","created_by":"api","api_version":"2026-10-14"},"signing_secret":"whsec_AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="}}}},"400":{"description":"`credential_in_url`: API key sent in the URL. `invalid_request`: Invalid request. `unsupported_version`: Unsupported API version. `destination_not_allowed`: Webhook address not accepted.","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."}},"destination_not_allowed":{"summary":"Webhook address not accepted","value":{"type":"https://uetr.ai/docs/api/errors#destination_not_allowed","title":"Webhook address not accepted","status":400,"code":"destination_not_allowed","detail":"Webhook address not accepted."}}}}}},"401":{"description":"`invalid_credential`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `read_only_credential`: Read-only key or connection. `not_permitted`: Not permitted.","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."}},"read_only_credential":{"summary":"Read-only key or connection","value":{"type":"https://uetr.ai/docs/api/errors#read_only_credential","title":"Read-only key or connection","status":403,"code":"read_only_credential","detail":"Read-only key or connection."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"409":{"description":"`endpoint_exists`: Webhook address already registered. `endpoint_limit`: Webhook endpoint limit reached.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"endpoint_exists":{"summary":"Webhook address already registered","value":{"type":"https://uetr.ai/docs/api/errors#endpoint_exists","title":"Webhook address already registered","status":409,"code":"endpoint_exists","detail":"Webhook address already registered."}},"endpoint_limit":{"summary":"Webhook endpoint limit reached","value":{"type":"https://uetr.ai/docs/api/errors#endpoint_limit","title":"Webhook endpoint limit reached","status":409,"code":"endpoint_limit","detail":"Webhook endpoint limit reached."}}}}}},"413":{"description":"`request_too_large`: Request too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"request_too_large":{"summary":"Request too large","value":{"type":"https://uetr.ai/docs/api/errors#request_too_large","title":"Request too large","status":413,"code":"request_too_large","detail":"Request too large."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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. `machine_writes_disabled`: Changes are switched off.","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."}},"machine_writes_disabled":{"summary":"Changes are switched off","value":{"type":"https://uetr.ai/docs/api/errors#machine_writes_disabled","title":"Changes are switched off","status":503,"code":"machine_writes_disabled","detail":"Changes are switched off."}}}}}}},"x-mcp-tool":"create_webhook_endpoint","x-mcp-annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"x-owner-only":true}},"/webhooks/{id}":{"delete":{"operationId":"delete_webhook_endpoint","summary":"Delete a webhook endpoint","description":"Delete a webhook endpoint. Nothing more is sent to it, its delivery log is removed, and a confirmation still waiting for the account owner is closed. This cannot be undone. Only the account owner's API keys and connected apps can delete webhooks.","tags":["Webhooks"],"security":[{"apiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The webhook endpoint's id."}},{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Delete a webhook endpoint","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"deleted":{"type":"boolean","const":true}},"required":["id","deleted"],"additionalProperties":false},"example":{"id":"3b1f8c2e-6a4d-4f5e-9c7b-2d8e1a0f4b6c","deleted":true}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `read_only_credential`: Read-only key or connection. `not_permitted`: Not permitted.","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."}},"read_only_credential":{"summary":"Read-only key or connection","value":{"type":"https://uetr.ai/docs/api/errors#read_only_credential","title":"Read-only key or connection","status":403,"code":"read_only_credential","detail":"Read-only key or connection."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"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.","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. `machine_writes_disabled`: Changes are switched off.","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."}},"machine_writes_disabled":{"summary":"Changes are switched off","value":{"type":"https://uetr.ai/docs/api/errors#machine_writes_disabled","title":"Changes are switched off","status":503,"code":"machine_writes_disabled","detail":"Changes are switched off."}}}}}}},"x-mcp-tool":"delete_webhook_endpoint","x-mcp-annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"x-owner-only":true},"get":{"operationId":"get_webhook_endpoint","summary":"Get a webhook endpoint","description":"Read one webhook endpoint: its masked address, status and events. The signing secret is never returned. Only the account owner's API keys and connected apps can read webhooks. Reading changes nothing.","tags":["Webhooks"],"security":[{"apiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The webhook endpoint's id."}},{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Get a webhook endpoint","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"url":{"type":"string","description":"The address's host and a masked path. The full address is never shown."},"destination":{"type":"string","enum":["json","slack","teams"],"description":"json: signed JSON. slack and teams: a readable message for a Slack or Microsoft Teams incoming webhook."},"events":{"type":"array","items":{"type":"string","enum":["status_changed","final_state","checks_ended"]}},"status":{"type":"string","enum":["pending","active","paused"],"description":"pending: waiting for the account owner to confirm it on the website; until then it receives test events only. active: receiving events. paused: deliveries stopped after sustained failures; a test event that succeeds resumes it."},"paused_at":{"type":["string","null"]},"created_at":{"type":"string"},"created_by":{"type":"string","enum":["website","api"],"description":"website: added on the website. api: added by an API key or a connected app."},"api_version":{"type":"string"}},"required":["id","url","destination","events","status","paused_at","created_at","created_by","api_version"],"additionalProperties":false},"example":{"id":"3b1f8c2e-6a4d-4f5e-9c7b-2d8e1a0f4b6c","url":"hooks.slack.com/services/••••","destination":"slack","events":["status_changed"],"status":"active","paused_at":null,"created_at":"2026-10-14T09:35:00.000Z","created_by":"api","api_version":"2026-10-14"}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `not_permitted`: Not permitted.","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."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"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.","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.","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_webhook_endpoint","x-mcp-annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"x-owner-only":true},"patch":{"operationId":"update_webhook_endpoint","summary":"Change a webhook endpoint's events","description":"Choose which events a webhook endpoint receives. The address is changed with change_webhook_endpoint_url instead, and the account owner confirms the new one. Only the account owner's API keys and connected apps can change webhooks.","tags":["Webhooks"],"security":[{"apiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The webhook endpoint's id."}},{"$ref":"#/components/parameters/Version"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"events":{"type":"array","items":{"type":"string","enum":["status_changed","final_state","checks_ended"]},"minItems":1,"maxItems":3,"description":"status_changed: a transfer's status changed. final_state: a transfer reached a final state, such as credited or returned. checks_ended: automatic checks on a transfer ended before a final state, including when it was archived. A delivered event's type is the name with transfer. in front, for example transfer.status_changed."}},"required":["events"]},"examples":{"example_1":{"summary":"Only send final states","value":{"events":["final_state"]}}}}}},"responses":{"200":{"description":"Change a webhook endpoint's events","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"url":{"type":"string","description":"The address's host and a masked path. The full address is never shown."},"destination":{"type":"string","enum":["json","slack","teams"],"description":"json: signed JSON. slack and teams: a readable message for a Slack or Microsoft Teams incoming webhook."},"events":{"type":"array","items":{"type":"string","enum":["status_changed","final_state","checks_ended"]}},"status":{"type":"string","enum":["pending","active","paused"],"description":"pending: waiting for the account owner to confirm it on the website; until then it receives test events only. active: receiving events. paused: deliveries stopped after sustained failures; a test event that succeeds resumes it."},"paused_at":{"type":["string","null"]},"created_at":{"type":"string"},"created_by":{"type":"string","enum":["website","api"],"description":"website: added on the website. api: added by an API key or a connected app."},"api_version":{"type":"string"}},"required":["id","url","destination","events","status","paused_at","created_at","created_by","api_version"],"additionalProperties":false},"example":{"id":"3b1f8c2e-6a4d-4f5e-9c7b-2d8e1a0f4b6c","url":"hooks.slack.com/services/••••","destination":"slack","events":["final_state"],"status":"active","paused_at":null,"created_at":"2026-10-14T09:35:00.000Z","created_by":"api","api_version":"2026-10-14"}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `read_only_credential`: Read-only key or connection. `not_permitted`: Not permitted.","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."}},"read_only_credential":{"summary":"Read-only key or connection","value":{"type":"https://uetr.ai/docs/api/errors#read_only_credential","title":"Read-only key or connection","status":403,"code":"read_only_credential","detail":"Read-only key or connection."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"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."}}}}}},"413":{"description":"`request_too_large`: Request too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"request_too_large":{"summary":"Request too large","value":{"type":"https://uetr.ai/docs/api/errors#request_too_large","title":"Request too large","status":413,"code":"request_too_large","detail":"Request too large."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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. `machine_writes_disabled`: Changes are switched off.","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."}},"machine_writes_disabled":{"summary":"Changes are switched off","value":{"type":"https://uetr.ai/docs/api/errors#machine_writes_disabled","title":"Changes are switched off","status":503,"code":"machine_writes_disabled","detail":"Changes are switched off."}}}}}}},"x-mcp-tool":"update_webhook_endpoint","x-mcp-annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"x-owner-only":true}},"/webhooks/{id}/deliveries":{"get":{"operationId":"list_webhook_deliveries","summary":"List a webhook endpoint's deliveries","description":"List the most recent deliveries to a webhook endpoint, newest first, with each attempt count and the receiver's last HTTP status code. Deliveries are kept for 30 days and payloads are never returned. Only the account owner's API keys and connected apps can read webhooks. Reading changes nothing.","tags":["Webhooks"],"security":[{"apiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The webhook endpoint's id."}},{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"List a webhook endpoint's deliveries","content":{"application/json":{"schema":{"type":"object","properties":{"deliveries":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"event_id":{"type":"string","format":"uuid","description":"The webhook-id header the receiver saw."},"event_type":{"type":"string","enum":["status_changed","final_state","checks_ended","test"]},"status":{"type":"string","enum":["pending","delivered","failed","dropped"],"description":"pending: waiting to be sent or retried. delivered: the receiver answered with a 2xx status. failed: every attempt failed; a test event is tried once and never retried. dropped: removed before sending, for example after an address change."},"attempts":{"type":"integer"},"last_status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The receiver's last HTTP status code, or null if it never answered."},"last_attempt_at":{"type":["string","null"]},"created_at":{"type":"string"}},"required":["id","event_id","event_type","status","attempts","last_status_code","last_attempt_at","created_at"],"additionalProperties":false}}},"required":["deliveries"],"additionalProperties":false},"example":{"deliveries":[{"id":"5d9b3f7a-2e6c-4a1d-8f4b-7c0e3a6d9b2f","event_id":"a1c3e5f7-9b2d-4f6a-8c0e-2b4d6f8a0c3e","event_type":"test","status":"delivered","attempts":1,"last_status_code":200,"last_attempt_at":"2026-10-14T09:36:04.000Z","created_at":"2026-10-14T09:36:00.000Z"}]}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `not_permitted`: Not permitted.","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."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"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.","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.","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":"list_webhook_deliveries","x-mcp-annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"x-owner-only":true}},"/webhooks/{id}/rotate-secret":{"post":{"operationId":"rotate_webhook_secret","summary":"Rotate a webhook signing secret","description":"Replace a webhook endpoint's signing secret, for example after it was exposed. The new secret is returned once, here. For the next 24 hours every delivery carries two signatures, one with the new secret and one with the previous secret, so the receiver keeps accepting requests while it is updated; after that only the new secret signs. Rotating again within those 24 hours ends the oldest secret at once: only the secret in use at that moment keeps signing beside the new one. The address, events and status do not change. Only the account owner's API keys and connected apps can rotate a secret.","tags":["Webhooks"],"security":[{"apiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The webhook endpoint's id."}},{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Rotate a webhook signing secret","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"url":{"type":"string","description":"The address's host and a masked path. The full address is never shown."},"destination":{"type":"string","enum":["json","slack","teams"],"description":"json: signed JSON. slack and teams: a readable message for a Slack or Microsoft Teams incoming webhook."},"events":{"type":"array","items":{"type":"string","enum":["status_changed","final_state","checks_ended"]}},"status":{"type":"string","enum":["pending","active","paused"],"description":"pending: waiting for the account owner to confirm it on the website; until then it receives test events only. active: receiving events. paused: deliveries stopped after sustained failures; a test event that succeeds resumes it."},"paused_at":{"type":["string","null"]},"created_at":{"type":"string"},"created_by":{"type":"string","enum":["website","api"],"description":"website: added on the website. api: added by an API key or a connected app."},"api_version":{"type":"string"}},"required":["id","url","destination","events","status","paused_at","created_at","created_by","api_version"],"additionalProperties":false},"signing_secret":{"type":"string","description":"The new secret that signs every delivery, starting whsec_. It is shown only now: store it in the receiver's secret settings."},"previous_secret_expires_at":{"type":"string","description":"When the previous secret stops signing deliveries: 24 hours after the rotation."}},"required":["endpoint","signing_secret","previous_secret_expires_at"],"additionalProperties":false},"example":{"endpoint":{"id":"3b1f8c2e-6a4d-4f5e-9c7b-2d8e1a0f4b6c","url":"hooks.slack.com/services/••••","destination":"slack","events":["status_changed"],"status":"active","paused_at":null,"created_at":"2026-10-14T09:35:00.000Z","created_by":"api","api_version":"2026-10-14"},"signing_secret":"whsec_BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB=","previous_secret_expires_at":"2026-10-15T09:40:00.000Z"}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `read_only_credential`: Read-only key or connection. `not_permitted`: Not permitted.","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."}},"read_only_credential":{"summary":"Read-only key or connection","value":{"type":"https://uetr.ai/docs/api/errors#read_only_credential","title":"Read-only key or connection","status":403,"code":"read_only_credential","detail":"Read-only key or connection."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"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."}}}}}},"413":{"description":"`request_too_large`: Request too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"request_too_large":{"summary":"Request too large","value":{"type":"https://uetr.ai/docs/api/errors#request_too_large","title":"Request too large","status":413,"code":"request_too_large","detail":"Request too large."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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. `machine_writes_disabled`: Changes are switched off.","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."}},"machine_writes_disabled":{"summary":"Changes are switched off","value":{"type":"https://uetr.ai/docs/api/errors#machine_writes_disabled","title":"Changes are switched off","status":503,"code":"machine_writes_disabled","detail":"Changes are switched off."}}}}}}},"x-mcp-tool":"rotate_webhook_secret","x-mcp-annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"x-owner-only":true}},"/webhooks/{id}/test":{"post":{"operationId":"send_webhook_test","summary":"Send a test event","description":"Queue one test event to a webhook endpoint, about a sample transfer and never one of the account's own. It is sent within about a minute; read the endpoint's deliveries to see the receiver's answer. Pending endpoints can receive test events. Only the account owner's API keys and connected apps can send tests.","tags":["Webhooks"],"security":[{"apiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The webhook endpoint's id."}},{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Send a test event","content":{"application/json":{"schema":{"type":"object","properties":{"delivery":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"event_id":{"type":"string","format":"uuid","description":"The webhook-id header the receiver saw."},"event_type":{"type":"string","enum":["status_changed","final_state","checks_ended","test"]},"status":{"type":"string","enum":["pending","delivered","failed","dropped"],"description":"pending: waiting to be sent or retried. delivered: the receiver answered with a 2xx status. failed: every attempt failed; a test event is tried once and never retried. dropped: removed before sending, for example after an address change."},"attempts":{"type":"integer"},"last_status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The receiver's last HTTP status code, or null if it never answered."},"last_attempt_at":{"type":["string","null"]},"created_at":{"type":"string"}},"required":["id","event_id","event_type","status","attempts","last_status_code","last_attempt_at","created_at"],"additionalProperties":false}},"required":["delivery"],"additionalProperties":false},"example":{"delivery":{"id":"5d9b3f7a-2e6c-4a1d-8f4b-7c0e3a6d9b2f","event_id":"a1c3e5f7-9b2d-4f6a-8c0e-2b4d6f8a0c3e","event_type":"test","status":"pending","attempts":0,"last_status_code":null,"last_attempt_at":null,"created_at":"2026-10-14T09:36:00.000Z"}}}}},"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`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `read_only_credential`: Read-only key or connection. `not_permitted`: Not permitted.","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."}},"read_only_credential":{"summary":"Read-only key or connection","value":{"type":"https://uetr.ai/docs/api/errors#read_only_credential","title":"Read-only key or connection","status":403,"code":"read_only_credential","detail":"Read-only key or connection."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"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."}}}}}},"413":{"description":"`request_too_large`: Request too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"request_too_large":{"summary":"Request too large","value":{"type":"https://uetr.ai/docs/api/errors#request_too_large","title":"Request too large","status":413,"code":"request_too_large","detail":"Request too large."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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. `machine_writes_disabled`: Changes are switched off.","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."}},"machine_writes_disabled":{"summary":"Changes are switched off","value":{"type":"https://uetr.ai/docs/api/errors#machine_writes_disabled","title":"Changes are switched off","status":503,"code":"machine_writes_disabled","detail":"Changes are switched off."}}}}}}},"x-mcp-tool":"send_webhook_test","x-mcp-annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"x-owner-only":true}},"/webhooks/{id}/url":{"patch":{"operationId":"change_webhook_endpoint_url","summary":"Change a webhook endpoint's address","description":"Send a webhook endpoint's events to a new HTTPS address, for example after the receiver moved. The endpoint keeps its id, events and signing secret, and returns to pending: until the account owner confirms the new address on the website it receives only test events, and the owner is normally notified by email. Deliveries still waiting for the old address are dropped. If the owner declines, or nobody confirms within 7 days, the endpoint is removed. Sending the address an endpoint is already waiting on answers with its waiting request again. A change counts toward the hourly limit on adding endpoints. Only the account owner's API keys and connected apps can change webhooks.","tags":["Webhooks"],"security":[{"apiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The webhook endpoint's id."}},{"$ref":"#/components/parameters/Version"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"url":{"type":"string","maxLength":2048,"description":"The full HTTPS address. It must use a domain name and the standard port."}},"required":["url"]},"examples":{"example_1":{"summary":"Move an endpoint to a new receiver","value":{"url":"https://receiver.example.com/hooks/uetr"}}}}}},"responses":{"200":{"description":"Change a webhook endpoint's address","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","const":"pending_owner_confirmation"},"endpoint":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"url":{"type":"string","description":"The address's host and a masked path. The full address is never shown."},"destination":{"type":"string","enum":["json","slack","teams"],"description":"json: signed JSON. slack and teams: a readable message for a Slack or Microsoft Teams incoming webhook."},"events":{"type":"array","items":{"type":"string","enum":["status_changed","final_state","checks_ended"]}},"status":{"type":"string","enum":["pending","active","paused"],"description":"pending: waiting for the account owner to confirm it on the website; until then it receives test events only. active: receiving events. paused: deliveries stopped after sustained failures; a test event that succeeds resumes it."},"paused_at":{"type":["string","null"]},"created_at":{"type":"string"},"created_by":{"type":"string","enum":["website","api"],"description":"website: added on the website. api: added by an API key or a connected app."},"api_version":{"type":"string"}},"required":["id","url","destination","events","status","paused_at","created_at","created_by","api_version"],"additionalProperties":false},"request":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["team_invite","record_share","webhook_endpoint"],"description":"team_invite: an invitation to the team. record_share: a payment record link. webhook_endpoint: a webhook endpoint that receives status changes."},"status":{"type":"string","enum":["pending","confirmed","declined","expired"],"description":"pending: waiting for the account owner. confirmed: the owner approved it and it took effect. declined: the owner refused it. expired: nobody answered within seven days, or a later request for the same transfer with different settings replaced it."},"created_at":{"type":"string"},"expires_at":{"type":"string"},"decided_at":{"type":["string","null"]},"invite_email":{"type":["string","null"],"description":"For a team invite: the address to invite."},"uetr":{"type":["string","null"],"description":"For a record share: the transfer's UETR."},"record_url":{"type":["string","null"],"description":"For a confirmed record share: the payment record link, while the record still has that link. Null otherwise."},"endpoint_url":{"type":["string","null"],"description":"For a webhook endpoint: its host and a masked path. Null otherwise."}},"required":["id","kind","status","created_at","expires_at","decided_at","invite_email","uetr","record_url","endpoint_url"],"additionalProperties":false},"detail":{"type":"string","description":"Plain English to pass on to the person behind the request."}},"required":["status","endpoint","request","detail"],"additionalProperties":false},"example":{"status":"pending_owner_confirmation","request":{"id":"6e2a9c4d-1b7f-4e3a-8d5c-9f0b2e4a6c8d","kind":"webhook_endpoint","status":"pending","created_at":"2026-10-15T09:40:00.000Z","expires_at":"2026-10-22T09:40:00.000Z","decided_at":null,"invite_email":null,"uetr":null,"record_url":null,"endpoint_url":"receiver.example.com/••••"},"detail":"The account owner must confirm the webhook endpoint receiver.example.com/•••• on the website before it takes effect. They have been notified by email.","endpoint":{"id":"3b1f8c2e-6a4d-4f5e-9c7b-2d8e1a0f4b6c","url":"receiver.example.com/••••","destination":"json","events":["status_changed"],"status":"pending","paused_at":null,"created_at":"2026-10-14T09:35:00.000Z","created_by":"api","api_version":"2026-10-14"}}}}},"400":{"description":"`credential_in_url`: API key sent in the URL. `invalid_request`: Invalid request. `unsupported_version`: Unsupported API version. `destination_not_allowed`: Webhook address not accepted.","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."}},"destination_not_allowed":{"summary":"Webhook address not accepted","value":{"type":"https://uetr.ai/docs/api/errors#destination_not_allowed","title":"Webhook address not accepted","status":400,"code":"destination_not_allowed","detail":"Webhook address not accepted."}}}}}},"401":{"description":"`invalid_credential`: Invalid key or token.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"invalid_credential":{"summary":"Invalid key or token","value":{"type":"https://uetr.ai/docs/api/errors#invalid_credential","title":"Invalid key or token","status":401,"code":"invalid_credential","detail":"Invalid key or token."}}}}}},"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. `read_only_credential`: Read-only key or connection. `not_permitted`: Not permitted.","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."}},"read_only_credential":{"summary":"Read-only key or connection","value":{"type":"https://uetr.ai/docs/api/errors#read_only_credential","title":"Read-only key or connection","status":403,"code":"read_only_credential","detail":"Read-only key or connection."}},"not_permitted":{"summary":"Not permitted","value":{"type":"https://uetr.ai/docs/api/errors#not_permitted","title":"Not permitted","status":403,"code":"not_permitted","detail":"Not permitted."}}}}}},"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."}}}}}},"409":{"description":"`endpoint_exists`: Webhook address already registered.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"endpoint_exists":{"summary":"Webhook address already registered","value":{"type":"https://uetr.ai/docs/api/errors#endpoint_exists","title":"Webhook address already registered","status":409,"code":"endpoint_exists","detail":"Webhook address already registered."}}}}}},"413":{"description":"`request_too_large`: Request too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"request_too_large":{"summary":"Request too large","value":{"type":"https://uetr.ai/docs/api/errors#request_too_large","title":"Request too large","status":413,"code":"request_too_large","detail":"Request too large."}}}}}},"429":{"description":"`rate_limited`: Too many requests.","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. `machine_writes_disabled`: Changes are switched off.","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."}},"machine_writes_disabled":{"summary":"Changes are switched off","value":{"type":"https://uetr.ai/docs/api/errors#machine_writes_disabled","title":"Changes are switched off","status":503,"code":"machine_writes_disabled","detail":"Changes are switched off."}}}}}}},"x-mcp-tool":"change_webhook_endpoint_url","x-mcp-annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true},"x-owner-only":true}}},"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"An API key from the AI and API page on uetr.ai, sent only in the Authorization header. A key sent in a URL is revoked."}},"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.","schema":{"type":"string","enum":["2026-10-14"]}}},"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","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","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"}}}}}}}}}