Skip to main content

Redirection

Definition

After a payment, the shopper is redirected to the shopper_redirection_url provided during the client-session creation.

The redirection includes a purse-redirection-data query parameter containing:

  • client_session_id
  • payment_id
  • authorization_status
  • client_session_status
Keep the URL short

Due to browser limitations on maximum URL length, we recommend keeping the shopper_redirection_url as short as possible.

Example of purse-redirection-data

The parameter is a compact JWS string, signed and encoded in Base64:

eyJraWQiOiI4YWQ4Y2U2Mi1iNDg5LTc4ZDQtOGQxNC05YmRiZWVmOTc4MW...

To decode and verify the token, retrieve the public keys from the following endpoint:

Signing JWKS Endpoint

It returns:

{
"keys":
[
{
"kty": "RSA",
"e": "AQAB",
"kid": "12345",
"n": "0vx7agoebGcQS....5I"
}
]
}

You can paste the token and the public key into jwt.io to decode the payload and verify the signature.

Decoded Payload Example

{
"client_session_id": "193e7e36-e329-4de2-bbbd-f254442186ce",
"payment_id": "acb149dc-cbc7-4be5-b5c7-4d3f4d40b595",
"authorization_status": "AUTHORIZED",
"client_session_status": "SUBMITTED",

}
Always verify the signature

To ensure the data integrity and authenticity, verify the signature using the /payment/v2/signing-jwks endpoint.

We recommend using a JWS/JWT library adapted to your stack:

Why check authorization_status?

The authorization_status gives you immediate insight into the payment outcome, avoiding an extra API call.

See all possible values.

Final redirect recommended

After processing the redirection, we advise redirecting the shopper to a clean confirmation or error page.

This improves UX, avoids repeated processing on refresh, and prevents sensitive data from being exposed in analytics tools.