Overview
When a QR Ph transaction reaches a terminal state, Modulus delivers a webhook to thecallbackUrl you registered. The delivery is an HTTPS POST with an encrypted body. You decrypt it with your Encryption Key to read the transaction details.
Delivery request
- The body is
{ "Token": "<JWE>" }. TheTokenis a compact JWE. - The
Activation-Codeheader identifies which of your sub-merchant accounts the event belongs to. - Decrypt
Tokenwith your Encryption Key (algA256KW,encA256CBC-HS512), the same key used elsewhere in the QR Ph API. See Encryption & JWE Tokens for the decryption code.
There is no separate signature header. The JWE’s authenticated encryption protects integrity, but it does not prove freshness, so deduplicate as described below.
Decrypted payload
Example (decrypted)
Acknowledging and retries
Return200 or 201 to acknowledge. Only 200 and 201 acknowledge; a 202 or 204 does not. If your endpoint does not respond with 200 or 201, Modulus retries the same delivery up to 3 more times, about 15 minutes apart (4 attempts total).