title is a stable code to branch on; detail is a sentence for people and may change.
{
"type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
"title": "PaymentLink.CallbackMustBeHttps",
"status": 400,
"detail": "The callback URL must be an absolute https URL."
}
| Status | Meaning | Retry? |
|---|---|---|
400 | The request is invalid (*.Validation codes) | No: fix the request |
401 | Missing, unknown or revoked API key | No |
403 | The key can’t do this | No |
404 | No such link, order or key | No |
409 | The request conflicts with the current state (disabled gateway, inactive link, too many keys) | No, unless the state changes |
503 | Temporarily unavailable: no trustworthy price, or a deposit address couldn’t be issued | Yes, after a few seconds |
5xx | Something went wrong on our side | Yes, with backoff |
Codes you may see
| Code | Status | When |
|---|---|---|
PaymentLink.NoAllowedAssets | 400 | allowedAssets is empty |
PaymentLink.AssetNotSupported | 400 | An asset isn’t enabled on the platform |
PaymentLink.AssetNotAllowed | 400 | The payer chose a coin that isn’t on the link |
PaymentLink.AmountMustBePositive | 400 | amount is zero or negative |
PaymentLink.CallbackMustBeHttps | 400 | callbackUrl missing or not https |
PaymentLink.ReturnUrlMustBeHttps | 400 | returnUrl not https |
PaymentLink.OrderTtlOutOfRange | 400 | orderTtlMinutes outside 5–1440 |
Policy.AmountBelowMinimum | 400 | Below the platform minimum |
Policy.AmountAboveMaximum | 400 | Above the platform maximum |
Order.InvalidRefundAddress | 400 | Refund address not valid on that network |
PaymentLink.NotFound | 404 | Unknown link id |
Order.NotFound | 404 | Unknown order id |
Merchant.KeyNotFound | 404 | Unknown API key id |
PaymentLink.Inactive | 409 | The link no longer takes payments |
Merchant.Disabled | 409 | The gateway is disabled |
Merchant.TooManyKeys | 409 | 5 active keys already |
Order.PriceUnavailable | 503 | No trustworthy price right now |
Order.DepositAddressUnavailable | 503 | No deposit address right now |