Showpass Webhooks: Payload - Invoice object
When Showpass sends a webhook for invoice-related events (like invoice.purchase, invoice.refund, etc.), the payload delivered to your endpoint contains detailed information structured as an "Invoice" object. This section describes the format of this object.
Sample webhook request (Invoice structure)
Here is an example of a request that Showpass sends as a webhook when delivering the invoice structure, typically for an invoice.purchase event.
HTTP Method: POST
Target URL: https://yoursite.com/webhook/ (Your configured endpoint URL)
Header (for security verification): X-SHOWPASS-SIGNATURE: "HMAC-SHA1_HASH"
Note: See section "3. Security" for details on verifying this signature.
Request Body (JSON Payload):
{
"id": "f1-1068-4af6-be8f-1222417da0f2",
"data": {
"currency": "CAD",
"discounts": "0.00",
"net_sales": "5.84",
"total_tax": "0.25",
"invoice_type": "sale",
"payment_type": "credit",
"service_fees": "0.59",
"ticket_items": [
{
"id": 41349751,
"event_id": "474708",
"event_name": "Scanning",
"product_id": null,
"product_name": null,
"event_ends_on": "2026-12-03T04:00:00Z",
"ticket_status": "issued",
"barcode_string": "5GHOEEHUG",
"name_on_ticket": null,
"ticket_type_id": "1657978",
"email_on_ticket": null,
"event_starts_on": "2026-12-02T04:00:00Z",
"ticket_item_type": "ticket",
"ticket_type_name": "A test ticket",
"ticket_status_code": "2",
"created_by_transfer": false,
"last_name_on_ticket": null,
"first_name_on_ticket": null,
"product_attribute_id": null,
"phone_number_on_ticket": null,
"product_attribute_name": null
}
],
"customer_name": "No Name",
"gross_revenue": "5.20",
"invoice_items": [
{
"id": 21110231,
"event_id": "474708",
"quantity": 1,
"discounts": "0.00",
"net_sales": "5.84",
"total_tax": "0.25",
"event_name": "Scanning",
"product_id": null,
"product_name": null,
"service_fees": "0.59",
"gross_revenue": "5.20",
"organizer_fees": "0.00",
"ticket_type_id": "1657978",
"ticket_type_name": "A test ticket",
"event_facebook_id": null,
"invoice_item_type": "ticket",
"product_attribute_id": null,
"account_credit_applied": "0.00",
"product_attribute_name": null,
"ticket_type_external_id": null
}
],
"customer_email": "example@showpass.com",
"organizer_fees": "0.00",
"transaction_id": "f1-1068-4af6-be8f-1222417da0f2",
"invoice_type_id": "101",
"other_payment_type": null,
"subscribe_to_venue": false,
"account_credit_type": null,
"customer_phone_number": null,
"account_credit_applied": "0.00",
"showpass_organization_id": "5796"
},
"event_type": "invoice.purchase",
"webhook_event_uuid": "09117c09-e1f8-4913-b2f5-52cc161cf5f7"
}
Invoice object fields
The following table describes the fields typically found in the webhook payload when an invoice structure is sent. The exact fields present may vary slightly based on the event type and the specifics of the transaction.
| Path in JSON | Description |
|---|---|
id |
The unique identifier for the webhook event itself. This corresponds to the webhook event record in Showpass and is useful for referencing in support or logs. |
event_type |
The type of event that triggered this webhook. Choices: ['invoice.purchase', 'invoice.refund', 'invoice.void', 'invoice.transfer', 'invoice.transferred', 'webhook.test'] |
webhook_event_uuid |
A unique UUID for this specific webhook event instance. You can use this as an idempotency key to prevent processing the same event multiple times. |
data |
An object containing the core data for the event. |
data.transaction_id |
Unique identifier for the transaction. |
data.showpass_organization_id |
Unique identifier for the Showpass organization associated with this transaction. |
data.customer_name |
Name of the customer who made the purchase. |
data.customer_email |
Email address of the customer. |
data.customer_phone_number |
Phone number of the customer, if available. |
data.subscribe_to_venue |
Boolean indicating if the customer subscribed to marketing from the venue during checkout. |
data.payment_type |
Payment method used. Choices: ['cash', 'credit', 'interac', 'complimentary', 'free', 'bundled', 'transferred', 'direct_deposit', 'other', 'payment_plan', 'user_credit', 'exchange_credit', 'afterpay'] |
data.other_payment_type |
Type of "other" payment used, if applicable. |
data.currency |
Currency code for the transaction (e.g., CAD, USD). |
data.discounts |
The total monetary amount of discounts applied to the entire invoice. |
data.net_sales |
Total amount of the transaction after any discounts, refunds, or account credits. |
data.service_fees |
Total amount of combined Showpass service fees and payment processing fees charged for the transaction. |
data.account_credit_applied |
Total amount of account credit applied to the transaction, if applicable. |
data.gross_revenue |
Total gross revenue on the transaction (typically net_sales - service_fees + organizer_fees + total_tax, but verify specific calculation based on your needs). |
data.organizer_fees |
Total combined amount of fees charged by the organizer for the transaction. |
data.total_tax |
Total combined amount of applicable taxes for the transaction. |
data.account_credit_type |
The type of account credit applied, if any. |
data.invoice_type |
The type of invoice. Choices: ['sale', 'refund'] |
data.invoice_type_id |
Unique identifier for the invoice type. |
data.ticket_items |
An array of objects, each representing a ticket within the transaction. This is where you'll find details about individual tickets. |
data.ticket_items[].event_id |
Unique identifier of the event the ticket is for. |
data.ticket_items[].event_name |
Name of the event. |
data.ticket_items[].event_starts_on |
ISO 8601 formatted start date and time of the event (UTC). |
data.ticket_items[].event_ends_on |
ISO 8601 formatted end date and time of the event (UTC). |
data.ticket_items[].first_name_on_ticket |
First name of the ticket holder. |
data.ticket_items[].last_name_on_ticket |
Last name of the ticket holder. |
data.ticket_items[].phone_number_on_ticket |
Phone number of the ticket holder, if provided. |
data.ticket_items[].email_on_ticket |
Email address of the ticket holder. |
data.ticket_items[].id |
Unique identifier for this specific ticket item within Showpass. |
data.ticket_items[].ticket_status |
Human-readable status of the ticket. Choices: ['pending', 'issued', 'voided', 'transferred'] |
data.ticket_items[].barcode_string |
Barcode or QR code string for the ticket, used for scanning and validation at the event. |
data.ticket_items[].name_on_ticket |
Full name on the ticket (combination of first and last name). |
data.ticket_items[].ticket_type_id |
Unique identifier for the ticket type. |
data.ticket_items[].ticket_type_name |
Name of the ticket type (e.g., "General Admission", "VIP"). |
data.ticket_items[].ticket_item_type |
Type of the ticket item. Choices: ['ticket', 'membership', 'product'] |
data.ticket_items[].ticket_status_code |
Numeric status code for the ticket. |
data.ticket_items[].created_by_transfer |
Boolean indicating if this ticket was created as part of a transfer. |
data.ticket_items[].product_name |
Name of the product (if the ticket item is a product). |
data.ticket_items[].product_id |
Unique identifier for the product (if applicable). |
data.ticket_items[].product_attribute_name |
Name of the product attribute (e.g., size, color) if applicable. |
data.ticket_items[].product_attribute_id |
Unique identifier for the product attribute (if applicable). |
data.invoice_items |
An array of objects, each representing a line item on the invoice. This provides a summary of each type of item purchased (e.g., each ticket type). |
data.invoice_items[].id |
Unique identifier for the invoice item. |
data.invoice_items[].invoice_item_type |
Type of the invoice item. Choices: ['ticket', 'membership', 'product'] |
data.invoice_items[].quantity |
Quantity of this item purchased. |
data.invoice_items[].discounts |
Discounts applied to this specific line item. |
data.invoice_items[].net_sales |
Net sales for this line item after discounts. |
data.invoice_items[].service_fees |
Service fees associated with this line item. |
data.invoice_items[].account_credit_applied |
Account credit applied to this line item. |
data.invoice_items[].gross_revenue |
Gross revenue for this line item. |
data.invoice_items[].organizer_fees |
Organizer fees associated with this line item. |
data.invoice_items[].total_tax |
Tax applied to this line item. |
data.invoice_items[].event_id |
Unique identifier for the event associated with this line item. |
data.invoice_items[].event_name |
Name of the event. |
data.invoice_items[].event_facebook_id |
Facebook event ID if the event is linked to Facebook. |
data.invoice_items[].ticket_type_id |
Unique identifier for the ticket type. |
data.invoice_items[].ticket_type_name |
Name of the ticket type. |
data.invoice_items[].ticket_type_external_id |
External identifier for the ticket type (if applicable). |
data.invoice_items[].product_name |
Name of the product (if the line item is a product). |
data.invoice_items[].product_id |
Unique identifier for the product (if applicable). |
data.invoice_items[].product_attribute_id |
Unique identifier for the product attribute (if applicable). |
data.invoice_items[].product_attribute_name |
Name of the product attribute (if applicable). |
Using the payload
This structured payload allows you to:
- Process orders: Extract customer information, items purchased, and payment details
- Update inventory: Track ticket sales and product purchases
- Send notifications: Email confirmations, shipping updates, or custom alerts
- Sync with external systems: Update CRM records, accounting software, or analytics platforms
- Handle refunds and transfers: Track the complete lifecycle of tickets and orders
Important: Always use the
webhook_event_uuidas an idempotency key to prevent duplicate processing of the same event.