QuickBooks Online Invoice
An Invoice represents a sales form where the customer pays for a product or service later. QuickBooks Online records an accounts receivable transaction for each invoice. This schema describes the full Invoice entity as returned by the QuickBooks Online Accounting API.
Properties
| Name | Type | Description |
|---|---|---|
| Id | string | Unique identifier for the invoice, assigned by QuickBooks Online. |
| SyncToken | string | Version number of the entity used for optimistic concurrency control. Required for update operations. The value changes each time the entity is updated. |
| MetaData | object | |
| DocNumber | string | Reference number for the transaction. If not provided during creation, QuickBooks auto-generates a sequential number. |
| TxnDate | string | The date of the transaction in YYYY-MM-DD format. Defaults to the current date if not specified. |
| DueDate | string | The date when payment is due. Calculated based on the sales terms if not explicitly set. |
| PrivateNote | string | A private note for internal use that is not displayed to the customer. |
| CustomerMemo | object | A note to the customer that appears on the invoice. |
| CustomerRef | object | Reference to the customer associated with this invoice. Required for creation. |
| BillAddr | object | Bill-to address for the invoice. |
| ShipAddr | object | Ship-to address for the invoice. |
| BillEmail | object | Email address to which the invoice is sent. |
| Line | array | Individual line items of the transaction. At least one line item with a valid DetailType is required. |
| TxnTaxDetail | object | Tax details for the entire invoice transaction. |
| TotalAmt | number | Total amount of the transaction including tax. This is a calculated field and is read-only. |
| Balance | number | The balance remaining to be paid on the invoice. A value of 0 indicates the invoice is fully paid. |
| Deposit | number | Deposit amount previously applied to this invoice. |
| DepositToAccountRef | object | Account where the deposit was made. |
| SalesTermRef | object | Reference to the sales term (e.g., Net 30, Due on Receipt). |
| PaymentMethodRef | object | Reference to the payment method for this invoice. |
| CurrencyRef | object | Reference to the currency used for this invoice. Only applicable for companies with multicurrency enabled. |
| ExchangeRate | number | The exchange rate between the invoice currency and the home currency. Only applicable for multicurrency companies. |
| ShipDate | string | Date for delivery of goods or services. |
| ShipMethodRef | object | Reference to the shipping method. |
| TrackingNum | string | Shipping tracking number. |
| ApplyTaxAfterDiscount | boolean | If true, tax is calculated after applying any discount. If false, tax is calculated before the discount. |
| PrintStatus | string | Printing status of the invoice. |
| EmailStatus | string | Email delivery status of the invoice. |
| GlobalTaxCalculation | string | Method in which tax is applied. TaxExcluded means line amounts are exclusive of tax. TaxInclusive means line amounts include tax. |
| AllowOnlinePayment | boolean | Whether online payment is allowed for this invoice. |
| AllowOnlineCreditCardPayment | boolean | Whether online credit card payment is allowed. |
| AllowOnlineACHPayment | boolean | Whether online ACH (bank transfer) payment is allowed. |
| CustomField | array | Custom fields defined for the invoice. A maximum of 3 custom fields are supported. |
| LinkedTxn | array | Transactions linked to this invoice such as payments or credit memos. |
| domain | string | Domain of the entity (e.g., QBO). |
| sparse | boolean | Indicates whether this is a sparse (partial) representation of the entity. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/api-evangelist/intuit/json-schema/intuit-invoice-schema.json",
"title": "QuickBooks Online Invoice",
"description": "An Invoice represents a sales form where the customer pays for a product or service later. QuickBooks Online records an accounts receivable transaction for each invoice. This schema describes the full Invoice entity as returned by the QuickBooks Online Accounting API.",
"type": "object",
"properties": {
"Id": {
"type": "string",
"description": "Unique identifier for the invoice, assigned by QuickBooks Online.",
"readOnly": true
},
"SyncToken": {
"type": "string",
"description": "Version number of the entity used for optimistic concurrency control. Required for update operations. The value changes each time the entity is updated."
},
"MetaData": {
"$ref": "#/$defs/MetaData"
},
"DocNumber": {
"type": "string",
"description": "Reference number for the transaction. If not provided during creation, QuickBooks auto-generates a sequential number.",
"maxLength": 21
},
"TxnDate": {
"type": "string",
"format": "date",
"description": "The date of the transaction in YYYY-MM-DD format. Defaults to the current date if not specified."
},
"DueDate": {
"type": "string",
"format": "date",
"description": "The date when payment is due. Calculated based on the sales terms if not explicitly set."
},
"PrivateNote": {
"type": "string",
"description": "A private note for internal use that is not displayed to the customer.",
"maxLength": 4000
},
"CustomerMemo": {
"type": "object",
"description": "A note to the customer that appears on the invoice.",
"properties": {
"value": {
"type": "string",
"maxLength": 1000
}
}
},
"CustomerRef": {
"$ref": "#/$defs/ReferenceType",
"description": "Reference to the customer associated with this invoice. Required for creation."
},
"BillAddr": {
"$ref": "#/$defs/PhysicalAddress",
"description": "Bill-to address for the invoice."
},
"ShipAddr": {
"$ref": "#/$defs/PhysicalAddress",
"description": "Ship-to address for the invoice."
},
"BillEmail": {
"$ref": "#/$defs/EmailAddress",
"description": "Email address to which the invoice is sent."
},
"Line": {
"type": "array",
"description": "Individual line items of the transaction. At least one line item with a valid DetailType is required.",
"items": {
"$ref": "#/$defs/InvoiceLine"
},
"minItems": 1
},
"TxnTaxDetail": {
"$ref": "#/$defs/TxnTaxDetail",
"description": "Tax details for the entire invoice transaction."
},
"TotalAmt": {
"type": "number",
"description": "Total amount of the transaction including tax. This is a calculated field and is read-only.",
"readOnly": true
},
"Balance": {
"type": "number",
"description": "The balance remaining to be paid on the invoice. A value of 0 indicates the invoice is fully paid.",
"readOnly": true
},
"Deposit": {
"type": "number",
"description": "Deposit amount previously applied to this invoice."
},
"DepositToAccountRef": {
"$ref": "#/$defs/ReferenceType",
"description": "Account where the deposit was made."
},
"SalesTermRef": {
"$ref": "#/$defs/ReferenceType",
"description": "Reference to the sales term (e.g., Net 30, Due on Receipt)."
},
"PaymentMethodRef": {
"$ref": "#/$defs/ReferenceType",
"description": "Reference to the payment method for this invoice."
},
"CurrencyRef": {
"$ref": "#/$defs/ReferenceType",
"description": "Reference to the currency used for this invoice. Only applicable for companies with multicurrency enabled."
},
"ExchangeRate": {
"type": "number",
"description": "The exchange rate between the invoice currency and the home currency. Only applicable for multicurrency companies."
},
"ShipDate": {
"type": "string",
"format": "date",
"description": "Date for delivery of goods or services."
},
"ShipMethodRef": {
"$ref": "#/$defs/ReferenceType",
"description": "Reference to the shipping method."
},
"TrackingNum": {
"type": "string",
"description": "Shipping tracking number."
},
"ApplyTaxAfterDiscount": {
"type": "boolean",
"description": "If true, tax is calculated after applying any discount. If false, tax is calculated before the discount."
},
"PrintStatus": {
"type": "string",
"description": "Printing status of the invoice.",
"enum": ["NotSet", "NeedToPrint", "PrintComplete"]
},
"EmailStatus": {
"type": "string",
"description": "Email delivery status of the invoice.",
"enum": ["NotSet", "NeedToSend", "EmailSent"]
},
"GlobalTaxCalculation": {
"type": "string",
"description": "Method in which tax is applied. TaxExcluded means line amounts are exclusive of tax. TaxInclusive means line amounts include tax.",
"enum": ["TaxExcluded", "TaxInclusive", "NotApplicable"]
},
"AllowOnlinePayment": {
"type": "boolean",
"description": "Whether online payment is allowed for this invoice."
},
"AllowOnlineCreditCardPayment": {
"type": "boolean",
"description": "Whether online credit card payment is allowed."
},
"AllowOnlineACHPayment": {
"type": "boolean",
"description": "Whether online ACH (bank transfer) payment is allowed."
},
"CustomField": {
"type": "array",
"description": "Custom fields defined for the invoice. A maximum of 3 custom fields are supported.",
"items": {
"$ref": "#/$defs/CustomField"
},
"maxItems": 3
},
"LinkedTxn": {
"type": "array",
"description": "Transactions linked to this invoice such as payments or credit memos.",
"items": {
"$ref": "#/$defs/LinkedTxn"
}
},
"domain": {
"type": "string",
"description": "Domain of the entity (e.g., QBO).",
"readOnly": true
},
"sparse": {
"type": "boolean",
"description": "Indicates whether this is a sparse (partial) representation of the entity."
}
},
"required": ["CustomerRef", "Line"],
"$defs": {
"ReferenceType": {
"type": "object",
"description": "A reference to another entity in QuickBooks Online, containing the entity ID and optionally a display name.",
"properties": {
"value": {
"type": "string",
"description": "The unique identifier of the referenced entity."
},
"name": {
"type": "string",
"description": "An identifying name for the referenced entity."
}
},
"required": ["value"]
},
"PhysicalAddress": {
"type": "object",
"description": "A physical (mailing) address.",
"properties": {
"Id": {
"type": "string",
"description": "Unique identifier for the address."
},
"Line1": {
"type": "string",
"description": "First line of the street address.",
"maxLength": 500
},
"Line2": {
"type": "string",
"description": "Second line of the street address.",
"maxLength": 500
},
"Line3": {
"type": "string",
"description": "Third line of the street address.",
"maxLength": 500
},
"Line4": {
"type": "string",
"description": "Fourth line of the street address.",
"maxLength": 500
},
"Line5": {
"type": "string",
"description": "Fifth line of the street address.",
"maxLength": 500
},
"City": {
"type": "string",
"description": "City name.",
"maxLength": 255
},
"CountrySubDivisionCode": {
"type": "string",
"description": "Region within a country (e.g., state, province).",
"maxLength": 255
},
"PostalCode": {
"type": "string",
"description": "Postal code.",
"maxLength": 30
},
"Country": {
"type": "string",
"description": "Country name or code.",
"maxLength": 255
},
"Lat": {
"type": "string",
"description": "Latitude coordinate."
},
"Long": {
"type": "string",
"description": "Longitude coordinate."
}
}
},
"EmailAddress": {
"type": "object",
"description": "An email address.",
"properties": {
"Address": {
"type": "string",
"format": "email",
"description": "The email address.",
"maxLength": 100
}
}
},
"MetaData": {
"type": "object",
"description": "Metadata about entity creation and modification timestamps.",
"properties": {
"CreateTime": {
"type": "string",
"format": "date-time",
"description": "Timestamp when the entity was created."
},
"LastUpdatedTime": {
"type": "string",
"format": "date-time",
"description": "Timestamp when the entity was last updated."
}
}
},
"LinkedTxn": {
"type": "object",
"description": "A reference to a linked transaction.",
"properties": {
"TxnId": {
"type": "string",
"description": "The ID of the linked transaction."
},
"TxnType": {
"type": "string",
"description": "The type of the linked transaction.",
"enum": [
"Invoice",
"Payment",
"CreditMemo",
"Estimate",
"SalesReceipt",
"JournalEntry",
"Expense",
"StatementCharge",
"ReimburseCharge"
]
}
},
"required": ["TxnId", "TxnType"]
},
"SalesItemLineDetail": {
"type": "object",
"description": "Detail for a line item representing a sale of a product or service.",
"properties": {
"ItemRef": {
"$ref": "#/$defs/ReferenceType",
"description": "Reference to the item (product or service) being sold."
},
"ClassRef": {
"$ref": "#/$defs/ReferenceType",
"description": "Reference to the class for classification."
},
"UnitPrice": {
"type": "number",
"description": "Per-unit selling price of the item."
},
"RatePercent": {
"type": "number",
"description": "Discount rate as a percentage (for discount lines)."
},
"Qty": {
"type": "number",
"description": "Quantity of items."
},
"ItemAccountRef": {
"$ref": "#/$defs/ReferenceType",
"description": "Reference to the account associated with this item."
},
"TaxCodeRef": {
"$ref": "#/$defs/ReferenceType",
"description": "Reference to the tax code for this line."
},
"ServiceDate": {
"type": "string",
"format": "date",
"description": "Date the service was performed or goods delivered."
},
"DiscountAmt": {
"type": "number",
"description": "Discount amount applied to this line."
},
"DiscountRate": {
"type": "number",
"description": "Discount rate as a percentage."
}
}
},
"InvoiceLine": {
"type": "object",
"description": "A single line item on an invoice.",
"properties": {
"Id": {
"type": "string",
"description": "Unique identifier for the line item."
},
"LineNum": {
"type": "integer",
"description": "Specifies the position of the line in the collection."
},
"Description": {
"type": "string",
"description": "Free-form text description of the line item.",
"maxLength": 4000
},
"Amount": {
"type": "number",
"description": "The total amount for this line item."
},
"DetailType": {
"type": "string",
"description": "The type of detail for this line.",
"enum": [
"SalesItemLineDetail",
"GroupLineDetail",
"DescriptionOnly",
"DiscountLineDetail",
"SubTotalLineDetail"
]
},
"SalesItemLineDetail": {
"$ref": "#/$defs/SalesItemLineDetail"
},
"LinkedTxn": {
"type": "array",
"items": {
"$ref": "#/$defs/LinkedTxn"
}
}
},
"required": ["Amount", "DetailType"]
},
"TxnTaxDetail": {
"type": "object",
"description": "Tax details for the transaction.",
"properties": {
"TxnTaxCodeRef": {
"$ref": "#/$defs/ReferenceType",
"description": "Reference to the tax code for the transaction."
},
"TotalTax": {
"type": "number",
"description": "Total tax calculated for the transaction."
},
"TaxLine": {
"type": "array",
"description": "Tax lines itemizing individual tax amounts.",
"items": {
"type": "object",
"properties": {
"Amount": {
"type": "number",
"description": "Tax amount for this tax line."
},
"DetailType": {
"type": "string",
"enum": ["TaxLineDetail"]
},
"TaxLineDetail": {
"type": "object",
"properties": {
"TaxRateRef": {
"$ref": "#/$defs/ReferenceType"
},
"PercentBased": {
"type": "boolean"
},
"TaxPercent": {
"type": "number"
},
"NetAmountTaxable": {
"type": "number"
}
}
}
}
}
}
}
},
"CustomField": {
"type": "object",
"description": "A custom field defined for the entity.",
"properties": {
"DefinitionId": {
"type": "string",
"description": "Unique identifier of the custom field definition."
},
"Name": {
"type": "string",
"description": "Name of the custom field."
},
"Type": {
"type": "string",
"description": "Data type of the custom field.",
"enum": ["StringType", "BooleanType", "NumberType", "DateType"]
},
"StringValue": {
"type": "string",
"description": "Value when Type is StringType."
}
}
}
},
"examples": [
{
"CustomerRef": {
"value": "1",
"name": "Amy's Bird Sanctuary"
},
"Line": [
{
"Amount": 150.00,
"DetailType": "SalesItemLineDetail",
"SalesItemLineDetail": {
"ItemRef": {
"value": "1",
"name": "Services"
},
"UnitPrice": 150,
"Qty": 1
}
},
{
"Amount": 150.00,
"DetailType": "SubTotalLineDetail"
}
],
"DueDate": "2025-12-15",
"TxnDate": "2025-11-15",
"DocNumber": "1001",
"BillEmail": {
"Address": "amy@birdsnest.example.com"
}
}
]
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/intuit-invoice"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.