All pages

Developer docs

Retries and idempotency

View as Markdown

Every read can be repeated safely. When a change fails without an answer, for example on a timeout, the table says whether sending it again can do it twice. Where it cannot, simply send it again. Where it can, read the current state first, then decide. The API takes no idempotency key.

OperationCallSafe to repeat
Add a transferPOST /transfersYes
Archive a transferPOST /transfers/{uetr}/archiveYes
Change a webhook endpoint's addressPATCH /webhooks/{id}/urlYes
Add a webhook endpointPOST /webhooksNo: read first
Delete a transferDELETE /transfers/{uetr}Yes
Delete a webhook endpointDELETE /webhooks/{id}Yes
Invite a teammatePOST /team/membersNo: read first
Re-check a transfer nowPOST /transfers/{uetr}/recheckNo: read first
Remove a teammateDELETE /team/members/{member_id}Yes
Rename a transferPATCH /transfers/{uetr}/labelYes
Resend a team invitationPOST /team/members/{member_id}/resendNo: read first
Restore an archived transferPOST /transfers/{uetr}/restoreYes
Rotate a webhook signing secretPOST /webhooks/{id}/rotate-secretNo: read first
Send a test eventPOST /webhooks/{id}/testNo: read first
Set a transfer's check frequencyPATCH /transfers/{uetr}/check-frequencyYes
Share a payment recordPOST /transfers/{uetr}/record-shareNo: read first
Correct a transfer's detailsPATCH /transfers/{uetr}/detailsYes
Change a webhook endpoint's eventsPATCH /webhooks/{id}Yes

Adding a transfer is safe to repeat: adding a UETR the account already holds returns that transfer and uses no more of the plan. A delete or a removal that already went through changes nothing more when sent again, and answers not_found, or seat_not_active for a teammate. An add sent while the same archived transfer is being restored or deleted can be refused with transfer_archived; send it again. A refusal of the request itself, such as rate_limited, invalid_request or active_transfer_limit, means nothing was done; follow its Retry-After where there is one. temporarily_unavailable and request_failed mean the outcome is not known, as with a timeout: for a change that is not safe to repeat, read the current state before sending it again. See rate limits.