kepa
Checkout/confirmCnpWalletCheckoutSession

Confirm checkout with wallet token

Place the charge for a wallet payment. This is the money-moving call.

POST/api/v1/cnp/public/checkout-sessions/{id}/wallet-confirm
Browser-safeCall from the customer’s browser with a publishable key — never your secret key.
The wallet counterpart to confirming a card checkout: it takes the authorized wallet token and completes the payment against the acquirer. Send an Idempotency-Key — a customer double-tapping Apple Pay, or a retry after a dropped connection, must not become two charges.
Path parameters
idstringRequired

Checkout session identifier.

Response

application/json

intentobjectRequired
attemptobjectRequired
paymentobjectRequired
authorizationobject

Wallet/provider authorization detail; the canonical payment is in `payment`.

paymentMethodIdstring

Merchant-owned Kepa payment method created from a reusable wallet credential when setupFutureUsage is set.

Example "pm_123"
Good to know
  • Idempotency-Key is honoured: the same key returns the original result rather than charging again.
  • This is protected the longest under load — readiness and logging calls are shed before a confirm is.
  • On a downstream acquirer failure the response still carries the intent so you can reconcile; treat a non-2xx with an intent id as 'unknown', not 'declined'.

confirmCnpWalletCheckoutSession

POSTGo API
https://api.kepapay.co/api/v1/cnp/public/checkout-sessions/{id}/wallet-confirm
Request
curl https://api.kepapay.co/api/v1/cnp/public/checkout-sessions/{id}/wallet-confirm \
  -H "X-Kepa-Publishable-Key: $KEPA_PUBLISHABLE_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "clientSecret": "cs_7c1b9b86_secret_example",
  "walletType": "APPLE_PAY",
  "token": {},
  "metadata": {}
}'
Response
{
  "intent": {
    "id": "0195d46e-7088-7cc4-a9b2-5f9273cd63b8",
    "merchantId": "mch_123",
    "customerId": "cus_123",
    "terminalId": "TID-00012345",
    "amountMinor": 1999,
    "currencyCode": "USD",
    "status": "REQUIRES_PAYMENT_METHOD",
    "clientSecret": "pi_0195d46e_secret_example",
    "paymentId": "0195d46e-7088-7cc4-a9b2-5f9273cd63b8",
    "payment": {
      "id": "0195d46e-7088-7cc4-a9b2-5f9273cd63b8",
      "merchantId": "mch_123",
      "acceptanceChannel": "CARD_PRESENT",
      "status": "REQUIRES_PAYMENT_METHOD",
      "type": "SALE",
      "captureMethod": "AUTOMATIC",
      "capturedAmountMinor": 0,
      "authExpiresAt": "2026-04-09T09:14:22Z",
      "amountMinor": 2500,
      "baseAmountMinor": 2200,
      "currencyCode": "NZD",
      "tipAmountMinor": 0,
      "tipSource": "preset:1800",
      "cashbackAmountMinor": 0,
      "customerId": "cus_123",
      "referenceId": "POS-INV-20260328-001",
      "authorizationCode": "A12345",
      "responseCode": "00",
      "cardScheme": "VISA",
      "maskedPan": "************1234",
      "rrn": "262803141422",
      "decline": {},
      "cardPresent": {},
      "cardNotPresent": {},
      "settlementId": "stl_01JQDAY00042",
      "metadata": {},
      "createdAt": "2026-04-09T09:14:22Z",
      "updatedAt": "2026-04-09T09:14:22Z"
    },
    "setupFutureUsage": "OFF_SESSION",
    "description": "string",
    "metadata": {},
    "createdAt": "2026-04-09T09:14:22Z"
  },
  "attempt": {
    "id": "0195d46e-7088-7cc4-a9b2-5f9273cd63b8",
    "checkoutSessionId": "0195d46e-7088-7cc4-a9b2-5f9273cd63b8",
    "paymentIntentId": "0195d46e-7088-7cc4-a9b2-5f9273cd63b8",
    "merchantId": "string",
    "walletType": "APPLE_PAY",
    "status": "RECEIVED",
    "tokenMetadata": {},
    "failureReason": "string",
    "cnpGatewayRouteId": "string",
    "cnpGatewayRouteKind": "SERVER_SIDE_GATEWAY",
    "cnpGatewayRouteTarget": "string",
    "cnpGatewayRouteProviderBound": true,
    "cnpGatewayRouteSupportsKepaTokenStorage": true,
    "createdAt": "2026-04-09T09:14:22Z"
  },
  "payment": {
    "id": "0195d46e-7088-7cc4-a9b2-5f9273cd63b8",
    "merchantId": "mch_123",
    "acceptanceChannel": "CARD_PRESENT",
    "status": "REQUIRES_PAYMENT_METHOD",
    "type": "SALE",
    "captureMethod": "AUTOMATIC",
    "capturedAmountMinor": 0,
    "authExpiresAt": "2026-04-09T09:14:22Z",
    "amountMinor": 2500,
    "baseAmountMinor": 2200,
    "currencyCode": "NZD",
    "tipAmountMinor": 0,
    "tipSource": "preset:1800",
    "cashbackAmountMinor": 0,
    "customerId": "cus_123",
    "referenceId": "POS-INV-20260328-001",
    "authorizationCode": "A12345",
    "responseCode": "00",
    "cardScheme": "VISA",
    "maskedPan": "************1234",
    "rrn": "262803141422",
    "decline": {
      "category": "INSUFFICIENT_FUNDS",
      "retryClass": "NEVER",
      "retryable": true,
      "networkResponseCode": "51",
      "customerMessage": "Your card was declined. Please try another card.",
      "merchantMessage": "Insufficient funds; ask the customer for another payment method."
    },
    "cardPresent": {
      "terminalId": "TID-00012345",
      "entryMode": "CONTACTLESS",
      "acceptanceMode": "KEPA_L2",
      "applicationLabel": "Visa Credit",
      "aid": "A0000000031010",
      "cryptogramType": "TC",
      "tvr": "0000000000",
      "cvmResult": "PIN"
    },
    "cardNotPresent": {
      "paymentIntentId": "pi_123",
      "paymentMethodId": "pm_123",
      "threeDsStatus": "AUTHENTICATED",
      "liabilityShift": true,
      "eci": "05",
      "setupFutureUsage": "OFF_SESSION"
    },
    "settlementId": "stl_01JQDAY00042",
    "metadata": {},
    "createdAt": "2026-04-09T09:14:22Z",
    "updatedAt": "2026-04-09T09:14:22Z"
  },
  "authorization": {},
  "paymentMethodId": "pm_123"
}