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

Clear filters

Accounting 45 endpoints

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}
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}
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
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}
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}
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}
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
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}
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
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}
POST /Contacts
operationId: Accounting_updateOrCreateContacts

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
application/json
schema Contacts
Property Type Required
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
Overdue number optional
Outstanding number optional
AccountsReceivable object optional
Overdue number optional
Outstanding number 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
Day integer optional
Type string optional
Sales object optional
Day integer optional
Type string 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

Responses

200

Success - return response of type Contacts array with newly created Contact

400

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

POST /Contacts
POST /Contacts/{ContactID}
operationId: Accounting_updateContact

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.

ContactID path optional string

Unique identifier for a Contact

Request Body

required

an array of Contacts containing single Contact object with properties to update

application/json
schema Contacts
Property Type Required
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
Overdue number optional
Outstanding number optional
AccountsReceivable object optional
Overdue number optional
Outstanding number 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
Day integer optional
Type string optional
Sales object optional
Day integer optional
Type string 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

Responses

200

Success - return response of type Contacts array with an updated Contact

400

A failed request due to validation error

POST /Contacts/{ContactID}
POST /Contacts/{ContactID}/Attachments/{FileName}
operationId: Accounting_uploadAttachment

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.

ContactID path optional string

Unique identifier for a Contact

FileName path optional string

Name of the attachment

Request Body

required

Byte array of file in body of request

application/octet-stream
schema AccountingUploadAttachmentRequest
string

Responses

200

Success - return response of type Attachments array with an updated Attachment

400

A failed request due to validation error

POST /Contacts/{ContactID}/Attachments/{FileName}
POST /CreditNotes
operationId: Accounting_updateOrCreateCreditNotes

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

an array of Credit Notes with a single CreditNote object.

application/json
schema CreditNotes
Property Type Required
CreditNotes array optional
Date string optional
Type string optional
Total number optional
Status string optional
CISRate number 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
DueDate 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
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
Code string optional
Date string optional
Type string optional
Amount number optional
Status string optional
Account object optional
Details string optional
Payments array 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
CurrencyRate number optional
IsReconciled boolean optional
…8 more object optional
SubTotal number optional
TotalTax number optional
Warnings array optional
Message string optional
HasErrors boolean optional
LineItems array optional
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
Allocations array optional
Date string required
Amount number required
Invoice object required
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
IsDeleted boolean optional
CreditNote object 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
AllocationID string optional
ValidationErrors array optional
Message string optional
StatusAttributeString string optional
CISDeduction number optional
CreditNoteID string optional
CurrencyCode string optional
CurrencyRate number optional
AppliedAmount number optional
…10 more object optional

Responses

200

Success - return response of type Credit Notes array of newly created CreditNote

400

A failed request due to validation error

POST /CreditNotes
POST /CreditNotes/{CreditNoteID}
operationId: Accounting_updateCreditNote

Parameters

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

Xero identifier for Tenant

CreditNoteID path optional string

Unique identifier for a Credit Note

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

an array of Credit Notes containing credit note details to update

application/json
schema CreditNotes
Property Type Required
CreditNotes array optional
Date string optional
Type string optional
Total number optional
Status string optional
CISRate number 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
DueDate 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
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
Code string optional
Date string optional
Type string optional
Amount number optional
Status string optional
Account object optional
Details string optional
Payments array 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
CurrencyRate number optional
IsReconciled boolean optional
…8 more object optional
SubTotal number optional
TotalTax number optional
Warnings array optional
Message string optional
HasErrors boolean optional
LineItems array optional
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
Allocations array optional
Date string required
Amount number required
Invoice object required
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
IsDeleted boolean optional
CreditNote object 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
AllocationID string optional
ValidationErrors array optional
Message string optional
StatusAttributeString string optional
CISDeduction number optional
CreditNoteID string optional
CurrencyCode string optional
CurrencyRate number optional
AppliedAmount number optional
…10 more object optional

Responses

200

Success - return response of type Credit Notes array with updated CreditNote

400

A failed request due to validation error

POST /CreditNotes/{CreditNoteID}
POST /CreditNotes/{CreditNoteID}/Attachments/{FileName}
operationId: Accounting_updateAttachmentsByFileName

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.

CreditNoteID path optional string

Unique identifier for a Credit Note

