Webhook Payload

Last verified with: 10.8.6.0

This document describes the predefined JSON payload templates used for outbound webhook events.

These payloads are not designed to be authored by third-party integrators through the standard administration UI. Instead, they are backed by the data stored in the application database. For a list of descriptions of token values please see the product documentation.

This reference is intended to help external developers understand the JSON structure that may be delivered for each subscribable webhook event.

Notes

  • Token placeholders such as {account.id} and {invoice.id} are resolved by the application before delivery.
  • Not every event includes the same object structure. Your receiving system should process each event according to its own payload shape.

Common Envelope

Most webhook payloads begin with the same top-level fields:

{
  "currentDate": "{currentDate}",
  "currentTime": "{currentTime}",
  "currentDateTime": "{currentDateTime}",
  "ownerName": "{ownerName}",
  "eventName": "{eventName}"
}

Additional event-specific objects are then included based on the event type.

Account Service State Transition

{
  "currentDate": "{currentDate}",
  "currentTime": "{currentTime}",
  "currentDateTime": "{currentDateTime}",
  "ownerName": "{ownerName}",
  "eventName": "{eventName}",
  "account": {
    "displayName": "{account.displayName}",
    "name": "{account.name}",
    "id": "{account.id}",
    "balance": "{account.balance}",
    "balanceDue": "{account.balanceDue}",
    "billDay": "{account.billDay}",
    "currentStatus": "{account.currentStatus}",
    "vatNumber": "{account.vatNumber}",
    "eInvoiceEndpointId": "{account.eInvoiceEndpointId}",
    "eInvoiceSchemeId": "{account.eInvoiceSchemeId}",
    "package": {
      "name": "{account.package.name}",
      "currentStatus": "{account.package.currentStatus}",
      "previousStatus": "{account.package.previousStatus}",
      "effectiveDate": "{account.package.effectiveDate}",
      "packageFrequency": {
        "name": "{account.package.packageFrequency.name}"
      }
    },
    "service": {
      "name": "{account.service.name}",
      "currentStatus": "{account.service.currentStatus}",
      "previousStatus": "{account.service.previousStatus}",
      "usageIdentifier": "{account.service.usageIdentifier}"
    }
  }
}

Account Status Change

{
  "currentDate": "{currentDate}",
  "currentTime": "{currentTime}",
  "currentDateTime": "{currentDateTime}",
  "ownerName": "{ownerName}",
  "eventName": "{eventName}",
  "account": {
    "displayName": "{account.displayName}",
    "name": "{account.name}",
    "id": "{account.id}",
    "balance": "{account.balance}",
    "balanceDue": "{account.balanceDue}",
    "billDay": "{account.billDay}",
    "currentStatus": "{account.currentStatus}",
    "vatNumber": "{account.vatNumber}",
    "eInvoiceEndpointId": "{account.eInvoiceEndpointId}",
    "eInvoiceSchemeId": "{account.eInvoiceSchemeId}"
  }
}

Bill Run Started

{
  "currentDate": "{currentDate}",
  "currentTime": "{currentTime}",
  "currentDateTime": "{currentDateTime}",
  "ownerName": "{ownerName}",
  "eventName": "{eventName}",
  "billRun": {
    "id": "{billRun.id}",
    "historyID": "{billRun.historyId}",
    "name": "{billRun.name}",
    "start": "{billRun.start}",
    "end": "{billRun.end}",
    "status": "{billRun.status}",
    "historyName": "{billRun.historyName}"
  }
}

Bill Run Completion

{
  "currentDate": "{currentDate}",
  "currentTime": "{currentTime}",
  "currentDateTime": "{currentDateTime}",
  "ownerName": "{ownerName}",
  "eventName": "{eventName}",
  "billRun": {
    "id": "{billRun.id}",
    "historyID": "{billRun.historyId}",
    "name": "{billRun.name}",
    "start": "{billRun.start}",
    "end": "{billRun.end}",
    "status": "{billRun.status}",
    "historyName": "{billRun.historyName}"
  }
}

