Retry a card payment
Offer another card-payment attempt when checkout allows it.
Offers another card-payment attempt when checkout allows it. Public, like creating a checkout: the checkout's ID is all it takes. Called with your secret key, the response also has email, reporting and fee_rate_bps.
Call only when card.can_retry is true. The response returns a freshcard.payment_url and an awaiting_customer checkout. Open that URL unchanged; do not reuse a previous payment URL. The payment remains pending until it completes.
The hosted checkout handles retries for you. If you build a custom checkout, wait for any payment already in progress before offering another attempt. See card payments.
Path
idstring RequiredThe checkout's ID, such aschk_BV9TkjSIsguX6RNU.
Errors
- 404
not_foundNo checkout has that ID. - 409
wrong_railThe checkout is for crypto, so card-payment actions are unavailable. - 409
checkout_not_retryableThe checkout isn't waiting on the customer or declined, or it failed onamount_out_of_range, which cannot be retried. - 409
no_routeNo further card-payment attempt is available. The customer can choose another way to pay. - 409
route_in_progressThe customer's payment on the current secure payment page may still go through. Wait for it to finish.
Any request can also fail on its key or its body. See errors.
Request
curl -X POST "https://dash.402pay.co/api/v1/checkouts/chk_BV9TkjSIsguX6RNU/card/retry"Response200 OK
{ "data": { "id": "chk_BV9TkjSIsguX6RNU", "kind": "checkout", "status": "awaiting_customer", "rail": "card", "link_id": null, "payment_id": "pmt_wTlCzIlsyPJmYDCn", "amount": 4900, "currency": "USD", "breakdown": { "currency": "USD", "price": 4900, "processing_fee": 172, "network_fee": null, "total": 5072 }, "crypto": { "asset": "USDC", "network": "solana", "amount": "50.72", "address": "DByH4SLDQ7beybEaCy8t8p1y5fF81Dnfq1EdHyfN7Rhi", "payment_uri": "solana:DByH4SLDQ7beybEaCy8t8p1y5fF81Dnfq1EdHyfN7Rhi?amount=50.72&spl-token=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "rate": { "amount": 100, "currency": "USD" }, "received_amount": "0.00", "remaining_amount": null, "remaining_payment_uri": null, "overpaid_amount": null, "detected_network": null, "tx_hash": null, "explorer_url": null }, "card": { "payment_url": "/checkout/uu5fx45hz6/card/chk_BV9TkjSIsguX6RNU?attempt=att_example_2", "can_retry": true }, "confirmations": { "current": 0, "required": 2 }, "remainder": false, "canceled_by": null, "replaced_by": null, "failure_code": null, "review_reason": null, "success_url": "https://example.com/thanks", "expires_at": "2026-09-27T18:42:25.311Z", "sent_at": null, "created_at": "2026-09-27T18:12:25.108Z", "updated_at": "2026-09-27T18:12:25.311Z" }}