For wiring it up (dashboard setup, a runnable signature-verification handler, idempotency, and reconciliation), see the Receive Completion Events guide. For the inbound direction (you forward your own billing’s subscription events into Encore), see Webhook Ingestion: an unrelated flow with different headers and signing.
The request Encore sends
One event type,POSTed once to the URL you configure, at the moment a transaction is marked verified (driven by the advertiser’s conversion postback, not by the user tapping or claiming).
Headers
Body
That’s the whole body. There is no app id, campaign id, creative id, or event id, and no nesting: the payload is flat, exactly the six fields above. A handler written against a nested
req.body.data won’t work; read the fields off the top level. The usr_... shape above is only a placeholder from the test-delivery sample; Encore mints no user ids and adds no prefix.Signature
The signature base string is the timestamp header and the raw request body, joined by a single dot:whsec_... signing secret and hex-encode it. The result must equal X-Webhook-Signature. Verify against the exact bytes Encore sent, not a re-serialization; a runnable handler is in the guide.
The response Encore expects
Return any2xx within 5 seconds. Anything else fails the delivery:
URL requirements
Related
- Receive Completion Events guide: setup, verification handler, idempotency, reconciliation, local testing.
- API Reference overview: why a claim is not a conversion, and where completion fits.
- Webhook Ingestion: the inbound direction, for forwarding your own subscription events into Encore.