Logo

Invoice Lifecycle

Beta

Invoice Statuses

Invoice Lifecycle image

Given the complex nature of invoicing the invocie has numerous states:

StatePossible transitionsDescription
GatheringN/AGathering the items to be invoiced. Note: for details please see Gathering Invoices, in this page only the other states will be discussed
DraftIssued, DeletedThe invoice is created and in draft state. The invoice can only be updated in this state. In later states the invoice can only be voided.
IssuedPayment ProcessingThe invoice is issued to the customer.
Payment ProcessingOverdue, Uncollectiable, Paid, VoidPayment is being processed.
OverduePaid, Void, UncollectibleThe invoice is overdue.
UncollectiblePaid, VoidThe invoice has been marked as uncollectible.
PaidN/AThe invoice has been paid.
VoidN/AThe invoice has been voided.
DeletedN/AThe invoice has been deleted and is no longer available.

Status details

Each of these states have a number of sub-states. Given the sheer number of substates an invoice can have, the API Provides a simpler intent-based description of the invoice states called the status details:

{
  "status": "draft",
  "statusDetails": {
      "availableActions": {
          "approve": {
              "resultingState": "payment_processing.pending"
          },
          "delete": {
              "resultingState": "deleted"
          }
      },
      "extendedStatus": "draft.waiting_auto_approval",
      "failed": false,
      "immutable": false
    },
}

The status field represents the primary invoice state, while statusDetails.extendedStatus provides more granular state information including substates. The status details object contains several key properties to help understand the current state and available actions without having to understand each substate:

  • availableActions: Enumerates the permitted operations that can be executed on the invoice, such as approve or delete, along with their resulting states
  • failed: Boolean indicator signifying whether the invoice is in a failed state
  • immutable: Boolean flag indicating whether the invoice can be modified further

Reference: list of extended statuses

States not listed here does not have extended statuses.

StatusDetailed statusDescription
draft
draft.createdThe draft invoice has been created, no processing has been performed.
draft.updatingThe draft invoice is being updated.
draft.validatingThe draft invoice is being validated by the App handling it.
draft.invalidThe draft invoice is invalid, needs to be updated before it can be issued.
draft.syncingThe draft invoice is being syncronized to an external system via it's assigned App.
draft.sync_failedThe syncronization has failed.
draft.manual_approval_neededThe invoice requires manual approval.
draft.waiting_auto_approvalThe invoice is waiting for it's draft period to pass. If a manual approval is issued on the invoice it will progress further.
draft.ready_to_issueThe invoice is ready to transition to the issuing state.
issuing
issuing.syncingThe invoice is being syncronized/finalized via an App
issuing.failedThe remote side failed to issue the invoice
payment_processing
payment_processing.pendingPayment is pending
payment_processing.failedPayment failed
payment_processing.action_requiredAction is required to complete the payment (e.g. modify Card data, etc.)
delete
delete.in_progressDeletion of invoice is in progress
delete.syncingDeletion is being syncronized to the external system
delete.failedDeletion field due to syncronization with an external system