Invoices and payment states
Every payment, request and paid invoice is an invoice. Its status says where the money is.
Statuses
These are the main statuses. A status can also read marked_paid, processing or archived; see the status field below.
| Status | Shown as | Meaning |
|---|---|---|
| draft | Draft | created but not yet delivered to the payer |
| sent | Sent | delivered to the payer, not yet opened |
| viewed | Viewed | the payer has opened it |
| authorized | Authorized | the payer has confirmed the payment; the money is not yet captured |
| paid | Paid | the charge succeeded and the money is captured from the payer |
| deposited | Deposited | the money has reached the payee's bank; the last status |
A held payment
A 200 or 201 can carry an invoice whose status is authorized. The payment is held, not paid: the payee is not yet approved, or the charge was soft-declined. Read the invoice's status, never the HTTP code.
Fields
| Field | Type | Meaning |
|---|---|---|
| id | string | the invoice's id |
| number | string | the invoice number people read: a date stamp and both parties' initials |
| workStartedOn | string | the start of the period the invoice covers |
| workEndedOn | string | the end of that period |
| dueOn | string | the day payment is due |
| createdAt | string | when the invoice was created |
| updatedAt | string | when it last changed |
| vendorId | string | the payee |
| clientId | string | the payer |
| estimatedPayoutDate | string or null | the day the payee is expected to receive the money |
| token | string or null | the token in the invoice's shareable link |
| cashPrice | number or null | what the payer pays by bank |
| creditPrice | number or null | what the payer pays by card |
| feesForBankAccount | number or null | the bank fee; inside cashPrice when the payer pays it, otherwise borne by the payee |
| feesForCreditCard | number or null | the card fee; inside creditPrice when card pricing is separate |
| bankAccountId | string or null | the bank chosen to pay, when the payer paid by bank |
| creditCardId | string or null | the card chosen to pay, when the payer paid by card |
| amount | number | the invoice's amount, before fees and any tip |
| currency | string | the currency code, USD |
| date | string or null | the date the payee dated the invoice |
| pdfUrl | string or null | a PDF of the invoice, when one exists |
| type | string or null | invoice, request, sent (a payment sent through Prio) or booking |
| recurringPeriod | string or null | Weekly, Monthly or One Time, for a repeating invoice |
| recurringEndDate | string or null | the last day a repeating invoice repeats |
| recurringMaxPeriods | number or null | the most times a repeating invoice repeats |
| tip | number | a tip the payer added on top of amount |
| templateId | string or null | the repeating invoice this one came from |
| status | string or null | one of the statuses above, or marked_paid (paid outside Prio), processing (a payment going through) or archived |
| description | string or null | what the invoice is for |
Formats
Amounts are JSON numbers in US dollars. createdAt and updatedAt carry up to six fractional digits and an offset, as in 2026-10-09T14:03:21.482913+00:00. Dates such as dueOn are YYYY-MM-DD.
Reconciling
Match on your customer's id (as vendorId or clientId), the invoice's id and its number. The date-range read returns the newest first, with no paging and no limit. There is no reference field of your own and no export.
Failed payments
Your console's Payments tab lists failed payments under Failed. The errors Pay an invoice can return are on its page.