FileName path optional string

Name of the attachment

Request Body

required

Byte array of file in body of request

application/octet-stream
schema AccountingUpdateAttachmentsByFileNameRequest
string

Responses

200

Success - return response of type Attachments array with updated Attachment for specific Credit Note

400

A failed request due to validation error

POST /CreditNotes/{CreditNoteID}/Attachments/{FileName}
POST /Employees
operationId: Accounting_createXeroPayrunEmployee

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

Employees with array of Employee object in body of request

application/json
schema Employees
Property Type Required
Employees array optional
Status string optional
LastName string optional
FirstName string optional
EmployeeID string optional
ExternalLink object optional
Url string optional
LinkType string optional
Description string optional
UpdatedDateUTC string optional
ValidationErrors array optional
Message string optional
StatusAttributeString string optional

Responses

200

Success - return response of type Employees array with new Employee

400

A failed request due to validation error

POST /Employees
POST /ExpenseClaims/{ExpenseClaimID}
operationId: Accounting_updateExpenseClaims

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.

ExpenseClaimID path optional string

Unique identifier for a ExpenseClaim

Request Body

required
application/json
schema ExpenseClaims
Property Type Required
ExpenseClaims array optional
User object optional
UserID string optional
LastName string optional
FirstName string optional
EmailAddress string optional
IsSubscriber boolean optional
UpdatedDateUTC string optional
OrganisationRole string optional
Total number optional
Status 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
Code string optional
Date string optional
Type string optional
Amount number optional
Status string optional
Account object optional
Details string optional
Payments array 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
CurrencyRate number optional
IsReconciled boolean optional
…8 more object optional
Receipts array optional
Url string optional
Date string optional
User object optional
UserID string optional
LastName string optional
FirstName string optional
EmailAddress string optional
IsSubscriber boolean optional
UpdatedDateUTC string optional
OrganisationRole string optional
Total number optional
Status string optional
Contact object optional
Name string optional
Phones array optional
Website string optional
Balances object optional
Discount number optional
LastName string optional
Addresses array optional
ContactID string optional
FirstName string optional
TaxNumber string optional
IsCustomer boolean optional
IsSupplier boolean optional
Attachments array optional
EmailAddress string optional
PaymentTerms object optional
AccountNumber string optional
BatchPayments object optional
BrandingTheme object optional
CompanyNumber string optional
ContactGroups array optional
…22 more object optional
SubTotal number optional
TotalTax number optional
Warnings array optional
Message string optional
LineItems array optional
Item object optional
TaxType string optional
ItemCode string optional
Quantity number optional
Tracking array 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
ReceiptID string optional
Reference string optional
Attachments array optional
Url string optional
FileName string optional
MimeType string optional
AttachmentID string optional
ContentLength integer optional
IncludeOnline boolean optional
ReceiptNumber string optional
HasAttachments boolean optional
UpdatedDateUTC string optional
LineAmountTypes string optional
ValidationErrors array optional
Message string optional
AmountDue number optional
ReceiptID string optional
AmountPaid number optional
ReportingDate string optional
ExpenseClaimID string optional
PaymentDueDate string optional
UpdatedDateUTC string optional

Responses

200

Success - return response of type ExpenseClaims array with updated ExpenseClaim

400

A failed request due to validation error

