What you billed your customers, read-only.
idintegerbilling_addressobjectbilling_addresscitystringnullableline1stringnullableline2stringnullablepostal_codestringnullablestatestringnullablecancelled_atstringnullablecompanystringnullablecreated_atstringnullablecustomer_idintegernullableinvoice_nointegernullableis_cancelledbooleanA cancelled invoice is kept, never deleted.
linesarray of objectsnullableOn a single invoice; null on the list.
linesidintegerdiscount_ratenumbernullablePercent off this line. Requires cost:read.
pricenumbernullablePer uom_type unit. Requires cost:read.
product_codestringnullableproduct_idintegernullableproduct_namestringnullableshipped_qtynumbernullableShipped, in uom_type units.
shipped_qty_basenumbernullableShipped, in the product's base unit.
tax1booleannullableWhether tax 1 applies to this line. Requires cost:read.
tax2booleannullableWhether tax 2 applies to this line. Requires cost:read.
uom_typestringnullableThe unit shipped_qty and price are in.
INVENTORY_UNITPACKAGING_SIZEBASE_UOMorder_datestringnullablepaid_amountnumbernullableRequires cost:read.
sales_order_idintegernullableship_datestringnullableshipping_addressobjectshipping_addresscitystringnullableline1stringnullableline2stringnullablepostal_codestringnullablestatestringnullablesubtotalnumbernullableSum of the lines after line discounts, before tax. Requires cost:read; null means redacted, not zero.
tax1booleannullableWhether tax 1 applies to this document. Requires cost:read; null means redacted, not false.
tax1_ratenumbernullableTax 1 percentage, e.g. 5.0 for 5%. Requires cost:read.
tax2booleannullableWhether tax 2 applies to this document. Requires cost:read; null means redacted, not false.
tax2_ratenumbernullableTax 2 percentage, e.g. 5.0 for 5%. Requires cost:read.
updated_atstringnullable/invoicessales:readRead-only: shipping produces invoices. Use search or the named filters, not both. Money fields require cost:read.
customer_idintegernullablesales_order_idintegernullableinvoice_date_fromstringnullableinvoice_date_tostringnullablesearchstringnullableFree-text match.
sortstringnullableComma-separated field:direction pairs, e.g. id:desc. Sortable: created_at, id, invoice_no, order_date, ship_date, updated_at. id is always added last, so paging is stable.
limitintegerRows to return. Maximum 200.
offsetintegerRows to skip. Maximum 10000: to read further, narrow the filters or page with updated_since.
updated_sincestringnullableOnly rows changed after this instant, as an ISO 8601 timestamp; without an offset it is read as UTC. Tracks the record itself, not its child rows, and deletions are not reported, so reconcile by re-listing from time to time.
data, with pagination.curl "https://public-api.nutrasoft.ca/v1/invoices?limit=50" \
-H "Authorization: Bearer $NUTRASOFT_API_KEY"{
"data": [
{
"id": 123,
"billing_address": {
"city": "Montreal",
"line1": "123 Example Street",
"line2": "Suite 200",
"postal_code": "H4S 2C1",
"state": "QC"
},
"cancelled_at": "2026-09-10",
"company": "Example Foods Inc.",
"created_at": "2026-09-10T14:30:00Z",
"customer_id": 123,
"invoice_no": 10,
"is_cancelled": false,
"lines": null,
"order_date": "2026-09-10",
"paid_amount": 12.5,
"sales_order_id": 123,
"ship_date": "2026-09-10",
"shipping_address": {
"city": "Montreal",
"line1": "123 Example Street",
"line2": "Suite 200",
"postal_code": "H4S 2C1",
"state": "QC"
},
"subtotal": 12.5,
"tax1": false,
"tax1_rate": 12.5,
"tax2": false,
"tax2_rate": 12.5,
"updated_at": "2026-09-10T14:30:00Z"
}
],
"pagination": {
"limit": 50,
"offset": 0,
"total": 1,
"has_more": false
},
"order": "id:asc"
}/invoices/{invoice_id}sales:readinvoice_idintegerrequiredThe invoice's id.
data.curl "https://public-api.nutrasoft.ca/v1/invoices/123" \
-H "Authorization: Bearer $NUTRASOFT_API_KEY"{
"data": {
"id": 123,
"billing_address": {
"city": "Montreal",
"line1": "123 Example Street",
"line2": "Suite 200",
"postal_code": "H4S 2C1",
"state": "QC"
},
"cancelled_at": "2026-09-10",
"company": "Example Foods Inc.",
"created_at": "2026-09-10T14:30:00Z",
"customer_id": 123,
"invoice_no": 10,
"is_cancelled": false,
"lines": [
{
"id": 123,
"discount_rate": 12.5,
"price": 12.5,
"product_code": "SAMPLE-01",
"product_id": 123,
"product_name": "Sample name",
"shipped_qty": 12.5,
"shipped_qty_base": 12.5,
"tax1": false,
"tax2": false,
"uom_type": "INVENTORY_UNIT"
}
],
"order_date": "2026-09-10",
"paid_amount": 12.5,
"sales_order_id": 123,
"ship_date": "2026-09-10",
"shipping_address": {
"city": "Montreal",
"line1": "123 Example Street",
"line2": "Suite 200",
"postal_code": "H4S 2C1",
"state": "QC"
},
"subtotal": 12.5,
"tax1": false,
"tax1_rate": 12.5,
"tax2": false,
"tax2_rate": 12.5,
"updated_at": "2026-09-10T14:30:00Z"
}
}