Select a plan → create session server-side → redirect to Coal checkout → success
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} />