Introduction

Wix billing events are fired on your site's backend when certain events occur related to billing. You can write event handlers that react to these events. Event handler functions receive data that corresponds to the event that fired. Use event handlers to create custom responses to contact events.

To add a billing event handler, add an events.js file to the Backend section of your site if one does not already exist. All event handler functions for your site are defined in this file.

Event handler functions are defined using the following pattern:

Copy
export function <wixAppName>_<eventName>(event) { }

For example, an event handler that handles invoice creation looks like this:

Copy
export function wixBilling_onInvoiceCreated(event) {}

Note: Backend events don't work when previewing your site.

Did this help?

onInvoiceCreated( )


An event that fires when an invoice is created.

The onInvoiceCreated() event handler runs when an invoice is created. The received Invoice object contains information about the invoice that was created.

Note: Backend events don't work when previewing your site.

Method Declaration
Copy
function onInvoiceCreated(event: Invoice): void;
Method Parameters
eventInvoiceRequired

The invoice that was created.

An event when an invoice is created
JavaScript
// Place this code in the events.js file // of your site's Backend section. export function wixBilling_onInvoiceCreated(event) { let invoiceId = event.id.id; let email = event.customer.email; } /* Full event object: * * { * "id":{ * "id": "411a5551-b0f6-4826-8a41-ebae2879f857", * "version": 25 * }, * "status": "Draft", * "number": "0000001", * "title": "My Invoice", * "currency": "USD", * "customer": { * "contactId": "4f7c6637-0657-4696-a00b-9bc2ae4e035d", * "email": "john.doe@somedomain.com", * "address": { * "country": "USA", * "subdivision": "NY", * "city": "New York", * "postalCode": "10011", * "streetAddress": { * "value": "235 W 23rd St", * "type": "Name" * }, * "addressLine": "someStreet", * "formatted": "235 W 23rd St, New York, NY 10011, USA" * }, * "billingAddress": { * "country": "USA", * "streetAddress": { * "value": "235 W 23rd St", * "type": "Name" * }, * "addressLine": "235 W 23rd St, New York, NY 10011, USA", * "postalCode": "10011", * "subdivision": "NY", * "city": "New York", * "formatted": "235 W 23rd St, New York, NY 10011, USA" * }, * "shippingAddress": { * "country": "USA", * "streetAddress": { * "value": "235 W 23rd St", * "type": "Name" * }, * "addressLine": "235 W 23rd St, New York, NY 10011, USA", * "postalCode": "10011", * "subdivision": "NY", * "city": "New York", * "formatted": "235 W 23rd St, New York, NY 10011, USA" * }, * "phone": "5555555555", * "company": "Some Company", * "companyId": "Some Company Id", * "fullName": "John Doe", * "firstName": "John", * "lastName": "Doe" * }, * "dates": { * "issueDate": 2019-03-13T00:00:00.000Z, * "dueDate": 2019-06-12T00:00:00.000Z, * "lastSeenDate": 2019-03-14T00:00:00.000Z * }, * "discount": { * "value": 2.5, * "type": "Fixed" * }, * "lineItems":[ * { * "id": "00001", * "name": "Item 1", * "description": "First Item", * "price": 10.5, * "quantity": 3, * "taxes": [ * { * "name": "tax name", * "rate": 8.5, * "code": "tax code" * } * ] * }, * { * "id": "00002", * "name": "Item 2", * "description": "Second Item", * "price": 50, * "quantity": 1, * "taxes": [ * { * "name": "tax name", * "rate": 8.5, * "code": "tax code" * } * ] * } * ], * "locale": { * "language": "en" * }, * "payments": [{ * "id": "4j9q4o00-4205-8q83-003d-3ofd9d8wmf0w", * "type": "offline", * "amount": "25.50", * "date": 2019-03-23T00:00:00.000Z" * }], * "totals": { * "discountAmount": null, * "taxedAmount": 6.93, * "fees": [], * "subtotal": 81.5, * "total": 88.43 * }, * "dynamicTotals": { * "paidAmount": 25.50, * "balance": 62.39 * }, * "taxes": [ * { * "name": "tax name", * "rate": 8.5, * "taxable": 81.5, * "taxed": 6.93, * "code": "tax code" * } * ], * "metadata": { * "notes": "Some note.", * "legalTerms": "Some legal terms", * "sourceUrl": "http://legalurl.com", * "source": "Some source", * "sourceRefId": "Some source ref id" * } * } */
Did this help?

onInvoiceOverdue( )


An event that fires when an invoice is overdue.

The onInvoiceOverdue() event handler runs when an invoice is overdue. The received Invoice object contains information about the invoice that is overdue.

Note: Backend events don't work when previewing your site.

Method Declaration
Copy
function onInvoiceOverdue(event: Invoice): void;
Method Parameters
eventInvoiceRequired

The invoice that is overdue.

An event when an invoice is overdue
JavaScript
// Place this code in the events.js file // of your site's Backend section. export function wixBilling_onInvoiceOverdue(event) { let invoiceId = event.id.id; let email = event.customer.email; } /* Full event object: * * { * "id":{ * "id": "411a5551-b0f6-4826-8a41-ebae2879f857", * "version": 25 * }, * "status": "Overdue", * "number": "0000001", * "title": "My Invoice", * "currency": "USD", * "customer": { * "contactId": "4f7c6637-0657-4696-a00b-9bc2ae4e035d", * "email": "john.doe@somedomain.com", * "address": { * "country": "USA", * "subdivision": "NY", * "city": "New York", * "postalCode": "10011", * "streetAddress": { * "value": "235 W 23rd St", * "type": "Name" * }, * "addressLine": "someStreet", * "formatted": "235 W 23rd St, New York, NY 10011, USA" * }, * "billingAddress": { * "country": "USA", * "streetAddress": { * "value": "235 W 23rd St", * "type": "Name" * }, * "addressLine": "235 W 23rd St, New York, NY 10011, USA", * "postalCode": "10011", * "subdivision": "NY", * "city": "New York", * "formatted": "235 W 23rd St, New York, NY 10011, USA" * }, * "shippingAddress": { * "country": "USA", * "streetAddress": { * "value": "235 W 23rd St", * "type": "Name" * }, * "addressLine": "235 W 23rd St, New York, NY 10011, USA", * "postalCode": "10011", * "subdivision": "NY", * "city": "New York", * "formatted": "235 W 23rd St, New York, NY 10011, USA" * }, * "phone": "5555555555", * "company": "Some Company", * "companyId": "Some Company Id", * "fullName": "John Doe", * "firstName": "John", * "lastName": "Doe" * }, * "dates": { * "issueDate": 2019-03-13T00:00:00.000Z, * "dueDate": 2019-06-12T00:00:00.000Z, * "lastSeenDate": 2019-03-14T00:00:00.000Z * }, * "discount": { * "value": 2.5, * "type": "Fixed" * }, * "lineItems":[ * { * "id": "00001", * "name": "Item 1", * "description": "First Item", * "price": 10.5, * "quantity": 3, * "taxes": [ * { * "name": "tax name", * "rate": 8.5, * "code": "tax code" * } * ] * }, * { * "id": "00002", * "name": "Item 2", * "description": "Second Item", * "price": 50, * "quantity": 1, * "taxes": [ * { * "name": "tax name", * "rate": 8.5, * "code": "tax code" * } * ] * } * ], * "locale": { * "language": "en" * }, * "payments": [{ * "id": "4j9q4o00-4205-8q83-003d-3ofd9d8wmf0w", * "type": "offline", * "amount": "25.50", * "date": 2019-03-23T00:00:00.000Z" * }], * "totals": { * "discountAmount": null, * "taxedAmount": 6.93, * "fees": [], * "subtotal": 81.5, * "total": 88.43 * }, * "dynamicTotals": { * "paidAmount": 25.50, * "balance": 62.39 * }, * "taxes": [ * { * "name": "tax name", * "rate": 8.5, * "taxable": 81.5, * "taxed": 6.93, * "code": "tax code" * } * ], * "metadata": { * "notes": "Some note.", * "legalTerms": "Some legal terms", * "sourceUrl": "http://legalurl.com", * "source": "Some source", * "sourceRefId": "Some source ref id" * } * } */
Did this help?

onInvoicePaid( )


An event that fires when an invoice is paid.

The onInvoicePaid() event handler runs when an invoice is paid. The received Invoice object contains information about the invoice that was paid.

Note: Backend events don't work when previewing your site.

Method Declaration
Copy
function onInvoicePaid(event: Invoice): void;
Method Parameters
eventInvoiceRequired

The invoice that was paid.

An event when an invoice is paid
JavaScript
// Place this code in the events.js file // of your site's Backend section. export function wixBilling_onInvoicePaid(event) { let invoiceId = event.id.id; let email = event.customer.email; } /* Full event object: * * { * "id":{ * "id": "411a5551-b0f6-4826-8a41-ebae2879f857", * "version": 25 * }, * "status": "Paid", * "number": "0000001", * "title": "My Invoice", * "currency": "USD", * "customer": { * "contactId": "4f7c6637-0657-4696-a00b-9bc2ae4e035d", * "email": "john.doe@somedomain.com", * "address": { * "country": "USA", * "subdivision": "NY", * "city": "New York", * "postalCode": "10011", * "streetAddress": { * "value": "235 W 23rd St", * "type": "Name" * }, * "addressLine": "someStreet", * "formatted": "235 W 23rd St, New York, NY 10011, USA" * }, * "billingAddress": { * "country": "USA", * "streetAddress": { * "value": "235 W 23rd St", * "type": "Name" * }, * "addressLine": "235 W 23rd St, New York, NY 10011, USA", * "postalCode": "10011", * "subdivision": "NY", * "city": "New York", * "formatted": "235 W 23rd St, New York, NY 10011, USA" * }, * "shippingAddress": { * "country": "USA", * "streetAddress": { * "value": "235 W 23rd St", * "type": "Name" * }, * "addressLine": "235 W 23rd St, New York, NY 10011, USA", * "postalCode": "10011", * "subdivision": "NY", * "city": "New York", * "formatted": "235 W 23rd St, New York, NY 10011, USA" * }, * "phone": "5555555555", * "company": "Some Company", * "companyId": "Some Company Id", * "fullName": "John Doe", * "firstName": "John", * "lastName": "Doe" * }, * "dates": { * "issueDate": 2019-03-13T00:00:00.000Z, * "dueDate": 2019-06-12T00:00:00.000Z, * "lastSeenDate": 2019-03-14T00:00:00.000Z * }, * "discount": { * "value": 2.5, * "type": "Fixed" * }, * "lineItems":[ * { * "id": "00001", * "name": "Item 1", * "description": "First Item", * "price": 10.5, * "quantity": 3, * "taxes": [ * { * "name": "tax name", * "rate": 8.5, * "code": "tax code" * } * ] * }, * { * "id": "00002", * "name": "Item 2", * "description": "Second Item", * "price": 50, * "quantity": 1, * "taxes": [ * { * "name": "tax name", * "rate": 8.5, * "code": "tax code" * } * ] * } * ], * "locale": { * "language": "en" * }, * "payments": [{ * "id": "4j9q4o00-4205-8q83-003d-3ofd9d8wmf0w", * "type": "offline", * "amount": "25.50", * "date": 2019-03-23T00:00:00.000Z" * }], * "totals": { * "discountAmount": null, * "taxedAmount": 6.93, * "fees": [], * "subtotal": 81.5, * "total": 88.43 * }, * "dynamicTotals": { * "paidAmount": 25.50, * "balance": 62.39 * }, * "taxes": [ * { * "name": "tax name", * "rate": 8.5, * "taxable": 81.5, * "taxed": 6.93, * "code": "tax code" * } * ], * "metadata": { * "notes": "Some note.", * "legalTerms": "Some legal terms", * "sourceUrl": "http://legalurl.com", * "source": "Some source", * "sourceRefId": "Some source ref id" * } * } */
Did this help?