Xero Accounting API

Cloud accounting software API

developer.xero.com/documentation ↗
Version
3.0.1
OpenAPI
3.0.0
Endpoints
237
Schemas
171
69
Quality
Updated
3 days ago
Finance accounting finance invoicing
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.xero.com/api.xro/2.0

Endpoints

Accounting 50 endpoints

GET /Accounts
operationId: Accounting_getFullChartOfAccounts

Parameters

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

Responses

200

Success - return response of type Accounts array with 0 to n Account

GET /Accounts
PUT /Accounts
operationId: Accounting_createChartOfAccounts

Parameters

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.

Request Body

required

Account object in body of request

application/json
schema 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

Responses

200

Success - created new Account and return response of type Accounts array with new Account

400

Validation Error - some data was incorrect returns response of type Error

PUT /Accounts
DELETE /Accounts/{AccountID}
operationId: Accounting_deleteChartOfAccounts

Parameters

Name In Required Type Description
xero-tenant-id header optional string

Xero identifier for Tenant

AccountID path optional string

Unique identifier for Account object

Responses

200

Success - delete existing Account and return response of type Accounts array with deleted Account

400

Validation Error - some data was incorrect returns response of type Error

DELETE /Accounts/{AccountID}
GET /Accounts/{AccountID}
operationId: Accounting_getChartOfAccountsById

Parameters

Name In Required Type Description
xero-tenant-id header optional string

Xero identifier for Tenant

AccountID path optional string

Unique identifier for Account object

Responses

200

Success - return response of type Accounts array with one Account

GET /Accounts/{AccountID}
POST /Accounts/{AccountID}
operationId: Accounting_updateChartOfAccounts

Parameters

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 Body

required

Request of type Accounts array with one Account

application/json
schema 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

Responses

200

Success - update existing Account and return response of type Accounts array with updated Account

400

Validation Error - some data was incorrect returns response of type Error

POST /Accounts/{AccountID}
GET /Accounts/{AccountID}/Attachments
operationId: Accounting_getAttachments

Parameters

Name In Required Type Description
xero-tenant-id header optional string

Xero identifier for Tenant

AccountID path optional string

Unique identifier for Account object

Responses

200

Success - return response of type Attachments array of Attachment

GET /Accounts/{AccountID}/Attachments
GET /Accounts/{AccountID}/Attachments/{AttachmentID}
operationId: Accounting_getAttachmentById

Parameters

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

Responses

200

Success - return response of attachment for Account as binary data

GET /Accounts/{AccountID}/Attachments/{AttachmentID}
GET /Accounts/{AccountID}/Attachments/{FileName}
operationId: Accounting_getAttachmentByFilename

Parameters

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

Responses

200

Success - return response of attachment for Account as binary data

GET /Accounts/{AccountID}/Attachments/{FileName}
POST /Accounts/{AccountID}/Attachments/{FileName}
operationId: Accounting_updateAttachmentByFilename

Parameters

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.

Request Body

required

Byte array of file in body of request

application/octet-stream
schema AccountingUpdateAttachmentByFilenameRequest
string

Responses

200

Success - return response of type Attachments array of Attachment

400

Validation Error - some data was incorrect returns response of type Error

POST /Accounts/{AccountID}/Attachments/{FileName}
PUT /Accounts/{AccountID}/Attachments/{FileName}
operationId: Accounting_createAttachment

Parameters

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.

Request Body

required

Byte array of file in body of request

application/octet-stream
schema AccountingCreateAttachmentRequest
string

Responses

200

Success - return response of type Attachments array of Attachment

400

A failed request due to validation error

PUT /Accounts/{AccountID}/Attachments/{FileName}
GET /BankTransactions
operationId: Accounting_getMoneyTransactions

Parameters

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

Responses

200

Success - return response of type BankTransactions array with 0 to n BankTransaction

GET /BankTransactions
POST /BankTransactions
operationId: Accounting_updateBankTransactions

Parameters

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.

Request Body

required
application/json
schema 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

Responses

200

Success - return response of type BankTransactions array with new BankTransaction

400

A failed request due to validation error

POST /BankTransactions
PUT /BankTransactions
operationId: Accounting_createBankTransactions

Parameters

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.

Request Body

required

BankTransactions with an array of BankTransaction objects in body of request

application/json
schema 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

Responses

200

Success - return response of type BankTransactions array with new BankTransaction

400

A failed request due to validation error

PUT /BankTransactions
GET /BankTransactions/{BankTransactionID}
operationId: Accounting_getBankTransactionById

Parameters

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

Responses

200

Success - return response of type BankTransactions array with a specific BankTransaction

GET /BankTransactions/{BankTransactionID}
POST /BankTransactions/{BankTransactionID}
operationId: Accounting_updateBankTransaction

Parameters

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.

Request Body

required
application/json
schema 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