Invoice Posted

{
  "currentDate": "{currentDate}",
  "currentTime": "{currentTime}",
  "currentDateTime": "{currentDateTime}",
  "ownerName": "{ownerName}",
  "eventName": "{eventName}",
  "account": {
    "displayName": "{account.displayName}",
    "name": "{account.name}",
    "id": "{account.id}",
    "balance": "{account.balance}",
    "balanceDue": "{account.balanceDue}",
    "billDay": "{account.billDay}",
    "currentStatus": "{account.currentStatus}",
    "vatNumber": "{account.vatNumber}",
    "eInvoiceEndpointId": "{account.eInvoiceEndpointId}",
    "eInvoiceSchemeId": "{account.eInvoiceSchemeId}"
  },
  "invoice": {
    "dueDate": "{invoice.dueDate}",
    "id": "{invoice.id}",
    "paymentDue": "{invoice.paymentDue}",
    "invoiceTotal": "{invoice.invoiceTotal}",
    "deliveryDate": "{invoice.deliveryDate}",
    "balance": "{invoice.balance}",
    "name": "{invoice.name}",
    "date": "{invoice.date}",
    "totalCharge": "{invoice.totalCharge}",
    "totalTax": "{invoice.totalTax}"
  }
}

Invoice Delivery

{
  "currentDate": "{currentDate}",
  "currentTime": "{currentTime}",
  "currentDateTime": "{currentDateTime}",
  "ownerName": "{ownerName}",
  "eventName": "{eventName}",
  "account": {
    "displayName": "{account.displayName}",
    "name": "{account.name}",
    "id": "{account.id}",
    "balance": "{account.balance}",
    "balanceDue": "{account.balanceDue}",
    "billDay": "{account.billDay}",
    "currentStatus": "{account.currentStatus}",
    "vatNumber": "{account.vatNumber}",
    "eInvoiceEndpointId": "{account.eInvoiceEndpointId}",
    "eInvoiceSchemeId": "{account.eInvoiceSchemeId}"
  },
  "invoice": {
    "dueDate": "{invoice.dueDate}",
    "id": "{invoice.id}",
    "paymentDue": "{invoice.paymentDue}",
    "invoiceTotal": "{invoice.invoiceTotal}",
    "deliveryDate": "{invoice.deliveryDate}",
    "balance": "{invoice.balance}",
    "name": "{invoice.name}",
    "date": "{invoice.date}",
    "totalCharge": "{invoice.totalCharge}",
    "totalTax": "{invoice.totalTax}"
  }
}

Account Package Status Change

{
  "currentDate": "{currentDate}",
  "currentTime": "{currentTime}",
  "currentDateTime": "{currentDateTime}",
  "ownerName": "{ownerName}",
  "eventName": "{eventName}",
  "account": {
    "displayName": "{account.displayName}",
    "name": "{account.name}",
    "id": "{account.id}",
    "balance": "{account.balance}",
    "balanceDue": "{account.balanceDue}",
    "billDay": "{account.billDay}",
    "currentStatus": "{account.currentStatus}",
    "vatNumber": "{account.vatNumber}",
    "eInvoiceEndpointId": "{account.eInvoiceEndpointId}",
    "eInvoiceSchemeId": "{account.eInvoiceSchemeId}",
    "package": {
      "name": "{account.package.name}",
      "currentStatus": "{account.package.currentStatus}",
      "previousStatus": "{account.package.previousStatus}",
      "effectiveDate": "{account.package.effectiveDate}",
      "packageFrequency": {
        "name": "{account.package.packageFrequency.name}"
      }
    }
  }
}

Credit Note Rendered

