API reference

Errors

Error format and every error code.

Errors use standard HTTP status codes and a JSON body:

json
{ "error": "A payment with this reference exists with a different amount", "code": "IDEMPOTENCY_CONFLICT" }
CodeHTTPMeaning
VALIDATION_ERROR400The body is invalid; error lists each field problem.
UNAUTHORIZED401Missing or wrong API key.
INTENT_NOT_FOUND404No payment with that id / reference.
IDEMPOTENCY_CONFLICT409A payment with this purpose + reference exists with a different amount.
NOT_CANCELLABLE409Only PENDING or EXPIRED payments can be cancelled.
INVALID_TRANSACTION_ID400The Transaction ID doesn’t look like one (6–24 letters/digits after normalising).
ALREADY_VERIFIED409The payment was already verified with another Transaction ID.
NOT_CLAIMABLE409The payment is cancelled or rejected.
CLAIM_WINDOW_CLOSED410The claim window has ended.
TRANSACTION_ALREADY_CLAIMED409Another payment already claimed this Transaction ID.
TRANSACTION_ALREADY_USED409This Transaction ID already verified another payment.
LINK_NOT_FOUND404No payment link with that id or slug.
SLUG_TAKEN409Another link uses that address.
LINK_INACTIVE / LINK_EXPIRED / LINK_SOLD_OUT410The link is off, expired or reached its payment limit.
PAYER_NAME_REQUIRED / PAYER_PHONE_REQUIRED400The link asks for payer details.
—429Too many requests — see rate limits.