Properties
| Name | Type | Description |
|---|---|---|
| QuoteID | string | QuoteID GUID is automatically generated and is returned after create or GET. |
| QuoteNumber | string | Unique alpha numeric code identifying a quote (Max Length = 255) |
| Reference | string | Additional reference number |
| Terms | string | Terms of the quote |
| Contact | object | |
| LineItems | array | See LineItems |
| Date | string | Date quote was issued – YYYY-MM-DD. If the Date element is not specified it will default to the current date based on the timezone setting of the organisation |
| DateString | string | Date the quote was issued (YYYY-MM-DD) |
| ExpiryDate | string | Date the quote expires – YYYY-MM-DD. |
| ExpiryDateString | string | Date the quote expires – YYYY-MM-DD. |
| Status | string | |
| CurrencyCode | string | |
| CurrencyRate | number | The currency rate for a multicurrency quote |
| SubTotal | number | Total of quote excluding taxes. |
| TotalTax | number | Total tax on quote |
| Total | number | Total of Quote tax inclusive (i.e. SubTotal + TotalTax). This will be ignored if it doesn’t equal the sum of the LineAmounts |
| TotalDiscount | number | Total of discounts applied on the quote line items |
| Title | string | Title text for the quote |
| Summary | string | Summary text for the quote |
| BrandingThemeID | string | See BrandingThemes |
| UpdatedDateUTC | string | Last modified date UTC format |
| LineAmountTypes | string | See Quote Line Amount Types |
| StatusAttributeString | string | A string to indicate if a invoice status |
| ValidationErrors | array | Displays array of validation error messages from the API |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/Quote",
"title": "Quote",
"externalDocs": {
"url": "http://developer.xero.com/documentation/api/Quotes/"
},
"properties": {
"QuoteID": {
"description": "QuoteID GUID is automatically generated and is returned after create or GET.",
"type": "string",
"format": "uuid"
},
"QuoteNumber": {
"description": "Unique alpha numeric code identifying a quote (Max Length = 255)",
"maxLength": 255,
"type": "string"
},
"Reference": {
"description": "Additional reference number",
"maxLength": 4000,
"type": "string"
},
"Terms": {
"description": "Terms of the quote",
"maxLength": 4000,
"type": "string"
},
"Contact": {
"$ref": "#/components/schemas/Contact"
},
"LineItems": {
"description": "See LineItems",
"type": "array",
"items": {
"$ref": "#/components/schemas/LineItem"
}
},
"Date": {
"description": "Date quote was issued \u2013 YYYY-MM-DD. If the Date element is not specified it will default to the current date based on the timezone setting of the organisation",
"type": "string",
"x-is-msdate": true
},
"DateString": {
"description": "Date the quote was issued (YYYY-MM-DD)",
"type": "string"
},
"ExpiryDate": {
"description": "Date the quote expires \u2013 YYYY-MM-DD.",
"type": "string",
"x-is-msdate": true
},
"ExpiryDateString": {
"description": "Date the quote expires \u2013 YYYY-MM-DD.",
"type": "string"
},
"Status": {
"$ref": "#/components/schemas/QuoteStatusCodes",
"type": "string"
},
"CurrencyCode": {
"$ref": "#/components/schemas/CurrencyCode",
"type": "string"
},
"CurrencyRate": {
"description": "The currency rate for a multicurrency quote",
"type": "number",
"format": "double"
},
"SubTotal": {
"description": "Total of quote excluding taxes.",
"readOnly": true,
"type": "number",
"format": "double",
"x-is-money": true
},
"TotalTax": {
"description": "Total tax on quote",
"readOnly": true,
"type": "number",
"format": "double",
"x-is-money": true
},
"Total": {
"description": "Total of Quote tax inclusive (i.e. SubTotal + TotalTax). This will be ignored if it doesn\u2019t equal the sum of the LineAmounts",
"readOnly": true,
"type": "number",
"format": "double",
"x-is-money": true
},
"TotalDiscount": {
"description": "Total of discounts applied on the quote line items",
"readOnly": true,
"type": "number",
"format": "double",
"x-is-money": true
},
"Title": {
"description": "Title text for the quote",
"type": "string",
"maxLength": 100
},
"Summary": {
"description": "Summary text for the quote",
"type": "string",
"maxLength": 3000
},
"BrandingThemeID": {
"description": "See BrandingThemes",
"type": "string",
"format": "uuid"
},
"UpdatedDateUTC": {
"description": "Last modified date UTC format",
"type": "string",
"x-is-msdate-time": true,
"example": "/Date(1573755038314)/",
"readOnly": true
},
"LineAmountTypes": {
"$ref": "#/components/schemas/QuoteLineAmountTypes",
"type": "string",
"description": "See Quote Line Amount Types"
},
"StatusAttributeString": {
"description": "A string to indicate if a invoice status",
"type": "string"
},
"ValidationErrors": {
"description": "Displays array of validation error messages from the API",
"type": "array",
"items": {
"$ref": "#/components/schemas/ValidationError"
}
}
},
"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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/xero-quote"
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.