openapi: 3.1.0
servers:
- description: Production
url: 'https://api.codat.io'
info:
title: Assess API
version: '1.0'
contact:
email: support@codat.io
url: 'https://www.codat.io/contact/'
name: Codat
summary: Codat's financial insights API
description: |-
Check that you have enabled the [data types required by Assess](https://docs.codat.io/assess/get-started#prerequisites) for all of its features to work.
[Read more...](https://www.docs.codat.io/assess/)
[See our OpenAPI spec](https://github.com/codatio/oas)
termsOfService: 'https://www.codat.io/legals/'
security:
- auth_header: []
x-speakeasy-retries:
strategy: backoff
backoff:
initialInterval: 500
maxInterval: 60000
maxElapsedTime: 3600000
exponent: 1.5
statusCodes:
- 408
- 429
- 5XX
retryConnectionErrors: true
x-codat-docs-path: codat-api
tags:
- name: Reports
description: Enriched reports and analyses of financial data
- name: Excel reports
description: Downloadable reports
- name: Categories
description: Manage Codat's automatic account categorization functionality
- name: Data integrity
description: Match mutable accounting data with immutable banking data to increase confidence in financial data
- name: Loan transactions
description: Loan transactions
paths:
'/data/companies/{companyId}/assess/dataTypes/{dataType}/dataIntegrity/status':
parameters:
- $ref: '#/components/parameters/companyId'
- $ref: '#/components/parameters/dataIntegrityDataType'
get:
summary: Get data integrity status
tags:
- Data integrity
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: get-data-integrity-status
x-speakeasy-name-override: status
description: Gets match status for a given company and datatype.
'/data/companies/{companyId}/assess/dataTypes/{dataType}/dataIntegrity/summaries':
parameters:
- $ref: '#/components/parameters/companyId'
- $ref: '#/components/parameters/dataIntegrityDataType'
get:
summary: Get data integrity summary
tags:
- Data integrity
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Summaries'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: get-data-integrity-summaries
x-speakeasy-name-override: summary
description: 'Gets match summary for a given company and datatype, optionally restricted by a Codat query string.'
parameters:
- $ref: '#/components/parameters/query'
'/data/companies/{companyId}/assess/dataTypes/{dataType}/dataIntegrity/details':
parameters:
- $ref: '#/components/parameters/companyId'
- $ref: '#/components/parameters/dataIntegrityDataType'
get:
summary: List data type data integrity
tags:
- Data integrity
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Details'
examples: {}
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: list-data-type-data-integrity-details
x-speakeasy-name-override: details
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/query'
- $ref: '#/components/parameters/orderBy'
description: 'Gets record-by-record match results for a given company and datatype, optionally restricted by a Codat query string.'
'/companies/{companyId}/reports/enhancedProfitAndLoss/accounts':
parameters:
- $ref: '#/components/parameters/companyId'
get:
summary: Get enhanced profit and loss accounts
description: |-
The Enhanced Profit and Loss Accounts endpoint returns a list of categorized accounts that appear on a company’s Profit and Loss. It also includes a balance per the financial statement date.
Codat suggests a category for each account automatically, but you can [change it](/docs/assess-categorizing-accounts-ecommerce-lending) to a more suitable one.
tags:
- Reports
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EnhancedReport'
example:
reportInfo:
currency: GBP
reportName: EnhancedProfitAndLossAccounts
companyName: Biscuits
generatedDate: '2023-03-24T16:40:59.0847354Z'
reportItems:
- date: '2022-08-31T00:00:00'
balance: 830.93
accountId: 04f7111b-55d4-4efc-b329-1bd5c791933a
accountName: Repairs & Maintenance
accountCategory:
status: Suggested
levels:
- levelName: Expense
- date: '2022-08-31T00:00:00'
balance: 12000
accountId: 7f6a0e92-65be-4333-9a0a-d981b03bedd1
accountName: Wages
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: CostOfSales
- date: '2022-08-31T00:00:00'
balance: 28937.71
accountId: 7403e960-5b72-42ff-abf4-c870ad8910bd
accountName: Purchases
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: CostOfSales
- levelName: Inventory
- date: '2022-08-31T00:00:00'
balance: 582.4
accountId: e8a0a24e-2dab-46b1-bfe1-6e92551c04e8
accountName: Purchase Discounts
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: CostOfSales
- levelName: Inventory
- date: '2022-08-31T00:00:00'
balance: 350.44
accountId: cbf82e0d-87a7-464d-b567-9274ea94a1c0
accountName: Charitable and Political Donations
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: NonOperating
- levelName: Donations
- date: '2022-08-31T00:00:00'
balance: 535.81
accountId: 78785fd7-f197-4c34-aa17-6e76b9255d34
accountName: Interest Paid (operating)
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: NonOperating
- levelName: Interest
- date: '2022-08-31T00:00:00'
balance: 633.05
accountId: fb3210ef-edeb-48af-bb49-b85d40c1e6bb
accountName: Corporation Tax
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: NonOperating
- levelName: Taxes
- levelName: CorporationTaxes
- date: '2022-08-31T00:00:00'
balance: 782.61
accountId: f3aa84fe-5c31-4107-b207-7e0419f636d7
accountName: Bank Fees
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: Operating
- levelName: BankCharges
- date: '2022-08-31T00:00:00'
balance: 8000
accountId: 9cbe5fe4-ca60-4792-8bf1-de01fb7010aa
accountName: Rent
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: Operating
- levelName: Leases
- levelName: BuildingRentLease
- date: '2022-08-31T00:00:00'
balance: 1090.68
accountId: 138a8eb3-5c08-4e59-a3bc-892119694447
accountName: Motor Vehicle Expenses
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: Operating
- levelName: Leases
- levelName: EquipmentRentLease
- date: '2022-08-31T00:00:00'
balance: 26307.02
accountId: 868591ad-f9c2-4956-a5ec-c32c1d48c6f3
accountName: Advertising & Marketing
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: Operating
- levelName: Marketing
- date: '2022-08-31T00:00:00'
balance: 1128.85
accountId: 1734ff00-2a17-45b4-8db6-2dc2e832c460
accountName: 'Postage, Freight & Courier'
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: Operating
- levelName: Marketing
- date: '2022-08-31T00:00:00'
balance: 40
accountId: 7d8d0322-f452-47de-a8e8-54b0130e6f38
accountName: Subscriptions
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: Operating
- levelName: Marketing
- date: '2022-08-31T00:00:00'
balance: 5.72
accountId: 4378ddba-36b4-4b35-9970-bd972b20d137
accountName: Amortization
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: Operating
- levelName: NonCash
- levelName: Amortization
- date: '2022-08-31T00:00:00'
balance: 1539.18
accountId: 940c8a59-3348-4a0b-a1b1-781d9f29cc8b
accountName: Depreciation Expense
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: Operating
- levelName: NonCash
- levelName: Depreciation
- date: '2022-08-31T00:00:00'
balance: 1416.05
accountId: e7ac3baa-cfbe-40c1-a172-83d22e84435b
accountName: Entertainment-100% business
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: Operating
- levelName: Personnel
- levelName: EmployeeBenefits
- date: '2022-08-31T00:00:00'
balance: 1465.61
accountId: b5e801e8-8dbc-4390-ac99-3b0fff54a89f
accountName: General Expenses
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: Operating
- levelName: SalesGeneralAdministrative
- date: '2022-08-31T00:00:00'
balance: 7347.35
accountId: 5360066d-1474-49f6-a7a5-c66d5f6032ba
accountName: 'Light, Power, Heating'
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: Operating
- levelName: SalesGeneralAdministrative
- date: '2022-08-31T00:00:00'
balance: 1027.25
accountId: 7aa7988a-ff61-4cb8-bef3-15395355d108
accountName: Printing & Stationery
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: Operating
- levelName: SalesGeneralAdministrative
- date: '2022-08-31T00:00:00'
balance: 45
accountId: 043b6bcb-dfe6-4c97-9b4c-f9b300fe3f03
accountName: Telephone & Internet
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: Operating
- levelName: SalesGeneralAdministrative
- date: '2022-08-31T00:00:00'
balance: 0
accountId: eef78ed1-dfed-447c-bdba-3a49fb2c044b
accountName: Audit & Accountancy fees
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: Operating
- levelName: SalesGeneralAdministrative
- date: '2022-08-31T00:00:00'
balance: 130
accountId: c16f5c35-8283-47da-9d09-5fecb183b0cb
accountName: Cleaning
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: Operating
- levelName: SalesGeneralAdministrative
- date: '2022-08-31T00:00:00'
balance: 860.02
accountId: df62060b-41cc-4bf2-9de7-c7e537b5663a
accountName: Travel - National
accountCategory:
status: Suggested
levels:
- levelName: Expense
- levelName: Operating
- levelName: Travel
- date: '2022-08-31T00:00:00'
balance: 850.22
accountId: 68794a8f-b22d-4520-b97b-025b7cb10f94
accountName: Other Revenue
accountCategory:
status: Suggested
levels:
- levelName: Income
- levelName: Revenue
- levelName: Online
- date: '2022-08-31T00:00:00'
balance: 138457.98
accountId: 72df89d2-512b-4455-af51-a6b563733842
accountName: Sales
accountCategory:
status: Suggested
levels:
- levelName: Income
- levelName: Revenue
- levelName: Wholesale
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: get-accounts-for-enhanced-profit-and-loss
parameters:
- $ref: '#/components/parameters/reportDate'
- $ref: '#/components/parameters/numberOfPeriods'
'/companies/{companyId}/reports/enhancedBalanceSheet/accounts':
parameters:
- $ref: '#/components/parameters/companyId'
get:
summary: Get enhanced balance sheet accounts
description: |-
The Enhanced Balance Sheet Accounts endpoint returns a list of categorized accounts that appear on a company’s Balance Sheet along with a balance per financial statement date.
Codat suggests a category for each account automatically, but you can [change it](/docs/assess-categorizing-accounts-ecommerce-lending) to a more suitable one.
tags:
- Reports
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EnhancedReport'
example:
reportInfo:
currency: GBP
reportName: EnhancedBalanceSheetAccounts
companyName: Biscuits
generatedDate: '2023-03-24T16:42:09.2973105Z'
reportItems:
- date: '2022-08-31T00:00:00'
balance: 12973.03
accountId: 22de1660-d745-4809-a363-16b134607e66
accountName: Prepayments
accountCategory:
status: Suggested
levels:
- levelName: Asset
- levelName: Current
- levelName: AccruedDeferredAssets
- levelName: PrepaidExpenses
- date: '2022-08-31T00:00:00'
balance: 316065.92
accountId: dbcaf288-2b39-4b95-8ab3-42202ab15918
accountName: Business Current Account
accountCategory:
status: Suggested
levels:
- levelName: Asset
- levelName: Current
- levelName: Bank
- date: '2022-08-31T00:00:00'
balance: 65945.07
accountId: e5d7612c-1671-47b4-b733-5db48363fcd0
accountName: Inventory
accountCategory:
status: Suggested
levels:
- levelName: Asset
- levelName: Current
- levelName: Inventory
- date: '2022-08-31T00:00:00'
balance: 71937.95
accountId: 1b6266d1-1e44-46c5-8eb5-a8f98e03124e
accountName: Accounts Receivable
accountCategory:
status: Suggested
levels:
- levelName: Asset
- levelName: Current
- levelName: Receivables
- levelName: AccountsReceivables
- date: '2022-08-31T00:00:00'
balance: 2180148.56
accountId: 724ca578-8b5d-4bdb-ad45-e3820eee9de9
accountName: Office Equipment
accountCategory:
status: Suggested
levels:
- levelName: Asset
- levelName: NonCurrent
- levelName: AccumulatedDepreciationDepletionAmortization
- date: '2022-08-31T00:00:00'
balance: 1804674.9
accountId: be3eb911-034b-42de-95db-0d58ac978b7f
accountName: Computer Equipment
accountCategory:
status: Suggested
levels:
- levelName: Asset
- levelName: NonCurrent
- levelName: AccumulatedDepreciationDepletionAmortization
- date: '2022-08-31T00:00:00'
balance: 3417424.16
accountId: 39225d6f-3722-4508-ac3f-a2f6ec96ad31
accountName: Retained Earnings
accountCategory:
status: Suggested
levels:
- levelName: Equity
- levelName: RetainedEarnings
- levelName: CapitalIncomeReserve
- date: '2022-08-31T00:00:00'
balance: 44252.52
accountId: 78828dd9-6008-4662-b43c-e9d87907fd2b
accountName: Current Year Earnings
accountCategory:
status: Suggested
levels:
- levelName: Equity
- levelName: ShareCapital
- levelName: CommonStock
- date: '2022-08-31T00:00:00'
balance: 75835.64
accountId: 53bf27a7-7497-4c61-9887-dfaad5c6d80a
accountName: Accounts Payable
accountCategory:
status: Suggested
levels:
- levelName: Liability
- levelName: Current
- levelName: AccountsPayable
- date: '2022-08-31T00:00:00'
balance: 208264.65
accountId: e2530acd-91c8-48f8-a35f-935dbd7432e2
accountName: Accruals
accountCategory:
status: Suggested
levels:
- levelName: Liability
- levelName: Current
- levelName: AccruedLiabilities
- date: '2022-08-31T00:00:00'
balance: 0
accountId: d19852a2-e292-4eb9-a909-9dadb95c0e76
accountName: Rounding
accountCategory:
status: Suggested
levels:
- levelName: Liability
- levelName: Current
- levelName: Bank
- date: '2022-08-31T00:00:00'
balance: 25184.57
accountId: 62060aae-e5a6-4db5-a3bb-6abec6d47959
accountName: Credit Card Control Account
accountCategory:
status: Suggested
levels:
- levelName: Liability
- levelName: Current
- levelName: Debt
- levelName: CreditCards
- date: '2022-08-31T00:00:00'
balance: 9650.58
accountId: 9be6382f-6b33-402d-b448-0db1dbf67a98
accountName: Historical Adjustment
accountCategory:
status: Suggested
levels:
- levelName: Liability
- levelName: Current
- levelName: Debt
- levelName: LoansPayable
- date: '2022-08-31T00:00:00'
balance: 2022.41
accountId: 8636effc-50fb-45ba-8b2b-18336fa29b6b
accountName: John Smith
accountCategory:
status: Suggested
levels:
- levelName: Liability
- levelName: Current
- levelName: Debt
- levelName: LoansPayable
- date: '2022-08-31T00:00:00'
balance: 29034.75
accountId: 3a872b81-d1af-4d31-9bfa-a37280b8f68c
accountName: VAT
accountCategory:
status: Confirmed
levels:
- levelName: Liability
- levelName: Current
- levelName: Personnel
- levelName: PensionPayable
- date: '2022-08-31T00:00:00'
balance: 1076.55
accountId: 3b58f7ff-fa16-453a-9931-f020816d76e7
accountName: Interest Payables
accountCategory:
status: Confirmed
levels:
- levelName: Liability
- levelName: Current
- levelName: Personnel
- levelName: PensionPayable
- date: '2022-08-31T00:00:00'
balance: 0
accountId: 8852a857-aa9d-4706-839f-638e9d6b5a66
accountName: Unpaid Expense Claims
accountCategory:
status: Suggested
levels:
- levelName: Liability
- levelName: NonCurrent
- date: '2022-08-31T00:00:00'
balance: 638999.6
accountId: 55008233-40e7-41ac-84af-2255fa028c2e
accountName: Loan
accountCategory:
status: Suggested
levels:
- levelName: Liability
- levelName: NonCurrent
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: get-accounts-for-enhanced-balance-sheet
parameters:
- $ref: '#/components/parameters/reportDate'
- $ref: '#/components/parameters/numberOfPeriods'
'/companies/{companyId}/reports/enhancedCashFlow/transactions':
parameters:
- $ref: '#/components/parameters/companyId'
get:
summary: Get enhanced cash flow report
description: |-
> **Categorization engine**
>
> The categorization engine uses machine learning and has been fully trained against Plaid and TrueLayer banking data sources. It is not fully trained against the Basiq banking data source.
The Enhanced Cash Flow Transactions endpoint provides a fully categorized list of banking transactions for a company. Accounts and transaction data are obtained from the company's banking data sources.
tags:
- Reports
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EnhancedCashFlowTransactions'
example:
reportInfo:
pageNumber: 1
pageSize: 10
totalResults: 2194
reportName: Cash flow transactions report
companyName: test
generatedDate: '2023-03-24T16:44:17.5302732Z'
dataSources:
- accounts:
- sourceRef:
sourceType: Banking
platformName: Banking Sandbox
accountProvider: Lloyds Bank
accountName: Business Savings Account
accountType: Debit
currency: GBP
currentBalance: 0
- sourceRef:
sourceType: Banking
platformName: Banking Sandbox
accountProvider: Lloyds Bank
accountName: Banking - Business Credit Card
accountType: Credit
currency: GBP
currentBalance: 0
- sourceRef:
sourceType: Banking
platformName: Banking Sandbox
accountProvider: Lloyds Bank
accountName: Business Undeposited Funds
accountType: Debit
currency: GBP
currentBalance: 0
- sourceRef:
sourceType: Banking
platformName: Banking Sandbox
accountProvider: Lloyds Bank
accountName: Business Current Account
accountType: Debit
currency: GBP
currentBalance: 0
reportItems:
- transactions:
- sourceRef:
sourceType: Banking
- accountRef:
id: 4f78a6b0-e9bb-40f2-82fd-f3a2daa1fd0a
name: Business Current Account
id: ab5e07a0-5578-4d91-8421-2dc72713b74f
date: '2022-11-08T00:00:00'
description: Payment m86SDGpQr3
amount: -6905.44
currency: GBP
transactionCategory:
confidence: 52.53
levels:
- Expense
- Operating
platformName: Shopify
- sourceRef:
sourceType: Banking
- accountRef:
id: 4f78a6b0-e9bb-40f2-82fd-f3a2daa1fd0a
name: Business Current Account
id: 9846bbed-46d3-472c-a848-1ce8ebea7213
date: '2022-11-08T00:00:00'
description: Payment from customer a5c68c7b-6825-46de-bf63-6ad23ef506a4
amount: 4332.84
currency: GBP
transactionCategory:
confidence: 88
levels:
- Expense
platformName: Amazon
- sourceRef:
sourceType: Banking
- accountRef:
id: 809b9470-c9fa-4257-bc9f-06a1dc7b0cbc
name: Business Undeposited Funds
id: 94b213fb-d742-435e-90f1-bfe723a076d5
date: '2022-11-08T00:00:00'
description: Payment from customer a5c68c7b-6825-46de-bf63-6ad23ef506a4
amount: 4034.3
currency: GBP
transactionCategory:
confidence: 61.08
levels:
- Income
- Revenue
platformName: Shopify
- sourceRef:
sourceType: Banking
- accountRef:
id: 4f78a6b0-e9bb-40f2-82fd-f3a2daa1fd0a
name: Business Current Account
id: cfceb7ff-eaa2-45b6-aca7-fa0e0b439161
date: '2022-11-08T00:00:00'
description: Payment to supplier 78792d13-90a0-4ea2-8e07-81c3c893997e
amount: -313.76
currency: GBP
transactionCategory:
confidence: 40.98
levels:
- Expense
- CostOfSales
platformName: Amazon
- sourceRef:
sourceType: Banking
- accountRef:
id: 809b9470-c9fa-4257-bc9f-06a1dc7b0cbc
name: Business Undeposited Funds
id: ba814f14-0fe3-41d0-9308-57f40642ac75
date: '2022-11-08T00:00:00'
description: Payment to supplier 46d2e1fb-b4e9-469c-814a-21ff8105a26e
amount: -614.4
currency: GBP
transactionCategory:
confidence: 55.84
levels:
- Income
- Revenue
platformName: Zettle
- sourceRef:
sourceType: Banking
- accountRef:
id: 4f78a6b0-e9bb-40f2-82fd-f3a2daa1fd0a
name: Business Current Account
id: e67cc30e-fd5c-4eea-8365-ec40dfdd3ef6
date: '2022-11-08T00:00:00'
description: Payment from customer a5c68c7b-6825-46de-bf63-6ad23ef506a4
amount: 5199.62
currency: GBP
transactionCategory:
confidence: 57.85
levels:
- Expense
platformName: Amazon
- sourceRef:
sourceType: Banking
- accountRef:
id: 4f78a6b0-e9bb-40f2-82fd-f3a2daa1fd0a
name: Business Current Account
id: e0f08a0b-3575-4dde-98c4-3c854028d2d2
date: '2022-11-08T00:00:00'
description: Payment to supplier 18ac18dc-945b-4083-9013-e8a100b999fa
amount: -21420.94
currency: GBP
transactionCategory:
confidence: 70.58
levels:
- Expense
- Operating
platformName: Amazon
- sourceRef:
sourceType: Banking
- accountRef:
id: 809b9470-c9fa-4257-bc9f-06a1dc7b0cbc
name: Business Undeposited Funds
id: 4b70d379-8284-4f44-bb37-c7935df950cc
date: '2022-11-08T00:00:00'
description: Payment to supplier 630a3f16-5f01-4986-ae6b-82333ec49449
amount: -30924.22
currency: GBP
transactionCategory:
confidence: 48.26
levels:
- Income
platformName: DoorDash
- sourceRef:
sourceType: Banking
- accountRef:
id: 809b9470-c9fa-4257-bc9f-06a1dc7b0cbc
name: Business Undeposited Funds
id: 76b73373-9345-472e-8edf-5be849d797fe
date: '2022-11-08T00:00:00'
description: Payment to supplier bQATU4eSb9
amount: -568.78
currency: GBP
transactionCategory:
confidence: 65.21
levels:
- Income
- Revenue
platformName: Uber
- sourceRef:
sourceType: Banking
- accountRef:
id: 809b9470-c9fa-4257-bc9f-06a1dc7b0cbc
name: Business Undeposited Funds
id: ee92fd6f-e0f7-4391-85fd-4b50921b973f
date: '2022-11-08T00:00:00'
description: Payment to supplier 9c37eb21-579a-4886-8296-3a853076b7bd
amount: -13050.79
currency: GBP
transactionCategory:
confidence: 92.33
levels:
- Income
- Revenue
platformName: DoorDash
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: get-enhanced-cash-flow-transactions
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/query'
'/companies/{companyId}/reports/enhancedInvoices':
parameters:
- $ref: '#/components/parameters/companyId'
get:
summary: Get enhanced invoices report
tags:
- Reports
responses:
'200':
description: OK
content:
application/json:
x-speakeasy-usage-example: true
schema:
$ref: '#/components/schemas/EnhancedInvoicesReport'
example:
reportInfo:
pageNumber: 1
pageSize: 10
totalResults: 101
reportName: Invoices report
companyName: Small Sandbox
generatedDate: '2023-05-10T10:50:23.9437977Z'
reportItems:
- id: 15221fa4-e91a-4f64-a2bb-caeab4db85a4
invoiceNumber: UDs5KlfE
customerRef:
id: ee4d0eee-063d-4c9f-8226-2c9a6a816249
customerName: Serena Keeling
issueDate: '2021-04-06T09:44:00'
dueDate: '2021-04-06T09:44:00'
status: Paid
currency: GBP
totalAmount: 7044.83
amountDue: 0
paidOnDate: '2021-04-06T09:44:00'
modifiedDate: '2022-04-11T13:49:37Z'
sourceModifiedDate: '2022-02-27T18:28:00'
payments: []
- id: 58aea1cb-5b31-4eed-ba16-489dfa67a831
invoiceNumber: 1IU1PMoT
customerRef:
id: 81e9c0df-3e5e-4180-b20c-c8e58100cdf3
customerName: Quinton Kovacek
issueDate: '2021-04-06T09:44:00'
dueDate: '2021-04-06T09:44:00'
status: Paid
currency: GBP
totalAmount: 3567.59
amountDue: 0
paidOnDate: '2021-04-06T09:44:00'
modifiedDate: '2022-04-11T13:49:37Z'
sourceModifiedDate: '2021-06-23T22:47:00'
payments: []
- id: 9ecd07bc-9cab-4516-bad0-a0cd565cdbaf
invoiceNumber: eEIWyPN4
customerRef:
id: c7326084-cd56-48e6-bcfa-be8919e024e1
customerName: Antwon Dach
issueDate: '2021-04-08T01:27:00'
dueDate: '2021-04-18T01:27:00'
status: Paid
currency: GBP
totalAmount: 153233.36
amountDue: 0
paidOnDate: '2021-04-10T12:31:00'
modifiedDate: '2022-08-01T09:44:59Z'
sourceModifiedDate: '2021-11-11T12:10:00'
payments:
- id: 0878e8be-6746-4347-80ba-5491328c8411
date: '2021-04-10T12:31:00'
paymentType: payments
amount: 153233.36
currency: GBP
currencyRate: 1
- id: 7cea078a-5c9a-4788-ae72-9bb60c5cc184
invoiceNumber: BXb8mYQW
customerRef:
id: 44e8516d-bcb0-459f-9e5d-7beaa56d57d0
customerName: Dolores Rath
issueDate: '2021-04-16T17:30:00'
dueDate: '2021-04-23T17:30:00'
status: Paid
currency: GBP
totalAmount: 12657.69
amountDue: 0
paidOnDate: '2021-04-23T17:30:00'
modifiedDate: '2022-04-11T13:49:37Z'
sourceModifiedDate: '2021-12-08T11:32:00'
payments:
- id: 17b42934-13f6-4738-a506-2e253b1a606f
date: '2021-04-23T17:30:00'
paymentType: payments
amount: 12657.69
currency: GBP
currencyRate: 1
- id: aa4503d7-fe01-49fe-ba42-259b421ac640
invoiceNumber: wdjwiL5B
customerRef:
id: 5cbaf1af-4f02-4206-85ab-c525bd9b4f99
customerName: Bryana Douglas
issueDate: '2021-04-20T06:46:00'
dueDate: '2021-04-27T06:46:00'
status: PartiallyPaid
currency: GBP
totalAmount: 12935.39
amountDue: 381.09
modifiedDate: '2022-04-11T13:49:37Z'
sourceModifiedDate: '2022-03-11T20:03:00'
payments:
- id: 1c03986b-9b6c-4220-bde6-4e3eba6cef9f
date: '2021-04-23T14:59:00'
paymentType: payments
amount: 12554.3
currency: GBP
currencyRate: 1
- id: d8a0e26e-4ec8-4fb5-887d-8b7531e3bedf
invoiceNumber: cTjJcu8x
customerRef:
id: 6f5290e5-70aa-4d0c-816e-9d2312cf217f
customerName: Brady Wilderman
issueDate: '2021-04-23T09:32:00'
dueDate: '2021-05-03T09:32:00'
status: Paid
currency: GBP
totalAmount: 21526.72
amountDue: 0
paidOnDate: '2021-05-03T09:32:00'
modifiedDate: '2022-04-11T13:49:37Z'
sourceModifiedDate: '2021-03-12T22:37:00'
payments:
- id: 93c9c11b-3ec0-4314-85f6-0751763e752a
date: '2021-05-03T09:32:00'
paymentType: payments
amount: 21506.72
currency: GBP
currencyRate: 1
- id: 06890e67-35fb-4276-9857-95db40cfd15d
invoiceNumber: htXJuUDb
customerRef:
id: 44e8516d-bcb0-459f-9e5d-7beaa56d57d0
customerName: Dolores Rath
issueDate: '2021-05-01T23:23:00'
dueDate: '2021-05-11T23:23:00'
status: PartiallyPaid
currency: GBP
totalAmount: 7151.41
amountDue: 1225.06
modifiedDate: '2022-08-01T09:44:59Z'
sourceModifiedDate: '2022-02-24T23:02:00'
payments:
- id: 82865077-0857-46db-b9a1-6d21da43b6aa
date: '2021-05-04T17:57:00'
paymentType: payments
amount: 5926.35
currency: GBP
currencyRate: 1
- id: 160e8b51-1fa0-46b9-98fe-1ff5399ce99b
invoiceNumber: 9wegEXpG
customerRef:
id: 44e8516d-bcb0-459f-9e5d-7beaa56d57d0
customerName: Dolores Rath
issueDate: '2021-05-18T08:53:00'
dueDate: '2021-05-25T08:53:00'
status: PartiallyPaid
currency: GBP
totalAmount: 22522.34
amountDue: 14408.54
modifiedDate: '2022-04-11T13:49:37Z'
sourceModifiedDate: '2022-01-13T07:52:00'
payments:
- id: 75bd7205-bc12-4517-9964-aae159fdfaee
date: '2021-05-23T04:04:00'
paymentType: payments
amount: 8113.8
currency: GBP
currencyRate: 1
- id: 5a934955-561d-436a-a564-fd624a79f54c
invoiceNumber: l7YwGxG7
customerRef:
id: cc96af36-e2f5-49f7-bf40-271503f45071
customerName: Ignacio Moore
issueDate: '2021-05-25T19:51:00'
dueDate: '2021-06-04T19:51:00'
status: Paid
currency: GBP
totalAmount: 11047.08
amountDue: 0
paidOnDate: '2021-05-28T07:31:00'
modifiedDate: '2022-04-11T13:49:37Z'
sourceModifiedDate: '2021-08-06T05:50:00'
payments:
- id: 608fd022-f7d0-44a9-90c4-bebe0573f206
date: '2021-05-28T07:31:00'
paymentType: payments
amount: 11047.08
currency: GBP
currencyRate: 1
- id: 17690788-2936-46b5-ba46-ba6a36a87483
invoiceNumber: ntH1cRYz
customerRef:
id: e1ecc8f2-8a63-4fe9-97c9-c87fd90ca0a6
customerName: Freida Ebert
issueDate: '2021-05-27T19:07:00'
dueDate: '2021-06-03T19:07:00'
status: PartiallyPaid
currency: GBP
totalAmount: 7191.32
amountDue: 5036.83
modifiedDate: '2022-04-11T13:49:37Z'
sourceModifiedDate: '2021-03-27T08:54:00'
payments:
- id: a343b2a0-d327-41b0-993e-7b6b92fde425
date: '2021-06-03T19:07:00'
paymentType: payments
amount: 2154.49
currency: GBP
currencyRate: 1
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: get-enhanced-invoices-report
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/query'
description: Gets a list of invoices linked to the corresponding banking transaction
'/data/companies/{companyId}/connections/{connectionId}/assess/commerceMetrics/revenue':
parameters:
- $ref: '#/components/parameters/companyId'
- $ref: '#/components/parameters/connectionId'
get:
summary: Get commerce revenue metrics
tags:
- Reports
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
example:
- reportInfo:
name: revenue
displayName: Revenue
dimensions:
- index: 0
displayName: Period
type: datespan
items:
- index: 0
displayName: Period 0
start: '2022-01-01'
end: '2022-12-31'
- index: 1
displayName: Revenue metrics
type: string
items:
- index: 0
value: Revenue
- index: 1
value: Revenue growth
measures:
- displayName: Value
units: GBP
index: 0
type: currency
- displayName: Percentage change vs. previous period
units: '%'
index: 1
type: percentage
reportData:
- dimension: 0
dimensionDisplayName: Period
item: 0
itemDisplayName: Period 0
components:
- dimension: 1
dimensionDisplayName: Revenue metrics
item: 0
itemDisplayName: Revenue
measures:
- index: 0
measureDisplayName: Value
value: 2392.48
- dimension: 1
dimensionDisplayName: Revenue metrics
item: 1
itemDisplayName: Revenue growth
measures:
- index: 1
measureDisplayName: Percentage change vs. previous period
value: 276.65
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: get-commerce-revenue-metrics
x-speakeasy-name-override: get-commerce-revenue-metrics
description: 'Get the revenue and revenue growth for a specific company connection, over one or more periods of time.'
parameters:
- $ref: '#/components/parameters/reportDate'
- $ref: '#/components/parameters/periodLength'
- $ref: '#/components/parameters/numberOfPeriodsRequired'
- $ref: '#/components/parameters/periodUnit'
- $ref: '#/components/parameters/includeDisplayNames'
'/data/companies/{companyId}/connections/{connectionId}/assess/commerceMetrics/orders':
parameters:
- $ref: '#/components/parameters/companyId'
- $ref: '#/components/parameters/connectionId'
get:
summary: Get orders report
tags:
- Reports
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
example:
- reportInfo:
name: orders
displayName: Orders
dimensions:
- index: 0
displayName: Period
type: datespan
items:
- index: 0
displayName: Period 0
start: '2022-01-01'
end: '2022-12-31'
- index: 1
displayName: Order metrics
type: string
items:
- index: 0
value: Number of orders
- index: 1
value: Total value
- index: 2
value: Average order value
measures:
- displayName: Count
index: 0
type: int
- displayName: Value
units: GBP
index: 1
type: currency
reportData:
- dimension: 0
dimensionDisplayName: Period
item: 0
itemDisplayName: Period 0
components:
- dimension: 1
dimensionDisplayName: Order metrics
item: 0
itemDisplayName: Number of orders
measures:
- index: 0
measureDisplayName: Count
value: 94
- dimension: 1
dimensionDisplayName: Order metrics
item: 1
itemDisplayName: Total value
measures:
- index: 1
measureDisplayName: Value
value: 3315.18
- dimension: 1
dimensionDisplayName: Order metrics
item: 2
itemDisplayName: Average order value
measures:
- index: 1
measureDisplayName: Value
value: 35.27
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: get-commerce-orders-metrics
x-speakeasy-name-override: get-commerce-orders-metrics
description: 'Gets the order information for a specific company connection, over one or more periods of time.'
parameters:
- $ref: '#/components/parameters/reportDate'
- $ref: '#/components/parameters/periodLength'
- $ref: '#/components/parameters/numberOfPeriodsRequired'
- $ref: '#/components/parameters/periodUnit'
- $ref: '#/components/parameters/includeDisplayNames'
'/data/companies/{companyId}/connections/{connectionId}/assess/commerceMetrics/refunds':
parameters:
- $ref: '#/components/parameters/companyId'
- $ref: '#/components/parameters/connectionId'
get:
summary: Get refunds report
tags:
- Reports
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
example:
- reportInfo:
name: refunds
displayName: Refunds
dimensions:
- index: 0
displayName: Period
type: datespan
items:
- index: 0
displayName: Period 0
start: '2022-01-01'
end: '2022-12-31'
- index: 1
displayName: Refund metrics
type: string
items:
- index: 0
value: Number of refunds
- index: 1
value: Value of refunds
- index: 2
value: Refund rate
measures:
- displayName: Count
index: 0
type: int
- displayName: Value
units: GBP
index: 1
type: currency
- displayName: Percentage
units: '%'
index: 2
type: percentage
reportData:
- dimension: 0
dimensionDisplayName: Period
item: 0
itemDisplayName: Period 0
components:
- dimension: 1
dimensionDisplayName: Refund metrics
item: 0
itemDisplayName: Number of refunds
measures:
- index: 0
measureDisplayName: Count
value: 39
- dimension: 1
dimensionDisplayName: Refund metrics
item: 1
itemDisplayName: Value of refunds
measures:
- index: 1
measureDisplayName: Value
value: 642.82
- dimension: 1
dimensionDisplayName: Refund metrics
item: 2
itemDisplayName: Refund rate
measures:
- index: 2
measureDisplayName: Percentage
value: 0.41
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: get-commerce-refunds-metrics
x-speakeasy-name-override: get-commerce-refunds-metrics
description: 'Gets the refunds information for a specific company connection, over one or more periods of time.'
parameters:
- $ref: '#/components/parameters/reportDate'
- $ref: '#/components/parameters/periodLength'
- $ref: '#/components/parameters/numberOfPeriodsRequired'
- $ref: '#/components/parameters/periodUnit'
- $ref: '#/components/parameters/includeDisplayNames'
'/data/companies/{companyId}/connections/{connectionId}/assess/commerceMetrics/customerRetention':
parameters:
- $ref: '#/components/parameters/companyId'
- $ref: '#/components/parameters/connectionId'
get:
summary: Get customer retention metrics
tags:
- Reports
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
example:
- reportInfo:
name: customer_retention
displayName: Customer Retention
dimensions:
- index: 0
displayName: Period
type: datespan
items:
- index: 0
displayName: Period 0
start: '2022-01-01'
end: '2022-12-31'
- index: 1
displayName: Customer retention metrics
type: string
items:
- index: 0
value: Existing customers
- index: 1
value: New customers
- index: 2
value: Total customers
- index: 3
value: Retention rate
- index: 4
value: Repeat rate
measures:
- displayName: Count
index: 0
type: int
- displayName: Percentage
index: 1
type: percentage
reportData:
- dimension: 0
dimensionDisplayName: Period
item: 0
itemDisplayName: Period 0
components:
- dimension: 1
dimensionDisplayName: Customer retention metrics
item: 0
itemDisplayName: Existing customers
measures:
- index: 0
measureDisplayName: Count
value: 13
- dimension: 1
dimensionDisplayName: Customer retention metrics
item: 1
itemDisplayName: New customers
measures:
- index: 0
measureDisplayName: Count
value: 47
- dimension: 1
dimensionDisplayName: Customer retention metrics
item: 2
itemDisplayName: Total customers
measures:
- index: 0
measureDisplayName: Count
value: 60
- dimension: 1
dimensionDisplayName: Customer retention metrics
item: 3
itemDisplayName: Retention rate
measures:
- index: 1
measureDisplayName: Percentage
value: 0
- dimension: 1
dimensionDisplayName: Customer retention metrics
item: 4
itemDisplayName: Repeat rate
measures:
- index: 1
measureDisplayName: Percentage
value: 21.67
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: get-commerce-customer-retention-metrics
x-speakeasy-name-override: get-commerce-customer-retention-metrics
description: 'Gets the customer retention metrics for a specific company connection, over one or more periods of time.'
parameters:
- $ref: '#/components/parameters/reportDate'
- $ref: '#/components/parameters/periodLength'
- $ref: '#/components/parameters/numberOfPeriodsRequired'
- $ref: '#/components/parameters/periodUnit'
- $ref: '#/components/parameters/includeDisplayNames'
'/data/companies/{companyId}/connections/{connectionId}/assess/commerceMetrics/lifetimeValue':
parameters:
- $ref: '#/components/parameters/companyId'
- $ref: '#/components/parameters/connectionId'
get:
summary: Get lifetime value metric
tags:
- Reports
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
example:
- reportInfo:
name: lifetime_value
displayName: Lifetime Value
dimensions:
- index: 0
displayName: Period
type: datespan
items:
- index: 0
displayName: Period 0
start: '2022-01-01'
end: '2022-12-31'
- index: 1
displayName: Lifetime value metrics
type: string
items:
- index: 0
value: Lifetime value
measures:
- displayName: Value
units: GBP
index: 0
type: currency
reportData:
- dimension: 0
dimensionDisplayName: Period
item: 0
itemDisplayName: Period 0
components:
- dimension: 1
dimensionDisplayName: Lifetime value metrics
item: 0
itemDisplayName: Lifetime value
measures:
- index: 0
measureDisplayName: Value
value: 3782.07
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: get-commerce-lifetime-value-metrics
x-speakeasy-name-override: get-commerce-lifetime-value-metrics
description: 'Gets the lifetime value metric for a specific company connection, over one or more periods of time.'
parameters:
- $ref: '#/components/parameters/reportDate'
- $ref: '#/components/parameters/periodLength'
- $ref: '#/components/parameters/numberOfPeriodsRequired'
- $ref: '#/components/parameters/periodUnit'
- $ref: '#/components/parameters/includeDisplayNames'
'/data/companies/{companyId}/connections/{connectionId}/assess/subscriptions/process':
parameters:
- $ref: '#/components/parameters/companyId'
- $ref: '#/components/parameters/connectionId'
get:
summary: Generate key subscription revenue metrics
tags:
- Reports
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: request-recurring-revenue-metrics
description: Requests production of key subscription revenue metrics.
'/data/companies/{companyId}/connections/{connectionId}/assess/subscriptions/mrr':
parameters:
- $ref: '#/components/parameters/companyId'
- $ref: '#/components/parameters/connectionId'
get:
summary: Get key subscription revenue metrics
tags:
- Reports
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: get-recurring-revenue-metrics
x-speakeasy-name-override: get-recurring-revenue-metrics
description: Gets key metrics for subscription revenue.
'/data/companies/{companyId}/connections/{connectionId}/assess/accountingMetrics/marketing':
parameters:
- $ref: '#/components/parameters/companyId'
- $ref: '#/components/parameters/connectionId'
get:
summary: Get marketing metrics report
tags:
- Excel reports
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
example:
- reportInfo: null
name: marketing_metrics
displayName: Marketing metrics
dimensions:
- index: 0
displayName: Period
type: datespan
items:
- index: 0
displayName: Period 0
start: '2022-01-01'
end: '2022-12-31'
- index: 1
displayName: Marketing metrics
type: string
items:
- index: 0
value: Marketing to revenue
- index: 1
value: Marketing to expense
measures:
- displayName: Percentage
units: '%'
index: 0
type: percentage
- displayName: Percentage change vs previous period
units: '%'
index: 1
type: percentage
reportData:
- dimension: 0
dimensionDisplayName: Period
item: 0
itemDisplayName: Period 0
components:
- dimension: 1
dimensionDisplayName: Marketing metrics
item: 0
itemDisplayName: Marketing to revenue
measures:
- index: 0
measureDisplayName: Percentage
value: 564.17
- index: 1
measureDisplayName: Percentage change vs previous period
value: 8.33
- dimension: 1
dimensionDisplayName: Marketing metrics
item: 1
itemDisplayName: Marketing to expense
measures:
- index: 0
measureDisplayName: Percentage
value: 27.63
- index: 1
measureDisplayName: Percentage change vs previous period
value: 0.12
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: get-accounting-marketing-metrics
x-speakeasy-name-override: get-accounting-marketing-metrics
description: |-
Get the marketing metrics from an accounting source for a given company.
Request an Excel report for download.
parameters:
- $ref: '#/components/parameters/reportDate'
- $ref: '#/components/parameters/periodLength'
- $ref: '#/components/parameters/numberOfPeriodsRequired'
- $ref: '#/components/parameters/periodUnit'
- $ref: '#/components/parameters/includeDisplayNames'
- schema:
type: boolean
in: query
name: showInputValues
description: 'If set to true, then the system includes the input values within the response.'
'/data/companies/{companyId}/assess/excel':
parameters:
- $ref: '#/components/parameters/companyId'
post:
summary: Generate Excel report
tags:
- Excel reports
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ExcelStatus'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: generate-excel-report
description: Generate an Excel report which can subsequently be downloaded.
parameters:
- $ref: '#/components/parameters/excelReportType'
get:
summary: Get Excel report status
tags:
- Excel reports
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ExcelStatus'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: get-excel-report-generation-status
description: Returns the status of the latest report requested.
parameters:
- $ref: '#/components/parameters/excelReportType'
'/data/companies/{companyId}/assess/excel/download':
parameters:
- $ref: '#/components/parameters/companyId'
get:
summary: Download Excel report
tags:
- Excel reports
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
type: object
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: get-excel-report
description: Download the previously generated Excel report to a local drive.
parameters:
- $ref: '#/components/parameters/excelReportType'
'/companies/{companyId}/reports/enhancedLiabilities/loan/transactions':
parameters:
- $ref: '#/components/parameters/companyId'
get:
summary: List enhanced loan transactions
tags:
- Reports
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/LoanTransactions'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: list-loan-transactions
parameters:
- schema:
type: string
enum:
- banking
- commerce
- accounting
in: query
name: sourceType
description: Data source type
required: true
'/companies/{companyId}/reports/enhancedLiabilities/loan':
parameters:
- $ref: '#/components/parameters/companyId'
get:
summary: Get enhanced loan summaries
tags:
- Reports
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/LoanSummary'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/Not-Found'
operationId: get-loan-summary
webhooks:
Account categories updated:
post:
requestBody:
description: Triggered anytime that Codat updates the suggested fields or a user updates the confirmed fields.
content:
application/json:
schema:
$ref: '#/components/schemas/AccountCategoriesUpdatedWebhook'
responses:
'200':
description: Return a 200 status to indicate that the webhook was received successfully.
components:
schemas:
Report:
title: Assess report
description: |-
## Structure
Assess reports follow a consistent structure. Reports contain four sections of information:
### 1. Report definition
Information such as:
1. The report info (e.g. enhanced_profit_and_loss).
2. The display name of the report (e.g. Enhanced Profit and Loss).
### 2. Dimension info
Information about the dimension contained in the reports such as:
1. The type of dimension (e.g. datetime, recordRef).
2. The display name of the dimension (e.g. Period, Category type, Category sub type).
3. The details about each item within the dimension (e.g. displayName:"Jan 2022", start:"...", end:"...", id:"...", name:"...").
### 3. Measure info
Information about the measures contained in the report such as:
1. The display name of the measure (e.g. value of account, percentage change).
2. The type of the measure (e.g. currency, percentage).
3. The unit of the measure (e.g. %, GBP).
### 4. The data for the report
When the *includeDisplayName* parameter is set to *true*, it shows the *dimensionDisplayName* and *itemDisplayName* to make the data human-readable. The default setting for *includeDisplayName* is *false*.
## Displaying the report
Reports can be rendered as follows (ordering is implicit rather than explicit):

# Data model
## Dimensions
type: object
properties:
reportInfo:
type: object
additionalProperties:
type: string
dimensions:
type: array
items:
$ref: '#/components/schemas/Report/definitions/reportDimension'
measures:
type: array
items:
$ref: '#/components/schemas/Report/definitions/reportMeasure'
reportData:
type: array
items:
$ref: '#/components/schemas/Report/definitions/reportComponent'
errors:
type: array
items:
$ref: '#/components/schemas/Report/definitions/reportError'
definitions:
reportMeasure:
title: Measure
type: object
properties:
displayName:
type: string
units:
type: string
index:
type: integer
type:
type: string
reportError:
title: Error
type: object
properties:
message:
type: string
type:
type: string
details:
type: object
additionalProperties:
type: array
items:
type: string
reportDimension:
title: Dimension
type: object
properties:
index:
type: integer
displayName:
type: string
type:
type: string
items:
type: array
items:
type: object
properties:
index:
type: integer
reportComponent:
title: Report component
type: object
properties:
dimension:
type: integer
dimensionDisplayName:
type: string
item:
type: integer
itemDisplayName:
type: string
measures:
type: array
items:
$ref: '#/components/schemas/Report/definitions/reportComponentMeasure'
components:
type: array
items:
$ref: '#/components/schemas/Report/definitions/reportComponent'
reportComponentMeasure:
type: object
properties:
index:
type: integer
measureDisplayName:
type: string
value:
type: number
x-examples:
Example 1:
reportInfo:
additionalProp1: string
additionalProp2: string
additionalProp3: string
dimensions:
- index: 0
displayName: string
type: string
items:
- index: 0
measures:
- displayName: string
units: string
index: 0
type: string
reportData:
- dimension: 0
dimensionDisplayName: string
item: 0
itemDisplayName: string
measures:
- index: 0
measureDisplayName: string
components:
- string
errors:
- message: string
type: DatesOutOfRange
details:
additionalProp1:
- string
additionalProp2:
- string
additionalProp3:
- string
EnhancedReport:
title: Enhanced report
type: object
properties:
reportInfo:
$ref: '#/components/schemas/EnhancedReport/definitions/enhancedReportInfo'
reportItems:
type: array
description: An array of report items.
items:
title: Report item
type: object
properties:
date:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
description: Last date of the period.
balance:
type: number
description: Balance of the account as reported on the profit and loss or Balance sheet.
accountName:
type: string
description: Name of the account.
accountId:
type: string
description: The unique account ID.
accountCategory:
$ref: '#/components/schemas/EnhancedReport/definitions/enhancedReportAccountCategory'
definitions:
enhancedReportAccountCategory:
title: Account category
descrciption: 'An object containing the suggested or confirmed account categories, up to five levels.'
type: object
properties:
status:
type: string
description: 'Returns a status of "Suggested" or "Confirmed". If an account has a confirmed category, it will replace any suggested category returned.'
levels:
type: array
items:
$ref: '#/components/schemas/EnhancedReport/definitions/accountCategoryLevel'
accountCategoryLevel:
title: Account category level
description: An object containing an ordered list of account category levels.
type: object
properties:
levelName:
type: string
description: Account category name.
confidence:
type: number
description: Confidence level of the category. This will only be populated where `status` is `Suggested`.
enhancedReportInfo:
type: object
properties:
currency:
$ref: '#/components/schemas/Currency'
description: Currency of the P&L/Balance sheet.
reportName:
type: string
description: The name of the report.
companyName:
type: string
description: Name of the company queried.
generatedDate:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
description: Returns the YYYY-MM-DD datetime of report generation.
examples:
- reportInfo:
reportName: EnhancedProfitAndLossAccounts
companyName: ABC LTD
generatedDate: '2022-01-01'
reportItems:
- date: '2022-01-01'
balance: 70
accountName: Sales UK
accountId: 13931cbf-ea06-4d6e-9538-a8457fa66011
accountCategory:
status: Suggested
levels:
- levelName: Income
confidence: 0.95
- levelName: Revenue
confidence: 0.9
- date: '2022-01-01'
balance: 30
accountName: Sales US
accountId: 13931cbf-ea06-4d6e-9538-a8457fa66011
accountCategory:
lastUpdated: '2022-01-02'
status: Suggested
levels:
- levelName: Income
confidence: 0.95
- levelName: Revenue
confidence: 0.9
- date: '2022-01-01'
balance: 70
accountName: Amazon
accountId: 13931cbf-ea06-4d6e-9538-a8457fa66011
accountCategory:
lastUpdated: '2022-01-02'
status: Suggested
levels:
- levelName: Income
confidence: 0.95
- levelName: Revenue
confidence: 0.95
- levelName: Online
confidence: 0.8
ExcelStatus:
type: object
title: Excel status
properties:
lastGenerated:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
description: The date and time of when the generation of the most recent report was initiated.
inProgress:
type: boolean
description: 'When true, the request was successful and the report is being generated. If false, the request was unsuccessful and the report is not being generated.'
queued:
type: string
description: The date and time of when a successful request was queued for the most recent report.
success:
type: boolean
description: True if the requested report was successfully queued and false if the requested report was not able to be queued.
errorMessage:
type: string
description: Error details in case the report generation request was unsuccessful.
lastInvocationId:
type: string
description: A unique ID generated for this request.
reportType:
$ref: '#/components/schemas/ExcelStatus/definitions/excelReportTypes'
fileSize:
type: integer
nullable: true
description: The file size in Bytes is populated upon successful generation of the report.
definitions:
excelReportTypes:
type: string
enum:
- audit
- enhancedFinancials
- enhancedInvoices
- enhancedCashFlow
description: The type of the report requested in the query string.
examples:
Example 1:
value:
lastGenerated: '2023-01-25T22:36:05.125Z'
inProgress: true
queued: '2023-01-25T22:36:05.125Z'
success: true
errorMessage: string
lastInvocationId: 3fa85f64-5717-4562-b3fc-2c963f66afa6
reportType: string
fileSize: 0
DataIntegrityStatus:
title: Data integrity status
type: object
allOf:
- $ref: '#/components/schemas/DataIntegritySummary/definitions/dataIntegrityType'
- type: object
properties:
statusInfo:
$ref: '#/components/schemas/DataIntegrityStatus/definitions/dataIntegrityStatusInfo'
connectionIds:
$ref: '#/components/schemas/DataIntegrityStatus/definitions/dataIntegrityConnectionId'
amounts:
$ref: '#/components/schemas/DataIntegrityStatus/definitions/dataIntegrityAmounts'
dates:
$ref: '#/components/schemas/DataIntegrityStatus/definitions/dataIntegrityDates'
definitions:
dataIntegrityStatusInfo:
type: object
properties:
lastMatched:
type: string
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
description: The date the matching algorithm last ran against the company’s data type specified.
readOnly: true
currentStatus:
$ref: '#/components/schemas/DataIntegrityStatus/definitions/integrityStatus'
statusMessage:
type: string
description: Detailed explanation supporting the status value.
dataIntegrityConnectionId:
type: object
properties:
source:
type: array
description: An array of strings. The connection IDs for the type specified in the url.
items:
type: string
target:
type: array
description: An array of strings. The connection IDs for the type being matched to.
items:
type: string
dataIntegrityAmounts:
type: object
description: 'Only returned for transactions. For accounts, there is nothing returned.'
properties:
min:
type: number
description: Lowest value of transaction set.
max:
type: number
description: Highest value of transaction set.
currency:
$ref: '#/components/schemas/Currency'
dataIntegrityDates:
type: object
description: 'Only returned for transactions. For accounts, there is nothing returned.'
properties:
minDate:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
description: Earliest date of transaction set.
readOnly: true
maxDate:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
description: Latest date of transaction set.
readOnly: true
minOverlappingDate:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
description: Earliest date where transactions exist in both accounting and banking platforms.
readOnly: true
maxOverlappingDate:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
description: Latest date where transactions exist in both account and banking platforms.
readOnly: true
integrityStatus:
type: string
enum:
- Unknown
- DoesNotExist
- Error
- Complete
description: The current status of the most recently run matching algorithm.
examples:
- type: string
statusInfo:
lastMatched: '2021-10-24T14:15:22Z'
currentStatus: Unknown
statusMessage: string
connectionIds:
source:
- d5a8d1b2-b38a-4e44-8641-548ad43be6bb
- da8c9f39-8af9-4a98-964b-f1e207942837
target:
- 3d7ce25a-c107-44bc-8e0c-36c10bdd14e0
- a5300eac-01fa-4a77-b5b0-ea0b86a3be69
amounts:
min: 130
max: 2450
currency: GBP
dates:
minDate: '2021-09-17T12:09:33.441Z'
maxDate: '2021-12-16T12:12:53.441Z'
minOverlappingDate: '2021-09-30T12:09:13.441Z'
maxOverlappingDate: '2021-11-27T12:19:33.441Z'
Status:
x-internal: true
type: object
properties:
metadata:
type: array
items:
$ref: '#/components/schemas/DataIntegrityStatus'
DataIntegritySummary:
title: Data integrity summary
type: object
allOf:
- $ref: '#/components/schemas/DataIntegritySummary/definitions/dataIntegrityType'
- type: object
properties:
byAmount:
$ref: '#/components/schemas/DataIntegritySummary/definitions/dataIntegrityByAmount'
byCount:
$ref: '#/components/schemas/DataIntegritySummary/definitions/dataIntegrityByCount'
definitions:
dataIntegrityType:
type: object
properties:
type:
type: string
description: 'The data type which the data type in the URL has been matched against. For example, if you''ve matched accountTransactions and banking-transactions, and you call this endpoint with accountTransactions in the URL, this property would be banking-transactions.'
dataIntegrityByAmount:
title: Data integrity by amount
type: object
properties:
matchPercentage:
type: number
description: The percentage of the absolute value of transactions of the type specified in the route which have a match.
unmatched:
type: number
description: The sum of the absolute value of transactions of the type specified in the route which don't have a match.
matched:
type: number
description: The sum of the absolute value of transactions of the type specified in the route which have a match.
total:
type: number
description: The total of unmatched and matched.
currency:
$ref: '#/components/schemas/Currency'
dataIntegrityByCount:
title: Data integrity by count
type: object
properties:
matchPercentage:
type: number
description: The percentage of records of the type specified in the route which have a match.
unmatched:
type: number
description: The number of records of the type specified in the route which don't have a match.
matched:
type: number
description: The number of records of the type specified in the route which do have a match.
total:
type: number
description: The total of unmatched and matched.
Summaries:
x-internal: true
type: object
properties:
summaries:
type: array
items:
$ref: '#/components/schemas/DataIntegritySummary'
DataIntegrityDetails:
title: Data integrity details
type: object
properties:
id:
type: string
description: ID GUID of the transaction.
type:
type: string
description: The data type of the record.
connectionId:
type: string
format: uuid
description: ID GUID representing the connection of the accounting or banking platform.
readOnly: true
date:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
description: The date of the transaction.
description:
type: string
description: The transaction description.
amount:
type: number
description: The transaction value.
currency:
$ref: '#/components/schemas/Currency'
description: The currency of the transaction.
matches:
type: array
items:
$ref: '#/components/schemas/DataIntegrityDetails/definitions/dataIntegrityMatch'
definitions:
dataIntegrityMatch:
type: object
properties:
id:
type: string
description: ID GUID of the transaction.
type:
type: string
description: 'The data type which the data type in the URL has been matched against. For example, if you''ve matched accountTransactions and banking-transactions, and you call this endpoint with accountTransactions in the URL, this property would be banking-transactions.'
connectionId:
type: string
description: ID GUID representing the connection of the accounting or banking platform.
format: uuid
date:
type: string
description: The date of the transaction.
description:
type: string
description: The transaction description.
amount:
type: string
description: The transaction value.
currency:
$ref: '#/components/schemas/Currency'
description: The currency of the transaction.
Details:
x-internal: true
allOf:
- type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/DataIntegrityDetails'
- $ref: '#/components/schemas/PagingInfo'
EnhancedCashFlowTransactions:
title: Enhanced cash flow transactions
description: |-
> **Categorization engine**
>
> The categorization engine uses machine learning and has been fully trained against Plaid and TrueLayer banking data sources. It is not fully trained against the Basiq banking data source.
The Enhanced Cash Flow Transactions endpoint provides a fully categorized list of banking transactions for a company. Accounts and transaction data are obtained from the company's banking data sources.
type: object
properties:
reportInfo:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/reportInfo'
dataSources:
type: array
items:
$ref: '#/components/schemas/EnhancedCashFlowTransactions/definitions/dataSource'
reportItems:
type: array
items:
$ref: '#/components/schemas/EnhancedCashFlowTransactions/definitions/enhancedCashFlowItem'
definitions:
dataSource:
type: object
properties:
accounts:
description: 'An array containing bank account data for each connected banking data source that have the following data types enabled: `banking-accounts`, `banking-transactions`.'
type: array
items:
$ref: '#/components/schemas/EnhancedCashFlowTransactions/definitions/accounts'
accounts:
title: Accounts
type: object
properties:
sourceRef:
$ref: '#/components/schemas/EnhancedCashFlowTransactions/definitions/sourceRef'
platformName:
description: 'Name of the banking data source, e.g. "Plaid".'
type: string
accountProvider:
description: The bank or other financial institution providing the account.
type: string
accountName:
description: The name of the account according to the provider.
type: string
accountType:
description: 'The type of banking account, e.g. credit or debit.'
type: string
currency:
$ref: '#/components/schemas/Currency'
description: The currency code for the bank account.
currentBalance:
description: The balance of the bank account.
type: number
sourceRef:
title: Report source reference
description: A source reference containing the `sourceType` object "Banking".
type: object
properties:
sourceType:
description: The data source type.
type: string
examples:
- Example:
value:
sourceRef:
sourceType: Banking
accountRef:
title: Account reference
description: An account reference containing the account id and name.
type: object
properties:
id:
description: The id of the account.
type: string
name:
description: The name of the account.
type: string
examples:
- Example:
value:
accountRef:
id: 4f78a6b0-e9bb-40f2-82fd-f3a2daa1fd0a
name: Business Current Account
enhancedCashFlowItem:
type: object
properties:
transactions:
description: An array of transaction data.
type: array
items:
$ref: '#/components/schemas/EnhancedCashFlowTransactions/definitions/enhancedCashFlowTransaction'
enhancedCashFlowTransaction:
title: Cash flow transaction
type: object
properties:
id:
description: The unique identifier of the bank transaction.
type: string
date:
description: The date the bank transaction was posted.
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
description:
description: The description of the bank transaction.
type: string
amount:
description: The bank transaction amount.
type: number
currency:
type: string
transactionCategory:
description: Contains an array of category levels.
$ref: '#/components/schemas/EnhancedCashFlowTransactions/definitions/transactionCategory'
platformName:
description: Returns the payment processor responsible for the transaction.
type: string
sourceRef:
$ref: '#/components/schemas/EnhancedCashFlowTransactions/definitions/sourceRef'
accountRef:
$ref: '#/components/schemas/EnhancedCashFlowTransactions/definitions/accountRef'
transactionCategory:
title: Transaction category
type: object
properties:
confidence:
description: Returns the confidence of the suggested category for the transaction. The value is between 0 and 100.
type: number
levels:
description: The suggested category is an ordered array of category levels where each element (or level) is a subcategory of the previous element (or level).
type: array
items:
type: string
examples:
- Example:
value:
transactionCategory:
confidence: 92.7
levels:
- Asset
- Current
- Bank
- BankTransfers
- ShareholderTransfers
AccountCategoriesUpdatedWebhook:
title: Account categories updated webhook
description: Webhook request body for account categories updated.
type: object
properties:
CompanyId:
$ref: '#/components/parameters/companyId/schema'
ClientId:
type: string
format: uuid
description: Unique identifier for your client in Codat.
ClientName:
type: string
description: Name of your client in Codat.
DataConnectionId:
$ref: '#/components/parameters/connectionId/schema'
RuleId:
type: string
format: uuid
description: Unique identifier for the rule.
Type:
type: string
x-stoplight:
id: 34d52a089f08a
description: The type of rule.
AlertId:
type: string
format: uuid
description: Unique identifier of the webhook event.
Message:
type: string
description: A human readable message about the webhook.
Data:
type: object
properties:
modifiedDate:
description: The date on which this account categories were last modified in Codat.
type: string
example: '2022-10-23'
title: Date
examples:
- companyId: f1c35bdc-1546-41b9-baf4-3f31135af968
clientId: 5e505642-9024-474d-9434-e5a44f505cc5
clientName: Peach Inc.
dataConnectionId: 2e9d2c44-f675-40ba-8049-353bfcb5e171
ruleId: 70af3071-65d9-4ec3-b3cb-5283e8d55dac
type: Account Categories Updated
alertId: a9367074-b5c3-42c4-9be4-be129f43577e
message: Account categories updated for company f1c35bdc-1546-41b9-baf4-3f31135af968.
data:
modifiedDate: '2019-08-24T14:15:22Z'
EnhancedInvoicesReport:
title: Enhanced invoices report
description: The enhanced invoices report takes the key elements of the Invoices report verifying those marked as paid in the accounting platform have actually been paid by matching with the bank statement.
type: object
properties:
reportInfo:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/reportInfo'
reportItems:
type: array
items:
type: object
properties:
invoices:
type: array
items:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/enhancedInvoiceReportItem'
definitions:
customerRef:
type: object
properties:
id:
minLength: 1
type: string
description: '`id` from the Customers data type'
customerName:
type: string
nullable: true
description: '`customerName` from the Customer data type'
payment:
title: Enhanced invoice payment item
type: object
properties:
id:
type: string
description: 'ID of the invoice, which may be a GUID but it may be something else depending on the accounting platform'
date:
title: Date time
type: string
examples:
- 2022-10-23T00:00:00.000Z
- 2022-10-23T00:00:00.000Z
description: |-
In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example:
```
2020-10-08T22:40:50Z
2021-01-01T00:00:00
```
When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:
- Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z`
- Unqualified local time: `2021-11-15T01:00:00`
- UTC time offsets: `2021-11-15T01:00:00-05:00`
> Time zones
>
> Not all dates from Codat will contain information about time zones.
> Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced.
paymentType:
type: string
amount:
type: number
currency:
$ref: '#/components/schemas/Currency'
currencyRate:
$ref: '#/components/schemas/CurrencyRate'
bankingTransactionRefs:
type: array
items:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/bankingTransactionRef'
bankingTransactionRef:
title: Banking transaction reference
type: object
properties:
id:
type: string
dataConnectionId:
type: string
accountId:
type: string
accountName:
type: string
date:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
description:
type: string
amount:
type: number
invoiceStatus:
type: string
enum:
- Unknown
- Draft
- Submitted
- PartiallyPaid
- Paid
- Void
description: |-
Current state of the invoice:
- `Draft` - Invoice hasn't been submitted to the supplier. It may be in a pending state or is scheduled for future submission, for example by email.
- `Submitted` - Invoice is no longer a draft. It has been processed and, or, sent to the customer. In this state, it will impact the ledger. It also has no payments made against it (amountDue == totalAmount).
- `PartiallyPaid` - The balance paid against the invoice is positive, but less than the total invoice amount (0 < amountDue < totalAmount).
- `Paid` - Invoice is paid in full. This includes if the invoice has been credited or overpaid (amountDue == 0).
- `Void` - An invoice can become Void when it's deleted, refunded, written off, or cancelled. A voided invoice may still be PartiallyPaid, and so all outstanding amounts on voided invoices are removed from the accounts receivable account.
enhancedInvoiceReportItem:
title: Enhanced invoice report item
type: object
allOf:
- type: object
properties:
id:
type: string
description: 'ID of the invoice, which may be a GUID but it may be something else depending on the accounting platdform'
invoiceNumber:
type: string
customerRef:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/customerRef'
issueDate:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
dueDate:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
status:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/invoiceStatus'
currency:
$ref: '#/components/schemas/Currency'
totalAmount:
type: number
amountDue:
type: number
payments:
type: array
items:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment'
paidOnDate:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
- x-internal: true
allOf:
- title: ModifiedDate
x-internal: true
type: object
properties:
modifiedDate:
allOf:
- $ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
- description: |-
The date when the record was last fetched from the data source and updated in Codat’s data cache.
Use it to identify and retrieve records that have changed since your last fetch. For example, filtering `modifiedDate` to today will provide new records updated in Codat today.
This date is populated for all data types except for attachments, balance sheets, company information, and profit & loss reports ([read more](https://docs.codat.io/using-the-api/modified-dates#modified-date)).
In Codat's data model, dates and times are represented using the ISO 8601 standard.
- title: Source Modified Date
x-internal: true
type: object
nullable: true
properties:
sourceModifiedDate:
allOf:
- $ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
- description: |-
The date when a record was last modified in the source platform, usually by the business or a business process. For example, when payments are made against an invoice.
It is not populated ([read more](https://docs.codat.io/using-the-api/modified-dates#source-modified-date)) when:
- Pulling attachments
- The integration platform does not provide modification dates for a data type
- A record has been deleted from the source platform and Codat doesn't have a record of when the deletion occurred
- A record has been voided. For certain platforms that soft delete records, `isDeleted` metadata is used to identify void records
In Codat's data model, dates and times are represented using the ISO 8601 standard.
reportInfo:
title: Report information
type: object
description: 'Report additional information, which is specific to Assess reports'
properties:
pageNumber:
type: integer
description: The number of the page queried.
pageSize:
type: integer
description: The number of transactions returned per page.
totalResults:
type: integer
description: The total number of transactions available for a company for the period specified in the query string.
reportName:
type: string
description: Name of the report
companyName:
type: string
description: The name of the company being queried.
generatedDate:
type: string
description: Date the report was generated
examples:
- Example 1:
value:
pageNumber: 0
pageSize: 0
totalResults: 0
reportName: string
companyName: string
generatedDate: '2023-01-26T07:36:40.487Z'
LoanTransactions:
title: Loan Transactions
type: object
properties:
reportInfo:
$ref: '#/components/schemas/LoanTransactions/definitions/loanTransactionsReportInfo'
reportItems:
type: array
description: Contains object of reporting properties. The loan ref will reference a different object depending on the integration type.
items:
$ref: '#/components/schemas/LoanTransactions/definitions/reportItems'
errors:
type: array
description: 'If there are no errors, an empty array is returned.'
definitions:
loanTransactionsReportInfo:
title: Loan Transactions Report Info
type: object
properties:
pageNumber:
type: integer
description: The page number.
pageSize:
type: integer
description: Queried page size.
totalResults:
type: integer
description: The total number of transactions returned.
reportName:
type: string
description: The name of the report.
companyName:
type: string
description: Name of the company queried.
generatedDate:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
description: Returns the YYYY-MM-DD datetime of report generation.
loanRef:
title: Loan Reference
type: object
properties:
id:
type: string
description: The id of the object being referred to.
dataConnectionId:
type: string
description: The dataConnectionId the object being referred to is associated with.
type:
type: string
description: 'The object type data is referring to, e.g. Account.'
itemRef:
title: Item reference
type: object
properties:
id:
type: string
description: 'The id of the object, e.g. the Journal entry.'
dataConnectionId:
type: string
description: The data connection id being referenced.
type:
type: string
description: The data type the loan transaction entry was extracted from.
reportItems:
type: object
properties:
loanRef:
$ref: '#/components/schemas/LoanTransactions/definitions/loanRef'
description: Contains object that contains all the Loan transactions for that integration type.
itemRef:
$ref: '#/components/schemas/LoanTransactions/definitions/itemRef'
description: Contains object of reporting properties. The loan ref will reference a different object depending on the integration type.
date:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
description: The date of that entry type occurred.
amount:
type: number
description: The loan transaction amount.
loanTransactionType:
type: string
enum:
- Investment
- Repayment
- Interest
- AccuredInterest
examples:
- reportInfo:
pageNumber: 1
pageSize: 1000
totalResults: 1
reportName: AccountingLoanTransactions
companyName: Supermarket store
generatedDate: '2022-10-23T00:00:00Z'
reportItems:
- loanRef:
id: '332'
dataConnectionId: ecd2d6be-5194-40a1-838f-5577a4881aaa
type: chartOfAccount
itemRef:
id: '755488'
dataConnectionId: ecd2d6be-5194-40a1-838f-5577a4881aaa
type: journalEntry
date: '2020-08-02'
amount: -455
transactionType: Repayment
LoanSummary:
title: Loan Summary
x-stoplight:
id: tpq5juroo1ylk
type: object
properties:
reportInfo:
$ref: '#/components/schemas/LoanSummary/definitions/loanSummaryReportInfo'
x-stoplight:
id: f7qjivq05pm1q
reportItems:
type: array
description: Returns a summary of all loan activity for that integration type
items:
$ref: '#/components/schemas/LoanSummary/definitions/reportItems'
x-stoplight:
id: 3o8v6y67rbrro
x-stoplight:
id: 9mupc5jphk9fa
definitions:
loanSummaryReportInfo:
title: Loan Summary Report Info
type: object
properties:
reportName:
type: string
description: The name of the report.
companyName:
type: string
description: Name of the company queried.
generatedDate:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
description: Returns the YYYY-MM-DD datetime of report generation. urns the YYYY-MM-DD datetime of report generation.
loanRef:
title: Loan Reference
type: object
properties:
id:
type: string
description: The id of the object being referred to.
x-stoplight:
id: 8iauxevkpnxyj
dataConnectionId:
type: string
description: The dataConnectionId the object being referred to is associated with.
x-stoplight:
id: vrnhmgrfndjhh
type:
type: string
description: 'The object type data is referring to, e.g. Account.'
x-stoplight:
id: m68yr2mpbnvvq
x-stoplight:
id: pr3pywxqc6jiu
recordRef:
title: Item reference
type: object
properties:
id:
type: string
description: The id of the object being referred to.
dataConnectionId:
type: string
description: The dataConnectionId the object being referred to is associated with.
integrationType:
type: string
enum:
- Accounting
- Banking
- Commerce
description: The integration type begin referred to.
recordRefType:
type: string
enum:
- accounts
- banking-accounts
- commerce-transactions
description: The datatype being referred to.
reportItems:
type: object
properties:
recordRef:
$ref: '#/components/schemas/LoanSummary/definitions/recordRef'
description: Contains object that contains a sumamry of all loan transactions for that integration type.
description:
type: string
description: The description of the object being referred to. E.g. the account.
startDate:
$ref: '#/components/schemas/EnhancedInvoicesReport/definitions/payment/properties/date'
description: The date of the earliest loan transaction.
x-stoplight:
id: v8jngp34fn5w4
totalDrawdowns:
type: number
description: The total loan drawdowns.
totalRepayments:
type: number
description: The total loan repayments which includes capital plus any interest.
balance:
type: number
description: The loan outstanding balance. This may not equal totalDrawdowns - totalRepayments due to interest which has been accrued.
examples:
- reportInfo:
reportName: LoanSummaryReport
companyName: The Coffee shop
generatedDate: '2022-10-23T00:00:00Z'
reportItems:
- recordRef:
id: string
dataConnectionId: DE34E8E3-089F-4DF4-89E9-F7C43618FCAAA
integrationType: Accounting
recordRefType: accounts
description: string
startDate: '2021-01-01'
totalInvestments: 100000
totalRepayments: 83481.72
balance: 42513.18
PagingInfo:
type: object
x-internal: true
properties:
pageNumber:
type: integer
pageSize:
type: integer
totalResults:
type: integer
_links:
$ref: '#/components/schemas/PagingInfo/definitions/links'
definitions:
links:
title: Hal Links
type: object
required:
- self
- current
properties:
self:
$ref: '#/components/schemas/PagingInfo/definitions/halRef'
current:
$ref: '#/components/schemas/PagingInfo/definitions/halRef'
next:
$ref: '#/components/schemas/PagingInfo/definitions/halRef'
previous:
$ref: '#/components/schemas/PagingInfo/definitions/halRef'
examples:
- self:
href: '/companies/{id}/data/{dataType}'
current:
href: '/companies/{id}/data/{dataType}?page=1&pageSize=10'
halRef:
title: Hypertext reference
type: object
properties:
href:
type: string
format: uri-reference
required:
- pageNumber
- pageSize
- totalResults
- _links
examples:
- _links:
pageNumber: 1
pageSize: 10
totalResults: 1
self:
href: '/companies/{id}/data/{dataType}'
current:
href: '/companies/{id}/data/{dataType}?page=1&pageSize=10'
Links:
type: object
x-internal: true
required:
- self
- current
properties:
self:
$ref: '#/components/schemas/HalRef'
current:
$ref: '#/components/schemas/HalRef'
next:
$ref: '#/components/schemas/HalRef'
previous:
$ref: '#/components/schemas/HalRef'
examples:
- self:
href: '/companies/{id}/data/{dataType}'
current:
href: '/companies/{id}/data/{dataType}?page=1&pageSize=10'
HalRef:
title: Hypertext reference
type: object
x-internal: true
properties:
href:
type: string
format: uri-reference
Currency:
title: Currency
x-internal: true
type: string
description: |-
The currency data type in Codat is the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code, e.g. _GBP_.
## Unknown currencies
In line with the ISO 4217 specification, the code _XXX_ is used when the data source does not return a currency for a transaction.
There are only a very small number of edge cases where this currency code is returned by the Codat system.
format: ISO4217
examples:
- GBP
- USD
- EUR
CurrencyRate:
title: Currency rate
type: number
nullable: true
description: |-
Rate to convert the total amount of the payment into the base currency for the company at the time of the payment.
Currency rates in Codat are implemented as the multiple of foreign currency units to each base currency unit.
It is not possible to perform the currency conversion with two or more non-base currencies participating in the transaction. For example, if a company's base currency is USD, and it has a bill issued in EUR, then the bill payment must happen in USD or EUR.
Where the currency rate is provided by the underlying accounting platform, it will be available from Codat with the same precision (up to a maximum of 9 decimal places).
For accounting platforms which do not provide an explicit currency rate, it is calculated as `baseCurrency / foreignCurrency` and will be returned to 9 decimal places.
## Examples with base currency of GBP
| Foreign Currency | Foreign Amount | Currency Rate | Base Currency Amount (GBP) |
| :--------------- | :------------- | :------------ | :------------------------- |
| **USD** | $20 | 0.781 | £15.62 |
| **EUR** | €20 | 0.885 | £17.70 |
| **RUB** | ₽20 | 0.011 | £0.22 |
## Examples with base currency of USD
| Foreign Currency | Foreign Amount | Currency Rate | Base Currency Amount (USD) |
| :--------------- | :------------- | :------------ | :------------------------- |
| **GBP** | £20 | 1.277 | $25.54 |
| **EUR** | €20 | 1.134 | $22.68 |
| **RUB** | ₽20 | 0.015 | $0.30 |
ErrorMessage:
type: object
x-internal: true
properties:
statusCode:
type: integer
service:
type: string
error:
type: string
correlationId:
type: string
canBeRetried:
type: string
detailedErrorCode:
type: integer
parameters:
companyId:
name: companyId
in: path
required: true
schema:
type: string
format: uuid
example: 8a210b68-6988-11ed-a1eb-0242ac120002
description: Unique identifier for your SMB in Codat.
connectionId:
name: connectionId
in: path
required: true
schema:
type: string
format: uuid
example: 2e9d2c44-f675-40ba-8049-353bfcb5e171
description: Unique identifier for a company's data connection.
page:
name: page
in: query
schema:
type: integer
format: int32
minimum: 1
example: 1
default: 1
description: 'Page number. [Read more](https://docs.codat.io/using-the-api/paging).'
pageSize:
name: pageSize
in: query
schema:
type: integer
format: int32
default: 100
example: 100
minimum: 1
maximum: 5000
description: 'Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging).'
query:
name: query
in: query
required: false
schema:
type: string
example: '-modifiedDate'
description: 'Codat query string. [Read more](https://docs.codat.io/using-the-api/querying).'
orderBy:
name: orderBy
in: query
required: false
schema:
type: string
example: '-modifiedDate'
description: 'Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).'
x-stoplight:
id: 4je9lwo02netu
dataIntegrityDataType:
name: dataType
in: path
required: true
schema:
type: string
enum:
- banking-accounts
- banking-transactions
- bankAccounts
- accountTransactions
example: banking-accounts
description: A key for a Codat data type.
reportDate:
name: reportDate
in: query
required: true
schema:
type: string
example: 29-09-2020
description: 'The date in which the report is created up to. Users must specify a specific date, however the response will be provided for the full month.'
periodLength:
name: periodLength
in: query
required: true
schema:
type: integer
description: The number of months per period. E.g. 2 = 2 months per period.
numberOfPeriodsRequired:
name: numberOfPeriods
in: query
required: true
schema:
type: integer
description: The number of periods to return. There will be no pagination as a query parameter.
numberOfPeriods:
name: numberOfPeriods
in: query
required: false
schema:
type: integer
description: 'The number of periods to return. If not provided, 12 periods will be used as the default value.'
periodUnit:
name: periodUnit
in: query
required: true
schema:
type: string
enum:
- Day
- Week
- Month
- Year
description: The period unit of time returned.
includeDisplayNames:
name: includeDisplayNames
in: query
schema:
type: boolean
description: Shows the dimensionDisplayName and itemDisplayName in measures to make the report data human-readable.
excelReportType:
name: reportType
in: query
schema:
type: string
enum:
- assess
- audit
- enhancedFinancials
- enhancedInvoices
- enhancedCashFlow
description: The type of report you want to generate and download.
required: true
responses:
Unauthorized:
description: Your API request was not properly authorized.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
examples:
Unauthorized:
value:
statusCode: 401
service: PublicApi
error: Unauthorized
correlationId: 7eb40d6b415d7bcd99ce658268284056
canBeRetried: Unknown
detailedErrorCode: 0
Malformed-Query:
description: Your `query` parameter was not correctly formed
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
examples:
Malformed query:
value:
statusCode: 400
service: ClientsApi
error: Error parsing query - Malformed query.
correlationId: bc997528a9d7abb9161ef45f05d38599
canBeRetried: Unknown
detailedErrorCode: 0
Not-Found:
description: |-
One or more of the resources you referenced could not be found.
This might be because your company or data connection id is wrong, or was already deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
examples:
Data connection not found:
value:
statusCode: 404
service: PublicApi
error: Data connection a22dd66b-564a-4832-9b37-7b3ce4aeb7de not found
correlationId: 8fa2b5f4794970a4ee73758f612e8df0
canBeRetried: Unknown
detailedErrorCode: 0
Company not found:
value:
statusCode: 404
service: ClientsApi
error: No company was found with ID 846ed55c-974b-4392-a1f1-87b6fdbf3c5e
correlationId: 0a40c2f31fc8f992fb88b0853e4166f3
canBeRetried: Unknown
detailedErrorCode: 0
No data available:
value:
statusCode: 404
service: PublicApi
error: No data available for accounts for ID e5889b459f544926ac5b8e6756df2s
correlationId: 0a40c2f31fc8f992fb88b0853e4166f3
canBeRetried: Unknown
detailedErrorCode: 0
Conflict:
description: The data type's dataset has not been requested or is still syncing.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
examples:
Conflict:
value:
statusCode: 409
service: PublicApi
error: The data set has not been requested.
correlationId: bc997528a9d7abb9161ef45f05d38599
canBeRetried: Unknown
detailedErrorCode: 0
Too-Many-Requests:
description: Too many requests were made in a given amount of time. Wait a short period and then try again.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
examples:
Conflict:
value:
statusCode: 429
service: PublicApi
error: You have made too many requests in a given amount of time; please retry later.
correlationId: bc997528a9d7abb9161ef45f05d38599
canBeRetried: Unknown
detailedErrorCode: 0
securitySchemes:
auth_header:
name: Authorization
description: 'The word "Basic" followed by a space and your API key. [API keys](https://docs.codat.io/accounting-api#/schemas/apiKeys) are tokens used to control access to the API. You can get an API key via [the Codat Portal](https://app.codat.io/developers/api-keys), via [the API](https://docs.codat.io/codat-api#/api-keys/api-keys-list), or [read more](https://docs.codat.io/using-the-api/authentication) about authentication at Codat.'
type: apiKey
in: header
x-speakeasy-example: Basic BASE_64_ENCODED(API_KEY)