{
  "currentDate": "{currentDate}",
  "currentTime": "{currentTime}",
  "currentDateTime": "{currentDateTime}",
  "ownerName": "{ownerName}",
  "eventName": "{eventName}",
  "account": {
    "displayName": "{account.displayName}",
    "name": "{account.name}",
    "id": "{account.id}",
    "balance": "{account.balance}",
    "balanceDue": "{account.balanceDue}",
    "billDay": "{account.billDay}",
    "currentStatus": "{account.currentStatus}",
    "vatNumber": "{account.vatNumber}",
    "eInvoiceEndpointId": "{account.eInvoiceEndpointId}",
    "eInvoiceSchemeId": "{account.eInvoiceSchemeId}"
  },
  "creditNote": {
    "id": "{creditNote.id}",
    "total": "{creditNote.total}"
  }
}

Bucket Threshold Percentage Exceeded

{
  "currentDate": "{currentDate}",
  "currentTime": "{currentTime}",
  "currentDateTime": "{currentDateTime}",
  "ownerName": "{ownerName}",
  "eventName": "{eventName}",
  "account": {
    "displayName": "{account.displayName}",
    "name": "{account.name}",
    "id": "{account.id}",
    "balance": "{account.balance}",
    "balanceDue": "{account.balanceDue}",
    "billDay": "{account.billDay}",
    "currentStatus": "{account.currentStatus}",
    "vatNumber": "{account.vatNumber}",
    "eInvoiceEndpointId": "{account.eInvoiceEndpointId}",
    "eInvoiceSchemeId": "{account.eInvoiceSchemeId}",
    "service": {
      "name": "{account.service.name}",
      "currentStatus": "{account.service.currentStatus}",
      "previousStatus": "{account.service.previousStatus}",
      "usageIdentifier": "{account.service.usageIdentifier}",
      "bucket": {
        "name": "{account.service.bucket.name}",
        "id": "{account.service.bucket.id}",
        "unit": "{account.service.bucket.unit}",
        "size": "{account.service.bucket.size}",
        "currentUsage": "{account.service.bucket.currentUsage}",
        "effectiveDate": "{account.service.bucket.effectiveDate}",
        "endDate": "{account.service.bucket.endDate}",
        "sharePlanName": "{account.service.bucket.sharePlan.name}",
        "sharePlanId": "{account.service.bucket.sharePlan.id}"
      }
    },
    "package": {
      "name": "{account.package.name}",
      "currentStatus": "{account.package.currentStatus}",
      "previousStatus": "{account.package.previousStatus}",
      "effectiveDate": "{account.package.effectiveDate}",
      "packageFrequency": {
        "name": "{account.package.packageFrequency.name}"
      }
    }
  }
}

Scheduled Report Generated

{
  "currentDate": "{currentDate}",
  "currentTime": "{currentTime}",
  "currentDateTime": "{currentDateTime}",
  "ownerName": "{ownerName}",
  "eventName": "{eventName}",
  "report": {
    "name": "{report.name}",
    "scheduleName": "{report.scheduleName}",
    "identifier": "{report.identifier}"
  }
}

Payment Processed Successfully

{
  "currentDate": "{currentDate}",
  "currentTime": "{currentTime}",
  "currentDateTime": "{currentDateTime}",
  "ownerName": "{ownerName}",
  "eventName": "{eventName}",
  "account": {
    "displayName": "{account.displayName}",
    "name": "{account.name}",
    "id": "{account.id}",
    "balance": "{account.balance}",
    "balanceDue": "{account.balanceDue}",
    "billDay": "{account.billDay}",
    "currentStatus": "{account.currentStatus}",
    "vatNumber": "{account.vatNumber}",
    "eInvoiceEndpointId": "{account.eInvoiceEndpointId}",
    "eInvoiceSchemeId": "{account.eInvoiceSchemeId}"
  },
  "payment": {
    "paymentType": "{payment.paymentType}",
    "cardType": "{payment.cardType}",
    "paymentProvider": "{payment.paymentProvider}",
    "paymentGateway": "{payment.paymentGateway}",
    "paymentMethodName": "{payment.paymentMethodName}",
    "paymentStatus": "{payment.paymentStatus}",
    "paymentAmount": "{payment.paymentAmount}",
    "Currency": "{payment.currency}",
    "TransactionId": "{payment.transactionId}"
  }
}