POST /ExpenseClaims/{ExpenseClaimID}
POST /Invoices
operationId: Accounting_updateOrCreateInvoices

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 Invoices
Property Type Required
Invoices array optional
Url string optional
Date string optional
Type string optional
Total number optional
Status string optional
CISRate number 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
DueDate 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
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
Code string optional
Date string optional
Type string optional
Amount number optional
Status string optional
Account object optional
Details string optional
Payments array 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
CurrencyRate number optional
IsReconciled boolean optional
…8 more object optional
SubTotal number optional
TotalTax number optional
Warnings array optional
Message string optional
AmountDue number optional
HasErrors boolean optional
InvoiceID string optional
LineItems array optional
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
AmountPaid number optional
Attachments array optional
Url string optional
FileName string optional
MimeType string optional
AttachmentID string optional
ContentLength integer optional
IncludeOnline boolean optional
CreditNotes array optional
Date string optional
Type string optional
Total number optional
Status string optional
CISRate number optional
Contact object optional
Name string optional
Phones array optional
Website string optional
Balances object optional
Discount number optional
LastName string optional
Addresses array optional
ContactID string optional
FirstName string optional
TaxNumber string optional
IsCustomer boolean optional
IsSupplier boolean optional
Attachments array optional
EmailAddress string optional
PaymentTerms object optional
AccountNumber string optional
BatchPayments object optional
BrandingTheme object optional
CompanyNumber string optional
ContactGroups array optional
…22 more object optional
DueDate string optional
Payments array optional
Code string optional
Date string optional
Amount number optional
Status string optional
Account object optional
Details string optional
Invoice object optional
Warnings array optional
PaymentID string optional
Reference string optional
BankAmount number optional
CreditNote object optional
HasAccount boolean optional
Prepayment object optional
Overpayment object optional
Particulars string optional
PaymentType string optional
BatchPayment object optional
CurrencyRate number optional
IsReconciled boolean optional
…8 more object optional
SubTotal number optional
TotalTax number optional
Warnings array optional
Message string optional
HasErrors boolean optional
LineItems array optional
Item object optional
TaxType string optional
ItemCode string optional
Quantity number optional
Tracking array 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
Allocations array optional
Date string required
Amount number required
Invoice object required
IsDeleted boolean optional
CreditNote object optional
Prepayment object optional
Overpayment object optional
AllocationID string optional
ValidationErrors array optional
StatusAttributeString string optional
CISDeduction number optional
CreditNoteID string optional
CurrencyCode string optional
CurrencyRate number optional
AppliedAmount number optional
…10 more object optional
…20 more object optional

Responses

200

Success - return response of type Invoices array with newly created Invoice

400

A failed request due to validation error

POST /Invoices
POST /Invoices/{InvoiceID}
operationId: Accounting_updateSpecificInvoice

Parameters

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

Xero identifier for Tenant

InvoiceID path optional string

Unique identifier for an Invoice

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 Invoices
Property Type Required
Invoices array optional
Url string optional
Date string optional
Type string optional
Total number optional
Status string optional
CISRate number 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
DueDate 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
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
Code string optional
Date string optional
Type string optional
Amount number optional
Status string optional
Account object optional
Details string optional
Payments array 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
CurrencyRate number optional
IsReconciled boolean optional
…8 more object optional
SubTotal number optional
TotalTax number optional
Warnings array optional
Message string optional
AmountDue number optional
HasErrors boolean optional
InvoiceID string optional
LineItems array optional
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
AmountPaid number optional
Attachments array optional
Url string optional
FileName string optional
MimeType string optional
AttachmentID string optional
ContentLength integer optional
IncludeOnline boolean optional
CreditNotes array optional
Date string optional
Type string optional
Total number optional
Status string optional
CISRate number optional
Contact object optional
Name string optional
Phones array optional
Website string optional
Balances object optional
Discount number optional
LastName string optional
Addresses array optional
ContactID string optional
FirstName string optional
TaxNumber string optional
IsCustomer boolean optional
IsSupplier boolean optional
Attachments array optional
EmailAddress string optional
PaymentTerms object optional
AccountNumber string optional
BatchPayments object optional
BrandingTheme object optional
CompanyNumber string optional
ContactGroups array optional
…22 more object optional
DueDate string optional
Payments array optional
Code string optional
Date string optional
Amount number optional
Status string optional
Account object optional
Details string optional
Invoice object optional
Warnings array optional
PaymentID string optional
Reference string optional
BankAmount number optional
CreditNote object optional
HasAccount boolean optional
Prepayment object optional
Overpayment object optional
Particulars string optional
PaymentType string optional
BatchPayment object optional
CurrencyRate number optional
IsReconciled boolean optional
…8 more object optional
SubTotal number optional
TotalTax number optional
Warnings array optional
Message string optional
HasErrors boolean optional
LineItems array optional
Item object optional
TaxType string optional
ItemCode string optional
Quantity number optional
Tracking array 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
Allocations array optional
Date string required
Amount number required
Invoice object required
IsDeleted boolean optional
CreditNote object optional
Prepayment object optional
Overpayment object optional
AllocationID string optional
ValidationErrors array optional
StatusAttributeString string optional
CISDeduction number optional
CreditNoteID string optional
CurrencyCode string optional
CurrencyRate number optional
AppliedAmount number optional
…10 more object optional
…20 more object optional

