id
required |
string (uuid)
|
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
invoiceNumber
required |
string
|
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
status
required |
InvoiceStatus
InvoiceStatus |
Represents the lifecycle status of an invoice.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Draft |
Created, editable, not yet issued. | Issued |
Locked and immutable from this point forward. | Sent |
Delivered to recipient via a notification channel. | Viewed |
Recipient opened/viewed the invoice. | PartiallyPaid |
Some payments applied, balance remaining. | Paid |
Fully paid (balance = 0). | PastDue |
Due date passed with outstanding balance. | Closed |
Manually closed (write-off). | Uncollectible |
Auto-marked after dunning period exhausted (configurable: 30/60/90 days past due). | Cancelled |
Voided (only from Draft). | Refunded |
Full refund issued. |
|
billerSnapshot
required |
InvoicePartySnapshotDto
InvoicePartySnapshotDto |
Read DTO for denormalized biller/recipient info frozen at invoice issuance.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
Fields of InvoicePartySnapshotDto:
| Field |
Type |
Description |
name
required |
string
|
nullablemax length 200
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| email
required |
string
|
nullablemax length 256
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| phone
required |
string
|
nullablemax length 30
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| addressLine1
required |
string
|
nullablemax length 200
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| addressLine2
required |
string
|
nullablemax length 200
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| city
required |
string
|
nullablemax length 100
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| state
required |
string
|
nullablemax length 100
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| postalCode
required |
string
|
nullablemax length 20
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| country
required |
string
|
nullablemax length 100
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| companyName
required |
string
|
nullablemax length 200
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| taxId
required |
string
|
nullablemax length 50
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| logoUrl
required |
string
|
nullablemax length 2048
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
This body has no documented fields. |
recipientSnapshot
required |
InvoicePartySnapshotDto
InvoicePartySnapshotDto |
Read DTO for denormalized biller/recipient info frozen at invoice issuance.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
Fields of InvoicePartySnapshotDto:
| Field |
Type |
Description |
name
required |
string
|
nullablemax length 200
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| email
required |
string
|
nullablemax length 256
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| phone
required |
string
|
nullablemax length 30
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| addressLine1
required |
string
|
nullablemax length 200
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| addressLine2
required |
string
|
nullablemax length 200
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| city
required |
string
|
nullablemax length 100
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| state
required |
string
|
nullablemax length 100
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| postalCode
required |
string
|
nullablemax length 20
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| country
required |
string
|
nullablemax length 100
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| companyName
required |
string
|
nullablemax length 200
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| taxId
required |
string
|
nullablemax length 50
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| logoUrl
required |
string
|
nullablemax length 2048
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
This body has no documented fields. |
issueDate
required |
string (date-time)
|
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
dueDate
required |
string (date-time)
|
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
currency
required |
string
|
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
subtotal
required |
number (double)
|
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
taxTotal
required |
number (double)
|
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
discountTotal
required |
number (double)
|
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
grandTotal
required |
number (double)
|
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
amountPaid
required |
number (double)
|
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
balanceDue
required |
number (double)
|
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
invoiceLevelDiscount
required |
InvoiceDiscountDto
InvoiceDiscountDto |
DTO for an invoice-level discount.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
Fields of InvoiceDiscountDto:
| Field |
Type |
Description |
type
required |
DiscountType
DiscountType |
The type of discount applied to a line item or invoice.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Percent |
Percentage discount (e.g., 10%). | Flat |
Flat dollar amount discount (e.g., $5.00). |
| value
required |
number (double)
|
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| description
required |
string
|
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
This body has no documented fields. |
lineItems
required |
array of InvoiceLineItemDto
array of InvoiceLineItemDto |
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
Fields of each InvoiceLineItemDto:
| Field |
Type |
Description |
id
required |
string (uuid)
|
Stable identity for update/delete operations.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| sortOrder
required |
integer (int32)
|
Display order on the invoice.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| parentLineItemId
required |
string (uuid)
|
Parent line item ID for bundle/discount/tax line hierarchies.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| name
required |
string
|
Product name snapshot (formal product name).
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| description
required |
string
|
Line item description shown on PDF and HPP.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| notes
required |
string
|
Per-line notes visible to the biller only.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| productId
required |
string (uuid)
|
Optional link to the product catalog.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| productCode
required |
string
|
SKU or product code.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| unitOfMeasure
required |
string
|
Unit of measure (e.g., "each", "hour", "GB").
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| commodityCode
required |
string
|
Commodity code sent as enhanced (Level 3) card data when the invoice is paid by card. At most
25 characters.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| quantity
required |
number (double)
|
Quantity.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| unitPrice
required |
number (double)
|
Unit price.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| grossAmount
required |
number (double)
|
Computed: Quantity * UnitPrice.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| cost
required |
number (double)
|
Cost for margin tracking.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| pricingSource
required |
PricingSource
PricingSource |
How the unit price was determined.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Catalog |
Price taken from the product catalog at time of invoicing. | Override |
Price manually overridden by the user. | Promotion |
Price determined by a promotion or coupon. | Contract |
Price from a negotiated contract or quote. |
| discountType
required |
DiscountType
DiscountType |
Type of discount applied to this line item.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Percent |
Percentage discount (e.g., 10%). | Flat |
Flat dollar amount discount (e.g., $5.00). |
| discountValue
required |
number (double)
|
Discount value (percentage or flat amount).
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| discountAmount
required |
number (double)
|
Resolved discount amount.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| netAmount
required |
number (double)
|
After discount, before tax.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| taxRateId
required |
string (uuid)
|
Reference to a reusable tax rate definition.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| taxRatePercent
required |
number (double)
|
Snapshot of the tax rate percentage.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| taxableAmount
required |
number (double)
|
Explicit taxable base amount.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| taxAmount
required |
number (double)
|
Computed tax amount.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| taxJurisdiction
required |
string
|
Tax jurisdiction (state/country).
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| taxRateSource
required |
InvoiceTaxRateSource
InvoiceTaxRateSource |
Where `taxRatePercent` came from. Always populated on read: a line stored before
provenance existed reads as Catalog when it names a `taxRateId`, otherwise Manual.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Manual |
The operator typed the percentage, or nothing recorded where it came from. | Catalog |
The percentage was snapshotted from one of the biller's named tax rates. | Provider |
The percentage was sourced from the merchant's bound tax provider. |
| taxRateProviderName
required |
string
|
The tax provider that sourced the percentage, when `taxRateSource` is Provider.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| taxCode
required |
string
|
Tax code snapshotted from product or overridden.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| isTaxable
required |
boolean
|
Whether tax applies to this line.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| lineTotal
required |
number (double)
|
Line total including tax.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| isDiscountLine
required |
boolean
|
Indicates this is a discount adjustment line.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| isSystemGenerated
required |
boolean
|
Indicates this line was auto-generated.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| isOptional
required |
boolean
|
For quotes-to-invoices flow: whether this line is optional.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| revenueAccount
required |
string
|
GL account for revenue recognition.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| recognitionStartDate
required |
string (date-time)
|
Revenue recognition start date.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| recognitionEndDate
required |
string (date-time)
|
Revenue recognition end date.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| attributes
required |
object
|
Extensibility metadata (key-value pairs).
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
This body has no documented fields. |
payments
required |
array of PublicInvoicePaymentSummaryDto
array of PublicInvoicePaymentSummaryDto |
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
Fields of each PublicInvoicePaymentSummaryDto:
| Field |
Type |
Description |
amount
required |
number (double)
|
The amount applied against the invoice balance: the invoiced base. Unchanged in meaning;
any fee the payer was charged on top is reported separately below.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| convenienceFeeAmount
required |
number (double)
|
The convenience fee this payment carried on top of `amount`, in the invoice currency,
when one was assessed. New and optional: `amount` and every invoice-level amount on the
parent view keep their existing base-only meaning.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| surchargeAmount
required |
number (double)
|
The credit-card surcharge this payment carried, in the invoice currency, when one was assessed.
New and optional; see
`convenienceFeeAmount`.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| chargedTotal
required |
number (double)
|
The total the payer was actually charged, when known. New and optional.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| paymentMethod
required |
string
|
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| status
required |
InvoicePaymentStatus
InvoicePaymentStatus |
Status of a payment attempt against an invoice.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Pending |
Payment is pending processing. | Succeeded |
Payment succeeded. | Declined |
Payment was declined by the processor. | Returned |
Payment was returned (e.g., ACH return). | Refunded |
Payment was refunded. | Indeterminate |
The attempt reached the processor but produced no answer the invoice can act on: a referral the merchant has to resolve by voice, a pending or submitted authorization, a partial approval whose approved base cannot be derived, or a status the platform does not recognize. Nothing is credited against the balance and the attempt is not a decline; the row exists so the invoice shows that someone tried and what came back. |
| appliedAt
required |
string (date-time)
|
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
This body has no documented fields. |
recipientNote
required |
string
|
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
footerText
required |
string
|
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
paymentLinkUrl
required |
string
|
The absolute URL of the hosted payment page for this invoice, present while the invoice holds a
live payment link. Null when the invoice has no payment link, the link has expired, the invoice
is fully paid, or the payment host's base URL is unavailable.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
pdfDownloadUrl
required |
string
|
The absolute URL that downloads this invoice's PDF document, authorized by the same view token
used to read this response. Null when the platform's base URL is unavailable.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
allowPartialPayment
required |
boolean
|
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
minimumPaymentAmount
required |
number (double)
|
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
depositRequest
required |
InvoiceDepositRequestInfoDto
InvoiceDepositRequestInfoDto |
The deposit request on this invoice, if any. Present when a deposit was requested.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
Fields of InvoiceDepositRequestInfoDto:
| Field |
Type |
Description |
depositType
required |
InvoiceDepositType
InvoiceDepositType |
Whether the deposit is a percentage of the total or a fixed amount.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Percentage |
Deposit is a percentage (0 < value < 100) of the invoice grand total. | FixedAmount |
Deposit is a fixed currency amount (0 < value < grand total). |
| depositValue
required |
number (double)
|
The configured percentage (e.g. 25 for 25%) or fixed amount.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| depositAmount
required |
number (double)
|
The resolved absolute deposit amount (rounded to the cent).
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| depositDueDate
required |
string (date-time)
|
When the deposit is due; null when due on receipt with the invoice.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
| isSatisfied
required |
boolean
|
True once the deposit has been fully collected.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
This body has no documented fields. |
nextPaymentAmount
required |
number (double)
|
The exact amount the payer must submit for the next payment. When a deposit is still outstanding
this is the deposit amount (the pay surface collects exactly this, not an arbitrary partial);
otherwise it is the remaining `balanceDue`.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
depositOutstanding
required |
boolean
|
True while a deposit is requested and not yet fully collected.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|