Problem format
Both the Payments API and the Checkout API return errors as RFC 9457application/problem+json
bodies:
type is the URN to match against in code — never parse detail, which is
a human-readable string that can change. Some errors add extension members
to the body:
retry_after is not a body field — when RadiumOne wants you to wait
before retrying, it’s the Retry-After HTTP response header (seconds),
most commonly on 429.
Validation error details
Most400 urn:radiumone:gateway:validation-error responses add an errors
array alongside detail — one entry per invalid field:
Rely on
pointer/parameter and code to drive logic — not the wording of
either detail (the top-level one or a field’s own), which can change.
errors is present only when the request failed schema validation —
absent on other 400s. It’s present when the request itself doesn’t match
the endpoint’s schema: a missing or wrongly typed body field, a value that
breaks a format or length rule, or an invalid query or path parameter. It’s
absent when the 400 comes from a business check that runs after schema
validation passed — same URN, same status, no errors array. Always handle
errors being absent rather than assuming every 400 gateway:validation-error carries one.
HTTP status guide
Retry rules
Any 2xx response is a result you must branch onstatus — never on response_code (that’s the verbatim host/acquirer code; useful for support tickets, not for your app logic).
In short: timeouts,
5xx, and PENDING are retried with the same key;
a decline or a validation/business error is not retried with the
same key — fix the input, or start a genuinely new attempt with a new key.
A 409 urn:radiumone:transaction:idempotency-body-mismatch means the key was
reused with a different body — it is never safe to retry as-is.
See Handle timeouts and unknown outcomes
and Retry when the service is unavailable
for the full walkthroughs.
Errors from other products
3D Secure errors
3D Secure statuses, SDK errors, and gateway errors have their own full tables — see Authentication results, the single reference for that family. This page doesn’t duplicate them. If you’re bringing your own 3DS provider’s evidence, see Handle 3DS failures with your own provider.Checkout API errors
The Checkout API (Hosted checkout) has its own error pages — see Checkout API errors for the fullcheckout:*/session:*/security:* URN catalog, or the Hosted checkout Errors section for outcomes and redirect/embedded signals.
Rate limits
RadiumOne doesn’t publish specific rate-limit numbers. If you’re consistently hitting429 urn:radiumone:rate-limit-exceeded, retry after the response’s
Retry-After header, then contact support to discuss
your integration’s traffic pattern.
Next steps
Payment operation errors
Auth, validation, idempotency, transaction-state, and reversal errors.
Payment method errors
Loyalty, discovery, routing, and token errors.
Decline codes
How a declined payment appears, and how to handle it — that’s not an error.
Handle failures
Find the right recovery page by symptom.