Skip to main content
Slash Payment Processing is in beta and not enabled for all accounts. Contact support@joinslash.com to get access.

1. Create a session

Call POST /checkout-session with your API key. amount is in cents; currency supports usd. The X-Idempotency-Key header is required — retrying with the same key returns the existing session instead of creating a duplicate.
The response includes a hosted url:

2. Embed it

Install the SDK and mount the url. Point fetchUrl at your own backend endpoint that creates the session, so your API key stays server-side.

3. Fulfill on the webhook

Fulfill the order when checkout_session.completed arrives. Your customMetadata is echoed back on the event body:
Anyone who discovers your webhook URL can POST to it, so verify the slash-webhook-signature header before fulfilling. Every delivery is signed over the raw request body with Slash’s public RSA key — see webhook signing for details:
Deliveries that aren’t acknowledged with a 2xx are retried a limited number of times before the notification is marked failed, so make fulfillment idempotent — dedupe on eventId (or your own customMetadata key) — and don’t rely on webhooks alone: GET /checkout-session/{id} returning status: "complete" is equivalent to the webhook and catches any missed deliveries. Full SDK options are in the checkout-js reference.