Payment Processed With Errors

{
  "currentDate": "{currentDate}",
  "currentTime": "{currentTime}",
  "currentDateTime": "{currentDateTime}",
  "ownerName": "{ownerName}",
  "eventName": "{eventName}",
  "account": {
    "displayName": "{account.displayName}",
    "name": "{account.name}",
    "id": "{account.id}",
    "balance": "{account.balance}",
    "balanceDue": "{account.balanceDue}",
    "billDay": "{account.billDay}",
    "currentStatus": "{account.currentStatus}",
    "vatNumber": "{account.vatNumber}",
    "eInvoiceEndpointId": "{account.eInvoiceEndpointId}",
    "eInvoiceSchemeId": "{account.eInvoiceSchemeId}"
  },
  "payment": {
    "paymentType": "{payment.paymentType}",
    "cardType": "{payment.cardType}",
    "paymentProvider": "{payment.paymentProvider}",
    "paymentGateway": "{payment.paymentGateway}",
    "paymentMethodName": "{payment.paymentMethodName}",
    "paymentStatus": "{payment.paymentStatus}",
    "paymentAmount": "{payment.paymentAmount}",
    "currency": "{payment.currency}",
    "TransactionId": "{payment.transactionId}",
    "Error": "{payment.error}"
  }
}

Usage File Processed

{
  "currentDate": "{currentDate}",
  "currentTime": "{currentTime}",
  "currentDateTime": "{currentDateTime}",
  "ownerName": "{ownerName}",
  "eventName": "{eventName}",
  "usageFile": {
    "usageFeed": "{usageFile.usageFeed}",
    "fileName": "{usageFile.fileName}",
    "totalRecords": "{usageFile.totalRecords}",
    "totalProcessed": "{usageFile.totalProcessed}",
    "totalDuplicate": "{usageFile.totalDuplicate}",
    "totalSkipped": "{usageFile.totalSkipped}",
    "totalException": "{usageFile.totalException}"
  }
}

Payment Status Updated

{
  "currentDate": "{currentDate}",
  "currentTime": "{currentTime}",
  "currentDateTime": "{currentDateTime}",
  "ownerName": "{ownerName}",
  "eventName": "{eventName}",
  "account": {
    "displayName": "{account.displayName}",
    "name": "{account.name}",
    "id": "{account.id}",
    "balance": "{account.balance}",
    "balanceDue": "{account.balanceDue}",
    "billDay": "{account.billDay}",
    "currentStatus": "{account.currentStatus}",
    "vatNumber": "{account.vatNumber}",
    "eInvoiceEndpointId": "{account.eInvoiceEndpointId}",
    "eInvoiceSchemeId": "{account.eInvoiceSchemeId}"
  },
  "payment": {
    "id": "{payment.id}",
    "paymentType": "{payment.paymentType}",
    "cardType": "{payment.cardType}",
    "paymentProvider": "{payment.paymentProvider}",
    "paymentGateway": "{payment.paymentGateway}",
    "paymentMethodName": "{payment.paymentMethodName}",
    "paymentStatus": "{payment.paymentStatus}",
    "paymentAmount": "{payment.paymentAmount}",
    "currency": "{payment.currency}",
    "transactionId": "{payment.transactionId}",
    "error": "{payment.error}",
    "sourceCallbackPayload": "{payment.sourceCallbackPayload}",
    "isManual": "{payment.isManual}",
    "transactionType": "{payment.transactionType}",
    "createdByUserName": "{payment.createdByUserName}",
    "paymentBaseType": "{payment.paymentBaseType}"
  }
}