Invoice Lifecycle
Beta
Invoice Statuses
Given the complex nature of invoicing the invocie has numerous states:
State | Possible transitions | Description |
---|---|---|
Gathering | N/A | Gathering the items to be invoiced. Note: for details please see Gathering Invoices, in this page only the other states will be discussed |
Draft | Issued, Deleted | The 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. |
Issued | Payment Processing | The invoice is issued to the customer. |
Payment Processing | Overdue, Uncollectiable, Paid, Void | Payment is being processed. |
Overdue | Paid, Void, Uncollectible | The invoice is overdue. |
Uncollectible | Paid, Void | The invoice has been marked as uncollectible. |
Paid | N/A | The invoice has been paid. |
Void | N/A | The invoice has been voided. |
Deleted | N/A | The 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:
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 asapprove
ordelete
, along with their resulting statesfailed
: Boolean indicator signifying whether the invoice is in a failed stateimmutable
: Boolean flag indicating whether the invoice can be modified further
Reference: list of extended statuses
States not listed here does not have extended statuses.
Status | Detailed status | Description |
---|---|---|
draft | ||
draft.created | The draft invoice has been created, no processing has been performed. | |
draft.updating | The draft invoice is being updated. | |
draft.validating | The draft invoice is being validated by the App handling it. | |
draft.invalid | The draft invoice is invalid, needs to be updated before it can be issued. | |
draft.syncing | The draft invoice is being syncronized to an external system via it's assigned App. | |
draft.sync_failed | The syncronization has failed. | |
draft.manual_approval_needed | The invoice requires manual approval. | |
draft.waiting_auto_approval | The 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_issue | The invoice is ready to transition to the issuing state. | |
issuing | ||
issuing.syncing | The invoice is being syncronized/finalized via an App | |
issuing.failed | The remote side failed to issue the invoice | |
payment_processing | ||
payment_processing.pending | Payment is pending | |
payment_processing.failed | Payment failed | |
payment_processing.action_required | Action is required to complete the payment (e.g. modify Card data, etc.) | |
delete | ||
delete.in_progress | Deletion of invoice is in progress | |
delete.syncing | Deletion is being syncronized to the external system | |
delete.failed | Deletion field due to syncronization with an external system |