Xero · Schema

LineItem

AccountingBank FeedsFinanceFinancial-ServicesInvoicingPayrollSmall Business

Properties

Name Type Description
LineItemID string LineItem unique ID
Description string Description needs to be at least 1 char long. A line item with just a description (i.e no unit amount or quantity) can be created by specifying just a element that contains at least 1 ch
Quantity number LineItem Quantity
UnitAmount number LineItem Unit Amount
ItemCode string See Items
AccountCode string See Accounts
AccountID string The associated account ID related to this line item
TaxType string The tax type from TaxRates
TaxAmount number The tax amount is auto calculated as a percentage of the line amount (see below) based on the tax rate. This value can be overriden if the calculated is not correct.
Item object
LineAmount number If you wish to omit either the Quantity or UnitAmount you can provide a LineAmount and Xero will calculate the missing amount for you. The line amount reflects the discounted price if either a Discoun
Tracking array Optional Tracking Category – see Tracking. Any LineItem can have a maximum of 2 elements.
DiscountRate number Percentage discount being applied to a line item (only supported on ACCREC invoices – ACC PAY invoices and credit notes in Xero do not support discounts
DiscountAmount number Discount amount being applied to a line item. Only supported on ACCREC invoices and quotes. ACCPAY invoices and credit notes in Xero do not support discounts.
RepeatingInvoiceID string The Xero identifier for a Repeating Invoice
Taxability string The type of taxability
SalesTaxCodeId number The ID of the sales tax code
TaxBreakdown array An array of tax components defined for this line item
View JSON Schema on GitHub

JSON Schema

xero-lineitem-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/LineItem",
  "title": "LineItem",
  "externalDocs": {
    "url": "https://developer.xero.com/documentation/api/invoices#post"
  },
  "properties": {
    "LineItemID": {
      "description": "LineItem unique ID",
      "type": "string",
      "format": "uuid",
      "example": "00000000-0000-0000-0000-000000000000"
    },
    "Description": {
      "description": "Description needs to be at least 1 char long. A line item with just a description (i.e no unit amount or quantity) can be created by specifying just a <Description> element that contains at least 1 character",
      "type": "string"
    },
    "Quantity": {
      "description": "LineItem Quantity",
      "type": "number",
      "format": "double",
      "x-is-money": true
    },
    "UnitAmount": {
      "description": "LineItem Unit Amount",
      "type": "number",
      "format": "double",
      "x-is-money": true
    },
    "ItemCode": {
      "description": "See Items",
      "type": "string"
    },
    "AccountCode": {
      "description": "See Accounts",
      "type": "string"
    },
    "AccountID": {
      "description": "The associated account ID related to this line item",
      "type": "string",
      "format": "uuid",
      "example": "00000000-0000-0000-0000-000000000000"
    },
    "TaxType": {
      "description": "The tax type from TaxRates",
      "type": "string"
    },
    "TaxAmount": {
      "description": "The tax amount is auto calculated as a percentage of the line amount (see below) based on the tax rate. This value can be overriden if the calculated <TaxAmount> is not correct.",
      "type": "number",
      "format": "double",
      "x-is-money": true
    },
    "Item": {
      "$ref": "#/components/schemas/LineItemItem"
    },
    "LineAmount": {
      "description": "If you wish to omit either the Quantity or UnitAmount you can provide a LineAmount and Xero will calculate the missing amount for you. The line amount reflects the discounted price if either a DiscountRate or DiscountAmount has been used i.e. LineAmount = Quantity * Unit Amount * ((100 - DiscountRate)/100) or LineAmount = (Quantity * UnitAmount) - DiscountAmount",
      "type": "number",
      "format": "double",
      "x-is-money": true
    },
    "Tracking": {
      "description": "Optional Tracking Category \u2013 see Tracking.  Any LineItem can have a  maximum of 2 <TrackingCategory> elements.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LineItemTracking"
      }
    },
    "DiscountRate": {
      "description": "Percentage discount being applied to a line item (only supported on  ACCREC invoices \u2013 ACC PAY invoices and credit notes in Xero do not support discounts",
      "type": "number",
      "format": "double",
      "x-is-money": true
    },
    "DiscountAmount": {
      "description": "Discount amount being applied to a line item. Only supported on ACCREC invoices and quotes. ACCPAY invoices and credit notes in Xero do not support discounts.",
      "type": "number",
      "format": "double",
      "x-is-money": true
    },
    "RepeatingInvoiceID": {
      "description": "The Xero identifier for a Repeating Invoice",
      "example": "00000000-0000-0000-0000-000000000000",
      "type": "string",
      "format": "uuid"
    },
    "Taxability": {
      "description": "The type of taxability",
      "type": "string",
      "enum": [
        "TAXABLE",
        "NON_TAXABLE",
        "EXEMPT",
        "PART_TAXABLE",
        "NOT_APPLICABLE"
      ]
    },
    "SalesTaxCodeId": {
      "description": "The ID of the sales tax code",
      "type": "number"
    },
    "TaxBreakdown": {
      "description": "An array of tax components defined for this line item",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TaxBreakdownComponent"
      }
    }
  },
  "type": "object"
}

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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/xero-lineitem"
All schemas
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.