Skip to main content
All events use the common webhook envelope. The type identifies the event and data contains the affected resource.

Test

| Event | When it is sent | |: |: | | webhook.test | A user selects Send test webhook on the API Information page | The test event contains {"message":"This is a test webhook from BillingServ."}.

Payments

| Event | When it is sent | |: |: | | payment.succeeded | A transaction is recorded with a successful status | | payment.failed | A transaction is recorded with a failed status | Payment data fields: | Field | Type | Description | |: |: |: | | id | integer | BillingServ transaction record ID | | transaction_id | string or null | Payment provider transaction ID | | invoice_id | integer or null | Associated invoice | | customer_id | integer | Associated customer | | gateway | string or null | Payment gateway identifier | | amount | money string | Transaction amount | | currency_id | integer | BillingServ currency ID | | status | string | succeeded or failed | | created_at | date-time or null | Transaction creation time |

Customers

| Event | When it is sent | |: |: | | customer.created | A customer is created | | customer.updated | A public customer field changes | | customer.deleted | A customer is deleted | | customer.restored | A deleted customer is restored | Customer data contains id, name, email, username, vat_number, email_verified_at, created_at, updated_at, and deleted_at.

Invoices

| Event | When it is sent | |: |: | | invoice.created | An invoice or estimate is created | | invoice.updated | Its customer, order, amounts, currency, status, due date, comments, estimate flag, or invoice number changes | | invoice.paid | Its status becomes paid | | invoice.deleted | It is deleted | | invoice.restored | It is restored | Invoice data fields: | Field | Type | Description | |: |: |: | | id | integer | Invoice ID | | invoice_number | integer or string | Customer-facing invoice number | | customer_id | integer | Customer ID | | order_id | integer or null | Associated order | | tax | money string | Tax included on the invoice | | total | money string | Invoice total | | currency_id | integer | BillingServ currency ID | | status | string | unpaid, paid, overdue, refunded, cancelled, pending, or unknown | | due_at | date-time or null | Payment due date | | comments | string or null | Invoice comments | | estimate | boolean | Whether the record is an estimate | | created_at | date-time or null | Creation time | | updated_at | date-time or null | Last update time | | deleted_at | date-time or null | Deletion time when deleted | An invoice becoming paid can produce both invoice.updated and invoice.paid. Handle each event ID independently.

Orders and subscriptions

| Event | When it is sent | |: |: | | order.created | An order is created | | order.updated | A public order field or status changes | | order.deleted | An order is deleted | | order.restored | An order is restored | | subscription.cancelled | An order’s status becomes cancelled | | subscription.renewed | A paid invoice represents a renewal for an existing order | Order and subscription data contains id, customer_id, package_id, cycle_id, price, currency_id, status, domain_name, cancellation_type, reason, last_invoice, next_invoice, cancelled_at, created_at, updated_at, and deleted_at. price is a money string. An order cancellation can produce both order.updated and subscription.cancelled.

Credit notes

| Event | When it is sent | |: |: | | credit_note.created | A credit note is created | | credit_note.updated | A credit note changes | | credit_note.deleted | A credit note is deleted | Credit note data contains id, credit_note_number, invoice_id, customer_id, amount, tax_amount, currency_id, reason, added_to_account_credit, issued_at, created_at, and updated_at. Amounts are money strings.

Support

| Event | When it is sent | |: |: | | support_ticket.created | A support ticket is created | | support_ticket.updated | An audited ticket field changes | | support_ticket.deleted | A support ticket is deleted | | support_ticket.message_created | A reply or message is added to a ticket | Ticket data contains id, customer_id, order_id, subject, status, priority, department, assignee_id, contact_name, email_address, last_action, sla_due_at, first_response_at, created_at, and updated_at. Ticket message data contains id, ticket_id, author_id, message, and created_at. The message can contain sanitized HTML and should be escaped or sanitized before rendering in your own interface.