Skip to main content
Gamecart sends order events to an HTTPS endpoint that you control. Each webhook is an outbound notification to your application, signed with a secret only you and Gamecart know.

Before you begin

You need:
  • The Enterprise plan. A store can have up to 10 endpoints.
  • Permission to manage integrations for the store.
  • A public HTTPS endpoint that accepts POST requests.
  • A safe place to keep the webhook secret.
Answer each request quickly. Move slow work to a background job after you accept the event.

Add an endpoint in the dashboard

  1. Open Integrations > Webhooks.
  2. Click Create endpoint.
  3. Enter a Name, such as Production order worker.
  4. Paste your public HTTPS URL in Endpoint URL. Gamecart checks the URL before it saves the endpoint.
  5. Under Events, pick the events your application needs. Payment approved comes checked.
  6. Click Create endpoint, then copy the secret from Save this webhook secret now. Gamecart shows it only once. Secrets start with gcwhsec_.
  7. Open the endpoint’s row menu and select Send test to confirm that your endpoint receives the event and verifies the signature. See Testing and delivery logs.
Create webhook endpoint dialog with the endpoint URL, events, enabled switch, and Create endpoint button highlighted

Choose the HTTPS endpoint and only the events your application uses.

Turn off Enabled to pause deliveries to an endpoint without deleting it. You can also manage endpoints through the API with the webhooks:read and webhooks:write scopes. The endpoint pages under API reference list every operation.

Event types

When a dispute closes in the store’s favor, Gamecart sends order.payment_approved again with the same eventId as the original approval. The order was already delivered at that first approval, so don’t deliver it again. Deduplicating by eventId handles this. Manual orders created in the dashboard do not send seller webhooks.

Diagnostic event

webhook.test is not an event you subscribe to. It goes to the endpoint you test, whatever events that endpoint listens to, and carries a fixed sample order with the id GC-TEST0000.

Delivery payload

Every event has the same envelope. The order sits under data.order and is the same object that GET /v1/seller/orders/{orderId} returns, always with the buyer:
  • eventId is stable for the order and event type. Use it as your idempotency key.
  • createdAt is when Gamecart created the event, in UTC.
  • Fields that do not apply are left out, as in API responses.
  • number is the order number the seller sees. The webhook goes only to endpoints the seller configured, so it is safe to use there.
The payload holds the buyer’s personal data. Keep it only as long as your application needs it.

Delivery headers

See Webhook signatures for verification.

Retries

Gamecart treats any 2xx response as delivered. For a non-2xx response, network failure, or invalid target, Gamecart records the failure and makes up to 5 attempts. After each failure, the retry delay is attemptCount * 5 minutes. Gamecart does not follow redirects. If your endpoint receives the same eventId more than once, process it once and return 2xx for later duplicates. Delivery statuses are:

Retention

Gamecart deletes SENT and FAILED deliveries 30 days after they were created. Pending deliveries are kept until they finish.