Human checkout

Choose a plan

Select a plan → create session server-side → redirect to Coal checkout → success

1
Select plan
2
Create session
3
Coal checkout
4
Success redirect

Non-custodial · Funds go directly to merchant · ~2s confirmation on Base

// Server: create-session/route.ts

const res = await fetch(`${COAL_API_URL}/api/checkouts`, {

  method: "POST",

  headers: { "x-api-key": COAL_API_KEY },

  body: JSON.stringify({

    amount: 29.99, productName: "Pro Plan",

    redirectUrl: "https://yourapp.com/success",

  }),

})

// Client: redirect with SDK

import { CoalCheckoutButton } from "coal-react";

<CoalCheckoutButton checkoutUrl={checkoutUrl} />