Webhooks

GunTab can send your app real-time updates about your transactions, so you know when to prepare a shipment, when to ship, and when you've been paid.

What are webhooks?

Webhooks are HTTP POST requests that GunTab makes to the URL of your choice. These requests include a JSON-formatted payload with details about a transaction. These requests occur when GunTab updates a transaction to one of the webhook-enabled transaction statuses.

How do I configure webhooks?

Go to Account > Webhooks to add up to 3 webhook endpoints, and review your existing webhook endpoints. Webhooks will be sent to every endpoint you configure, for every eligible transaction status.

What are the webhook-enabled transaction statuses?

When a transaction enters any one of these statuses, a webhook is sent:

What do the JSON payloads look like?

Here is an example JSON payload that would be posted to your webhook endpoint:

{
  "event": "buyer_completed_checkout",
  "invoice_id": "f7a54f6d-d385-4192-9f72-c601de1af8ed",
  "seller_order_id": "55555",
  "status": "pending_outbound_shipment",
  "transaction_id": "d5f74026-256e-4496-8f6f-b4028af07977"
}

The values are defined as follows:

Can webhook payloads be verified?

Yes, all webhook payloads are signed so you can verify them. You should use your webhook's "signing secret key" to generate your own HMAC, and compare it to GunTab's HMAC included with each webhook payload. Here's how it works:

If verifying the signature exceeds your technical capabilities, there is a simpler but less secure alternative. You can add a token parameter to the endpoint URL you enter in GunTab, with a random value that you generate. Then when you receive a webhook payload from GunTab, you check to confirm the token parameter has the value you generated. If the strings don't match, the webhook payload may not be legitimate.

We recommend monitoring for at least the following event and status values:

  1. event "buyer_completed_checkout": The seller should consider the the merchandise "sold" and prepare it for shipment (but should not send until after payment processing).
  2. status "canceled": The transaction was canceled before payment processing. The merchandise should be considered "available for sale".
  3. event "payment_processing_succeeded": The seller should consider the merchandise paid for, and should send the shipment then "mark as shipped" in GunTab.
  4. status "refunded": The transaction was canceled after payment, so the buyer was refunded. The merchandise should be considered "available for sale" again.
  5. status "succeeded": The transaction was completed successfully, and the seller received the disbursement.

What are statuses to beware of?

Be on the lookout for status values that indicate a delay or a problem:

Can I simulate/test webhooks?

Yes. Go to Account > Webhooks, select a webhook then click the "Test" button. For each test you can select which status you want to POST to your endpoint.

Can I see webhook results?

Yes. Go to Account > Webhooks, select a webhook then see the "last used" information, including: