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:
export function <wixAppName>_<eventName>(event) { }
For example, an event handler that handles invoice creation looks like this:
export function wixBilling_onInvoiceCreated(event) {}
Note: Backend events don't work when previewing your site.
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.
function onInvoiceCreated(event: Invoice): void;
The invoice that was created.
// 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"
* }
* }
*/
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.
function onInvoiceOverdue(event: Invoice): void;
The invoice that is overdue.
// 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"
* }
* }
*/
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.
function onInvoicePaid(event: Invoice): void;
The invoice that was paid.
// 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"
* }
* }
*/