POST /Quotes
Servers
- https://api.xero.com/api.xro/2.0
Request headers
Name | Type | Required | Description |
---|---|---|---|
Content-Type |
String | Yes |
The media type of the request body.
Default value: "application/json" |
xero-tenant-id |
String | Yes |
Xero identifier for Tenant |
Idempotency-Key |
String | No |
This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
Query parameters
Name | Type | Required | Description |
---|---|---|---|
summarizeErrors |
Boolean | No |
If false return 200 OK and mix of successfully created objects and any with validation errors Default value: false |
Request body fields
Name | Type | Required | Description |
---|---|---|---|
Quotes[] |
Array | No | |
Quotes[].LineAmountTypes |
String | No |
Line amounts are exclusive of tax by default if you don’t specify this element. See Line Amount Types Possible values:
|
Quotes[].TotalDiscount |
Number | No |
Total of discounts applied on the quote line items |
Quotes[].Date |
String | No |
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 |
Quotes[].Summary |
String | No |
Summary text for the quote |
Quotes[].StatusAttributeString |
String | No |
A string to indicate if a invoice status |
Quotes[].Total |
Number | No |
Total of Quote tax inclusive (i.e. SubTotal + TotalTax). This will be ignored if it doesn’t equal the sum of the LineAmounts |
Quotes[].ExpiryDateString |
String | No |
Date the quote expires – YYYY-MM-DD. |
Quotes[].Reference |
String | No |
Additional reference number |
Quotes[].TotalTax |
Number | No |
Total tax on quote |
Quotes[].QuoteNumber |
String | No |
Unique alpha numeric code identifying a quote (Max Length = 255) |
Quotes[].LineItems[] |
Array | No |
See LineItems |
Quotes[].LineItems[].Quantity |
Number | No |
LineItem Quantity |
Quotes[].LineItems[].UnitAmount |
Number | No |
LineItem Unit Amount |
Quotes[].LineItems[].TaxAmount |
Number | No |
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. |
Quotes[].LineItems[].Item |
No | ||
Quotes[].LineItems[].AccountCode |
String | No |
See Accounts |
Quotes[].LineItems[].RepeatingInvoiceID |
String | No |
The Xero identifier for a Repeating Invoice |
Quotes[].LineItems[].LineItemID |
String | No |
LineItem unique ID |
Quotes[].LineItems[].Description |
String | No |
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 character |
Quotes[].LineItems[].TaxType |
String | No |
The tax type from TaxRates |
Quotes[].LineItems[].Taxability |
String | No |
The type of taxability Possible values:
|
Quotes[].LineItems[].TaxBreakdown[] |
Array | No |
An array of tax components defined for this line item |
Quotes[].LineItems[].TaxBreakdown[].TaxComponentId |
String | No |
The unique ID number of this component |
Quotes[].LineItems[].TaxBreakdown[].Name |
String | No |
The name of the jurisdiction |
Quotes[].LineItems[].TaxBreakdown[].Type |
String | No |
The type of the jurisdiction Possible values:
|
Quotes[].LineItems[].TaxBreakdown[].TaxAmount |
Number | No |
The amount of the tax |
Quotes[].LineItems[].TaxBreakdown[].TaxableAmount |
Number | No |
The amount that is taxable |
Quotes[].LineItems[].TaxBreakdown[].NonTaxableAmount |
Number | No |
The amount that is not taxable |
Quotes[].LineItems[].TaxBreakdown[].TaxPercentage |
Number | No |
The percentage of the tax |
Quotes[].LineItems[].TaxBreakdown[].ExemptAmount |
Number | No |
The amount that is exempt |
Quotes[].LineItems[].TaxBreakdown[].StateAssignedNo |
String | No |
The state assigned number of the jurisdiction |
Quotes[].LineItems[].TaxBreakdown[].JurisdictionRegion |
String | No |
Name identifying the region within the country |
Quotes[].LineItems[].LineAmount |
Number | No |
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 |
Quotes[].LineItems[].AccountID |
String | No |
The associated account ID related to this line item |
Quotes[].LineItems[].SalesTaxCodeId |
Number | No |
The ID of the sales tax code |
Quotes[].LineItems[].ItemCode |
String | No |
See Items |
Quotes[].LineItems[].Tracking[] |
Array | No |
Optional Tracking Category – see Tracking. Any LineItem can have a maximum of 2 elements. |
Quotes[].LineItems[].Tracking[].TrackingCategoryID |
String | No |
The Xero identifier for a tracking category |
Quotes[].LineItems[].Tracking[].Name |
String | No |
The name of the tracking category |
Quotes[].LineItems[].Tracking[].Option |
String | No |
See Tracking Options |
Quotes[].LineItems[].Tracking[].TrackingOptionID |
String | No |
The Xero identifier for a tracking category option |
Quotes[].LineItems[].DiscountAmount |
Number | No |
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. |
Quotes[].LineItems[].DiscountRate |
Number | No |
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 |
Quotes[].UpdatedDateUTC |
String | No |
Last modified date UTC format |
Quotes[].SubTotal |
Number | No |
Total of quote excluding taxes. |
Quotes[].Terms |
String | No |
Terms of the quote |
Quotes[].CurrencyRate |
Number | No |
The currency rate for a multicurrency quote |
Quotes[].ExpiryDate |
String | No |
Date the quote expires – YYYY-MM-DD. |
Quotes[].Status |
String | No |
The status of the quote. Possible values:
|
Quotes[].BrandingThemeID |
String | No |
See BrandingThemes |
Quotes[].ValidationErrors[] |
Array | No |
Displays array of validation error messages from the API |
Quotes[].ValidationErrors[].Message |
String | No |
Validation error message |
Quotes[].Contact |
Object | No | |
Quotes[].Contact.BankAccountDetails |
String | No |
Bank account number of contact |
Quotes[].Contact.Website |
String | No |
Website address for contact (read only) |
Quotes[].Contact.Name |
String | No |
Full name of contact/organisation (max length = 255) |
Quotes[].Contact.SalesTrackingCategories[] |
Array | No |
The default sales tracking categories for contacts |
Quotes[].Contact.SalesTrackingCategories[].TrackingOptionName |
String | No |
The default purchase tracking category name for contacts |
Quotes[].Contact.SalesTrackingCategories[].TrackingCategoryName |
String | No |
The default sales tracking category name for contacts |
Quotes[].Contact.SalesDefaultLineAmountType |
String | No |
The default sales line amount type for a contact. Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber. Possible values:
|
Quotes[].Contact.TrackingCategoryOption |
String | No |
The name of the Tracking Option assigned to the contact under SalesTrackingCategories and PurchasesTrackingCategories |
Quotes[].Contact.TaxNumber |
String | No |
Tax number of contact – this is also known as the ABN (Australia), GST Number (New Zealand), VAT Number (UK) or Tax ID Number (US and global) in the Xero UI depending on which regionalized version of Xero you are using (max length = 50) |
Quotes[].Contact.TrackingCategoryName |
String | No |
The name of the Tracking Category assigned to the contact under SalesTrackingCategories and PurchasesTrackingCategories |
Quotes[].Contact.LastName |
String | No |
Last name of contact person (max length = 255) |
Quotes[].Contact.IsSupplier |
Boolean | No |
true or false – Boolean that describes if a contact that has any AP invoices entered against them. Cannot be set via PUT or POST – it is automatically set when an accounts payable invoice is generated against this contact. |
Quotes[].Contact.PurchasesTrackingCategories[] |
Array | No |
The default purchases tracking categories for contacts |
Quotes[].Contact.PurchasesTrackingCategories[].TrackingOptionName |
String | No |
The default purchase tracking category name for contacts |
Quotes[].Contact.PurchasesTrackingCategories[].TrackingCategoryName |
String | No |
The default sales tracking category name for contacts |
Quotes[].Contact.UpdatedDateUTC |
String | No |
UTC timestamp of last update to contact |
Quotes[].Contact.BrandingTheme |
Object | No | |
Quotes[].Contact.BrandingTheme.Name |
String | No |
Name of branding theme |
Quotes[].Contact.BrandingTheme.BrandingThemeID |
String | No |
Xero identifier |
Quotes[].Contact.BrandingTheme.Type |
String | No |
Always INVOICE Possible values:
|
Quotes[].Contact.BrandingTheme.LogoUrl |
String | No |
The location of the image file used as the logo on this branding theme |
Quotes[].Contact.BrandingTheme.SortOrder |
Integer | No |
Integer – ranked order of branding theme. The default branding theme has a value of 0 |
Quotes[].Contact.BrandingTheme.CreatedDateUTC |
String | No |
UTC timestamp of creation date of branding theme |
Quotes[].Contact.IsCustomer |
Boolean | No |
true or false – Boolean that describes if a contact has any AR invoices entered against them. Cannot be set via PUT or POST – it is automatically set when an accounts receivable invoice is generated against this contact. |
Quotes[].Contact.PurchasesDefaultLineAmountType |
String | No |
The default purchases line amount type for a contact Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber. Possible values:
|
Quotes[].Contact.Attachments[] |
Array | No |
Displays array of attachments from the API |
Quotes[].Contact.Attachments[].ContentLength |
Integer | No |
Length of the file content |
Quotes[].Contact.Attachments[].IncludeOnline |
Boolean | No |
Include the file with the online invoice |
Quotes[].Contact.Attachments[].AttachmentID |
String | No |
Unique ID for the file |
Quotes[].Contact.Attachments[].MimeType |
String | No |
Type of file |
Quotes[].Contact.Attachments[].Url |
String | No |
URL to the file on xero.com |
Quotes[].Contact.Attachments[].FileName |
String | No |
Name of the file |
Quotes[].Contact.PurchasesDefaultAccountCode |
String | No |
The default purchases account code for contacts |
Quotes[].Contact.ContactID |
String | No |
Xero identifier |
Quotes[].Contact.AccountsPayableTaxType |
String | No |
The tax type from TaxRates |
Quotes[].Contact.ContactStatus |
String | No |
Current status of a contact – see contact status types Possible values:
|
Quotes[].Contact.Addresses[] |
Array | No |
Store certain address types for a contact – see address types |
Quotes[].Contact.Addresses[].City |
String | No |
max length = 255 |
Quotes[].Contact.Addresses[].AddressType |
String | No |
define the type of address Possible values:
|
Quotes[].Contact.Addresses[].AttentionTo |
String | No |
max length = 255 |
Quotes[].Contact.Addresses[].AddressLine2 |
String | No |
max length = 500 |
Quotes[].Contact.Addresses[].Region |
String | No |
max length = 255 |
Quotes[].Contact.Addresses[].Country |
String | No |
max length = 50, [A-Z], [a-z] only |
Quotes[].Contact.Addresses[].AddressLine1 |
String | No |
max length = 500 |
Quotes[].Contact.Addresses[].AddressLine4 |
String | No |
max length = 500 |
Quotes[].Contact.Addresses[].AddressLine3 |
String | No |
max length = 500 |
Quotes[].Contact.Addresses[].PostalCode |
String | No |
max length = 50 |
Quotes[].Contact.StatusAttributeString |
String | No |
Status of object |
Quotes[].Contact.CompanyNumber |
String | No |
Company registration number (max length = 50) |
Quotes[].Contact.Phones[] |
Array | No |
Store certain phone types for a contact – see phone types |
Quotes[].Contact.Phones[].PhoneType |
String | No |
Possible values:
|
Quotes[].Contact.Phones[].PhoneNumber |
String | No |
max length = 50 |
Quotes[].Contact.Phones[].PhoneAreaCode |
String | No |
max length = 10 |
Quotes[].Contact.Phones[].PhoneCountryCode |
String | No |
max length = 20 |
Quotes[].Contact.BatchPayments |
No |
Bank details for use on a batch payment stored with each contact |
|
Quotes[].Contact.FirstName |
String | No |
First name of contact person (max length = 255) |
Quotes[].Contact.SalesDefaultAccountCode |
String | No |
The default sales account code for contacts |
Quotes[].Contact.ContactNumber |
String | No |
This can be updated via the API only i.e. This field is read only on the Xero contact screen, used to identify contacts in external systems (max length = 50). If the Contact Number is used, this is displayed as Contact Code in the Contacts UI in Xero. |
Quotes[].Contact.AccountsReceivableTaxType |
String | No |
The tax type from TaxRates |
Quotes[].Contact.DefaultCurrency |
String | No |
3 letter alpha code for the currency – see list of currency codes Possible values:
|
Quotes[].Contact.HasValidationErrors |
Boolean | No |
A boolean to indicate if a contact has an validation errors Default value: false |
Quotes[].Contact.AccountNumber |
String | No |
A user defined account number. This can be updated via the API and the Xero UI (max length = 50) |
Quotes[].Contact.Balances |
Object | No |
The raw AccountsReceivable(sales invoices) and AccountsPayable(bills) outstanding and overdue amounts, not converted to base currency (read only) |
Quotes[].Contact.Balances.AccountsReceivable |
Object | No | |
Quotes[].Contact.Balances.AccountsReceivable.Overdue |
Number | No | |
Quotes[].Contact.Balances.AccountsReceivable.Outstanding |
Number | No | |
Quotes[].Contact.Balances.AccountsPayable |
Object | No | |
Quotes[].Contact.Balances.AccountsPayable.Overdue |
Number | No | |
Quotes[].Contact.Balances.AccountsPayable.Outstanding |
Number | No | |
Quotes[].Contact.XeroNetworkKey |
String | No |
Store XeroNetworkKey for contacts. |
Quotes[].Contact.Discount |
Number | No |
The default discount rate for the contact (read only) |
Quotes[].Contact.MergedToContactID |
String | No |
ID for the destination of a merged contact. Only returned when using paging or when fetching a contact by ContactId or ContactNumber. |
Quotes[].Contact.ValidationErrors[] |
Array | No |
Displays validation errors returned from the API |
Quotes[].Contact.ValidationErrors[].Message |
String | No |
Validation error message |
Quotes[].Contact.EmailAddress |
String | No |
Email address of contact person (umlauts not supported) (max length = 255) |
Quotes[].Contact.HasAttachments |
Boolean | No |
A boolean to indicate if a contact has an attachment Default value: false |
Quotes[].Contact.PaymentTerms |
Object | No | |
Quotes[].Contact.PaymentTerms.Bills |
Object | No | |
Quotes[].Contact.PaymentTerms.Bills.Day |
Integer | No |
Day of Month (0-31) |
Quotes[].Contact.PaymentTerms.Bills.Type |
String | No |
Possible values:
|
Quotes[].Contact.PaymentTerms.Sales |
Object | No | |
Quotes[].Contact.PaymentTerms.Sales.Day |
Integer | No |
Day of Month (0-31) |
Quotes[].Contact.PaymentTerms.Sales.Type |
String | No |
Possible values:
|
Quotes[].Contact.ContactGroups[] |
Array | No |
Displays which contact groups a contact is included in |
Quotes[].Contact.ContactGroups[].Name |
String | No |
The Name of the contact group. Required when creating a new contact group |
Quotes[].Contact.ContactGroups[].Status |
String | No |
The Status of a contact group. To delete a contact group update the status to DELETED. Only contact groups with a status of ACTIVE are returned on GETs. Possible values:
|
Quotes[].Contact.ContactGroups[].ContactGroupID |
String | No |
The Xero identifier for an contact group – specified as a string following the endpoint name. e.g. /297c2dc5-cc47-4afd-8ec8-74990b8761e9 |
Quotes[].Contact.ContactGroups[].Contacts[] |
Array | No |
The ContactID and Name of Contacts in a contact group. Returned on GETs when the ContactGroupID is supplied in the URL. |
Quotes[].Contact.ContactPersons[] |
Array | No |
See contact persons |
Quotes[].Contact.ContactPersons[].IncludeInEmails |
Boolean | No |
boolean to indicate whether contact should be included on emails with invoices etc. |
Quotes[].Contact.ContactPersons[].EmailAddress |
String | No |
Email address of person |
Quotes[].Contact.ContactPersons[].LastName |
String | No |
Last name of person |
Quotes[].Contact.ContactPersons[].FirstName |
String | No |
First name of person |
Quotes[].DateString |
String | No |
Date the quote was issued (YYYY-MM-DD) |
Quotes[].Title |
String | No |
Title text for the quote |
Quotes[].CurrencyCode |
String | No |
3 letter alpha code for the currency – see list of currency codes Possible values:
|
Quotes[].QuoteID |
String | No |
QuoteID GUID is automatically generated and is returned after create or GET. |
How to start integrating
- Add HTTP Task to your workflow definition.
- Search for the API you want to integrate with and click on the name.
- This loads the API reference documentation and prepares the Http request settings.
- Click Test request to test run your request to the API and see the API's response.