Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://api.xero.com/api.xro/2.0
/Accounts
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
Success - return response of type Accounts array with 0 to n Account
GET /Accounts
/Accounts
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
Account object in body of request
application/json
Account
| Property | Type | Required |
|---|---|---|
| Code | string | optional |
| Name | string | optional |
| Type | string | optional |
| Class | string | optional |
| Status | string | optional |
| TaxType | string | optional |
| AccountID | string | optional |
| Description | string | optional |
| CurrencyCode | string | optional |
| ReportingCode | string | optional |
| SystemAccount | string | optional |
| AddToWatchlist | boolean | optional |
| HasAttachments | boolean | optional |
| UpdatedDateUTC | string | optional |
| BankAccountType | string | optional |
| ValidationErrors | array | optional |
| └ Message | string | optional |
| BankAccountNumber | string | optional |
| ReportingCodeName | string | optional |
| ShowInExpenseClaims | boolean | optional |
| EnablePaymentsToAccount | boolean | optional |
Success - created new Account and return response of type Accounts array with new Account
Validation Error - some data was incorrect returns response of type Error
PUT /Accounts
/Accounts/{AccountID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| AccountID | path | optional | string | Unique identifier for Account object |
Success - delete existing Account and return response of type Accounts array with deleted Account
Validation Error - some data was incorrect returns response of type Error
DELETE /Accounts/{AccountID}
/Accounts/{AccountID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| AccountID | path | optional | string | Unique identifier for Account object |
Success - return response of type Accounts array with one Account
GET /Accounts/{AccountID}
/Accounts/{AccountID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| AccountID | path | optional | string | Unique identifier for Account object |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
Request of type Accounts array with one Account
application/json
Accounts
| Property | Type | Required |
|---|---|---|
| Accounts | array | optional |
| └ Code | string | optional |
| └ Name | string | optional |
| └ Type | string | optional |
| └ Class | string | optional |
| └ Status | string | optional |
| └ TaxType | string | optional |
| └ AccountID | string | optional |
| └ Description | string | optional |
| └ CurrencyCode | string | optional |
| └ ReportingCode | string | optional |
| └ SystemAccount | string | optional |
| └ AddToWatchlist | boolean | optional |
| └ HasAttachments | boolean | optional |
| └ UpdatedDateUTC | string | optional |
| └ BankAccountType | string | optional |
| └ ValidationErrors | array | optional |
| └ Message | string | optional |
| └ BankAccountNumber | string | optional |
| └ ReportingCodeName | string | optional |
| └ ShowInExpenseClaims | boolean | optional |
| └ EnablePaymentsToAccount | boolean | optional |
Success - update existing Account and return response of type Accounts array with updated Account
Validation Error - some data was incorrect returns response of type Error
POST /Accounts/{AccountID}
/Accounts/{AccountID}/Attachments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| AccountID | path | optional | string | Unique identifier for Account object |
Success - return response of type Attachments array of Attachment
GET /Accounts/{AccountID}/Attachments
/Accounts/{AccountID}/Attachments/{AttachmentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| AccountID | path | optional | string | Unique identifier for Account object |
| AttachmentID | path | optional | string | Unique identifier for Attachment object |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Account as binary data
GET /Accounts/{AccountID}/Attachments/{AttachmentID}
/Accounts/{AccountID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| AccountID | path | optional | string | Unique identifier for Account object |
| FileName | path | optional | string | Name of the attachment |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Account as binary data
GET /Accounts/{AccountID}/Attachments/{FileName}
/Accounts/{AccountID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| AccountID | path | optional | string | Unique identifier for Account object |
| FileName | path | optional | string | Name of the attachment |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
Byte array of file in body of request
application/octet-stream
AccountingUpdateAttachmentByFilenameRequest
Success - return response of type Attachments array of Attachment
Validation Error - some data was incorrect returns response of type Error
POST /Accounts/{AccountID}/Attachments/{FileName}
/Accounts/{AccountID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| AccountID | path | optional | string | Unique identifier for Account object |
| FileName | path | optional | string | Name of the attachment |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
Byte array of file in body of request
application/octet-stream
AccountingCreateAttachmentRequest
Success - return response of type Attachments array of Attachment
A failed request due to validation error
PUT /Accounts/{AccountID}/Attachments/{FileName}
/BankTransactions
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
| page | query | optional | integer | Up to 100 bank transactions will be returned in a single API call with line items details |
| unitdp | query | optional | integer | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
Success - return response of type BankTransactions array with 0 to n BankTransaction
GET /BankTransactions
/BankTransactions
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| summarizeErrors | query | optional | boolean | If false return 200 OK and mix of successfully created objects and any with validation errors |
| unitdp | query | optional | integer | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
application/json
BankTransactions
| Property | Type | Required |
|---|---|---|
| BankTransactions | array | optional |
| └ Url | string | optional |
| └ Date | string | optional |
| └ Type | string | required |
| └ Total | number | optional |
| └ Status | string | optional |
| └ Contact | object | optional |
| └ Name | string | optional |
| └ Phones | array | optional |
| └ PhoneType | string | optional |
| └ PhoneNumber | string | optional |
| └ PhoneAreaCode | string | optional |
| └ PhoneCountryCode | string | optional |
| └ Website | string | optional |
| └ Balances | object | optional |
| └ AccountsPayable | object | optional |
| └ AccountsReceivable | object | optional |
| └ Discount | number | optional |
| └ LastName | string | optional |
| └ Addresses | array | optional |
| └ City | string | optional |
| └ Region | string | optional |
| └ Country | string | optional |
| └ PostalCode | string | optional |
| └ AddressType | string | optional |
| └ AttentionTo | string | optional |
| └ AddressLine1 | string | optional |
| └ AddressLine2 | string | optional |
| └ AddressLine3 | string | optional |
| └ AddressLine4 | string | optional |
| └ ContactID | string | optional |
| └ FirstName | string | optional |
| └ TaxNumber | string | optional |
| └ IsCustomer | boolean | optional |
| └ IsSupplier | boolean | optional |
| └ Attachments | array | optional |
| └ Url | string | optional |
| └ FileName | string | optional |
| └ MimeType | string | optional |
| └ AttachmentID | string | optional |
| └ ContentLength | integer | optional |
| └ IncludeOnline | boolean | optional |
| └ EmailAddress | string | optional |
| └ PaymentTerms | object | optional |
| └ Bills | object | optional |
| └ Sales | object | optional |
| └ AccountNumber | string | optional |
| └ BatchPayments | object | optional |
| └ Code | string | optional |
| └ Details | string | optional |
| └ Reference | string | optional |
| └ BankAccountName | string | optional |
| └ BankAccountNumber | string | optional |
| └ BrandingTheme | object | optional |
| └ Name | string | optional |
| └ Type | string | optional |
| └ LogoUrl | string | optional |
| └ SortOrder | integer | optional |
| └ CreatedDateUTC | string | optional |
| └ BrandingThemeID | string | optional |
| └ CompanyNumber | string | optional |
| └ ContactGroups | array | optional |
| └ Name | string | optional |
| └ Status | string | optional |
| └ Contacts | array | optional |
| └ ContactGroupID | string | optional |
| └ …22 more | object | optional |
| └ SubTotal | number | optional |
| └ TotalTax | number | optional |
| └ LineItems | array | required |
| └ Item | object | optional |
| └ Code | string | optional |
| └ Name | string | optional |
| └ ItemID | string | optional |
| └ TaxType | string | optional |
| └ ItemCode | string | optional |
| └ Quantity | number | optional |
| └ Tracking | array | optional |
| └ Name | string | optional |
| └ Option | string | optional |
| └ TrackingOptionID | string | optional |
| └ TrackingCategoryID | string | optional |
| └ AccountID | string | optional |
| └ TaxAmount | number | optional |
| └ LineAmount | number | optional |
| └ LineItemID | string | optional |
| └ UnitAmount | number | optional |
| └ AccountCode | string | optional |
| └ Description | string | optional |
| └ DiscountRate | number | optional |
| └ DiscountAmount | number | optional |
| └ RepeatingInvoiceID | string | optional |
| └ Reference | string | optional |
| └ BankAccount | object | required |
| └ Code | string | optional |
| └ Name | string | optional |
| └ Type | string | optional |
| └ Class | string | optional |
| └ Status | string | optional |
| └ TaxType | string | optional |
| └ AccountID | string | optional |
| └ Description | string | optional |
| └ CurrencyCode | string | optional |
| └ ReportingCode | string | optional |
| └ SystemAccount | string | optional |
| └ AddToWatchlist | boolean | optional |
| └ HasAttachments | boolean | optional |
| └ UpdatedDateUTC | string | optional |
| └ BankAccountType | string | optional |
| └ ValidationErrors | array | optional |
| └ Message | string | optional |
| └ BankAccountNumber | string | optional |
| └ ReportingCodeName | string | optional |
| └ ShowInExpenseClaims | boolean | optional |
| └ EnablePaymentsToAccount | boolean | optional |
| └ CurrencyCode | string | optional |
| └ CurrencyRate | number | optional |
| └ IsReconciled | boolean | optional |
| └ PrepaymentID | string | optional |
| └ OverpaymentID | string | optional |
| └ HasAttachments | boolean | optional |
| └ UpdatedDateUTC | string | optional |
| └ LineAmountTypes | string | optional |
| └ ValidationErrors | array | optional |
| └ Message | string | optional |
| └ …2 more | object | optional |
Success - return response of type BankTransactions array with new BankTransaction
A failed request due to validation error
POST /BankTransactions
/BankTransactions
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| summarizeErrors | query | optional | boolean | If false return 200 OK and mix of successfully created objects and any with validation errors |
| unitdp | query | optional | integer | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
BankTransactions with an array of BankTransaction objects in body of request
application/json
BankTransactions
| Property | Type | Required |
|---|---|---|
| BankTransactions | array | optional |
| └ Url | string | optional |
| └ Date | string | optional |
| └ Type | string | required |
| └ Total | number | optional |
| └ Status | string | optional |
| └ Contact | object | optional |
| └ Name | string | optional |
| └ Phones | array | optional |
| └ PhoneType | string | optional |
| └ PhoneNumber | string | optional |
| └ PhoneAreaCode | string | optional |
| └ PhoneCountryCode | string | optional |
| └ Website | string | optional |
| └ Balances | object | optional |
| └ AccountsPayable | object | optional |
| └ AccountsReceivable | object | optional |
| └ Discount | number | optional |
| └ LastName | string | optional |
| └ Addresses | array | optional |
| └ City | string | optional |
| └ Region | string | optional |
| └ Country | string | optional |
| └ PostalCode | string | optional |
| └ AddressType | string | optional |
| └ AttentionTo | string | optional |
| └ AddressLine1 | string | optional |
| └ AddressLine2 | string | optional |
| └ AddressLine3 | string | optional |
| └ AddressLine4 | string | optional |
| └ ContactID | string | optional |
| └ FirstName | string | optional |
| └ TaxNumber | string | optional |
| └ IsCustomer | boolean | optional |
| └ IsSupplier | boolean | optional |
| └ Attachments | array | optional |
| └ Url | string | optional |
| └ FileName | string | optional |
| └ MimeType | string | optional |
| └ AttachmentID | string | optional |
| └ ContentLength | integer | optional |
| └ IncludeOnline | boolean | optional |
| └ EmailAddress | string | optional |
| └ PaymentTerms | object | optional |
| └ Bills | object | optional |
| └ Sales | object | optional |
| └ AccountNumber | string | optional |
| └ BatchPayments | object | optional |
| └ Code | string | optional |
| └ Details | string | optional |
| └ Reference | string | optional |
| └ BankAccountName | string | optional |
| └ BankAccountNumber | string | optional |
| └ BrandingTheme | object | optional |
| └ Name | string | optional |
| └ Type | string | optional |
| └ LogoUrl | string | optional |
| └ SortOrder | integer | optional |
| └ CreatedDateUTC | string | optional |
| └ BrandingThemeID | string | optional |
| └ CompanyNumber | string | optional |
| └ ContactGroups | array | optional |
| └ Name | string | optional |
| └ Status | string | optional |
| └ Contacts | array | optional |
| └ ContactGroupID | string | optional |
| └ …22 more | object | optional |
| └ SubTotal | number | optional |
| └ TotalTax | number | optional |
| └ LineItems | array | required |
| └ Item | object | optional |
| └ Code | string | optional |
| └ Name | string | optional |
| └ ItemID | string | optional |
| └ TaxType | string | optional |
| └ ItemCode | string | optional |
| └ Quantity | number | optional |
| └ Tracking | array | optional |
| └ Name | string | optional |
| └ Option | string | optional |
| └ TrackingOptionID | string | optional |
| └ TrackingCategoryID | string | optional |
| └ AccountID | string | optional |
| └ TaxAmount | number | optional |
| └ LineAmount | number | optional |
| └ LineItemID | string | optional |
| └ UnitAmount | number | optional |
| └ AccountCode | string | optional |
| └ Description | string | optional |
| └ DiscountRate | number | optional |
| └ DiscountAmount | number | optional |
| └ RepeatingInvoiceID | string | optional |
| └ Reference | string | optional |
| └ BankAccount | object | required |
| └ Code | string | optional |
| └ Name | string | optional |
| └ Type | string | optional |
| └ Class | string | optional |
| └ Status | string | optional |
| └ TaxType | string | optional |
| └ AccountID | string | optional |
| └ Description | string | optional |
| └ CurrencyCode | string | optional |
| └ ReportingCode | string | optional |
| └ SystemAccount | string | optional |
| └ AddToWatchlist | boolean | optional |
| └ HasAttachments | boolean | optional |
| └ UpdatedDateUTC | string | optional |
| └ BankAccountType | string | optional |
| └ ValidationErrors | array | optional |
| └ Message | string | optional |
| └ BankAccountNumber | string | optional |
| └ ReportingCodeName | string | optional |
| └ ShowInExpenseClaims | boolean | optional |
| └ EnablePaymentsToAccount | boolean | optional |
| └ CurrencyCode | string | optional |
| └ CurrencyRate | number | optional |
| └ IsReconciled | boolean | optional |
| └ PrepaymentID | string | optional |
| └ OverpaymentID | string | optional |
| └ HasAttachments | boolean | optional |
| └ UpdatedDateUTC | string | optional |
| └ LineAmountTypes | string | optional |
| └ ValidationErrors | array | optional |
| └ Message | string | optional |
| └ …2 more | object | optional |
Success - return response of type BankTransactions array with new BankTransaction
A failed request due to validation error
PUT /BankTransactions
/BankTransactions/{BankTransactionID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransactionID | path | optional | string | Xero generated unique identifier for a bank transaction |
| unitdp | query | optional | integer | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
Success - return response of type BankTransactions array with a specific BankTransaction
GET /BankTransactions/{BankTransactionID}
/BankTransactions/{BankTransactionID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransactionID | path | optional | string | Xero generated unique identifier for a bank transaction |
| unitdp | query | optional | integer | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
application/json
BankTransactions
| Property | Type | Required |
|---|---|---|
| BankTransactions | array | optional |
| └ Url | string | optional |
| └ Date | string | optional |
| └ Type | string | required |
| └ Total | number | optional |
| └ Status | string | optional |
| └ Contact | object | optional |
| └ Name | string | optional |
| └ Phones | array | optional |
| └ PhoneType | string | optional |
| └ PhoneNumber | string | optional |
| └ PhoneAreaCode | string | optional |
| └ PhoneCountryCode | string | optional |
| └ Website | string | optional |
| └ Balances | object | optional |
| └ AccountsPayable | object | optional |
| └ AccountsReceivable | object | optional |
| └ Discount | number | optional |
| └ LastName | string | optional |
| └ Addresses | array | optional |
| └ City | string | optional |
| └ Region | string | optional |
| └ Country | string | optional |
| └ PostalCode | string | optional |
| └ AddressType | string | optional |
| └ AttentionTo | string | optional |
| └ AddressLine1 | string | optional |
| └ AddressLine2 | string | optional |
| └ AddressLine3 | string | optional |
| └ AddressLine4 | string | optional |
| └ ContactID | string | optional |
| └ FirstName | string | optional |
| └ TaxNumber | string | optional |
| └ IsCustomer | boolean | optional |
| └ IsSupplier | boolean | optional |
| └ Attachments | array | optional |
| └ Url | string | optional |
| └ FileName | string | optional |
| └ MimeType | string | optional |
| └ AttachmentID | string | optional |
| └ ContentLength | integer | optional |
| └ IncludeOnline | boolean | optional |
| └ EmailAddress | string | optional |
| └ PaymentTerms | object | optional |
| └ Bills | object | optional |
| └ Sales | object | optional |
| └ AccountNumber | string | optional |
| └ BatchPayments | object | optional |
| └ Code | string | optional |
| └ Details | string | optional |
| └ Reference | string | optional |
| └ BankAccountName | string | optional |
| └ BankAccountNumber | string | optional |
| └ BrandingTheme | object | optional |
| └ Name | string | optional |
| └ Type | string | optional |
| └ LogoUrl | string | optional |
| └ SortOrder | integer | optional |
| └ CreatedDateUTC | string | optional |
| └ BrandingThemeID | string | optional |
| └ CompanyNumber | string | optional |
| └ ContactGroups | array | optional |
| └ Name | string | optional |
| └ Status | string | optional |
| └ Contacts | array | optional |
| └ ContactGroupID | string | optional |
| └ …22 more | object | optional |
| └ SubTotal | number | optional |
| └ TotalTax | number | optional |
| └ LineItems | array | required |
| └ Item | object | optional |
| └ Code | string | optional |
| └ Name | string | optional |
| └ ItemID | string | optional |
| └ TaxType | string | optional |
| └ ItemCode | string | optional |
| └ Quantity | number | optional |
| └ Tracking | array | optional |
| └ Name | string | optional |
| └ Option | string | optional |
| └ TrackingOptionID | string | optional |
| └ TrackingCategoryID | string | optional |
| └ AccountID | string | optional |
| └ TaxAmount | number | optional |
| └ LineAmount | number | optional |
| └ LineItemID | string | optional |
| └ UnitAmount | number | optional |
| └ AccountCode | string | optional |
| └ Description | string | optional |
| └ DiscountRate | number | optional |
| └ DiscountAmount | number | optional |
| └ RepeatingInvoiceID | string | optional |
| └ Reference | string | optional |
| └ BankAccount | object | required |
| └ Code | string | optional |
| └ Name | string | optional |
| └ Type | string | optional |
| └ Class | string | optional |
| └ Status | string | optional |
| └ TaxType | string | optional |
| └ AccountID | string | optional |
| └ Description | string | optional |
| └ CurrencyCode | string | optional |
| └ ReportingCode | string | optional |
| └ SystemAccount | string | optional |
| └ AddToWatchlist | boolean | optional |
| └ HasAttachments | boolean | optional |
| └ UpdatedDateUTC | string | optional |
| └ BankAccountType | string | optional |
| └ ValidationErrors | array | optional |
| └ Message | string | optional |
| └ BankAccountNumber | string | optional |
| └ ReportingCodeName | string | optional |
| └ ShowInExpenseClaims | boolean | optional |
| └ EnablePaymentsToAccount | boolean | optional |
| └ CurrencyCode | string | optional |
| └ CurrencyRate | number | optional |
| └ IsReconciled | boolean | optional |
| └ PrepaymentID | string | optional |
| └ OverpaymentID | string | optional |
| └ HasAttachments | boolean | optional |
| └ UpdatedDateUTC | string | optional |
| └ LineAmountTypes | string | optional |
| └ ValidationErrors | array | optional |
| └ Message | string | optional |
| └ …2 more | object | optional |
Success - return response of type BankTransactions array with updated BankTransaction
A failed request due to validation error
POST /BankTransactions/{BankTransactionID}
/BankTransactions/{BankTransactionID}/Attachments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransactionID | path | optional | string | Xero generated unique identifier for a bank transaction |
Success - return response of type Attachments array with 0 to n Attachment
GET /BankTransactions/{BankTransactionID}/Attachments
/BankTransactions/{BankTransactionID}/Attachments/{AttachmentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransactionID | path | optional | string | Xero generated unique identifier for a bank transaction |
| AttachmentID | path | optional | string | Unique identifier for Attachment object |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for BankTransaction as binary data
GET /BankTransactions/{BankTransactionID}/Attachments/{AttachmentID}
/BankTransactions/{BankTransactionID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransactionID | path | optional | string | Xero generated unique identifier for a bank transaction |
| FileName | path | optional | string | Name of the attachment |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for BankTransaction as binary data
GET /BankTransactions/{BankTransactionID}/Attachments/{FileName}
/BankTransactions/{BankTransactionID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
| BankTransactionID | path | optional | string | Xero generated unique identifier for a bank transaction |
| FileName | path | optional | string | Name of the attachment |
Byte array of file in body of request
application/octet-stream
AccountingUpdateBankTransactionAttachmentRequest
Success - return response of Attachments array of Attachment
A failed request due to validation error
POST /BankTransactions/{BankTransactionID}/Attachments/{FileName}
/BankTransactions/{BankTransactionID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
| BankTransactionID | path | optional | string | Xero generated unique identifier for a bank transaction |
| FileName | path | optional | string | Name of the attachment |
Byte array of file in body of request
application/octet-stream
AccountingCreateBankTransactionAttachmentByFilenameRequest
Success - return response of Attachments array of Attachment
A failed request due to validation error
PUT /BankTransactions/{BankTransactionID}/Attachments/{FileName}
/BankTransactions/{BankTransactionID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransactionID | path | optional | string | Xero generated unique identifier for a bank transaction |
Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /BankTransactions/{BankTransactionID}/History
/BankTransactions/{BankTransactionID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
| BankTransactionID | path | optional | string | Xero generated unique identifier for a bank transaction |
HistoryRecords containing an array of HistoryRecord objects in body of request
application/json
HistoryRecords
| Property | Type | Required |
|---|---|---|
| HistoryRecords | array | optional |
| └ User | string | optional |
| └ Changes | string | optional |
| └ DateUTC | string | optional |
| └ Details | string | optional |
Success - return response of type HistoryRecords array of HistoryRecord objects
A failed request due to validation error
PUT /BankTransactions/{BankTransactionID}/History
/BankTransfers
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
Success - return response of BankTransfers array of 0 to N BankTransfer
GET /BankTransfers
/BankTransfers
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
BankTransfers with array of BankTransfer objects in request body
application/json
BankTransfers
| Property | Type | Required |
|---|---|---|
| BankTransfers | array | optional |
| └ Date | string | optional |
| └ Amount | number | required |
| └ Reference | string | optional |
| └ CurrencyRate | number | optional |
| └ ToBankAccount | object | required |
| └ Code | string | optional |
| └ Name | string | optional |
| └ Type | string | optional |
| └ Class | string | optional |
| └ Status | string | optional |
| └ TaxType | string | optional |
| └ AccountID | string | optional |
| └ Description | string | optional |
| └ CurrencyCode | string | optional |
| └ ReportingCode | string | optional |
| └ SystemAccount | string | optional |
| └ AddToWatchlist | boolean | optional |
| └ HasAttachments | boolean | optional |
| └ UpdatedDateUTC | string | optional |
| └ BankAccountType | string | optional |
| └ ValidationErrors | array | optional |
| └ Message | string | optional |
| └ BankAccountNumber | string | optional |
| └ ReportingCodeName | string | optional |
| └ ShowInExpenseClaims | boolean | optional |
| └ EnablePaymentsToAccount | boolean | optional |
| └ BankTransferID | string | optional |
| └ CreatedDateUTC | string | optional |
| └ HasAttachments | boolean | optional |
| └ ToIsReconciled | boolean | optional |
| └ FromBankAccount | object | required |
| └ Code | string | optional |
| └ Name | string | optional |
| └ Type | string | optional |
| └ Class | string | optional |
| └ Status | string | optional |
| └ TaxType | string | optional |
| └ AccountID | string | optional |
| └ Description | string | optional |
| └ CurrencyCode | string | optional |
| └ ReportingCode | string | optional |
| └ SystemAccount | string | optional |
| └ AddToWatchlist | boolean | optional |
| └ HasAttachments | boolean | optional |
| └ UpdatedDateUTC | string | optional |
| └ BankAccountType | string | optional |
| └ ValidationErrors | array | optional |
| └ Message | string | optional |
| └ BankAccountNumber | string | optional |
| └ ReportingCodeName | string | optional |
| └ ShowInExpenseClaims | boolean | optional |
| └ EnablePaymentsToAccount | boolean | optional |
| └ FromIsReconciled | boolean | optional |
| └ ValidationErrors | array | optional |
| └ Message | string | optional |
| └ ToBankTransactionID | string | optional |
| └ FromBankTransactionID | string | optional |
Success - return response of BankTransfers array of one BankTransfer
A failed request due to validation error
PUT /BankTransfers
/BankTransfers/{BankTransferID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransferID | path | optional | string | Xero generated unique identifier for a bank transfer |
Success - return response of BankTransfers array with one BankTransfer
GET /BankTransfers/{BankTransferID}
/BankTransfers/{BankTransferID}/Attachments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransferID | path | optional | string | Xero generated unique identifier for a bank transfer |
Success - return response of Attachments array of 0 to N Attachment for a Bank Transfer
GET /BankTransfers/{BankTransferID}/Attachments
/BankTransfers/{BankTransferID}/Attachments/{AttachmentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransferID | path | optional | string | Xero generated unique identifier for a bank transfer |
| AttachmentID | path | optional | string | Unique identifier for Attachment object |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of binary data from the Attachment to a Bank Transfer
GET /BankTransfers/{BankTransferID}/Attachments/{AttachmentID}
/BankTransfers/{BankTransferID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransferID | path | optional | string | Xero generated unique identifier for a bank transfer |
| FileName | path | optional | string | Name of the attachment |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of binary data from the Attachment to a Bank Transfer
GET /BankTransfers/{BankTransferID}/Attachments/{FileName}
/BankTransfers/{BankTransferID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
| BankTransferID | path | optional | string | Xero generated unique identifier for a bank transfer |
| FileName | path | optional | string | Name of the attachment |
Byte array of file in body of request
application/octet-stream
AccountingUploadBankTransferAttachmentRequest
Success - return response of Attachments array of 0 to N Attachment for a Bank Transfer
A failed request due to validation error
POST /BankTransfers/{BankTransferID}/Attachments/{FileName}
/BankTransfers/{BankTransferID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
| BankTransferID | path | optional | string | Xero generated unique identifier for a bank transfer |
| FileName | path | optional | string | Name of the attachment |
Byte array of file in body of request
application/octet-stream
AccountingUpdateBankTransferAttachmentRequest
Success - return response of Attachments array of 0 to N Attachment for a Bank Transfer
A failed request due to validation error
PUT /BankTransfers/{BankTransferID}/Attachments/{FileName}
/BankTransfers/{BankTransferID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransferID | path | optional | string | Xero generated unique identifier for a bank transfer |
Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /BankTransfers/{BankTransferID}/History
/BankTransfers/{BankTransferID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
| BankTransferID | path | optional | string | Xero generated unique identifier for a bank transfer |
HistoryRecords containing an array of HistoryRecord objects in body of request
application/json
HistoryRecords
| Property | Type | Required |
|---|---|---|
| HistoryRecords | array | optional |
| └ User | string | optional |
| └ Changes | string | optional |
| └ DateUTC | string | optional |
| └ Details | string | optional |
Success - return response of type HistoryRecords array of HistoryRecord objects
A failed request due to validation error
PUT /BankTransfers/{BankTransferID}/History
/BatchPayments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
Success - return response of type BatchPayments array of BatchPayment objects
GET /BatchPayments
/BatchPayments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
application/json
BatchPaymentDelete
| Property | Type | Required |
|---|---|---|
| Status | string | required |
| BatchPaymentID | string | required |
Success - return response of type BatchPayments array for updated BatchPayment
A failed request due to validation error
POST /BatchPayments
/BatchPayments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| summarizeErrors | query | optional | boolean | If false return 200 OK and mix of successfully created objects and any with validation errors |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
BatchPayments with an array of Payments in body of request
application/json
BatchPayments
| Property | Type | Required |
|---|---|---|
| BatchPayments | array | optional |
| └ Code | string | optional |
| └ Date | string | optional |
| └ Type | string | optional |
| └ Amount | number | optional |
| └ Status | string | optional |
| └ Account | object | optional |
| └ Code | string | optional |
| └ Name | string | optional |
| └ Type | string | optional |
| └ Class | string | optional |
| └ Status | string | optional |
| └ TaxType | string | optional |
| └ AccountID | string | optional |
| └ Description | string | optional |
| └ CurrencyCode | string | optional |
| └ ReportingCode | string | optional |
| └ SystemAccount | string | optional |
| └ AddToWatchlist | boolean | optional |
| └ HasAttachments | boolean | optional |
| └ UpdatedDateUTC | string | optional |
| └ BankAccountType | string | optional |
| └ ValidationErrors | array | optional |
| └ Message | string | optional |
| └ BankAccountNumber | string | optional |
| └ ReportingCodeName | string | optional |
| └ ShowInExpenseClaims | boolean | optional |
| └ EnablePaymentsToAccount | boolean | optional |
| └ Details | string | optional |
| └ Payments | array | optional |
| └ Code | string | optional |
| └ Date | string | optional |
| └ Amount | number | optional |
| └ Status | string | optional |
| └ Account | object | optional |
| └ Code | string | optional |
| └ Name | string | optional |
| └ Type | string | optional |
| └ Class | string | optional |
| └ Status | string | optional |
| └ TaxType | string | optional |
| └ AccountID | string | optional |
| └ Description | string | optional |
| └ CurrencyCode | string | optional |
| └ ReportingCode | string | optional |
| └ SystemAccount | string | optional |
| └ AddToWatchlist | boolean | optional |
| └ HasAttachments | boolean | optional |
| └ UpdatedDateUTC | string | optional |
| └ BankAccountType | string | optional |
| └ ValidationErrors | array | optional |
| └ BankAccountNumber | string | optional |
| └ ReportingCodeName | string | optional |
| └ ShowInExpenseClaims | boolean | optional |
| └ EnablePaymentsToAccount | boolean | optional |
| └ Details | string | optional |
| └ Invoice | object | optional |
| └ Url | string | optional |
| └ Date | string | optional |
| └ Type | string | optional |
| └ Total | number | optional |
| └ Status | string | optional |
| └ CISRate | number | optional |
| └ Contact | object | optional |
| └ DueDate | string | optional |
| └ Payments | array | optional |
| └ SubTotal | number | optional |
| └ TotalTax | number | optional |
| └ Warnings | array | optional |
| └ AmountDue | number | optional |
| └ HasErrors | boolean | optional |
| └ InvoiceID | string | optional |
| └ LineItems | array | optional |
| └ Reference | string | optional |
| └ AmountPaid | number | optional |
| └ Attachments | array | optional |
| └ CreditNotes | array | optional |
| └ …20 more | object | optional |
| └ Warnings | array | optional |
| └ Message | string | optional |
| └ PaymentID | string | optional |
| └ Reference | string | optional |
| └ BankAmount | number | optional |
| └ CreditNote | object | optional |
| └ Date | string | optional |
| └ Type | string | optional |
| └ Total | number | optional |
| └ Status | string | optional |
| └ CISRate | number | optional |
| └ Contact | object | optional |
| └ DueDate | string | optional |
| └ Payments | array | optional |
| └ SubTotal | number | optional |
| └ TotalTax | number | optional |
| └ Warnings | array | optional |
| └ HasErrors | boolean | optional |
| └ LineItems | array | optional |
| └ Reference | string | optional |
| └ Allocations | array | optional |
| └ CISDeduction | number | optional |
| └ CreditNoteID | string | optional |
| └ CurrencyCode | string | optional |
| └ CurrencyRate | number | optional |
| └ AppliedAmount | number | optional |
| └ …10 more | object | optional |
| └ HasAccount | boolean | optional |
| └ Prepayment | object | optional |
| └ Date | string | optional |
| └ Type | string | optional |
| └ Total | number | optional |
| └ Status | string | optional |
| └ Contact | object | optional |
| └ Payments | array | optional |
| └ SubTotal | number | optional |
| └ TotalTax | number | optional |
| └ LineItems | array | optional |
| └ Reference | string | optional |
| └ Allocations | array | optional |
| └ Attachments | array | optional |
| └ CurrencyCode | string | optional |
| └ CurrencyRate | number | optional |
| └ PrepaymentID | string | optional |
| └ AppliedAmount | number | optional |
| └ HasAttachments | boolean | optional |
| └ UpdatedDateUTC | string | optional |
| └ LineAmountTypes | string | optional |
| └ RemainingCredit | number | optional |
| └ Overpayment | object | optional |
| └ Date | string | optional |
| └ Type | string | optional |
| └ Total | number | optional |
| └ Status | string | optional |
| └ Contact | object | optional |
| └ Payments | array | optional |
| └ SubTotal | number | optional |
| └ TotalTax | number | optional |
| └ LineItems | array | optional |
| └ Allocations | array | optional |
| └ Attachments | array | optional |
| └ CurrencyCode | string | optional |
| └ CurrencyRate | number | optional |
| └ AppliedAmount | number | optional |
| └ OverpaymentID | string | optional |
| └ HasAttachments | boolean | optional |
| └ UpdatedDateUTC | string | optional |
| └ LineAmountTypes | string | optional |
| └ RemainingCredit | number | optional |
| └ Particulars | string | optional |
| └ PaymentType | string | optional |
| └ BatchPayment | object | optional |
| └ CurrencyRate | number | optional |
| └ IsReconciled | boolean | optional |
| └ …8 more | object | optional |
| └ Narrative | string | optional |
| └ Reference | string | optional |
| └ DateString | string | optional |
| └ Particulars | string | optional |
| └ TotalAmount | number | optional |
| └ IsReconciled | boolean | optional |
| └ BatchPaymentID | string | optional |
| └ UpdatedDateUTC | string | optional |
| └ ValidationErrors | array | optional |
| └ Message | string | optional |
Success - return response of type BatchPayments array of BatchPayment objects
A failed request due to validation error
PUT /BatchPayments
/BatchPayments/{BatchPaymentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BatchPaymentID | path | optional | string | Unique identifier for BatchPayment |
Success - return response of type BatchPayments array with matching batch payment Id
GET /BatchPayments/{BatchPaymentID}
/BatchPayments/{BatchPaymentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
| BatchPaymentID | path | optional | string | Unique identifier for BatchPayment |
application/json
BatchPaymentDeleteByUrlParam
| Property | Type | Required |
|---|---|---|
| Status | string | required |
Success - return response of type BatchPayments array for updated BatchPayment
A failed request due to validation error
POST /BatchPayments/{BatchPaymentID}
/BatchPayments/{BatchPaymentID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BatchPaymentID | path | optional | string | Unique identifier for BatchPayment |
Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /BatchPayments/{BatchPaymentID}/History
/BatchPayments/{BatchPaymentID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
| BatchPaymentID | path | optional | string | Unique identifier for BatchPayment |
HistoryRecords containing an array of HistoryRecord objects in body of request
application/json
HistoryRecords
| Property | Type | Required |
|---|---|---|
| HistoryRecords | array | optional |
| └ User | string | optional |
| └ Changes | string | optional |
| └ DateUTC | string | optional |
| └ Details | string | optional |
Success - return response of type HistoryRecords array of HistoryRecord objects
A failed request due to validation error
PUT /BatchPayments/{BatchPaymentID}/History
/BrandingThemes
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
Success - return response of type BrandingThemes
GET /BrandingThemes
/BrandingThemes/{BrandingThemeID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BrandingThemeID | path | optional | string | Unique identifier for a Branding Theme |
Success - return response of type BrandingThemes with one BrandingTheme
GET /BrandingThemes/{BrandingThemeID}
/BrandingThemes/{BrandingThemeID}/PaymentServices
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BrandingThemeID | path | optional | string | Unique identifier for a Branding Theme |
Success - return response of type PaymentServices array with 0 to N PaymentService
GET /BrandingThemes/{BrandingThemeID}/PaymentServices
/BrandingThemes/{BrandingThemeID}/PaymentServices
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
| BrandingThemeID | path | optional | string | Unique identifier for a Branding Theme |
PaymentServices array with PaymentService object in body of request
application/json
PaymentServices
| Property | Type | Required |
|---|---|---|
| PaymentServices | array | optional |
| └ PayNowText | string | optional |
| └ PaymentServiceID | string | optional |
| └ ValidationErrors | array | optional |
| └ Message | string | optional |
| └ PaymentServiceUrl | string | optional |
| └ PaymentServiceName | string | optional |
| └ PaymentServiceType | string | optional |
Success - return response of type PaymentServices array with newly created PaymentService
A failed request due to validation error
POST /BrandingThemes/{BrandingThemeID}/PaymentServices
/Budgets
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| IDs | query | optional | string | Filter by BudgetID. Allows you to retrieve a specific individual budget. |
| DateTo | query | optional | string | Filter by start date |
| DateFrom | query | optional | string | Filter by end date |
Success - return response of type Budgets array with 0 to N Budgets
GET /Budgets
/Budgets/{BudgetID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BudgetID | path | optional | string | Unique identifier for Budgets |
| DateTo | query | optional | string | Filter by start date |
| DateFrom | query | optional | string | Filter by end date |
Success - return response of type Invoices array with specified Invoices
GET /Budgets/{BudgetID}
/ContactGroups
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
Success - return response of type Contact Groups array of Contact Group
GET /ContactGroups
/ContactGroups
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
ContactGroups with an array of names in request body
application/json
ContactGroups
| Property | Type | Required |
|---|---|---|
| ContactGroups | array | optional |
| └ Name | string | optional |
| └ Status | string | optional |
| └ Contacts | array | optional |
| └ Name | string | optional |
| └ Phones | array | optional |
| └ PhoneType | string | optional |
| └ PhoneNumber | string | optional |
| └ PhoneAreaCode | string | optional |
| └ PhoneCountryCode | string | optional |
| └ Website | string | optional |
| └ Balances | object | optional |
| └ AccountsPayable | object | optional |
| └ AccountsReceivable | object | optional |
| └ Discount | number | optional |
| └ LastName | string | optional |
| └ Addresses | array | optional |
| └ City | string | optional |
| └ Region | string | optional |
| └ Country | string | optional |
| └ PostalCode | string | optional |
| └ AddressType | string | optional |
| └ AttentionTo | string | optional |
| └ AddressLine1 | string | optional |
| └ AddressLine2 | string | optional |
| └ AddressLine3 | string | optional |
| └ AddressLine4 | string | optional |
| └ ContactID | string | optional |
| └ FirstName | string | optional |
| └ TaxNumber | string | optional |
| └ IsCustomer | boolean | optional |
| └ IsSupplier | boolean | optional |
| └ Attachments | array | optional |
| └ Url | string | optional |
| └ FileName | string | optional |
| └ MimeType | string | optional |
| └ AttachmentID | string | optional |
| └ ContentLength | integer | optional |
| └ IncludeOnline | boolean | optional |
| └ EmailAddress | string | optional |
| └ PaymentTerms | object | optional |
| └ Bills | object | optional |
| └ Sales | object | optional |
| └ AccountNumber | string | optional |
| └ BatchPayments | object | optional |
| └ Code | string | optional |
| └ Details | string | optional |
| └ Reference | string | optional |
| └ BankAccountName | string | optional |
| └ BankAccountNumber | string | optional |
| └ BrandingTheme | object | optional |
| └ Name | string | optional |
| └ Type | string | optional |
| └ LogoUrl | string | optional |
| └ SortOrder | integer | optional |
| └ CreatedDateUTC | string | optional |
| └ BrandingThemeID | string | optional |
| └ CompanyNumber | string | optional |
| └ ContactGroups | array | optional |
| └ …22 more | object | optional |
| └ ContactGroupID | string | optional |
Success - return response of type Contact Groups array of newly created Contact Group
Validation Error - some data was incorrect returns response of type Error
PUT /ContactGroups
/ContactGroups/{ContactGroupID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ContactGroupID | path | optional | string | Unique identifier for a Contact Group |
Success - return response of type Contact Groups array with a specific Contact Group
GET /ContactGroups/{ContactGroupID}
/ContactGroups/{ContactGroupID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| Idempotency-Key | header | optional | string | This allows you to safely retry requests without the risk of duplicate processing. 128 character max. |
| ContactGroupID | path | optional | string | Unique identifier for a Contact Group |
an array of Contact groups with Name of specific group to update
application/json
ContactGroups
| Property | Type | Required |
|---|---|---|
| ContactGroups | array | optional |
| └ Name | string | optional |
| └ Status | string | optional |
| └ Contacts | array | optional |
| └ Name | string | optional |
| └ Phones | array | optional |
| └ PhoneType | string | optional |
| └ PhoneNumber | string | optional |
| └ PhoneAreaCode | string | optional |
| └ PhoneCountryCode | string | optional |
| └ Website | string | optional |
| └ Balances | object | optional |
| └ AccountsPayable | object | optional |
| └ AccountsReceivable | object | optional |
| └ Discount | number | optional |
| └ LastName | string | optional |
| └ Addresses | array | optional |
| └ City | string | optional |
| └ Region | string | optional |
| └ Country | string | optional |
| └ PostalCode | string | optional |
| └ AddressType | string | optional |
| └ AttentionTo | string | optional |
| └ AddressLine1 | string | optional |
| └ AddressLine2 | string | optional |
| └ AddressLine3 | string | optional |
| └ AddressLine4 | string | optional |
| └ ContactID | string | optional |
| └ FirstName | string | optional |
| └ TaxNumber | string | optional |
| └ IsCustomer | boolean | optional |
| └ IsSupplier | boolean | optional |
| └ Attachments | array | optional |
| └ Url | string | optional |
| └ FileName | string | optional |
| └ MimeType | string | optional |
| └ AttachmentID | string | optional |
| └ ContentLength | integer | optional |
| └ IncludeOnline | boolean | optional |
| └ EmailAddress | string | optional |
| └ PaymentTerms | object | optional |
| └ Bills | object | optional |
| └ Sales | object | optional |
| └ AccountNumber | string | optional |
| └ BatchPayments | object | optional |
| └ Code | string | optional |
| └ Details | string | optional |
| └ Reference | string | optional |
| └ BankAccountName | string | optional |
| └ BankAccountNumber | string | optional |
| └ BrandingTheme | object | optional |
| └ Name | string | optional |
| └ Type | string | optional |
| └ LogoUrl | string | optional |
| └ SortOrder | integer | optional |
| └ CreatedDateUTC | string | optional |
| └ BrandingThemeID | string | optional |
| └ CompanyNumber | string | optional |
| └ ContactGroups | array | optional |
| └ …22 more | object | optional |
| └ ContactGroupID | string | optional |
Success - return response of type Contact Groups array of updated Contact Group
A failed request due to validation error
POST /ContactGroups/{ContactGroupID}
/ContactGroups/{ContactGroupID}/Contacts
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ContactGroupID | path | optional | string | Unique identifier for a Contact Group |
Success - return response 204 no content
DELETE /ContactGroups/{ContactGroupID}/Contacts
Account
{
"type": "object",
"properties": {
"Code": {
"type": "string",
"example": 4400,
"description": "Customer defined alpha numeric account code e.g 200 or SALES (max length = 10)"
},
"Name": {
"type": "string",
"example": "Food Sales",
"maxLength": 150,
"description": "Name of account (max length = 150)"
},
"Type": {
"$ref": "#/components/schemas/AccountType",
"type": "string"
},
"Class": {
"enum": [
"ASSET",
"EQUITY",
"EXPENSE",
"LIABILITY",
"REVENUE"
],
"type": "string",
"readOnly": true,
"description": "See Account Class Types"
},
"Status": {
"enum": [
"ACTIVE",
"ARCHIVED",
"DELETED"
],
"type": "string",
"description": "Accounts with a status of ACTIVE can be updated to ARCHIVED. See Account Status Codes"
},
"TaxType": {
"type": "string",
"description": "The tax type from taxRates"
},
"AccountID": {
"type": "string",
"format": "uuid",
"example": "00000000-0000-0000-0000-000000000000",
"description": "The Xero identifier for an account – specified as a string following the endpoint name e.g. /297c2dc5-cc47-4afd-8ec8-74990b8761e9"
},
"Description": {
"type": "string",
"description": "Description of the Account. Valid for all types of accounts except bank accounts (max length = 4000)"
},
"CurrencyCode": {
"$ref": "#/components/schemas/CurrencyCode",
"type": "string"
},
"ReportingCode": {
"type": "string",
"description": "Shown if set"
},
"SystemAccount": {
"enum": [
"DEBTORS",
"CREDITORS",
"BANKCURRENCYGAIN",
"GST",
"GSTONIMPORTS",
"HISTORICAL",
"REALISEDCURRENCYGAIN",
"RETAINEDEARNINGS",
"ROUNDING",
"TRACKINGTRANSFERS",
"UNPAIDEXPCLM",
"UNREALISEDCURRENCYGAIN",
"WAGEPAYABLES",
"CISASSETS",
"CISASSET",
"CISLABOUR",
"CISLABOUREXPENSE",
"CISLABOURINCOME",
"CISLIABILITY",
"CISMATERIALS",
""
],
"type": "string",
"readOnly": true,
"description": "If this is a system account then this element is returned. See System Account types. Note that non-system accounts may have this element set as either “” or null."
},
"AddToWatchlist": {
"type": "boolean",
"description": "Boolean – describes whether the account is shown in the watchlist widget on the dashboard"
},
"HasAttachments": {
"type": "boolean",
"default": "false",
"example": false,
"readOnly": true,
"description": "boolean to indicate if an account has an attachment (read only)"
},
"UpdatedDateUTC": {
"type": "string",
"example": "/Date(1573755038314)/",
"readOnly": true,
"description": "Last modified date UTC format",
"x-is-msdate-time": true
},
"BankAccountType": {
"enum": [
"BANK",
"CREDITCARD",
"PAYPAL",
"NONE",
""
],
"type": "string",
"description": "For bank accounts only. See Bank Account types"
},
"ValidationErrors": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"description": "Displays array of validation error messages from the API"
},
"BankAccountNumber": {
"type": "string",
"description": "For bank accounts only (Account Type BANK)"
},
"ReportingCodeName": {
"type": "string",
"readOnly": true,
"description": "Shown if set"
},
"ShowInExpenseClaims": {
"type": "boolean",
"description": "Boolean – describes whether account code is available for use with expense claims"
},
"EnablePaymentsToAccount": {
"type": "boolean",
"description": "Boolean – describes whether account can have payments applied to it"
}
},
"externalDocs": {
"url": "http://developer.xero.com/documentation/api/accounts/"
}
}
AccountType
{
"enum": [
"BANK",
"CURRENT",
"CURRLIAB",
"DEPRECIATN",
"DIRECTCOSTS",
"EQUITY",
"EXPENSE",
"FIXED",
"INVENTORY",
"LIABILITY",
"NONCURRENT",
"OTHERINCOME",
"OVERHEADS",
"PREPAYMENT",
"REVENUE",
"SALES",
"TERMLIAB",
"PAYG"
],
"type": "string",
"description": "See Account Types"
}
AccountingCreateAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingCreateAttachmentRequest1
{
"type": "string",
"format": "byte"
}
AccountingCreateBankTransactionAttachmentByFilenameRequest
{
"type": "string",
"format": "byte"
}
AccountingCreatePurchaseOrderAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingCreateQuoteAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingCreateReceiptAttachmentByFileNameRequest
{
"type": "string",
"format": "byte"
}
AccountingCreateRepeatingInvoiceAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingCreateSpecificAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingGetAttachment200Response
{
"type": "string",
"format": "binary"
}
AccountingGetAttachmentByFileName200Response
{
"type": "string",
"format": "binary"
}
AccountingGetAttachmentByFileNameResponse
{
"type": "string",
"format": "binary"
}
AccountingGetAttachmentByFilenameResponse
{
"type": "string",
"format": "binary"
}
AccountingGetAttachmentByIdResponse
{
"type": "string",
"format": "binary"
}
AccountingGetAttachmentResponse
{
"type": "string",
"format": "binary"
}
AccountingGetCreditNoteAttachmentResponse
{
"type": "string",
"format": "binary"
}
AccountingGetCreditNotePdfResponse
{
"type": "string",
"format": "binary"
}
AccountingGetExpenseClaimsAttachmentResponse
{
"type": "string",
"format": "binary"
}
AccountingGetInvoicePdfResponse
{
"type": "string",
"format": "binary"
}
AccountingGetPurchaseOrderPdfResponse
{
"type": "string",
"format": "binary"
}
AccountingGetQuoteAttachmentResponse
{
"type": "string",
"format": "binary"
}
AccountingGetQuotePdfResponse
{
"type": "string",
"format": "binary"
}
AccountingGetRepeatingInvoiceAttachmentResponse
{
"type": "string",
"format": "binary"
}
AccountingGetSpecificAttachment200Response
{
"type": "string",
"format": "binary"
}
AccountingGetSpecificAttachmentResponse
{
"type": "string",
"format": "binary"
}
AccountingUpdateAttachmentByFilenameRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdateAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdateAttachmentsByFileNameRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdateBankTransactionAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdateBankTransferAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdateCreditNoteAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdatePurchaseOrderAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdateQuoteAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdateRepeatingInvoiceAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdateSpecificAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdateSpecificAttachmentRequest1
{
"type": "string",
"format": "byte"
}
AccountingUploadAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingUploadAttachmentRequest1
{
"type": "string",
"format": "byte"
}
AccountingUploadBankTransferAttachmentRequest
{
"type": "string",
"format": "byte"
}
Accounts
{
"type": "object",
"properties": {
"Accounts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Account"
}
}
},
"x-isObjectArray": true
}
AccountsPayable
{
"type": "object",
"properties": {
"Overdue": {
"type": "number",
"format": "double",
"x-is-money": true
},
"Outstanding": {
"type": "number",
"format": "double",
"x-is-money": true
}
}
}
AccountsReceivable
{
"type": "object",
"properties": {
"Overdue": {
"type": "number",
"format": "double",
"x-is-money": true
},
"Outstanding": {
"type": "number",
"format": "double",
"x-is-money": true
}
}
}
Action
{
"properties": {
"Name": {
"type": "string",
"example": "UseMulticurrency",
"description": "Name of the actions for this organisation"
},
"Status": {
"enum": [
"ALLOWED",
"NOT-ALLOWED"
],
"type": "string",
"description": "Status of the action for this organisation"
}
},
"externalDocs": {
"url": "http://developer.xero.com/documentation/api/organisation/"
}
}
Actions
{
"type": "object",
"properties": {
"Actions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Action"
}
}
},
"x-isObjectArray": true
}
Address
{
"type": "object",
"properties": {
"City": {
"type": "string",
"maxLength": 255,
"description": "max length = 255"
},
"Region": {
"type": "string",
"maxLength": 255,
"description": "max length = 255"
},
"Country": {
"type": "string",
"maxLength": 50,
"description": "max length = 50, [A-Z], [a-z] only"
},
"PostalCode": {
"type": "string",
"maxLength": 50,
"description": "max length = 50"
},
"AddressType": {
"enum": [
"POBOX",
"STREET"
],
"type": "string",
"description": "define the type of address"
},
"AttentionTo": {
"type": "string",
"maxLength": 255,
"description": "max length = 255"
},
"AddressLine1": {
"type": "string",
"maxLength": 500,
"description": "max length = 500"
},
"AddressLine2": {
"type": "string",
"maxLength": 500,
"description": "max length = 500"
},
"AddressLine3": {
"type": "string",
"maxLength": 500,
"description": "max length = 500"
},
"AddressLine4": {
"type": "string",
"maxLength": 500,
"description": "max length = 500"
}
},
"externalDocs": {
"url": "http://developer.xero.com/documentation/api/types"
}
}
AddressForOrganisation
{
"type": "object",
"properties": {
"City": {
"type": "string",
"maxLength": 255,
"description": "max length = 255"
},
"Region": {
"type": "string",
"maxLength": 255,
"description": "max length = 255"
},
"Country": {
"type": "string",
"maxLength": 50,
"description": "max length = 50, [A-Z], [a-z] only"
},
"PostalCode": {
"type": "string",
"maxLength": 50,
"description": "max length = 50"
},
"AddressType": {
"enum": [
"POBOX",
"STREET",
"DELIVERY"
],
"type": "string",
"description": "define the type of address"
},
"AttentionTo": {
"type": "string",
"maxLength": 255,
"description": "max length = 255"
},
"AddressLine1": {
"type": "string",
"maxLength": 500,
"description": "max length = 500"
},
"AddressLine2": {
"type": "string",
"maxLength": 500,
"description": "max length = 500"
},
"AddressLine3": {
"type": "string",
"maxLength": 500,
"description": "max length = 500"
},
"AddressLine4": {
"type": "string",
"maxLength": 500,
"description": "max length = 500"
}
},
"externalDocs": {
"url": "http://developer.xero.com/documentation/api/types"
}
}
Allocation
{
"type": "object",
"required": [
"Amount",
"Invoice",
"Date"
],
"properties": {
"Date": {
"type": "string",
"description": "the date the allocation is applied YYYY-MM-DD.",
"x-is-msdate": true
},
"Amount": {
"type": "number",
"format": "double",
"x-is-money": true,
"description": "the amount being applied to the invoice"
},
"Invoice": {
"$ref": "#/components/schemas/Invoice"
},
"IsDeleted": {
"type": "boolean",
"readOnly": true,
"description": "A flag that returns true when the allocation is succesfully deleted"
},
"CreditNote": {
"$ref": "#/components/schemas/CreditNote"
},
"Prepayment": {
"$ref": "#/components/schemas/Prepayment"
},
"Overpayment": {
"$ref": "#/components/schemas/Overpayment"
},
"AllocationID": {
"type": "string",
"format": "uuid",
"description": "Xero generated unique identifier"
},
"ValidationErrors": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"description": "Displays array of validation error messages from the API"
},
"StatusAttributeString": {
"type": "string",
"description": "A string to indicate if a invoice status"
}
},
"externalDocs": {
"url": "http://developer.xero.com/documentation/api/prepayments/"
}
}
Allocations
{
"type": "object",
"properties": {
"Allocations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Allocation"
}
}
},
"x-isObjectArray": true
}
Attachment
{
"type": "object",
"properties": {
"Url": {
"type": "string",
"example": "https://api.xero.com/api.xro/2.0/Accounts/da962997-a8bd-4dff-9616-01cdc199283f/Attachments/sample5.jpg",
"description": "URL to the file on xero.com"
},
"FileName": {
"type": "string",
"example": "xero-dev.jpg",
"description": "Name of the file"
},
"MimeType": {
"type": "string",
"example": "image/jpg",
"description": "Type of file"
},
"AttachmentID": {
"type": "string",
"format": "uuid",
"example": "00000000-0000-0000-0000-000000000000",
"description": "Unique ID for the file"
},
"ContentLength": {
"type": "integer",
"description": "Length of the file content"
},
"IncludeOnline": {
"type": "boolean",
"description": "Include the file with the online invoice"
}
},
"externalDocs": {
"url": "http://developer.xero.com/documentation/api/attachments/"
}
}
| Version | Endpoints | Schemas | Ingested | Status |
|---|---|---|---|---|
| 3.0.1 | 237 | 171 | 2026-05-11 | current |
| 3.0.1 | 237 | 171 | 2026-04-16 |