mode: 'api'hostedUrl. You redirect the customer there; Stripe hosts the entire payment form. Nothing to build on your frontend.mode: 'elements'PaymentIntent (or SetupIntent) and returns clientSecret. You mount your own Stripe Elements form, using the optional resources/js/stripekit-elements.js helper or your own code, and confirm the payment yourself. Full control over your UI. See Stripe Elements.mode: 'both''api' behavior, but every call that creates a payment or checkout accepts a mode (or flowOverride) argument to choose per call.| Field | Set when |
|---|---|
hostedUrl | Resolved flow is api |
clientSecret | Resolved flow is elements |
$kit->payments->create() and $kit->checkout->create() follow this same pattern.