Responses

200

Success - return response of type Invoices array with updated Invoice

400

A failed request due to validation error

POST /Invoices/{InvoiceID}
POST /Invoices/{InvoiceID}/Attachments/{FileName}
operationId: Accounting_updateAttachment

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.

InvoiceID path optional string

Unique identifier for an Invoice

FileName path optional string

Name of the attachment

Request Body

required

Byte array of file in body of request

application/octet-stream
schema AccountingUpdateAttachmentRequest
string

Responses

200

Success - return response of type Attachments array with updated Attachment

400

A failed request due to validation error

POST /Invoices/{InvoiceID}/Attachments/{FileName}
POST /Invoices/{InvoiceID}/Email
operationId: Accounting_sendInvoiceByEmail

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.

InvoiceID path optional string

Unique identifier for an Invoice

Request Body

required
application/json
schema RequestEmpty
Property Type Required
Status string optional

Responses

204

Success - return response 204 no content

400

A failed request due to validation error

POST /Invoices/{InvoiceID}/Email
POST /Items
operationId: Accounting_updateItems

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 Items
Property Type Required
Items array optional
Code string required
Name string optional
IsSold boolean optional
ItemID string optional
Description string optional
IsPurchased boolean optional
SalesDetails object optional
TaxType string optional
UnitPrice number optional
AccountCode string optional
COGSAccountCode string optional
TotalCostPool number optional
QuantityOnHand number optional
UpdatedDateUTC string optional
PurchaseDetails object optional
TaxType string optional
UnitPrice number optional
AccountCode string optional
COGSAccountCode string optional
ValidationErrors array optional
Message string optional
PurchaseDescription string optional
IsTrackedAsInventory boolean optional
StatusAttributeString string optional
InventoryAssetAccountCode string optional

Responses

200

Success - return response of type Items array with newly created Item

400

A failed request due to validation error

POST /Items
POST /Items/{ItemID}
operationId: Accounting_updateItem

Parameters

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

Xero identifier for Tenant

ItemID path optional string

Unique identifier for an Item

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 Items
Property Type Required
Items array optional
Code string required
Name string optional
IsSold boolean optional
ItemID string optional
Description string optional
IsPurchased boolean optional
SalesDetails object optional
TaxType string optional
UnitPrice number optional
AccountCode string optional
COGSAccountCode string optional
TotalCostPool number optional
QuantityOnHand number optional
UpdatedDateUTC string optional
PurchaseDetails object optional
TaxType string optional
UnitPrice number optional
AccountCode string optional
COGSAccountCode string optional
ValidationErrors array optional
Message string optional
PurchaseDescription string optional
IsTrackedAsInventory boolean optional
StatusAttributeString string optional
InventoryAssetAccountCode string optional

Responses

200

Success - return response of type Items array with updated Item

400

A failed request due to validation error

POST /Items/{ItemID}
POST /LinkedTransactions/{LinkedTransactionID}
operationId: Accounting_updateLinkedTransaction

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.

LinkedTransactionID path optional string

Unique identifier for a LinkedTransaction

Request Body

required
application/json
schema LinkedTransactions
Property Type Required
LinkedTransactions array optional
Type string optional
Status string optional
ContactID string optional
UpdatedDateUTC string optional
SourceLineItemID string optional
TargetLineItemID string optional
ValidationErrors array optional
Message string optional
LinkedTransactionID string optional
SourceTransactionID string optional
TargetTransactionID string optional
SourceTransactionTypeCode string optional

Responses

200

Success - return response of type LinkedTransactions array with updated LinkedTransaction

400

Success - return response of type LinkedTransactions array with updated LinkedTransaction

POST /LinkedTransactions/{LinkedTransactionID}
POST /ManualJournals
operationId: Accounting_updateOrCreateManualJournal

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

ManualJournals array with ManualJournal object in body of request

