Skip to main content
Gamecart signs webhook payloads with HMAC-SHA256. Always verify the signature before processing the event.

Header format

Outbound webhooks use:
The timestamp is inside Gamecart-Signature. Outbound webhooks do not require a separate Gamecart-Timestamp header. Custom gateway payment.create requests include both the signature header and a separate timestamp header:
Use the timestamp from Gamecart-Signature when verifying the HMAC.

Canonical payload

Build the signed string exactly like this:
Rules:
  • timestamp is the t value from Gamecart-Signature.
  • eventId is the Gamecart-Event-Id header.
  • rawBody is the exact request body bytes decoded as the same JSON string you received.
  • Do not parse and reserialize JSON before verification.

Verification window

Reject signatures outside a 5 minute clock-skew window. Gamecart uses the same tolerance for custom gateway callbacks.

Node.js example

Store processed eventId values in your application. If Gamecart retries the same event, return 2xx after confirming it was already handled.