openapi: 3.0.0
info:
version: 11.1.0
title: Xero Finance API
description: The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital.
termsOfService: https://developer.xero.com/xero-developer-platform-terms-conditions/
contact:
name: Xero Platform Team
email: api@xero.com
url: https://developer.xero.com
license:
name: MIT
url: https://github.com/XeroAPI/Xero-OpenAPI/blob/master/LICENSE
servers:
- description: Xero API servers
url: https://api.xero.com/finance.xro/1.0
paths:
/CashValidation:
parameters:
- $ref: "#/components/parameters/requiredHeader"
get:
security:
- OAuth2:
- finance.cashvalidation.read
tags:
- Finance
summary: Xero Get cash validation
operationId: getCashValidation
description: Summarizes the total cash position for each account for an org
parameters:
- name: balanceDate
x-snake: balance_date
in: query
description: "date, yyyy-MM-dd \r\n\r\nIf no parameter is provided, the current date will be used.\r\n\r\nThe ‘balance date’ will return transactions based on the accounting date entered by the user. Transactions before the balanceDate will be included.\r\nThe user has discretion as to which accounting period the transaction relates to.\r\n\r\nThe ‘balance date’ will control the latest maximum date of transactions included in the aggregate numbers. Balance date does not affect the CurrentStatement object, as this will always return the most recent statement before asAtSystemDate (if specified)"
schema:
type: string
example: "2021-09-15"
- name: asAtSystemDate
x-snake: as_at_system_date
in: query
description: "date, yyyy-MM-dd \r\n\r\nIf no parameter is provided, the current date will be used.\r\n\r\nThe ‘as at’ date will return transactions based on the creation date. It reflects the date the transactions were entered into Xero, not the accounting date.\r\nThe ‘as at’ date can not be overridden by the user. This can be used to estimate a ‘historical frequency of reconciliation’.\r\n\r\nThe ‘as at’ date will affect the current statement in the response, as any candidate statements created after this date will be filtered out. Thus the current statement returned will be the most recent statement prior to the specified ‘as at’ date. Be aware that neither the begin date, nor the balance date, will affect the current statement.\r\n\r\nNote; information is only presented when system architecture allows, meaning historical cash validation information will be an estimate. In addition, delete events are not aware of the ‘as at’ functionality in this endpoint, meaning that transactions deleted at the time the API is accessed will be considered to always have been deleted."
schema:
type: string
example: "2021-09-15"
- name: beginDate
x-snake: begin_date
in: query
description: "date, yyyy-MM-dd \r\n\r\nIf no parameter is provided, the aggregate results will be drawn from the user’s total history.\r\n\r\nThe ‘begin date’ will return transactions based on the accounting date entered by the user. Transactions after the beginDate will be included.\r\nThe user has discretion as to which accounting period the transaction relates to."
schema:
type: string
example: "2021-09-15"
responses:
"200":
description: Success
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/CashValidationResponse"
example:
- accountId: 73151de8-3676-4887-a021-edec960dd537
statementBalance:
value: 100
type: DEBIT
statementBalanceDate: "2021-03-01"
bankStatement:
statementLines:
unreconciledAmountPos: 4577
unreconciledAmountNeg: -2367
unreconciledLines: 8
avgDaysUnreconciledPos: 112.265531
avgDaysUnreconciledNeg: 149.298992
earliestUnreconciledTransaction: "2019-03-01"
latestUnreconciledTransaction: "2021-03-01"
deletedAmount: 50
totalAmount: 189
dataSource:
directBankFeed: 0
fileUpload: 300
manual: -188
directBankFeedPos: 0
fileUploadPos: 2223
manualPos: 0
directBankFeedNeg: 0
fileUploadNeg: -1890
manualNeg: -500
otherPos: 0
otherNeg: 0
other: 100
earliestReconciledTransaction: "2019-03-01"
latestReconciledTransaction: "2020-03-01"
reconciledAmountPos: 0
reconciledAmountNeg: -288
reconciledLines: 3
totalAmountPos: 2245
totalAmountNeg: -1995
currentStatement:
startDate: "2021-03-01"
endDate: "2021-03-01"
startBalance: 0
endBalance: 0
importedDateTimeUtc: "2021-03-09T05:22:14.3Z"
importSourceType: Manual
cashAccount:
unreconciledAmountPos: 1440
unreconciledAmountNeg: -1000
startingBalance: 0
accountBalance: 0
balanceCurrency: NZD
"400":
description: BadRequest
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
example:
type: invalid-request
title: InvalidRequest
status: 400
detail: "Invalid BalanceDate: '2020-01'"
/FinancialStatements/BalanceSheet:
parameters:
- $ref: "#/components/parameters/requiredHeader"
get:
security:
- OAuth2:
- finance.statements.read
tags:
- Finance
operationId: getFinancialStatementBalanceSheet
summary: Xero Get Balance Sheet report
description: The balance sheet report is a standard financial report which describes the financial position of an organisation at a point in time.
parameters:
- name: balanceDate
x-snake: balance_date
in: query
description: "Specifies the date for balance sheet report.\r\n\r\nFormat yyyy-MM-dd. If no parameter is provided, the current date will be used."
schema:
type: string
example: "2020-06-30"
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: "#/components/schemas/BalanceSheetResponse"
example:
balanceDate: "2021-05-12"
asset:
accountTypes:
- accountType: INVENTORY
accounts:
- code: "630"
accountID: abcdeabc-80bb-47f5-9418-d1fc2241b838
name: Inventory
reportingCode: ASS.CUR.INY
total: 3
total: 3
- accountType: CURRENT
accounts:
- code: "610"
accountID: abcdeabc-b4d1-45a5-82f7-19deda692a31
name: Accounts Receivable
reportingCode: ASS.CUR.REC.TRA
total: 100
total: 100
- accountType: BANK
accounts:
- accountID: abcdeabc-3a6d-4c53-ba82-ea1c92d02ef4
name: Buz Acc
reportingCode: ASS
total: -42.3
total: -42.3
total: 60.7
liability:
accountTypes:
- accountType: CURRLIAB
accounts:
- code: "820"
accountID: abcdeabc-40f7-49f1-ad89-1930c1366e5b
name: GST
reportingCode: LIA.CUR.TAX.GST
total: 1.59
- code: "860"
accountID: abcdeabc-2877-4c00-be7d-475b1ded30d7
name: Rounding
reportingCode: LIA.CUR
total: -0.1
- code: "800"
accountID: abcdeabc-80ba-4b58-8d72-f8e9ca0f2f00
name: Accounts Payable
reportingCode: LIA.CUR.PAY.TRA
total: 44.4
total: 45.89
total: 45.89
equity:
accountTypes:
- accountType: EQUITY
accounts:
- accountID: 00000000-0000-0000-0000-000000000000
name: Current Year Earnings
total: 14.81
total: 14.81
total: 14.81
"400":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
example:
type: invalid-request
title: InvalidRequest
status: 400
detail: Organisation xxx does not exist
"503":
description: Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
example:
type: service-unavailable
title: ServiceUnavailable
status: 503
detail: Cannot process org xxx at this time. Apologies for inconvenience.
/FinancialStatements/Cashflow:
parameters:
- $ref: "#/components/parameters/requiredHeader"
get:
security:
- OAuth2:
- finance.statements.read
tags:
- Finance
operationId: getFinancialStatementCashflow
summary: Xero Get Cash flow report
description: The statement of cash flows - direct method, provides the year to date changes in operating, financing and investing cash flow activities for an organisation. Cashflow statement is not available in US region at this stage.
parameters:
- name: startDate
x-snake: start_date
in: query
description: "Date e.g. yyyy-MM-dd\r\n\r\nSpecifies the start date for cash flow report.\r\n\r\nIf no parameter is provided, the date of 12 months before the end date will be used."
schema:
type: string
example: "2020-09-15"
- name: endDate
x-snake: end_date
in: query
description: "Date e.g. yyyy-MM-dd\r\n\r\nSpecifies the end date for cash flow report.\r\n\r\nIf no parameter is provided, the current date will be used."
schema:
type: string
example: "2021-09-15"
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: "#/components/schemas/CashflowResponse"
example:
startDate: "2018-07-01"
endDate: "2019-06-30"
cashBalance:
openingCashBalance: 5000
closingCashBalance: -50000
netCashMovement: -55000
cashflowActivities:
- name: Operating Activities
total: -41000
cashflowTypes:
- name: Receipts from customers
total: 34000
accounts:
- accountId: abcdefab-4d1e-4d1a-9e4c-68b2c2a278e2
accountType: REVENUE
accountClass: REVENUE
code: "455"
name: Cellar Door - Till Variance
reportingCode: EXP
total: -1000
- accountId: abcdefab-4d1e-4d1a-9e4c-68b2c2a278e2
accountType: CURRENT
accountClass: ASSET
code: "123"
name: Loan - Darleen's
reportingCode: ASS
total: 35000
- name: Payments to suppliers and employees
total: -75000
accounts:
- accountId: abcdefab-4d1e-4d1a-9e4c-68b2c2a278e2
accountType: CURRENT
accountClass: ASSET
code: "123"
name: Loan - Darleen's
reportingCode: ASS
total: -75000
- name: Investing Activities
total: -35000
cashflowTypes:
- name: Payment for property, plant and equipment
total: -36000
accounts:
- accountId: abcdefab-4d1e-4d1a-9e4c-68b2c2a278e2
accountType: FIXED
accountClass: ASSET
code: "138"
name: Motor Vehicles at Cost
reportingCode: ASS
total: -1000
- accountId: abcdefab-5353-9d4b-7cad-51b2c2a2754a
accountType: FIXED
accountClass: ASSET
code: "140"
name: Equipment at cost
reportingCode: ASS
total: -35000
- name: Proceeds from sale of property, plant and equipment
total: 1000
accounts:
- accountId: abcdefab-4d1e-4d1a-9e4c-68b2c2a278e2
accountType: FIXED
accountClass: ASSET
code: "138"
name: Motor Vehicles at Cost
reportingCode: ASS
total: 1000
- accountId: abcdefab-5353-9d4b-7cad-51b2c2a2754a
accountType: FIXED
accountClass: ASSET
code: "140"
name: Equipment at cost
reportingCode: ASS
total: 0
- name: Financing Activities
total: -14000
cashflowTypes:
- name: Proceeds from borrowings
total: 1000.5
accounts:
- accountId: abcdefab-4d1e-4d1a-9e4c-68b2c2a278e2
accountType: TERMLIAB
accountClass: LIABILITY
code: "244"
name: Loan - Shellcoll Distribution 2019
reportingCode: LIA.CUR.LOA
total: 1000.5
- name: Repayment of borrowings
total: -15000.5
accounts:
- accountId: abcdefab-4d1e-4d1a-9e4c-68b2c2a278e2
accountType: TERMLIAB
accountClass: LIABILITY
code: "244"
name: Loan - Shellcoll Distribution 2019
reportingCode: LIA.CUR.LOA
total: -15000.5
"400":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
example:
type: invalid-request
title: InvalidRequest
status: 400
detail: Organisation xxx does not exist
"503":
description: Server Error
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
example:
type: service-unavailable
title: ServiceUnavailable
status: 503
detail: Cannot process org xxx at this time. Apologies for inconvenience.
/FinancialStatements/ProfitAndLoss:
parameters:
- $ref: "#/components/parameters/requiredHeader"
get:
security:
- OAuth2:
- finance.statements.read
tags:
- Finance
operationId: getFinancialStatementProfitAndLoss
summary: Xero Get Profit & Loss report
description: The profit and loss statement is a standard financial report providing detailed year to date income and expense detail for an organisation.
parameters:
- name: startDate
x-snake: start_date
in: query
description: "Date e.g. yyyy-MM-dd\r\n\r\nSpecifies the start date for profit and loss report\r\n\r\nIf no parameter is provided, the date of 12 months before the end date will be used."
schema:
type: string
example: "2020-09-15"
- name: endDate
x-snake: end_date
in: query
description: "Date e.g. yyyy-MM-dd\r\n\r\nSpecifies the end date for profit and loss report \r\n\r\nIf no parameter is provided, the current date will be used."
schema:
type: string
example: "2021-09-15"
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: "#/components/schemas/ProfitAndLossResponse"
example:
startDate: "2020-07-01"
endDate: "2021-06-30"
netProfitLoss: 123
revenue:
total: 20922.46
accountTypes:
- total: 20825.41
title: Trading Income
accounts:
- accountID: abcdefab-2006-43c2-a5da-3c0e5f43b452
accountType: REVENUE
code: "200"
name: Sales
reportingCode: REV
total: 20825.41
- total: 97.05
title: Other Income
accounts:
- accountID: abcdefab-4d63-4af8-937f-04087ae2e36e
accountType: OTHERINCOME
code: "270"
name: Interest Income
reportingCode: REV.OTH
total: 97.05
expense:
total: 1282.06
accountTypes:
- total: 1137.59
title: Direct Cost
accounts:
- accountID: abcdefab-d381-4bd6-ba47-7af927d25825
accountType: DIRECTCOSTS
code: "300"
name: Purchases
reportingCode: EXP.DC
total: 1137.59
- total: 144.47
title: Operating Expenses
accounts:
- accountID: abcdefab-f897-4168-b5d1-2279bf74bb82
accountType: EXPENSE
code: "453"
name: Office Expenses
reportingCode: EXP
total: 144.47
"400":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
example:
type: invalid-request
title: InvalidRequest
status: 400
detail: Organisation xxx does not exist
/FinancialStatements/TrialBalance:
parameters:
- $ref: "#/components/parameters/requiredHeader"
get:
security:
- OAuth2:
- finance.statements.read
tags:
- Finance
operationId: getFinancialStatementTrialBalance
summary: Xero Get Trial Balance report
description: The trial balance provides a detailed list of all accounts of an organisation at a point in time, with revenue and expense items being year to date.
parameters:
- name: endDate
x-snake: end_date
in: query
description: "Date e.g. yyyy-MM-dd \r\n\r\nSpecifies the end date for trial balance report \r\n\r\nIf no parameter is provided, the current date will be used."
schema:
type: string
example: "2021-09-15"
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: "#/components/schemas/TrialBalanceResponse"
example:
startDate: "2020-07-01"
endDate: "2021-06-30"
accounts:
- accountId: abcdefab-3bbf-4f2a-9e4c-20ec7b8e6b41
accountType: ASSET
accountCode: ASS
accountClass: BANK
status: ACTIVE
reportingCode: ASS
accountName: Everyday transactions
balance:
value: 100
entryType: DEBIT
signedBalance: -23
accountMovement:
debits: 0
credits: 0
movement:
value: 123
entryType: CREDIT
signedMovement: 0
"400":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
example:
type: invalid-request
title: InvalidRequest
status: 400
detail: Organisation xxx does not exist
/FinancialStatements/contacts/revenue:
parameters:
- $ref: "#/components/parameters/requiredHeader"
get:
security:
- OAuth2:
- finance.statements.read
tags:
- Finance
operationId: getFinancialStatementContactsRevenue
summary: Xero Get revenue by contacts report
description: The revenue by contact report provides a year to date profit and loss for customers and suppliers for a given organisation, including detailed contact information.
parameters:
- name: contactIds
x-snake: contact_ids
in: query
description: "Specifies the customer contacts to be included in the report.\r\n\r\nIf no parameter is provided, all customer contacts will be included"
schema:
type: array
example:
- 00000000-0000-0000-0000-000000000000
- 00000000-0000-0000-0000-000000000000
items:
type: string
format: uuid
- name: includeManualJournals
x-snake: include_manual_journals
in: query
description: "Specifies whether to include the manual journals in the report.\r\n \r\nIf no parameter is provided, manual journals will not be included."
example: true
x-example-python: "True"
schema:
type: boolean
- name: startDate
x-snake: start_date
in: query
description: "Date yyyy-MM-dd\r\n\r\nSpecifies the start date for the report.\r\n \r\nIf no parameter is provided, the date of 12 months before the end date will be used.\r\n \r\nIt is recommended to always specify both a start date and end date; While the initial range may be set to 12 months, this may need to be reduced for high volume organisations in order to improve latency."
example: "2020-09-15"
schema:
type: string
- name: endDate
x-snake: end_date
in: query
description: "Date yyyy-MM-dd\r\n\r\nSpecifies the end date for the report.\r\n\r\nIf no parameter is provided, the current date will be used.\r\n \r\nIt is recommended to always specify both a start date and end date; While the initial range may be set to 12 months, this may need to be reduced for high volume organisations in order to improve latency."
example: "2020-09-15"
schema:
type: string
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: "#/components/schemas/IncomeByContactResponse"
example:
startDate: "2019-10-17"
endDate: "2020-10-16"
total: 1200
totalDetail:
totalPaid: 400
totalOutstanding: 1000
totalCreditedUnApplied: 200
totalOther:
totalOutstandingAged: 1000
totalVoided: 150
totalCredited: 10
contacts:
- id: 1f580fe2-0659-31ee-eeb4-5c49d15d8bfa
name: FirstContact
total: 1400
totalDetail:
totalPaid: 400
totalOutstanding: 1000
totalCreditedUnApplied: 0
totalOther:
totalOutstandingAged: 1000
totalVoided: 150
totalCredited: 0
transactionCount: 3
accountCodes:
- "090"
- "200"
- 09-BANK
- id: 20e94281-4751-fb7e-ee5e-96b43ae93c8a
name: SecondContact
total: -200
totalDetail:
totalPaid: 10
totalOutstanding: 20
totalCreditedUnApplied: 200
totalOther:
totalOutstandingAged: 2
totalVoided: 3
totalCredited: 4
transactionCount: 1
accountCodes:
- "900"
manualJournals:
total: -100
"400":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
example:
type: invalid-request
title: InvalidRequest
status: 400
detail: Organisation xxx does not exist
/FinancialStatements/contacts/expense:
parameters:
- $ref: "#/components/parameters/requiredHeader"
get:
security:
- OAuth2:
- finance.statements.read
tags:
- Finance
operationId: getFinancialStatementContactsExpense
summary: Xero Get expense by contacts report
description: The expense by contact report provides a year to date profit and loss for customers and suppliers for a given organisation, including detailed contact information.
parameters:
- name: contactIds
x-snake: contact_ids
in: query
description: "Specifies the customer contacts to be included in the report.\r\n\r\nIf no parameter is provided, all customer contacts will be included"
schema:
type: array
example:
- 00000000-0000-0000-0000-000000000000
- 00000000-0000-0000-0000-000000000000
items:
type: string
format: uuid
- name: includeManualJournals
x-snake: include_manual_journals
in: query
description: "Specifies whether to include the manual journals in the report.\r\n \r\nIf no parameter is provided, manual journals will not be included."
example: true
x-example-python: "True"
schema:
type: boolean
- name: startDate
x-snake: start_date
in: query
description: "Date yyyy-MM-dd\r\n\r\nSpecifies the start date for the report.\r\n \r\nIf no parameter is provided, the date of 12 months before the end date will be used.\r\n \r\nIt is recommended to always specify both a start date and end date; While the initial range may be set to 12 months, this may need to be reduced for high volume organisations in order to improve latency."
example: "2020-09-15"
schema:
type: string
- name: endDate
x-snake: end_date
in: query
description: "Date yyyy-MM-dd\r\n\r\nSpecifies the end date for the report.\r\n\r\nIf no parameter is provided, the current date will be used.\r\n \r\nIt is recommended to always specify both a start date and end date; While the initial range may be set to 12 months, this may need to be reduced for high volume organisations in order to improve latency."
example: "2020-09-15"
schema:
type: string
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: "#/components/schemas/IncomeByContactResponse"
example:
startDate: "2019-10-17"
endDate: "2020-10-16"
total: 1200
totalDetail:
totalPaid: 400
totalOutstanding: 1000
totalCreditedUnApplied: 200
totalOther:
totalOutstandingAged: 1000
totalVoided: 150
totalCredited: 10
contacts:
- id: 1f580fe2-0659-31ee-eeb4-5c49d15d8bfa
name: FirstContact
total: 1400
totalDetail:
totalPaid: 400
totalOutstanding: 1000
totalCreditedUnApplied: 0
totalOther:
totalOutstandingAged: 1000
totalVoided: 150
totalCredited: 0
transactionCount: 3
accountCodes:
- "090"
- "200"
- 09-BANK
- id: 20e94281-4751-fb7e-ee5e-96b43ae93c8a
name: SecondContact
total: -200
totalDetail:
totalPaid: 0
totalOutstanding: 0
totalCreditedUnApplied: 200
totalOther:
totalOutstandingAged: 2
totalVoided: 3
totalCredited: 4
transactionCount: 1
accountCodes:
- "900"
manualJournals:
total: -100
"400":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
example:
type: invalid-request
title: InvalidRequest
status: 400
detail: Organisation xxx does not exist
/BankStatementsPlus/statements:
parameters:
- $ref: "#/components/parameters/requiredHeader"
get:
security:
- OAuth2:
- finance.bankstatementsplus.read
tags:
- Finance
operationId: getBankStatementAccounting
summary: Xero Get Bank Statement Accounting
description: "For lenders that prefer using bank statement data as the source of truth. We provide a data point that will allow access to customer bank statements, plus for reconciled bank transactions the matching accounting, invoice and billing data as well. As customers reconcile bank statements to invoices and bills, this transaction detail will provide valuable insight for lender's assessment measures. "
parameters:
- name: BankAccountID
x-snake: bank_account_id
in: query
description: "string, GUID\r\n\r\nBank account Id"
required: true
schema:
type: string
format: uuid
- name: FromDate
x-snake: from_date
in: query
description: "date, yyyy-MM-dd \r\n\r\nSpecifies the start date of the query period. \r\nThe maximum range of the query period is 12 months. If the specified query period is more than 12 months the request will be rejected."
required: true
schema:
type: string
example: "2020-07-01"
example: "2020-07-01"
- name: ToDate
x-snake: to_date
in: query
description: "date, yyyy-MM-dd \r\n\r\nSpecifies the end date of the query period. \r\nIf the end date is a future date, the request will be rejected."
required: true
schema:
type: string
example: "2021-06-30"
example: "2021-06-30"
- name: SummaryOnly
x-snake: summary_only
in: query
description: "boolean, true/false\r\n\r\nThe default value is true if no parameter is provided.\r\n\r\nIn summary mode, the response will exclude the computation-heavy LineItems fields from bank transaction, invoice, credit note, prepayment and overpayment data, making the API calls quicker and more efficient."
example: true
x-example-python: "True"
schema:
type: boolean
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: "#/components/schemas/BankStatementAccountingResponse"
example:
bankAccountId: 1234eee9-47f0-4179-bd46-9adb4f21cc7f
bankAccountName: ANZ BANK
bankAccountCurrencyCode: NZD
statements:
- statementId: 7c29eee9-47f0-4179-bd46-9adb4f21cc7f
startDate: "2021-01-01"
endDate: "2021-01-02"
importedDateTimeUtc: "2021-01-02T12:00:00Z"
importSource: STMTIMPORTSRC/MANUAL
startBalance: 10.0
endBalance: 200.0
indicativeStartBalance: 10.0
indicativeEndBalance: 200.0
statementLines:
- statementLineId: 1234eee9-47f0-4179-bd46-9adb4f21cc7f
postedDate: "2021-01-01"
payee: ACME Thneeds ABC1234567890 SYDNEY
reference: Eft
notes: payment to bank
chequeNo: "123"
amount: 100.0
transactionDate: "2021-01-01"
type: Debit
isReconciled: true
isDuplicate: false
isDeleted: false
payments:
- paymentId: 47ec8431-23c2-4ef9-90e5-b440fe55d086
batchPaymentId: ecc83387-ffaa-4023-b111-b3fd9e3e4a8e
date: "2021-01-01"
amount: 80.0
bankAmount: 80.0
currencyRate: 1.0
invoice:
invoiceId: c01dd6ac-8835-4bf2-af8b-841db9534d7f
contact:
contactId: 1234eee9-47f0-4179-bd46-9adb4f21cc7f
contactName: Bob
total: 80.0
lineItems:
- accountId: f7fe1049-d1cf-4d10-9df1-67a6e363015f
reportingCode: REV.OTH
lineAmount: 80.0
accountType: REVENUE
- paymentId: 54e8eee0-91a7-4a4d-bb9b-957302a2760a
batchPaymentId: ecc83387-ffaa-4023-b111-b3fd9e3e4a8e
date: "2021-01-01"
amount: 15.0
bankAmount: 15.0
currencyRate: 1.0
creditNote:
creditNoteId: c346d6a5-f013-4207-bc70-f2dd80a5f37f
contact:
contactId: 1234eee9-47f0-4179-bd46-9adb4f21cc7f
contactName: Bob
total: 15.0
lineItems:
- accountId: f7fe1049-d1cf-4d10-9df1-67a6e363015f
reportingCode: REV.OTH
lineAmount: 15.0
accountType: REVENUE
- paymentId: f94dad64-658c-491f-b901-05d38e9e8702
date: "2021-01-01"
amount: 5.0
bankAmount: 5.0
currencyRate: 1.0
prepayment:
prepaymentId: 995f81ae-0afd-4c84-bbe1-90bc7dfa4372
contact:
contactId: 1234eee9-47f0-4179-bd46-9adb4f21cc7f
contactName: Bob
total: 5.0
lineItems:
- accountId: f7fe1049-d1cf-4d10-9df1-67a6e363015f
reportingCode: REV.OTH
lineAmount: 5.0
accountType: REVENUE
- paymentId: 6ffbe999-04c8-42d2-bf16-13947c5f1036
date: "2021-01-01"
amount: 5.0
bankAmount: 5.0
currencyRate: 1.0
overpayment:
overpaymentId: 06575718-5100-4e02-8fbf-c2731a112836
contact:
contactId: 1234eee9-47f0-4179-bd46-9adb4f21cc7f
contactName: Bob
total: 5.0
lineItems:
- accountId: f7fe1049-d1cf-4d10-9df1-67a6e363015f
reportingCode: REV.OTH
lineAmount: 5.0
accountType: REVENUE
bankTransactions:
- bankTransactionId: 55edf88c-6bf6-459a-bd9b-7f250df62eb2
batchPaymentId: 2dce9b39-0427-41af-9739-9510e3b68211
contact:
contactId: 1234eee9-47f0-4179-bd46-9adb4f21cc7f
contactName: Bob
date: "2021-01-01"
amount: 20.0
lineItems:
- accountId: f7fe1049-d1cf-4d10-9df1-67a6e363015f
reportingCode: REV.OTH
lineAmount: 20.0
accountType: REVENUE
"400":
description: BadRequest
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
example:
type: invalid-request
title: InvalidRequest
status: 400
detail: AccountId was not supplied
components:
securitySchemes:
OAuth2:
type: oauth2
description: For more information
flows:
authorizationCode:
authorizationUrl: https://login.xero.com/identity/connect/authorize
tokenUrl: https://identity.xero.com/connect/token
scopes:
email: Grant read-only access to your email
openid: Grant read-only access to your open id
profile: your profile information
finance.statements.read: Grant read-only access to finacial statements
finance.cashvalidation.read: Grant read-only access to bank statement and reconcilation data
finance.bankstatementsplus.read: Grant read-only access to bank statements accounting data
parameters:
requiredHeader:
in: header
name: xero-tenant-id
x-snake: xero_tenant_id
description: Xero identifier for Tenant
example: YOUR_XERO_TENANT_ID
schema:
type: string
required: true
schemas:
Problem:
type: object
properties:
type:
$ref: "#/components/schemas/ProblemType"
title:
type: string
status:
type: integer
format: int32
detail:
type: string
additionalProperties: false
ProblemType:
enum:
- NotSet
- bank-account-not-found
- internal-error
- invalid-application
- invalid-request
- organisation-not-found
- organisation-offline
- request-timeout
- service-unavailable
- unauthorized
- rate-limit-error
type: string
BankStatementResponse:
type: object
properties:
statementLines:
$ref: "#/components/schemas/StatementLinesResponse"
currentStatement:
$ref: "#/components/schemas/CurrentStatementResponse"
additionalProperties: false
CashAccountResponse:
type: object
properties:
unreconciledAmountPos:
type: number
description: Total value of transactions in the journals which are not reconciled to bank statement lines, and have a positive (debit) value.
format: double
x-is-money: true
unreconciledAmountNeg:
type: number
description: Total value of transactions in the journals which are not reconciled to bank statement lines, and have a negative (credit) value.
format: double
x-is-money: true
startingBalance:
type: number
description: Starting (or historic) balance from the journals (manually keyed in by users on account creation - unverified).
format: double
x-is-money: true
accountBalance:
type: number
description: Current cash at bank accounting value from the journals.
format: double
x-is-money: true
balanceCurrency:
type: string
description: Currency which the cashAccount transactions relate to.
additionalProperties: false
CashValidationResponse:
type: object
properties:
accountId:
type: string
description: The Xero identifier for an account
format: uuid
statementBalance:
$ref: "#/components/schemas/StatementBalanceResponse"
statementBalanceDate:
type: string
description: UTC Date when the last bank statement item was entered into Xero. This date is represented in ISO 8601 format.
format: date
bankStatement:
$ref: "#/components/schemas/BankStatementResponse"
cashAccount:
$ref: "#/components/schemas/CashAccountResponse"
additionalProperties: false
CurrentStatementResponse:
type: object
properties:
startDate:
type: string
description: Looking at the most recent bank statement, this field indicates the first date which transactions on this statement pertain to. This date is represented in ISO 8601 format.
format: date
endDate:
type: string
description: Looking at the most recent bank statement, this field indicates the last date which transactions on this statement pertain to. This date is represented in ISO 8601 format.
format: date
startBalance:
type: number
description: Looking at the most recent bank statement, this field indicates the balance before the transactions on the statement are applied (note, this is not always populated by the bank in every single instance (~10%)).
format: double
x-is-money: true
endBalance:
type: number
description: Looking at the most recent bank statement, this field indicates the balance after the transactions on the statement are applied (note, this is not always populated by the bank in every single instance (~10%)).
format: double
x-is-money: true
importedDateTimeUtc:
type: string
description: Looking at the most recent bank statement, this field indicates when the document was imported into Xero. This date is represented in ISO 8601 format.
format: date-time
importSourceType:
type: string
description: Looking at the most recent bank statement, this field indicates the source of the data (direct bank feed, file upload, or manual keying).
additionalProperties: false
DataSourceResponse:
type: object
properties:
directBankFeed:
type: number
description: Sum of the amounts of all statement lines where the source of the data was a direct bank feed in to Xero via an API integration. This could be from a bank or aggregator. This gives an indication on the certainty of correctness of the data.
format: double
x-is-money: true
fileUpload:
type: number
description: Sum of the amounts of all statement lines where the source of the data was a file manually uploaded in to Xero. This gives an indication on the certainty of correctness of the data.
format: double
x-is-money: true
manual:
type: number
description: Sum of the amounts of all statement lines where the source of the data was manually input in to Xero. This gives an indication on the certainty of correctness of the data.
format: double
x-is-money: true
directBankFeedPos:
type: number
description: Sum of the amounts of all statement lines where the source of the data was a direct bank feed in to Xero via an API integration. This could be from a bank or aggregator. This gives an indication on the certainty of correctness of the data. Only positive transactions are included.
format: double
x-is-money: true
fileUploadPos:
type: number
description: Sum of the amounts of all statement lines where the source of the data was a file manually uploaded in to Xero. This gives an indication on the certainty of correctness of the data. Only positive transactions are included.
format: double
x-is-money: true
manualPos:
type: number
description: Sum of the amounts of all statement lines where the source of the data was manually input in to Xero. This gives an indication on the certainty of correctness of the data. Only positive transactions are included.
format: double
x-is-money: true
directBankFeedNeg:
type: number
description: Sum of the amounts of all statement lines where the source of the data was a direct bank feed in to Xero via an API integration. This could be from a bank or aggregator. This gives an indication on the certainty of correctness of the data. Only negative transactions are included.
format: double
x-is-money: true
fileUploadNeg:
type: number
description: Sum of the amounts of all statement lines where the source of the data was a file manually uploaded in to Xero. This gives an indication on the certainty of correctness of the data. Only negative transactions are included.
format: double
x-is-money: true
manualNeg:
type: number
description: Sum of the amounts of all statement lines where the source of the data was manually input in to Xero. This gives an indication on the certainty of correctness of the data. Only negative transactions are included.
format: double
x-is-money: true
otherPos:
type: number
description: Sum of the amounts of all statement lines where the source of the data was unknown. This gives an indication on the certainty of correctness of the data. Only positive transactions are included.
format: double
x-is-money: true
otherNeg:
type: number
description: Sum of the amounts of all statement lines where the source of the data was unknown. This gives an indication on the certainty of correctness of the data. Only negative transactions are included.
format: double
x-is-money: true
other:
type: number
description: Sum of the amounts of all statement lines where the source of the data was unknown. This gives an indication on the certainty of correctness of the data.
format: double
x-is-money: true
additionalProperties: false
StatementBalanceResponse:
type: object
properties:
value:
type: number
description: Total closing balance of the account. This includes both reconciled and unreconciled bank statement lines. The closing balance will always be represented as a positive number, with it’s debit/credit status defined in the statementBalanceDebitCredit field.
format: double
x-is-money: true
type:
type: string
description: The DEBIT or CREDIT status of the account. Cash accounts in credit have a negative balance.
additionalProperties: false
StatementLinesResponse:
type: object
properties:
unreconciledAmountPos:
type: number
description: Sum of the amounts of all statement lines where both the reconciled flag is set to FALSE, and the amount is positive.
format: double
x-is-money: true
unreconciledAmountNeg:
type: number
description: Sum of the amounts of all statement lines where both the reconciled flag is set to FALSE, and the amount is negative.
format: double
x-is-money: true
unreconciledLines:
type: integer
description: Count of all statement lines where the reconciled flag is set to FALSE.
format: int32
avgDaysUnreconciledPos:
type: number
description: Sum-product of age of statement line in days multiplied by transaction amount, divided by the sum of transaction amount - in for those statement lines in which the reconciled flag is set to FALSE, and the amount is positive. Provides an indication of the age of unreconciled transactions.
format: double
x-is-money: true
avgDaysUnreconciledNeg:
type: number
description: Sum-product of age of statement line in days multiplied by transaction amount, divided by the sum of transaction amount - in for those statement lines in which the reconciled flag is set to FALSE, and the amount is negative. Provides an indication of the age of unreconciled transactions.
format: double
x-is-money: true
earliestUnreconciledTransaction:
type: string
description: UTC Date which is the earliest transaction date of a statement line for which the reconciled flag is set to FALSE. This date is represented in ISO 8601 format.
format: date
latestUnreconciledTransaction:
type: string
description: UTC Date which is the latest transaction date of a statement line for which the reconciled flag is set to FALSE. This date is represented in ISO 8601 format.
format: date
deletedAmount:
type: number
description: Sum of the amounts of all deleted statement lines. Transactions may be deleted due to duplication or otherwise.
format: double
x-is-money: true
totalAmount:
type: number
description: Sum of the amounts of all statement lines. This is used as a metric of comparison to the unreconciled figures above.
format: double
x-is-money: true
dataSource:
$ref: "#/components/schemas/DataSourceResponse"
earliestReconciledTransaction:
type: string
description: UTC Date which is the earliest transaction date of a statement line for which the reconciled flag is set to TRUE. This date is represented in ISO 8601 format.
format: date
latestReconciledTransaction:
type: string
description: UTC Date which is the latest transaction date of a statement line for which the reconciled flag is set to TRUE. This date is represented in ISO 8601 format.
format: date
reconciledAmountPos:
type: number
description: Sum of the amounts of all statement lines where both the reconciled flag is set to TRUE, and the amount is positive.
format: double
x-is-money: true
reconciledAmountNeg:
type: number
description: Sum of the amounts of all statement lines where both the reconciled flag is set to TRUE, and the amount is negative.
format: double
x-is-money: true
reconciledLines:
type: integer
description: Count of all statement lines where the reconciled flag is set to TRUE
format: int32
totalAmountPos:
type: number
description: Sum of the amounts of all statement lines where the amount is positive
format: double
x-is-money: true
totalAmountNeg:
type: number
description: Sum of the amounts of all statement lines where the amount is negative.
format: double
x-is-money: true
additionalProperties: false
BalanceSheetAccountDetail:
type: object
properties:
code:
type: string
description: Accounting code
accountID:
type: string
description: ID of the account
format: uuid
name:
type: string
description: Account name
reportingCode:
type: string
description: Reporting code
total:
type: number
description: Total movement on this account
format: double
x-is-money: true
additionalProperties: false
BalanceSheetAccountGroup:
type: object
properties:
accountTypes:
type: array
items:
$ref: "#/components/schemas/BalanceSheetAccountType"
total:
type: number
description: Total value of all the accounts in this type
format: double
x-is-money: true
additionalProperties: false
BalanceSheetAccountType:
type: object
properties:
accountType:
type: string
description: The type of the account. See Account Types
accounts:
type: array
items:
$ref: "#/components/schemas/BalanceSheetAccountDetail"
description: A list of all accounts of this type. Refer to the Account section below for each account element detail.
total:
type: number
description: Total value of all the accounts in this type
format: double
x-is-money: true
additionalProperties: false
BalanceSheetResponse:
type: object
properties:
balanceDate:
type: string
format: date
description: Balance date of the report
asset:
$ref: "#/components/schemas/BalanceSheetAccountGroup"
liability:
$ref: "#/components/schemas/BalanceSheetAccountGroup"
equity:
$ref: "#/components/schemas/BalanceSheetAccountGroup"
additionalProperties: false
CashBalance:
type: object
properties:
openingCashBalance:
type: number
description: Opening balance of cash and cash equivalents
format: double
x-is-money: true
closingCashBalance:
type: number
description: Closing balance of cash and cash equivalents
format: double
x-is-money: true
netCashMovement:
type: number
description: Net movement of cash and cash equivalents for the period
format: double
x-is-money: true
readOnly: true
additionalProperties: false
CashflowAccount:
type: object
properties:
accountId:
type: string
description: ID of the account
format: uuid
accountType:
type: string
description: The type of the account. See Account Types
accountClass:
type: string
description: The class of the account. See Account Class Types
code:
type: string
description: Account code
name:
type: string
description: Account name
reportingCode:
type: string
description: Reporting code used for cash flow classification
total:
type: number
description: Total amount for the account
format: double
x-is-money: true
additionalProperties: false
CashflowActivity:
type: object
properties:
name:
type: string
description: Name of the cashflow activity type. It will be either Operating Activities, Investing Activities or Financing Activities
total:
type: number
description: Total value of the activity type
format: double
x-is-money: true
cashflowTypes:
type: array
items:
$ref: "#/components/schemas/CashflowType"
additionalProperties: false
CashflowResponse:
type: object
properties:
startDate:
type: string
description: Start date of the report
format: date
endDate:
type: string
description: End date of the report
format: date
cashBalance:
$ref: "#/components/schemas/CashBalance"
cashflowActivities:
type: array
items:
$ref: "#/components/schemas/CashflowActivity"
description: Break down of cash and cash equivalents for the period
additionalProperties: false
CashflowType:
type: object
properties:
name:
type: string
description: Name of the activity
total:
type: number
description: Total value of the activity
format: double
x-is-money: true
accounts:
type: array
items:
$ref: "#/components/schemas/CashflowAccount"
description: List of the accounts in this activity
additionalProperties: false
PnlAccount:
type: object
properties:
accountID:
type: string
description: ID of the account
format: uuid
accountType:
type: string
description: The type of the account. See Account Types
code:
type: string
description: Account code
name:
type: string
description: Account name
reportingCode:
type: string
description: Reporting code (Shown if set)
total:
type: number
description: Total movement on this account
format: double
x-is-money: true
additionalProperties: false
PnlAccountClass:
type: object
properties:
total:
type: number
description: Total revenue/expense value
format: double
x-is-money: true
accountTypes:
type: array
items:
$ref: "#/components/schemas/PnlAccountType"
description: Contains trading income and other income for revenue section / operating expenses and direct cost for expense section if the data is available for each section. Refer to the account type element below
additionalProperties: false
PnlAccountType:
type: object
properties:
total:
type: number
description: Total movement on this account type
format: double
x-is-money: true
title:
type: string
description: Name of this account type, it will be either Trading Income or Other Income for Revenue section / Direct Cost or Operating Expenses for Expense section
accounts:
type: array
items:
$ref: "#/components/schemas/PnlAccount"
description: A list of the movement on each account detail during the query period. Refer to the account detail element below
additionalProperties: false
ProfitAndLossResponse:
type: object
properties:
startDate:
type: string
description: Start date of the report
format: date
endDate:
type: string
description: End date of the report
format: date
netProfitLoss:
type: number
description: Net profit loss value
format: double
x-is-money: true
revenue:
$ref: "#/components/schemas/PnlAccountClass"
expense:
$ref: "#/components/schemas/PnlAccountClass"
additionalProperties: false
TrialBalanceAccount:
type: object
properties:
accountId:
type: string
description: ID of the account
format: uuid
accountType:
type: string
description: The type of the account. See Account Types
accountCode:
type: string
description: Customer defined alpha numeric account code e.g 200 or SALES
accountClass:
type: string
description: The class of the account. See Account Class Types
status:
type: string
description: Accounts with a status of ACTIVE can be updated to ARCHIVED. See Account Status Codes
reportingCode:
type: string
description: Reporting code (Shown if set)
accountName:
type: string
description: Name of the account
balance:
$ref: "#/components/schemas/TrialBalanceEntry"
signedBalance:
type: number
description: Value of balance. Expense and Asset accounts code debits as positive. Revenue, Liability, and Equity accounts code debits as negative
format: double
x-is-money: true
accountMovement:
$ref: "#/components/schemas/TrialBalanceMovement"
additionalProperties: false
TrialBalanceEntry:
type: object
properties:
value:
type: number
description: Net movement or net balance in the account
format: double
x-is-money: true
entryType:
type: string
description: Sign (Debit/Credit) of the movement of balance in the account
additionalProperties: false
TrialBalanceMovement:
type: object
properties:
debits:
type: number
description: Debit amount
format: double
x-is-money: true
credits:
type: number
description: Credit amount
format: double
x-is-money: true
movement:
$ref: "#/components/schemas/TrialBalanceEntry"
signedMovement:
type: number
description: Value of movement. Expense and Asset accounts code debits as positive. Revenue, Liability, and Equity accounts code debits as negative
format: double
x-is-money: true
additionalProperties: false
TrialBalanceResponse:
type: object
properties:
startDate:
type: string
format: date
description: Start date of the report
endDate:
type: string
format: date
description: End date of the report
accounts:
type: array
items:
$ref: "#/components/schemas/TrialBalanceAccount"
description: Refer to the accounts section below
additionalProperties: false
IncomeByContactResponse:
type: object
properties:
startDate:
type: string
description: Start date of the report
format: date
endDate:
type: string
description: End date of the report
format: date
total:
type: number
description: Total value
format: double
x-is-money: true
totalDetail:
$ref: "#/components/schemas/TotalDetail"
totalOther:
$ref: "#/components/schemas/TotalOther"
contacts:
type: array
items:
$ref: "#/components/schemas/ContactDetail"
manualJournals:
$ref: "#/components/schemas/ManualJournalTotal"
additionalProperties: false
ManualJournalTotal:
type: object
properties:
total:
type: number
description: Total value of manual journals.
format: double
x-is-money: true
additionalProperties: false
TotalDetail:
type: object
properties:
totalPaid:
type: number
description: Total paid invoice and cash value within the period.
format: double
x-is-money: true
totalOutstanding:
type: number
description: Total outstanding invoice value within the period.
format: double
x-is-money: true
totalCreditedUnApplied:
type: number
description: Total unapplied credited value within the period.
format: double
x-is-money: true
additionalProperties: false
TotalOther:
type: object
properties:
totalOutstandingAged:
type: number
description: Total outstanding invoice value within the period where the invoices are more than 90 days old
format: double
x-is-money: true
totalVoided:
type: number
description: Total voided value.
format: double
x-is-money: true
totalCredited:
type: number
description: Total credited value.
format: double
x-is-money: true
additionalProperties: false
ContactDetail:
type: object
properties:
contactId:
type: string
description: "ID of the contact associated with the transactions.\r\n\r\nTransactions with no contact will be grouped under the special ID: 86793108-198C-46D8-90A3-43C1D12686CE.\r\n\r\nTransactions that are receive or spend bank transfers will be grouped under the special ID: 207322B3-6A58-4BE7-80F1-430123914AD6"
format: uuid
name:
type: string
description: "Name of the contact associated with the transactions.\r\n\r\nIf no contact is associated with the transactions this will appear as “None Provided”,\r\n\r\nFor receive or spend bank transfer transactions, this will appear as “Bank Transfer”."
total:
type: number
description: Total value for the contact
format: double
x-is-money: true
totalDetail:
$ref: "#/components/schemas/ContactTotalDetail"
totalOther:
$ref: "#/components/schemas/ContactTotalOther"
accountCodes:
type: array
items:
type: string
description: A list of account codes involved in transactions.
additionalProperties: false
ContactTotalDetail:
type: object
properties:
totalPaid:
type: number
description: Total paid invoice and cash value for the contact within the period.
format: double
x-is-money: true
totalOutstanding:
type: number
description: Total outstanding invoice value for the contact within the period.
format: double
x-is-money: true
totalCreditedUnApplied:
type: number
description: Total unapplied credited value for the contact within the period.
format: double
x-is-money: true
additionalProperties: false
ContactTotalOther:
type: object
properties:
totalOutstandingAged:
type: number
description: Total outstanding invoice value for the contact within the period where the invoices are more than 90 days old
format: double
x-is-money: true
totalVoided:
type: number
description: Total voided value for the contact.
format: double
x-is-money: true
totalCredited:
type: number
description: Total credited value for the contact.
format: double
x-is-money: true
transactionCount:
type: integer
description: Number of transactions for the contact.
format: int32
additionalProperties: false
BankStatementAccountingResponse:
type: object
properties:
bankAccountId:
type: string
description: Xero Identifier of bank account
format: uuid
bankAccountName:
type: string
description: Name of bank account
bankAccountCurrencyCode:
type: string
description: Currency code of the bank account
statements:
type: array
items:
$ref: "#/components/schemas/StatementResponse"
description: List of bank statements and linked accounting data for the requested period
additionalProperties: false
BankTransactionResponse:
type: object
properties:
bankTransactionId:
type: string
description: Xero Identifier of transaction
format: uuid
batchPaymentId:
type: string
description: Xero Identifier of batch payment. Present if the transaction is part of a batch.
format: uuid
contact:
$ref: "#/components/schemas/ContactResponse"
date:
type: string
description: Date of transaction - YYYY-MM-DD
format: date
amount:
type: number
description: Amount of transaction
format: double
x-is-money: true
lineItems:
type: array
items:
$ref: "#/components/schemas/LineItemResponse"
description: The LineItems element can contain any number of individual LineItem sub-elements. Not included in summary mode
additionalProperties: false
ContactResponse:
type: object
properties:
contactId:
type: string
description: Xero Identifier of contact
format: uuid
contactName:
type: string
description: Full name of contact/organisation
additionalProperties: false
CreditNoteResponse:
type: object
properties:
creditNoteId:
type: string
description: Xero Identifier of credit note
format: uuid
contact:
$ref: "#/components/schemas/ContactResponse"
total:
type: number
description: Total of Invoice tax inclusive (i.e. SubTotal + TotalTax); Not included in summary mode
format: double
x-is-money: true
lineItems:
type: array
items:
$ref: "#/components/schemas/LineItemResponse"
description: Not included in summary mode
additionalProperties: false
InvoiceResponse:
type: object
properties:
invoiceId:
type: string
description: Xero Identifier of invoice
format: uuid
contact:
$ref: "#/components/schemas/ContactResponse"
total:
type: number
description: Total of Invoice tax inclusive (i.e. SubTotal + TotalTax); Not included in summary mode
format: double
x-is-money: true
lineItems:
type: array
items:
$ref: "#/components/schemas/LineItemResponse"
description: Not included in summary mode
additionalProperties: false
LineItemResponse:
type: object
properties:
accountId:
type: string
description: Xero Identifier of account
format: uuid
reportingCode:
type: string
description: Shown if set
lineAmount:
type: number
description: Amount of line item
format: double
x-is-money: true
accountType:
type: string
description: Account type
additionalProperties: false
OverpaymentResponse:
type: object
properties:
overpaymentId:
type: string
description: Xero Identifier of overpayment
format: uuid
contact:
$ref: "#/components/schemas/ContactResponse"
total:
type: number
description: Total of Invoice tax inclusive (i.e. SubTotal + TotalTax); Not included in summary mode
format: double
x-is-money: true
lineItems:
type: array
items:
$ref: "#/components/schemas/LineItemResponse"
description: Not included in summary mode
additionalProperties: false
PaymentResponse:
type: object
properties:
paymentId:
type: string
description: Xero Identifier of payment
format: uuid
batchPaymentId:
type: string
description: Xero Identifier of batch payment. Present if the payment was created as part of a batch.
format: uuid
date:
type: string
description: Date the payment is being made (YYYY-MM-DD) e.g. 2009-09-06
format: date
amount:
type: number
description: The amount of the payment
format: double
x-is-money: true
bankAmount:
type: number
description: The bank amount of the payment
format: double
x-is-money: true
currencyRate:
type: number
description: Exchange rate when payment is received. Only used for non base currency invoices and credit notes e.g. 0.7500
format: double
invoice:
$ref: "#/components/schemas/InvoiceResponse"
creditNote:
$ref: "#/components/schemas/CreditNoteResponse"
prepayment:
$ref: "#/components/schemas/PrepaymentResponse"
overpayment:
$ref: "#/components/schemas/OverpaymentResponse"
additionalProperties: false
PrepaymentResponse:
type: object
properties:
prepaymentId:
type: string
description: Xero Identifier of prepayment
format: uuid
contact:
$ref: "#/components/schemas/ContactResponse"
total:
type: number
description: Total of Invoice tax inclusive (i.e. SubTotal + TotalTax); Not included in summary mode
format: double
x-is-money: true
lineItems:
type: array
items:
$ref: "#/components/schemas/LineItemResponse"
description: Not included in summary mode
additionalProperties: false
StatementLineResponse:
type: object
properties:
statementLineId:
type: string
description: Xero Identifier of statement line
format: uuid
postedDate:
type: string
description: Date of when statement line was posted
format: date
payee:
type: string
description: Payee description of statement line
reference:
type: string
description: Reference description of statement line
notes:
type: string
description: Notes description of statement line
chequeNo:
type: string
description: Cheque number of statement line
amount:
type: number
description: Amount of statement line
format: double
x-is-money: true
transactionDate:
type: string
description: Transaction date of statement line
format: date
type:
type: string
description: Type of statement line
isReconciled:
type: boolean
description: Boolean to show if statement line is reconciled
isDuplicate:
type: boolean
description: Boolean to show if statement line is duplicate
isDeleted:
type: boolean
description: Boolean to show if statement line is deleted
payments:
type: array
items:
$ref: "#/components/schemas/PaymentResponse"
description: List of payments associated with reconciled statement lines
bankTransactions:
type: array
items:
$ref: "#/components/schemas/BankTransactionResponse"
description: List of bank transactions associated with reconciled statement lines
additionalProperties: false
StatementResponse:
type: object
properties:
statementId:
type: string
description: Xero Identifier of statement
format: uuid
startDate:
type: string
description: Start date of statement
format: date
endDate:
type: string
description: End date of statement
format: date
importedDateTimeUtc:
type: string
description: Utc date time of when the statement was imported in Xero
format: date-time
importSource:
type: string
description: Identifies where the statement data in Xero was sourced, 1) direct bank feed, automatically loaded from the bank (eg STMTIMPORTSRC/CBAFEED); 2) indirect bank feed, automatically loaded from a 3rd party provider (eg STMTIMPORTSRC/YODLEE); 3) manually uploaded bank feed (eg STMTIMPORTSRC/CSV) or 4) manually entered statement data (STMTIMPORTSRC/MANUAL).
startBalance:
type: number
description: Opening balance sourced from imported bank statements (if supplied). Note, for manually uploaded statements, this balance is also manual and usually not supplied. Where not supplied, the value will be 0.
format: double
x-is-money: true
endBalance:
type: number
description: Closing balance sourced from imported bank statements (if supplied). Note, for manually uploaded statements, this balance is also manual and usually not supplied. Where not supplied, the value will be 0.
format: double
x-is-money: true
indicativeStartBalance:
type: number
description: |
Opening statement balance calculated in Xero (= bank account conversion balance plus sum of imported bank statement lines). Note: If indicative statement balance doesn't match imported statement balance for the same date, either the conversion (opening at inception) balance in Xero is wrong or there's an error in the bank statement lines in Xero. Ref: https://central.xero.com/s/article/Compare-the-statement-balance-in-Xero-to-your-actual-bank-balance?userregion=true
format: double
x-is-money: true
indicativeEndBalance:
type: number
description: "Closing statement balance calculated in Xero (= bank account conversion balance plus sum of imported bank statement lines). Note: If indicative statement balance doesn't match imported statement balance for the same date, either the conversion (opening at inception) balance in Xero is wrong or there's an error in the bank statement lines in Xero. Ref: https://central.xero.com/s/article/Compare-the-statement-balance-in-Xero-to-your-actual-bank-balance?userregion=true \n"
format: double
x-is-money: true
statementLines:
type: array
items:
$ref: "#/components/schemas/StatementLineResponse"
description: List of statement lines
additionalProperties: false
tags:
- name: Finance