Invoice Lifecycle
Invoices are created by Contractors in Modern Insurer. When a contractor creates an Invoice, the Invoice starts in a Created state. When the Contractor submits the Invoice, the Invoice moves to a Submitted state.
While in a Submitted state, the Invoice can be approved with the Approve invoice endpoint. When approved, the Invoice moves to an Approved state. Contractors can mark Approved Invoices as Paid, which will update the status of the Invoice to Paid.
While in either a Created or Submitted state, the Contractor can cancel the Invoice. This will move the Invoice to a Cancelled state.

Invoice Lifecycle Diagram
Webhook Events
Created & Paid Statuses
While Created and Paid are valid states in the Invoice lifecycle, state changes to these statuses do not trigger webhook events. This is by design. These changes in state do not require action by the Insurer for the Invoice to proceed with its lifecycle. That said, these statuses will be provided in the Get invoice by ID response.
EventType | Description |
---|---|
invoice.submitted | The invoice has been submitted by the contractor. |
invoice.approved | The invoice has been successfully approved via API. |
invoice.cancelled | The invoice has been cancelled by the contractor. |
Sample Payloads
{
"eventType":"invoice.submitted",
"invoiceId":"676ee6f411ea12e6eb282c0b",
"invoiceNumber":"123456-dlkj09"
}
{
"eventType":"invoice.approved",
"invoiceId":"676ee6f411ea12e6eb282c0b",
"invoiceNumber":"123456-dlkj09"
}
{
"eventType":"invoice.cancelled",
"invoiceId":"676f8ab911ea12e6eb282cf4",
"invoiceNumber":"abc-7093421"
}