JSON schema

Invoice and receipt JSON schema

By Othmane M., founder of DocuParse API · Last reviewed: 2026-10-20

Every invoice or receipt you send comes back in this shape, whatever the layout. Here is a real result, then every field explained.

Real example

{
  "document_type": "invoice",
  "document_number": "31293737",
  "invoice_id": "31293737",
  "receipt_id": null,
  "date": "2020-12-15",
  "due_date": null,
  "currency": "USD",
  "merchant": "Nunez Inc",
  "merchant_address": "6551 Janet Gardens, Michaelberg, KS 90952",
  "merchant_email": null,
  "customer": "Alvarez Inc",
  "subtotal": "371.51",
  "tax": "37.15",
  "tax_rate": "10.00",
  "discount": null,
  "shipping": null,
  "total": "408.66",
  "payment_method": null,
  "notes": null,
  "line_items": [
    {
      "description": "Women's black cocktail dress, size 4",
      "quantity": 3,
      "price": "19.99",
      "line_total": "59.97",
      "vat_rate": "10.00"
    },
    {
      "description": "Christmas Dress Grace Karin Sleeveless Christmas dress Red Black size Large",
      "quantity": 1,
      "price": "9.99",
      "line_total": "9.99",
      "vat_rate": "10.00"
    },
    {
      "description": "Windsor womens black and Pink Bodycon Sleeveless Dress, Womens Size Small",
      "quantity": 1,
      "price": "15.83",
      "line_total": "15.83",
      "vat_rate": "10.00"
    },
    {
      "description": "Lumiere Large Multicolored Orange Short Dress NWT",
      "quantity": 4,
      "price": "4.99",
      "line_total": "19.96",
      "vat_rate": "10.00"
    },
    {
      "description": "Xhilaration Womens L Burgandy Boho Embroidered Festival Mini Dress NEW",
      "quantity": 4,
      "price": "14.95",
      "line_total": "59.80",
      "vat_rate": "10.00"
    },
    {
      "description": "Johnny Was Medium Linen Wrap Dress Dessert Rose Embroiderd Bohemian",
      "quantity": 2,
      "price": "89.99",
      "line_total": "179.98",
      "vat_rate": "10.00"
    },
    {
      "description": "Pre-Owned Women's Nah Nah Dress Size 8 Black Sheer Formal Sexy",
      "quantity": 2,
      "price": "12.99",
      "line_total": "25.98",
      "vat_rate": "10.00"
    }
  ]
}

Real output: the data object for a 7-line-item invoice. Nothing hand-edited.

Fields

FieldTypeCan be nullDescription
document_typestringnoinvoice, receipt, purchase_order, expense_report or unknown
document_numberstringyesThe business number on the document (invoice or receipt number)
invoice_idstringyesInvoice number, when the document is an invoice
receipt_idstringyesReceipt or transaction number, when the document is a receipt
datestring (YYYY-MM-DD)yesIssue date
due_datestring (YYYY-MM-DD)yesPayment due date
currencystring (ISO 4217)yesFor example USD, EUR
merchantstringyesSeller or store name
merchant_addressstringyesSeller address as printed
merchant_emailstringyesSeller email
customerstringyesBuyer name, when printed
subtotalstring (2 decimals)yesAmount before tax
taxstring (2 decimals)yesTax amount
tax_ratestring (2 decimals)yesTax rate in percent, e.g. "10.00"
discountstring (2 decimals)yesDiscount amount
shippingstring (2 decimals)yesShipping amount
totalstring (2 decimals)yesFinal amount
payment_methodstringyesFor example card or cash, when printed
notesstringyesFree-text notes on the document
confidencenumber (0–100)noHow consistent the extracted values are with each other
needs_reviewbooleannotrue when a person should check the result
line_items[].descriptionstringyesItem text
line_items[].quantitynumberyesQuantity
line_items[].pricestring (2 decimals)yesUnit price
line_items[].line_totalstring (2 decimals)yesLine amount
line_items[].vat_ratestring (2 decimals)yesLine tax rate in percent

confidence and needs_review appear in API responses next to these fields. The response envelope is {"success": true, "document_id": "…", "status": "completed", "data": { … }}.

Rules

  • Every field is always present; missing values are null, never omitted.
  • Money is a string with 2 decimals, so totals never lose precision.
  • quantity is a number.
  • Dates are ISO 8601 (YYYY-MM-DD).

Get this JSON from your own documents