application/json
schema ManualJournals
Property Type Required
ManualJournals array optional
Url string optional
Date string optional
Status string optional
Warnings array optional
Message string optional
Narration string required
Attachments array optional
Url string optional
FileName string optional
MimeType string optional
AttachmentID string optional
ContentLength integer optional
IncludeOnline boolean optional
JournalLines array optional
IsBlank boolean optional
TaxType string optional
Tracking array optional
Name string optional
Option string optional
Status string optional
Options array optional
TrackingOptionID string optional
TrackingCategoryID string optional
AccountID string optional
TaxAmount number optional
LineAmount number optional
AccountCode string optional
Description string optional
HasAttachments boolean optional
UpdatedDateUTC string optional
LineAmountTypes string optional
ManualJournalID string optional
ValidationErrors array optional
Message string optional
StatusAttributeString string optional
ShowOnCashBasisReports boolean optional

Responses

200

Success - return response of type ManualJournals array with newly created ManualJournal

400

A failed request due to validation error

POST /ManualJournals
POST /ManualJournals/{ManualJournalID}
operationId: Accounting_updateManualJournal

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.

ManualJournalID path optional string

Unique identifier for a ManualJournal

Request Body

required
application/json
schema ManualJournals
Property Type Required
ManualJournals array optional
Url string optional
Date string optional
Status string optional
Warnings array optional
Message string optional
Narration string required
Attachments array optional
Url string optional
FileName string optional
MimeType string optional
AttachmentID string optional
ContentLength integer optional
IncludeOnline boolean optional
JournalLines array optional
IsBlank boolean optional
TaxType string optional
Tracking array optional
Name string optional
Option string optional
Status string optional
Options array optional
TrackingOptionID string optional
TrackingCategoryID string optional
AccountID string optional
TaxAmount number optional
LineAmount number optional
AccountCode string optional
Description string optional
HasAttachments boolean optional
UpdatedDateUTC string optional
LineAmountTypes string optional
ManualJournalID string optional
ValidationErrors array optional
Message string optional
StatusAttributeString string optional
ShowOnCashBasisReports boolean optional

Responses

200

Success - return response of type ManualJournals array with an updated ManualJournal

400

A failed request due to validation error

POST /ManualJournals/{ManualJournalID}
POST /ManualJournals/{ManualJournalID}/Attachments/{FileName}
operationId: Accounting_updateSpecificAttachment

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.

ManualJournalID path optional string

Unique identifier for a ManualJournal

FileName path optional string

Name of the attachment

Request Body

required

Byte array of file in body of request

application/octet-stream
schema AccountingUpdateSpecificAttachmentRequest
string

Responses

200

Success - return response of type Attachments array with an update Attachment for a ManualJournals

400

A failed request due to validation error

POST /ManualJournals/{ManualJournalID}/Attachments/{FileName}
POST /Payments
operationId: Accounting_createSinglePayment

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

Request body with a single Payment object

application/json
schema Payment
Property Type Required
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
Message string 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
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
DueDate string optional
Payments array optional
SubTotal number optional
TotalTax number optional
Warnings array optional
Message string optional
AmountDue number optional
HasErrors boolean optional
InvoiceID string optional
LineItems array optional
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
AmountPaid number optional
Attachments array optional
Url string optional
FileName string optional
MimeType string optional
AttachmentID string optional
ContentLength integer optional
IncludeOnline boolean optional
CreditNotes array optional
Date string optional
Type string optional
Total number optional
Status string optional
CISRate number optional
Contact object optional
Name string optional
Phones array optional
Website string optional
Balances object optional
Discount number optional
LastName string optional
Addresses array optional
ContactID string optional
FirstName string optional
TaxNumber string optional
IsCustomer boolean optional
IsSupplier boolean optional
Attachments array optional
EmailAddress string optional
PaymentTerms object optional
AccountNumber string optional
BatchPayments object optional
BrandingTheme object optional
CompanyNumber string optional
ContactGroups array optional
…22 more object optional
DueDate string optional
Payments array optional
SubTotal number optional
TotalTax number optional
Warnings array optional
Message string optional
HasErrors boolean optional
LineItems array optional
Item object optional
TaxType string optional
ItemCode string optional
Quantity number optional
Tracking array 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
Allocations array optional
Date string required
Amount number required
Invoice object required
IsDeleted boolean optional
CreditNote object optional
Prepayment object optional
Overpayment object optional
AllocationID string optional
ValidationErrors array optional
StatusAttributeString string optional
CISDeduction number optional
CreditNoteID string optional
CurrencyCode string optional
CurrencyRate number optional
AppliedAmount number optional
…10 more object 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
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
DueDate string optional
Payments array optional
SubTotal number optional
TotalTax number optional
Warnings array optional
Message string optional
HasErrors boolean optional
LineItems array optional
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
Allocations array optional
Date string required
Amount number required
Invoice object required
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
IsDeleted boolean optional
CreditNote object 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
AllocationID string optional
ValidationErrors array optional
Message string optional
StatusAttributeString string 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
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
Payments array optional
SubTotal number optional
TotalTax number optional
LineItems array optional
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
Allocations array optional
Date string required
Amount number required
Invoice object required
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
IsDeleted boolean 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
Prepayment object 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
AllocationID string optional
ValidationErrors array optional
Message string optional
StatusAttributeString string optional
Attachments array optional
Url string optional
FileName string optional
MimeType string optional
AttachmentID string optional
ContentLength integer optional
IncludeOnline boolean 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
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
Payments array optional
SubTotal number optional
TotalTax number optional
LineItems array optional
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
Allocations array optional
Date string required
Amount number required
Invoice object required
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
IsDeleted boolean 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
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
AllocationID string optional
ValidationErrors array optional
Message string optional
StatusAttributeString string optional
Attachments array optional
Url string optional
FileName string optional
MimeType string optional
AttachmentID string optional
ContentLength integer optional
IncludeOnline boolean 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
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
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
CurrencyRate number optional
IsReconciled boolean optional
…8 more object optional

