Skip to content
Docs menu

Endpoints

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

  • id string Required
    The checkout's ID, such as chk_BV9TkjSIsguX6RNU.

Errors

  • 404 not_found
    No checkout has that ID.
  • 409 wrong_rail
    The checkout is for crypto, so card-payment actions are unavailable.
  • 409 checkout_not_retryable
    The checkout isn't waiting on the customer or declined, or it failed on amount_out_of_range, which cannot be retried.
  • 409 no_route
    No further card-payment attempt is available. The customer can choose another way to pay.
  • 409 route_in_progress
    The 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"  }}