Skip to main content
POST
Re-mint session token
When a session token expires mid-flow, don’t create a new intent — re-mint a token for the same one. Zennopay preserves the intent’s scan / quote / confirm state across the re-mint, so the user’s flow continues uninterrupted. This is exactly what your refreshSession hook calls your backend to do; your backend then makes this HMAC-signed call. See the refresh route in Build your session endpoint.

Headers

Server-to-server only; HMAC-signed. See Authentication.
string
required
Identifies which signing key was used.
string
required
ISO-8601 / RFC 3339 UTC timestamp. ±5 minute skew.
string
required
Random 32-byte hex string (64 chars). Replays within 10 minutes are rejected.
string
required
Base64 HMAC-SHA256 of the canonical request string over the JSON body below.

Path parameters

string
required
The intent to re-mint a session token for, e.g. 0198f31a-7c2b-7d91-9fa2-112233445566. The partner identified by the HMAC key must own it. Refreshing a token does not reset the intent or start another payment. For a completed payment, use a receipt token to reopen its receipt.

Body

The re-mint carries the same per-payment identity and compliance attestations as the original create call — Zennopay mints the fresh token from them.
string
required
Your opaque user identifier for the paying user. Must match the user the intent was created for.
object
required
Your per-payment KYC attestation, from your real verification system: { verified, method, verified_at, id_type, id_country }.
object
required
Your per-payment sanctions attestation: { clean, screened_at }.

Response

string
A fresh Zennopay-minted session token for the same intent. Return it to your app; the SDK swaps it in and retries the call that 401’d.
integer
Unix epoch seconds at which the new token stops verifying.

Example

Response