Responses

200

Success - return response of type Payments array for newly created Payment

400

A failed request due to validation error

POST /Payments
POST /Payments/{PaymentID}
operationId: Accounting_updatePaymentForInvoicesAndCreditNotes

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.

PaymentID path optional string

Unique identifier for a Payment

Request Body

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

Responses

200

Success - return response of type Payments array for updated Payment

400

A failed request due to validation error

POST /Payments/{PaymentID}
POST /PurchaseOrders
operationId: Accounting_updateOrCreatePurchaseOrders

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
application/json
schema PurchaseOrders
Property Type Required
PurchaseOrders array optional
Date string optional
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
Warnings array optional
Message string optional
LineItems array optional
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
Telephone string optional
Attachments array optional
Url string optional
FileName string optional
MimeType string optional
AttachmentID string optional
ContentLength integer optional
IncludeOnline boolean optional
AttentionTo string optional
CurrencyCode string optional
CurrencyRate number optional
DeliveryDate string optional
SentToContact boolean optional
TotalDiscount number optional
HasAttachments boolean optional
UpdatedDateUTC string optional
BrandingThemeID string optional
…8 more object optional

Responses

200

Success - return response of type PurchaseOrder array for specified PurchaseOrder

400

A failed request due to validation error

POST /PurchaseOrders
POST /PurchaseOrders/{PurchaseOrderID}
operationId: Accounting_updatePurchaseOrder

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.

PurchaseOrderID path optional string

Unique identifier for an Purchase Order

Request Body

required
application/json
schema PurchaseOrders
Property Type Required
PurchaseOrders array optional
Date string optional
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
Warnings array optional
Message string optional
LineItems array optional
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
Telephone string optional
Attachments array optional
Url string optional
FileName string optional
MimeType string optional
AttachmentID string optional
ContentLength integer optional
IncludeOnline boolean optional
AttentionTo string optional
CurrencyCode string optional
CurrencyRate number optional
DeliveryDate string optional
SentToContact boolean optional
TotalDiscount number optional
HasAttachments boolean optional
UpdatedDateUTC string optional
BrandingThemeID string optional
…8 more object optional

Responses

200

Success - return response of type PurchaseOrder array for updated PurchaseOrder

400

A failed request due to validation error

POST /PurchaseOrders/{PurchaseOrderID}
POST /PurchaseOrders/{PurchaseOrderID}/Attachments/{FileName}
operationId: Accounting_updatePurchaseOrderAttachment

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.

PurchaseOrderID path optional string

Unique identifier for an Purchase Order

FileName path optional string

Name of the attachment

Request Body

required

Byte array of file in body of request

