Skip to content

Invoice.overdue

An open Invoice passed its due date unpaid, or a retry on the Startup’s retry schedule failed.

PropertyValue
Raised byNo Verb: a clock raises it
NounInvoice
MovesInvoice open to uncollectible when every retry on the Startup’s retry schedule has failed; Subscription active to pastDue when the Invoice bills this Subscription; Subscription pastDue to canceled when every retry on the Startup’s retry schedule has failed
WakesNone.

Payload

Each delivery is an Event record. data holds the Invoice as it stands.

FieldTypeRequiredDescription
namestringrequiredInvoice.overdue.
atdatetimerequiredWhen it happened.
seqintegerIts position in the namespace, one more than the Event before; any seq is a cursor into the history.
datajsonrequiredThe Thing as the Action left it.
data.invoiceInvoicerequiredThe Invoice as the change left it.
data.invoice.totalmoneyrequiredThe amount due.
data.invoice.duedaterequiredWhen payment is due.
data.invoice.paidAtdatetimeWhen it was paid.
data.invoice.statusstringOne of draft, open, paid, void, or uncollectible.
data.invoice.collectionstringcharge charges the saved payment method; send sends the Invoice and waits for a transfer. charge by default.
data.invoice.termsintegerDays from issue until a send Invoice is due, such as 30; sets due.
data.invoice.purchaseOrderstringThe Customer’s purchase order number, printed on the Invoice.
data.invoice.refundedmoneyThe total returned to the Customer, from zero up to the amount paid.
data.invoice.numberstringThe Invoice number, sequential per Startup and never reused, voided Invoices included.
data.invoice.linesjsonEach Offer billed: its quantity, Period and amount, with any Coupon or Credit Grant applied.
data.invoice.pdfurlThe Invoice, or its receipt once paid, as a PDF on the Startup’s Domain that names the seller of record.
data.invoice.payUrlurlThe page on the Startup’s Domain where the Customer pays it by card or bank transfer.
data.attemptintegerrequiredWhich retry failed; 0 when the due date passed.
data.nextRetryAtdatetimeWhen the next retry runs; empty after the last one.

Example

JSON
{
  "$id": "https://api.sb/leaseline.app/events/evt_mzIP2xFQZY",
  "$type": "Event",
  "name": "Invoice.overdue",
  "at": "2026-10-14T08:00:00Z",
  "data": {
    "invoice": {
      "$id": "https://api.sb/leaseline.app/invoices/inv_FXANyzQojc",
      "$type": "Invoice",
      "total": {
        "amount": 29,
        "currency": "USD"
      },
      "due": "2026-10-13",
      "status": "open",
      "collection": "charge",
      "terms": 0,
      "refunded": {
        "amount": 0,
        "currency": "USD"
      },
      "number": "LEAS-0018",
      "lines": [
        {
          "offer": "offer_2hzYe1ERo0",
          "quantity": 1,
          "period": "2026-10",
          "amount": {
            "amount": 29,
            "currency": "USD"
          }
        }
      ],
      "pdf": "https://leaseline.app/invoices/LEAS-0018.pdf",
      "payUrl": "https://leaseline.app/pay/LEAS-0018"
    },
    "attempt": 1,
    "nextRetryAt": "2026-10-22T12:00:00Z"
  },
  "seq": 82
}