Invoice data model
View field support, webhooks, and list parameters for each integration on the Supported Integrations page.
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | |
created_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
updated_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
due_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
paid_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
refunded_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
cancelled_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
posted_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
total_amount | number | No | |
paid_amount | number | No | |
refund_amount | number | No | |
tax_amount | number | No | |
discount_amount | number | No | |
balance_amount | number | No | |
invoice_number | string | No | External identifier (ie. reference) for this invoice |
reference | string | No | |
contact_id | string | No | (reference to AccountingContact) |
currency | string | No | |
notes | string | No | |
extended_notes | AccountingExtendedNote[] | No | |
extended_notes[].note | string | No | |
extended_notes[].user | AccountingExtendedNote_user | No | |
extended_notes[].user.id | string | No | |
extended_notes[].user.name | string | No | |
extended_notes[].date | string (date-time) | No | |
extended_notes[].visibility | enum | No | Values: PUBLIC, PRIVATE |
refund_reason | string | No | |
term | enum | No | @deprecated use payment_terms instead Values: ON_RECEIPT, NET_7, NET_10, NET_15, NET_20, NET_25, NET_30, NET_45, NET_60, NET_90, OTHER |
payment_terms | enum | No | Values: ON_RECEIPT, NET_7, NET_10, NET_15, NET_20, NET_25, NET_30, NET_45, NET_60, NET_90, OTHER |
paymentterm_id | string | No | |
lineitems | AccountingLineitem[] | No | |
lineitems[].id | string | No | |
lineitems[].created_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
lineitems[].updated_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
lineitems[].refunded_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
lineitems[].total_amount | number | No | unit_quantity * unit_amount + tax_amount |
lineitems[].refund_amount | number | No | |
lineitems[].discount_amount | number | No | |
lineitems[].tax_amount | number | No | |
lineitems[].item_id | string | No | (reference to CommerceItem) |
lineitems[].unit_amount | number | No | |
lineitems[].unit_quantity | number | No | |
lineitems[].item_sku | string | No | |
lineitems[].item_name | string | No | |
lineitems[].item_description | string | No | |
lineitems[].notes | string | No | |
lineitems[].taxrate_id | string | No | |
lineitems[].account_id | string | No | (reference to AccountingAccount) |
lineitems[].category_ids | string[] | No | (reference to AccountingCategory) |
lineitems[].locations | AccountingReference[] | No | |
lineitems[].locations[].id | string | No | |
lineitems[].locations[].name | string | No | |
lineitems[].item_variants | AccountingReference[] | No | |
lineitems[].item_variants[].id | string | No | |
lineitems[].item_variants[].name | string | No | |
lineitems[].fees | AccountingFee[] | No | |
lineitems[].fees[].type | enum | Yes | Unified fee category Values: TAX, DISCOUNT, PROMOTION, SHIPPING, GIFT_WRAP, COD, SURCHARGE, TIP, SERVICE_CHARGE, OTHER |
lineitems[].fees[].original_type | string | No | The provider's original fee label, e.g. "VAT" or a shipping carrier name |
lineitems[].fees[].amount | number | Yes | |
lineitems[].fees[].currency | string | No | ISO 4217 currency code, e.g. USD |
lineitems[].contact_id | string | No | (reference to AccountingContact) |
lineitems[].project_id | string | No | ref -> AccountingProject; the project this line is coded to (reference to TaskProject) |
lineitems[].exchange_rate | number | No | The exchange rate applied to this line, for multi-currency documents |
lineitems[].is_billable | boolean | No | True when the line is rebillable to a customer |
status | enum | No | Values: DRAFT, VOIDED, AUTHORIZED, PAID, PARTIALLY_PAID, PARTIALLY_REFUNDED, REFUNDED, SUBMITTED, DELETED, OVERDUE |
url | string | No | The public URL for the invoice to send to a customer to view or pay. |
payment_collection_method | enum | No | When set to charging_automatically, an automated attempt will occur to pay this invoice using the default payment source attached to the contactcustomer. When set to send_invoice, an will email will be sent with this invoice to the contact/customer with payment instructions. Values: send_invoice, charge_automatically |
type | enum | No | BILL removed (use AccountingBill); remaining values: INVOICE, CREDITMEMO Values: INVOICE, CREDITMEMO |
attachments | AccountingAttachment[] | No | |
attachments[].id | string | No | |
attachments[].download_url | string | No | |
attachments[].name | string | No | |
attachments[].mime_type | string | No | |
send | boolean | No | |
organization_id | string | No | |
payments | AccountingPaymentReference[] | No | ead-only reciprocal of PaymentPayment.allocations; payments applied to this invoice |
payments[].payment_id | string | No | references a PaymentPayment that was applied to this object (reference to PaymentPayment) |
payments[].amount | number | No | amount of the payment applied to this object |
payments[].allocated_at | string (date-time) | No | Date and time when the payment was applied, in ISO 8601 format and UTC (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
category_ids | string[] | No | (reference to AccountingCategory) |
project_id | string | No | (reference to TaskProject) |
metadata | AccountingMetadata[] | No | |
metadata[].id | string | No | |
metadata[].slug | string | No | |
metadata[].value | object | No | |
metadata[].namespace | string | No | |
metadata[].format | enum | No | Values: TEXT, NUMBER, DATE, BOOLEAN, FILE, TEXTAREA, SINGLE_SELECT, MULTIPLE_SELECT, MEASUREMENT, PRICE, YES_NO, CURRENCY, URL |
metadata[].extra_data | object | No | |
sub_total_amount | number | No | Total before tax |
exchange_rate | number | No | Exchange rate to the base/home currency at the document date |
is_inclusive_of_tax | boolean | No | True when the document amounts already include tax |
salesorder_ids | string[] | No | refs -> AccountingSalesorder; the sales orders this invoice was raised from |
Are we missing anything? Let us know