Responses

200

Success - return response of type BankTransactions array with updated BankTransaction

400

A failed request due to validation error

POST /BankTransactions/{BankTransactionID}
GET /BankTransactions/{BankTransactionID}/Attachments
operationId: Accounting_getBankTransactionAttachments

Parameters

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

Responses

200

Success - return response of type Attachments array with 0 to n Attachment

GET /BankTransactions/{BankTransactionID}/Attachments
GET /BankTransactions/{BankTransactionID}/Attachments/{AttachmentID}
operationId: Accounting_getAttachment

Parameters

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

Responses

200

Success - return response of attachment for BankTransaction as binary data

GET /BankTransactions/{BankTransactionID}/Attachments/{AttachmentID}
GET /BankTransactions/{BankTransactionID}/Attachments/{FileName}
operationId: Accounting_getAttachmentByFileName

Parameters

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

Responses

200

Success - return response of attachment for BankTransaction as binary data

GET /BankTransactions/{BankTransactionID}/Attachments/{FileName}
POST /BankTransactions/{BankTransactionID}/Attachments/{FileName}
operationId: Accounting_updateBankTransactionAttachment

Parameters

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

Request Body

required

Byte array of file in body of request

application/octet-stream
schema AccountingUpdateBankTransactionAttachmentRequest
string

Responses

200

Success - return response of Attachments array of Attachment

400

A failed request due to validation error

POST /BankTransactions/{BankTransactionID}/Attachments/{FileName}
PUT /BankTransactions/{BankTransactionID}/Attachments/{FileName}
operationId: Accounting_createBankTransactionAttachmentByFilename

Parameters

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

Request Body

required

Byte array of file in body of request

application/octet-stream
schema AccountingCreateBankTransactionAttachmentByFilenameRequest
string

Responses

200

Success - return response of Attachments array of Attachment

400

A failed request due to validation error

PUT /BankTransactions/{BankTransactionID}/Attachments/{FileName}
GET /BankTransactions/{BankTransactionID}/History
operationId: Accounting_getBankTransactionHistory

Parameters

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

Responses

200

Success - return response of HistoryRecords array of 0 to N HistoryRecord

GET /BankTransactions/{BankTransactionID}/History
PUT /BankTransactions/{BankTransactionID}/History
operationId: Accounting_createBankTransactionHistory

Parameters

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

Request Body

HistoryRecords containing an array of HistoryRecord objects in body of request

application/json
schema HistoryRecords
Property Type Required
HistoryRecords array optional
User string optional
Changes string optional
DateUTC string optional
Details string optional

Responses

200

Success - return response of type HistoryRecords array of HistoryRecord objects

400

A failed request due to validation error

PUT /BankTransactions/{BankTransactionID}/History
GET /BankTransfers
operationId: Accounting_getBankTransfers

Parameters

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

Responses

200

Success - return response of BankTransfers array of 0 to N BankTransfer

GET /BankTransfers
PUT /BankTransfers
operationId: Accounting_createBankTransfer

Parameters

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.

Request Body

required

BankTransfers with array of BankTransfer objects in request body

application/json
schema 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

Responses

200

Success - return response of BankTransfers array of one BankTransfer

400

A failed request due to validation error

PUT /BankTransfers
GET /BankTransfers/{BankTransferID}
operationId: Accounting_getBankTransferById

Parameters

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

Responses

200

Success - return response of BankTransfers array with one BankTransfer

GET /BankTransfers/{BankTransferID}
GET /BankTransfers/{BankTransferID}/Attachments
operationId: Accounting_getBankTransferAttachments

Parameters

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

Responses

200

Success - return response of Attachments array of 0 to N Attachment for a Bank Transfer

GET /BankTransfers/{BankTransferID}/Attachments
GET /BankTransfers/{BankTransferID}/Attachments/{AttachmentID}
operationId: Accounting_getAttachment

Parameters

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

Responses

200

Success - return response of binary data from the Attachment to a Bank Transfer

GET /BankTransfers/{BankTransferID}/Attachments/{AttachmentID}
GET /BankTransfers/{BankTransferID}/Attachments/{FileName}
operationId: Accounting_getSpecificAttachment

Parameters

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

Responses

200

Success - return response of binary data from the Attachment to a Bank Transfer

GET /BankTransfers/{BankTransferID}/Attachments/{FileName}
POST /BankTransfers/{BankTransferID}/Attachments/{FileName}
operationId: Accounting_uploadBankTransferAttachment

Parameters

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

Request Body

required

Byte array of file in body of request

application/octet-stream
schema AccountingUploadBankTransferAttachmentRequest
string

Responses

200

Success - return response of Attachments array of 0 to N Attachment for a Bank Transfer

400

A failed request due to validation error

