Invoice States
A BitPay invoice can be in one of a number of states. A payment can only be credited to a BitPay invoice when its base state is new.
There are two sets of invoice states that may be consulted: base states and exception states. Base states provide a simple and straight-forward understanding of the overall status of an invoice. Exception states provide additional details about the status of the invoice if a payment exception has occurred.
Base States
new
new
An invoice starts in this state. When in this state and only in this state, payments broadcasted by purchasers will be applied to the invoice (there is a 15 minute window for the purchaser to send a payment from their crypto wallet). If an invoice has received a partial payment, it will still reflect a status of new to the merchant. From a merchant system perspective, an invoice is either paid or not paid, partial payments are automatically refunded by BitPay to the consumer.
paid
paid
As soon as payment is received, it is evaluated against the invoice requested amount. If the amount paid is equal to or greater than the amount expected, then the invoice is marked as being paid. To detect whether the invoice has been overpaid, consult the invoice exception status (exceptionStatus
parameter). The overpaid amount on an invoice is automatically refunded by BitPay to the consumer.
This status does not represent a payment guarantee for the merchant, it only indicates the customer has broadcasted a transaction from his cryptocurrency wallet. The transaction still needs to be validated on the corresponding network (see status confirmed
and complete
).
confirmed
confirmed
This is the invoice status to be monitored by merchants in order to fulfill orders placed by the consumer. Merchants can configure the timing at which BitPay sets this specific invoice status, depending on the number of confirmations achieved by the consumer's transaction in the selected cryptocurrency. This can be configured during invoice creation using the transactionSpeed
parameter:
- high: The invoice is marked as
confirmed
by BitPay as soon as full payment is received but not yet validated on the corresponding blockchain. The invoice will go from a status ofnew
toconfirmed
, bypassing thepaid
status. If you want an immediate notification for a payment, you can use the high speed setting. However, it makes you more susceptible to receiving fraudulent payments. - medium (recommended for most implementations): The invoice is marked as
confirmed
after the transaction has received basic confirmation on the corresponding blockchain. For invoices paid in Bitcoin (BTC), this means 1 confirmation on the blockchain which takes on average 10 minutes. The invoice will go from a status ofnew
topaid
followed byconfirmed
and thencomplete
- low: The invoice will go from a status of
new
topaid
followed bycomplete
, thus bypassing theconfirmed
status. For invoices paid in Bitcoin (BTC), the statuscomplete
is reached once the customer's transaction has 6 block confirmations on the blockchain which takes on average an hour.
Note:
- When not set on the invoice,
transactionSpeed
will default to the account-level order settings - Orders are only credited to the BitPay Account for settlement after the invoice reaches the status
complete
(regardless of thetransactionSpeed
setting).
complete
complete
When an invoice has the status complete, it means that BitPay has credited the merchant account in the currency indicated in the settlement settings. For instance, with invoices paid in Bitcoin (BTC), 6 confirmation blocks on the bitcoin network are required for an invoice to be complete, this takes on average 1 hour.
expired
expired
An expired invoice is one where payment was not received and the 15 minute payment window has elapsed.
invalid
invalid
An invoice is considered invalid when it was paid, but the corresponding cryptocurrency transaction was not confirmed within 1 hour on the corresponding blockchain. It is possible that some transactions can take longer than 1 hour to be included in a block. If the transaction confirms after 1 hour, BitPay will update the invoice state from invalid to confirmed or complete (6 confirmations for transactions on the bitcoin network for instance).
Exception States
false
false
The invoice is not in an exception state.
paidPartial
paidPartial
If the amount paid is less than the amount expected then the invoice is marked as being partially paid. Partially paid invoice are not credited to the merchant and instead automatically refunded to the customer.
paidOver
paidOver
If the amount paid is greater than the amount expected then the invoice is marked as being overpaid. The overpaid amount on an invoice is not credited to the merchant and instead automatically refunded to the customer.
Updated about 2 years ago