kepa
Checkout/retrieveCnpThreeDsResult

Retrieve the provider-verified 3DS result

Poll the provider-verified outcome of a 3-D Secure challenge.

POST/api/v1/cnp/public/checkout-sessions/{id}/three-ds-result
Browser-safeCall from the customer’s browser with a publishable key — never your secret key.
While the issuer challenge runs, kepa.js polls this endpoint for the durable result supplied by the authenticated 3DS provider callback. Browser code can read lifecycle state but cannot create an authentication result or submit cryptograms.
Path parameters
idstringRequired

Checkout session identifier.

Response

application/json

statusenumRequired
PENDINGAUTHENTICATEDFRICTIONLESSEXEMPTEDATTEMPTEDFAILEDCANCELED
resultobject
Good to know
  • Returns PENDING until the provider callback completes the challenge, followed by a terminal provider-verified status.
  • The Drop-in and Elements integrations poll automatically; custom integrations should treat FAILED, CANCELED, and polling timeout as fail-closed.

retrieveCnpThreeDsResult

POSTGo API
https://api.kepapay.co/api/v1/cnp/public/checkout-sessions/{id}/three-ds-result
Request
curl https://api.kepapay.co/api/v1/cnp/public/checkout-sessions/{id}/three-ds-result \
  -H "X-Kepa-Publishable-Key: $KEPA_PUBLISHABLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "clientSecret": "cs_7c1b9b86_secret_example",
  "threeDsSessionId": "0195d46e-7088-7cc4-a9b2-5f9273cd63b8"
}'
Response
{
  "status": "PENDING",
  "result": {
    "id": "0195d46e-7088-7cc4-a9b2-5f9273cd63b8",
    "threeDsSessionId": "0195d46e-7088-7cc4-a9b2-5f9273cd63b8",
    "authenticationStatus": "string",
    "eci": "05",
    "liabilityShift": true,
    "createdAt": "2026-04-09T09:14:22Z"
  }
}