payment_failed
HTTP 402 title: Payment failed
What it means
The charge itself did not settle: declined, authentication required, insufficient funds, or a processor timeout. Not a gate — there is nothing to solve and nothing to set up.
What it carries
- No
challenges. - No
WWW-Authenticateheader at all — no scheme names a charge that simply failed, so there is no protection space to challenge into. An operator MUST NOT emit one here. hint— says whether the outcome was definitive or unknown.
What to do next
Read hint. A definitive failure means no money moved: the human can fix the payment method through payment_setup, and the call may be retried. An unknown outcome means the processor never confirmed: verify the order’s paid state through the operator’s own queries before retrying, so a lost response cannot double-charge.
On the wire
{
"type": "https://kiosk.tech/problems/payment_failed",
"title": "Payment failed",
"status": 402,
"detail": "… what went wrong on THIS request …",
"code": "payment_failed"
}
This page documents the RFC 9457 type URI
https://kiosk.tech/problems/payment_failed. The URI is an
identifier, not a locator a client should fetch: branch on the
document’s code member. The normative definition lives in the
error vocabulary of the
Kiosk specification (§9 of the
formal spec).