Checkout/confirmCnpCheckoutSession
Drop-in / Elements Browser Flow
Use kepa.js to render wallets, hosted fields, tokenization, 3DS, and confirmation.
POST
/api/v1/cnp/public/checkout-sessions/{id}/confirmBrowser-safeCall from the customer’s browser with a publishable key — never your secret key.
The browser SDK wraps the low-level public CNP endpoints: retrieve checkout session, create tokenization session, tokenize inside the secure iframe, create/record 3DS when risk requires it, and confirm the checkout session. Use Drop-in when you want Kepa to render wallets plus card fields; use hosted card fields when you need explicit placement.
Path parameters
idstringRequiredCheckout session ID.
Request body
application/json
clientSecretstringRequiredCheckout session client secret.
paymentTokenstringRequiredKepa token returned from the secure iframe tokenization session.
cardSchemestringRequiredDetected card scheme.
savePaymentMethodbooleanSave a payment method when allowed.
Response
application/json
intentobjectRequiredpaymentobjectRequiredauthorizationobjectGateway authorization detail; the canonical payment is in `payment`.
paymentMethodIdstringExample "pm_123"
Good to know
- Recommended frontend: elements().create('dropin').mount('#payment').
- Separate wallet buttons are available via applePayButton and googlePayButton.
- Live Apple Pay / Google Pay still require wallet backend merchant validation, token handling, acquirer support, and reconciliation mapping.
- Raw PAN should never touch merchant JavaScript. Use the Kepa-hosted iframe.
confirmCnpCheckoutSession