Skip to content
Docs menu

Endpoints

Supersede a checkout

Set a quote aside when the customer steps back to choose another way to pay.

For when the customer steps back from a quote to choose another way to pay. 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.

Works on an open or awaiting_customer checkout, or a card checkout that failed on a decline. The checkout keeps its status and stays watched until it expires, so a transfer already on its way still counts and can still be claimed. It just stops being the quote the customer is looking at. Superseding twice changes nothing.

Then create the next checkout with replaces set to this one's ID. The same coin, network and email again return this same quote, address and all, while more than two minutes of it are left, so going back and forth doesn't use up addresses. A different choice opens a new checkout and carries a link's pending payment over to it. An API payment has one live quote at a time, so a new checkout for one sets its earlier quotes aside on its own.

On a simulated business, only the quote on screen receives the simulated transfer, never a superseded one.

Path

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

Errors

  • 404 not_found
    No checkout has that ID.
  • 409 checkout_not_supersedable
    The checkout collects a remainder, or it's past waiting for the customer and funds may already be on the way.

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_GduyAoexkN1Sg8sz/supersede"
Response200 OK
{  "data": {    "id": "chk_GduyAoexkN1Sg8sz",    "kind": "checkout",    "status": "open",    "rail": "crypto",    "link_id": null,    "payment_id": "pmt_pxYW5vHfVt1xTIT2",    "amount": 4900,    "currency": "USD",    "breakdown": {      "currency": "USD",      "price": 4900,      "processing_fee": null,      "network_fee": 2,      "total": 4902    },    "crypto": {      "asset": "USDC",      "network": "polygon",      "amount": "49.00",      "address": "0xe37eE6F796f4059541AD6Bd3A74618DC6f937B31",      "payment_uri": "ethereum:0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359@137/transfer?address=0xe37eE6F796f4059541AD6Bd3A74618DC6f937B31&uint256=49000000",      "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": null,    "confirmations": {      "current": 0,      "required": 4    },    "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:27:57.616Z",    "sent_at": null,    "created_at": "2026-09-27T18:12:57.616Z",    "updated_at": "2026-09-27T18:12:57.891Z"  }}