Status

Invoice status can have the following values:

"New": An invoice starts in this state. There is a 30 minute (default) window for the buyer 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.

"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 (error_status parameter).

"Confirmed": This status can be used by merchants in order to fulfill orders placed by the consumer. Merchants can configure the timing at which UniPayment sets this specific invoice status, depending on the number of confirmation achieved by the consumer's transaction in the selected cryptocurrency. This can be configured during invoice creation using the "confirm_speed" parameter (section Create an invoice), or at account level via a global setting.

"Complete": When an invoice has the status complete, it means that UniPayment has credited the merchant account. 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": An invoice reaches the expired status if no payment was received and the 30 minute payment window has elapsed.

"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, UniPayment will update the invoice state from "invalid" to "complete" (6 confirmations for transactions on the bitcoin network for instance).

ErrorStatus

Initially a string None, this parameter will indicate if the buyer sent too much ("PaidOver") or not enough funds ("PaidPartial") in the transaction to pay the UnPayment invoice.

Possible values are:
"None": default value unless an exception is triggered.
"PaidPartial": if the consumer did not send enough funds when paying the invoice.
"PaidOver": if the consumer sent too much funds when paying the invoice.
"PaidLater": if the consumer pay the invoice after invoice is expired.
"Marked": if the invoice is marked by operator.