application/octet-stream
schema AccountingUpdatePurchaseOrderAttachmentRequest
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 /PurchaseOrders/{PurchaseOrderID}/Attachments/{FileName}
POST /Quotes
operationId: Accounting_updateOrCreateQuotes

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
application/json
schema Quotes
Property Type Required
Quotes array optional
Date string optional
Terms string optional
Title string optional
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
QuoteID string optional
Summary string optional
SubTotal number optional
TotalTax number optional
LineItems array optional
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
DateString string optional
ExpiryDate string optional
QuoteNumber string optional
CurrencyCode string optional
CurrencyRate number optional
TotalDiscount number optional
UpdatedDateUTC string optional
BrandingThemeID string optional
…4 more object optional

Responses

200

Success - return response of type Quotes array with updated or created Quote

400

A failed request due to validation error

POST /Quotes
POST /Quotes/{QuoteID}
operationId: Accounting_updateSpecificQuote

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.

QuoteID path optional string

Unique identifier for an Quote

Request Body

required
application/json
schema Quotes
Property Type Required
Quotes array optional
Date string optional
Terms string optional
Title string optional
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
QuoteID string optional
Summary string optional
SubTotal number optional
TotalTax number optional
LineItems array optional
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
DateString string optional
ExpiryDate string optional
QuoteNumber string optional
CurrencyCode string optional
CurrencyRate number optional
TotalDiscount number optional
UpdatedDateUTC string optional
BrandingThemeID string optional
…4 more object optional

Responses

200

Success - return response of type Quotes array with updated Quote

400

A failed request due to validation error

POST /Quotes/{QuoteID}
POST /Quotes/{QuoteID}/Attachments/{FileName}
operationId: Accounting_updateQuoteAttachment

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.

QuoteID path optional string

Unique identifier for an Quote

FileName path optional string

Name of the attachment

Request Body

required

Byte array of file in body of request

application/octet-stream
schema AccountingUpdateQuoteAttachmentRequest
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 /Quotes/{QuoteID}/Attachments/{FileName}
POST /Receipts/{ReceiptID}
operationId: Accounting_updateDraftClaimReceipt

Parameters

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

Xero identifier for Tenant

ReceiptID path optional string

Unique identifier for a Receipt

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 Receipts
Property Type Required
Receipts array optional
Url string optional
Date string optional
User object optional
UserID string optional
LastName string optional
FirstName string optional
EmailAddress string optional
IsSubscriber boolean optional
UpdatedDateUTC string optional
OrganisationRole string optional
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
Warnings array optional
Message string optional
LineItems array optional
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
ReceiptID string optional
Reference string optional
Attachments array optional
Url string optional
FileName string optional
MimeType string optional
AttachmentID string optional
ContentLength integer optional
IncludeOnline boolean optional
ReceiptNumber string optional
HasAttachments boolean optional
UpdatedDateUTC string optional
LineAmountTypes string optional
ValidationErrors array optional
Message string optional

Responses

200

Success - return response of type Receipts array for updated Receipt

400

A failed request due to validation error

POST /Receipts/{ReceiptID}
POST /Receipts/{ReceiptID}/Attachments/{FileName}
operationId: Accounting_updateSpecificAttachment

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.

ReceiptID path optional string

Unique identifier for a Receipt

FileName path optional string

Name of the attachment

Request Body

required

Byte array of file in body of request

application/octet-stream
schema AccountingUpdateSpecificAttachmentRequest1
string

Responses

200

Success - return response of type Attachments array with updated Attachment for a specified Receipt

400

A failed request due to validation error

POST /Receipts/{ReceiptID}/Attachments/{FileName}
POST /RepeatingInvoices
operationId: Accounting_manageRepeatingInvoices

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

RepeatingInvoices with an array of repeating invoice objects in body of request

application/json
schema RepeatingInvoices
Property Type Required
RepeatingInvoices array optional
ID string optional
Type string optional
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
Schedule object optional
Unit string optional
Period integer optional
DueDate integer optional
EndDate string optional
StartDate string optional
DueDateType string optional
NextScheduledDate string optional
SendCopy boolean optional
SubTotal number optional
TotalTax number optional
LineItems array optional
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
IncludePDF boolean optional
MarkAsSent boolean optional
Attachments array optional
Url string optional
FileName string optional
MimeType string optional
AttachmentID string optional
ContentLength integer optional
IncludeOnline boolean optional
CurrencyCode string optional
HasAttachments boolean optional
BrandingThemeID string optional
LineAmountTypes string optional
ApprovedForSending boolean optional
RepeatingInvoiceID string optional

