Invoices
- get/v1/invoicesList invoices
- post/v1/invoicesCreate a draft invoice
- get/v1/invoices/{id}Retrieve an invoice
- post/v1/invoices/{id}/finalizeFinalize, create its payment and email the customer the checkout link
- post/v1/invoices/{id}/voidVoid an unpaid invoice
List invoices
get/v1/invoices
Parameters
statusdraft | open | paid | voidin querycustomerstring (uuid)in queryOnly this customer's
curl https://sandbox.api.biftpay.com/v1/invoices \
-H "Authorization: Bearer bp_test_..."Responses
- 200Invoicesobject
Fields
object"list"requireddataarray of InvoicerequiredFields of data
idstring (uuid)requiredobject"invoice"requiredlivemodebooleanrequirednumberstringrequiredcustomerstring (uuid)requiredbrandstring (uuid) | nullstatusdraft | open | paid | voidrequiredcurrencyNGN | USDrequireditemsarray of objectrequiredFields of items
descriptionstringrequiredquantityintegerrequiredunit_amountintegerrequiredamountintegerrequiredtotalintegerrequiredMinor units (kobo, cents).
at least 0
due_datestring (date) | nullmemostring | nullpayment_intentstring (uuid) | nullhosted_invoice_urlstringThe customer's pay link. Present while the invoice is open (from finalize onwards, on every read); gone once paid or void.
created_atstring (date-time)requiredfinalized_atstring (date-time) | nullpaid_atstring (date-time) | nullvoided_atstring (date-time) | nullhas_moreboolean
Create a draft invoice
post/v1/invoices
Parameters
Idempotency-Keystringin headerrequiredA unique key per logical request, for example a UUID. Up to 255 characters.
up to 255 characters
Body
customerstring (uuid)requiredcurrencyNGN | USDbrandstring (uuid)itemsarray of objectrequiredFields of items
descriptionstringrequiredup to 200 characters
quantityintegerrequiredat least 1
unit_amountintegerrequiredat least 1
due_datestring (date)memostringup to 1000 characters
curl -X POST https://sandbox.api.biftpay.com/v1/invoices \
-H "Authorization: Bearer bp_test_..." \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"customer": "…",
"items": [
{
"description": "…",
"quantity": 1,
"unit_amount": 1
}
]
}'Responses
- 201CreatedInvoice
Fields
idstring (uuid)requiredobject"invoice"requiredlivemodebooleanrequirednumberstringrequiredcustomerstring (uuid)requiredbrandstring (uuid) | nullstatusdraft | open | paid | voidrequiredcurrencyNGN | USDrequireditemsarray of objectrequiredFields of items
descriptionstringrequiredquantityintegerrequiredunit_amountintegerrequiredamountintegerrequiredtotalintegerrequiredMinor units (kobo, cents).
at least 0
due_datestring (date) | nullmemostring | nullpayment_intentstring (uuid) | nullhosted_invoice_urlstringThe customer's pay link. Present while the invoice is open (from finalize onwards, on every read); gone once paid or void.
created_atstring (date-time)requiredfinalized_atstring (date-time) | nullpaid_atstring (date-time) | nullvoided_atstring (date-time) | null - 400Invalid request
Retrieve an invoice
get/v1/invoices/{id}
Parameters
idstring (uuid)in pathrequiredcurl https://sandbox.api.biftpay.com/v1/invoices/{id} \
-H "Authorization: Bearer bp_test_..."Responses
- 200The invoiceInvoice
Fields
idstring (uuid)requiredobject"invoice"requiredlivemodebooleanrequirednumberstringrequiredcustomerstring (uuid)requiredbrandstring (uuid) | nullstatusdraft | open | paid | voidrequiredcurrencyNGN | USDrequireditemsarray of objectrequiredFields of items
descriptionstringrequiredquantityintegerrequiredunit_amountintegerrequiredamountintegerrequiredtotalintegerrequiredMinor units (kobo, cents).
at least 0
due_datestring (date) | nullmemostring | nullpayment_intentstring (uuid) | nullhosted_invoice_urlstringThe customer's pay link. Present while the invoice is open (from finalize onwards, on every read); gone once paid or void.
created_atstring (date-time)requiredfinalized_atstring (date-time) | nullpaid_atstring (date-time) | nullvoided_atstring (date-time) | null - 404Not found, or not visible to this key
Finalize, create its payment and email the customer the checkout link
post/v1/invoices/{id}/finalize
Returns hosted_invoice_url. The invoice becomes paid when that payment succeeds (invoice.paid event).
Parameters
idstring (uuid)in pathrequiredIdempotency-Keystringin headerrequiredA unique key per logical request, for example a UUID. Up to 255 characters.
up to 255 characters
curl -X POST https://sandbox.api.biftpay.com/v1/invoices/{id}/finalize \
-H "Authorization: Bearer bp_test_..." \
-H "Idempotency-Key: $(uuidgen)"Responses
- 200The open invoiceInvoice
Fields
idstring (uuid)requiredobject"invoice"requiredlivemodebooleanrequirednumberstringrequiredcustomerstring (uuid)requiredbrandstring (uuid) | nullstatusdraft | open | paid | voidrequiredcurrencyNGN | USDrequireditemsarray of objectrequiredFields of items
descriptionstringrequiredquantityintegerrequiredunit_amountintegerrequiredamountintegerrequiredtotalintegerrequiredMinor units (kobo, cents).
at least 0
due_datestring (date) | nullmemostring | nullpayment_intentstring (uuid) | nullhosted_invoice_urlstringThe customer's pay link. Present while the invoice is open (from finalize onwards, on every read); gone once paid or void.
created_atstring (date-time)requiredfinalized_atstring (date-time) | nullpaid_atstring (date-time) | nullvoided_atstring (date-time) | null - 409The object is in a state that doesn't allow this
Void an unpaid invoice
post/v1/invoices/{id}/void
Parameters
idstring (uuid)in pathrequiredIdempotency-Keystringin headerrequiredA unique key per logical request, for example a UUID. Up to 255 characters.
up to 255 characters
curl -X POST https://sandbox.api.biftpay.com/v1/invoices/{id}/void \
-H "Authorization: Bearer bp_test_..." \
-H "Idempotency-Key: $(uuidgen)"Responses
- 200The void invoiceInvoice
Fields
idstring (uuid)requiredobject"invoice"requiredlivemodebooleanrequirednumberstringrequiredcustomerstring (uuid)requiredbrandstring (uuid) | nullstatusdraft | open | paid | voidrequiredcurrencyNGN | USDrequireditemsarray of objectrequiredFields of items
descriptionstringrequiredquantityintegerrequiredunit_amountintegerrequiredamountintegerrequiredtotalintegerrequiredMinor units (kobo, cents).
at least 0
due_datestring (date) | nullmemostring | nullpayment_intentstring (uuid) | nullhosted_invoice_urlstringThe customer's pay link. Present while the invoice is open (from finalize onwards, on every read); gone once paid or void.
created_atstring (date-time)requiredfinalized_atstring (date-time) | nullpaid_atstring (date-time) | nullvoided_atstring (date-time) | null - 409The object is in a state that doesn't allow this