{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/Invoice",
"title": "Invoice",
"externalDocs": {
"url": "http://developer.xero.com/documentation/api/invoices/"
},
"properties": {
"Type": {
"description": "See Invoice Types",
"type": "string",
"enum": [
"ACCPAY",
"ACCPAYCREDIT",
"APOVERPAYMENT",
"APPREPAYMENT",
"ACCREC",
"ACCRECCREDIT",
"AROVERPAYMENT",
"ARPREPAYMENT"
]
},
"Contact": {
"$ref": "#/components/schemas/Contact"
},
"LineItems": {
"description": "See LineItems",
"type": "array",
"items": {
"$ref": "#/components/schemas/LineItem"
}
},
"Date": {
"description": "Date invoice 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
},
"DueDate": {
"description": "Date invoice is due \u2013 YYYY-MM-DD",
"type": "string",
"x-is-msdate": true
},
"LineAmountTypes": {
"$ref": "#/components/schemas/LineAmountTypes",
"type": "string"
},
"InvoiceNumber": {
"description": "ACCREC \u2013 Unique alpha numeric code identifying invoice (when missing will auto-generate from your Organisation Invoice Settings) (max length = 255)",
"maxLength": 255,
"type": "string"
},
"Reference": {
"description": "ACCREC only \u2013 additional reference number",
"type": "string"
},
"BrandingThemeID": {
"description": "See BrandingThemes",
"type": "string",
"format": "uuid"
},
"Url": {
"description": "URL link to a source document \u2013 shown as \u201cGo to [appName]\u201d in the Xero app",
"type": "string"
},
"CurrencyCode": {
"$ref": "#/components/schemas/CurrencyCode",
"type": "string"
},
"CurrencyRate": {
"description": "The currency rate for a multicurrency invoice. If no rate is specified, the XE.com day rate is used. (max length = [18].[6])",
"type": "number",
"format": "double",
"x-is-money": true
},
"Status": {
"description": "See Invoice Status Codes",
"type": "string",
"enum": [
"DRAFT",
"SUBMITTED",
"DELETED",
"AUTHORISED",
"PAID",
"VOIDED"
]
},
"SentToContact": {
"description": "Boolean to set whether the invoice in the Xero app should be marked as \u201csent\u201d. This can be set only on invoices that have been approved",
"type": "boolean"
},
"ExpectedPaymentDate": {
"description": "Shown on sales invoices (Accounts Receivable) when this has been set",
"type": "string",
"x-is-msdate": true
},
"PlannedPaymentDate": {
"description": "Shown on bills (Accounts Payable) when this has been set",
"type": "string",
"x-is-msdate": true
},
"CISDeduction": {
"description": "CIS deduction for UK contractors",
"readOnly": true,
"type": "number",
"format": "double",
"x-is-money": true
},
"CISRate": {
"description": "CIS Deduction rate for the organisation",
"type": "number",
"format": "double",
"readOnly": true,
"x-is-money": true
},
"SubTotal": {
"description": "Total of invoice excluding taxes",
"readOnly": true,
"type": "number",
"format": "double",
"x-is-money": true
},
"TotalTax": {
"description": "Total tax on invoice",
"readOnly": true,
"type": "number",
"format": "double",
"x-is-money": true
},
"Total": {
"description": "Total of Invoice 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 invoice line items",
"readOnly": true,
"type": "number",
"format": "double",
"x-is-money": true
},
"InvoiceID": {
"description": "Xero generated unique identifier for invoice",
"type": "string",
"format": "uuid"
},
"RepeatingInvoiceID": {
"description": "Xero generated unique identifier for repeating invoices",
"type": "string",
"format": "uuid"
},
"HasAttachments": {
"description": "boolean to indicate if an invoice has an attachment",
"readOnly": true,
"type": "boolean",
"default": "false",
"example": "false"
},
"IsDiscounted": {
"description": "boolean to indicate if an invoice has a discount",
"readOnly": true,
"type": "boolean"
},
"Payments": {
"description": "See Payments",
"readOnly": true,
"type": "array",
"items": {
"$ref": "#/components/schemas/Payment"
}
},
"Prepayments": {
"description": "See Prepayments",
"readOnly": true,
"type": "array",
"items": {
"$ref": "#/components/schemas/Prepayment"
}
},
"Overpayments": {
"description": "See Overpayments",
"readOnly": true,
"type": "array",
"items": {
"$ref": "#/components/schemas/Overpayment"
}
},
"AmountDue": {
"description": "Amount remaining to be paid on invoice",
"readOnly": true,
"type": "number",
"format": "double",
"x-is-money": true
},
"AmountPaid": {
"description": "Sum of payments received for invoice",
"readOnly": true,
"type": "number",
"format": "double",
"x-is-money": true
},
"FullyPaidOnDate": {
"description": "The date the invoice was fully paid. Only returned on fully paid invoices",
"readOnly": true,
"type": "string",
"x-is-msdate": true
},
"AmountCredited": {
"description": "Sum of all credit notes, over-payments and pre-payments applied to invoice",
"readOnly": true,
"type": "number",
"format": "double",
"x-is-money": true
},
"UpdatedDateUTC": {
"description": "Last modified date UTC format",
"type": "string",
"x-is-msdate-time": true,
"example": "/Date(1573755038314)/",
"readOnly": true
},
"CreditNotes": {
"description": "Details of credit notes that have been applied to an invoice",
"readOnly": true,
"type": "array",
"items": {
"$ref": "#/components/schemas/CreditNote"
}
},
"Attachments": {
"description": "Displays array of attachments from the API",
"type": "array",
"items": {
"$ref": "#/components/schemas/Attachment"
}
},
"HasErrors": {
"description": "A boolean to indicate if a invoice has an validation errors",
"type": "boolean",
"default": "false",
"example": "false"
},
"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"
}
},
"Warnings": {
"description": "Displays array of warning messages from the API",
"type": "array",
"items": {
"$ref": "#/components/schemas/ValidationError"
}
},
"InvoiceAddresses": {
"description": "An array of addresses used to auto calculate sales tax",
"type": "array",
"items": {
"$ref": "#/components/schemas/InvoiceAddress"
}
}
},
"type": "object"
}