Responses

200

Success - return response of type RepeatingInvoices array with newly created RepeatingInvoice

400

A failed request due to validation error

POST /RepeatingInvoices
POST /RepeatingInvoices/{RepeatingInvoiceID}
operationId: Accounting_deleteRepeatingInvoiceTemplate

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.

RepeatingInvoiceID path optional string

Unique identifier for a Repeating Invoice

Request Body

required
application/json
schema RepeatingInvoices
Property Type Required
RepeatingInvoices array optional
ID string optional
Type string optional
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
Schedule object optional
Unit string optional
Period integer optional
DueDate integer optional
EndDate string optional
StartDate string optional
DueDateType string optional
NextScheduledDate string optional
SendCopy boolean optional
SubTotal number optional
TotalTax number optional
LineItems array optional
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
IncludePDF boolean optional
MarkAsSent boolean optional
Attachments array optional
Url string optional
FileName string optional
MimeType string optional
AttachmentID string optional
ContentLength integer optional
IncludeOnline boolean optional
CurrencyCode string optional
HasAttachments boolean optional
BrandingThemeID string optional
LineAmountTypes string optional
ApprovedForSending boolean optional
RepeatingInvoiceID string optional

Responses

200

Success - return response of type RepeatingInvoices array with deleted Invoice

400

A failed request due to validation error

POST /RepeatingInvoices/{RepeatingInvoiceID}
POST /RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName}
operationId: Accounting_updateRepeatingInvoiceAttachment

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.

RepeatingInvoiceID path optional string

Unique identifier for a Repeating Invoice

FileName path optional string

Name of the attachment

Request Body

required

Byte array of file in body of request

application/octet-stream
schema AccountingUpdateRepeatingInvoiceAttachmentRequest
string

Responses

200

Success - return response of type Attachments array with specified Attachment for a specified Repeating Invoice

400

A failed request due to validation error

POST /RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName}
POST /Setup
operationId: Accounting_setConversionDetails

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

Object including an accounts array, a conversion balances array and a conversion date object in body of request

application/json
schema Setup

Responses

200

Success - returns a summary of the chart of accounts updates

POST /Setup
POST /TaxRates
operationId: Accounting_updateTaxRates

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 TaxRates
Property Type Required
TaxRates array optional
Name string optional
Status string optional
TaxType string optional
EffectiveRate number optional
ReportTaxType string optional
TaxComponents array optional
Name string optional
Rate number optional
IsCompound boolean optional
IsNonRecoverable boolean optional
DisplayTaxRate number optional
CanApplyToAssets boolean optional
CanApplyToEquity boolean optional
CanApplyToRevenue boolean optional
CanApplyToExpenses boolean optional
CanApplyToLiabilities boolean optional

Responses

200

Success - return response of type TaxRates array updated TaxRate

400

A failed request due to validation error

POST /TaxRates
POST /TrackingCategories/{TrackingCategoryID}
operationId: Accounting_updateTrackingCategory

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.

TrackingCategoryID path optional string

Unique identifier for a TrackingCategory

Request Body

required
application/json
schema TrackingCategory
Property Type Required
Name string optional
Option string optional
Status string optional
Options array optional
Name string optional
Status string optional
TrackingOptionID string optional
TrackingCategoryID string optional
TrackingOptionID string optional
TrackingCategoryID string optional

Responses

200

Success - return response of type TrackingCategories array of updated TrackingCategory

400

A failed request due to validation error

POST /TrackingCategories/{TrackingCategoryID}
POST /TrackingCategories/{TrackingCategoryID}/Options/{TrackingOptionID}
operationId: Accounting_updateTrackingOption

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.

TrackingCategoryID path optional string

Unique identifier for a TrackingCategory

TrackingOptionID path optional string

Unique identifier for a Tracking Option

Request Body

required
application/json
schema TrackingOption
Property Type Required
Name string optional
Status string optional
TrackingOptionID string optional
TrackingCategoryID string optional

Responses

200

Success - return response of type TrackingOptions array of options for a specified category

400

A failed request due to validation error

POST /TrackingCategories/{TrackingCategoryID}/Options/{TrackingOptionID}

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