Slash Payment Processing is in beta and not enabled for all accounts. Contact
support@joinslash.com to get access.
1. Create a payment intent
CallPOST /payments/payment-intent
with a legal-entity-scoped API key. Pass a
supported currency, with amount in
that currency’s smallest unit. Include an X-Idempotency-Key so a retried
request never creates a duplicate — see
Idempotent requests.
clientSecret:
clientSecret is the browser’s credential for this one intent: it
authorizes loading the payment form and confirming the payment, which is
what moves the intent from pending to processing. It grants nothing else.
Return it to your frontend, but never log it or store it in browser
persistence.
2. Collect the payment
In the browser, wrap your checkout in<PaymentProvider> from
@slashfi/elements-react with the
clientSecret, render <PaymentElement /> where the card form should go, and
call confirm() with the buyer’s email, name, and billing address when they
press pay.
processing result means the buyer finished, not that the payment settled.
See the Payment Elements reference for the
full component, hook, and error surface.
3. Fulfill the order
Fulfill when the payment intent’sstatus becomes succeeded. Subscribe to
the
payments.payment_intent.updated
webhook and read the intent back with
GET /payments/payment-intent/{id}
when it fires; if you cannot receive webhooks, poll that endpoint instead.
Your metadata is returned on every read, so you can correlate the intent to your order without extra
lookups.
A browser-side success signal can be forged — never grant goods or services
on it alone.