POST /BankTransfers/{BankTransferID}/Attachments/{FileName}
PUT /BankTransfers/{BankTransferID}/Attachments/{FileName}
operationId: Accounting_updateBankTransferAttachment

Parameters

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

Request Body

required

Byte array of file in body of request

application/octet-stream
schema AccountingUpdateBankTransferAttachmentRequest
string

Responses

200

Success - return response of Attachments array of 0 to N Attachment for a Bank Transfer

400

A failed request due to validation error

PUT /BankTransfers/{BankTransferID}/Attachments/{FileName}
GET /BankTransfers/{BankTransferID}/History
operationId: Accounting_getBankTransferHistory

Parameters

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

Responses

200

Success - return response of HistoryRecords array of 0 to N HistoryRecord

GET /BankTransfers/{BankTransferID}/History
PUT /BankTransfers/{BankTransferID}/History
operationId: Accounting_createBankTransferHistory

Parameters

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

Request Body

HistoryRecords containing an array of HistoryRecord objects in body of request

application/json
schema HistoryRecords
Property Type Required
HistoryRecords array optional
User string optional
Changes string optional
DateUTC string optional
Details string optional

Responses

200

Success - return response of type HistoryRecords array of HistoryRecord objects

400

A failed request due to validation error

PUT /BankTransfers/{BankTransferID}/History
GET /BatchPayments
operationId: Accounting_getBatchPayments

Parameters

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

Responses

200

Success - return response of type BatchPayments array of BatchPayment objects

GET /BatchPayments
POST /BatchPayments
operationId: Accounting_updateBatchPayment

Parameters

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.

Request Body

required
application/json
schema BatchPaymentDelete
Property Type Required
Status string required
BatchPaymentID string required

Responses

200

Success - return response of type BatchPayments array for updated BatchPayment

400

A failed request due to validation error

POST /BatchPayments
PUT /BatchPayments
operationId: Accounting_createBatchPayments

Parameters

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.

Request Body

required

BatchPayments with an array of Payments in body of request

application/json
schema 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

Responses

200

Success - return response of type BatchPayments array of BatchPayment objects

400

A failed request due to validation error

PUT /BatchPayments
GET /BatchPayments/{BatchPaymentID}
operationId: Accounting_getBatchPayment

Parameters

Name In Required Type Description
xero-tenant-id header optional string

Xero identifier for Tenant

BatchPaymentID path optional string

Unique identifier for BatchPayment

Responses

200

Success - return response of type BatchPayments array with matching batch payment Id

GET /BatchPayments/{BatchPaymentID}
POST /BatchPayments/{BatchPaymentID}
operationId: Accounting_updateBatchPayment

Parameters

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

Request Body

required
application/json
schema BatchPaymentDeleteByUrlParam
Property Type Required
Status string required

Responses

200

Success - return response of type BatchPayments array for updated BatchPayment

400

A failed request due to validation error

POST /BatchPayments/{BatchPaymentID}
GET /BatchPayments/{BatchPaymentID}/History
operationId: Accounting_getBatchPaymentHistory

Parameters

Name In Required Type Description
xero-tenant-id header optional string

Xero identifier for Tenant

BatchPaymentID path optional string

Unique identifier for BatchPayment

Responses

200

Success - return response of HistoryRecords array of 0 to N HistoryRecord

GET /BatchPayments/{BatchPaymentID}/History
PUT /BatchPayments/{BatchPaymentID}/History
operationId: Accounting_recordBatchPaymentHistory

Parameters

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

Request Body

HistoryRecords containing an array of HistoryRecord objects in body of request

application/json
schema HistoryRecords
Property Type Required
HistoryRecords array optional
User string optional
Changes string optional
DateUTC string optional
Details string optional

Responses

200

Success - return response of type HistoryRecords array of HistoryRecord objects

400

A failed request due to validation error

PUT /BatchPayments/{BatchPaymentID}/History
GET /BrandingThemes
operationId: Accounting_getBrandingThemes

Parameters

Name In Required Type Description
xero-tenant-id header optional string

Xero identifier for Tenant

Responses

200

Success - return response of type BrandingThemes

GET /BrandingThemes
GET /BrandingThemes/{BrandingThemeID}
operationId: Accounting_getBrandingThemeById

Parameters

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

Responses

200

Success - return response of type BrandingThemes with one BrandingTheme

GET /BrandingThemes/{BrandingThemeID}
GET /BrandingThemes/{BrandingThemeID}/PaymentServices
operationId: Accounting_getPaymentServices

Parameters

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

Responses

200

Success - return response of type PaymentServices array with 0 to N PaymentService

GET /BrandingThemes/{BrandingThemeID}/PaymentServices
POST /BrandingThemes/{BrandingThemeID}/PaymentServices
operationId: Accounting_createPaymentService

Parameters

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

Request Body

required

PaymentServices array with PaymentService object in body of request

application/json
schema 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

Responses

200

