Authentication
Unlike the offer endpoints, this endpoint is HMAC-signed. Three headers are required, plusX-Platform for multi-app projects:
The base string is
timestamp.METHOD.path.query, and two details cause most signature
failures:
- The path you sign is not the URL you call. Encore’s gateway strips the
/encoreprefix before the API sees the request, so you call/encore/publisher/sdk/v1/entitlements/serverbut sign/publisher/sdk/v1/entitlements/server. Signing the public path is a silent401. - A GET signs a canonical query string, not a body. Sort the parameters by key,
URI-encode each key and value, and join with
&. This endpoint has one parameter, so the canonical string is justuserId=..., encoded.
Request
Response
verified. provisional exists for the immediate unlock a
client shows while the brand-side completion is still unverified; treat it as a UX
courtesy, never as proof. Timestamps are ISO 8601 and nullable.
Status codes
Related
- Offer Completed Webhook: the push counterpart, delivered as each completion verifies.
- Receive Completion Events: wiring the webhook end to end.
- The overview’s Authentication section: the key model and the
X-Platformrule shared by every endpoint.