kepa
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}/confirm
Browser-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
idstringRequired

Checkout session ID.

Request body

application/json

clientSecretstringRequired

Checkout session client secret.

paymentTokenstringRequired

Kepa token returned from the secure iframe tokenization session.

cardSchemestringRequired

Detected card scheme.

savePaymentMethodboolean

Save a payment method when allowed.

Response

application/json

intentobjectRequired
paymentobjectRequired
authorizationobject

Gateway authorization detail; the canonical payment is in `payment`.

paymentMethodIdstring
Example "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

POSTGo API
https://api.kepapay.co/api/v1/cnp/public/checkout-sessions/{id}/confirm
Request
# Browser SDK wraps the public calls. Use server endpoints to create intent/session first.
Response
{
  "intent": {
    "id": "00000000-0000-0000-0000-000000000001",
    "status": "SUCCEEDED"
  }
}