Success - return response of type PaymentServices array with newly created PaymentService

400

A failed request due to validation error

POST /BrandingThemes/{BrandingThemeID}/PaymentServices
GET /Budgets
operationId: Accounting_getBudgetsList

Parameters

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

Responses

200

Success - return response of type Budgets array with 0 to N Budgets

GET /Budgets
GET /Budgets/{BudgetID}
operationId: Accounting_getBudget

Parameters

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

Responses

200

Success - return response of type Invoices array with specified Invoices

GET /Budgets/{BudgetID}
GET /ContactGroups
operationId: Accounting_getContactGroupDetails

Parameters

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

Responses

200

Success - return response of type Contact Groups array of Contact Group

GET /ContactGroups
PUT /ContactGroups
operationId: Accounting_createContactGroup

Parameters

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.

Request Body

required

ContactGroups with an array of names in request body

application/json
schema 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

Responses

200

Success - return response of type Contact Groups array of newly created Contact Group

400

Validation Error - some data was incorrect returns response of type Error

PUT /ContactGroups
GET /ContactGroups/{ContactGroupID}
operationId: Accounting_getContactGroupById

Parameters

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

Responses

200

Success - return response of type Contact Groups array with a specific Contact Group

GET /ContactGroups/{ContactGroupID}
POST /ContactGroups/{ContactGroupID}
operationId: Accounting_updateContactGroup

Parameters

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

Request Body

required

an array of Contact groups with Name of specific group to update

application/json
schema 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

Responses

200

Success - return response of type Contact Groups array of updated Contact Group

400

A failed request due to validation error

POST /ContactGroups/{ContactGroupID}
DELETE /ContactGroups/{ContactGroupID}/Contacts
operationId: Accounting_deleteContactsFromGroup

Parameters

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

Responses

204

Success - return response 204 no content

DELETE /ContactGroups/{ContactGroupID}/Contacts

Schemas

object 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/"
  }
}
string 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"
}
string AccountingCreateAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingCreateAttachmentRequest1
{
  "type": "string",
  "format": "byte"
}
string AccountingCreateBankTransactionAttachmentByFilenameRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingCreatePurchaseOrderAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingCreateQuoteAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingCreateReceiptAttachmentByFileNameRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingCreateRepeatingInvoiceAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingCreateSpecificAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingGetAttachment200Response
{
  "type": "string",
  "format": "binary"
}
string AccountingGetAttachmentByFileName200Response
{
  "type": "string",
  "format": "binary"
}
string AccountingGetAttachmentByFileNameResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetAttachmentByFilenameResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetAttachmentByIdResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetAttachmentResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetCreditNoteAttachmentResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetCreditNotePdfResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetExpenseClaimsAttachmentResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetInvoicePdfResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetPurchaseOrderPdfResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetQuoteAttachmentResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetQuotePdfResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetRepeatingInvoiceAttachmentResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetSpecificAttachment200Response
{
  "type": "string",
  "format": "binary"
}
string AccountingGetSpecificAttachmentResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingUpdateAttachmentByFilenameRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdateAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdateAttachmentsByFileNameRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdateBankTransactionAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdateBankTransferAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdateCreditNoteAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdatePurchaseOrderAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdateQuoteAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdateRepeatingInvoiceAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdateSpecificAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdateSpecificAttachmentRequest1
{
  "type": "string",
  "format": "byte"
}
string AccountingUploadAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUploadAttachmentRequest1
{
  "type": "string",
  "format": "byte"
}
string AccountingUploadBankTransferAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
object Accounts
{
  "type": "object",
  "properties": {
    "Accounts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Account"
      }
    }
  },
  "x-isObjectArray": true
}
object AccountsPayable
{
  "type": "object",
  "properties": {
    "Overdue": {
      "type": "number",
      "format": "double",
      "x-is-money": true
    },
    "Outstanding": {
      "type": "number",
      "format": "double",
      "x-is-money": true
    }
  }
}
object AccountsReceivable
{
  "type": "object",
  "properties": {
    "Overdue": {
      "type": "number",
      "format": "double",
      "x-is-money": true
    },
    "Outstanding": {
      "type": "number",
      "format": "double",
      "x-is-money": true
    }
  }
}
object 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/"
  }
}
object Actions
{
  "type": "object",
  "properties": {
    "Actions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Action"
      }
    }
  },
  "x-isObjectArray": true
}
object 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"
  }
}
object 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"
  }
}
object 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/"
  }
}
object Allocations
{
  "type": "object",
  "properties": {
    "Allocations": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Allocation"
      }
    }
  },
  "x-isObjectArray": true
}
object 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/"
  }
}

Versions

Version Endpoints Schemas Ingested Status
3.0.1 237 171 2026-05-11 current
3.0.1 237 171 2026-04-16