From 4ed7710a129c2f3cff008bb075087ee05cabade3 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Wed, 8 Apr 2026 10:24:38 +0000 Subject: [PATCH] ## Csharp SDK Changes: * `Codat.bankFeeds.SourceAccounts.GenerateOtp()`: **Added** --- .speakeasy/logs/changes/changes.html | 29 +- .speakeasy/logs/changes/changes.md | 20 +- .speakeasy/logs/changes/new.openapi.yaml | 13825 +++----------- .speakeasy/logs/changes/old.openapi.yaml | 15319 ++++------------ .speakeasy/workflow.lock | 13 +- bank-feeds/.gitignore | 1 + bank-feeds/.speakeasy/gen.lock | 357 +- bank-feeds/.speakeasy/gen.yaml | 6 +- bank-feeds/Codat/BankFeeds/AccountMapping.cs | 18 +- bank-feeds/Codat/BankFeeds/BankAccounts.cs | 27 +- .../Codat/BankFeeds/Codat.BankFeeds.csproj | 2 +- bank-feeds/Codat/BankFeeds/Companies.cs | 63 +- .../Codat/BankFeeds/CompanyInformation.cs | 9 +- bank-feeds/Codat/BankFeeds/Connections.cs | 45 +- .../Codat/BankFeeds/ManagedBankFeeds.cs | 27 +- .../Models/Operations/GenerateOtpRequest.cs | 28 + .../Models/Operations/GenerateOtpResponse.cs | 39 + .../Models/Shared/GenerateOtpResponse.cs | 50 + bank-feeds/Codat/BankFeeds/SDKConfig.cs | 2 +- bank-feeds/Codat/BankFeeds/SourceAccounts.cs | 278 +- bank-feeds/Codat/BankFeeds/Transactions.cs | 36 +- bank-feeds/Codat/BankFeeds/Utils/Constants.cs | 4 +- .../BankFeeds/Utils/RequestBodySerializer.cs | 25 +- .../Codat/BankFeeds/Utils/Retries/Retries.cs | 35 +- .../Codat/BankFeeds/Utils/SecurityMetadata.cs | 34 +- .../BankFeeds/Utils/SpeakeasyMetadata.cs | 1 + bank-feeds/Codat/BankFeeds/Utils/Utilities.cs | 33 +- bank-feeds/README.md | 1 + bank-feeds/RELEASES.md | 12 +- .../CreateBankTransactionsRequest.md | 16 +- .../Operations/DeleteSourceAccountRequest.md | 10 +- .../Models/Operations/GenerateOtpRequest.md | 9 + .../Models/Operations/GenerateOtpResponse.md | 11 + .../GetCreateBankTransactionsModelRequest.md | 10 +- .../Operations/UpdateSourceAccountRequest.md | 12 +- .../Operations/UpdateSourceAccountResponse.md | 12 +- bank-feeds/docs/Models/Shared/AccountType.md | 8 + .../Models/Shared/AccountingBankAccount.md | 6 +- .../Shared/BankAccountCreateResponse.md | 4 +- ...ountCreateResponseAccountingBankAccount.md | 6 +- ...ankAccountCreateResponseBankAccountType.md | 8 + .../Models/Shared/BankAccountPrototype.md | 2 +- .../docs/Models/Shared/BankAccountStatus.md | 8 + .../docs/Models/Shared/BankAccountType.md | 8 + .../Shared/BankAccountsBankAccountType.md | 8 + .../Models/Shared/BankFeedAccountMapping.md | 2 +- .../docs/Models/Shared/BankFeedMapping.md | 4 +- .../docs/Models/Shared/BankTransactionType.md | 8 + .../docs/Models/Shared/BankTransactions.md | 2 +- .../Models/Shared/ClientRateLimitWebhook.md | 4 +- .../Shared/ClientRateLimitWebhookPayload.md | 2 +- bank-feeds/docs/Models/Shared/Company.md | 4 +- bank-feeds/docs/Models/Shared/Connection.md | 4 +- .../Models/Shared/CreateBankTransactions.md | 8 +- .../Shared/CreateBankTransactionsResponse.md | 4 +- .../docs/Models/Shared/DataConnectionError.md | 4 +- .../Models/Shared/DataConnectionStatus.md | 8 + bank-feeds/docs/Models/Shared/DataType.md | 8 + bank-feeds/docs/Models/Shared/ErrorStatus.md | 8 + .../docs/Models/Shared/GenerateOtpResponse.md | 11 + .../docs/Models/Shared/PushChangeType.md | 8 + .../docs/Models/Shared/PushOperation.md | 4 +- .../docs/Models/Shared/PushOperationStatus.md | 8 + .../docs/Models/Shared/PushOptionType.md | 8 + .../docs/Models/Shared/SourceAccount.md | 6 +- .../Shared/SourceAccountBatchCreateResult.md | 10 +- .../Models/Shared/SourceAccountPrototype.md | 4 +- .../docs/Models/Shared/SourceAccountStatus.md | 8 + .../docs/Models/Shared/SourceAccountV2.md | 4 +- .../Shared/SourceAccountV2AccountType.md | 8 + .../SourceAccountV2BatchCreateResult.md | 10 +- .../Models/Shared/SourceAccountV2Prototype.md | 4 +- .../Models/Shared/SourceAccountWebhook.md | 4 +- bank-feeds/docs/Models/Shared/SourceType.md | 8 + bank-feeds/docs/Models/Shared/Status.md | 8 + bank-feeds/docs/Models/Shared/Type.md | 8 + bank-feeds/docs/sdks/accountmapping/README.md | 31 +- bank-feeds/docs/sdks/bankaccounts/README.md | 431 +- bank-feeds/docs/sdks/companies/README.md | 239 +- bank-feeds/docs/sdks/connections/README.md | 33 +- bank-feeds/docs/sdks/sourceaccounts/README.md | 121 +- bank-feeds/docs/sdks/transactions/README.md | 190 +- 82 files changed, 8751 insertions(+), 22962 deletions(-) create mode 100644 bank-feeds/Codat/BankFeeds/Models/Operations/GenerateOtpRequest.cs create mode 100644 bank-feeds/Codat/BankFeeds/Models/Operations/GenerateOtpResponse.cs create mode 100644 bank-feeds/Codat/BankFeeds/Models/Shared/GenerateOtpResponse.cs create mode 100644 bank-feeds/docs/Models/Operations/GenerateOtpRequest.md create mode 100644 bank-feeds/docs/Models/Operations/GenerateOtpResponse.md create mode 100644 bank-feeds/docs/Models/Shared/GenerateOtpResponse.md diff --git a/.speakeasy/logs/changes/changes.html b/.speakeasy/logs/changes/changes.html index 8de530788..01dc18422 100644 --- a/.speakeasy/logs/changes/changes.html +++ b/.speakeasy/logs/changes/changes.html @@ -98,34 +98,7 @@

Csharp SDK Changes:

\ No newline at end of file diff --git a/.speakeasy/logs/changes/changes.md b/.speakeasy/logs/changes/changes.md index 425e0fafb..db664c663 100644 --- a/.speakeasy/logs/changes/changes.md +++ b/.speakeasy/logs/changes/changes.md @@ -1,20 +1,2 @@ ## Csharp SDK Changes: -* `Codat.sync.expenses.Connections.Create()`: `response.connectionInfo.Map` **Changed** (Breaking ⚠️) -* `Codat.sync.expenses.Companies.List()`: - * `request.Tags` **Added** - * `response.results[].DataConnections[].ConnectionInfo.Map` **Changed** (Breaking ⚠️) -* `Codat.sync.expenses.Companies.Create()`: `response.dataConnections[].ConnectionInfo.Map` **Changed** (Breaking ⚠️) -* `Codat.sync.expenses.Companies.Update()`: - * `request` **Changed** (Breaking ⚠️) - - `companyRequestBody` **Removed** (Breaking ⚠️) - - `companyUpdateRequest` **Added** - * `response.dataConnections[].ConnectionInfo.Map` **Changed** (Breaking ⚠️) -* `Codat.sync.expenses.Companies.Get()`: `response.dataConnections[].ConnectionInfo.Map` **Changed** (Breaking ⚠️) -* `Codat.sync.expenses.Connections.List()`: `response.results[].ConnectionInfo.Map` **Changed** (Breaking ⚠️) -* `Codat.sync.expenses.Connections.Get()`: `response.connectionInfo.Map` **Changed** (Breaking ⚠️) -* `Codat.sync.expenses.Connections.Unlink()`: `response.connectionInfo.Map` **Changed** (Breaking ⚠️) -* `Codat.sync.expenses.Connections.CreatePartnerExpenseConnection()`: `response.connectionInfo.Map` **Changed** (Breaking ⚠️) -* `Codat.sync.expenses.Companies.Replace()`: **Added** -* `Codat.sync.expenses.ManageData.RefreshAllDataTypes()`: `error.status[400]` **Added** -* `Codat.sync.expenses.ManageData.Get()`: `response.accountTransactions.LastSuccessfulSync` **Changed** -* `Codat.sync.expenses.ManageData.RefreshDataType()`: `error.status[400]` **Added** +* `Codat.bankFeeds.SourceAccounts.GenerateOtp()`: **Added** diff --git a/.speakeasy/logs/changes/new.openapi.yaml b/.speakeasy/logs/changes/new.openapi.yaml index 2b0ee26d6..c568c2101 100644 --- a/.speakeasy/logs/changes/new.openapi.yaml +++ b/.speakeasy/logs/changes/new.openapi.yaml @@ -1,21 +1,19 @@ openapi: 3.1.0 +servers: + - description: Production + url: 'https://api.codat.io' info: - title: Expenses - version: prealpha + title: Bank Feeds + version: 3.0.0 contact: + email: support@codat.io name: Codat - url: 'https://www.codat.io/' - email: expenses@codat.io description: |- - The API for Codat's Expenses solution. - - Expenses is an API and a set of supporting tools. It has been built to - enable corporate card and expense management platforms to provide high-quality - integrations with multiple accounting software through a standardized API. + Bank Feeds solution enables your SMB users to set up bank feeds from accounts in your application to supported accounting software. - [Explore solution](https://docs.codat.io/sync-for-expenses/overview) | [See our OpenAPI spec](https://github.com/codatio/oas) + A bank feed is a connection between a source bank account in your application and a target bank account in a supported accounting software. - Not seeing the endpoints you're expecting? We've [reorganized our solutions](https://docs.codat.io/updates/230901-new-products), and you may be using a [different version of Expenses](https://docs.codat.io/sync-for-expenses-v1-api#/). + [Explore solution](https://docs.codat.io/bank-feeds-api/overview) | [See OpenAPI spec](https://github.com/codatio/oas) --- @@ -25,18 +23,10 @@ info: | :- |:- | | Companies | Create and manage your SMB users' companies. | | Connections | Create new and manage existing data connections for a company. | - | Configuration | View and manage mapping configuration and defaults for expense transactions. | - | Sync | Monitor the status of data syncs. | - | Expenses | Create and update transactions that represent your customers' spend. | - | Transfers | Create and update transactions that represent the movement of your customers' money. | - | Reimbursements | Create and update transactions that represent your customers' repayable spend. | - | Attachments | Attach receipts to a transaction for a complete audit trail. | - | Transaction status | Monitor the status of individual transactions in data syncs. | - | Manage data | Control and monitor the retrieval of data from an integration. | - | Push operations | View historic push operations. | - | Accounts | Create accounts and view account schemas. | - | Customers | Get, create, and update customers. | - | Suppliers | Get, create, and update suppliers. | + | Source accounts | Provide and manage lists of source bank accounts. | + | Account mapping | Extra functionality for building an account management UI. | + | Company information | Get detailed information about a company from the underlying platform. | + | Transactions | Create new bank account transactions for a company's connections, and see previous operations. | termsOfService: 'https://www.codat.io/legals/' security: @@ -78,7 +68,7 @@ x-speakeasy-name-override: methodNameOverride: download-attachment - operationId: ^upload-.*?-attachment methodNameOverride: upload-attachment -x-codat-docs-path: sync-for-expenses-api +x-codat-docs-path: bank-feeds-api x-codat-keep-docs-paths-local: true x-codat-speakeasy-pagination: type: offsetLimit @@ -93,42 +83,103 @@ tags: description: Create and manage your SMB users' companies. - name: Connections description: Create new and manage existing data connections for a company. - - name: Company info - description: View the company information of your customers' linked accounting software. - - name: Manage data - description: Control and monitor the retrieval of data from an integration. - - name: Mapping options - description: 'Get accounts, trackingCategories and taxRates that can be used in your create and update requests.' - - name: Accounts - description: Create accounts and view create account options. - name: Bank accounts - description: Create bank accounts and view create bank account options. - - name: Customers - description: 'Get, create, and update customers.' - - name: Suppliers - description: 'Get, create, and update suppliers.' - - name: Push operations - description: View historic push operations. - - name: Configuration - description: View and manage mapping configuration and defaults for expense transactions. - - name: Expenses - description: Create and update transactions that represent your customers' spend. - - name: Reimbursements - description: Create and update transactions that represent your customers' repayable spend. - - name: Transfers - description: Create and update transactions that represent the movement of your customers' money. - - name: Adjustments - description: Create transactions that represent your adjustments to your customers' spend. - - name: Attachments - description: Attach receipts to a transaction for a complete audit trail. - - name: Sync - description: Monitor the status of data syncs. - - name: Transaction status - description: Monitor the status of individual transactions in data syncs. -servers: - - url: 'https://api.codat.io' + description: Access bank accounts in an SMBs accounting software. + - name: Source accounts + description: Provide and manage lists of source bank accounts. + - name: Account mapping + description: Extra functionality for building an account management UI. + - name: Transactions + description: 'Create new bank account transactions for a company''s connections, and see previous operations.' + - name: Company information + description: Get detailed information about a company from the underlying accounting software. + - name: Managed bank feeds + description: Manage bank feed syncs for source accounts. paths: /companies: + post: + summary: Create company + tags: + - Companies + operationId: create-company + responses: + '200': + description: OK + content: + application/json: + x-speakeasy-usage-example: true + schema: + $ref: '#/components/schemas/Company' + examples: + With no description: + value: + id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 + name: Technicalium + description: '' + platform: '' + redirect: 'https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0' + dataConnections: [] + created: '2022-11-10T10:45:18.1950523Z' + createdByUserName: Dan Tzabar + products: + - spend-insights + referenceSubsidiaryCompanies: [] + With a description: + value: + id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 + name: Technicalium + description: 'Technology services, including web and app design and development' + platform: '' + redirect: 'https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0' + dataConnections: [] + created: '2022-11-10T10:45:18.1950523Z' + createdByUserName: Dan Tzabar + products: + - spend-insights + referenceSubsidiaryCompanies: [] + With a tag: + value: + id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 + name: Technicalium + description: '' + platform: '' + redirect: 'https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0' + dataConnections: [] + created: '2022-11-10T10:45:18.1950523Z' + createdByUserName: Dan Tzabar + products: + - spend-insights + tags: + region: us + referenceSubsidiaryCompanies: [] + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + description: "\uFEFFUse the *Create company* endpoint to create a new [company](https://docs.codat.io/bank-feeds-api#/schemas/Company) that represents your customer in Codat. \n\nA [company](https://docs.codat.io/bank-feeds-api#/schemas/Company) represents a business sharing access to their data.\nEach company can have multiple [connections](https://docs.codat.io/bank-feeds-api#/schemas/Connection) to different data sources, such as one connection to Xero for accounting data, two connections to Plaid for two bank accounts, and a connection to Zettle for POS data.\n\nIf forbidden characters (see `name` pattern) are present in the request, a company will be created with the forbidden characters removed. For example, `Company (Codat[1])` with be created as `Company Codat1`." + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CompanyRequestBody' + examples: + With no description: + value: + name: Technicalium + With a description: + value: + name: Technicalium + description: 'Technology services, including web and app design and development' get: summary: List companies tags: @@ -296,7 +347,7 @@ paths: '503': $ref: '#/components/responses/Service-Unavailable' operationId: list-companies - description: "\uFEFFThe *List companies* endpoint returns a list of [companies](https://docs.codat.io/sync-for-expenses-api#/schemas/Company) associated to your instances.\n\nA [company](https://docs.codat.io/sync-for-expenses-api#/schemas/Company) represents a business sharing access to their data.\nEach company can have multiple [connections](https://docs.codat.io/sync-for-expenses-api#/schemas/Connection) to different data sources, such as one connection to Xero for accounting data, two connections to Plaid for two bank accounts, and a connection to Zettle for POS data.\n\n## Filter by tags\n\nThe *List companies* endpoint supports the filtering of companies using [tags](https://docs.codat.io/using-the-api/managing-companies#add-metadata-to-a-company). It supports the following operators with [Codat’s query language](https://docs.codat.io/using-the-api/querying):\n\n- equals (`=`)\n- not equals (`!=`)\n- contains (`~`)\n\nFor example, you can use the querying to filter companies tagged with a specific foreign key, region, or owning team: \n- Foreign key: `uid = {yourCustomerId}`\n- Region: `region != uk`\n- Owning team and region: `region = uk && owningTeam = invoice-finance`" + description: "\uFEFFThe *List companies* endpoint returns a list of [companies](https://docs.codat.io/bank-feeds-api#/schemas/Company) associated to your instances.\n\nA [company](https://docs.codat.io/bank-feeds-api#/schemas/Company) represents a business sharing access to their data.\nEach company can have multiple [connections](https://docs.codat.io/bank-feeds-api#/schemas/Connection) to different data sources, such as one connection to Xero for accounting data, two connections to Plaid for two bank accounts, and a connection to Zettle for POS data.\n\n## Filter by tags\n\nThe *List companies* endpoint supports the filtering of companies using [tags](https://docs.codat.io/using-the-api/managing-companies#add-metadata-to-a-company). It supports the following operators with [Codat’s query language](https://docs.codat.io/using-the-api/querying):\n\n- equals (`=`)\n- not equals (`!=`)\n- contains (`~`)\n\nFor example, you can use the querying to filter companies tagged with a specific foreign key, region, or owning team: \n- Foreign key: `uid = {yourCustomerId}`\n- Region: `region != uk`\n- Owning team and region: `region = uk && owningTeam = invoice-finance`" parameters: - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/pageSize' @@ -308,93 +359,136 @@ paths: type: string example: region=uk && team=invoice-finance description: 'Filter companies by tags using the "equals" (=), "not equals" (!=), and "contains" (~) operators with [Codat’s query language](https://docs.codat.io/using-the-api/querying).' - post: - summary: Create company + '/companies/{companyId}': + get: + summary: Get company + operationId: get-company + description: "\uFEFFThe *Get company* endpoint returns a single company for a given `companyId`.\n\nA [company](https://docs.codat.io/bank-feeds-api#/schemas/Company) represents a business sharing access to their data.\nEach company can have multiple [connections](https://docs.codat.io/bank-feeds-api#/schemas/Connection) to different data sources, such as one connection to Xero for accounting data, two connections to Plaid for two bank accounts, and a connection to Zettle for POS data.\n" + parameters: + - $ref: '#/components/parameters/companyId' tags: - Companies - operationId: create-company responses: '200': description: OK content: application/json: - x-speakeasy-usage-example: true schema: $ref: '#/components/schemas/Company' examples: - With no description: + Simple company: value: id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 - name: Technicalium + name: Toft stores holdings description: '' platform: '' redirect: 'https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0' dataConnections: [] - created: '2022-11-10T10:45:18.1950523Z' + created: '2022-11-10T10:45:18Z' createdByUserName: Dan Tzabar products: - spend-insights + - lending + - expenses-v1 + - commerce referenceSubsidiaryCompanies: [] - With a description: + Parent multi-entity company: value: id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 - name: Technicalium - description: 'Technology services, including web and app design and development' + name: Toft stores + description: '' platform: '' redirect: 'https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0' dataConnections: [] - created: '2022-11-10T10:45:18.1950523Z' + created: '2022-11-10T10:45:18Z' createdByUserName: Dan Tzabar products: - spend-insights - referenceSubsidiaryCompanies: [] - With a tag: + - lending + - expenses-v1 + - commerce + referenceSubsidiaryCompanies: + - id: c8d3af58-7011-47ce-b3f2-89faf300ef6d + name: Toft stores UK + links: + portal: 'https://app.codat.io/companies/c8d3af58-7011-47ce-b3f2-89faf300ef6d/summary' + - id: db94eddc-9212-4568-9b5c-3eab0e325913 + name: Toft stores US + links: + portal: 'https://app.codat.io/companies/db94eddc-9212-4568-9b5c-3eab0e325913/summary' + Subsidiary multi-entity company: value: - id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 - name: Technicalium + id: c8d3af58-7011-47ce-b3f2-89faf300ef6d + name: Toft stores UK description: '' platform: '' - redirect: 'https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0' - dataConnections: [] - created: '2022-11-10T10:45:18.1950523Z' + redirect: 'https://link.codat.io/company/c8d3af58-7011-47ce-b3f2-89faf300ef6d' + dataConnections: + - id: d5ab61b7-1ad0-46fd-9f9f-b6761047941e + integrationId: cc750323-5a47-4f28-8d8e-30fbbf2ce137 + integrationKey: akxx + sourceId: 9815b998-024d-4415-a40b-89903b2cad6f + platformName: Oracle NetSuite + linkUrl: 'https://link-api.codat.io/companies/c8d3af58-7011-47ce-b3f2-89faf300ef6d/connections/d5ab61b7-1ad0-46fd-9f9f-b6761047941e/start' + status: Linked + lastSync: '2022-01-01T12:30:00.000Z' + created: '2022-01-01T11:30:00Z' + sourceType: Accounting + created: '2022-11-10T10:45:18Z' createdByUserName: Dan Tzabar products: - spend-insights - tags: - region: us + - lending + - expenses-v1 + - commerce + referenceParentCompany: + id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 + name: Toft stores + links: + portal: 'https://app.codat.io/companies/ab12c58d-a678-4ebf-a159-ae99e1807bd0/summary' referenceSubsidiaryCompanies: [] - '400': - $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '402': $ref: '#/components/responses/Payment-Required' '403': $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + delete: + summary: Delete a company + operationId: delete-company + parameters: + - $ref: '#/components/parameters/companyId' + description: "\uFEFFThe *Delete company* endpoint permanently deletes a [company](https://docs.codat.io/bank-feeds-api#/schemas/Company), its [connections](https://docs.codat.io/bank-feeds-api#/schemas/Connection) and any cached data. This operation is irreversible.\n\nA [company](https://docs.codat.io/bank-feeds-api#/schemas/Company) represents a business sharing access to their data.\nEach company can have multiple [connections](https://docs.codat.io/bank-feeds-api#/schemas/Connection) to different data sources, such as one connection to Xero for accounting data, two connections to Plaid for two bank accounts, and a connection to Zettle for POS data.\n" + tags: + - Companies + responses: + '204': + description: No Content + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' - description: "\uFEFFUse the *Create company* endpoint to create a new [company](https://docs.codat.io/sync-for-expenses-api#/schemas/Company) that represents your customer in Codat. \n\nA [company](https://docs.codat.io/sync-for-expenses-api#/schemas/Company) represents a business sharing access to their data.\nEach company can have multiple [connections](https://docs.codat.io/sync-for-expenses-api#/schemas/Connection) to different data sources, such as one connection to Xero for accounting data, two connections to Plaid for two bank accounts, and a connection to Zettle for POS data.\n\nIf forbidden characters (see `name` pattern) are present in the request, a company will be created with the forbidden characters removed. For example, `Company (Codat[1])` with be created as `Company Codat1`." - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CompanyRequestBody' - examples: - With no description: - value: - name: Technicalium - With a description: - value: - name: Technicalium - description: 'Technology services, including web and app design and development' - '/companies/{companyId}': put: summary: Replace company - description: "\uFEFFUse the *Replace company* endpoint to replace the existing name, description, and tags of the company. Calling the endpoint will replace existing values even if new values haven't been defined in the payload.\n\nA [company](https://docs.codat.io/sync-for-expenses-api#/schemas/Company) represents a business sharing access to their data.\nEach company can have multiple [connections](https://docs.codat.io/sync-for-expenses-api#/schemas/Connection) to different data sources, such as one connection to Xero for accounting data, two connections to Plaid for two bank accounts, and a connection to Zettle for POS data." + description: "\uFEFFUse the *Replace company* endpoint to replace the existing name, description, and tags of the company. Calling the endpoint will replace existing values even if new values haven't been defined in the payload.\n\nA [company](https://docs.codat.io/bank-feeds-api#/schemas/Company) represents a business sharing access to their data.\nEach company can have multiple [connections](https://docs.codat.io/bank-feeds-api#/schemas/Connection) to different data sources, such as one connection to Xero for accounting data, two connections to Plaid for two bank accounts, and a connection to Zettle for POS data." operationId: replace-company x-speakeasy-name-override: replace parameters: @@ -437,7 +531,7 @@ paths: description: Additional documents required patch: summary: Update company - description: "\uFEFFUse the *Update company* endpoint to update the name, description, or tags of the company.\n\nThe *Update company* endpoint doesn't have any required fields. If any of the fields provided are `null` or not provided, they won't be included in the update. \n\nA [company](https://docs.codat.io/sync-for-expenses-api#/schemas/Company) represents a business sharing access to their data." + description: "\uFEFFUse the *Update company* endpoint to update the name, description, or tags of the company.\n\nThe *Update company* endpoint doesn't have any required fields. If any of the fields provided are `null` or not provided, they won't be included in the update. \n\nA [company](https://docs.codat.io/bank-feeds-api#/schemas/Company) represents a business sharing access to their data." operationId: update-company parameters: - $ref: '#/components/parameters/companyId' @@ -477,17 +571,32 @@ paths: Update name: value: name: New Name - delete: - summary: Delete a company - operationId: delete-company + '/companies/{companyId}/accessToken': + get: + summary: Get company access token + operationId: get-company-access-token + x-speakeasy-name-override: get-access-token + description: |- + Use the _Get company access token_ endpoint to return an access token for the specified company ID. The token is valid for one day. + + The token is required by Codat's embeddable UIs (such as [Connections SDK](https://docs.codat.io/auth-flow/optimize/connection-management) and [Link SDK](https://docs.codat.io/auth-flow/authorize-embedded-link)) to verify the identity of the user and improve the reliability of data provided by them. parameters: - $ref: '#/components/parameters/companyId' - description: "\uFEFFThe *Delete company* endpoint permanently deletes a [company](https://docs.codat.io/sync-for-expenses-api#/schemas/Company), its [connections](https://docs.codat.io/sync-for-expenses-api#/schemas/Connection) and any cached data. This operation is irreversible.\n\nA [company](https://docs.codat.io/sync-for-expenses-api#/schemas/Company) represents a business sharing access to their data.\nEach company can have multiple [connections](https://docs.codat.io/sync-for-expenses-api#/schemas/Connection) to different data sources, such as one connection to Xero for accounting data, two connections to Plaid for two bank accounts, and a connection to Zettle for POS data.\n" tags: - Companies responses: - '204': - description: No Content + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/CompanyAccessToken' + examples: + Simple company: + value: + expiresIn: 86400 + accessToken: string + tokenType: Bearer '401': $ref: '#/components/responses/Unauthorized' '402': @@ -502,129 +611,28 @@ paths: $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/connections': get: - summary: Get company - operationId: get-company - description: "\uFEFFThe *Get company* endpoint returns a single company for a given `companyId`.\n\nA [company](https://docs.codat.io/sync-for-expenses-api#/schemas/Company) represents a business sharing access to their data.\nEach company can have multiple [connections](https://docs.codat.io/sync-for-expenses-api#/schemas/Connection) to different data sources, such as one connection to Xero for accounting data, two connections to Plaid for two bank accounts, and a connection to Zettle for POS data.\n" + summary: List connections + description: "\uFEFFList the connections for a company." + operationId: list-connections + tags: + - Connections parameters: - $ref: '#/components/parameters/companyId' - tags: - - Companies + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/pageSize' + - $ref: '#/components/parameters/query' + - $ref: '#/components/parameters/orderBy' responses: '200': description: OK content: application/json: schema: - $ref: '#/components/schemas/Company' + $ref: '#/components/schemas/Connections' examples: - Simple company: - value: - id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 - name: Toft stores holdings - description: '' - platform: '' - redirect: 'https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0' - dataConnections: [] - created: '2022-11-10T10:45:18Z' - createdByUserName: Dan Tzabar - products: - - spend-insights - - lending - - expenses-v1 - - commerce - referenceSubsidiaryCompanies: [] - Parent multi-entity company: - value: - id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 - name: Toft stores - description: '' - platform: '' - redirect: 'https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0' - dataConnections: [] - created: '2022-11-10T10:45:18Z' - createdByUserName: Dan Tzabar - products: - - spend-insights - - lending - - expenses-v1 - - commerce - referenceSubsidiaryCompanies: - - id: c8d3af58-7011-47ce-b3f2-89faf300ef6d - name: Toft stores UK - links: - portal: 'https://app.codat.io/companies/c8d3af58-7011-47ce-b3f2-89faf300ef6d/summary' - - id: db94eddc-9212-4568-9b5c-3eab0e325913 - name: Toft stores US - links: - portal: 'https://app.codat.io/companies/db94eddc-9212-4568-9b5c-3eab0e325913/summary' - Subsidiary multi-entity company: - value: - id: c8d3af58-7011-47ce-b3f2-89faf300ef6d - name: Toft stores UK - description: '' - platform: '' - redirect: 'https://link.codat.io/company/c8d3af58-7011-47ce-b3f2-89faf300ef6d' - dataConnections: - - id: d5ab61b7-1ad0-46fd-9f9f-b6761047941e - integrationId: cc750323-5a47-4f28-8d8e-30fbbf2ce137 - integrationKey: akxx - sourceId: 9815b998-024d-4415-a40b-89903b2cad6f - platformName: Oracle NetSuite - linkUrl: 'https://link-api.codat.io/companies/c8d3af58-7011-47ce-b3f2-89faf300ef6d/connections/d5ab61b7-1ad0-46fd-9f9f-b6761047941e/start' - status: Linked - lastSync: '2022-01-01T12:30:00.000Z' - created: '2022-01-01T11:30:00Z' - sourceType: Accounting - created: '2022-11-10T10:45:18Z' - createdByUserName: Dan Tzabar - products: - - spend-insights - - lending - - expenses-v1 - - commerce - referenceParentCompany: - id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 - name: Toft stores - links: - portal: 'https://app.codat.io/companies/ab12c58d-a678-4ebf-a159-ae99e1807bd0/summary' - referenceSubsidiaryCompanies: [] - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - '/companies/{companyId}/connections': - get: - summary: List connections - description: "\uFEFFList the connections for a company." - operationId: list-connections - tags: - - Connections - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/pageSize' - - $ref: '#/components/parameters/query' - - $ref: '#/components/parameters/orderBy' - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/Connections' - examples: - Connections: + Connections: value: results: - id: ee2eb431-c0fa-4dc9-93fa-d29781c12bcd @@ -839,26 +847,441 @@ paths: value: status: Unlinked description: '' - '/companies/{companyId}/sync/expenses/connections/partnerExpense': - post: + '/companies/{companyId}/connections/{connectionId}/data/bankAccounts': + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + get: + x-internal: true tags: - - Connections - description: Creates a partner expense data connection - summary: Create partner expense connection - operationId: create-partner-expense-connection - x-speakeasy-name-override: create-partner-expense-connection + - Bank accounts + summary: List bank accounts + operationId: list-bank-accounts parameters: - - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/pageSize' + - $ref: '#/components/parameters/query' + - $ref: '#/components/parameters/orderBy' responses: '200': description: Success content: application/json: schema: - $ref: '#/components/schemas/Connection' - examples: {} + $ref: '#/components/schemas/BankAccounts' + examples: + Dynamics 365 Business Central: + value: + results: + - id: c9a41bc7-6e5b-ed11-8c34-0022481b8b5b + accountName: '55' + accountType: Unknown + nominalCode: '10500' + sortCode: '' + accountNumber: '' + iBan: '' + currency: GBP + balance: -352.03 + modifiedDate: '2023-03-27T14:21:10Z' + sourceModifiedDate: '2023-02-07T00:00:00' + overdraftLimit: 0 + metadata: + isDeleted: false + - id: 47020f80-60e6-ec11-82f8-0022481a77f0 + accountName: '555' + accountType: Unknown + nominalCode: '40300' + sortCode: '' + accountNumber: '' + iBan: '' + currency: PLN + balance: 661.79 + modifiedDate: '2023-03-27T14:21:10Z' + sourceModifiedDate: '2022-06-07T00:00:00' + overdraftLimit: 0 + metadata: + isDeleted: false + pageNumber: 1 + pageSize: 2 + totalResults: 28 + _links: + current: + href: /companies/d6849caf-c146-41be-8335-b73346e3bd84/connections/60acb117-5cf5-4745-b069-491551da4066/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/d6849caf-c146-41be-8335-b73346e3bd84/connections/60acb117-5cf5-4745-b069-491551da4066/data/bankAccounts + next: + href: /companies/d6849caf-c146-41be-8335-b73346e3bd84/connections/60acb117-5cf5-4745-b069-491551da4066/data/bankAccounts?page=2&pageSize=2 + FreeAgent: + value: + results: + - id: '738783' + accountName: \w3fw + accountType: Debit + sortCode: '236972' + accountNumber: A06268209 + currency: GBP + balance: -10484.65 + availableBalance: -10484.65 + modifiedDate: '2023-04-25T14:19:12Z' + metadata: + isDeleted: false + - id: '738778' + accountName: 2e2bna45hy\ + accountType: Debit + sortCode: '236972' + accountNumber: D01825250 + currency: GBP + balance: -114.4 + availableBalance: -114.4 + modifiedDate: '2023-04-25T14:19:12Z' + metadata: + isDeleted: false + pageNumber: 1 + pageSize: 2 + totalResults: 82 + _links: + current: + href: /companies/071ad738-68f3-4561-afd0-69bab9df0803/connections/4fd7c69f-ecc1-45f5-83f2-42ed3391e386/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/071ad738-68f3-4561-afd0-69bab9df0803/connections/4fd7c69f-ecc1-45f5-83f2-42ed3391e386/data/bankAccounts + next: + href: /companies/071ad738-68f3-4561-afd0-69bab9df0803/connections/4fd7c69f-ecc1-45f5-83f2-42ed3391e386/data/bankAccounts?page=2&pageSize=2 + KashFlow: + value: + results: + - id: '765768' + accountName: 16th Account + accountType: Unknown + nominalCode: '70700' + currency: GBP + balance: 326 + availableBalance: 326 + modifiedDate: '2022-09-30T10:29:16Z' + - id: '765766' + accountName: 1a1a + accountType: Unknown + nominalCode: '70600' + currency: GBP + balance: 0 + availableBalance: 0 + modifiedDate: '2022-09-30T10:29:16Z' + pageNumber: 1 + pageSize: 2 + totalResults: 56 + _links: + current: + href: /companies/3a707a99-89da-4b16-a5d6-595333a16352/connections/ecab4f64-1a04-4c53-a343-bfd879f41f67/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/3a707a99-89da-4b16-a5d6-595333a16352/connections/ecab4f64-1a04-4c53-a343-bfd879f41f67/data/bankAccounts + next: + href: /companies/3a707a99-89da-4b16-a5d6-595333a16352/connections/ecab4f64-1a04-4c53-a343-bfd879f41f67/data/bankAccounts?page=2&pageSize=2 + Oracle NetSuite: + value: + results: + - id: '825' + accountName: Codat Europe Bank + accountType: Debit + nominalCode: '111111122222111' + currency: GBP + balance: 558.22 + modifiedDate: '2023-05-02T13:24:36Z' + sourceModifiedDate: '2022-07-15T11:34:02' + metadata: + isDeleted: false + - id: '826' + accountName: Codat Europe Bank USD + accountType: Debit + nominalCode: '1133221133' + currency: USD + modifiedDate: '2023-05-02T13:24:36Z' + sourceModifiedDate: '2021-03-26T10:31:40' + metadata: + isDeleted: false + pageNumber: 1 + pageSize: 2 + totalResults: 4 + _links: + current: + href: /companies/d5074b08-6a34-4b06-a742-236edf5dc4f1/connections/79f8313e-210a-4dc8-b69f-ba7e5004dda7/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/d5074b08-6a34-4b06-a742-236edf5dc4f1/connections/79f8313e-210a-4dc8-b69f-ba7e5004dda7/data/bankAccounts + next: + href: /companies/d5074b08-6a34-4b06-a742-236edf5dc4f1/connections/79f8313e-210a-4dc8-b69f-ba7e5004dda7/data/bankAccounts?page=2&pageSize=2 + QuickBooks Desktop: + value: + results: + - id: 20000-933270541 + accountName: Checking + accountType: Unknown + nominalCode: '10100' + currency: GBP + balance: 46954.1 + availableBalance: 46954.1 + modifiedDate: '2023-04-26T09:12:37Z' + sourceModifiedDate: '2023-12-16T05:06:45' + metadata: + isDeleted: false + - id: 550001-1071509830 + accountName: Petty Cash + accountType: Unknown + nominalCode: '10400' + currency: GBP + balance: 500 + availableBalance: 500 + modifiedDate: '2023-04-26T09:12:37Z' + sourceModifiedDate: '2023-12-16T05:06:45' + metadata: + isDeleted: false + pageNumber: 1 + pageSize: 2 + totalResults: 3 + _links: + current: + href: /companies/fc72ba08-af13-4474-b28a-01dcfa6cfb51/connections/2c26b4da-97d4-4ba9-baad-1e18b49b96ac/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/fc72ba08-af13-4474-b28a-01dcfa6cfb51/connections/2c26b4da-97d4-4ba9-baad-1e18b49b96ac/data/bankAccounts + next: + href: /companies/fc72ba08-af13-4474-b28a-01dcfa6cfb51/connections/2c26b4da-97d4-4ba9-baad-1e18b49b96ac/data/bankAccounts?page=2&pageSize=2 + QuickBooks Online Sandbox: + value: + results: + - id: '164' + accountName: '00' + accountType: Debit + nominalCode: '123567' + currency: GBP + balance: 0 + availableBalance: 0 + modifiedDate: '2023-04-26T09:35:57Z' + sourceModifiedDate: '2022-07-20T14:11:28Z' + metadata: + isDeleted: false + - id: '163' + accountName: '11' + accountType: Debit + currency: GBP + balance: 0 + availableBalance: 0 + modifiedDate: '2023-04-26T09:35:57Z' + sourceModifiedDate: '2022-07-20T14:11:28Z' + metadata: + isDeleted: false + pageNumber: 1 + pageSize: 2 + totalResults: 57 + _links: + current: + href: /companies/5a7f3597-36e1-4216-86fe-289ad36088a6/connections/1f9f6013-f8a5-4278-8a47-3ab7fdb6c24c/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/5a7f3597-36e1-4216-86fe-289ad36088a6/connections/1f9f6013-f8a5-4278-8a47-3ab7fdb6c24c/data/bankAccounts + next: + href: /companies/5a7f3597-36e1-4216-86fe-289ad36088a6/connections/1f9f6013-f8a5-4278-8a47-3ab7fdb6c24c/data/bankAccounts?page=2&pageSize=2 + QuickBooks Online: + value: + results: + - id: '202' + accountName: \aa + accountType: Debit + currency: GBP + balance: 123 + availableBalance: 123 + modifiedDate: '2023-01-18T11:02:37Z' + sourceModifiedDate: '2022-11-11T14:15:13Z' + - id: '193' + accountName: 1 year ago + accountType: Debit + currency: GBP + balance: 5300.02 + availableBalance: 5300.02 + modifiedDate: '2023-01-18T11:02:37Z' + sourceModifiedDate: '2023-01-18T06:05:12Z' + pageNumber: 1 + pageSize: 2 + totalResults: 140 + _links: + current: + href: /companies/10818b5e-6e6a-4ed4-a1c5-3e3efe626e87/connections/9e28a776-f4be-425b-8a3d-ad49956de2c9/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/10818b5e-6e6a-4ed4-a1c5-3e3efe626e87/connections/9e28a776-f4be-425b-8a3d-ad49956de2c9/data/bankAccounts + next: + href: /companies/10818b5e-6e6a-4ed4-a1c5-3e3efe626e87/connections/9e28a776-f4be-425b-8a3d-ad49956de2c9/data/bankAccounts?page=2&pageSize=2 + Sage 50 (UK): + value: + results: + - id: '1200' + accountName: Bank Current Account + accountType: Unknown + nominalCode: '1200' + sortCode: 23-34-34 + accountNumber: '003234234' + iBan: '' + currency: GBP + balance: -20091.04 + availableBalance: -20091.04 + modifiedDate: '2023-03-30T14:42:37Z' + sourceModifiedDate: '2022-11-25T09:25:48' + overdraftLimit: 120000 + institution: Lloyds Bank PLC + metadata: + isDeleted: false + - id: '1210' + accountName: Bank Deposit Account + accountType: Unknown + nominalCode: '1210' + sortCode: 45-45-45 + accountNumber: 9/00474345 + iBan: '' + currency: GBP + balance: 3510 + availableBalance: 3510 + modifiedDate: '2023-03-30T14:42:37Z' + sourceModifiedDate: '2022-11-25T09:25:48' + overdraftLimit: 0 + institution: Halifax Building Society + metadata: + isDeleted: false + pageNumber: 1 + pageSize: 2 + totalResults: 6 + _links: + current: + href: /companies/cf5f2a47-2990-4221-bae6-0c19c86ac304/connections/8ee4910f-4fc1-47e6-89b1-5931fb33d8f7/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/cf5f2a47-2990-4221-bae6-0c19c86ac304/connections/8ee4910f-4fc1-47e6-89b1-5931fb33d8f7/data/bankAccounts + next: + href: /companies/cf5f2a47-2990-4221-bae6-0c19c86ac304/connections/8ee4910f-4fc1-47e6-89b1-5931fb33d8f7/data/bankAccounts?page=2&pageSize=2 + Sage Business Cloud Accounting: + value: + results: + - id: 154d05abe9f24c4babe0f6a741dec1b9 + accountName: Abdi Internet Bank + accountType: Unknown + nominalCode: '1560' + sortCode: '010101' + accountNumber: '11111' + currency: GBP + balance: 49.61 + availableBalance: 49.61 + modifiedDate: '2022-10-24T14:52:53Z' + sourceModifiedDate: '2020-01-27T10:53:26Z' + - id: 565ce07212bc492c8c2d04f43f9f67e3 + accountName: Abdi Live Test + accountType: Unknown + nominalCode: '147852' + sortCode: '123456' + accountNumber: '1234567' + currency: GBP + balance: -225830.75 + availableBalance: -225830.75 + modifiedDate: '2022-10-24T14:52:53Z' + sourceModifiedDate: '2020-01-28T14:00:20Z' + pageNumber: 1 + pageSize: 2 + totalResults: 45 + _links: + current: + href: /companies/390083e2-351b-407c-a3be-55081c36c182/connections/37916fb7-b4b8-4a78-8872-1751e20ee0cd/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/390083e2-351b-407c-a3be-55081c36c182/connections/37916fb7-b4b8-4a78-8872-1751e20ee0cd/data/bankAccounts + next: + href: /companies/390083e2-351b-407c-a3be-55081c36c182/connections/37916fb7-b4b8-4a78-8872-1751e20ee0cd/data/bankAccounts?page=2&pageSize=2 + Sage Intacct: + value: + results: + - id: 'CREDITCARD:55' + accountName: CoT Credit Card + accountType: Credit + nominalCode: '10021' + currency: GBP + modifiedDate: '2023-04-04T16:31:46Z' + sourceModifiedDate: '2023-03-27T14:11:48' + metadata: + isDeleted: false + - id: 'CREDITCARD:58' + accountName: Cot Credit Card 2 + accountType: Credit + nominalCode: '11112' + currency: GBP + modifiedDate: '2023-04-04T16:31:46Z' + sourceModifiedDate: '2023-03-27T14:15:11' + metadata: + isDeleted: false + pageNumber: 1 + pageSize: 2 + totalResults: 14 + _links: + current: + href: /companies/df02b289-cb16-4964-ac4d-9fd60b04538e/connections/8f457d9c-1142-4241-a07e-71d1ee2e3052/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/df02b289-cb16-4964-ac4d-9fd60b04538e/connections/8f457d9c-1142-4241-a07e-71d1ee2e3052/data/bankAccounts + next: + href: /companies/df02b289-cb16-4964-ac4d-9fd60b04538e/connections/8f457d9c-1142-4241-a07e-71d1ee2e3052/data/bankAccounts?page=2&pageSize=2 + Xero: + value: + results: + - id: bd9e85e0-0478-433d-ae9f-0b3c4f04bfe4 + accountName: Business Bank Account + accountType: Debit + sortCode: '990404' + accountNumber: '987654321' + currency: GBP + balance: 6681.79 + modifiedDate: '2023-03-15T20:36:09Z' + sourceModifiedDate: '2023-03-15T20:35:07' + metadata: + isDeleted: false + - id: a8d6fb1a-8c5d-4683-90ce-bf9d28fc62ba + accountName: Business Savings Account + accountType: Debit + sortCode: '890303' + accountNumber: '876543210' + currency: GBP + balance: 0 + modifiedDate: '2023-03-15T20:36:09Z' + sourceModifiedDate: '2023-03-15T20:36:06' + metadata: + isDeleted: false + pageNumber: 1 + pageSize: 2 + totalResults: 2 + _links: + current: + href: /companies/5ced9667-a310-443a-a711-958d36377141/connections/6a4bcf97-e46a-465c-abf6-c42cec8e48c0/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/5ced9667-a310-443a-a711-958d36377141/connections/6a4bcf97-e46a-465c-abf6-c42cec8e48c0/data/bankAccounts + Zoho Books: + value: + results: + - id: '104957000000060010' + accountName: Abdi Test + accountType: Unknown + sortCode: '112233' + accountNumber: xxxx5678 + currency: GBP + balance: 69858.44 + modifiedDate: '2022-10-03T08:40:38Z' + institution: Test Bank + - id: '104957000000065002' + accountName: Abdi Test 2 + accountType: Unknown + sortCode: '' + accountNumber: '' + currency: AED + balance: 98.03 + modifiedDate: '2022-10-03T08:40:38Z' + institution: '' + pageNumber: 1 + pageSize: 2 + totalResults: 4 + _links: + current: + href: /companies/d0b68840-db50-4bc3-b88c-96e225333fea/connections/a2324b8e-60e9-451d-8eb1-0fdc8e8224df/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/d0b68840-db50-4bc3-b88c-96e225333fea/connections/a2324b8e-60e9-451d-8eb1-0fdc8e8224df/data/bankAccounts + next: + href: /companies/d0b68840-db50-4bc3-b88c-96e225333fea/connections/a2324b8e-60e9-451d-8eb1-0fdc8e8224df/data/bankAccounts?page=2&pageSize=2 '400': - $ref: '#/components/responses/BadRequest' + $ref: '#/components/responses/Malformed-Query' '401': $ref: '#/components/responses/Unauthorized' '402': @@ -867,5067 +1290,28 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' + '409': + $ref: '#/components/responses/Conflict' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' - '/companies/{companyId}/data/info': - get: - tags: - - Company info - summary: Get company info - description: Gets the latest basic info for a company. - operationId: get-company-info - parameters: - - $ref: '#/components/parameters/companyId' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/CompanyInformation' - examples: - Example 1: - value: - companyName: Codat - accountingPlatformRef: 1700060034_ETD - companyLegalName: Codat Ltd - addresses: - - type: Billing - line1: 301 Ink Rooms - line2: 28 Easton Street - city: London - region: England - country: United Kingdom - postalCode: WC1X 0BE - - type: Delivery - line1: 28 Easton Street - city: London - country: UK - postalCode: WC1X 0BE - phoneNumbers: - - number: 02012 345678 - type: Landline - - number: 07123 456789 - type: Mobile - - number: 02012 345678 - type: Fax - webLinks: - - type: Website - url: 'https://www.codat.io/' - - type: Social - url: 'https://www.linkedin.com/company/codat-limited/' - registrationNumber: '5590111724' - taxNumber: '74111622555799035846' - financialYearStartDate: '2023-04-01T00:00:00' - baseCurrency: GBP - sourceUrls: - Api: 'https://api.codat.io' - createdDate: '2020-03-09T15:19:26' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '409': - $ref: '#/components/responses/Conflict' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - '/companies/{companyId}/sync/expenses/config': - get: - tags: - - Configuration - parameters: - - $ref: '#/components/parameters/companyId' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/CompanyConfiguration' - examples: {} - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - summary: Get company configuration - description: Gets a company's expense sync configuration - operationId: get-company-configuration - post: - tags: - - Configuration - parameters: - - $ref: '#/components/parameters/companyId' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CompanyConfiguration' - examples: {} - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/CompanyConfiguration' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - summary: Set company configuration - description: Sets a company's expense sync configuration - operationId: set-company-configuration - x-speakeasy-name-override: set - parameters: - - $ref: '#/components/parameters/companyId' - '/companies/{companyId}/sync/expenses/mappingOptions': - get: - tags: - - Mapping options - parameters: - - $ref: '#/components/parameters/companyId' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/MappingOptions' - examples: {} - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - description: 'Gets the mapping options (accounts, trackingCategories and taxRates) for a company''s accounting software' - summary: Mapping options - operationId: get-mapping-options - x-speakeasy-name-override: get-mapping-options - parameters: - - $ref: '#/components/parameters/companyId' - '/companies/{companyId}/sync/expenses/syncs/lastSuccessful/status': - get: - tags: - - Sync - parameters: - - $ref: '#/components/parameters/companyId' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/CompanySyncStatus' - examples: {} - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - description: Gets the status of the last successful sync - summary: Last successful sync - operationId: get-last-successful-sync - x-speakeasy-name-override: get-last-successful-sync - parameters: - - $ref: '#/components/parameters/companyId' - '/companies/{companyId}/sync/expenses/syncs/latest/status': - get: - tags: - - Sync - parameters: - - $ref: '#/components/parameters/companyId' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/CompanySyncStatus' - examples: {} - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - description: Gets the latest sync status - summary: Latest sync status - operationId: get-latest-sync - x-speakeasy-name-override: get-latest-sync - parameters: - - $ref: '#/components/parameters/companyId' - '/companies/{companyId}/sync/expenses/syncs/list/status': - parameters: - - $ref: '#/components/parameters/companyId' - get: - tags: - - Sync - responses: - '200': - description: Success - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/CompanySyncStatus' - examples: {} - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - summary: List sync statuses - description: Gets a list of sync statuses - operationId: list-syncs - '/companies/{companyId}/sync/expenses/syncs/{syncId}/status': - get: - tags: - - Sync - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/syncId' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/CompanySyncStatus' - examples: {} - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - summary: Get sync status - description: Get the sync status for a specified sync - operationId: get-sync-by-id - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/syncId' - '/companies/{companyId}/sync/expenses/syncs/{syncId}/transactions': - get: - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/syncId' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/pageSize' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/Transactions' - examples: {} - '400': - $ref: '#/components/responses/Malformed-Query' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - tags: - - Transaction status - summary: List sync transactions - description: Gets the transactions and status for a sync - operationId: list-sync-transactions - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/syncId' - '/companies/{companyId}/sync/expenses/syncs/{syncId}/transactions/{transactionId}': - get: - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/syncId' - - $ref: '#/components/parameters/transactionId' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/TransactionResponse' - examples: {} - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - tags: - - Transaction status - summary: Get sync transaction - description: Gets the status of a transaction for a sync - operationId: get-sync-transaction - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/syncId' - - $ref: '#/components/parameters/transactionId' - '/companies/{companyId}/sync/expenses/expense-transactions': - parameters: - - $ref: '#/components/parameters/companyId' - post: - summary: Create expense transaction - operationId: create-expense-transaction - description: | - The *Create expense* endpoint creates an [expense transaction](https://docs.codat.io/sync-for-expenses-api#/schemas/ExpenseTransaction) in the accounting software for a given company's connection. - - [Expense transactions](https://docs.codat.io/sync-for-expenses-api#/schemas/ExpenseTransaction) represent transactions made with a company debit or credit card. - - ### Supported Integrations - - | Integration | Supported | - |-------------------------------|-----------| - | Dynamics 365 Business Central | Yes | - | FreeAgent | Yes | - | QuickBooks Desktop | Yes | - | QuickBooks Online | Yes | - | Oracle NetSuite | Yes | - | Sage Intacct | Yes | - | Xero | Yes | - | Zoho Books | Yes | - tags: - - Expenses - responses: - '200': - description: OK - content: - application/json: - x-speakeasy-usage-example: true - schema: - $ref: '#/components/schemas/CreateExpenseResponse' - examples: - Example 1: - value: - syncId: cd937d46-8e41-43a9-9477-a79158ffd98a - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateExpenseRequest' - examples: - Payment: - value: - - id: 4d7c6929-7770-412b-91bb-44d3bc71d111 - type: Payment - issueDate: '2024-05-21T00:00:00+00:00' - currency: GBP - currencyRate: 1 - contactRef: - id: '430' - type: Supplier - bankAccountRef: - id: '97' - merchantName: Amazon UK - notes: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - lines: - - netAmount: 100 - taxAmount: 20 - taxRateRef: - id: 23_Bills - accountRef: - id: '35' - trackingRefs: - - id: DEPARTMENT_5 - dataType: trackingCategories - invoiceTo: - id: '504' - type: customer - Refund: - value: - - id: 7008d3f2-aeb4-11ed-afa1-0242ac120002 - type: Refund - issueDate: '2024-02-17T00:00:00+00:00' - currency: GBP - contactRef: - id: '430' - type: Supplier - bankAccountRef: - id: '97' - merchantName: Amazon UK - notes: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - lines: - - netAmount: 100 - taxAmount: 20 - taxRateRef: - id: 23_Bills - accountRef: - id: '42' - trackingRefs: - - id: DEPARTMENT_6 - '/companies/{companyId}/sync/expenses/expense-transactions/{transactionId}': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/transactionId' - put: - summary: Update expense transactions - tags: - - Expenses - responses: - '202': - description: Accepted - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateExpenseResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '422': - $ref: '#/components/responses/Unprocessable-Content' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - operationId: update-expense-transaction - description: |- - The *Update expense* endpoint updates an existing [expense transaction](https://docs.codat.io/sync-for-expenses-api#/schemas/UpdateExpenseRequest) in the accounting software for a given company's connection. - - [Expense transactions](https://docs.codat.io/sync-for-expenses-api#/schemas/UpdateExpenseRequest) represent transactions made with a company debit or credit card. - - ### Supported integrations - The following integrations are supported for the [Payment](https://docs.codat.io/expenses/sync-process/expense-transactions#transaction-types) transaction `type` only: - | Integration | Supported | - |-----------------------|-----------| - | FreeAgent | Yes | - | QuickBooks Desktop | Yes | - | QuickBooks Online | Yes | - | Oracle NetSuite | Yes | - | Sage Intacct | Yes | - | Xero | Yes | - | Zoho Books | Yes | - - #### Integration-specific behavior - - | Integration | Specifics | - |-----------------------|-----------| - | Sage Intacct | To sync **debit card expenses**, map the debit card to a Credit Card with the account type set to `Debit`.| - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateExpenseRequest' - examples: - Payment: - value: - type: Payment - issueDate: '2024-05-21T00:00:00+00:00' - currency: GBP - currencyRate: 1 - contactRef: - id: '430' - type: Supplier - bankAccountRef: - id: '97' - merchantName: Amazon UK - notes: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - lines: - - netAmount: 100 - taxAmount: 20 - taxRateRef: - id: 23_Bills - accountRef: - id: '35' - trackingRefs: - - id: DEPARTMENT_5 - dataType: trackingCategories - invoiceTo: - id: '504' - type: customer - '/companies/{companyId}/sync/expenses/transfer-transactions/{transactionId}': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/transactionId' - put: - summary: Create transfer transaction - operationId: create-transfer-transaction - description: "Use the *Create transfer* endpoint to create or update a [transfer transaction](https://docs.codat.io/sync-for-expenses-api#/schemas/TransferTransactionRequest) in the accounting software for a given company's connection. \r\n\r\nTransfers record the movement of money between two bank accounts, or between a bank account and a nominal account. Use them to represent actions such as topping up a debit card account or a balance transfer to another credit card.\r\n\r\nThe `from.amount` and `to.amount` fields are in the native currency of the account.\r\n\r\n### Supported Integrations\r\n| Integration | Create transfer | Update transfer |\r\n|-----------------------|------------------|------------------|\r\n| Dynamics\t\t\t\t| No\t\t\t | No\t\t\t\t |\r\n| FreeAgent | Yes | Yes |\r\n| NetSuite | No | No |\r\n| QuickBooks Desktop | Yes | No |\r\n| QuickBooks Online | Yes | Yes |\r\n| Sage Intacct | No | No |\r\n| Xero | Yes | No |\r\n| Zoho Books | No | No |" - tags: - - Transfers - responses: - '200': - description: OK - content: - application/json: - x-speakeasy-usage-example: true - schema: - $ref: '#/components/schemas/TransferTransactionResponse' - examples: - Example 1: - value: - syncId: cd937d46-8e41-43a9-9477-a79158ffd98a - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferTransactionRequest' - examples: - Create transfer: - value: - description: Sample transfer description - date: '2021-05-21T00:00:00+00:00' - from: - accountRef: - id: 787dfb37-5707-4dc0-8a86-8d74e4cc78ea - amount: 100 - to: - accountRef: - id: 777dfb37-5506-3dc0-6g86-8d34z4cc78ea - amount: 100 - '/companies/{companyId}/sync/expenses/adjustment-transactions': - parameters: - - $ref: '#/components/parameters/companyId' - post: - summary: Create adjustment transaction - operationId: create-adjustment-transaction - description: |- - Use the *Create adjustment expense* endpoint to create an [adjustment](https://docs.codat.io/sync-for-expenses-api#/schemas/AdjustmentTransactionRequest) in the accounting software for a given company's connection. - - Adjustments represent write-offs and transaction alterations, such as foreign exchange adjustments, in the form of a journal entry. - - ### Supported Integrations - - | Integration | Supported | - |-----------------------|-----------| - | QuickBooks Desktop | Yes | - tags: - - Adjustments - responses: - '200': - description: OK - content: - application/json: - x-speakeasy-usage-example: true - schema: - $ref: '#/components/schemas/AdjustmentTransactionResponse' - examples: - Example 1: - value: - syncId: cd937d46-8e41-43a9-9477-a79158ffd98a - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateAdjustmentRequest' - examples: - Create adjustment: - value: - - id: 3357b3df-5f2e-465d-b9ba-226519dbb8f1 - date: '2024-05-21T00:00:00+00:00' - currency: USD - currencyRate: 1 - reference: test reference - lines: - - amount: 50 - accountRef: - id: 80000018-1671793811 - description: debit line - trackingRefs: - - id: 80000003-1674553958 - dataType: trackingCategories - invoiceTo: - id: 80000002-1674552702 - type: customer - - amount: -50 - accountRef: - id: 80000028-1671794219 - description: credit line - trackingRefs: - - id: 80000003-1674553958 - dataType: trackingCategories - '/companies/{companyId}/sync/expenses/reimbursable-expense-transactions': - parameters: - - $ref: '#/components/parameters/companyId' - post: - summary: Create reimbursable expense transaction - operationId: create-reimbursable-expense-transaction - description: "Use the *Create reimbursable expense* endpoint to submit an employee expense claim in the accounting platform for a given company's connection.\r\n\r\n[Reimbursable expense requests](https://docs.codat.io/sync-for-expenses-api#/schemas/ReimbursableExpenseTransactionRequest) are reflected in the accounting software in the form of **Bills** against an employee (who exists as a supplier in the accounting platform).\r\n\r\n### Supported Integrations\r\n| Integration | Supported |\r\n|-----------------------|-----------|\r\n| FreeAgent | Yes |\r\n| QuickBooks Desktop | Yes |\r\n| QuickBooks Online | Yes |\r\n| Oracle NetSuite | Yes |\r\n| Zoho Books | Yes |\r\n| Sage Intacct | Yes |" - tags: - - Reimbursements - responses: - '200': - description: OK - content: - application/json: - x-speakeasy-usage-example: true - schema: - $ref: '#/components/schemas/CreateReimbursableExpenseResponse' - examples: - Example 1: - value: - syncId: cd937d46-8e41-43a9-9477-a79158ffd98a - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReimbursableExpenseTransactionRequest' - examples: - Create reimbursable expense: - value: - - id: 4d7c6929-7770-412b-91bb-44d3bc71d111 - reference: expenses w/c 01/07 - contactRef: - id: '752' - issueDate: '2024-05-21' - dueDate: '2024-05-21' - currency: GBP - currencyRate: 1 - notes: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - lines: - - description: Hotel - netAmount: 100 - taxAmount: 20 - taxRateRef: - id: 23_Bills - accountRef: - id: '35' - trackingRefs: - - id: DEPARTMENT_5 - dataType: trackingCategories - invoiceTo: - id: '504' - type: customer - '/companies/{companyId}/sync/expenses/reimbursable-expense-transactions/{transactionId}': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/transactionId' - put: - summary: Update reimbursable expense transaction - operationId: update-reimbursable-expense-transaction - description: "The *Update reimbursable expense* endpoint updates an existing employee expense claim in the accounting platform for a given company's connection. \r\n\r\nUpdating an existing [reimbursable expense transaction](https://docs.codat.io/sync-for-expenses-api#/schemas/UpdateReimbursableExpenseTransactionRequest) will update the existing **bill** against an employee (who exists as a supplier in the accounting software).\r\n\r\n### Supported Integrations\r\n| Integration | Supported |\r\n|-----------------------|-----------|\r\n| FreeAgent | Yes |\r\n| QuickBooks Online | Yes |\r\n| Oracle NetSuite | Yes |\r\n| Zoho Books | Yes |\r\n\r\n" - tags: - - Reimbursements - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/CreateReimbursableExpenseResponse' - examples: - Example 1: - value: - syncId: cd937d46-8e41-43a9-9477-a79158ffd98a - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateReimbursableExpenseTransactionRequest' - examples: - Update reimbursable expense: - value: - reference: expenses w/c 01/07 - contactRef: - id: '752' - issueDate: '2024-05-21' - dueDate: '2024-05-21' - currency: GBP - currencyRate: 1 - notes: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - lines: - - description: Hotel - netAmount: 100 - taxAmount: 20 - taxRateRef: - id: 23_Bills - accountRef: - id: '35' - trackingRefs: - - id: DEPARTMENT_5 - dataType: trackingCategories - invoiceTo: - id: '504' - type: customer - '/companies/{companyId}/sync/expenses/syncs/{syncId}/transactions/{transactionId}/attachments': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/syncId' - - $ref: '#/components/parameters/transactionId' - post: - summary: Upload attachment - operationId: upload-expense-attachment - x-speakeasy-name-override: upload - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/Attachment' - examples: {} - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - requestBody: - content: - multipart/form-data: - schema: - $ref: '#/components/schemas/AttachmentUpload' - tags: - - Attachments - description: |- - The *Upload attachment* endpoint uploads an attachment in the accounting software against the given transactionId. - - [Expense transactions](https://docs.codat.io/sync-for-expenses-api#/schemas/ExpenseTransaction) represent transactions made with a company debit or credit card. Attachments for `Adjustment` and `Transfer` transaction types are not supported for any integrations. - - **Integration-specific behavior** - - Each accounting software supports different file formats and sizes. - - | Integration | File size | File extension | Supported transactions | - |-----------------------------------|-----------|-------------------------------------------------------|------------------------| - | **Xero** | 3 MB | 7Z, BMP, CSV, DOC, DOCX, EML, GIF, JPEG, JPG, KEYNOTE, MSG, NUMBERS, ODF, ODS, ODT, PAGES, PDF, PNG, PPT, PPTX, RAR, RTF, TIF, TIFF, TXT, XLS, XLSX, ZIP | All supported types | - | **QuickBooks Online** | 100 MB | AI, CSV, DOC, DOCX, EPS, GIF, JPEG, JPG, ODS, PAGES, PDF, PNG, RTF, TIF, TXT, XLS, XLSX, XML | `expense-transactions.Payment`, `expense-transactions.Refund`, `reimbursable-expense-transactions` | - | **NetSuite** | 100 MB | BMP, CSV, XLS, XLSX, JSON, PDF, PJPG, PJPEG, PNG, TXT, SVG, TIF, TIFF, DOC, DOCX, ZIP |`expense-transactions.Payment`, `expense-transactions.Refund` | - | **Dynamics 365 Business Central** | 350 MB | [No explicit requirements outlined](https://learn.microsoft.com/en-gb/dynamics365/business-central/ui-how-add-link-to-record#to-attach-a-file-to-a-purchase-invoice) for text, image, and video files. | All supported types - | **QuickBooks Desktop** | NA | Does not support attachment upload | N/A | - | **FreeAgent** | 5MB | PNG, X-PNG, JPEG, PJG, GIF, X-PDF | `expense-transactions.Payment`, `reimbursable-expense-transactions` - | **Zoho Books** | 5MB | GIF, PNG, JPEG, JPG, BMP, PDF | `expense-transactions.Payment`, `reimbursable-expense-transactions` | - '/companies/{companyId}/data/all': - parameters: - - $ref: '#/components/parameters/companyId' - post: - summary: Refresh all data - operationId: refresh-all-data-types - responses: - '204': - description: No Content - '400': - $ref: '#/components/responses/Malformed-Query' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - description: |- - Refreshes all data types with `fetch on first link` set to `true` for a given company. - - This is an asynchronous operation, and will bring updated data into Codat from the linked integration for you to view. - - [Read more](https://docs.codat.io/core-concepts/data-type-settings) about data type settings and `fetch on first link`. - tags: - - Manage data - '/companies/{companyId}/dataStatus': - parameters: - - $ref: '#/components/parameters/companyId' - get: - summary: Get data status - operationId: get-data-status - description: Get the state of each data type for a company - tags: - - Manage data - responses: - '200': - description: OK - content: - application/json: - schema: - title: Data statuses - x-internal: true - type: object - properties: - accountTransactions: - $ref: '#/components/schemas/DataStatus' - nullable: true - balanceSheet: - $ref: '#/components/schemas/DataStatus' - nullable: true - bankAccounts: - $ref: '#/components/schemas/DataStatus' - nullable: true - bankTransactions: - $ref: '#/components/schemas/DataStatus' - nullable: true - billCreditNotes: - $ref: '#/components/schemas/DataStatus' - nullable: true - billPayments: - $ref: '#/components/schemas/DataStatus' - nullable: true - bills: - $ref: '#/components/schemas/DataStatus' - nullable: true - cashFlowStatement: - $ref: '#/components/schemas/DataStatus' - nullable: true - chartOfAccounts: - $ref: '#/components/schemas/DataStatus' - nullable: true - company: - $ref: '#/components/schemas/DataStatus' - nullable: true - creditNotes: - $ref: '#/components/schemas/DataStatus' - nullable: true - customers: - $ref: '#/components/schemas/DataStatus' - nullable: true - directCosts: - $ref: '#/components/schemas/DataStatus' - nullable: true - directIncomes: - $ref: '#/components/schemas/DataStatus' - nullable: true - invoices: - $ref: '#/components/schemas/DataStatus' - nullable: true - itemReceipts: - $ref: '#/components/schemas/DataStatus' - nullable: true - items: - $ref: '#/components/schemas/DataStatus' - nullable: true - journalEntries: - $ref: '#/components/schemas/DataStatus' - nullable: true - journals: - $ref: '#/components/schemas/DataStatus' - nullable: true - paymentMethods: - $ref: '#/components/schemas/DataStatus' - nullable: true - payments: - $ref: '#/components/schemas/DataStatus' - nullable: true - profitAndLoss: - $ref: '#/components/schemas/DataStatus' - nullable: true - purchaseOrders: - $ref: '#/components/schemas/DataStatus' - nullable: true - salesOrders: - $ref: '#/components/schemas/DataStatus' - nullable: true - suppliers: - $ref: '#/components/schemas/DataStatus' - nullable: true - taxRates: - $ref: '#/components/schemas/DataStatus' - nullable: true - trackingCategories: - $ref: '#/components/schemas/DataStatus' - nullable: true - transfers: - $ref: '#/components/schemas/DataStatus' - nullable: true - banking-accountBalances: - $ref: '#/components/schemas/DataStatus' - nullable: true - banking-accounts: - $ref: '#/components/schemas/DataStatus' - nullable: true - banking-transactionCategories: - $ref: '#/components/schemas/DataStatus' - nullable: true - banking-transactions: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-companyInfo: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-customers: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-disputes: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-locations: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-orders: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-paymentMethods: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-payments: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-productCategories: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-products: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-taxComponents: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-transactions: - $ref: '#/components/schemas/DataStatus' - nullable: true - examples: - Example: - value: - accountTransactions: - dataType: accountTransactions - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - balanceSheet: - dataType: balanceSheet - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - bankAccounts: - dataType: bankAccounts - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - bankTransactions: - dataType: bankTransactions - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - billCreditNotes: - dataType: billCreditNotes - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - billPayments: - dataType: billPayments - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - bills: - dataType: bills - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - cashFlowStatement: - dataType: cashFlowStatement - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - chartOfAccounts: - dataType: chartOfAccounts - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - company: - dataType: company - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - creditNotes: - dataType: creditNotes - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - customers: - dataType: customers - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - directCosts: - dataType: directCosts - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - directIncomes: - dataType: directIncomes - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - invoices: - dataType: invoices - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - itemReceipts: - dataType: itemReceipts - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - items: - dataType: items - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - journalEntries: - dataType: journalEntries - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - journals: - dataType: journals - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - paymentMethods: - dataType: paymentMethods - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - payments: - dataType: payments - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - profitAndLoss: - dataType: profitAndLoss - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - purchaseOrders: - dataType: purchaseOrders - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - salesOrders: - dataType: salesOrders - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - suppliers: - dataType: suppliers - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - taxRates: - dataType: taxRates - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - trackingCategories: - dataType: trackingCategories - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - transfers: - dataType: transfers - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - banking-accountBalances: - dataType: banking-accountBalances - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - banking-accounts: - dataType: banking-accounts - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - banking-transactionCategories: - dataType: banking-transactionCategories - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - banking-transactions: - dataType: banking-transactions - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-companyInfo: - dataType: commerce-companyInfo - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-customers: - dataType: commerce-customers - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-disputes: - dataType: commerce-disputes - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-locations: - dataType: commerce-locations - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-orders: - dataType: commerce-orders - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-paymentMethods: - dataType: commerce-paymentMethods - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-payments: - dataType: commerce-payments - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-productCategories: - dataType: commerce-productCategories - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-products: - dataType: commerce-products - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-taxComponents: - dataType: commerce-taxComponents - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-transactions: - dataType: commerce-transactions - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - '/companies/{companyId}/data/queue/{dataType}': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/dataType' - post: - summary: Refresh data type - operationId: refresh-data-type - description: |- - Refreshes a given data type for a given company. - - This is an asynchronous operation, and will bring updated data into Codat from the linked integration for you to view. - tags: - - Manage data - parameters: - - schema: - type: string - format: uuid - in: query - name: connectionId - description: 'Optionally, provide a data connection id to only queue pull operations on that connection.' - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/PullOperation' - '400': - $ref: '#/components/responses/Malformed-Query' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - '/companies/{companyId}/data/history': - parameters: - - $ref: '#/components/parameters/companyId' - get: - summary: List pull operations - tags: - - Manage data - operationId: list-pull-operations - x-speakeasy-name-override: list-pull-operations - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/PullOperations' - examples: - Example: - value: - results: - - id: 97d60846-f07a-4d42-b5a0-0bdcc6ebf56b - companyId: 4645bd78-8988-45bc-ac9e-67ba5df6e4e5 - connectionId: 51baa045-4836-4317-a42e-3542e991e581 - dataType: invoices - status: Initial - requested: '2022-11-14T11:18:37.2798351Z' - progress: 10 - isCompleted: false - isErrored: false - _links: - current: - href: /companies/17129e41-5389-4f10-ac06-e0a37e47d177/data/history?page=1&pageSize=2 - self: - href: /companies/17129e41-5389-4f10-ac06-e0a37e47d177/data/history - next: - href: /companies/17129e41-5389-4f10-ac06-e0a37e47d177/data/history?page=2&pageSize=2 - pageNumber: 0 - pageSize: 0 - totalResults: 0 - '400': - $ref: '#/components/responses/Malformed-Query' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - description: Gets the pull operation history (datasets) for a given company. - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/pageSize' - - $ref: '#/components/parameters/query' - - $ref: '#/components/parameters/orderBy' - '/companies/{companyId}/data/history/{datasetId}': - parameters: - - $ref: '#/components/parameters/companyId' - - name: datasetId - in: path - required: true - schema: - type: string - format: uuid - description: Unique identifier for the dataset that completed its sync. - description: Unique identifier for the dataset that completed its sync. - get: - summary: Get pull operation - operationId: get-pull-operation - x-speakeasy-name-override: get-pull-operation - tags: - - Manage data - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/PullOperation' - examples: {} - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - description: Retrieve information about a single dataset or pull operation. - '/companies/{companyId}/push': - parameters: - - $ref: '#/components/parameters/companyId' - get: - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/pageSize' - - $ref: '#/components/parameters/query' - - $ref: '#/components/parameters/orderBy' - summary: List push operations - tags: - - Push operations - operationId: list-push-operations - description: List push operation records. - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/PushOperations' - examples: {} - '400': - $ref: '#/components/responses/Malformed-Query' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - '/companies/{companyId}/push/{pushOperationKey}': - parameters: - - $ref: '#/components/parameters/companyId' - - schema: - type: string - format: uuid - name: pushOperationKey - in: path - required: true - description: Push operation key. - get: - summary: Get push operation - tags: - - Push operations - operationId: get-push-operation - description: Retrieve push operation. - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/PushOperation' - examples: {} - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - '/companies/{companyId}/connections/{connectionId}/push/accounts': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/connectionId' - post: - tags: - - Accounts - summary: Create account - parameters: - - $ref: '#/components/parameters/timeoutInMinutes' - - $ref: '#/components/parameters/allowSyncOnPushComplete' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Account/definitions/accountPrototype' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/CreateAccountResponse' - examples: {} - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - description: |- - The *Create account* endpoint creates a new [account](https://docs.codat.io/sync-for-expenses-api#/schemas/Account) for a given company's connection. - - [Accounts](https://docs.codat.io/sync-for-expenses-api#/schemas/Account) are the categories a business uses to record accounting transactions. - - **Integration-specific behavior** - - Required data may vary by integration. To see what data to post, first call [Get create account model](https://docs.codat.io/sync-for-expenses-api#/operations/get-create-chartOfAccounts-model). - operationId: create-account - '/companies/{companyId}/connections/{connectionId}/options/chartOfAccounts': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/connectionId' - get: - summary: Get create account model - tags: - - Accounts - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/PushOption' - examples: - Exact (Netherlands): - value: - type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions - properties: - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: true - validation: - warnings: [] - information: - - field: NominalCode - details: Must be provided. - name: - type: String - displayName: Name - description: Name of the account - required: true - validation: - warnings: [] - information: - - field: Name - details: Must be provided. - fullyQualifiedCategory: - type: String - displayName: Fully Qualified Category - description: The full category of the account e.g. Liability.Current or Income.Revenue - options: - - value: Asset.Assets.Cash - type: String - displayName: Asset.Assets.Cash - required: false - - value: Asset.Assets.Bank - type: String - displayName: Asset.Assets.Bank - required: false - - value: Asset.Assets.PaymentServices - type: String - displayName: Asset.Assets.PaymentServices - required: false - - value: Asset.Assets.AccountsReceivable - type: String - displayName: Asset.Assets.AccountsReceivable - required: false - - value: Liability.EquityAndLiabilities.AccountsPayable - type: String - displayName: Liability.EquityAndLiabilities.AccountsPayable - required: false - - value: Asset.Assets.VAT - type: String - displayName: Asset.Assets.VAT - required: false - - value: Liability.EquityAndLiabilities.EmployeesPayable - type: String - displayName: Liability.EquityAndLiabilities.EmployeesPayable - required: false - - value: Asset.Assets.PrepaidExpenses - type: String - displayName: Asset.Assets.PrepaidExpenses - required: false - - value: Liability.EquityAndLiabilities.AccruedExpenses - type: String - displayName: Liability.EquityAndLiabilities.AccruedExpenses - required: false - - value: Liability.EquityAndLiabilities.IncomeTaxesPayable - type: String - displayName: Liability.EquityAndLiabilities.IncomeTaxesPayable - required: false - - value: Asset.Assets.FixedAssets - type: String - displayName: Asset.Assets.FixedAssets - required: false - - value: Asset.Assets.OtherAssets - type: String - displayName: Asset.Assets.OtherAssets - required: false - - value: Asset.Assets.AccumulatedDeprecation - type: String - displayName: Asset.Assets.AccumulatedDeprecation - required: false - - value: Asset.Assets.Inventory - type: String - displayName: Asset.Assets.Inventory - required: false - - value: Equity.EquityAndLiabilities.CapitalStock - type: String - displayName: Equity.EquityAndLiabilities.CapitalStock - required: false - - value: Equity.EquityAndLiabilities.RetainedEarnings - type: String - displayName: Equity.EquityAndLiabilities.RetainedEarnings - required: false - - value: Liability.EquityAndLiabilities.LongTermDebt - type: String - displayName: Liability.EquityAndLiabilities.LongTermDebt - required: false - - value: Liability.EquityAndLiabilities.CurrentPortionOfDebt - type: String - displayName: Liability.EquityAndLiabilities.CurrentPortionOfDebt - required: false - - value: Unknown.EquityAndLiabilities.Intercompany - type: String - displayName: Unknown.EquityAndLiabilities.Intercompany - required: false - - value: Unknown.General.General - type: String - displayName: Unknown.General.General - required: false - - value: Income.NetIncome.Revenue - type: String - displayName: Income.NetIncome.Revenue - required: false - - value: Expense.NetIncome.CostOfGoods - type: String - displayName: Expense.NetIncome.CostOfGoods - required: false - - value: Expense.NetIncome.OtherCosts - type: String - displayName: Expense.NetIncome.OtherCosts - required: false - - value: Expense.NetIncome.SalesGeneralAdministrativeExpenses - type: String - displayName: Expense.NetIncome.SalesGeneralAdministrativeExpenses - required: false - - value: Expense.NetIncome.DeprecationCosts - type: String - displayName: Expense.NetIncome.DeprecationCosts - required: false - - value: Expense.NetIncome.ResearchAndDevelopment - type: String - displayName: Expense.NetIncome.ResearchAndDevelopment - required: false - - value: Expense.NetIncome.EmployeeCosts - type: String - displayName: Expense.NetIncome.EmployeeCosts - required: false - - value: Expense.NetIncome.EmploymentCosts - type: String - displayName: Expense.NetIncome.EmploymentCosts - required: false - - value: Expense.ExceptionalIncome.ExceptionalCosts - type: String - displayName: Expense.ExceptionalIncome.ExceptionalCosts - required: false - - value: Income.ExceptionalIncome.ExceptionalIncome - type: String - displayName: Income.ExceptionalIncome.ExceptionalIncome - required: false - - value: Expense.ExceptionalIncome.IncomeTaxes - type: String - displayName: Expense.ExceptionalIncome.IncomeTaxes - required: false - - value: Income.ExceptionalIncome.InterestIncome - type: String - displayName: Income.ExceptionalIncome.InterestIncome - required: false - required: true - validation: - warnings: [] - information: - - field: FullyQualifiedCategory - details: Must be provided. - status: - type: String - displayName: Account Status - description: The status of the account - options: - - value: Active - type: String - displayName: Active - required: false - - value: Pending - type: String - displayName: Pending - required: false - - value: Unknown - type: String - displayName: Unknown - required: false - required: true - validation: - warnings: [] - information: - - field: Status - details: Must be provided. - required: true - Exact (UK): - value: - type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions - properties: - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: true - validation: - warnings: [] - information: - - field: NominalCode - details: Must be provided. - name: - type: String - displayName: Name - description: Name of the account - required: true - validation: - warnings: [] - information: - - field: Name - details: Must be provided. - fullyQualifiedCategory: - type: String - displayName: Fully Qualified Category - description: The full category of the account e.g. Liability.Current or Income.Revenue - options: - - value: Asset.Assets.Cash - type: String - displayName: Asset.Assets.Cash - required: false - - value: Asset.Assets.Bank - type: String - displayName: Asset.Assets.Bank - required: false - - value: Asset.Assets.PaymentServices - type: String - displayName: Asset.Assets.PaymentServices - required: false - - value: Asset.Assets.AccountsReceivable - type: String - displayName: Asset.Assets.AccountsReceivable - required: false - - value: Liability.EquityAndLiabilities.AccountsPayable - type: String - displayName: Liability.EquityAndLiabilities.AccountsPayable - required: false - - value: Asset.Assets.VAT - type: String - displayName: Asset.Assets.VAT - required: false - - value: Liability.EquityAndLiabilities.EmployeesPayable - type: String - displayName: Liability.EquityAndLiabilities.EmployeesPayable - required: false - - value: Asset.Assets.PrepaidExpenses - type: String - displayName: Asset.Assets.PrepaidExpenses - required: false - - value: Liability.EquityAndLiabilities.AccruedExpenses - type: String - displayName: Liability.EquityAndLiabilities.AccruedExpenses - required: false - - value: Liability.EquityAndLiabilities.IncomeTaxesPayable - type: String - displayName: Liability.EquityAndLiabilities.IncomeTaxesPayable - required: false - - value: Asset.Assets.FixedAssets - type: String - displayName: Asset.Assets.FixedAssets - required: false - - value: Asset.Assets.OtherAssets - type: String - displayName: Asset.Assets.OtherAssets - required: false - - value: Asset.Assets.AccumulatedDeprecation - type: String - displayName: Asset.Assets.AccumulatedDeprecation - required: false - - value: Asset.Assets.Inventory - type: String - displayName: Asset.Assets.Inventory - required: false - - value: Equity.EquityAndLiabilities.CapitalStock - type: String - displayName: Equity.EquityAndLiabilities.CapitalStock - required: false - - value: Equity.EquityAndLiabilities.RetainedEarnings - type: String - displayName: Equity.EquityAndLiabilities.RetainedEarnings - required: false - - value: Liability.EquityAndLiabilities.LongTermDebt - type: String - displayName: Liability.EquityAndLiabilities.LongTermDebt - required: false - - value: Liability.EquityAndLiabilities.CurrentPortionOfDebt - type: String - displayName: Liability.EquityAndLiabilities.CurrentPortionOfDebt - required: false - - value: Unknown.EquityAndLiabilities.Intercompany - type: String - displayName: Unknown.EquityAndLiabilities.Intercompany - required: false - - value: Unknown.General.General - type: String - displayName: Unknown.General.General - required: false - - value: Income.NetIncome.Revenue - type: String - displayName: Income.NetIncome.Revenue - required: false - - value: Expense.NetIncome.CostOfGoods - type: String - displayName: Expense.NetIncome.CostOfGoods - required: false - - value: Expense.NetIncome.OtherCosts - type: String - displayName: Expense.NetIncome.OtherCosts - required: false - - value: Expense.NetIncome.SalesGeneralAdministrativeExpenses - type: String - displayName: Expense.NetIncome.SalesGeneralAdministrativeExpenses - required: false - - value: Expense.NetIncome.DeprecationCosts - type: String - displayName: Expense.NetIncome.DeprecationCosts - required: false - - value: Expense.NetIncome.ResearchAndDevelopment - type: String - displayName: Expense.NetIncome.ResearchAndDevelopment - required: false - - value: Expense.NetIncome.EmployeeCosts - type: String - displayName: Expense.NetIncome.EmployeeCosts - required: false - - value: Expense.NetIncome.EmploymentCosts - type: String - displayName: Expense.NetIncome.EmploymentCosts - required: false - - value: Expense.ExceptionalIncome.ExceptionalCosts - type: String - displayName: Expense.ExceptionalIncome.ExceptionalCosts - required: false - - value: Income.ExceptionalIncome.ExceptionalIncome - type: String - displayName: Income.ExceptionalIncome.ExceptionalIncome - required: false - - value: Expense.ExceptionalIncome.IncomeTaxes - type: String - displayName: Expense.ExceptionalIncome.IncomeTaxes - required: false - - value: Income.ExceptionalIncome.InterestIncome - type: String - displayName: Income.ExceptionalIncome.InterestIncome - required: false - required: true - validation: - warnings: [] - information: - - field: FullyQualifiedCategory - details: Must be provided. - status: - type: String - displayName: Account Status - description: The status of the account - options: - - value: Active - type: String - displayName: Active - required: false - - value: Pending - type: String - displayName: Pending - required: false - - value: Unknown - type: String - displayName: Unknown - required: false - required: true - validation: - warnings: [] - information: - - field: Status - details: Must be provided. - required: true - MYOB AccountRight and Essentials: - value: - type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions - properties: - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: true - validation: - warnings: - - field: NominalCode - details: 'If alphanumeric is supported, must be between 1 and 10 characters. Otherwise format is x-xxxx' - information: [] - name: - type: String - displayName: Name - description: Name of the account - required: false - validation: - warnings: - - field: Name - details: Must have a length between 1 and 60 characters - information: [] - description: - type: String - displayName: Description - description: Description of the account - required: false - validation: - warnings: - - field: Description - details: Must have a length between 1 and 255 characters - information: [] - fullyQualifiedCategory: - type: String - displayName: Fully Qualified Category - description: The full category of the account e.g. Liability.Current or Income.Revenue - options: - - value: Asset.Bank - type: String - displayName: Bank - required: false - - value: Asset.AccountReceivable - type: String - displayName: Accounts Receivable - required: false - - value: Asset.OtherCurrentAsset - type: String - displayName: Other Current Asset - required: false - - value: Asset.FixedAsset - type: String - displayName: Fixed Asset - required: false - - value: Asset.OtherAsset - type: String - displayName: Other Asset - required: false - - value: Asset.CashAndBank - type: String - displayName: Cash - required: false - - value: Asset.Property Plant and Equipment - type: String - displayName: Equipment Machinery - required: false - - value: Liability.CreditCard - type: String - displayName: Credit Card - required: false - - value: Liability.AccountsPayable - type: String - displayName: Accounts Payable - required: false - - value: Liability.OtherCurrentLiability - type: String - displayName: Other Current Liability - required: false - - value: Liability.LongTermLiability - type: String - displayName: Long Term Liability - required: false - - value: Liability.OtherLiability - type: String - displayName: Other Liability - required: false - - value: Equity - type: String - displayName: Equity - required: false - - value: Equity.Equity - type: String - displayName: Retained Earnings - required: false - - value: Equity.Equity.RetainedEarnings - type: String - displayName: Retained Earnings - required: false - - value: Equity.Owner's Equity - type: String - displayName: Retained Earnings - required: false - - value: Income - type: String - displayName: Income - required: false - - value: OtherIncome - type: String - displayName: Other Income - required: false - - value: Expense - type: String - displayName: Expense - required: false - - value: Expense.Expense - type: String - displayName: Sales Marketing - required: false - - value: Expense.Expense.Insurance - type: String - displayName: General Administrative - required: false - - value: Expense.Overhead - type: String - displayName: General Administrative - required: false - - value: Expense.Expense.RepairMaintenance - type: String - displayName: Repairs Maintenance - required: false - - value: OtherExpense - type: String - displayName: Other Expense - required: false - - value: CostOfSales - type: String - displayName: Cost of Sales - required: false - - value: Cost Of Goods Sold.Cost of Sales - type: String - displayName: Other - required: false - required: true - status: - type: String - displayName: Account Status - description: The status of the account - options: - - value: Active - type: String - displayName: Active - required: false - - value: Archived - type: String - displayName: Archived - required: false - required: true - required: true - QuickBooks Desktop: - value: - type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions - properties: - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: true - validation: - warnings: - - field: NominalCode - details: Max length of 7 characters. - information: [] - name: - type: String - displayName: Name - description: Name of the account - required: true - validation: - warnings: - - field: Name - details: Max length of 31 characters. - information: [] - description: - type: String - displayName: Description - description: Description of the account - required: false - validation: - warnings: - - field: Description - details: Max length of 200 characters. - information: [] - currency: - type: String - displayName: Currency - description: The currency of the account - required: false - validation: - warnings: - - field: Currency - details: 'The currency must match the base currency of the QuickBooks Desktop company unless the FullyQualifiedCategory is ''Asset.AccountsReceivable'',''Liability.AccountsPayable'' or ''Liability.CreditCard''' - - field: Currency - details: Must be a three letter ISO code that matches an existing active currency in the QuickBooks Desktop company - - field: Currency - details: Can only be set if the QuickBooks Desktop company has Multicurrency enabled. - information: - - field: Currency - details: 'If not set, will default to the base currency of the QuickBooks Desktop company' - fullyQualifiedCategory: - type: String - displayName: Fully Qualified Category - description: The full category of the account e.g. Liability.Current or Income.Revenue - options: - - value: Asset.AccountsReceivable - type: String - displayName: Account Receivable - required: false - - value: Asset.FixedAsset - type: String - displayName: Fixed Asset - required: false - - value: Asset.OtherCurrentAsset - type: String - displayName: Other Current Asset - required: false - - value: Asset.OtherAsset - type: String - displayName: Other Asset - required: false - - value: Income.Income - type: String - displayName: Income - required: false - - value: Income.OtherIncome - type: String - displayName: Other Income - required: false - - value: Liability.AccountsPayable - type: String - displayName: Accounts Payable - required: false - - value: Liability.CreditCard - type: String - displayName: Credit Card - required: false - - value: Liability.LongTermLiability - type: String - displayName: Long Term Liability - required: false - - value: Liability.OtherCurrentLiability - type: String - displayName: Other Current Liability - required: false - - value: Liability.CostOfGoodsSold - type: String - displayName: Cost Of Goods Sold - required: false - - value: Equity.Equity - type: String - displayName: Equity - required: false - - value: Expense.Expense - type: String - displayName: Expense - required: false - - value: Expense.OtherExpense - type: String - displayName: Other Expense - required: false - required: true - currentBalance: - type: Number - displayName: Current Balance - description: The current balance in the account - required: false - required: true - QuickBooks Online Sandbox: - value: - type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions - properties: - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: false - validation: - warnings: [] - information: - - field: NominalCode - details: If included must have a length between 1 and 7 characters - name: - type: String - displayName: Name - description: Name of the account - required: true - validation: - warnings: - - field: Name - details: Must have a length between 1 and 100 characters - information: [] - currency: - type: String - displayName: Currency - description: The currency of the account - required: false - validation: - warnings: [] - information: - - field: Currency - details: When not specified company base currency will be used - fullyQualifiedCategory: - type: String - displayName: Fully Qualified Category - description: The full category of the account e.g. Liability.Current or Income.Revenue - options: - - value: Asset.Bank.CashOnHand - type: String - displayName: Cash On Hand - required: false - - value: Asset.Bank.Checking - type: String - displayName: Checking - required: false - - value: Asset.Bank.MoneyMarket - type: String - displayName: Money Market - required: false - - value: Asset.Bank.RentsHeldInTrust - type: String - displayName: Rents Held In Trust - required: false - - value: Asset.Bank.Savings - type: String - displayName: Savings - required: false - - value: Asset.Bank.TrustAccounts - type: String - displayName: Trust Accounts - required: false - - value: Asset.Bank.CashAndCashEquivalents - type: String - displayName: Cash And Cash Equivalents - required: false - - value: Asset.Bank.OtherEarmarkedBankAccounts - type: String - displayName: Other Earmarked Bank Accounts - required: false - - value: Asset.Other Current Asset.AllowanceForBadDebts - type: String - displayName: Allowance For Bad Debts - required: false - - value: Asset.Other Current Asset.DevelopmentCosts - type: String - displayName: Development Costs - required: false - - value: Asset.Other Current Asset.EmployeeCashAdvances - type: String - displayName: Employee Cash Advances - required: false - - value: Asset.Other Current Asset.OtherCurrentAssets - type: String - displayName: Other Current Assets - required: false - - value: Asset.Other Current Asset.Inventory - type: String - displayName: Inventory - required: false - - value: Asset.Other Current Asset.Investment_MortgageRealEstateLoans - type: String - displayName: Investment Mortgage Real Estate Loans - required: false - - value: Asset.Other Current Asset.Investment_Other - type: String - displayName: Investment Other - required: false - - value: Asset.Other Current Asset.Investment_TaxExemptSecurities - type: String - displayName: Investment Tax Exempt Securities - required: false - - value: Asset.Other Current Asset.Investment_USGovernmentObligations - type: String - displayName: Investment US Government Obligations - required: false - - value: Asset.Other Current Asset.LoansToOfficers - type: String - displayName: Loans To Officers - required: false - - value: Asset.Other Current Asset.LoansToOthers - type: String - displayName: Loans To Others - required: false - - value: Asset.Other Current Asset.LoansToStockholders - type: String - displayName: Loans To Stockholders - required: false - - value: Asset.Other Current Asset.PrepaidExpenses - type: String - displayName: Prepaid Expenses - required: false - - value: Asset.Other Current Asset.Retainage - type: String - displayName: Retainage - required: false - - value: Asset.Other Current Asset.UndepositedFunds - type: String - displayName: Undeposited Funds - required: false - - value: Asset.Other Current Asset.AssetsAvailableForSale - type: String - displayName: Assets Available For Sale - required: false - - value: Asset.Other Current Asset.BalWithGovtAuthorities - type: String - displayName: Balance With Govt Authorities - required: false - - value: Asset.Other Current Asset.CalledUpShareCapitalNotPaid - type: String - displayName: Called Up Share Capital Not Paid - required: false - - value: Asset.Other Current Asset.ExpenditureAuthorisationsAndLettersOfCredit - type: String - displayName: Expenditure Authorisations And Letters Of Credit - required: false - - value: Asset.Other Current Asset.GlobalTaxDeferred - type: String - displayName: Global Tax Deferred - required: false - - value: Asset.Other Current Asset.GlobalTaxRefund - type: String - displayName: Global Tax Refund - required: false - - value: Asset.Other Current Asset.InternalTransfers - type: String - displayName: Internal Transfers - required: false - - value: Asset.Other Current Asset.OtherConsumables - type: String - displayName: Other Consumables - required: false - - value: Asset.Other Current Asset.ProvisionsCurrentAssets - type: String - displayName: Provisions Current Assets - required: false - - value: Asset.Other Current Asset.ShortTermInvestmentsInRelatedParties - type: String - displayName: Short Term Investments In Related Parties - required: false - - value: Asset.Other Current Asset.ShortTermLoansAndAdvancesToRelatedParties - type: String - displayName: Short Term Loans And Advances To Related Parties - required: false - - value: Asset.Other Current Asset.TradeAndOtherReceivables - type: String - displayName: Trade And Other Receivables - required: false - - value: Asset.Fixed Asset.AccumulatedDepletion - type: String - displayName: Accumulated Depletion - required: false - - value: Asset.Fixed Asset.AccumulatedDepreciation - type: String - displayName: Accumulated Depreciation - required: false - - value: Asset.Fixed Asset.DepletableAssets - type: String - displayName: Depletable Assets - required: false - - value: Asset.Fixed Asset.FixedAssetComputers - type: String - displayName: Fixed Asset Computers - required: false - - value: Asset.Fixed Asset.FixedAssetCopiers - type: String - displayName: Fixed Asset Copiers - required: false - - value: Asset.Fixed Asset.FixedAssetFurniture - type: String - displayName: Fixed Asset Furniture - required: false - - value: Asset.Fixed Asset.FixedAssetPhone - type: String - displayName: Fixed Asset Phone - required: false - - value: Asset.Fixed Asset.FixedAssetPhotoVideo - type: String - displayName: Fixed Asset Photo Video - required: false - - value: Asset.Fixed Asset.FixedAssetSoftware - type: String - displayName: Fixed Asset Software - required: false - - value: Asset.Fixed Asset.FixedAssetOtherToolsEquipment - type: String - displayName: Fixed Asset Other Tools Equipment - required: false - - value: Asset.Fixed Asset.FurnitureAndFixtures - type: String - displayName: Furniture And Fixtures - required: false - - value: Asset.Fixed Asset.Land - type: String - displayName: Land - required: false - - value: Asset.Fixed Asset.LeaseholdImprovements - type: String - displayName: Leasehold Improvements - required: false - - value: Asset.Fixed Asset.OtherFixedAssets - type: String - displayName: Other Fixed Assets - required: false - - value: Asset.Fixed Asset.AccumulatedAmortization - type: String - displayName: Accumulated Amortization - required: false - - value: Asset.Fixed Asset.Buildings - type: String - displayName: Buildings - required: false - - value: Asset.Fixed Asset.IntangibleAssets - type: String - displayName: Intangible Assets - required: false - - value: Asset.Fixed Asset.MachineryAndEquipment - type: String - displayName: Machinery And Equipment - required: false - - value: Asset.Fixed Asset.Vehicles - type: String - displayName: Vehicles - required: false - - value: Asset.Fixed Asset.AssetsInCourseOfConstruction - type: String - displayName: Assets In Course Of Construction - required: false - - value: Asset.Fixed Asset.CapitalWip - type: String - displayName: Capital Wip - required: false - - value: Asset.Fixed Asset.CumulativeDepreciationOnIntangibleAssets - type: String - displayName: Cumulative Depreciation On Intangible Assets - required: false - - value: Asset.Fixed Asset.IntangibleAssetsUnderDevelopment - type: String - displayName: Intangible Assets Under Development - required: false - - value: Asset.Fixed Asset.LandAsset - type: String - displayName: Land Asset - required: false - - value: Asset.Fixed Asset.NonCurrentAssets - type: String - displayName: Non Current Assets - required: false - - value: Asset.Fixed Asset.ParticipatingInterests - type: String - displayName: Participating Interests - required: false - - value: Asset.Fixed Asset.ProvisionsFixedAssets - type: String - displayName: Provisions Fixed Assets - required: false - - value: Asset.Other Asset.LeaseBuyout - type: String - displayName: Lease Buyout - required: false - - value: Asset.Other Asset.OtherLongTermAssets - type: String - displayName: Other Long Term Assets - required: false - - value: Asset.Other Asset.SecurityDeposits - type: String - displayName: Security Deposits - required: false - - value: Asset.Other Asset.AccumulatedAmortizationOfOtherAssets - type: String - displayName: Accumulated Amortization Of Other Assets - required: false - - value: Asset.Other Asset.Goodwill - type: String - displayName: Goodwill - required: false - - value: Asset.Other Asset.Licenses - type: String - displayName: Licenses - required: false - - value: Asset.Other Asset.OrganizationalCosts - type: String - displayName: Organizational Costs - required: false - - value: Asset.Other Asset.AssetsHeldForSale - type: String - displayName: Assets Held For Sale - required: false - - value: Asset.Other Asset.AvailableForSaleFinancialAssets - type: String - displayName: Available For Sale Financial Assets - required: false - - value: Asset.Other Asset.DeferredTax - type: String - displayName: Deferred Tax - required: false - - value: Asset.Other Asset.Investments - type: String - displayName: Investments - required: false - - value: Asset.Other Asset.LongTermInvestments - type: String - displayName: Long Term Investments - required: false - - value: Asset.Other Asset.LongTermLoansAndAdvancesToRelatedParties - type: String - displayName: Long Term Loans And Advances To Related Parties - required: false - - value: Asset.Other Asset.OtherIntangibleAssets - type: String - displayName: Other Intangible Assets - required: false - - value: Asset.Other Asset.OtherLongTermInvestments - type: String - displayName: Other Long Term Investments - required: false - - value: Asset.Other Asset.OtherLongTermLoansAndAdvances - type: String - displayName: Other Long Term Loans And Advances - required: false - - value: Asset.Other Asset.PrepaymentsAndAccruedIncome - type: String - displayName: Prepayments And Accrued Income - required: false - - value: Asset.Other Asset.ProvisionsNonCurrentAssets - type: String - displayName: Provisions Non-Current Assets - required: false - - value: Asset.Accounts Receivable.AccountsReceivable - type: String - displayName: Accounts Receivable - required: false - - value: Expense.Expense.AdvertisingPromotional - type: String - displayName: Advertising/Promotional - required: false - - value: Expense.Expense.BadDebts - type: String - displayName: Bad Debts - required: false - - value: Expense.Expense.BankCharges - type: String - displayName: Bank Charges - required: false - - value: Expense.Expense.CharitableContributions - type: String - displayName: Charitable Contributions - required: false - - value: Expense.Expense.CommissionsAndFees - type: String - displayName: Commissions And Fees - required: false - - value: Expense.Expense.Entertainment - type: String - displayName: Entertainment - required: false - - value: Expense.Expense.EntertainmentMeals - type: String - displayName: Entertainment Meals - required: false - - value: Expense.Expense.EquipmentRental - type: String - displayName: Equipment Rental - required: false - - value: Expense.Expense.FinanceCosts - type: String - displayName: Finance Costs - required: false - - value: Expense.Expense.GlobalTaxExpense - type: String - displayName: Global Tax Expense - required: false - - value: Expense.Expense.Insurance - type: String - displayName: Insurance - required: false - - value: Expense.Expense.InterestPaid - type: String - displayName: Interest Paid - required: false - - value: Expense.Expense.LegalProfessionalFees - type: String - displayName: Legal And Professional Fees - required: false - - value: Expense.Expense.OfficeExpenses - type: String - displayName: Office Expenses - required: false - - value: Expense.Expense.OfficeGeneralAdministrativeExpenses - type: String - displayName: Office/General Administrative Expenses - required: false - - value: Expense.Expense.OtherBusinessExpenses - type: String - displayName: Other Business Expenses - required: false - - value: Expense.Expense.OtherMiscellaneousServiceCost - type: String - displayName: Other Miscellaneous Service Cost - required: false - - value: Expense.Expense.PromotionalMeals - type: String - displayName: Promotional Meals - required: false - - value: Expense.Expense.RentOrLeaseOfBuildings - type: String - displayName: Rent Or Lease Of Buildings - required: false - - value: Expense.Expense.RepairMaintenance - type: String - displayName: Repair And Maintenance - required: false - - value: Expense.Expense.ShippingFreightDelivery - type: String - displayName: 'Shipping, Freight And Delivery' - required: false - - value: Expense.Expense.SuppliesMaterials - type: String - displayName: Supplies And Materials - required: false - - value: Expense.Expense.Travel - type: String - displayName: Travel - required: false - - value: Expense.Expense.TravelMeals - type: String - displayName: Travel Meals - required: false - - value: Expense.Expense.Utilities - type: String - displayName: Utilities - required: false - - value: Expense.Expense.Auto - type: String - displayName: Auto - required: false - - value: Expense.Expense.CostOfLabor - type: String - displayName: Cost Of Labor - required: false - - value: Expense.Expense.DuesSubscriptions - type: String - displayName: Dues And Subscriptions - required: false - - value: Expense.Expense.PayrollExpenses - type: String - displayName: Payroll Expenses - required: false - - value: Expense.Expense.TaxesPaid - type: String - displayName: Taxes Paid - required: false - - value: Expense.Expense.UnappliedCashBillPaymentExpense - type: String - displayName: Unapplied Cash Bill Payment Expense - required: false - - value: Expense.Expense.Utilities - type: String - displayName: Utilities - required: false - - value: Expense.Expense.AmortizationExpense - type: String - displayName: Amortization Expense - required: false - - value: Expense.Expense.AppropriationsToDepreciation - type: String - displayName: Appropriations To Depreciation - required: false - - value: Expense.Expense.BorrowingCost - type: String - displayName: Borrowing Cost - required: false - - value: Expense.Expense.CommissionsAndFees - type: String - displayName: Commissions And Fees - required: false - - value: Expense.Expense.DistributionCosts - type: String - displayName: Distribution Costs - required: false - - value: Expense.Expense.ExternalServices - type: String - displayName: External Services - required: false - - value: Expense.Expense.ExtraordinaryCharges - type: String - displayName: Extraordinary Charges - required: false - - value: Expense.Expense.IncomeTaxExpense - type: String - displayName: Income Tax Expense - required: false - - value: Expense.Expense.LossOnDiscontinuedOperationsNetOfTax - type: String - displayName: Loss On Discontinued Operations Net Of Tax - required: false - - value: Expense.Expense.ManagementCompensation - type: String - displayName: Management Compensation - required: false - - value: Expense.Expense.OtherCurrentOperatingCharges - type: String - displayName: Other Current Operating Charges - required: false - - value: Expense.Expense.OtherExternalServices - type: String - displayName: Other External Services - required: false - - value: Expense.Expense.OtherRentalCosts - type: String - displayName: Other Rental Costs - required: false - - value: Expense.Expense.OtherSellingExpenses - type: String - displayName: Other Selling Expenses - required: false - - value: Expense.Expense.ProjectStudiesSurveysAssessments - type: String - displayName: Project Studies Surveys Assessments - required: false - - value: Expense.Expense.PurchasesRebates - type: String - displayName: Purchases Rebates - required: false - - value: Expense.Expense.ShippingAndDeliveryExpense - type: String - displayName: Shipping And Delivery Expense - required: false - - value: Expense.Expense.StaffCosts - type: String - displayName: Staff Costs - required: false - - value: Expense.Expense.Sundry - type: String - displayName: Sundry - required: false - - value: Expense.Expense.TravelExpensesGeneralAndAdminExpenses - type: String - displayName: Travel Expenses General And Admin Expenses - required: false - - value: Expense.Expense.TravelExpensesSellingExpense - type: String - displayName: Travel Expenses Selling Expense - required: false - - value: Expense.Other Expense.Depreciation - type: String - displayName: Depreciation - required: false - - value: Expense.Other Expense.ExchangeGainOrLoss - type: String - displayName: Exchange Gain Or Loss - required: false - - value: Expense.Other Expense.OtherMiscellaneousExpense - type: String - displayName: Other Miscellaneous Expense - required: false - - value: Expense.Other Expense.PenaltiesSettlements - type: String - displayName: Penalties And Settlements - required: false - - value: Expense.Other Expense.Amortization - type: String - displayName: Amortization - required: false - - value: Expense.Other Expense.GasAndFuel - type: String - displayName: Gas And Fuel - required: false - - value: Expense.Other Expense.HomeOffice - type: String - displayName: Home Office - required: false - - value: Expense.Other Expense.HomeOwnerRentalInsurance - type: String - displayName: Home Owner Rental Insurance - required: false - - value: Expense.Other Expense.OtherHomeOfficeExpenses - type: String - displayName: Other Home Office Expenses - required: false - - value: Expense.Other Expense.MortgageInterest - type: String - displayName: Mortgage Interest - required: false - - value: Expense.Other Expense.RentAndLease - type: String - displayName: Rent And Lease - required: false - - value: Expense.Other Expense.RepairsAndMaintenance - type: String - displayName: Repairs And Maintenance - required: false - - value: Expense.Other Expense.ParkingAndTolls - type: String - displayName: Parking And Tolls - required: false - - value: Expense.Other Expense.Vehicle - type: String - displayName: Vehicle - required: false - - value: Expense.Other Expense.VehicleInsurance - type: String - displayName: Vehicle Insurance - required: false - - value: Expense.Other Expense.VehicleLease - type: String - displayName: Vehicle Lease - required: false - - value: Expense.Other Expense.VehicleLoanInterest - type: String - displayName: Vehicle Loan Interest - required: false - - value: Expense.Other Expense.VehicleLoan - type: String - displayName: Vehicle Loan - required: false - - value: Expense.Other Expense.VehicleRegistration - type: String - displayName: Vehicle Registration - required: false - - value: Expense.Other Expense.VehicleRepairs - type: String - displayName: Vehicle Repairs - required: false - - value: Expense.Other Expense.OtherVehicleExpenses - type: String - displayName: Other Vehicle Expenses - required: false - - value: Expense.Other Expense.Utilities - type: String - displayName: Utilities - required: false - - value: Expense.Other Expense.WashAndRoadServices - type: String - displayName: Wash And Road Services - required: false - - value: Expense.Other Expense.DeferredTaxExpense - type: String - displayName: Deferred Tax Expense - required: false - - value: Expense.Other Expense.Depletion - type: String - displayName: Depletion - required: false - - value: Expense.Other Expense.ExceptionalItems - type: String - displayName: Exceptional Items - required: false - - value: Expense.Other Expense.ExtraordinaryItems - type: String - displayName: Extraordinary Items - required: false - - value: Expense.Other Expense.IncomeTaxOtherExpense - type: String - displayName: Income Tax Other Expense - required: false - - value: Expense.Other Expense.MatCredit - type: String - displayName: Mat Credit - required: false - - value: Expense.Other Expense.PriorPeriodItems - type: String - displayName: Prior Period Items - required: false - - value: Expense.Other Expense.TaxRoundoffGainOrLoss - type: String - displayName: Tax Roundoff Gain Or Loss - required: false - - value: Expense.Cost of Goods Sold.EquipmentRentalCos - type: String - displayName: Equipment Rental - COS - required: false - - value: Expense.Cost of Goods Sold.OtherCostsOfServiceCos - type: String - displayName: Other Costs Of Sales - COS - required: false - - value: Expense.Cost of Goods Sold.ShippingFreightDeliveryCos - type: String - displayName: 'Shipping, Freight And Delivery - COS' - required: false - - value: Expense.Cost of Goods Sold.SuppliesMaterialsCogs - type: String - displayName: Supplies And Materials - COS - required: false - - value: Expense.Cost of Goods Sold.CostOfLaborCos - type: String - displayName: Cost Of Labor - COS - required: false - - value: Expense.Cost of Goods Sold.CostOfSales - type: String - displayName: Cost Of Sales - required: false - - value: Expense.Cost of Goods Sold.FreightAndDeliveryCost - type: String - displayName: Freight And Delivery Cost - required: false - - value: Income.Income.NonProfitIncome - type: String - displayName: Non Profit Income - required: false - - value: Income.Income.OtherPrimaryIncome - type: String - displayName: Other Primary Income - required: false - - value: Income.Income.SalesOfProductIncome - type: String - displayName: Sales Of ProductIncome - required: false - - value: Income.Income.ServiceFeeIncome - type: String - displayName: Service Fee Income - required: false - - value: Income.Income.DiscountsRefundsGiven - type: String - displayName: Discounts Refunds Given - required: false - - value: Income.Income.UnappliedCashPaymentIncome - type: String - displayName: Unapplied Cash Payment Income - required: false - - value: Income.Income.CashReceiptIncome - type: String - displayName: Cash Receipt Income - required: false - - value: Income.Income.OperatingGrants - type: String - displayName: Operating Grants - required: false - - value: Income.Income.OtherCurrentOperatingIncome - type: String - displayName: Other Current Operating Income - required: false - - value: Income.Income.OwnWorkCapitalized - type: String - displayName: Own Work Capitalized - required: false - - value: Income.Income.RevenueGeneral - type: String - displayName: Revenue General - required: false - - value: Income.Income.SalesRetail - type: String - displayName: Sales Retail - required: false - - value: Income.Income.SalesWholesale - type: String - displayName: Sales Wholesale - required: false - - value: Income.Income.SavingsByTaxScheme - type: String - displayName: Savings By Tax Scheme - required: false - - value: Income.Other Income.DividendIncome - type: String - displayName: Dividend Income - required: false - - value: Income.Other Income.InterestEarned - type: String - displayName: Interest Earned - required: false - - value: Income.Other Income.OtherInvestmentIncome - type: String - displayName: Other Investment Income - required: false - - value: Income.Other Income.OtherMiscellaneousIncome - type: String - displayName: Other Miscellaneous Income - required: false - - value: Income.Other Income.TaxExemptInterest - type: String - displayName: Tax Exempt Interest - required: false - - value: Income.Other Income.GainLossOnSaleOfFixedAssets - type: String - displayName: Gain Loss On Sale Of Fixed Assets - required: false - - value: Income.Other Income.GainLossOnSaleOfInvestments - type: String - displayName: Gain Loss On Sale Of Investments - required: false - - value: Income.Other Income.LossOnDisposalOfAssets - type: String - displayName: Loss On Disposal Of Assets - required: false - - value: Income.Other Income.OtherOperatingIncome - type: String - displayName: Other Operating Income - required: false - - value: Income.Other Income.UnrealisedLossOnSecuritiesNetOfTax - type: String - displayName: Unrealised Loss On Securities Net Of Tax - required: false - - value: Liability.Accounts Payable.AccountsPayable - type: String - displayName: Accounts Payable - required: false - - value: Liability.Accounts Payable.OutstandingDuesMicroSmallEnterprise - type: String - displayName: Outstanding Dues Micro Small Enterprise - required: false - - value: Liability.Accounts Payable.OutstandingDuesOtherThanMicroSmallEnterprise - type: String - displayName: Outstanding Dues Other Than Micro Small Enterprise - required: false - - value: Liability.Credit Card.CreditCard - type: String - displayName: Credit Card - required: false - - value: Liability.Long Term Liability.NotesPayable - type: String - displayName: Notes Payable - required: false - - value: Liability.Long Term Liability.OtherLongTermLiabilities - type: String - displayName: Other Long Term Liabilities - required: false - - value: Liability.Long Term Liability.ShareholderNotesPayable - type: String - displayName: Shareholder Notes Payable - required: false - - value: Liability.Long Term Liability.AccrualsAndDeferredIncome - type: String - displayName: Accruals And Deferred Income - required: false - - value: Liability.Long Term Liability.AccruedLongLermLiabilities - type: String - displayName: Accrued Long Lerm Liabilities - required: false - - value: Liability.Long Term Liability.AccruedVacationPayable - type: String - displayName: Accrued Vacation Payable - required: false - - value: Liability.Long Term Liability.BankLoans - type: String - displayName: Bank Loans - required: false - - value: Liability.Long Term Liability.DebtsRelatedToParticipatingInterests - type: String - displayName: Debts Related To Participating Interests - required: false - - value: Liability.Long Term Liability.DeferredTaxLiabilities - type: String - displayName: Deferred Tax Liabilities - required: false - - value: Liability.Long Term Liability.GovernmentAndOtherPublicAuthorities - type: String - displayName: Government And Other Public Authorities - required: false - - value: Liability.Long Term Liability.GroupAndAssociates - type: String - displayName: Group And Associates - required: false - - value: Liability.Long Term Liability.LiabilitiesRelatedToAssetsHeldForSale - type: String - displayName: Liabilities Related To Assets Held For Sale - required: false - - value: Liability.Long Term Liability.LongTermBorrowings - type: String - displayName: Long Term Borrowings - required: false - - value: Liability.Long Term Liability.LongTermDebit - type: String - displayName: Long Term Debit - required: false - - value: Liability.Long Term Liability.LongTermEmployeeBenefitObligations - type: String - displayName: Long Term Employee Benefit Obligations - required: false - - value: Liability.Long Term Liability.ObligationsUnderFinanceLeases - type: String - displayName: Obligations Under Finance Leases - required: false - - value: Liability.Long Term Liability.OtherLongTermProvisions - type: String - displayName: Other Long Term Provisions - required: false - - value: Liability.Long Term Liability.ProvisionForLiabilities - type: String - displayName: Provision For Liabilities - required: false - - value: Liability.Long Term Liability.ProvisionsNonCurrentLiabilities - type: String - displayName: Provisions Non Current Liabilities - required: false - - value: Liability.Long Term Liability.StaffAndRelatedLongTermLiabilityAccounts - type: String - displayName: Staff And Related Long Term Liability Accounts - required: false - - value: Liability.Other Current Liability.DirectDepositPayable - type: String - displayName: Direct Deposit Payable - required: false - - value: Liability.Other Current Liability.LineOfCredit - type: String - displayName: Line Of Credit - required: false - - value: Liability.Other Current Liability.LoanPayable - type: String - displayName: Loan Payable - required: false - - value: Liability.Other Current Liability.GlobalTaxPayable - type: String - displayName: Global Tax Payable - required: false - - value: Liability.Other Current Liability.GlobalTaxSuspense - type: String - displayName: Global Tax Suspense - required: false - - value: Liability.Other Current Liability.OtherCurrentLiabilities - type: String - displayName: Other Current Liabilities - required: false - - value: Liability.Other Current Liability.PayrollClearing - type: String - displayName: Payroll Clearing - required: false - - value: Liability.Other Current Liability.PayrollTaxPayable - type: String - displayName: Payroll Tax Payable - required: false - - value: Liability.Other Current Liability.PrepaidExpensesPayable - type: String - displayName: Prepaid Expenses Payable - required: false - - value: Liability.Other Current Liability.RentsInTrustLiability - type: String - displayName: Rents In Trust Liability - required: false - - value: Liability.Other Current Liability.TrustAccountsLiabilities - type: String - displayName: Trust Accounts Liabilities - required: false - - value: Liability.Other Current Liability.FederalIncomeTaxPayable - type: String - displayName: Federal Income Tax Payable - required: false - - value: Liability.Other Current Liability.InsurancePayable - type: String - displayName: Insurance Payable - required: false - - value: Liability.Other Current Liability.SalesTaxPayable - type: String - displayName: Sales Tax Payable - required: false - - value: Liability.Other Current Liability.StateLocalIncomeTaxPayable - type: String - displayName: State Local Income Tax Payable - required: false - - value: Liability.Other Current Liability.AccruedLiabilities - type: String - displayName: Accrued Liabilities - required: false - - value: Liability.Other Current Liability.CurrentLiabilities - type: String - displayName: Current Liabilities - required: false - - value: Liability.Other Current Liability.CurrentPortionEmployeeBenefitsObligations - type: String - displayName: Current Portion EmployeeBenefits Obligations - required: false - - value: Liability.Other Current Liability.CurrentPortionOfObligationsUnderFinanceLeases - type: String - displayName: Current Portion Of Obligations Under Finance Leases - required: false - - value: Liability.Other Current Liability.CurrentTaxLiability - type: String - displayName: Current Tax Liability - required: false - - value: Liability.Other Current Liability.DividendsPayable - type: String - displayName: Dividends Payable - required: false - - value: Liability.Other Current Liability.DutiesAndTaxes - type: String - displayName: Duties And Taxes - required: false - - value: Liability.Other Current Liability.InterestPayables - type: String - displayName: Interest Payables - required: false - - value: Liability.Other Current Liability.ProvisionForWarrantyObligations - type: String - displayName: Provision For Warranty Obligations - required: false - - value: Liability.Other Current Liability.ProvisionsCurrentLiabilities - type: String - displayName: Provisions Current Liabilities - required: false - - value: Liability.Other Current Liability.ShortTermBorrowings - type: String - displayName: Short Term Borrowings - required: false - - value: Liability.Other Current Liability.SocialSecurityAgencies - type: String - displayName: Social Security Agencies - required: false - - value: Liability.Other Current Liability.StaffAndRelatedLiabilityAccounts - type: String - displayName: Staff And Related Liability Accounts - required: false - - value: Liability.Other Current Liability.SundryDebtorsAndCreditors - type: String - displayName: Sundry Debtors And Creditors - required: false - - value: Liability.Other Current Liability.TradeAndOtherPayables - type: String - displayName: Trade And Other Payables - required: false - - value: Equity.Equity.OpeningBalanceEquity - type: String - displayName: Opening Balance Equity - required: false - - value: Equity.Equity.PartnersEquity - type: String - displayName: Partners Equity - required: false - - value: Equity.Equity.RetainedEarnings - type: String - displayName: Retained Earnings - required: false - - value: Equity.Equity.AccumulatedAdjustment - type: String - displayName: Accumulated Adjustment - required: false - - value: Equity.Equity.OwnersEquity - type: String - displayName: Owners Equity - required: false - - value: Equity.Equity.PaidInCapitalOrSurplus - type: String - displayName: Paid In Capital Or Surplus - required: false - - value: Equity.Equity.PartnerContributions - type: String - displayName: Partner Contributions - required: false - - value: Equity.Equity.PartnerDistributions - type: String - displayName: Partner Distributions - required: false - - value: Equity.Equity.PreferredStock - type: String - displayName: Preferred Stock - required: false - - value: Equity.Equity.CommonStock - type: String - displayName: Common Stock - required: false - - value: Equity.Equity.TreasuryStock - type: String - displayName: Treasury Stock - required: false - - value: Equity.Equity.EstimatedTaxes - type: String - displayName: Estimated Taxes - required: false - - value: Equity.Equity.Healthcare - type: String - displayName: Healthcare - required: false - - value: Equity.Equity.PersonalIncome - type: String - displayName: Personal Income - required: false - - value: Equity.Equity.PersonalExpense - type: String - displayName: Personal Expense - required: false - - value: Equity.Equity.AccumulatedOtherComprehensiveIncome - type: String - displayName: Accumulated Other Comprehensive Income - required: false - - value: Equity.Equity.CalledUpShareCapital - type: String - displayName: Called Up Share Capital - required: false - - value: Equity.Equity.CapitalReserves - type: String - displayName: Capital Reserves - required: false - - value: Equity.Equity.DividendDisbursed - type: String - displayName: Dividend Disbursed - required: false - - value: Equity.Equity.EquityInEarningsOfSubsiduaries - type: String - displayName: Equity In Earnings Of Subsiduaries - required: false - - value: Equity.Equity.InvestmentGrants - type: String - displayName: Investment Grants - required: false - - value: Equity.Equity.MoneyReceivedAgainstShareWarrants - type: String - displayName: Money Received Against Share Warrants - required: false - - value: Equity.Equity.OtherFreeReserves - type: String - displayName: Other Free Reserves - required: false - - value: Equity.Equity.ShareApplicationMoneyPendingAllotment - type: String - displayName: Share Application Money Pending Allotment - required: false - - value: Equity.Equity.ShareCapital - type: String - displayName: Share Capital - required: false - - value: Equity.Equity.Funds - type: String - displayName: Funds - required: false - required: true - required: true - QuickBooks Online: - value: - type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions - properties: - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: false - validation: - warnings: [] - information: - - field: NominalCode - details: If included must have a length between 1 and 7 characters - name: - type: String - displayName: Name - description: Name of the account - required: true - validation: - warnings: - - field: Name - details: Must have a length between 1 and 100 characters - information: [] - currency: - type: String - displayName: Currency - description: The currency of the account - required: false - validation: - warnings: [] - information: - - field: Currency - details: When not specified company base currency will be used - fullyQualifiedCategory: - type: String - displayName: Fully Qualified Category - description: The full category of the account e.g. Liability.Current or Income.Revenue - options: - - value: Asset.Bank.CashOnHand - type: String - displayName: Cash On Hand - required: false - - value: Asset.Bank.Checking - type: String - displayName: Checking - required: false - - value: Asset.Bank.MoneyMarket - type: String - displayName: Money Market - required: false - - value: Asset.Bank.RentsHeldInTrust - type: String - displayName: Rents Held In Trust - required: false - - value: Asset.Bank.Savings - type: String - displayName: Savings - required: false - - value: Asset.Bank.TrustAccounts - type: String - displayName: Trust Accounts - required: false - - value: Asset.Bank.CashAndCashEquivalents - type: String - displayName: Cash And Cash Equivalents - required: false - - value: Asset.Bank.OtherEarmarkedBankAccounts - type: String - displayName: Other Earmarked Bank Accounts - required: false - - value: Asset.Other Current Asset.AllowanceForBadDebts - type: String - displayName: Allowance For Bad Debts - required: false - - value: Asset.Other Current Asset.DevelopmentCosts - type: String - displayName: Development Costs - required: false - - value: Asset.Other Current Asset.EmployeeCashAdvances - type: String - displayName: Employee Cash Advances - required: false - - value: Asset.Other Current Asset.OtherCurrentAssets - type: String - displayName: Other Current Assets - required: false - - value: Asset.Other Current Asset.Inventory - type: String - displayName: Inventory - required: false - - value: Asset.Other Current Asset.Investment_MortgageRealEstateLoans - type: String - displayName: Investment Mortgage Real Estate Loans - required: false - - value: Asset.Other Current Asset.Investment_Other - type: String - displayName: Investment Other - required: false - - value: Asset.Other Current Asset.Investment_TaxExemptSecurities - type: String - displayName: Investment Tax Exempt Securities - required: false - - value: Asset.Other Current Asset.Investment_USGovernmentObligations - type: String - displayName: Investment US Government Obligations - required: false - - value: Asset.Other Current Asset.LoansToOfficers - type: String - displayName: Loans To Officers - required: false - - value: Asset.Other Current Asset.LoansToOthers - type: String - displayName: Loans To Others - required: false - - value: Asset.Other Current Asset.LoansToStockholders - type: String - displayName: Loans To Stockholders - required: false - - value: Asset.Other Current Asset.PrepaidExpenses - type: String - displayName: Prepaid Expenses - required: false - - value: Asset.Other Current Asset.Retainage - type: String - displayName: Retainage - required: false - - value: Asset.Other Current Asset.UndepositedFunds - type: String - displayName: Undeposited Funds - required: false - - value: Asset.Other Current Asset.AssetsAvailableForSale - type: String - displayName: Assets Available For Sale - required: false - - value: Asset.Other Current Asset.BalWithGovtAuthorities - type: String - displayName: Balance With Govt Authorities - required: false - - value: Asset.Other Current Asset.CalledUpShareCapitalNotPaid - type: String - displayName: Called Up Share Capital Not Paid - required: false - - value: Asset.Other Current Asset.ExpenditureAuthorisationsAndLettersOfCredit - type: String - displayName: Expenditure Authorisations And Letters Of Credit - required: false - - value: Asset.Other Current Asset.GlobalTaxDeferred - type: String - displayName: Global Tax Deferred - required: false - - value: Asset.Other Current Asset.GlobalTaxRefund - type: String - displayName: Global Tax Refund - required: false - - value: Asset.Other Current Asset.InternalTransfers - type: String - displayName: Internal Transfers - required: false - - value: Asset.Other Current Asset.OtherConsumables - type: String - displayName: Other Consumables - required: false - - value: Asset.Other Current Asset.ProvisionsCurrentAssets - type: String - displayName: Provisions Current Assets - required: false - - value: Asset.Other Current Asset.ShortTermInvestmentsInRelatedParties - type: String - displayName: Short Term Investments In Related Parties - required: false - - value: Asset.Other Current Asset.ShortTermLoansAndAdvancesToRelatedParties - type: String - displayName: Short Term Loans And Advances To Related Parties - required: false - - value: Asset.Other Current Asset.TradeAndOtherReceivables - type: String - displayName: Trade And Other Receivables - required: false - - value: Asset.Fixed Asset.AccumulatedDepletion - type: String - displayName: Accumulated Depletion - required: false - - value: Asset.Fixed Asset.AccumulatedDepreciation - type: String - displayName: Accumulated Depreciation - required: false - - value: Asset.Fixed Asset.DepletableAssets - type: String - displayName: Depletable Assets - required: false - - value: Asset.Fixed Asset.FixedAssetComputers - type: String - displayName: Fixed Asset Computers - required: false - - value: Asset.Fixed Asset.FixedAssetCopiers - type: String - displayName: Fixed Asset Copiers - required: false - - value: Asset.Fixed Asset.FixedAssetFurniture - type: String - displayName: Fixed Asset Furniture - required: false - - value: Asset.Fixed Asset.FixedAssetPhone - type: String - displayName: Fixed Asset Phone - required: false - - value: Asset.Fixed Asset.FixedAssetPhotoVideo - type: String - displayName: Fixed Asset Photo Video - required: false - - value: Asset.Fixed Asset.FixedAssetSoftware - type: String - displayName: Fixed Asset Software - required: false - - value: Asset.Fixed Asset.FixedAssetOtherToolsEquipment - type: String - displayName: Fixed Asset Other Tools Equipment - required: false - - value: Asset.Fixed Asset.FurnitureAndFixtures - type: String - displayName: Furniture And Fixtures - required: false - - value: Asset.Fixed Asset.Land - type: String - displayName: Land - required: false - - value: Asset.Fixed Asset.LeaseholdImprovements - type: String - displayName: Leasehold Improvements - required: false - - value: Asset.Fixed Asset.OtherFixedAssets - type: String - displayName: Other Fixed Assets - required: false - - value: Asset.Fixed Asset.AccumulatedAmortization - type: String - displayName: Accumulated Amortization - required: false - - value: Asset.Fixed Asset.Buildings - type: String - displayName: Buildings - required: false - - value: Asset.Fixed Asset.IntangibleAssets - type: String - displayName: Intangible Assets - required: false - - value: Asset.Fixed Asset.MachineryAndEquipment - type: String - displayName: Machinery And Equipment - required: false - - value: Asset.Fixed Asset.Vehicles - type: String - displayName: Vehicles - required: false - - value: Asset.Fixed Asset.AssetsInCourseOfConstruction - type: String - displayName: Assets In Course Of Construction - required: false - - value: Asset.Fixed Asset.CapitalWip - type: String - displayName: Capital Wip - required: false - - value: Asset.Fixed Asset.CumulativeDepreciationOnIntangibleAssets - type: String - displayName: Cumulative Depreciation On Intangible Assets - required: false - - value: Asset.Fixed Asset.IntangibleAssetsUnderDevelopment - type: String - displayName: Intangible Assets Under Development - required: false - - value: Asset.Fixed Asset.LandAsset - type: String - displayName: Land Asset - required: false - - value: Asset.Fixed Asset.NonCurrentAssets - type: String - displayName: Non Current Assets - required: false - - value: Asset.Fixed Asset.ParticipatingInterests - type: String - displayName: Participating Interests - required: false - - value: Asset.Fixed Asset.ProvisionsFixedAssets - type: String - displayName: Provisions Fixed Assets - required: false - - value: Asset.Other Asset.LeaseBuyout - type: String - displayName: Lease Buyout - required: false - - value: Asset.Other Asset.OtherLongTermAssets - type: String - displayName: Other Long Term Assets - required: false - - value: Asset.Other Asset.SecurityDeposits - type: String - displayName: Security Deposits - required: false - - value: Asset.Other Asset.AccumulatedAmortizationOfOtherAssets - type: String - displayName: Accumulated Amortization Of Other Assets - required: false - - value: Asset.Other Asset.Goodwill - type: String - displayName: Goodwill - required: false - - value: Asset.Other Asset.Licenses - type: String - displayName: Licenses - required: false - - value: Asset.Other Asset.OrganizationalCosts - type: String - displayName: Organizational Costs - required: false - - value: Asset.Other Asset.AssetsHeldForSale - type: String - displayName: Assets Held For Sale - required: false - - value: Asset.Other Asset.AvailableForSaleFinancialAssets - type: String - displayName: Available For Sale Financial Assets - required: false - - value: Asset.Other Asset.DeferredTax - type: String - displayName: Deferred Tax - required: false - - value: Asset.Other Asset.Investments - type: String - displayName: Investments - required: false - - value: Asset.Other Asset.LongTermInvestments - type: String - displayName: Long Term Investments - required: false - - value: Asset.Other Asset.LongTermLoansAndAdvancesToRelatedParties - type: String - displayName: Long Term Loans And Advances To Related Parties - required: false - - value: Asset.Other Asset.OtherIntangibleAssets - type: String - displayName: Other Intangible Assets - required: false - - value: Asset.Other Asset.OtherLongTermInvestments - type: String - displayName: Other Long Term Investments - required: false - - value: Asset.Other Asset.OtherLongTermLoansAndAdvances - type: String - displayName: Other Long Term Loans And Advances - required: false - - value: Asset.Other Asset.PrepaymentsAndAccruedIncome - type: String - displayName: Prepayments And Accrued Income - required: false - - value: Asset.Other Asset.ProvisionsNonCurrentAssets - type: String - displayName: Provisions Non-Current Assets - required: false - - value: Asset.Accounts Receivable.AccountsReceivable - type: String - displayName: Accounts Receivable - required: false - - value: Expense.Expense.AdvertisingPromotional - type: String - displayName: Advertising/Promotional - required: false - - value: Expense.Expense.BadDebts - type: String - displayName: Bad Debts - required: false - - value: Expense.Expense.BankCharges - type: String - displayName: Bank Charges - required: false - - value: Expense.Expense.CharitableContributions - type: String - displayName: Charitable Contributions - required: false - - value: Expense.Expense.CommissionsAndFees - type: String - displayName: Commissions And Fees - required: false - - value: Expense.Expense.Entertainment - type: String - displayName: Entertainment - required: false - - value: Expense.Expense.EntertainmentMeals - type: String - displayName: Entertainment Meals - required: false - - value: Expense.Expense.EquipmentRental - type: String - displayName: Equipment Rental - required: false - - value: Expense.Expense.FinanceCosts - type: String - displayName: Finance Costs - required: false - - value: Expense.Expense.GlobalTaxExpense - type: String - displayName: Global Tax Expense - required: false - - value: Expense.Expense.Insurance - type: String - displayName: Insurance - required: false - - value: Expense.Expense.InterestPaid - type: String - displayName: Interest Paid - required: false - - value: Expense.Expense.LegalProfessionalFees - type: String - displayName: Legal And Professional Fees - required: false - - value: Expense.Expense.OfficeExpenses - type: String - displayName: Office Expenses - required: false - - value: Expense.Expense.OfficeGeneralAdministrativeExpenses - type: String - displayName: Office/General Administrative Expenses - required: false - - value: Expense.Expense.OtherBusinessExpenses - type: String - displayName: Other Business Expenses - required: false - - value: Expense.Expense.OtherMiscellaneousServiceCost - type: String - displayName: Other Miscellaneous Service Cost - required: false - - value: Expense.Expense.PromotionalMeals - type: String - displayName: Promotional Meals - required: false - - value: Expense.Expense.RentOrLeaseOfBuildings - type: String - displayName: Rent Or Lease Of Buildings - required: false - - value: Expense.Expense.RepairMaintenance - type: String - displayName: Repair And Maintenance - required: false - - value: Expense.Expense.ShippingFreightDelivery - type: String - displayName: 'Shipping, Freight And Delivery' - required: false - - value: Expense.Expense.SuppliesMaterials - type: String - displayName: Supplies And Materials - required: false - - value: Expense.Expense.Travel - type: String - displayName: Travel - required: false - - value: Expense.Expense.TravelMeals - type: String - displayName: Travel Meals - required: false - - value: Expense.Expense.Utilities - type: String - displayName: Utilities - required: false - - value: Expense.Expense.Auto - type: String - displayName: Auto - required: false - - value: Expense.Expense.CostOfLabor - type: String - displayName: Cost Of Labor - required: false - - value: Expense.Expense.DuesSubscriptions - type: String - displayName: Dues And Subscriptions - required: false - - value: Expense.Expense.PayrollExpenses - type: String - displayName: Payroll Expenses - required: false - - value: Expense.Expense.TaxesPaid - type: String - displayName: Taxes Paid - required: false - - value: Expense.Expense.UnappliedCashBillPaymentExpense - type: String - displayName: Unapplied Cash Bill Payment Expense - required: false - - value: Expense.Expense.Utilities - type: String - displayName: Utilities - required: false - - value: Expense.Expense.AmortizationExpense - type: String - displayName: Amortization Expense - required: false - - value: Expense.Expense.AppropriationsToDepreciation - type: String - displayName: Appropriations To Depreciation - required: false - - value: Expense.Expense.BorrowingCost - type: String - displayName: Borrowing Cost - required: false - - value: Expense.Expense.CommissionsAndFees - type: String - displayName: Commissions And Fees - required: false - - value: Expense.Expense.DistributionCosts - type: String - displayName: Distribution Costs - required: false - - value: Expense.Expense.ExternalServices - type: String - displayName: External Services - required: false - - value: Expense.Expense.ExtraordinaryCharges - type: String - displayName: Extraordinary Charges - required: false - - value: Expense.Expense.IncomeTaxExpense - type: String - displayName: Income Tax Expense - required: false - - value: Expense.Expense.LossOnDiscontinuedOperationsNetOfTax - type: String - displayName: Loss On Discontinued Operations Net Of Tax - required: false - - value: Expense.Expense.ManagementCompensation - type: String - displayName: Management Compensation - required: false - - value: Expense.Expense.OtherCurrentOperatingCharges - type: String - displayName: Other Current Operating Charges - required: false - - value: Expense.Expense.OtherExternalServices - type: String - displayName: Other External Services - required: false - - value: Expense.Expense.OtherRentalCosts - type: String - displayName: Other Rental Costs - required: false - - value: Expense.Expense.OtherSellingExpenses - type: String - displayName: Other Selling Expenses - required: false - - value: Expense.Expense.ProjectStudiesSurveysAssessments - type: String - displayName: Project Studies Surveys Assessments - required: false - - value: Expense.Expense.PurchasesRebates - type: String - displayName: Purchases Rebates - required: false - - value: Expense.Expense.ShippingAndDeliveryExpense - type: String - displayName: Shipping And Delivery Expense - required: false - - value: Expense.Expense.StaffCosts - type: String - displayName: Staff Costs - required: false - - value: Expense.Expense.Sundry - type: String - displayName: Sundry - required: false - - value: Expense.Expense.TravelExpensesGeneralAndAdminExpenses - type: String - displayName: Travel Expenses General And Admin Expenses - required: false - - value: Expense.Expense.TravelExpensesSellingExpense - type: String - displayName: Travel Expenses Selling Expense - required: false - - value: Expense.Other Expense.Depreciation - type: String - displayName: Depreciation - required: false - - value: Expense.Other Expense.ExchangeGainOrLoss - type: String - displayName: Exchange Gain Or Loss - required: false - - value: Expense.Other Expense.OtherMiscellaneousExpense - type: String - displayName: Other Miscellaneous Expense - required: false - - value: Expense.Other Expense.PenaltiesSettlements - type: String - displayName: Penalties And Settlements - required: false - - value: Expense.Other Expense.Amortization - type: String - displayName: Amortization - required: false - - value: Expense.Other Expense.GasAndFuel - type: String - displayName: Gas And Fuel - required: false - - value: Expense.Other Expense.HomeOffice - type: String - displayName: Home Office - required: false - - value: Expense.Other Expense.HomeOwnerRentalInsurance - type: String - displayName: Home Owner Rental Insurance - required: false - - value: Expense.Other Expense.OtherHomeOfficeExpenses - type: String - displayName: Other Home Office Expenses - required: false - - value: Expense.Other Expense.MortgageInterest - type: String - displayName: Mortgage Interest - required: false - - value: Expense.Other Expense.RentAndLease - type: String - displayName: Rent And Lease - required: false - - value: Expense.Other Expense.RepairsAndMaintenance - type: String - displayName: Repairs And Maintenance - required: false - - value: Expense.Other Expense.ParkingAndTolls - type: String - displayName: Parking And Tolls - required: false - - value: Expense.Other Expense.Vehicle - type: String - displayName: Vehicle - required: false - - value: Expense.Other Expense.VehicleInsurance - type: String - displayName: Vehicle Insurance - required: false - - value: Expense.Other Expense.VehicleLease - type: String - displayName: Vehicle Lease - required: false - - value: Expense.Other Expense.VehicleLoanInterest - type: String - displayName: Vehicle Loan Interest - required: false - - value: Expense.Other Expense.VehicleLoan - type: String - displayName: Vehicle Loan - required: false - - value: Expense.Other Expense.VehicleRegistration - type: String - displayName: Vehicle Registration - required: false - - value: Expense.Other Expense.VehicleRepairs - type: String - displayName: Vehicle Repairs - required: false - - value: Expense.Other Expense.OtherVehicleExpenses - type: String - displayName: Other Vehicle Expenses - required: false - - value: Expense.Other Expense.Utilities - type: String - displayName: Utilities - required: false - - value: Expense.Other Expense.WashAndRoadServices - type: String - displayName: Wash And Road Services - required: false - - value: Expense.Other Expense.DeferredTaxExpense - type: String - displayName: Deferred Tax Expense - required: false - - value: Expense.Other Expense.Depletion - type: String - displayName: Depletion - required: false - - value: Expense.Other Expense.ExceptionalItems - type: String - displayName: Exceptional Items - required: false - - value: Expense.Other Expense.ExtraordinaryItems - type: String - displayName: Extraordinary Items - required: false - - value: Expense.Other Expense.IncomeTaxOtherExpense - type: String - displayName: Income Tax Other Expense - required: false - - value: Expense.Other Expense.MatCredit - type: String - displayName: Mat Credit - required: false - - value: Expense.Other Expense.PriorPeriodItems - type: String - displayName: Prior Period Items - required: false - - value: Expense.Other Expense.TaxRoundoffGainOrLoss - type: String - displayName: Tax Roundoff Gain Or Loss - required: false - - value: Expense.Cost of Goods Sold.EquipmentRentalCos - type: String - displayName: Equipment Rental - COS - required: false - - value: Expense.Cost of Goods Sold.OtherCostsOfServiceCos - type: String - displayName: Other Costs Of Sales - COS - required: false - - value: Expense.Cost of Goods Sold.ShippingFreightDeliveryCos - type: String - displayName: 'Shipping, Freight And Delivery - COS' - required: false - - value: Expense.Cost of Goods Sold.SuppliesMaterialsCogs - type: String - displayName: Supplies And Materials - COS - required: false - - value: Expense.Cost of Goods Sold.CostOfLaborCos - type: String - displayName: Cost Of Labor - COS - required: false - - value: Expense.Cost of Goods Sold.CostOfSales - type: String - displayName: Cost Of Sales - required: false - - value: Expense.Cost of Goods Sold.FreightAndDeliveryCost - type: String - displayName: Freight And Delivery Cost - required: false - - value: Income.Income.NonProfitIncome - type: String - displayName: Non Profit Income - required: false - - value: Income.Income.OtherPrimaryIncome - type: String - displayName: Other Primary Income - required: false - - value: Income.Income.SalesOfProductIncome - type: String - displayName: Sales Of ProductIncome - required: false - - value: Income.Income.ServiceFeeIncome - type: String - displayName: Service Fee Income - required: false - - value: Income.Income.DiscountsRefundsGiven - type: String - displayName: Discounts Refunds Given - required: false - - value: Income.Income.UnappliedCashPaymentIncome - type: String - displayName: Unapplied Cash Payment Income - required: false - - value: Income.Income.CashReceiptIncome - type: String - displayName: Cash Receipt Income - required: false - - value: Income.Income.OperatingGrants - type: String - displayName: Operating Grants - required: false - - value: Income.Income.OtherCurrentOperatingIncome - type: String - displayName: Other Current Operating Income - required: false - - value: Income.Income.OwnWorkCapitalized - type: String - displayName: Own Work Capitalized - required: false - - value: Income.Income.RevenueGeneral - type: String - displayName: Revenue General - required: false - - value: Income.Income.SalesRetail - type: String - displayName: Sales Retail - required: false - - value: Income.Income.SalesWholesale - type: String - displayName: Sales Wholesale - required: false - - value: Income.Income.SavingsByTaxScheme - type: String - displayName: Savings By Tax Scheme - required: false - - value: Income.Other Income.DividendIncome - type: String - displayName: Dividend Income - required: false - - value: Income.Other Income.InterestEarned - type: String - displayName: Interest Earned - required: false - - value: Income.Other Income.OtherInvestmentIncome - type: String - displayName: Other Investment Income - required: false - - value: Income.Other Income.OtherMiscellaneousIncome - type: String - displayName: Other Miscellaneous Income - required: false - - value: Income.Other Income.TaxExemptInterest - type: String - displayName: Tax Exempt Interest - required: false - - value: Income.Other Income.GainLossOnSaleOfFixedAssets - type: String - displayName: Gain Loss On Sale Of Fixed Assets - required: false - - value: Income.Other Income.GainLossOnSaleOfInvestments - type: String - displayName: Gain Loss On Sale Of Investments - required: false - - value: Income.Other Income.LossOnDisposalOfAssets - type: String - displayName: Loss On Disposal Of Assets - required: false - - value: Income.Other Income.OtherOperatingIncome - type: String - displayName: Other Operating Income - required: false - - value: Income.Other Income.UnrealisedLossOnSecuritiesNetOfTax - type: String - displayName: Unrealised Loss On Securities Net Of Tax - required: false - - value: Liability.Accounts Payable.AccountsPayable - type: String - displayName: Accounts Payable - required: false - - value: Liability.Accounts Payable.OutstandingDuesMicroSmallEnterprise - type: String - displayName: Outstanding Dues Micro Small Enterprise - required: false - - value: Liability.Accounts Payable.OutstandingDuesOtherThanMicroSmallEnterprise - type: String - displayName: Outstanding Dues Other Than Micro Small Enterprise - required: false - - value: Liability.Credit Card.CreditCard - type: String - displayName: Credit Card - required: false - - value: Liability.Long Term Liability.NotesPayable - type: String - displayName: Notes Payable - required: false - - value: Liability.Long Term Liability.OtherLongTermLiabilities - type: String - displayName: Other Long Term Liabilities - required: false - - value: Liability.Long Term Liability.ShareholderNotesPayable - type: String - displayName: Shareholder Notes Payable - required: false - - value: Liability.Long Term Liability.AccrualsAndDeferredIncome - type: String - displayName: Accruals And Deferred Income - required: false - - value: Liability.Long Term Liability.AccruedLongLermLiabilities - type: String - displayName: Accrued Long Lerm Liabilities - required: false - - value: Liability.Long Term Liability.AccruedVacationPayable - type: String - displayName: Accrued Vacation Payable - required: false - - value: Liability.Long Term Liability.BankLoans - type: String - displayName: Bank Loans - required: false - - value: Liability.Long Term Liability.DebtsRelatedToParticipatingInterests - type: String - displayName: Debts Related To Participating Interests - required: false - - value: Liability.Long Term Liability.DeferredTaxLiabilities - type: String - displayName: Deferred Tax Liabilities - required: false - - value: Liability.Long Term Liability.GovernmentAndOtherPublicAuthorities - type: String - displayName: Government And Other Public Authorities - required: false - - value: Liability.Long Term Liability.GroupAndAssociates - type: String - displayName: Group And Associates - required: false - - value: Liability.Long Term Liability.LiabilitiesRelatedToAssetsHeldForSale - type: String - displayName: Liabilities Related To Assets Held For Sale - required: false - - value: Liability.Long Term Liability.LongTermBorrowings - type: String - displayName: Long Term Borrowings - required: false - - value: Liability.Long Term Liability.LongTermDebit - type: String - displayName: Long Term Debit - required: false - - value: Liability.Long Term Liability.LongTermEmployeeBenefitObligations - type: String - displayName: Long Term Employee Benefit Obligations - required: false - - value: Liability.Long Term Liability.ObligationsUnderFinanceLeases - type: String - displayName: Obligations Under Finance Leases - required: false - - value: Liability.Long Term Liability.OtherLongTermProvisions - type: String - displayName: Other Long Term Provisions - required: false - - value: Liability.Long Term Liability.ProvisionForLiabilities - type: String - displayName: Provision For Liabilities - required: false - - value: Liability.Long Term Liability.ProvisionsNonCurrentLiabilities - type: String - displayName: Provisions Non Current Liabilities - required: false - - value: Liability.Long Term Liability.StaffAndRelatedLongTermLiabilityAccounts - type: String - displayName: Staff And Related Long Term Liability Accounts - required: false - - value: Liability.Other Current Liability.DirectDepositPayable - type: String - displayName: Direct Deposit Payable - required: false - - value: Liability.Other Current Liability.LineOfCredit - type: String - displayName: Line Of Credit - required: false - - value: Liability.Other Current Liability.LoanPayable - type: String - displayName: Loan Payable - required: false - - value: Liability.Other Current Liability.GlobalTaxPayable - type: String - displayName: Global Tax Payable - required: false - - value: Liability.Other Current Liability.GlobalTaxSuspense - type: String - displayName: Global Tax Suspense - required: false - - value: Liability.Other Current Liability.OtherCurrentLiabilities - type: String - displayName: Other Current Liabilities - required: false - - value: Liability.Other Current Liability.PayrollClearing - type: String - displayName: Payroll Clearing - required: false - - value: Liability.Other Current Liability.PayrollTaxPayable - type: String - displayName: Payroll Tax Payable - required: false - - value: Liability.Other Current Liability.PrepaidExpensesPayable - type: String - displayName: Prepaid Expenses Payable - required: false - - value: Liability.Other Current Liability.RentsInTrustLiability - type: String - displayName: Rents In Trust Liability - required: false - - value: Liability.Other Current Liability.TrustAccountsLiabilities - type: String - displayName: Trust Accounts Liabilities - required: false - - value: Liability.Other Current Liability.FederalIncomeTaxPayable - type: String - displayName: Federal Income Tax Payable - required: false - - value: Liability.Other Current Liability.InsurancePayable - type: String - displayName: Insurance Payable - required: false - - value: Liability.Other Current Liability.SalesTaxPayable - type: String - displayName: Sales Tax Payable - required: false - - value: Liability.Other Current Liability.StateLocalIncomeTaxPayable - type: String - displayName: State Local Income Tax Payable - required: false - - value: Liability.Other Current Liability.AccruedLiabilities - type: String - displayName: Accrued Liabilities - required: false - - value: Liability.Other Current Liability.CurrentLiabilities - type: String - displayName: Current Liabilities - required: false - - value: Liability.Other Current Liability.CurrentPortionEmployeeBenefitsObligations - type: String - displayName: Current Portion EmployeeBenefits Obligations - required: false - - value: Liability.Other Current Liability.CurrentPortionOfObligationsUnderFinanceLeases - type: String - displayName: Current Portion Of Obligations Under Finance Leases - required: false - - value: Liability.Other Current Liability.CurrentTaxLiability - type: String - displayName: Current Tax Liability - required: false - - value: Liability.Other Current Liability.DividendsPayable - type: String - displayName: Dividends Payable - required: false - - value: Liability.Other Current Liability.DutiesAndTaxes - type: String - displayName: Duties And Taxes - required: false - - value: Liability.Other Current Liability.InterestPayables - type: String - displayName: Interest Payables - required: false - - value: Liability.Other Current Liability.ProvisionForWarrantyObligations - type: String - displayName: Provision For Warranty Obligations - required: false - - value: Liability.Other Current Liability.ProvisionsCurrentLiabilities - type: String - displayName: Provisions Current Liabilities - required: false - - value: Liability.Other Current Liability.ShortTermBorrowings - type: String - displayName: Short Term Borrowings - required: false - - value: Liability.Other Current Liability.SocialSecurityAgencies - type: String - displayName: Social Security Agencies - required: false - - value: Liability.Other Current Liability.StaffAndRelatedLiabilityAccounts - type: String - displayName: Staff And Related Liability Accounts - required: false - - value: Liability.Other Current Liability.SundryDebtorsAndCreditors - type: String - displayName: Sundry Debtors And Creditors - required: false - - value: Liability.Other Current Liability.TradeAndOtherPayables - type: String - displayName: Trade And Other Payables - required: false - - value: Equity.Equity.OpeningBalanceEquity - type: String - displayName: Opening Balance Equity - required: false - - value: Equity.Equity.PartnersEquity - type: String - displayName: Partners Equity - required: false - - value: Equity.Equity.RetainedEarnings - type: String - displayName: Retained Earnings - required: false - - value: Equity.Equity.AccumulatedAdjustment - type: String - displayName: Accumulated Adjustment - required: false - - value: Equity.Equity.OwnersEquity - type: String - displayName: Owners Equity - required: false - - value: Equity.Equity.PaidInCapitalOrSurplus - type: String - displayName: Paid In Capital Or Surplus - required: false - - value: Equity.Equity.PartnerContributions - type: String - displayName: Partner Contributions - required: false - - value: Equity.Equity.PartnerDistributions - type: String - displayName: Partner Distributions - required: false - - value: Equity.Equity.PreferredStock - type: String - displayName: Preferred Stock - required: false - - value: Equity.Equity.CommonStock - type: String - displayName: Common Stock - required: false - - value: Equity.Equity.TreasuryStock - type: String - displayName: Treasury Stock - required: false - - value: Equity.Equity.EstimatedTaxes - type: String - displayName: Estimated Taxes - required: false - - value: Equity.Equity.Healthcare - type: String - displayName: Healthcare - required: false - - value: Equity.Equity.PersonalIncome - type: String - displayName: Personal Income - required: false - - value: Equity.Equity.PersonalExpense - type: String - displayName: Personal Expense - required: false - - value: Equity.Equity.AccumulatedOtherComprehensiveIncome - type: String - displayName: Accumulated Other Comprehensive Income - required: false - - value: Equity.Equity.CalledUpShareCapital - type: String - displayName: Called Up Share Capital - required: false - - value: Equity.Equity.CapitalReserves - type: String - displayName: Capital Reserves - required: false - - value: Equity.Equity.DividendDisbursed - type: String - displayName: Dividend Disbursed - required: false - - value: Equity.Equity.EquityInEarningsOfSubsiduaries - type: String - displayName: Equity In Earnings Of Subsiduaries - required: false - - value: Equity.Equity.InvestmentGrants - type: String - displayName: Investment Grants - required: false - - value: Equity.Equity.MoneyReceivedAgainstShareWarrants - type: String - displayName: Money Received Against Share Warrants - required: false - - value: Equity.Equity.OtherFreeReserves - type: String - displayName: Other Free Reserves - required: false - - value: Equity.Equity.ShareApplicationMoneyPendingAllotment - type: String - displayName: Share Application Money Pending Allotment - required: false - - value: Equity.Equity.ShareCapital - type: String - displayName: Share Capital - required: false - - value: Equity.Equity.Funds - type: String - displayName: Funds - required: false - required: true - required: true - Sage Business Cloud Accounting: - value: - type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions - properties: - name: - type: String - displayName: Name - description: Name of the account - required: true - validation: - warnings: [] - information: - - field: Name - details: Should not be longer than 200 characters. - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: true - validation: - warnings: [] - information: - - field: NominalCode - details: Should be a number between 1 and 99999999. - fullyQualifiedCategory: - type: String - displayName: Fully Qualified Category - description: The full category of the account e.g. Liability.Current or Income.Revenue - options: - - value: SALES - type: String - displayName: Sales - required: false - - value: OTHER_INCOME - type: String - displayName: Other Income - required: false - - value: DIRECT_EXPENSES - type: String - displayName: Direct Expenses - required: false - - value: OVERHEADS - type: String - displayName: Overheads - required: false - - value: DEPRECIATION - type: String - displayName: Depreciation - required: false - - value: CURRENT_ASSETS - type: String - displayName: Current Assets - required: false - - value: FIXED_ASSETS - type: String - displayName: Fixed Assets - required: false - - value: FUTURE_ASSETS - type: String - displayName: Future Assets - required: false - - value: BANK - type: String - displayName: Bank - required: false - - value: CURRENT_LIABILITY - type: String - displayName: Current Liability - required: false - - value: FUTURE_LIABILITY - type: String - displayName: Future Liability - required: false - - value: EQUITY - type: String - displayName: Equity - required: false - - value: LINE_OF_CREDIT - type: String - displayName: Credit Card / Loan - required: false - required: true - required: true - Sage Intacct: - value: - type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions - properties: - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: true - validation: - warnings: - - field: NominalCode - details: Must be unique within the entity. - - field: NominalCode - details: 'Must be at most 24 characters in length, although restrictions may vary between entities.' - information: [] - name: - type: String - displayName: Name - description: Name of the account - required: true - status: - type: String - displayName: Account Status - description: The status of the account - options: - - value: Active - type: String - displayName: Active - required: false - - value: Archived - type: String - displayName: Archived - required: false - required: true - type: - type: String - displayName: Account Type - description: 'The type, or base category, of the account' - options: - - value: Asset - type: String - displayName: Asset - required: false - - value: Equity - type: String - displayName: Equity - required: false - - value: Expense - type: String - displayName: Expense - required: false - - value: Income - type: String - displayName: Income - required: false - - value: Liability - type: String - displayName: Liability - required: false - required: true - fullyQualifiedCategory: - type: String - displayName: Fully Qualified Category - description: The full category of the account e.g. Liability.Current or Income.Revenue - required: true - validation: - warnings: [] - information: - - field: FullyQualifiedCategory - details: 'Any category that is part of the hierarchy of one of: ''Assets'', ''Equity'', ''Liabilities'', ''Total Expenses'' and ''Total Income'' is permitted.' - required: true - Sandbox: - value: - type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions - properties: - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: true - name: - type: String - displayName: Name - description: Name of the account - required: true - description: - type: String - displayName: Description - description: Description of the account - required: true - fullyQualifiedCategory: - type: String - displayName: Fully Qualified Category - description: The full category of the account e.g. Liability.Current or Income.Revenue - required: true - fullyQualifiedName: - type: String - displayName: Fully Qualified Name - description: The full name of the account e.g. Liability.Current.VAT or Income.Revenue.Sales - required: true - currency: - type: String - displayName: Currency - description: The currency of the account - required: true - currentBalance: - type: Number - displayName: Current Balance - description: The current balance in the account - required: true - type: - type: String - displayName: Account Type - description: 'The type, or base category, of the account' - required: true - status: - type: String - displayName: Account Status - description: The status of the account - required: true - isBankAccount: - type: Boolean - displayName: Is Bank Account? - description: Confirms whether the nominal account represents a bank account or not - required: true - validDatatypeLinks: - type: Array - displayName: Valid Datatype Links - description: Describes which fields on other data types are valid links to this account in the originating system - properties: - property: - type: String - displayName: Property - description: The field on the source data type that other data types can link to - required: true - links: - type: Array - displayName: Links - description: 'A collection of absolute names of fields from other data types, e.g. Invoice.LineItems.AccountRef.Id' - required: true - required: true - metadata: - type: Object - displayName: Metadata - description: Miscellaneous data about the item - properties: - isDeleted: - type: Boolean - displayName: IsDeleted - description: A boolean to indicate whether the object has been deleted - required: true - required: true - required: true - Xero: - value: - type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions - properties: - nominalCode: - type: String - displayName: Nominal Code - description: Identifier for the nominal account. - required: true - validation: - warnings: - - field: NominalCode - details: Max length of 10 characters. - information: [] - name: - type: String - displayName: Name - description: Name of account as it appears in the chart of accounts or general ledger. - required: true - validation: - warnings: [] - information: - - field: Name - details: Payments are enabled to this account if the name ends in .PaymentsEnabled. - description: - type: String - displayName: Description - description: Description for the nominal account. - required: false - fullyQualifiedCategory: - type: String - displayName: Fully Qualified Category - description: Account type and category for nominal account. - options: - - value: Asset.Current - type: String - displayName: Current Asset - required: false - - value: Asset.Fixed - type: String - displayName: Fixed Asset - required: false - - value: Asset.Inventory - type: String - displayName: Inventory - required: false - - value: Asset.NonCurrent - type: String - displayName: Non-current Asset - required: false - - value: Asset.Prepayment - type: String - displayName: Prepayment - required: false - - value: Expense.DirectCosts - type: String - displayName: Direct Costs - required: false - - value: Expense.Expense - type: String - displayName: Expense - required: false - - value: Expense.Overhead - type: String - displayName: Overhead - required: false - - value: Expense.Superannuation - type: String - displayName: Superannuation - required: false - - value: Expense.Wages - type: String - displayName: Wages - required: false - - value: Income.Sales - type: String - displayName: Sales - required: false - - value: Income.Revenue - type: String - displayName: Revenue - required: false - - value: Income.Other - type: String - displayName: Other Income - required: false - - value: Liability.Current - type: String - displayName: Current Liability - required: false - - value: Liability.Depreciation - type: String - displayName: Depreciation - required: false - - value: Liability.Liability - type: String - displayName: Liability - required: false - - value: Liability.NonCurrent - type: String - displayName: Non Current Liability - required: false - - value: Liability.PayAsYouGo - type: String - displayName: Pay As You Go Liability - required: false - - value: Liability.Superannuation - type: String - displayName: Superannuation Liability - required: false - - value: Liability.WagesPayable - type: String - displayName: Wages Payable Liability - required: false - - value: Equity.Equity - type: String - displayName: Equity - required: false - required: true - required: true - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - operationId: get-create-chartOfAccounts-model - description: |- - The *Get create account model* endpoint returns the expected data for the request payload when creating an [account](https://docs.codat.io/sync-for-expenses-api#/schemas/Account) for a given company and integration. - - [Accounts](https://docs.codat.io/sync-for-expenses-api#/schemas/Account) are the categories a business uses to record accounting transactions. - - **Integration-specific behavior** - - See the *response examples* for integration-specific indicative models. - '/companies/{companyId}/connections/{connectionId}/push/bankAccounts': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/connectionId' - post: - tags: - - Bank accounts - parameters: - - $ref: '#/components/parameters/timeoutInMinutes' - - $ref: '#/components/parameters/allowSyncOnPushComplete' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BankAccount' - examples: - QuickBooks Online: - value: - accountName: GBP Bank Account - accountType: Debit - accountNumber: '12345678' - currency: GBP - status: Active - Xero: - value: - accountName: Xero GBP Bank Account - accountType: Debit - sortCode: '445566' - accountNumber: '12345678' - currency: GBP - status: Active - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/CreateBankAccountResponse' - examples: {} - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - summary: Create bank account - description: "The *Create bank account* endpoint creates a new [bank account](https://docs.codat.io/sync-for-expenses-api#/schemas/BankAccount) for a given company's connection.\r\n\r\n[Bank accounts](https://docs.codat.io/sync-for-expenses-api#/schemas/BankAccount) are financial accounts maintained by a bank or other financial institution.\r\n\r\n**Integration-specific behavior**\r\n\r\nRequired data may vary by integration. To see what data to post, first call [Get create/update bank account model](https://docs.codat.io/sync-for-expenses-api#/operations/get-create-update-bankAccounts-model)." - operationId: create-bank-account + description: |- + The *List bank accounts* endpoint returns a list of [bank accounts](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) for a given company's connection. + + [Bank accounts](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) are financial accounts maintained by a bank or other financial institution. + + Before using this endpoint, you must have [retrieved data for the company](https://docs.codat.io/bank-feeds-api#/operations/refresh-company-data). + '/companies/{companyId}/connections/{connectionId}/options/bankAccounts': parameters: - $ref: '#/components/parameters/companyId' - $ref: '#/components/parameters/connectionId' get: - summary: Get create bank account model + summary: Get create/update bank account model + x-internal: true tags: - Bank accounts responses: @@ -6780,1250 +2164,34 @@ paths: '503': $ref: '#/components/responses/Service-Unavailable' operationId: get-create-bankAccounts-model - description: "The *Get create/update bank account model* endpoint returns the expected data for the request payload when creating and updating a [bank account](https://docs.codat.io/sync-for-expenses-api#/schemas/BankAccount) for a given company and integration.\r\n\r\n[Bank accounts](https://docs.codat.io/sync-for-expenses-api#/schemas/BankAccount) are financial accounts maintained by a bank or other financial institution.\r\n\r\n**Integration-specific behavior**\r\n\r\nSee the *response examples* for integration-specific indicative models.\r\n" - '/companies/{companyId}/data/customers': + description: "The *Get create/update bank account model* endpoint returns the expected data for the request payload when creating and updating a [bank account](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) for a given company and integration.\r\n\r\n[Bank accounts](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) are financial accounts maintained by a bank or other financial institution.\r\n\r\n**Integration-specific behavior**\r\n\r\nSee the *response examples* for integration-specific indicative models.\r\n" + '/companies/{companyId}/connections/{connectionId}/push/bankAccounts': parameters: - $ref: '#/components/parameters/companyId' - get: + - $ref: '#/components/parameters/connectionId' + post: + x-internal: true tags: - - Customers - summary: List customers + - Bank accounts + summary: Create bank account parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/pageSize' - - $ref: '#/components/parameters/query' - - $ref: '#/components/parameters/orderBy' + - $ref: '#/components/parameters/timeoutInMinutes' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BankAccounts/allOf/0/properties/results/items/definitions/bankAccountPrototype' + examples: {} responses: '200': description: Success content: application/json: - schema: - $ref: '#/components/schemas/Customers' - examples: - Clear Books: - value: - results: - - id: c8180244-74ac-40cf-a5df-6d83661c44d7 - customerName: Arjun Kuvalis - contactName: Werner Langworth - emailAddress: Arjun34@hotmail.com - defaultCurrency: GBP - phone: 014605 64820 - addresses: - - type: Delivery - line1: Suite 214 - line2: 8439 Lueilwitz Passage - city: Fernandohaven - region: Northern Ireland - country: United Kingdom - postalCode: JG04 7PV - - type: Delivery - line1: Suite 096 - line2: 864 Halie Course - city: Juliochester - region: England - country: United Kingdom - postalCode: DZ8 4BF - - type: Delivery - line1: Suite 001 - line2: 416 Stokes Fords - city: Naderborough - region: Wales - country: United Kingdom - postalCode: XG25 0XX - contacts: - - name: Werner Langworth - email: Werner_Langworth@hotmail.com - phone: [] - address: - type: Delivery - line1: Apt. 145 - line2: 317 Williamson Freeway - city: Hortenseville - region: Scotland - country: United Kingdom - postalCode: CV4 2HR - status: Active - - name: Belle Glover - email: Belle51@yahoo.com - phone: [] - address: - type: Delivery - line1: Suite 075 - line2: 9921 Dickens Walk - city: South Ali - region: Scotland - country: United Kingdom - postalCode: TI04 4OO - status: Active - registrationNumber: NI7JEJVM - taxNumber: '7505220209.583549' - status: Active - modifiedDate: '2023-04-26T12:38:16Z' - sourceModifiedDate: '2022-07-03T01:27:00' - metadata: - isDeleted: false - - id: 6d162ee4-47b4-46c6-a2e6-aa9edd0fe6b0 - customerName: 'Breitenberg, Emard and Schiller' - contactName: Miguel Hahn - emailAddress: contact@BreitenbergEmardandSchiller.biz - defaultCurrency: GBP - phone: 0800 445 6957 - addresses: - - type: Billing - line1: Apt. 184 - line2: 60578 Louie Springs - city: East Khalid - region: Wales - country: United Kingdom - postalCode: XW89 7NT - contacts: - - name: Miguel Hahn - email: Miguel.Hahn@gmail.com - phone: - - number: 018555 09614 - type: Landline - address: - type: Delivery - line1: Suite 400 - line2: 21930 Milan Lane - city: Reingerton - region: Wales - country: United Kingdom - postalCode: QG10 2DL - status: Active - registrationNumber: KME0AMIL - taxNumber: '8560920952.553111' - status: Archived - modifiedDate: '2023-04-26T12:38:16Z' - sourceModifiedDate: '2022-12-03T11:05:01' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 20 - _links: - current: - href: /companies/354a121b-855f-4d25-90ad-0905b498c1c0/data/customers?page=1&pageSize=2 - self: - href: /companies/354a121b-855f-4d25-90ad-0905b498c1c0/data/customers - next: - href: /companies/354a121b-855f-4d25-90ad-0905b498c1c0/data/customers?page=2&pageSize=2 - Dynamics 365 Business Central: - value: - results: - - id: 0e2f7751-7696-ed11-bff5-6045bd0d2ad6 - customerName: '' - contactName: '' - emailAddress: '' - defaultCurrency: GBP - phone: '' - addresses: - - type: Billing - line1: '' - line2: '' - city: '' - region: '' - country: '' - postalCode: '' - contacts: - - name: '' - email: '' - phone: [] - address: - type: Billing - line1: '' - line2: '' - city: '' - region: '' - country: '' - postalCode: '' - status: Active - taxNumber: '' - status: Active - modifiedDate: '2023-03-27T14:21:25Z' - sourceModifiedDate: '2023-01-17T14:50:54Z' - metadata: - isDeleted: false - - id: 0ef95175-48c4-eb11-9f0a-0022481b4343 - customerName: '' - contactName: '' - emailAddress: '' - defaultCurrency: GBP - phone: '' - addresses: - - type: Billing - line1: '' - line2: '' - city: '' - region: '' - country: GB - postalCode: '' - contacts: - - name: '' - email: '' - phone: [] - address: - type: Billing - line1: '' - line2: '' - city: '' - region: '' - country: GB - postalCode: '' - status: Active - taxNumber: '' - status: Active - modifiedDate: '2023-03-27T14:21:25Z' - sourceModifiedDate: '2021-06-03T08:48:36Z' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 42 - _links: - current: - href: /companies/d6849caf-c146-41be-8335-b73346e3bd84/data/customers?page=1&pageSize=2 - self: - href: /companies/d6849caf-c146-41be-8335-b73346e3bd84/data/customers - next: - href: /companies/d6849caf-c146-41be-8335-b73346e3bd84/data/customers?page=2&pageSize=2 - Exact (Netherlands): - value: - results: - - id: 555f8251-c65a-433a-a813-5dbe04321d1e - customerName: Ab Netherlands - defaultCurrency: EUR - addresses: - - type: Billing - country: NL - contacts: [] - status: Active - modifiedDate: '2022-10-26T13:32:05Z' - sourceModifiedDate: '2021-06-14T15:26:37Z' - - id: 9fd1f78e-67aa-4af7-8a10-df1fc5fb5841 - customerName: anna test 2 - defaultCurrency: EUR - addresses: - - type: Billing - country: NL - contacts: [] - status: Active - modifiedDate: '2022-10-26T13:32:05Z' - sourceModifiedDate: '2022-05-24T11:53:21Z' - pageNumber: 1 - pageSize: 2 - totalResults: 71 - _links: - current: - href: /companies/b83b1923-4db6-45a8-a779-b4e320c15979/data/customers?page=1&pageSize=2 - self: - href: /companies/b83b1923-4db6-45a8-a779-b4e320c15979/data/customers - next: - href: /companies/b83b1923-4db6-45a8-a779-b4e320c15979/data/customers?page=2&pageSize=2 - Exact (UK): - value: - results: - - id: 5f20075a-a28e-434d-81a6-2db0dc170e87 - customerName: Abdi 99 - emailAddress: email@codat.io - defaultCurrency: GBP - addresses: - - type: Billing - line1: Ink Rooms - city: London - country: GB - postalCode: WC1X 0BE - contacts: [] - registrationNumber: '123456789' - taxNumber: GB339 0727 47 - status: Active - modifiedDate: '2022-10-26T13:33:08Z' - sourceModifiedDate: '2020-02-26T11:23:50Z' - - id: 1d9dc1a7-92d6-441b-93fd-42c9fb321b1c - customerName: Abdulbasit Al-haj - contactName: abeee - emailAddress: a.alhaj@codat.io - defaultCurrency: GBP - addresses: - - type: Billing - country: GB - contacts: - - name: abeee - phone: [] - address: - type: Unknown - line1: '' - country: 'GB ' - status: Active - modifiedDate: '2020-02-24T12:00:51.027Z' - status: Active - modifiedDate: '2022-10-26T13:33:08Z' - sourceModifiedDate: '2020-02-24T12:00:50Z' - pageNumber: 1 - pageSize: 2 - totalResults: 53 - _links: - current: - href: /companies/d95030cd-22b2-482b-9c7b-2980dcc2b1ce/data/customers?page=1&pageSize=2 - self: - href: /companies/d95030cd-22b2-482b-9c7b-2980dcc2b1ce/data/customers - next: - href: /companies/d95030cd-22b2-482b-9c7b-2980dcc2b1ce/data/customers?page=2&pageSize=2 - FreeAgent: - value: - results: - - id: '11526230' - customerName: '-' - contactName: Test 1 - addresses: - - type: Billing - line1: 1 Place House - line2: '' - city: London - country: United Kingdom - postalCode: WC1X 1AH - contacts: - - name: Test 1 - phone: [] - address: - type: Billing - line1: 1 Place House - line2: '' - city: London - country: United Kingdom - postalCode: WC1X 1AH - status: Unknown - status: Active - modifiedDate: '2023-04-25T14:19:12Z' - sourceModifiedDate: '2023-04-17T06:02:46Z' - metadata: - isDeleted: false - - id: '9677150' - customerName: '-' - contactName: Test 1 - addresses: - - type: Billing - line1: 1 Place House - line2: '' - city: London - country: United Kingdom - postalCode: WC1X 1AH - contacts: - - name: Test 1 - phone: [] - address: - type: Billing - line1: 1 Place House - line2: '' - city: London - country: United Kingdom - postalCode: WC1X 1AH - status: Unknown - status: Active - modifiedDate: '2023-04-25T14:19:12Z' - sourceModifiedDate: '2023-04-24T06:19:23Z' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 159 - _links: - current: - href: /companies/071ad738-68f3-4561-afd0-69bab9df0803/data/customers?page=1&pageSize=2 - self: - href: /companies/071ad738-68f3-4561-afd0-69bab9df0803/data/customers - next: - href: /companies/071ad738-68f3-4561-afd0-69bab9df0803/data/customers?page=2&pageSize=2 - FreshBooks: - value: - results: - - id: '634509' - customerName: A test customer 14 (updated) - contactName: test person name - emailAddress: test14@example.com - defaultCurrency: GBP - phone: 01876 541245 - addresses: - - type: Billing - line1: Line 1 - line2: Line 2 - city: Some city - region: A region - country: Country 1 - postalCode: SW1 2JQ - contacts: - - name: test person1 - email: test14A@example.com - phone: - - number: '24681012' - type: Primary - - number: '121086420' - type: Unknown - status: Active - - name: test person2 - email: test14B@example.com - phone: - - number: 1234 56789 - type: Primary - - number: 9876 54321 - type: Unknown - status: Active - - name: test person name - email: test14@example.com - phone: - - number: 01876 541245 - type: Unknown - status: Active - status: Active - modifiedDate: '2023-03-24T16:07:23Z' - sourceModifiedDate: '2022-05-18T09:23:56' - metadata: - isDeleted: false - - id: '634486' - customerName: A test customer name 2 - contactName: test person name - emailAddress: test8@example.com - defaultCurrency: GBP - phone: 01876 541245 - addresses: - - type: Billing - line1: Line 1 - line2: Line 2 - city: Some city - region: A region - country: Country 1 - postalCode: SW1 2JQ - contacts: - - name: test person1 - email: test9@example.com - phone: - - number: '24681012' - type: Primary - - number: '121086420' - type: Unknown - status: Active - - name: test person2 - email: test10@example.com - phone: - - number: '123456789' - type: Primary - - number: '987654321' - type: Unknown - status: Active - - name: test person name - email: test8@example.com - phone: - - number: 01876 541245 - type: Unknown - status: Active - status: Active - modifiedDate: '2023-03-24T16:07:23Z' - sourceModifiedDate: '2022-05-11T11:39:58' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 39 - _links: - current: - href: /companies/3691c49e-0db4-4172-b3ab-e4084c365013/data/customers?page=1&pageSize=2 - self: - href: /companies/3691c49e-0db4-4172-b3ab-e4084c365013/data/customers - next: - href: /companies/3691c49e-0db4-4172-b3ab-e4084c365013/data/customers?page=2&pageSize=2 - KashFlow: - value: - results: - - id: '92227673' - customerName: Chekko Customer Test 01 - contactName: '' - emailAddress: '' - phone: '' - addresses: [] - contacts: - - name: '' - email: '' - phone: [] - status: Active - taxNumber: '' - status: Active - modifiedDate: '2022-09-30T10:29:15Z' - sourceModifiedDate: '0001-01-01T00:00:00' - - id: '88459410' - customerName: Diogo Sousa - contactName: Mr Diogo Sousa - emailAddress: diogomail@mail.com - phone: '123123123' - addresses: - - type: Billing - line1: Billing Address - line2: Billing line 2 Billing line 3 - city: Billing line 4 - country: United Kingdom - postalCode: '123321' - - type: Delivery - line1: Delivery Address - line2: Delivery line2 Delivery line3 - city: Delivery line4 - country: United Kingdom - postalCode: '123321' - contacts: - - name: Mr Diogo Sousa - email: diogomail@mail.com - phone: - - number: '123123123' - type: Landline - - number: '321321321' - type: Mobile - address: - type: Billing - line1: Billing Address - line2: Billing line 2 Billing line 3 - city: Billing line 4 - country: United Kingdom - postalCode: '123321' - status: Active - - name: Mr Diogo Sousa - phone: [] - address: - type: Delivery - line1: Delivery Address - line2: Delivery line2 Delivery line3 - city: Delivery line4 - country: United Kingdom - postalCode: '123321' - status: Active - taxNumber: '' - status: Active - modifiedDate: '2022-09-30T10:29:15Z' - sourceModifiedDate: '2021-05-04T13:22:19' - pageNumber: 1 - pageSize: 2 - totalResults: 10 - _links: - current: - href: /companies/3a707a99-89da-4b16-a5d6-595333a16352/data/customers?page=1&pageSize=2 - self: - href: /companies/3a707a99-89da-4b16-a5d6-595333a16352/data/customers - next: - href: /companies/3a707a99-89da-4b16-a5d6-595333a16352/data/customers?page=2&pageSize=2 - Oracle NetSuite: - value: - results: - - id: '773' - customerName: 119 Test Customer - contactName: Mr Test Customer - defaultCurrency: GBP - addresses: [] - contacts: [] - status: Active - modifiedDate: '2023-01-30T14:48:02Z' - sourceModifiedDate: '2022-01-11T12:28:49' - - id: '172722' - customerName: 1248 European Company - contactName: European Company - defaultCurrency: GBP - addresses: [] - contacts: [] - status: Active - modifiedDate: '2023-01-30T14:48:02Z' - sourceModifiedDate: '2022-07-27T14:29:16' - pageNumber: 1 - pageSize: 2 - totalResults: 4 - _links: - current: - href: /companies/d5074b08-6a34-4b06-a742-236edf5dc4f1/data/customers?page=1&pageSize=2 - self: - href: /companies/d5074b08-6a34-4b06-a742-236edf5dc4f1/data/customers - next: - href: /companies/d5074b08-6a34-4b06-a742-236edf5dc4f1/data/customers?page=2&pageSize=2 - QuickBooks Desktop: - value: - results: - - id: 150000-933272658 - customerName: 'Abercrombie, Kristy' - contactName: Kristy Abercrombie - emailAddress: kristy@samplename.com - defaultCurrency: GBP - phone: 415-555-6579 - addresses: - - type: Delivery - line1: Kristy Abercrombie - line2: 5647 Cypress Hill Rd - city: Bayshore - region: CA - postalCode: '94326' - - type: Billing - line1: Kristy Abercrombie - line2: 5647 Cypress Hill Rd - city: Bayshore - region: CA - postalCode: '94326' - contacts: - - name: 'Abercrombie, Kristy' - email: kristy@samplename.com - phone: - - number: 415-555-6579 - type: Primary - status: Active - - name: Kristy Abercrombie - phone: [] - status: Active - - name: Steve Darcangelo - phone: [] - status: Active - status: Active - modifiedDate: '2023-04-26T09:07:55Z' - sourceModifiedDate: '2023-12-16T05:06:42' - metadata: - isDeleted: false - - id: 800000D0-1182061376 - customerName: 'Allard, Robert' - contactName: Amanda Roberts - emailAddress: rallard@myemail.com - defaultCurrency: GBP - phone: 650-555-3422 - addresses: - - type: Delivery - line1: Robert Allard - line2: 92834 Chandler St. - city: Millbrae - region: CA - postalCode: '94030' - - type: Billing - line1: Robert Allard - line2: 92834 Chandler St. - city: Millbrae - region: CA - postalCode: '94030' - contacts: - - name: 'Allard, Robert' - email: rallard@myemail.com - phone: - - number: 650-555-3422 - type: Primary - - number: 650-555-9804 - type: Fax - - number: 650-555-8349 - type: Unknown - status: Active - - name: Robert Allard - phone: [] - status: Active - - name: Rachel Fisher - phone: [] - status: Active - status: Active - modifiedDate: '2023-04-26T09:07:55Z' - sourceModifiedDate: '2023-12-16T05:06:42' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 64 - _links: - current: - href: /companies/fc72ba08-af13-4474-b28a-01dcfa6cfb51/data/customers?page=1&pageSize=2 - self: - href: /companies/fc72ba08-af13-4474-b28a-01dcfa6cfb51/data/customers - next: - href: /companies/fc72ba08-af13-4474-b28a-01dcfa6cfb51/data/customers?page=2&pageSize=2 - QuickBooks Online: - value: - results: - - id: '9' - customerName: Abe - contactName: Abraham's Company - emailAddress: ab@email.com - defaultCurrency: GBP - addresses: [] - contacts: - - name: Abe - email: ab@email.com - phone: - - number: '01111111111' - type: Mobile - status: Active - registrationNumber: XXXX9900001 - taxNumber: XXXX9900001 - status: Active - modifiedDate: '2023-01-18T11:02:35Z' - sourceModifiedDate: '2022-12-08T15:42:59Z' - - id: '49' - customerName: adeel qbo child test - contactName: Adeel test - emailAddress: adeel@adeel.com - defaultCurrency: GBP - phone: '123456789' - addresses: - - type: Billing - line1: 4 Privet Drive - city: London - country: United Kingdom - postalCode: WD25 7LR - - type: Delivery - line1: 4 Privet Drive - city: London - country: United Kingdom - postalCode: WD25 7LR - contacts: - - name: Adeel test - email: adeel@adeel.com - phone: - - number: '123456789' - type: Primary - - number: '07546543216' - type: Mobile - address: - type: Billing - line1: 4 Privet Drive - city: London - country: United Kingdom - postalCode: WD25 7LR - status: Active - status: Active - modifiedDate: '2023-01-18T11:02:35Z' - sourceModifiedDate: '2022-08-22T09:21:09Z' - pageNumber: 1 - pageSize: 2 - totalResults: 40 - _links: - current: - href: /companies/10818b5e-6e6a-4ed4-a1c5-3e3efe626e87/data/customers?page=1&pageSize=2 - self: - href: /companies/10818b5e-6e6a-4ed4-a1c5-3e3efe626e87/data/customers - next: - href: /companies/10818b5e-6e6a-4ed4-a1c5-3e3efe626e87/data/customers?page=2&pageSize=2 - QuickBooks Online Sandbox: - value: - results: - - id: '66' - customerName: Abercrombie International Group - contactName: Kristy Abercrombie - defaultCurrency: GBP - addresses: - - type: Billing - line1: 123 Main St - city: 'New York, NY' - contacts: - - name: Abercrombie International Group (deleted) - phone: [] - address: - type: Billing - line1: 123 Main St - city: 'New York, NY' - status: Archived - status: Archived - modifiedDate: '2023-04-26T09:35:56Z' - sourceModifiedDate: '2016-09-12T18:53:19Z' - metadata: - isDeleted: false - - id: '67' - customerName: Abercrombie International Group - contactName: Natalie Watts - emailAddress: n.watts@google.com - defaultCurrency: USD - addresses: - - type: Billing - - type: Delivery - contacts: - - name: Abercrombie International Group - email: n.watts@google.com - phone: [] - address: - type: Billing - status: Active - registrationNumber: XXXXVat123456 - taxNumber: XXXXVat123456 - status: Active - modifiedDate: '2023-04-26T09:35:56Z' - sourceModifiedDate: '2023-03-29T01:12:55Z' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 243 - _links: - current: - href: /companies/5a7f3597-36e1-4216-86fe-289ad36088a6/data/customers?page=1&pageSize=2 - self: - href: /companies/5a7f3597-36e1-4216-86fe-289ad36088a6/data/customers - next: - href: /companies/5a7f3597-36e1-4216-86fe-289ad36088a6/data/customers?page=2&pageSize=2 - Sage 200cloud: - value: - results: - - id: A1D001 - customerName: A1 Design Services - contactName: Lee Dalkin - emailAddress: newbusinessadvice@sage.com - defaultCurrency: GBP - phone: 01742 876 234 - addresses: - - type: Delivery - line1: 67a Station Road - line2: '' - city: Blackpool - region: Lancashire - country: '' - postalCode: BP12 7HT - - type: Delivery - line1: 23a Union Street - line2: '' - city: Manchester - region: '' - country: '' - postalCode: M2 6JK - - type: Billing - line1: 67a Station Road - line2: '' - city: Blackpool - region: Lancashire - country: Great Britain - postalCode: BP12 7HT - contacts: - - name: Lee Dalkin - email: newbusinessadvice@sage.com - phone: - - number: 01742 876 234 - type: Landline - - number: 01742 876 235 - type: Landline - - number: 01742 876 236 - type: Fax - status: Active - - name: Malcolm Leverret - email: '' - phone: [] - status: Active - - name: Jim Thomas - email: Jim@a1designservices.co.uk - phone: - - number: 01742 876 234 - type: Landline - - number: 01742 876 235 - type: Fax - status: Active - - name: Jullian Plawsworth - email: Jullian@a1designservices.co.uk - phone: - - number: 0151 349 3939 - type: Landline - - number: 0151 349 3940 - type: Fax - status: Active - registrationNumber: '' - taxNumber: GB238 3839 38 - status: Active - modifiedDate: '2022-10-14T09:35:53Z' - sourceModifiedDate: '2022-04-27T15:17:36Z' - - id: A1D002 - customerName: A2 Design Services - contactName: Lee Dalkin - emailAddress: newbusinessadvice@sage.com - defaultCurrency: GBP - phone: 01742 876 234 - addresses: - - type: Billing - line1: 77a Station Road - line2: '' - city: Blackpool - region: Lancashire - country: Great Britain - postalCode: BP12 7HT - contacts: - - name: Lee Dalkin - email: newbusinessadvice@sage.com - phone: - - number: 01742 876 234 - type: Landline - - number: 01742 876 235 - type: Landline - - number: 01742 876 236 - type: Fax - status: Active - - name: Malcolm Leverret - email: '' - phone: [] - status: Active - - name: Jim Thomas - email: Jim@a1designservices.co.uk - phone: - - number: 01742 876 234 - type: Landline - - number: 01742 876 235 - type: Fax - status: Active - - name: Jullian Plawsworth - email: Jullian@a1designservices.co.uk - phone: - - number: 0151 349 3939 - type: Landline - - number: 0151 349 3940 - type: Fax - status: Active - registrationNumber: '' - taxNumber: GB238 3839 40 - status: Active - modifiedDate: '2022-10-14T09:35:53Z' - sourceModifiedDate: '2020-09-23T10:28:58Z' - pageNumber: 1 - pageSize: 2 - totalResults: 43 - _links: - current: - href: /companies/93c21e2d-049c-4d24-b41b-57e61c30b69e/data/customers?page=1&pageSize=2 - self: - href: /companies/93c21e2d-049c-4d24-b41b-57e61c30b69e/data/customers - next: - href: /companies/93c21e2d-049c-4d24-b41b-57e61c30b69e/data/customers?page=2&pageSize=2 - Sage 50 (UK): - value: - results: - - id: A1D001 - customerName: A1 Design Services - contactName: Ian Cairns - emailAddress: newbusinessadvice@sage.com - defaultCurrency: GBP - phone: 01742 876 234 - addresses: - - type: Delivery - line1: 67a Station Road - line2: '' - city: Blackpool - region: Lancashire - country: GB - postalCode: BP12 7HT - - type: Delivery - line1: 23a Union Street - line2: '' - city: Manchester - region: '' - country: GB - postalCode: M2 6JK - - type: Unknown - line1: 67a Station Road - line2: '' - city: Blackpool - region: Lancashire - country: GB - postalCode: BP12 7HT - contacts: [] - taxNumber: GB238 3839 38 - status: Active - modifiedDate: '2023-03-30T14:42:41Z' - sourceModifiedDate: '2022-11-25T09:43:54Z' - metadata: - isDeleted: false - - id: ABS001 - customerName: ABS Garages Ltd - contactName: Mike Hall - emailAddress: newbusinessadvice@sage.com - defaultCurrency: GBP - phone: 0191 254 5909 - addresses: - - type: Delivery - line1: Swanson Industries - line2: Dukes Industrial Estate - city: Whitley Bay - region: North Tyneside - country: GB - postalCode: NE56 4ER - - type: Delivery - line1: Unit 34 - line2: Holystone Ind Estate - city: Hebburn - region: Tyne & Wear - country: GB - postalCode: NE31 1VB - - type: Unknown - line1: Unit 34 - line2: Holystone Ind Estate - city: Hebburn - region: Tyne & Wear - country: GB - postalCode: NE31 1VB - contacts: [] - taxNumber: GB745 4584 68 - status: Active - modifiedDate: '2023-03-30T14:42:41Z' - sourceModifiedDate: '2022-11-25T09:43:54Z' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 30 - _links: - current: - href: /companies/cf5f2a47-2990-4221-bae6-0c19c86ac304/data/customers?page=1&pageSize=2 - self: - href: /companies/cf5f2a47-2990-4221-bae6-0c19c86ac304/data/customers - next: - href: /companies/cf5f2a47-2990-4221-bae6-0c19c86ac304/data/customers?page=2&pageSize=2 - Sage Business Cloud Accounting: - value: - results: - - id: 260f6a3f94a243738f2d5e08496a41a8 - customerName: 100 test name - contactName: Main Contact - emailAddress: email@codat.io - defaultCurrency: GBP - phone: contact phone number - addresses: - - type: Billing - line1: Aruba Address line 1 - line2: Aruba Address line 2 - city: Aruba City - region: Aruba Province - country: Aruba (AW) - postalCode: Aruba Post - contacts: - - phone: - - number: contact mobile number - type: Mobile - - number: contact fax number - type: Fax - status: Unknown - status: Active - modifiedDate: '2022-10-24T14:52:54Z' - sourceModifiedDate: '2021-05-10T16:31:51Z' - - id: 44a5d9461d9e4f6d90a5ace251c5cf35 - customerName: 100 test name DS - contactName: Main Contact - emailAddress: DCemail@codat.io - defaultCurrency: GBP - phone: contact phone number - addresses: - - type: Billing - line1: POST - Aruba Address line 1 - line2: POST - Aruba Address line 2 - city: POST - Aruba City - region: Aruba Province - country: Aruba (AW) - postalCode: Aruba Post - contacts: [] - status: Active - modifiedDate: '2022-10-24T14:52:54Z' - sourceModifiedDate: '2021-06-10T14:22:46Z' - pageNumber: 1 - pageSize: 2 - totalResults: 168 - _links: - current: - href: /companies/390083e2-351b-407c-a3be-55081c36c182/data/customers?page=1&pageSize=2 - self: - href: /companies/390083e2-351b-407c-a3be-55081c36c182/data/customers - next: - href: /companies/390083e2-351b-407c-a3be-55081c36c182/data/customers?page=2&pageSize=2 - Sage Intacct: - value: - results: - - id: '188' - customerName: 33Across - contactName: Yuna Conn - defaultCurrency: USD - phone: 520-393-4468 - addresses: - - type: Unknown - line1: 155 Westend Point - line2: '' - city: Albuquerque - region: NM - country: United States - postalCode: '87140' - contacts: - - name: 'Conn, Yuna' - phone: - - number: 520-393-4468 - type: Primary - address: - type: Unknown - line1: 155 Westend Point - line2: '' - city: Albuquerque - region: NM - country: United States - postalCode: '87140' - status: Unknown - taxNumber: '' - status: Active - modifiedDate: '2023-04-04T16:32:21Z' - sourceModifiedDate: '2022-09-06T12:58:27' - metadata: - isDeleted: false - - id: '324' - customerName: 3Way International Logistics - contactName: Lauri O'Heagertie - defaultCurrency: CAD - phone: 410-309-3976 - addresses: - - type: Unknown - line1: 7 Lerdahl Junction - line2: '' - city: Sparwood - region: British Columbia - country: Canada - postalCode: L4R - contacts: - - name: 'O''Heagertie, Lauri' - phone: - - number: 410-309-3976 - type: Primary - address: - type: Unknown - line1: 7 Lerdahl Junction - line2: '' - city: Sparwood - region: British Columbia - country: Canada - postalCode: L4R - status: Unknown - taxNumber: '' - status: Active - modifiedDate: '2023-04-04T16:32:21Z' - sourceModifiedDate: '2020-10-20T05:01:49' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 530 - _links: - current: - href: /companies/df02b289-cb16-4964-ac4d-9fd60b04538e/data/customers?page=1&pageSize=2 - self: - href: /companies/df02b289-cb16-4964-ac4d-9fd60b04538e/data/customers - next: - href: /companies/df02b289-cb16-4964-ac4d-9fd60b04538e/data/customers?page=2&pageSize=2 - Wave: - value: - results: - - id: QnVzaW5lc3M6ZTI0OGQyZDctMWE5Ni00YTk4LWFkOTEtMDdlMGYyMmNhNmE2O0N1c3RvbWVyOjMyMzkzNTA4 - customerName: ABC Textiles - contactName: '' - emailAddress: c.taylor@codat.io - defaultCurrency: USD - addresses: [] - contacts: [] - status: Active - modifiedDate: '2022-11-16T18:15:30Z' - sourceModifiedDate: '2019-10-17T07:59:04Z' - - id: QnVzaW5lc3M6ZTI0OGQyZDctMWE5Ni00YTk4LWFkOTEtMDdlMGYyMmNhNmE2O0N1c3RvbWVyOjM3MTUzNDI2 - customerName: Coffee Cart - contactName: Coffee Carl - emailAddress: coffee.cart@example.com - defaultCurrency: GBP - phone: '0201111' - addresses: - - type: Billing - line1: 11 Coffee Lane - line2: Coffee Town - city: Coffee City - region: Hampshire - country: United Kingdom - postalCode: CC1 1CC - contacts: - - name: Coffee Carl - phone: - - number: '07733' - type: Mobile - status: Active - status: Active - modifiedDate: '2022-11-16T18:15:30Z' - sourceModifiedDate: '2020-03-17T19:12:39Z' - pageNumber: 1 - pageSize: 2 - totalResults: 10 - _links: - current: - href: /companies/0b22b59d-b4e5-4c35-b03f-88bbbcb41256/data/customers?page=1&pageSize=2 - self: - href: /companies/0b22b59d-b4e5-4c35-b03f-88bbbcb41256/data/customers - next: - href: /companies/0b22b59d-b4e5-4c35-b03f-88bbbcb41256/data/customers?page=2&pageSize=2 - Xero: - value: - results: - - id: e4c9d0e2-c285-4e85-b579-6d28b180c730 - customerName: 24 Locks - emailAddress: '' - addresses: [] - contacts: [] - status: Active - modifiedDate: '2023-03-15T20:35:10Z' - sourceModifiedDate: '2023-02-17T18:03:42' - metadata: - isDeleted: false - - id: bab779bc-c5fb-42cb-a888-953e8309711c - customerName: 7-Eleven - emailAddress: '' - addresses: [] - contacts: [] - status: Active - modifiedDate: '2023-03-15T20:35:10Z' - sourceModifiedDate: '2023-02-17T18:03:42' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 48 - _links: - current: - href: /companies/5ced9667-a310-443a-a711-958d36377141/data/customers?page=1&pageSize=2 - self: - href: /companies/5ced9667-a310-443a-a711-958d36377141/data/customers - next: - href: /companies/5ced9667-a310-443a-a711-958d36377141/data/customers?page=2&pageSize=2 - Zoho Books: - value: - results: - - id: '104957000000032105' - customerName: A B - contactName: Contact (First Name) Contact (Last Name) - emailAddress: contactperson@whateveryouwantidontcare12345.com - defaultCurrency: GBP - phone: Work Phone - addresses: [] - contacts: - - name: Contact (First Name) Contact (Last Name) - email: contactperson@whateveryouwantidontcare12345.com - phone: - - number: Work Phone - type: Landline - - number: Mobile - type: Mobile - status: Active - status: Active - modifiedDate: '2022-10-03T08:40:37Z' - sourceModifiedDate: '2022-06-09T14:36:47' - - id: '104957000000054050' - customerName: 'Doe, John' - contactName: John Doe - emailAddress: '' - defaultCurrency: GBP - addresses: [] - contacts: - - name: John Doe - email: '' - phone: [] - status: Active - status: Active - modifiedDate: '2022-10-03T08:40:37Z' - sourceModifiedDate: '2022-09-28T15:09:22' - pageNumber: 1 - pageSize: 2 - totalResults: 14 - _links: - current: - href: /companies/d0b68840-db50-4bc3-b88c-96e225333fea/data/customers?page=1&pageSize=2 - self: - href: /companies/d0b68840-db50-4bc3-b88c-96e225333fea/data/customers - next: - href: /companies/d0b68840-db50-4bc3-b88c-96e225333fea/data/customers?page=2&pageSize=2 + schema: + $ref: '#/components/schemas/BankAccounts/allOf/0/properties/results/items/definitions/bankAccountCreateResponse' + examples: {} '400': - $ref: '#/components/responses/Malformed-Query' + $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '402': @@ -8032,556 +2200,222 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' - '409': - $ref: '#/components/responses/Conflict' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' + description: "The *Create bank account* endpoint creates a new [bank account](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) for a given company's connection.\r\n\r\n[Bank accounts](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) are financial accounts maintained by a bank or other financial institution.\r\n\r\n**Integration-specific behavior**\r\n\r\nRequired data may vary by integration. To see what data to post, first call [Get create/update bank account model](https://docs.codat.io/bank-feeds-api#/operations/get-create-update-bankAccounts-model)." + operationId: create-bank-account + '/companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts/batch': + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + post: + tags: + - Source accounts + summary: Create source accounts description: |- - The *List customers* endpoint returns a list of [customers](https://docs.codat.io/sync-for-expenses-api#/schemas/Customer) for a given company's connection. + The _Batch create source accounts_ endpoint allows you to create multiple representations of your SMB's bank accounts within Codat's domain. The company can then map the source account to an existing or new target account in their accounting software. - [Customers](https://docs.codat.io/sync-for-expenses-api#/schemas/Customer) are people or organizations that buy goods or services from the SMB. - - Before using this endpoint, you must have [retrieved data for the company](https://docs.codat.io/sync-for-expenses-api#/operations/refresh-company-data). - - operationId: list-customers - '/companies/{companyId}/data/customers/{customerId}': + > ### Versioning + > If you are integrating the Bank Feeds solution with Codat after August 1, 2024, please use the v2 version of the API, as detailed in the schema below. For integrations completed before August 1, 2024, select the v1 version from the schema dropdown below. + operationId: create-batch-source-account + x-speakeasy-name-override: create-batch + requestBody: + content: + application/json: + schema: + oneOf: + - type: array + items: + $ref: '#/components/schemas/SourceAccountV2/definitions/sourceAccountV2Prototype' + - type: array + items: + $ref: '#/components/schemas/SourceAccount/definitions/sourceAccountPrototype' + responses: + '201': + description: Success + content: + application/json: + schema: + type: array + items: + oneOf: + - $ref: '#/components/schemas/SourceAccountV2BatchCreateResponse' + - $ref: '#/components/schemas/SourceAccountBatchCreateResponse' + '207': + description: Multi-Status + content: + application/json: + schema: + type: array + items: + oneOf: + - $ref: '#/components/schemas/SourceAccountV2BatchCreateResponse' + - $ref: '#/components/schemas/SourceAccountBatchCreateResponse' + - $ref: '#/components/schemas/SourceAccountBatchErrorResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '409': + description: Conflict + content: + application/json: + schema: + type: array + items: + oneOf: + - $ref: '#/components/schemas/SourceAccountV2BatchCreateResponse' + - $ref: '#/components/schemas/SourceAccountBatchCreateResponse' + - $ref: '#/components/schemas/SourceAccountBatchErrorResponse' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts': parameters: - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/customerId' + - $ref: '#/components/parameters/connectionId' + post: + tags: + - Source accounts + summary: Create single source account + description: |- + The _Create Source Account_ endpoint allows you to create a representation of a bank account within Codat's domain. The company can then map the source account to an existing or new target account in their accounting software. + + > ### Versioning + > If you are integrating the Bank Feeds solution with Codat after August 1, 2024, please use the v2 version of the API, as detailed in the schema below. For integrations completed before August 1, 2024, select the v1 version from the schema dropdown below. + operationId: create-source-account + requestBody: + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/SourceAccountV2/definitions/sourceAccountV2Prototype' + - $ref: '#/components/schemas/SourceAccount/definitions/sourceAccountPrototype' + examples: + Version 2: + value: + id: acc-001 + accountName: account-081 + accountType: checking + accountNumber: '12345670' + routingInfo: + bankCode: 021001088 + type: bankcode + currency: GBP + balance: 99.99 + accountInfo: + description: account description 1 + nickname: account 123 + accountOpenDate: '2023-05-06' + availableBalance: 10 + modifiedDate: '2024-08-02T00:00:00.000Z' + Version 1: + value: + id: acc-002 + accountName: account-081 + sortCode: '123456' + accountType: Credit + accountNumber: '12345670' + currency: GBP + balance: 99.99 + modifiedDate: '2023-01-09T14:14:14.1057478Z' + responses: + '200': + description: Success + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/SourceAccountV2' + - $ref: '#/components/schemas/SourceAccount' + examples: {} + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' get: tags: - - Customers - summary: Get customer + - Source accounts + summary: List source accounts + description: "\uFEFFThe _List source accounts_ endpoint returns a list of [source accounts](https://docs.codat.io/bank-feeds-api#/schemas/BankFeedAccount) for a given company's connection.\n\n[Source accounts](https://docs.codat.io/bank-feeds-api#/schemas/BankFeedAccount) are the bank's bank account within Codat's domain from which transactions are synced into the accounting platform.\n\n> ### Versioning\n> If you are integrating the Bank Feeds solution with Codat after August 1, 2024, please use the v2 version of the API, as detailed in the schema below. For integrations completed before August 1, 2024, select the v1 version from the schema dropdown below." + operationId: list-source-accounts responses: '200': description: Success content: application/json: schema: - $ref: '#/components/schemas/Customer' - examples: - Clear Books: - value: - id: c8180244-74ac-40cf-a5df-6d83661c44d7 - customerName: Arjun Kuvalis - contactName: Werner Langworth - emailAddress: Arjun34@hotmail.com - defaultCurrency: GBP - phone: 014605 64820 - addresses: - - type: Delivery - line1: Suite 214 - line2: 8439 Lueilwitz Passage - city: Fernandohaven - region: Northern Ireland - country: United Kingdom - postalCode: JG04 7PV - - type: Delivery - line1: Suite 096 - line2: 864 Halie Course - city: Juliochester - region: England - country: United Kingdom - postalCode: DZ8 4BF - - type: Delivery - line1: Suite 001 - line2: 416 Stokes Fords - city: Naderborough - region: Wales - country: United Kingdom - postalCode: XG25 0XX - contacts: - - name: Werner Langworth - email: Werner_Langworth@hotmail.com - phone: [] - address: - type: Delivery - line1: Apt. 145 - line2: 317 Williamson Freeway - city: Hortenseville - region: Scotland - country: United Kingdom - postalCode: CV4 2HR - status: Active - - name: Belle Glover - email: Belle51@yahoo.com - phone: [] - address: - type: Delivery - line1: Suite 075 - line2: 9921 Dickens Walk - city: South Ali - region: Scotland - country: United Kingdom - postalCode: TI04 4OO - status: Active - registrationNumber: NI7JEJVM - taxNumber: '7505220209.583549' - status: Active - modifiedDate: '2023-04-26T12:38:16Z' - sourceModifiedDate: '2022-07-03T01:27:00' - metadata: - isDeleted: false - Dynamics 365 Business Central: - value: - id: 0e2f7751-7696-ed11-bff5-6045bd0d2ad6 - customerName: '' - contactName: '' - emailAddress: '' - defaultCurrency: GBP - phone: '' - addresses: - - type: Billing - line1: '' - line2: '' - city: '' - region: '' - country: '' - postalCode: '' - contacts: - - name: '' - email: '' - phone: [] - address: - type: Billing - line1: '' - line2: '' - city: '' - region: '' - country: '' - postalCode: '' - status: Active - taxNumber: '' - status: Active - modifiedDate: '2023-03-27T14:21:25Z' - sourceModifiedDate: '2023-01-17T14:50:54Z' - metadata: - isDeleted: false - Exact (Netherlands): - value: - id: 555f8251-c65a-433a-a813-5dbe04321d1e - customerName: Ab Netherlands - defaultCurrency: EUR - addresses: - - type: Billing - country: NL - contacts: [] - status: Active - modifiedDate: '2022-10-26T13:32:05Z' - sourceModifiedDate: '2021-06-14T15:26:37Z' - Exact (UK): - value: - id: 5f20075a-a28e-434d-81a6-2db0dc170e87 - customerName: Abdi 99 - emailAddress: email@codat.io - defaultCurrency: GBP - addresses: - - type: Billing - line1: Ink Rooms - city: London - country: GB - postalCode: WC1X 0BE - contacts: [] - registrationNumber: '123456789' - taxNumber: GB339 0727 47 - status: Active - modifiedDate: '2022-10-26T13:33:08Z' - sourceModifiedDate: '2020-02-26T11:23:50Z' - FreeAgent: - value: - id: '11526230' - customerName: '-' - contactName: Test 1 - addresses: - - type: Billing - line1: 1 Place House - line2: '' - city: London - country: United Kingdom - postalCode: WC1X 1AH - contacts: - - name: Test 1 - phone: [] - address: - type: Billing - line1: 1 Place House - line2: '' - city: London - country: United Kingdom - postalCode: WC1X 1AH - status: Unknown - status: Active - modifiedDate: '2023-04-25T14:19:12Z' - sourceModifiedDate: '2023-04-17T06:02:46Z' - metadata: - isDeleted: false - FreshBooks: - value: - id: '634509' - customerName: A test customer 14 (updated) - contactName: test person name - emailAddress: test14@example.com - defaultCurrency: GBP - phone: 01876 541245 - addresses: - - type: Billing - line1: Line 1 - line2: Line 2 - city: Some city - region: A region - country: Country 1 - postalCode: SW1 2JQ - contacts: - - name: test person1 - email: test14A@example.com - phone: - - number: '24681012' - type: Primary - - number: '121086420' - type: Unknown - status: Active - - name: test person2 - email: test14B@example.com - phone: - - number: '123456789' - type: Primary - - number: '987654321' - type: Unknown - status: Active - - name: test person name - email: test14@example.com - phone: - - number: 01876 541245 - type: Unknown - status: Active - status: Active - modifiedDate: '2023-03-24T16:07:23Z' - sourceModifiedDate: '2022-05-18T09:23:56' - metadata: - isDeleted: false - KashFlow: - value: - id: '92227673' - customerName: Chekko Customer Test 01 - contactName: '' - emailAddress: '' - phone: '' - addresses: [] - contacts: - - name: '' - email: '' - phone: [] - status: Active - taxNumber: '' - status: Active - modifiedDate: '2022-09-30T10:29:15Z' - sourceModifiedDate: '0001-01-01T00:00:00' - Oracle NetSuite: - value: - id: '773' - customerName: 119 Test Customer - contactName: Mr Test Customer - defaultCurrency: GBP - addresses: [] - contacts: [] - status: Active - modifiedDate: '2023-01-30T14:48:02Z' - sourceModifiedDate: '2022-01-11T12:28:49' - QuickBooks Desktop: - value: - id: 150000-933272658 - customerName: 'Abercrombie, Kristy' - contactName: Kristy Abercrombie - emailAddress: kristy@samplename.com - defaultCurrency: GBP - phone: 415-555-6579 - addresses: - - type: Delivery - line1: Kristy Abercrombie - line2: 5647 Cypress Hill Rd - city: Bayshore - region: CA - postalCode: '94326' - - type: Billing - line1: Kristy Abercrombie - line2: 5647 Cypress Hill Rd - city: Bayshore - region: CA - postalCode: '94326' - contacts: - - name: 'Abercrombie, Kristy' - email: kristy@samplename.com - phone: - - number: 415-555-6579 - type: Primary - status: Active - - name: Kristy Abercrombie - phone: [] - status: Active - - name: Steve Darcangelo - phone: [] - status: Active - status: Active - modifiedDate: '2023-04-26T09:07:55Z' - sourceModifiedDate: '2023-12-16T05:06:42' - metadata: - isDeleted: false - QuickBooks Online: - value: - id: '9' - customerName: Abe - contactName: Abraham's Company - emailAddress: ab@email.com - defaultCurrency: GBP - addresses: [] - contacts: - - name: Abe - email: ab@email.com - phone: - - number: '01111111111' - type: Mobile - status: Active - registrationNumber: XXXX9900001 - taxNumber: XXXX9900001 - status: Active - modifiedDate: '2023-01-18T11:02:35Z' - sourceModifiedDate: '2022-12-08T15:42:59Z' - QuickBooks Online Sandbox: - value: - id: '66' - customerName: Abercrombie International Group - contactName: Kristy Abercrombie - defaultCurrency: GBP - addresses: - - type: Billing - line1: 123 Main St - city: 'New York, NY' - contacts: - - name: Abercrombie International Group (deleted) - phone: [] - address: - type: Billing - line1: 123 Main St - city: 'New York, NY' - status: Archived - status: Archived - modifiedDate: '2023-04-26T09:35:56Z' - sourceModifiedDate: '2016-09-12T18:53:19Z' - metadata: - isDeleted: false - Sage 200cloud: - value: - id: A1D001 - customerName: A1 Design Services - contactName: Lee Dalkin - emailAddress: newbusinessadvice@sage.com - defaultCurrency: GBP - phone: 01742 876 234 - addresses: - - type: Delivery - line1: 67a Station Road - line2: '' - city: Blackpool - region: Lancashire - country: '' - postalCode: BP12 7HT - - type: Delivery - line1: 23a Union Street - line2: '' - city: Manchester - region: '' - country: '' - postalCode: M2 6JK - - type: Billing - line1: 67a Station Road - line2: '' - city: Blackpool - region: Lancashire - country: Great Britain - postalCode: BP12 7HT - contacts: - - name: Lee Dalkin - email: newbusinessadvice@sage.com - phone: - - number: 01742 876 234 - type: Landline - - number: 01742 876 235 - type: Landline - - number: 01742 876 236 - type: Fax - status: Active - - name: Malcolm Leverret - email: '' - phone: [] - status: Active - - name: Jim Thomas - email: Jim@a1designservices.co.uk - phone: - - number: 01742 876 234 - type: Landline - - number: 01742 876 235 - type: Fax - status: Active - - name: Jullian Plawsworth - email: Jullian@a1designservices.co.uk - phone: - - number: 0151 349 3939 - type: Landline - - number: 0151 349 3940 - type: Fax - status: Active - registrationNumber: '' - taxNumber: GB238 3839 38 - status: Active - modifiedDate: '2022-10-14T09:35:53Z' - sourceModifiedDate: '2022-04-27T15:17:36Z' - Sage 50 (UK): - value: - id: A1D001 - customerName: A1 Design Services - contactName: Ian Cairns - emailAddress: newbusinessadvice@sage.com - defaultCurrency: GBP - phone: 01742 876 234 - addresses: - - type: Delivery - line1: 67a Station Road - line2: '' - city: Blackpool - region: Lancashire - country: GB - postalCode: BP12 7HT - - type: Delivery - line1: 23a Union Street - line2: '' - city: Manchester - region: '' - country: GB - postalCode: M2 6JK - - type: Unknown - line1: 67a Station Road - line2: '' - city: Blackpool - region: Lancashire - country: GB - postalCode: BP12 7HT - contacts: [] - taxNumber: GB238 3839 38 - status: Active - modifiedDate: '2023-03-30T14:42:41Z' - sourceModifiedDate: '2022-11-25T09:43:54Z' - metadata: - isDeleted: false - Sage Business Cloud Accounting: - value: - id: 260f6a3f94a243738f2d5e08496a41a8 - customerName: 100 test name - contactName: Main Contact - emailAddress: email@codat.io - defaultCurrency: GBP - phone: contact phone number - addresses: - - type: Billing - line1: Aruba Address line 1 - line2: Aruba Address line 2 - city: Aruba City - region: Aruba Province - country: Aruba (AW) - postalCode: Aruba Post - contacts: - - phone: - - number: contact mobile number - type: Mobile - - number: contact fax number - type: Fax - status: Unknown - status: Active - modifiedDate: '2022-10-24T14:52:54Z' - sourceModifiedDate: '2021-05-10T16:31:51Z' - Sage Intacct: - value: - id: '188' - customerName: 33Across - contactName: Yuna Conn - defaultCurrency: USD - phone: 520-393-4468 - addresses: - - type: Unknown - line1: 155 Westend Point - line2: '' - city: Albuquerque - region: NM - country: United States - postalCode: '87140' - contacts: - - name: 'Conn, Yuna' - phone: - - number: 520-393-4468 - type: Primary - address: - type: Unknown - line1: 155 Westend Point - line2: '' - city: Albuquerque - region: NM - country: United States - postalCode: '87140' - status: Unknown - taxNumber: '' - status: Active - modifiedDate: '2023-04-04T16:32:21Z' - sourceModifiedDate: '2022-09-06T12:58:27' - metadata: - isDeleted: false - Wave: - value: - id: QnVzaW5lc3M6ZTI0OGQyZDctMWE5Ni00YTk4LWFkOTEtMDdlMGYyMmNhNmE2O0N1c3RvbWVyOjMyMzkzNTA4 - customerName: ABC Textiles - contactName: '' - emailAddress: c.taylor@codat.io - defaultCurrency: USD - addresses: [] - contacts: [] - status: Active - modifiedDate: '2022-11-16T18:15:30Z' - sourceModifiedDate: '2019-10-17T07:59:04Z' - Xero: - value: - id: e4c9d0e2-c285-4e85-b579-6d28b180c730 - customerName: 24 Locks - emailAddress: '' - addresses: [] - contacts: [] - status: Active - modifiedDate: '2023-03-15T20:35:10Z' - sourceModifiedDate: '2023-02-17T18:03:42' - metadata: - isDeleted: false - Zoho Books: - value: - id: '104957000000032105' - customerName: A B - contactName: Contact (First Name) Contact (Last Name) - emailAddress: contactperson@whateveryouwantidontcare12345.com - defaultCurrency: GBP - phone: Work Phone - addresses: [] - contacts: - - name: Contact (First Name) Contact (Last Name) - email: contactperson@whateveryouwantidontcare12345.com - phone: - - number: Work Phone - type: Landline - - number: Mobile - type: Mobile - status: Active - status: Active - modifiedDate: '2022-10-03T08:40:37Z' - sourceModifiedDate: '2022-06-09T14:36:47' + oneOf: + - $ref: '#/components/schemas/SourceAccountV2/definitions/sourceAccounts' + - $ref: '#/components/schemas/SourceAccount/definitions/sourceAccounts' + examples: {} + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts/{accountId}': + patch: + tags: + - Source accounts + summary: Update source account + description: "\uFEFFThe _Update source account_ endpoint updates a single source account for a single data connection connected to a single company.\n\n### Tips and pitfalls\n\n* This endpoint makes it possible to update the `accountName`, `status`, and `balance` fields.\n * The `status` field can only be updated to 'disconnected'.\n * The `balance` field can only be updated on accounts that are **not** 'connected'.\n* Updates made here apply exclusively to source accounts and will not affect target accounts in the accounting software." + operationId: update-source-account + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + - $ref: '#/components/parameters/accountId' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SourceAccount' + examples: {} + responses: + '200': + description: Success + content: + application/json: + x-speakeasy-usage-example: true + schema: + $ref: '#/components/schemas/SourceAccount' + examples: {} + '400': + $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '402': @@ -8590,44 +2424,183 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' - '409': - $ref: '#/components/responses/Conflict' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' + delete: + tags: + - Source accounts + summary: Delete source account description: | - The *Get customer* endpoint returns a single customer for a given customerId. + The _Delete source account_ endpoint enables you to remove a source account. - [Customers](https://docs.codat.io/sync-for-expenses-api#/schemas/Customer) are people or organizations that buy goods or services from the SMB. + Removing a source account will also remove any mapping between the source bank feed bank accounts and the target bankfeed bank account. + operationId: delete-source-account + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + - $ref: '#/components/parameters/accountId' + responses: + '204': + description: No Content + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts/credentials': + post: + tags: + - Source accounts + summary: Generate source account credentials + description: "\uFEFFThe _Generate bank account credentials_ endpoint can be used to generate credentials for QuickBooks Online to authenticate the Bank Feed in the QBO portal. Each time this endpoint is called, a new set of credentials will be generated.\n\nThe old credentials will still be valid until the revoke credentials endpoint is used, which will revoke all credentials associated to the data connection.\n\n> **For QuickBooks Online only**\n>\n> Only call this endpoint when onboarding SMBs that use QuickBooks Online." + operationId: generate-credentials + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + requestBody: + required: true + content: + application/json: {} + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BankAccountCredentials' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + delete: + tags: + - Source accounts + summary: Delete all source account credentials + x-speakeasy-name-override: delete-credentials + description: |- + The _Delete Bank Account Credentials_ endpoint serves as a comprehensive mechanism for revoking all existing authorization credentials that a company employs to establish its Bank Feed connection. - Before using this endpoint, you must have [retrieved data for the company](https://docs.codat.io/sync-for-expenses-api#/operations/refresh-company-data). - operationId: get-customer - '/companies/{companyId}/connections/{connectionId}/push/customers': + In cases where multiple credential sets have been generated, a single API call to this endpoint revokes all of them. + operationId: delete-bank-feed-credentials + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + responses: + '204': + description: No Content + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/connections/{connectionId}/bankFeedAccounts/mapping': parameters: - $ref: '#/components/parameters/companyId' - $ref: '#/components/parameters/connectionId' + get: + tags: + - Account mapping + summary: List bank feed accounts + description: "\uFEFFThe *List bank accounts* endpoint returns information about a source bank account and any current or potential target mapping accounts.\n\nA bank feed account mapping is a specified link between the source account (provided by the Codat user) and the target account (the end user's account in the underlying software).\n\n> **For custom builds only**\n> \n> Only use this endpoint if you are building your own account management UI." + operationId: get-bank-account-mapping + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BankFeedMapping/definitions/bankFeedMappings' + examples: + Example: + value: + - sourceAccountId: account-001 + status: pending + targetAccountOptions: + - name: Money Bank account + id: d21e25d6-98c5-4bfb-b469-105833bea3c8 + accountNumber: '789' + sortCode: '123456' + - name: Bank of Dave account + id: d06ff4b2-e4f2-4681-9841-014bd008cdab + accountNumber: '99887766' + sortCode: '998866' + - name: LuxLend account + id: c8f252fc-84f3-4a8b-ace8-ae99f41a81ae + accountNumber: '123456789' + sortCode: '123456' + sourceAccountName: account-001 + sourceAccountNumber: '12345670' + sourceBalance: 99.99 + sourceCurrency: GBP + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' post: tags: - - Customers - summary: Create customer - parameters: - - $ref: '#/components/parameters/timeoutInMinutes' - - $ref: '#/components/parameters/allowSyncOnPushComplete' + - Account mapping + summary: Create bank feed account mapping + description: "\uFEFFThe *Create bank account mapping* endpoint creates a new mapping between a source bank account and a potential account in the accounting software (target account).\n\nA bank feed account mapping is a specified link between the source account (provided by the Codat user) and the target account (the end user's account in the underlying software).\n\nTo find valid target account options, first call the [List bank feed account mappings](https://docs.codat.io//bank-feeds-api#/operations/get-bank-account-mapping) endpoint.\n\n> **For custom builds only**\n>\n> Only use this endpoint if you are building your own account management UI.\n\n#### Account mapping variability\n\nThe method of mapping the source account to the target account varies depending on the accounting software your company uses.\n\n#### Mapping options:\n\n1. **API Mapping**: Integrate the mapping journey directly into your application for a seamless user experience.\n2. **Codat UI Mapping**: If you prefer a quicker setup, you can utilize Codat's provided user interface for mapping.\n3. **Accounting Platform Mapping**: For some accounting software, the mapping process must be conducted within the software itself.\n\n### Integration-specific behavior\n\n| Bank Feed Integration | API Mapping | Codat UI Mapping | Accounting Platform Mapping |\n| --------------------- | ----------- | ---------------- | --------------------------- |\n| Xero | ✅ | ✅ | |\n| FreeAgent | ✅ | ✅ | |\n| Oracle NetSuite | ✅ | ✅ | |\n| Exact Online (NL) | ✅ | ✅ | |\n| QuickBooks Online | | | ✅ |\n| Sage | | | ✅ |" + operationId: create-bank-account-mapping requestBody: content: application/json: schema: - $ref: '#/components/schemas/Customer' + $ref: '#/components/schemas/BankFeedAccountMapping' + examples: + Example: + value: + sourceAccountId: acc-002 + targetAccountId: account-081 responses: '200': description: Success content: application/json: schema: - $ref: '#/components/schemas/CreateCustomerResponse' + $ref: '#/components/schemas/BankFeedAccountMappingResponse' examples: {} '400': $ref: '#/components/responses/BadRequest' @@ -8645,40 +2618,34 @@ paths: $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' - operationId: create-customer - description: |- - The *Create customer* endpoint creates a new [customer](https://docs.codat.io/sync-for-expenses-api#/schemas/Customer) for a given company's connection. - - [Customers](https://docs.codat.io/sync-for-expenses-api#/schemas/Customer) are people or organizations that buy goods or services from the SMB. - - **Integration-specific behavior** - - Required data may vary by integration. To see what data to post, first call [Get create/update customer model](https://docs.codat.io/sync-for-expenses-api#/operations/get-create-update-customers-model). - '/companies/{companyId}/connections/{connectionId}/push/customers/{customerId}': + '/companies/{companyId}/connections/{connectionId}/bankFeeds/info': parameters: - $ref: '#/components/parameters/companyId' - $ref: '#/components/parameters/connectionId' - - $ref: '#/components/parameters/customerId' - put: + get: + summary: Get company information + description: |- + Use the *Get company information* endpoint to return information about the company available from the underlying accounting software. + + ### Supported Integrations + | Integration | Supported | + |-----------------------|-----------| + | Oracle NetSuite | Yes | + | Xero | Yes | + | Exact | No | + | FreeAgent | No | + | Sage | No | + | QuickBooks Online | No | + operationId: get-company-information tags: - - Customers - summary: Update customer - parameters: - - $ref: '#/components/parameters/timeoutInMinutes' - - $ref: '#/components/parameters/allowSyncOnPushComplete' - - $ref: '#/components/parameters/forceUpdate' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Customer' + - Company information responses: '200': description: Success content: application/json: schema: - $ref: '#/components/schemas/UpdateCustomerResponse' + $ref: '#/components/schemas/CompanyInformation' examples: {} '400': $ref: '#/components/responses/BadRequest' @@ -8696,801 +2663,178 @@ paths: $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' - description: |- - The *Update customer* endpoint updates an existing [customer](https://docs.codat.io/sync-for-expenses-api#/schemas/Customer) for a given company's connection. - - [Customers](https://docs.codat.io/sync-for-expenses-api#/schemas/Customer) are people or organizations that buy goods or services from the SMB. - - **Integration-specific behavior** - - Required data may vary by integration. To see what data to post, first call [Get create/update customer model](https://docs.codat.io/sync-for-expenses-api#/operations/get-create-update-customers-model). - operationId: update-customer - '/companies/{companyId}/data/suppliers': + '/companies/{companyId}/connections/{connectionId}/bankFeeds/otp': parameters: - $ref: '#/components/parameters/companyId' - get: + - $ref: '#/components/parameters/connectionId' + post: tags: - - Suppliers - summary: List suppliers - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/pageSize' - - $ref: '#/components/parameters/query' - - $ref: '#/components/parameters/orderBy' + - Source accounts + summary: Generate one-time password + description: | + The *Generate OTP* endpoint generates a one-time password (OTP) for a bank feed connection. The OTP is returned along with an expiry time, after which it will no longer be valid. + + > **For Sage only** + > + > Only call this endpoint for connections to Sage. Calling it for other integrations will return an error. + operationId: generate-otp responses: '200': description: Success content: application/json: schema: - $ref: '#/components/schemas/Suppliers' - examples: - Clear Books: - value: - results: - - id: owQ2Gqgj9f - supplierName: Abshire - Kshlerin - contactName: Faye Hansen - emailAddress: hello@Abshire-Kshlerin.info - phone: 01338 858162 - addresses: - - type: Delivery - line1: Suite 431 - line2: 289 Giles Lake - city: Cesarmouth - region: Northern Ireland - country: United Kingdom - postalCode: BG40 9GP - registrationNumber: VYL1XZXR - taxNumber: '1396267523.0914588' - status: Active - modifiedDate: '2023-04-26T12:38:17Z' - sourceModifiedDate: '1660-11-28T23:18:00' - defaultCurrency: GBP - metadata: - isDeleted: false - - id: FyUkHbZxhn - supplierName: Arjun Kuvalis - contactName: Werner Langworth - emailAddress: Arjun34@hotmail.com - phone: 0116 796 3163 - addresses: - - type: Delivery - line1: Suite 214 - line2: 8439 Lueilwitz Passage - city: Fernandohaven - region: Northern Ireland - country: United Kingdom - postalCode: JG04 7PV - - type: Delivery - line1: Suite 096 - line2: 864 Halie Course - city: Juliochester - region: England - country: United Kingdom - postalCode: DZ8 4BF - - type: Delivery - line1: Suite 001 - line2: 416 Stokes Fords - city: Naderborough - region: Wales - country: United Kingdom - postalCode: XG25 0XX - registrationNumber: NI7JEJVM - taxNumber: '7505220209.583549' - status: Active - modifiedDate: '2023-04-26T12:38:17Z' - sourceModifiedDate: '0177-04-27T11:56:00' - defaultCurrency: GBP - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 100 - _links: - current: - href: /companies/354a121b-855f-4d25-90ad-0905b498c1c0/data/suppliers?page=1&pageSize=2 - self: - href: /companies/354a121b-855f-4d25-90ad-0905b498c1c0/data/suppliers - next: - href: /companies/354a121b-855f-4d25-90ad-0905b498c1c0/data/suppliers?page=2&pageSize=2 - Dynamics 365 Business Central: - value: - results: - - id: 78623f13-931e-eb11-bbf8-0022481b3585 - supplierName: '' - contactName: '' - emailAddress: '' - phone: '' - addresses: - - type: Billing - line1: '' - line2: '' - city: '' - region: '' - country: GB - postalCode: '' - taxNumber: '' - status: Active - modifiedDate: '2023-03-27T14:21:12Z' - sourceModifiedDate: '2020-11-04T11:44:22Z' - defaultCurrency: GBP - metadata: - isDeleted: false - - id: be49ec62-6754-ed11-946f-0022481b67d1 - supplierName: '' - contactName: '' - emailAddress: '' - phone: '' - addresses: - - type: Billing - line1: '' - line2: '' - city: '' - region: '' - country: GB - postalCode: '' - taxNumber: '' - status: Active - modifiedDate: '2023-03-27T14:21:12Z' - sourceModifiedDate: '2022-10-25T13:17:36Z' - defaultCurrency: GBP - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 31 - _links: - current: - href: /companies/d6849caf-c146-41be-8335-b73346e3bd84/data/suppliers?page=1&pageSize=2 - self: - href: /companies/d6849caf-c146-41be-8335-b73346e3bd84/data/suppliers - next: - href: /companies/d6849caf-c146-41be-8335-b73346e3bd84/data/suppliers?page=2&pageSize=2 - Exact (Netherlands): - value: - results: - - id: 3150917c-1d92-4d77-9018-31b5c4758ca9 - supplierName: Abe - contactName: Kelly's Contact Name - emailAddress: sales@kellysupplies.com - phone: 07999 999999 - addresses: - - type: Billing - line1: Unit 51 - city: Bakersfield - region: California - country: US - postalCode: '933081' - registrationNumber: '8409314368' - status: Active - modifiedDate: '2022-10-26T13:32:05Z' - sourceModifiedDate: '2022-07-15T12:01:15Z' - defaultCurrency: EUR - - id: 00014c12-2616-481a-a2e8-31bdf2497775 - supplierName: Ann's test supplier 2 - contactName: Ann's contact name - emailAddress: anna@anna888888.com - phone: '55555555' - addresses: - - type: Billing - line1: line1 - line2: line2 - city: city - region: region - country: RU - postalCode: postal - registrationNumber: '55566677788899944455' - taxNumber: RU4444444 - status: Active - modifiedDate: '2022-10-26T13:32:05Z' - sourceModifiedDate: '2021-06-09T12:04:08Z' - defaultCurrency: USD - pageNumber: 1 - pageSize: 2 - totalResults: 73 - _links: - current: - href: /companies/b83b1923-4db6-45a8-a779-b4e320c15979/data/suppliers?page=1&pageSize=2 - self: - href: /companies/b83b1923-4db6-45a8-a779-b4e320c15979/data/suppliers - next: - href: /companies/b83b1923-4db6-45a8-a779-b4e320c15979/data/suppliers?page=2&pageSize=2 - Exact (UK): - value: - results: - - id: 0185fea2-0298-445b-909a-0db685118a9e - supplierName: a - addresses: - - type: Billing - country: GB - status: Active - modifiedDate: '2022-10-26T13:33:13Z' - sourceModifiedDate: '2017-08-02T10:58:54Z' - defaultCurrency: GBP - - id: 64ae712f-4155-48bb-9fce-98232c51d979 - supplierName: aa - addresses: - - type: Billing - country: GB - status: Active - modifiedDate: '2022-10-26T13:33:13Z' - sourceModifiedDate: '2020-05-01T14:05:46Z' - defaultCurrency: GBP - pageNumber: 1 - pageSize: 2 - totalResults: 118 - _links: - current: - href: /companies/d95030cd-22b2-482b-9c7b-2980dcc2b1ce/data/suppliers?page=1&pageSize=2 - self: - href: /companies/d95030cd-22b2-482b-9c7b-2980dcc2b1ce/data/suppliers - next: - href: /companies/d95030cd-22b2-482b-9c7b-2980dcc2b1ce/data/suppliers?page=2&pageSize=2 - FreeAgent: - value: - results: - - id: '11526230' - supplierName: '-' - contactName: Test 1 - addresses: - - type: Billing - line1: 1 Place House - line2: '' - city: London - country: United Kingdom - postalCode: WC1X 1AH - status: Active - modifiedDate: '2023-04-25T14:19:08Z' - sourceModifiedDate: '2023-04-17T06:02:46' - metadata: - isDeleted: false - - id: '9677150' - supplierName: '-' - contactName: Test 1 - addresses: - - type: Billing - line1: 1 Place House - line2: '' - city: London - country: United Kingdom - postalCode: WC1X 1AH - status: Active - modifiedDate: '2023-04-25T14:19:08Z' - sourceModifiedDate: '2023-04-24T06:19:23' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 159 - _links: - current: - href: /companies/071ad738-68f3-4561-afd0-69bab9df0803/data/suppliers?page=1&pageSize=2 - self: - href: /companies/071ad738-68f3-4561-afd0-69bab9df0803/data/suppliers - next: - href: /companies/071ad738-68f3-4561-afd0-69bab9df0803/data/suppliers?page=2&pageSize=2 - FreshBooks: - value: - results: - - id: api vendor - supplierName: api vendor - addresses: [] - status: Active - modifiedDate: '2023-03-24T16:07:25Z' - metadata: - isDeleted: false - - id: DUndsRykrmy8kFsc+FvYk29YkJze4zSjGecoF4YcUEhVU7auJ5JkQA0VjXptZ7XQ+D4n6WoxFIkaGY2V/t4flA== - supplierName: 'Chekko Test merchant 100 - Test Very long name: ORIG CO NAME:AMERICAN EXPRESS ORIG ID:9493560001 DESC DATE:220307 CO ENTRY DESCR:ACH PMT SEC:CCD TRACE#:021000023255482 EED:220307 IND ID:A4670 IND NAME:Rick Sanchez' - addresses: [] - status: Active - modifiedDate: '2023-03-24T16:07:25Z' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 7 - _links: - current: - href: /companies/3691c49e-0db4-4172-b3ab-e4084c365013/data/suppliers?page=1&pageSize=2 - self: - href: /companies/3691c49e-0db4-4172-b3ab-e4084c365013/data/suppliers - next: - href: /companies/3691c49e-0db4-4172-b3ab-e4084c365013/data/suppliers?page=2&pageSize=2 - KashFlow: - value: - results: - - id: '6202387' - supplierName: Dell - contactName: '' - emailAddress: '' - phone: '' - addresses: [] - taxNumber: '' - status: Unknown - modifiedDate: '2022-09-30T10:29:15Z' - sourceModifiedDate: '2017-05-09T00:00:00' - - id: '9338173' - supplierName: Home - contactName: '' - emailAddress: '' - phone: '' - addresses: [] - taxNumber: '' - status: Unknown - modifiedDate: '2022-09-30T10:29:15Z' - sourceModifiedDate: '1990-01-01T00:00:00' - pageNumber: 1 - pageSize: 2 - totalResults: 7 - _links: - current: - href: /companies/3a707a99-89da-4b16-a5d6-595333a16352/data/suppliers?page=1&pageSize=2 - self: - href: /companies/3a707a99-89da-4b16-a5d6-595333a16352/data/suppliers - next: - href: /companies/3a707a99-89da-4b16-a5d6-595333a16352/data/suppliers?page=2&pageSize=2 - Oracle NetSuite: - value: - results: - - id: '779' - supplierName: Test Vendor - contactName: Test Vendor - emailAddress: '' - phone: '' - addresses: [] - status: Active - modifiedDate: '2023-01-30T14:47:02Z' - sourceModifiedDate: '2022-02-04T14:24:43' - defaultCurrency: GBP - - id: '726' - supplierName: Vendor -.A - contactName: Vendor -.A - emailAddress: '' - phone: '' - addresses: [] - status: Active - modifiedDate: '2023-01-30T14:47:02Z' - sourceModifiedDate: '2021-03-26T09:53:15' - defaultCurrency: GBP - pageNumber: 1 - pageSize: 2 - totalResults: 6 - _links: - current: - href: /companies/d5074b08-6a34-4b06-a742-236edf5dc4f1/data/suppliers?page=1&pageSize=2 - self: - href: /companies/d5074b08-6a34-4b06-a742-236edf5dc4f1/data/suppliers - next: - href: /companies/d5074b08-6a34-4b06-a742-236edf5dc4f1/data/suppliers?page=2&pageSize=2 - QuickBooks Desktop: - value: - results: - - id: A60000-1197760912 - supplierName: A Cheung Limited - contactName: Angela Cheung - emailAddress: AC@CheungLimited.com - phone: 510 555 5723 - addresses: - - type: Billing - line1: 'A Cheung Limited, Angela Cheung' - line2: 3818 Bear Rd. West - city: Berkeley - region: CA - postalCode: '94688' - status: Active - modifiedDate: '2023-04-26T09:09:03Z' - sourceModifiedDate: '2023-12-16T05:06:44' - defaultCurrency: GBP - metadata: - isDeleted: false - - id: A40000-1197774038 - supplierName: Bank of Anycity - contactName: Lisa D. Holzhauser - emailAddress: lisah@samplename.com - phone: 415-555-9135 - addresses: - - type: Billing - line1: 'Bank of Anycity, Lisa Holzhauser' - line2: 1935 Main Street - city: Middlefield - region: CA - postalCode: '94482' - status: Active - modifiedDate: '2023-04-26T09:09:03Z' - sourceModifiedDate: '2023-12-16T05:06:44' - defaultCurrency: GBP - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 54 - _links: - current: - href: /companies/fc72ba08-af13-4474-b28a-01dcfa6cfb51/data/suppliers?page=1&pageSize=2 - self: - href: /companies/fc72ba08-af13-4474-b28a-01dcfa6cfb51/data/suppliers - next: - href: /companies/fc72ba08-af13-4474-b28a-01dcfa6cfb51/data/suppliers?page=2&pageSize=2 - QuickBooks Online: - value: - results: - - id: '41' - supplierName: AI Support - contactName: AI Support - addresses: - - type: Billing - line1: test - region: string - country: Djibouti - status: Active - modifiedDate: '2023-01-18T11:02:36Z' - sourceModifiedDate: '2022-12-07T10:48:18Z' - defaultCurrency: GBP - - id: '42' - supplierName: AI Support 2 - contactName: AI Support 2 - addresses: - - type: Billing - line1: test - region: string - country: DJ - status: Active - modifiedDate: '2023-01-18T11:02:36Z' - sourceModifiedDate: '2021-08-31T08:45:02Z' - defaultCurrency: GBP - pageNumber: 1 - pageSize: 2 - totalResults: 23 - _links: - current: - href: /companies/10818b5e-6e6a-4ed4-a1c5-3e3efe626e87/data/suppliers?page=1&pageSize=2 - self: - href: /companies/10818b5e-6e6a-4ed4-a1c5-3e3efe626e87/data/suppliers - next: - href: /companies/10818b5e-6e6a-4ed4-a1c5-3e3efe626e87/data/suppliers?page=2&pageSize=2 - QuickBooks Online Sandbox: - value: - results: - - id: '129' - supplierName: Ally Johnson - contactName: Miss Smith - phone: 0728 38474 - addresses: - - type: Billing - line1: 100 London Road - line2: Angel - city: London - region: Greater London - country: England - postalCode: EC1M - status: Active - modifiedDate: '2023-04-26T09:35:55Z' - sourceModifiedDate: '2023-04-13T01:51:08Z' - defaultCurrency: GBP - metadata: - isDeleted: false - - id: '88' - supplierName: Andrew Haberbosch - addresses: [] - status: Active - modifiedDate: '2023-04-26T09:35:55Z' - sourceModifiedDate: '2022-07-06T15:55:28Z' - defaultCurrency: GBP - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 64 - _links: - current: - href: /companies/5a7f3597-36e1-4216-86fe-289ad36088a6/data/suppliers?page=1&pageSize=2 - self: - href: /companies/5a7f3597-36e1-4216-86fe-289ad36088a6/data/suppliers - next: - href: /companies/5a7f3597-36e1-4216-86fe-289ad36088a6/data/suppliers?page=2&pageSize=2 - Sage 200cloud: - value: - results: - - id: '776' - supplierName: Aaren - contactName: '' - emailAddress: '' - phone: '' - addresses: - - type: Unknown - line1: '' - line2: '' - city: '' - region: '' - country: Great Britain - postalCode: '' - taxNumber: '' - status: Archived - modifiedDate: '2022-10-14T09:35:58Z' - defaultCurrency: GBP - metadata: - isDeleted: true - - id: '914' - supplierName: Aaren - contactName: '' - emailAddress: '' - phone: '' - addresses: - - type: Unknown - line1: '' - line2: '' - city: '' - region: '' - country: Great Britain - postalCode: '' - taxNumber: '' - status: Archived - modifiedDate: '2022-10-14T09:35:58Z' - defaultCurrency: GBP - metadata: - isDeleted: true - pageNumber: 1 - pageSize: 2 - totalResults: 943 - _links: - current: - href: /companies/93c21e2d-049c-4d24-b41b-57e61c30b69e/data/suppliers?page=1&pageSize=2 - self: - href: /companies/93c21e2d-049c-4d24-b41b-57e61c30b69e/data/suppliers - next: - href: /companies/93c21e2d-049c-4d24-b41b-57e61c30b69e/data/suppliers?page=2&pageSize=2 - Sage 50 (UK): - value: - results: - - id: CON001 - supplierName: Concept Stationery Supplies - contactName: Mark Ramsay - emailAddress: newbusinessadvice@sage.com - phone: 0191 643 4343 - addresses: - - type: Delivery - line1: 66 New Street - line2: Ridgeway - city: Newcastle Upon Tyne - region: '' - country: GB - postalCode: NE1 4GF - - type: Unknown - line1: 66 New Street - line2: Ridgeway - city: Newcastle upon Tyne - region: '' - country: GB - postalCode: NE1 4GF - taxNumber: GB988 3453 23 - status: Active - modifiedDate: '2023-03-30T14:42:38Z' - sourceModifiedDate: '2022-11-25T09:43:54Z' - defaultCurrency: GBP - metadata: - isDeleted: false - - id: MCN001 - supplierName: McNally Computer Supplies - contactName: Stuart Lynn - emailAddress: newbusinessadvice@sage.com - phone: 0191 415 3434 - addresses: - - type: Delivery - line1: Station Lane Ind Est - line2: Birtley - city: Chester le Street - region: County Durham - country: GB - postalCode: DH1 3RG - - type: Unknown - line1: Station Lane Ind Est - line2: Birtley - city: Chester le Street - region: County Durham - country: GB - postalCode: DH1 3RG - taxNumber: GB455 2385 34 - status: Active - modifiedDate: '2023-03-30T14:42:38Z' - sourceModifiedDate: '2022-12-05T13:37:26Z' - defaultCurrency: GBP - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 15 - _links: - current: - href: /companies/cf5f2a47-2990-4221-bae6-0c19c86ac304/data/suppliers?page=1&pageSize=2 - self: - href: /companies/cf5f2a47-2990-4221-bae6-0c19c86ac304/data/suppliers - next: - href: /companies/cf5f2a47-2990-4221-bae6-0c19c86ac304/data/suppliers?page=2&pageSize=2 - Sage Business Cloud Accounting: - value: - results: - - id: 65179671e9ef424caff8b9006cd111c8 - supplierName: 5555 Abdul's Test Name - contactName: Main Contact - addresses: - - type: Billing - country: United Kingdom (GB) - status: Active - modifiedDate: '2022-10-24T14:52:54Z' - sourceModifiedDate: '2020-02-25T17:23:33Z' - defaultCurrency: GBP - - id: cf7f44d693904944a6a7cf3de0887964 - supplierName: Abdi Supplier - contactName: Abdi - emailAddress: abdisupplier@company.com - addresses: - - type: Billing - line1: 1 Place House - city: London - country: United Kingdom (GB) - postalCode: WC1X 1AH - status: Active - modifiedDate: '2022-10-24T14:52:54Z' - sourceModifiedDate: '2020-02-13T10:38:19Z' - defaultCurrency: GBP - pageNumber: 1 - pageSize: 2 - totalResults: 64 - _links: - current: - href: /companies/390083e2-351b-407c-a3be-55081c36c182/data/suppliers?page=1&pageSize=2 - self: - href: /companies/390083e2-351b-407c-a3be-55081c36c182/data/suppliers - next: - href: /companies/390083e2-351b-407c-a3be-55081c36c182/data/suppliers?page=2&pageSize=2 - Sage Intacct: - value: - results: - - id: '3' - supplierName: ADP - contactName: 'Jones, William' - phone: 214-760-9491 - addresses: - - type: Unknown - line1: 208 S Akard St - line2: '' - city: Dallas - region: TX - country: United States - postalCode: '75265' - registrationNumber: '' - taxNumber: 85-3678274 - status: Active - modifiedDate: '2023-04-04T16:32:20Z' - sourceModifiedDate: '2023-02-16T09:48:27' - defaultCurrency: USD - metadata: - isDeleted: false - - id: '29' - supplierName: Advisor Printing - contactName: 'Roach, Nathan' - phone: 130-202-4796 - addresses: - - type: Unknown - line1: 5 Carey Hill - line2: '' - city: Drayton Valley - region: Alberta - country: Canada - postalCode: G8V - registrationNumber: '' - taxNumber: '' - status: Active - modifiedDate: '2023-04-04T16:32:20Z' - sourceModifiedDate: '2022-06-15T11:38:29' - defaultCurrency: CAD - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 77 - _links: - current: - href: /companies/df02b289-cb16-4964-ac4d-9fd60b04538e/data/suppliers?page=1&pageSize=2 - self: - href: /companies/df02b289-cb16-4964-ac4d-9fd60b04538e/data/suppliers - next: - href: /companies/df02b289-cb16-4964-ac4d-9fd60b04538e/data/suppliers?page=2&pageSize=2 - Wave: - value: - results: - - id: QnVzaW5lc3M6ZTI0OGQyZDctMWE5Ni00YTk4LWFkOTEtMDdlMGYyMmNhNmE2O1ZlbmRvcjo2NjA0Nzk0 - supplierName: Computer Shop - contactName: '' - emailAddress: '' - addresses: [] - status: Active - modifiedDate: '2022-11-16T18:15:24Z' - sourceModifiedDate: '2020-04-07T13:28:02Z' - defaultCurrency: GBP - - id: QnVzaW5lc3M6ZTI0OGQyZDctMWE5Ni00YTk4LWFkOTEtMDdlMGYyMmNhNmE2O1ZlbmRvcjo2NjA0NzQx - supplierName: Flour Mill - contactName: '' - emailAddress: '' - addresses: [] - status: Active - modifiedDate: '2022-11-16T18:15:24Z' - sourceModifiedDate: '2020-04-07T13:12:40Z' - defaultCurrency: GBP - pageNumber: 1 - pageSize: 2 - totalResults: 9 - _links: - current: - href: /companies/0b22b59d-b4e5-4c35-b03f-88bbbcb41256/data/suppliers?page=1&pageSize=2 - self: - href: /companies/0b22b59d-b4e5-4c35-b03f-88bbbcb41256/data/suppliers - next: - href: /companies/0b22b59d-b4e5-4c35-b03f-88bbbcb41256/data/suppliers?page=2&pageSize=2 - Xero: - value: - results: - - id: e4c9d0e2-c285-4e85-b579-6d28b180c730 - supplierName: 24 Locks - emailAddress: '' - addresses: [] - status: Active - modifiedDate: '2023-03-15T20:36:09Z' - sourceModifiedDate: '2023-02-17T18:03:42' - metadata: - isDeleted: false - - id: bab779bc-c5fb-42cb-a888-953e8309711c - supplierName: 7-Eleven - emailAddress: '' - addresses: [] - status: Active - modifiedDate: '2023-03-15T20:36:09Z' - sourceModifiedDate: '2023-02-17T18:03:42' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 48 - _links: - current: - href: /companies/5ced9667-a310-443a-a711-958d36377141/data/suppliers?page=1&pageSize=2 - self: - href: /companies/5ced9667-a310-443a-a711-958d36377141/data/suppliers - next: - href: /companies/5ced9667-a310-443a-a711-958d36377141/data/suppliers?page=2&pageSize=2 - Zoho Books: - value: - results: - - id: '104957000001494001' - supplierName: Acme Corporation - emailAddress: '' - addresses: [] - status: Active - modifiedDate: '2022-10-03T08:40:37Z' - sourceModifiedDate: '2022-09-16T13:09:56' - defaultCurrency: GBP - - id: '104957000000648001' - supplierName: Cool company - contactName: Dre - emailAddress: '' - addresses: [] - status: Active - modifiedDate: '2022-10-03T08:40:37Z' - sourceModifiedDate: '2022-06-10T09:07:16' - defaultCurrency: CAD - pageNumber: 1 - pageSize: 2 - totalResults: 6 - _links: - current: - href: /companies/d0b68840-db50-4bc3-b88c-96e225333fea/data/suppliers?page=1&pageSize=2 - self: - href: /companies/d0b68840-db50-4bc3-b88c-96e225333fea/data/suppliers - next: - href: /companies/d0b68840-db50-4bc3-b88c-96e225333fea/data/suppliers?page=2&pageSize=2 + $ref: '#/components/schemas/GenerateOtpResponse' + examples: {} + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/connections/{connectionId}/push/bankAccounts/{accountId}/bankTransactions': + post: + tags: + - Transactions + summary: Create bank transactions + description: "\uFEFFThe *Create bank transactions* endpoint creates new [bank transactions](https://docs.codat.io/bank-feeds-api#/schemas/BankTransactions) for a given company's connection.\n\n[Bank transactions](https://docs.codat.io/bank-feeds-api#/schemas/BankTransactions) are records of monetary amounts that have moved in and out of an SMB's bank account.\n\n**Integration-specific behavior**\n\nThe required properties may vary based on the integration. For detailed requirements specific to each accounting software, refer to the API reference examples.\nAlternatively, you can view the [Get create bank transaction model](https://docs.codat.io/bank-feeds-api#/operations/get-create-bank-transactions-model) for more information." + operationId: create-bank-transactions + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + - $ref: '#/components/parameters/accountId' + - $ref: '#/components/parameters/timeoutInMinutes' + - name: allowSyncOnPushComplete + in: query + schema: + type: boolean + default: true + description: Allow a sync upon push completion. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateBankTransactions' + examples: + Xero: + value: + accountId: 49cd5a42-b311-4750-9361-52e2ed1d4653 + transactions: + - id: '716422529' + date: '2023-08-22T10:21:00' + description: Repayment of Credit Card + counterparty: Bank of Example + reference: Ref-12345 + reconciled: true + amount: 100 + balance: 100 + transactionType: Credit + - id: '716422530' + date: '2023-08-22T10:22:00' + description: Amazon Purchase + counterparty: Amazon + reference: Ref-12346 + reconciled: false + amount: -100 + balance: 0 + transactionType: Debit + - id: '716422531' + date: '2023-08-22T10:23:00' + description: Office Supplies + counterparty: Office Mart + reference: Ref-12347 + reconciled: false + amount: -60 + balance: -60 + transactionType: Debit + QuickBooks Online Bank Feeds: + value: + accountId: 49cd5a42-b311-4750-9361-52e2ed1d4653 + transactions: + - id: '716422529' + date: '2023-08-22T10:21:00' + description: Repayment of Credit Card + amount: 100 + balance: 100 + transactionType: Credit + - id: '716422530' + date: '2023-08-22T10:22:00' + description: Amazon Purchase + amount: -100 + balance: 0 + transactionType: Debit + - id: '716422531' + date: '2023-08-22T10:23:00' + description: Office Supplies + amount: -60 + balance: -60 + transactionType: Debit + FreeAgent: + value: + accountId: 49cd5a42-b311-4750-9361-52e2ed1d4653 + transactions: + - id: '716422529' + date: '2023-08-22T10:21:00' + description: Repayment of Credit Card + amount: 100 + transactionType: Credit + - id: '716422530' + date: '2023-08-22T10:22:00' + description: Amazon Purchase + amount: -100 + transactionType: Debit + - id: '716422531' + date: '2023-08-22T10:23:00' + description: Office Supplies + amount: -60 + transactionType: Debit + Sage: + value: + accountId: 49cd5a42-b311-4750-9361-52e2ed1d4653 + transactions: + - id: '716422529' + date: '2023-08-22T10:21:00' + description: Repayment of Credit Card + counterparty: Bank of Example + reference: Ref-12345 + amount: 100 + balance: 100 + transactionType: Credit + - id: '716422530' + date: '2023-08-22T10:22:00' + description: Amazon Purchase + counterparty: Amazon + reference: Ref-12346 + amount: -100 + balance: 0 + transactionType: Debit + - id: '716422531' + date: '2023-08-22T10:23:00' + description: Office Supplies + counterparty: Office Mart + reference: Ref-12347 + amount: -60 + balance: -60 + transactionType: Debit + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CreateBankTransactionsResponse' '400': - $ref: '#/components/responses/Malformed-Query' + $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '402': @@ -9499,345 +2843,82 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' - '409': - $ref: '#/components/responses/Conflict' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' - description: | - The *List suppliers* endpoint returns a list of [suppliers](https://docs.codat.io/sync-for-expenses-api#/schemas/Supplier) for a given company's connection. - - [Suppliers](https://docs.codat.io/sync-for-expenses-api#/schemas/Supplier) are people or organizations that provide something, such as a product or service. + '/companies/{companyId}/connections/{connectionId}/options/bankAccounts/{accountId}/bankTransactions': + get: + tags: + - Transactions + summary: Get create bank transactions model + description: |- + The *Get create bank account transactions model* endpoint returns the expected data for the request payload when creating [bank account transactions](https://docs.codat.io/bank-feeds-api#/schemas/BankTransactions) for a given company and integration. - Before using this endpoint, you must have [retrieved data for the company](https://docs.codat.io/sync-for-expenses-api#/operations/refresh-all-data-types). + [Bank account transactions](https://docs.codat.io/bank-feeds-api#/schemas/BankTransactions) are records of money that has moved in and out of an SMB's bank account. - ### Supported Integrations + **Integration-specific behavior** - | Integration | Supported | - |-------------------------------|-----------| - | Dynamics 365 Business Central | Yes | - | FreeAgent | Yes | - | Oracle NetSuite | Yes | - | QuickBooks Desktop | Yes | - | QuickBooks Online | Yes | - | Sage Intacct | Yes | - | Xero | Yes | - | Zoho Books | Yes | - operationId: list-suppliers - '/companies/{companyId}/data/suppliers/{supplierId}': + See the *response examples* for integration-specific indicative models. + operationId: get-create-bank-transactions-model + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + - $ref: '#/components/parameters/accountId' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/PushOption' + examples: {} + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/push/{pushOperationKey}': parameters: - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/supplierId' + - schema: + type: string + format: uuid + name: pushOperationKey + in: path + required: true + description: Push operation key. get: + summary: Get create operation tags: - - Suppliers - summary: Get supplier + - Transactions + operationId: get-create-operation + x-speakeasy-name-override: get-create-operation + description: |- + The **Get create operation** endpoint returns a specific [write operation](/using-the-api/push) identified by the `pushOperationKey` that was performed on the company. + + Write operations are actions that send requests to Codat, enabling the creation, updating, deletion of records, or uploading attachments in the connected accounting software. + + For bank feeds, your push operations will only relate to the `bankTransactions` data type. responses: '200': - description: Success + description: OK content: application/json: schema: - $ref: '#/components/schemas/Supplier' - examples: - Clear Books: - value: - id: owQ2Gqgj9f - supplierName: Abshire - Kshlerin - contactName: Faye Hansen - emailAddress: hello@Abshire-Kshlerin.info - phone: 01338 858162 - addresses: - - type: Delivery - line1: Suite 431 - line2: 289 Giles Lake - city: Cesarmouth - region: Northern Ireland - country: United Kingdom - postalCode: BG40 9GP - registrationNumber: VYL1XZXR - taxNumber: '1396267523.0914588' - status: Active - modifiedDate: '2023-04-26T12:38:17Z' - sourceModifiedDate: '1660-11-28T23:18:00' - defaultCurrency: GBP - metadata: - isDeleted: false - Dynamics 365 Business Central: - value: - id: 78623f13-931e-eb11-bbf8-0022481b3585 - supplierName: '' - contactName: '' - emailAddress: '' - phone: '' - addresses: - - type: Billing - line1: '' - line2: '' - city: '' - region: '' - country: GB - postalCode: '' - taxNumber: '' - status: Active - modifiedDate: '2023-03-27T14:21:12Z' - sourceModifiedDate: '2020-11-04T11:44:22Z' - defaultCurrency: GBP - metadata: - isDeleted: false - Exact (Netherlands): - value: - id: 3150917c-1d92-4d77-9018-31b5c4758ca9 - supplierName: Abe - contactName: Kelly's Contact Name - emailAddress: sales@kellysupplies.com - phone: 07999 999999 - addresses: - - type: Billing - line1: Unit 51 - city: Bakersfield - region: California - country: US - postalCode: '933081' - registrationNumber: '8409314368' - status: Active - modifiedDate: '2022-10-26T13:32:05Z' - sourceModifiedDate: '2022-07-15T12:01:15Z' - defaultCurrency: EUR - Exact (UK): - value: - id: 0185fea2-0298-445b-909a-0db685118a9e - supplierName: a - addresses: - - type: Billing - country: GB - status: Active - modifiedDate: '2022-10-26T13:33:13Z' - sourceModifiedDate: '2017-08-02T10:58:54Z' - defaultCurrency: GBP - FreeAgent: - value: - id: '11526230' - supplierName: '-' - contactName: Test 1 - addresses: - - type: Billing - line1: 1 Place House - line2: '' - city: London - country: United Kingdom - postalCode: WC1X 1AH - status: Active - modifiedDate: '2023-04-25T14:19:08Z' - sourceModifiedDate: '2023-04-17T06:02:46' - metadata: - isDeleted: false - FreshBooks: - value: - id: api vendor - supplierName: api vendor - addresses: [] - status: Active - modifiedDate: '2023-03-24T16:07:25Z' - metadata: - isDeleted: false - KashFlow: - value: - id: '6202387' - supplierName: Dell - contactName: '' - emailAddress: '' - phone: '' - addresses: [] - taxNumber: '' - status: Unknown - modifiedDate: '2022-09-30T10:29:15Z' - sourceModifiedDate: '2017-05-09T00:00:00' - Oracle NetSuite: - value: - id: '779' - supplierName: Test Vendor - contactName: Test Vendor - emailAddress: '' - phone: '' - addresses: [] - status: Active - modifiedDate: '2023-01-30T14:47:02Z' - sourceModifiedDate: '2022-02-04T14:24:43' - defaultCurrency: GBP - QuickBooks Desktop: - value: - id: A60000-1197760912 - supplierName: A Cheung Limited - contactName: Angela Cheung - emailAddress: AC@CheungLimited.com - phone: 510 555 5723 - addresses: - - type: Billing - line1: 'A Cheung Limited, Angela Cheung' - line2: 3818 Bear Rd. West - city: Berkeley - region: CA - postalCode: '94688' - status: Active - modifiedDate: '2023-04-26T09:09:03Z' - sourceModifiedDate: '2023-12-16T05:06:44' - defaultCurrency: GBP - metadata: - isDeleted: false - QuickBooks Online: - value: - id: '41' - supplierName: AI Support - contactName: AI Support - addresses: - - type: Billing - line1: test - region: string - country: Djibouti - status: Active - modifiedDate: '2023-01-18T11:02:36Z' - sourceModifiedDate: '2022-12-07T10:48:18Z' - defaultCurrency: GBP - QuickBooks Online Sandbox: - value: - id: '129' - supplierName: Ally Johnson - contactName: Miss Smith - phone: 0728 38474 - addresses: - - type: Billing - line1: 100 London Road - line2: Angel - city: London - region: Greater London - country: England - postalCode: EC1M - status: Active - modifiedDate: '2023-04-26T09:35:55Z' - sourceModifiedDate: '2023-04-13T01:51:08Z' - defaultCurrency: GBP - metadata: - isDeleted: false - Sage 200cloud: - value: - id: '776' - supplierName: Aaren - contactName: '' - emailAddress: '' - phone: '' - addresses: - - type: Unknown - line1: '' - line2: '' - city: '' - region: '' - country: Great Britain - postalCode: '' - taxNumber: '' - status: Archived - modifiedDate: '2022-10-14T09:35:58Z' - defaultCurrency: GBP - metadata: - isDeleted: true - Sage 50 (UK): - value: - id: CON001 - supplierName: Concept Stationery Supplies - contactName: Mark Ramsay - emailAddress: newbusinessadvice@sage.com - phone: 0191 643 4343 - addresses: - - type: Delivery - line1: 66 New Street - line2: Ridgeway - city: Newcastle Upon Tyne - region: '' - country: GB - postalCode: NE1 4GF - - type: Unknown - line1: 66 New Street - line2: Ridgeway - city: Newcastle upon Tyne - region: '' - country: GB - postalCode: NE1 4GF - taxNumber: GB988 3453 23 - status: Active - modifiedDate: '2023-03-30T14:42:38Z' - sourceModifiedDate: '2022-11-25T09:43:54Z' - defaultCurrency: GBP - metadata: - isDeleted: false - Sage Business Cloud Accounting: - value: - id: 65179671e9ef424caff8b9006cd111c8 - supplierName: 5555 Abdul's Test Name - contactName: Main Contact - addresses: - - type: Billing - country: United Kingdom (GB) - status: Active - modifiedDate: '2022-10-24T14:52:54Z' - sourceModifiedDate: '2020-02-25T17:23:33Z' - defaultCurrency: GBP - Sage Intacct: - value: - id: '3' - supplierName: ADP - contactName: 'Jones, William' - phone: 214-760-9491 - addresses: - - type: Unknown - line1: 208 S Akard St - line2: '' - city: Dallas - region: TX - country: United States - postalCode: '75265' - registrationNumber: '' - taxNumber: 85-3678274 - status: Active - modifiedDate: '2023-04-04T16:32:20Z' - sourceModifiedDate: '2023-02-16T09:48:27' - defaultCurrency: USD - metadata: - isDeleted: false - Wave: - value: - id: QnVzaW5lc3M6ZTI0OGQyZDctMWE5Ni00YTk4LWFkOTEtMDdlMGYyMmNhNmE2O1ZlbmRvcjo2NjA0Nzk0 - supplierName: Computer Shop - contactName: '' - emailAddress: '' - addresses: [] - status: Active - modifiedDate: '2022-11-16T18:15:24Z' - sourceModifiedDate: '2020-04-07T13:28:02Z' - defaultCurrency: GBP - Xero: - value: - id: e4c9d0e2-c285-4e85-b579-6d28b180c730 - supplierName: 24 Locks - emailAddress: '' - addresses: [] - status: Active - modifiedDate: '2023-03-15T20:36:09Z' - sourceModifiedDate: '2023-02-17T18:03:42' - metadata: - isDeleted: false - Zoho Books: - value: - id: '104957000001494001' - supplierName: Acme Corporation - emailAddress: '' - addresses: [] - status: Active - modifiedDate: '2022-10-03T08:40:37Z' - sourceModifiedDate: '2022-09-16T13:09:56' - defaultCurrency: GBP + $ref: '#/components/schemas/PushOperation' + examples: {} '401': $ref: '#/components/responses/Unauthorized' '402': @@ -9846,66 +2927,42 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' - '409': - $ref: '#/components/responses/Conflict' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' - description: | - The *Get supplier* endpoint returns a single supplier for a given supplierId. - - [Suppliers](https://docs.codat.io/sync-for-expenses-api#/schemas/Supplier) are people or organizations that provide something, such as a product or service. - - Before using this endpoint, you must have [retrieved data for the company](https://docs.codat.io/sync-for-expenses-api#/operations/refresh-all-data-types). - - ### Supported Integrations - - | Integration | Supported | - |-------------------------------|-----------| - | Dynamics 365 Business Central | Yes | - | FreeAgent | Yes | - | Oracle NetSuite | Yes | - | QuickBooks Desktop | Yes | - | QuickBooks Online | Yes | - | Sage Intacct | Yes | - | Xero | Yes | - | Zoho Books | Yes | - operationId: get-supplier - '/companies/{companyId}/connections/{connectionId}/push/suppliers': + '/companies/{companyId}/push': parameters: - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/connectionId' - post: - tags: - - Suppliers + get: parameters: - - $ref: '#/components/parameters/timeoutInMinutes' - - $ref: '#/components/parameters/allowSyncOnPushComplete' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Supplier' - examples: - Sage Intacct: - value: - id: '73593' - supplierName: test 20230420 1004 - contactName: Joe Bloggs - status: Active + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/pageSize' + - $ref: '#/components/parameters/query' + - $ref: '#/components/parameters/orderBy' + summary: List create operations + tags: + - Transactions + operationId: list-create-operations + x-speakeasy-name-override: list-create-operations + description: |- + The **List create operations** endpoint returns a list of [write operations](/using-the-api/push) performed on the company. + + Write operations are actions that send requests to Codat, enabling the creation, updating, deletion of records, or uploading attachments in the connected accounting software. + + For bank feeds, use this endpoint to view write operations related to the `bankTransactions` data type. responses: '200': - description: Success + description: OK content: application/json: schema: - $ref: '#/components/schemas/CreateSupplierResponse' + $ref: '#/components/schemas/PushOperations' examples: {} '400': - $ref: '#/components/responses/BadRequest' + $ref: '#/components/responses/Malformed-Query' '401': $ref: '#/components/responses/Unauthorized' '402': @@ -9920,56 +2977,40 @@ paths: $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' - summary: Create supplier - description: | - The *Create supplier* endpoint creates a new [supplier](https://docs.codat.io/sync-for-expenses-api#/schemas/Supplier) for a given company's connection. - - [Suppliers](https://docs.codat.io/sync-for-expenses-api#/schemas/Supplier) are people or organizations that provide something, such as a product or service. - - **Integration-specific behavior** - - Required data may vary by integration. To see what data to post, first call [Get create/update supplier model](https://docs.codat.io/sync-for-expenses-api#/operations/get-create-update-suppliers-model). - - ### Supported Integrations - - | Integration | Supported | - |-------------------------------|-----------| - | Dynamics 365 Business Central | Yes | - | FreeAgent | Yes | - | Oracle NetSuite | Yes | - | QuickBooks Desktop | Yes | - | QuickBooks Online | Yes | - | Sage Intacct | Yes | - | Xero | Yes | - | Zoho Books | Yes | - operationId: create-supplier - '/companies/{companyId}/connections/{connectionId}/push/suppliers/{supplierId}': + '/companies/{companyId}/connections/{connectionId}/bankFeedAccounts/{sourceAccountId}/managedBankFeeds/syncs/{syncId}': parameters: - $ref: '#/components/parameters/companyId' - $ref: '#/components/parameters/connectionId' - - $ref: '#/components/parameters/supplierId' - put: + - name: sourceAccountId + in: path + required: true + schema: + type: string + description: The ID of the source bank account. + - name: syncId + in: path + required: true + schema: + type: string + format: uuid + description: The ID of the sync. + get: tags: - - Suppliers - parameters: - - $ref: '#/components/parameters/timeoutInMinutes' - - $ref: '#/components/parameters/allowSyncOnPushComplete' - - $ref: '#/components/parameters/forceUpdate' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Supplier' + - Managed bank feeds + summary: Get sync + operationId: get-managed-bank-feed-sync + x-speakeasy-name-override: get-sync + description: |- + The _Get sync_ endpoint returns the [sync status](https://docs.codat.io/bank-feeds-api#/schemas/SyncStatusResult) for a given 'syncId'. + + A sync is a single execution that fetches bank transactions from a connected bank account and records them in the company's accounting software. responses: '200': description: Success content: application/json: schema: - $ref: '#/components/schemas/UpdateSupplierResponse' - examples: {} - '400': - $ref: '#/components/responses/BadRequest' + $ref: '#/components/schemas/SyncStatusResult' '401': $ref: '#/components/responses/Unauthorized' '402': @@ -9984,85 +3025,97 @@ paths: $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' - summary: Update supplier - description: | - The *Update supplier* endpoint updates an existing [supplier](https://docs.codat.io/sync-for-expenses-api#/schemas/Supplier) for a given company's connection. - - [Suppliers](https://docs.codat.io/sync-for-expenses-api#/schemas/Supplier) are people or organizations that provide something, such as a product or service. - - **Integration-specific behavior** - - Required data may vary by integration. To see what data to post, first call [Get create/update supplier model](https://docs.codat.io/sync-for-expenses-api#/operations/get-create-update-suppliers-model). - - ### Supported Integrations + '/companies/{companyId}/connections/{connectionId}/bankFeedAccounts/{sourceAccountId}/managedBankFeeds/syncs/latest': + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + - name: sourceAccountId + in: path + required: true + schema: + type: string + description: The ID of the source bank account. + get: + tags: + - Managed bank feeds + summary: Get latest sync + operationId: get-latest-managed-bank-feed-sync + x-speakeasy-name-override: get-latest-sync + description: |- + The _Get latest sync_ endpoint returns the status for a given source account's [most recent sync](https://docs.codat.io/bank-feeds-api#/schemas/SyncStatusResult). - | Integration | Supported | - |-------------------|-----------| - | FreeAgent | Yes | - | QuickBooks Online | Yes | - | Xero | Yes | - operationId: update-supplier -webhooks: - expenses.sync.successful: - post: - description: Called when an expense sync successfully completes without any errors or warnings. - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ExpensesSyncWebhook' - examples: - Successful: - value: - id: ba29118f-5406-4e59-b05c-ba307ca38d01 - eventType: expenses.sync.successful - generatedDate: '2024-09-01T00:00:00Z' - payload: - referenceCompany: - id: 0498e921-9b53-4396-a412-4f2f5983b0a2 - name: Toft stores - description: Syncing expenses - syncId: ee2eb431-c0fa-4dc9-93fa-d29781c12bcd - transactions: - - id: f47ac10b-58cc-4372-a567-0e02b2c3d479 - status: Completed - errorMessage: null - - id: e7f8a3d5-0c3c-4c9b-b5d3-56b4a43b62e4 - status: Completed - errorMessage: null + A sync is a single execution that fetches bank transactions from a connected bank account and records them in the company's accounting software. responses: '200': - description: Return a 200 status to indicate that the webhook was received successfully. - expenses.sync.unsuccessful: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/SyncStatusResult' + '204': + description: No Content + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/connections/{connectionId}/bankFeedAccounts/{sourceAccountId}/managedBankFeeds/syncs': + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + - name: sourceAccountId + in: path + required: true + schema: + type: string + description: The ID of the source bank account. post: - description: 'Called when an expense sync fails to complete successfully, resulting in at least one error or warning.' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ExpensesSyncWebhook' - examples: - Unsuccessful: - value: - id: ba29118f-5406-4e59-b05c-ba307ca38d01 - eventType: expenses.sync.unsuccessful - generatedDate: '2024-09-01T00:00:00Z' - payload: - referenceCompany: - id: 0498e921-9b53-4396-a412-4f2f5983b0a2 - name: Toft stores - description: Syncing expenses - syncId: ee2eb431-c0fa-4dc9-93fa-d29781c12bcd - transactions: - - id: f47ac10b-58cc-4372-a567-0e02b2c3d479 - status: Completed - errorMessage: null - - id: e7f8a3d5-0c3c-4c9b-b5d3-56b4a43b62e4 - status: Failed - errorMessage: Insufficient funds + tags: + - Managed bank feeds + summary: Run ad-hoc sync + operationId: run-managed-bank-feed-ad-hoc-sync + x-speakeasy-name-override: run-ad-hoc-sync + description: |- + The _Run ad-hoc sync_ endpoint immediately runs a sync with a fetch period from the last successful sync to the execution time of the new sync. + + A sync is a single execution that fetches bank transactions from a connected bank account and records them in the company's accounting software. + + Use either the [_Get latest sync_](https://docs.codat.io/bank-feeds-api#/operations/get-latest-managed-bank-feed-sync) endpoint or the [_Get sync_](https://docs.codat.io/bank-feeds-api#/operations/fetch-managed-bank-feed-sync-by-id) endpoint to get the result of this sync. responses: - '200': - description: Return a 200 status to indicate that the webhook was received successfully. + '201': + description: Created + content: + application/json: + schema: + $ref: '#/components/schemas/StartScheduledSyncResult' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '409': + $ref: '#/components/responses/Conflict' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' +webhooks: client.rateLimit.reached: post: description: Called when your client’s request count to Codat's API surpasses the allocated quota. @@ -10092,1908 +3145,1168 @@ webhooks: application/json: schema: $ref: '#/components/schemas/ClientRateLimitWebhook' - examples: - Reset: - value: - id: 743ec94a-8aa4-44bb-8bd4-e1855ee0e74b - eventType: client.rateLimit.reset - generatedDate: '2024-09-01T00:00:00Z' - payload: - dailyQuota: 12000 - quotaRemaining: 11993 - expiryDate: '2024-09-01T23:59:99Z' - responses: - '200': - description: Return a 200 status to indicate that the webhook was received successfully. -components: - schemas: - Account: - title: 'Accounting: Account' - description: "\uFEFF> **Language tip:** Accounts are also referred to as **chart of accounts**, **nominal accounts**, and **general ledger**.\n\n## Overview\n\nAccounts are the categories a business uses to record accounting transactions. From the Accounts endpoints, you can retrieve a list of all accounts for a specified company.\n\nThe categories for an account include:\n* Asset\n* Expense\n* Income\n* Liability\n* Equity.\n\nThe same account may have a different category based on the integration it is used in. For example, a current account (known as checking in the US) should be categorized as `Asset.Current` for Xero, and `Asset.Bank.Checking` for QuickBooks Online.\n\nAt the same time, each integration may have its own requirements to the categories. For example, a Paypal account in Xero is of the `Asset.Bank` category and therefore requires additional properties to be provided.\n\nTo determine the list of allowed categories for a specific integration, you can:\n- Follow our [Create, update, delete data](https://docs.codat.io/using-the-api/push) guide and use the [Get create account model](https://docs.codat.io/sync-for-expenses-api#/operations/get-create-chartOfAccounts-model).\n- Refer to the integration's own documentation.\n\n> **Accounts with no category**\n>\n> If an account is pulled from the chart of accounts and its nominal code does not lie within the category layout for the company's accounts, then the **type** is `Unknown`. The **fullyQualifiedCategory** and **fullyQualifiedName** fields return `null`.\n>\n> This approach gives a true representation of the company's accounts whilst preventing distorting financials such as a company's profit and loss and balance sheet reports." - allOf: - - properties: - id: - type: string - description: 'Identifier for the account, unique for the company.' - example: 1b6266d1-1e44-46c5-8eb5-a8f98e03124e - - $ref: '#/components/schemas/Account/definitions/accountPrototype' - - properties: - metadata: - title: Metadata - type: object - x-internal: true - properties: - isDeleted: - type: boolean - description: Indicates whether the record has been deleted in the third-party system this record originated from. - nullable: true - - title: Modified dates - x-internal: true - allOf: - - title: ModifiedDate - x-internal: true - type: object - properties: - modifiedDate: - allOf: - - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - - description: |- - The date when the record was last fetched from the accounting software, commerce software, or open banking provider 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/TransferTransactionRequest/properties/date/allOf/1' - - description: |- - The date when a record was last modified in the accounting software, 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 accounting software 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. - definitions: - accountPrototype: - title: Account prototype - type: object - properties: - nominalCode: - type: string - nullable: true - description: Reference given to each nominal account for a business. It ensures money is allocated to the correct account. This code isn't a unique identifier in the Codat system. - example: '610' - name: - type: string - nullable: true - description: Name of the account. - example: Accounts Receivable - description: - type: string - nullable: true - description: Description for the account. - example: Invoices the business has issued but has not yet collected payment on. - fullyQualifiedCategory: - type: string - nullable: true - description: "Full category of the account. \r\n\r\nFor example, `Liability.Current` or `Income.Revenue`. To determine a list of possible categories for each integration, see our examples, follow our [Create, update, delete data](https://docs.codat.io/using-the-api/push) guide, or refer to the integration's own documentation." - example: Asset.Current - fullyQualifiedName: - type: string - nullable: true - description: |- - Full name of the account, for example: - - `Cash On Hand` - - `Rents Held In Trust` - - `Fixed Asset` - examples: - - Cash On Hand - - Fixed Asset - 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 - currentBalance: - type: number - format: decimal - nullable: true - description: Current balance in the account. - example: 0 - type: - $ref: '#/components/schemas/Account/definitions/accountType' - status: - $ref: '#/components/schemas/Account/definitions/accountStatus' - isBankAccount: - type: boolean - description: Confirms whether the account is a bank account or not. - validDatatypeLinks: - type: array - nullable: true - description: 'The validDatatypeLinks can be used to determine whether an account can be correctly mapped to another object; for example, accounts with a `type` of `income` might only support being used on an Invoice and Direct Income. For more information, see [Valid Data Type Links](/sync-for-expenses-api#/schemas/ValidDataTypeLinks).' - items: - title: Valid data type links - description: |- - When querying Codat's data model, some data types return `validDatatypeLinks` metadata in the JSON response. This indicates where that object can be used as a reference—a _valid link_—when creating or updating other data. - - For example, `validDatatypeLinks` might indicate the following references: - - - Which tax rates are valid to use on the line item of a bill. - - Which items can be used when creating an invoice. - - You can use `validDatatypeLinks` to present your SMB customers with only valid choices when selecting objects from a list, for example. - - ## `validDatatypeLinks` example - - The following example uses the `Accounting.Accounts` data type. It shows that, on the linked integration, this account is valid as the account on a payment or bill payment; and as the account referenced on the line item of a direct income or direct cost. Because there is no valid link to Invoices or Bills, using this account on those data types will result in an error. - - ```json validDatatypeLinks for an account - { - "id": "bd9e85e0-0478-433d-ae9f-0b3c4f04bfe4", - "nominalCode": "090", - "name": "Business Bank Account", - #... - "validDatatypeLinks": [ - { - "property": "Id", - "links": [ - "Payment.AccountRef.Id", - "BillPayment.AccountRef.Id", - "DirectIncome.LineItems.AccountRef.Id", - "DirectCost.LineItems.AccountRef.Id" - ] - } - ] - } - ``` - - - - ## Support for `validDatatypeLinks` - - Codat currently supports `validDatatypeLinks` for some data types on our Xero, QuickBooks Online, QuickBooks Desktop, Exact (NL), and Sage Business Cloud integrations. - - If you'd like us to extend support to more data types or integrations, suggest or vote for this on our Product Roadmap. - type: object - properties: - property: - type: string - nullable: true - description: The property from the account that can be linked. - links: - type: array - nullable: true - description: Supported `dataTypes` that the record can be linked to. - items: - type: string - supplementalData: - $ref: '#/components/schemas/SupplementalData' - accountRef: - title: Account reference - type: object - description: 'Data types that reference an account, for example bill and invoice line items, use an accountRef that includes the ID and name of the linked account.' - properties: - id: - type: string - description: '''id'' from the Accounts data type.' - name: - type: string - description: '''name'' from the Accounts data type.' - accountType: - title: Account type - enum: - - Unknown - - Asset - - Expense - - Income - - Liability - - Equity - type: string - description: Type of account - example: Asset - accountStatus: - title: Account status - enum: - - Unknown - - Active - - Archived - - Pending - type: string - description: Status of the account - example: Active - type: object - AccountMappingInfo: - title: Account mapping info - x-internal: true - type: object - additionalProperties: false - x-examples: - Example AccountInfo: - id: 313a4dbe-b3a4-42f0-a5f5-43e382e62db9 - nominalCode: '720' - name: Travel - currency: GBP - accountType: Expense - fullyQualifiedCategory: Expense.Overhead - isBankAccount: false - validTransactionTypes: - - Payment - - Refund - validFor: - - expense-transactions.Payment - - expense-transactions.Refund - - reimbursable-expense-transactions - properties: - id: - type: string - description: Unique identifier of account. - example: 127f3b99-8dc2-4b7e-854c-91ef9bd2757b - nullable: false - nominalCode: - type: string - description: Code used to identify each nominal account in the accounting software. - example: '300' - nullable: true - name: - type: string - description: Name of the account as it appears in the company's accounting software. - example: Purchases - nullable: false - currency: - type: string - description: Currency of the account. - example: GBP - nullable: false - accountType: - type: string - description: Type of the account. - example: Expense - enum: - - Asset - - Liability - - Income - - Expense - - Equity - nullable: false - fullyQualifiedCategory: - type: string - description: Full account type and category of the account - example: Expense.DirectCosts - nullable: false - isBankAccount: - type: boolean - description: Confirms whether the account is a bank account or not. - validTransactionTypes: - $ref: '#/components/schemas/validTransactionTypes' - description: Supported transaction types for the account. - validFor: - $ref: '#/components/schemas/validFor' - description: Supported endpoints for the account. - AdjustmentTransactionLine: - x-internal: true - title: Adjustment transaction line - type: object - properties: - amount: - type: number - format: decimal - example: 50 - description: Amount of the line. A positive line represents a debit; a negative line represents a credit. - accountRef: - $ref: '#/components/schemas/RecordRef' - description: - type: string - description: 'Any private, company notes about the transaction.' - example: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - trackingRefs: - type: array - minItems: 1 - maxItems: 10 - nullable: true - items: - $ref: '#/components/schemas/TrackingRefAdjustmentTransaction' - invoiceTo: - $ref: '#/components/schemas/InvoiceTo' - required: - - amount - - accountRef - AdjustmentTransactionRequest: - title: Adjustment transaction - type: object - properties: - id: - type: string - format: uuid - description: Your unique identifier for the transaction. - date: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: Date of the transaction. - currency: - type: string - description: Currency the transaction was recorded in. - currencyRate: - $ref: '#/components/schemas/ExpenseTransaction/properties/currencyRate' - reference: - type: string - nullable: true - description: User-friendly reference for the adjustment transaction. - lines: - type: array - description: Array of transaction lines. - minItems: 1 - maxItems: 100 - items: - $ref: '#/components/schemas/AdjustmentTransactionLine' - required: - - id - - date - - currency - - lines - AdjustmentTransactionResponse: - title: Adjustment response - x-internal: true - type: object - properties: - syncId: - type: string - example: cd937d46-8e41-43a9-9477-a79158ffd98a - format: uuid - description: Unique id of sync created - apAccountRef: - x-internal: true - type: object - title: Accounts Payable account reference - nullable: true - properties: - id: - type: string - example: 8000004C-1724173136 - description: Unique identifier for the Accounts Payable account associated with the transaction. The `apAccountRef` object is currently supported only for QuickBooks Desktop. - Attachment: - title: Attachment - type: object - x-examples: - Attachment Example: - companyId: bf1e0242-5b7a-418b-a307-9e09dbf9f39a - id: '1400000000122699154' - transactionId: f8f00edd-ddb0-4ca5-b36b-8f932e6b5160 - properties: - companyId: - type: string - format: uuid - description: Unique ID of company in Codat - id: - type: string - description: Unique identifier of attachment - transactionId: - type: string - description: Unique identifier of transaction - AttachmentUpload: - title: Attachment upload - type: object - x-internal: true - required: - - file - properties: - file: - $ref: '#/components/schemas/AttachmentUpload/definitions/codatFile' - definitions: - codatFile: - type: string - description: The file to be uploaded as an attachment. - format: binary - BankAccount: - title: 'Accounting: Bank account' - description: |- - > **Accessing Bank Accounts through Banking API** - > - > This datatype was originally used for accessing bank account data both in accounting integrations and open banking aggregators. - > - > To view bank account data through the Banking API, please refer to the new [Banking: Account](https://docs.codat.io/sync-for-expenses-api#/schemas/Account) data type. - - ## Overview - - A list of bank accounts associated with a company and a specific data connection. - - Bank accounts data includes: - * The name and ID of the account in the accounting software. - * The currency and balance of the account. - * The sort code and account number. - type: object - allOf: - - properties: - id: - type: string - description: 'Identifier for the account, unique for the company in the accounting software.' - - $ref: '#/components/schemas/BankAccount/definitions/bankAccountPrototype' - - properties: - metadata: - $ref: '#/components/schemas/Account/allOf/2/properties/metadata' - supplementalData: - $ref: '#/components/schemas/SupplementalData' - - $ref: '#/components/schemas/Account/allOf/3' - definitions: - bankAccountPrototype: - title: Bank account prototype - type: object - properties: - accountName: - type: string - nullable: true - description: Name of the bank account in the accounting software. - accountType: - title: Bank Account Type - x-internal: true - enum: - - Unknown - - Credit - - Debit - type: string - description: |- - The type of transactions and balances on the account. - For Credit accounts, positive balances are liabilities, and positive transactions **reduce** liabilities. - For Debit accounts, positive balances are assets, and positive transactions **increase** assets. - nominalCode: - type: string - nullable: true - description: Code used to identify each nominal account for a business. - sortCode: - type: string - nullable: true - description: |- - Sort code for the bank account. - - Xero integrations - The sort code is only displayed when the currency = GBP and the sort code and account number sum to 14 digits. For non-GBP accounts, this field is not populated. - accountNumber: - type: string - nullable: true - description: |- - Account number for the bank account. - - Xero integrations - Only a UK account number shows for bank accounts with GBP currency and a combined total of sort code and account number that equals 14 digits, For non-GBP accounts, the full bank account number is populated. - - FreeAgent integrations - For Credit accounts, only the last four digits are required. For other types, the field is optional. - iBan: - type: string - nullable: true - description: International bank account number of the account. Often used when making or receiving international payments. - currency: - $ref: '#/components/schemas/Account/definitions/accountPrototype/properties/currency' - description: Base currency of the bank account. - balance: - type: number - format: decimal - nullable: true - description: Balance of the bank account. - institution: - type: string - nullable: true - description: The institution of the bank account. - availableBalance: - type: number - format: decimal - nullable: true - description: Total available balance of the bank account as reported by the underlying data source. This may take into account overdrafts or pending transactions for example. - overdraftLimit: - type: number - format: decimal - nullable: true - description: |- - Pre-arranged overdraft limit of the account. - - The value is always positive. For example, an overdraftLimit of `1000` means that the balance of the account can go down to `-1000`. - status: - $ref: '#/components/schemas/BankAccount/definitions/bankAccountStatus' - bankAccountCreateResponse: - title: Create bank account response - allOf: - - properties: - data: - allOf: - - $ref: '#/components/schemas/BankAccount' - - deprecated: true - - $ref: '#/components/schemas/PushOperation' - bankAccountRef: - title: Bank account reference - type: object - properties: - id: - type: string - description: Bank account 'id' for the account transaction. - name: - type: string - description: bank account 'name' for the account transaction. - description: Links to the Account transactions data type. - bankAccounts: - title: 'Accounting: Bank accounts' - allOf: - - type: object - properties: - results: - type: array - items: - $ref: '#/components/schemas/BankAccount' - - $ref: '#/components/schemas/PagingInfo' - bankAccountStatus: - title: Account status - enum: - - Unknown - - Active - - Archived - - Pending - type: string - description: Status of the bank account. - example: Active - ClientRateLimitWebhook: - title: Client rate limit webhook + examples: + Reset: + value: + id: 743ec94a-8aa4-44bb-8bd4-e1855ee0e74b + eventType: client.rateLimit.reset + generatedDate: '2024-09-01T00:00:00Z' + payload: + dailyQuota: 12000 + quotaRemaining: 11993 + expiryDate: '2024-09-01T23:59:99Z' + responses: + '200': + description: Return a 200 status to indicate that the webhook was received successfully. + bankFeeds.sourceAccount.connected: + post: + description: Triggered when a bank feed source account has become connected to a target account. This occurs when a user sets up mapping between the two. + x-svix-feature-flag: bank-feeds + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SourceAccountWebhook' + examples: + Connected: + value: + id: ba29118f-5406-4e59-b05c-ba307ca38d01 + eventType: bankFeeds.sourceAccount.connected + generatedDate: '2022-10-23T00:00:00.000Z' + payload: + referenceCompany: + id: 0498e921-9b53-4396-a412-4f2f5983b0a2 + name: Toft stores + description: Requested early access to the new financing scheme. + links: + portal: 'https://app.codat.io/companies/0498e921-9b53-4396-a412-4f2f5983b0a2/summary' + connectionId: 2e9d2c44-f675-40ba-8049-353bfcb5e171 + sourceAccount: + id: acc-002 + accountName: account-081 + sortCode: '040004' + accountNumber: '12345678' + currency: GBP + balance: 99.99 + modifiedDate: '2023-01-09T14:14:14.1057478Z' + status: pending + responses: + '200': + description: Return a 200 status to indicate that the webhook was received successfully. + bankFeeds.sourceAccount.disconnected: + post: + description: Called when a bank feed source account has become disconnected. + x-svix-feature-flag: bank-feeds + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SourceAccountWebhook' + examples: + Disconnected: + value: + id: ba29118f-5406-4e59-b05c-ba307ca38d01 + eventType: bankFeeds.sourceAccount.disconnected + generatedDate: '2022-10-23T00:00:00.000Z' + payload: + referenceCompany: + id: 0498e921-9b53-4396-a412-4f2f5983b0a2 + name: Toft stores + description: Requested early access to the new financing scheme. + links: + portal: 'https://app.codat.io/companies/0498e921-9b53-4396-a412-4f2f5983b0a2/summary' + connectionId: 2e9d2c44-f675-40ba-8049-353bfcb5e171 + sourceAccount: + id: acc-002 + accountName: account-081 + sortCode: '040004' + accountNumber: '12345678' + currency: GBP + balance: 99.99 + modifiedDate: '2023-01-09T14:14:14.1057478Z' + status: pending + responses: + '200': + description: Return a 200 status to indicate that the webhook was received successfully. +components: + schemas: + BankAccountCredentials: + title: Bank Account Credentials + description: Result of generate credentials type: object properties: - id: + username: type: string - format: uuid - example: 743ec94a-8aa4-44bb-8bd4-e1855ee0e74b - description: Unique identifier of the event. - eventType: + example: S0MW-TR0P-7DS0 + description: Username used by the bank feeds platform to retrieve transactions + password: type: string - description: The type of event. - examples: - - client.rateLimit.reset - - client.rateLimit.reached - generatedDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: The date time in UTC the event was generated in Codat. - payload: - $ref: '#/components/schemas/ClientRateLimitWebhook/definitions/clientRateLimitWebhookPayload' - definitions: - clientRateLimitWebhookPayload: - title: Client rate limit webhook payload - type: object - properties: - dailyQuota: - type: integer - description: The number of available requests per day. - quotaRemaining: - type: integer - description: Total number of requests remaining for your client. - expiryDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: The date time in UTC when your daily quota is reset. - Companies: - title: Companies + example: cO0ajh0uGyTN0Pwh + description: Password to enable the bank feeds platform to securely retrieve transactions. + examples: + - QuickBooks Online Bank Feeds: null + username: S0MW-TR0P-7DS0 + password: cO0ajh0uGyTN0Pwh + BankAccounts: x-internal: true + title: 'Accounting: Bank accounts' allOf: - type: object properties: results: type: array items: - $ref: '#/components/schemas/Company' - - $ref: '#/components/schemas/PagingInfo' - Company: - title: Company - description: "\uFEFFIn Codat, a company represents a business sharing access to their data. Each company can have multiple [connections](https://docs.codat.io/sync-for-expenses-api#/schemas/Connection) to different data sources such as one connection to [Xero](https://docs.codat.io/integrations/accounting/xero/accounting-xero) for accounting data, two connections to [Plaid](https://docs.codat.io/integrations/banking/plaid/banking-plaid) for two bank accounts and a connection to [Zettle](https://docs.codat.io/integrations/commerce/zettle/commerce-zettle) for POS data.\n\nTypically each company is one of your customers.\n\nWhen you create a company, you can specify a `name` and we will automatically generate a unique `id` for the company. You can also add a `description` to store any additional information about the company." - type: object - allOf: - - $ref: '#/components/schemas/Company/definitions/companyDetails' - - type: object - properties: - dataConnections: - type: array - items: - $ref: '#/components/schemas/Connection' - definitions: - companyDetails: - title: Company details - type: object - properties: - id: - $ref: '#/components/parameters/companyId/schema' - name: - type: string - description: The name of the company - example: Codat Ltd. - description: - $ref: '#/components/schemas/CompanyRequestBody/properties/description' - nullable: true - redirect: - type: string - format: uri - description: 'The `redirect` [Link URL](https://docs.codat.io/auth-flow/authorize-hosted-link) enabling the customer to start their auth flow journey for the company.' - example: 'https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739' - lastSync: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - nullable: true - created: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - createdByUserName: - type: string - description: Name of user that created the company in Codat. - nullable: true - products: - type: array - items: - type: string - description: An array of products that are currently enabled for the company. - tags: - title: Tags - type: object - maxProperties: 10 - propertyNames: - pattern: '^.{1,27}$' - additionalProperties: - type: string - maxLength: 100 - description: A collection of user-defined key-value pairs that store custom metadata against the company. - referenceParentCompany: - $ref: '#/components/schemas/Company/definitions/companyReference' - nullable: true - description: The parent entity or controlling organization of this company. Null if the company has no parent. - referenceSubsidiaryCompanies: - type: array - nullable: false - description: A list of subsidiary companies owned or controlled by this entity. Empty if the company has no children. - minItems: 0 - items: - $ref: '#/components/schemas/Company/definitions/companyReference' - required: - - id - - name - - redirect - companyReference: - title: Company reference - type: object - properties: - id: - $ref: '#/components/parameters/companyId/schema' - name: - $ref: '#/components/schemas/Company/definitions/companyDetails/properties/name' - description: - $ref: '#/components/schemas/Company/definitions/companyDetails/properties/description' - links: - type: object - description: A collection of links for the company. - properties: - portal: - type: string - format: uri - description: Link to the company page in the portal. - tags: - $ref: '#/components/schemas/Company/definitions/companyDetails/properties/tags' - examples: - - id: 0498e921-9b53-4396-a412-4f2f5983b0a2 - name: string - redirect: 'https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739' - lastSync: '2022-01-01T12:00:00.000Z' - created: '2022-01-01T12:00:00.000Z' - createdByUserName: string - tags: - region: us - uid: f6b0c253-16c7-4da1-a0c5-9c871e9c9d6c - dataConnections: - - id: ee2eb431-c0fa-4dc9-93fa-d29781c12bcd - integrationId: bf083d72-62c7-493e-aec9-81b4dbba7e2c - integrationKey: dfxm - sourceId: bdd831ce-eebd-4896-89a7-20e5ee8989ee - platformName: Basiq - linkUrl: 'https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start' - status: Linked - lastSync: '2022-10-27T10:22:43.6464237Z' - created: '2022-10-27T09:53:29Z' - sourceType: Banking - products: - - spend-insights - - lending - CompanyConfiguration: - required: - - bankAccount - - supplier - - customer - title: Company configuration - type: object - x-examples: - Config Example: - bankAccount: - id: '89' - supplier: - id: '124' - customer: - id: '140' - properties: - bankAccount: - $ref: '#/components/schemas/CompanyConfiguration/definitions/BankAccountDetails' - supplier: - $ref: '#/components/schemas/CompanyConfiguration/definitions/SupplierDetails' - customer: - $ref: '#/components/schemas/CompanyConfiguration/definitions/CustomerDetails' - definitions: - BankAccountDetails: - title: Bank account details - type: object - properties: - id: - type: string - description: The id of the account from which purchases are made - example: '32' - SupplierDetails: - title: Supplier details - type: object - properties: - id: - $ref: '#/components/schemas/Supplier/allOf/0/properties/id' - CustomerDetails: - title: Customer details - type: object - properties: - id: - $ref: '#/components/schemas/Customer/allOf/0/properties/id' - CompanyInformation: - title: 'Accounting: Company information' - description: |- - Company info provides standard details about a linked company such as their address, phone number, and company registration. + title: 'Accounting: Bank account' + description: |- + > **Accessing Bank Accounts through Banking API** + > + > This datatype was originally used for accessing bank account data both in accounting integrations and open banking aggregators. + > + > To view bank account data through the Banking API, please refer to the new [Banking: Account](https://docs.codat.io/bank-feeds-api#/schemas/Account) data type. - > **Company information or companies?** - > - > Company information is standard information that is held in the accounting software about a company. `Companies` is an endpoint that lists businesses in the Codat system that have linked and shared their data sources. - type: object - properties: - companyName: - type: string - nullable: true - description: Name of the linked company. - accountingPlatformRef: - type: string - nullable: true - description: Identifier or reference for the company in the accounting software. - companyLegalName: - type: string - nullable: true - description: Registered legal name of the linked company. - addresses: - type: array - nullable: true - description: An array of Addresses. - items: - title: 'Accounting: Address' - x-internal: true - type: object - properties: - type: - $ref: '#/components/schemas/CompanyInformation/properties/addresses/items/definitions/accountingAddressType' - line1: - type: string - nullable: true - description: Line 1 of the customer address. - line2: - type: string - nullable: true - description: Line 2 of the customer address. - city: - type: string - nullable: true - description: City of the customer address. - region: - type: string - nullable: true - description: Region of the customer address. - country: - type: string - nullable: true - description: Country of the customer address. - postalCode: - type: string - nullable: true - description: Postal code or zip code. - required: - - type - definitions: - accountingAddressType: - description: The type of the address - type: string - enum: - - Unknown - - Billing - - Delivery - phoneNumbers: - type: array - nullable: true - description: An array of phone numbers. - items: - title: Phone - type: object - x-internal: true - properties: - number: - type: string - nullable: true - examples: - - +44 25691 154789 - - (877) 492-8687 - - 01224 658 999 - description: A phone number. - type: - description: The type of phone number - type: string - enum: - - Primary - - Landline - - Mobile - - Fax - - Unknown - required: - - type - webLinks: - type: array - nullable: true - description: An array of weblinks. - items: - title: Weblink - description: Weblink associated with the company. - type: object - properties: - type: - description: The type of the weblink. - type: string - enum: - - Website - - Social - - Unknown - url: - description: The full URL for the weblink. - type: string - format: url - example: - type: Website - url: 'https://codat.io' - ledgerLockDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: 'If set in the accounting software, the date (in the ISO 8601 date/time format) after which accounting transactions cannot be edited. Commonly used when books are closed at year-end.' - registrationNumber: - type: string - nullable: true - description: Registration number given to the linked company by the companies authority in the country of origin. In the UK this is Companies House. - taxNumber: - type: string - nullable: true - description: Company tax number. - financialYearStartDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: Start date of the financial year for the company. - baseCurrency: - type: string - nullable: true - description: Currency set in the accounting software of the linked company. Used by the currency rate. - sourceUrls: - type: object - additionalProperties: - type: string - nullable: true - nullable: true - description: |- - URL addresses for the accounting source. + ## Overview + + A list of bank accounts associated with a company and a specific data connection. + + Bank accounts data includes: + * The name and ID of the account in the accounting software. + * The currency and balance of the account. + * The sort code and account number. + type: object + allOf: + - properties: + id: + type: string + description: 'Identifier for the account, unique for the company in the accounting software.' + - $ref: '#/components/schemas/BankAccounts/allOf/0/properties/results/items/definitions/bankAccountPrototype' + - properties: + metadata: + title: Metadata + type: object + x-internal: true + properties: + isDeleted: + type: boolean + description: Indicates whether the record has been deleted in the third-party system this record originated from. + nullable: true + supplementalData: + title: Supplemental data + type: object + x-internal: true + description: |- + Supplemental data is additional data you can include in our standard data types. - For example, for Xero integrations two URLs are returned. These have many potential use cases, such as [deep linking](https://developer.xero.com/documentation/api-guides/deep-link-xero). - createdDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: Date the linked company was created in the accounting software. - supplementalData: - $ref: '#/components/schemas/SupplementalData' - examples: - - companyName: ACME Corporation - accountingPlatformRef: 4444e827-401b-4925-92cb-d79086bf3b6b - companyLegalName: ACME Corporation Ltd. - addresses: - - type: Billing - line1: Warner House - line2: 98 Theobald's Road - city: London - region: '' - country: United Kingdom - postalcode: WC1X 8WB - - type: Unknown - line1: 123 Sierra Way - line2: '' - city: San Pablo - region: CA - country: '' - postalCode: '87999' - phoneNumbers: - - number: 010 1234 5678 - type: Landline - webLinks: - - type: Website - url: 'https://www.wbsl.com/' - ledgerLockDate: '2019-03-04T12:08:01.881Z' - registrationNumber: '1234567890' - taxNumber: GB 123456789 - financialYearStartDate: '2019-04-01T00:00:00Z' - baseCurrency: USD - sourceUrls: - url1: 'https://go.xero.com/organisationlogin/default.aspx?shortcode=!rxs0Q' - url2: 'https://reporting.xero.com/!rxs0Q' - createdDate: '2020-02-03T16:42:02Z' - CompanyRequestBody: - title: Create company request - x-internal: true + It is referenced as a configured dynamic key value pair that is unique to the accounting software. [Learn more](https://docs.codat.io/using-the-api/supplemental-data/overview) about supplemental data. + properties: + content: + type: object + additionalProperties: + type: object + additionalProperties: true + nullable: true + - title: Modified dates + x-internal: true + allOf: + - title: ModifiedDate + x-internal: true + type: object + properties: + modifiedDate: + allOf: + - $ref: '#/components/schemas/DateTime' + - description: |- + The date when the record was last fetched from the accounting software, commerce software, or open banking provider 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/DateTime' + - description: |- + The date when a record was last modified in the accounting software, 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 accounting software 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. + definitions: + bankAccountPrototype: + title: Bank account prototype + type: object + properties: + accountName: + type: string + nullable: true + description: Name of the bank account in the accounting software. + accountType: + title: Bank Account Type + x-internal: true + enum: + - Unknown + - Credit + - Debit + type: string + description: |- + The type of transactions and balances on the account. + For Credit accounts, positive balances are liabilities, and positive transactions **reduce** liabilities. + For Debit accounts, positive balances are assets, and positive transactions **increase** assets. + nominalCode: + type: string + nullable: true + description: Code used to identify each nominal account for a business. + sortCode: + type: string + nullable: true + description: |- + Sort code for the bank account. + + Xero integrations + The sort code is only displayed when the currency = GBP and the sort code and account number sum to 14 digits. For non-GBP accounts, this field is not populated. + accountNumber: + type: string + nullable: true + description: |- + Account number for the bank account. + + Xero integrations + Only a UK account number shows for bank accounts with GBP currency and a combined total of sort code and account number that equals 14 digits, For non-GBP accounts, the full bank account number is populated. + + FreeAgent integrations + For Credit accounts, only the last four digits are required. For other types, the field is optional. + iBan: + type: string + nullable: true + description: International bank account number of the account. Often used when making or receiving international payments. + currency: + $ref: '#/components/schemas/SourceAccount/properties/currency' + description: Base currency of the bank account. + balance: + type: number + format: decimal + nullable: true + description: Balance of the bank account. + institution: + type: string + nullable: true + description: The institution of the bank account. + availableBalance: + type: number + format: decimal + nullable: true + description: Total available balance of the bank account as reported by the underlying data source. This may take into account overdrafts or pending transactions for example. + overdraftLimit: + type: number + format: decimal + nullable: true + description: |- + Pre-arranged overdraft limit of the account. + + The value is always positive. For example, an overdraftLimit of `1000` means that the balance of the account can go down to `-1000`. + status: + $ref: '#/components/schemas/BankAccounts/allOf/0/properties/results/items/definitions/bankAccountStatus' + bankAccountCreateResponse: + title: Create bank account response + allOf: + - properties: + data: + allOf: + - $ref: '#/components/schemas/BankAccounts/allOf/0/properties/results/items' + - deprecated: true + - $ref: '#/components/schemas/PushOperation' + bankAccountRef: + title: Bank account reference + type: object + properties: + id: + type: string + description: Bank account 'id' for the account transaction. + name: + type: string + description: bank account 'name' for the account transaction. + description: Links to the Account transactions data type. + bankAccounts: + title: 'Accounting: Bank accounts' + allOf: + - type: object + properties: + results: + type: array + items: + $ref: '#/components/schemas/BankAccounts/allOf/0/properties/results/items' + - $ref: '#/components/schemas/Companies/allOf/1' + bankAccountStatus: + title: Account status + enum: + - Unknown + - Active + - Archived + - Pending + type: string + description: Status of the bank account. + example: Active + - $ref: '#/components/schemas/Companies/allOf/1' + BankFeedAccountMapping: + title: Bank feed account mapping type: object + additionalProperties: false properties: - name: + sourceAccountId: type: string - description: Name of company being connected. - pattern: '^[A-Za-z0-9\s\-'',&@.,?!\s]+$' - minLength: 1 - example: Bank of Dave - description: + description: Unique ID for the source account + targetAccountId: type: string - example: Requested early access to the new financing scheme. - description: 'Additional information about the company. This can be used to store foreign IDs, references, etc.' - tags: - $ref: '#/components/schemas/Company/definitions/companyDetails/properties/tags' + nullable: true + description: Unique ID for the target account + feedStartDate: + $ref: '#/components/schemas/DateTime' + nullable: true + description: The date from which bank transactions can be provided to the platform. required: - - name - CompanySyncStatus: - title: Company sync status + - sourceAccountId + examples: + - sourceAccountId: acc-002 + targetAccountId: account-081 + BankFeedAccountMappingResponse: + title: Bank feed account mapping response type: object additionalProperties: false - x-examples: - Success Data Pushed: - companyId: 20803807-4e9a-4cb7-b67b-9f889a3916e1 - syncId: aa4c9dfd-e945-4424-9628-9e724f14c267 - syncStatusCode: 2000 - syncStatus: Complete - errorMessage: '' - syncExceptionMessage: '' - syncUtc: '2023-01-24T14:15:22Z' - dataPushed: true - Success No Data Pushed: - companyId: 20803807-4e9a-4cb7-b67b-9f889a3916e1 - syncId: aa4c9dfd-e945-4424-9628-9e724f14c267 - syncStatusCode: 2040 - syncStatus: Complete - errorMessage: '' - syncExceptionMessage: '' - syncUtc: '2023-01-24T14:15:22Z' - dataPushed: false properties: - companyId: - type: string - description: Unique identifier for your SMB in Codat. - example: d4d73051-ed31-42b6-99f6-d288cd940992 - nullable: true - syncId: + sourceAccountId: type: string - description: Unique identifier of the sync. - example: a6a22aff-a43a-411d-a910-2dae73217cce - nullable: true - syncStatusCode: - type: integer - format: int32 - description: Status code of the sync. - example: 2000 - syncStatus: + description: Unique ID for the source account. + targetAccountId: type: string - description: Text status of the sync. - examples: - - Complete - - PushError - - Started - - NotStarted - - Pushing nullable: true - errorMessage: + description: Unique ID for the target account. + status: type: string - description: Error message of the sync. nullable: true - syncExceptionMessage: + description: Status of the POST request. + error: type: string - description: Exception message of the sync. nullable: true - syncUtc: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: Datetime of the sync. - nullable: true - dataPushed: - type: boolean - description: Boolean of whether the sync resulted in data being pushed. - CompanyUpdateRequest: - title: Update company request - x-internal: true - type: object - properties: - name: - type: string - description: Name of company being connected. - pattern: '^[A-Za-z0-9\s\-'',&@.,?!\s]+$' - minLength: 1 - example: Bank of Dave - description: - $ref: '#/components/schemas/CompanyRequestBody/properties/description' - tags: - $ref: '#/components/schemas/Company/definitions/companyDetails/properties/tags' - Connection: - title: Connection - description: "\uFEFFA connection represents a [company's](https://docs.codat.io/sync-for-expenses-api#/schemas/Company) connection to a data source and allows you to synchronize data (pull and/or push) with that source.\n\nA company can have multiple data connections depending on the type of data source it is connecting to. For example, a single company can link to:\n\n- [Accounting data](https://docs.codat.io/accounting-api/overview) - 1 active connection.\n- [Banking data](https://docs.codat.io/banking-api/overview) - Multiple active connections.\n- [Commerce data](https://docs.codat.io/commerce-api/overview) - Multiple active connections.\nAny combination of accounting, banking, and commerce data connections is allowed.\n\nBefore you can use a data connection to pull or push data, the company must grant you access to their business data by [linking the connection](https://docs.codat.io/auth-flow/overview)." + description: Error returned during the post request + examples: + - sourceAccountId: acc-002 + targetAccountId: account-081 + status: Failed + error: A feed connection already exists to this account + BankFeedMapping: + title: Bank feed mapping type: object + additionalProperties: false properties: - id: - $ref: '#/components/parameters/connectionId/schema' - integrationId: - type: string - format: uuid - example: fd321cb6-7963-4506-b873-e99593a45e30 - description: A Codat ID representing the integration. - integrationKey: + sourceAccountId: type: string - description: A unique four-character ID that identifies the platform of the company's data connection. This ensures continuity if the platform changes its name in the future. - sourceId: + description: Unique ID for the source account. + sourceAccountName: type: string - format: uuid - example: 35b92968-9851-4095-ad60-395c95cbcba4 - description: 'A source-specific ID used to distinguish between different sources originating from the same data connection. In general, a data connection is a single data source. However, for TrueLayer, `sourceId` is associated with a specific bank and has a many-to-one relationship with the `integrationId`.' - sourceType: - title: Source Type - description: The type of platform of the connection. + description: Name for the source account. + sourceAccountNumber: type: string - enum: - - Accounting - - Banking - - BankFeed - - Commerce - - Expense - - Other - - Unknown - example: Accounting - platformName: + description: Account number for the source account. + sourceBalance: + type: number + format: decimal + description: Balance for the source account. + sourceCurrency: + $ref: '#/components/schemas/SourceAccount/properties/currency' + targetAccountId: type: string - description: Name of integration connected to company. - linkUrl: + nullable: true + description: Unique ID for the target account in the accounting software. + targetAccountName: type: string - format: uri - description: The link URL your customers can use to authorize access to their business application. - example: 'https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/2e2eb431-c1fa-4dc9-93fa-d29781c12bcd/start' + description: Name for the target account in the accounting software. status: - $ref: '#/components/schemas/Connection/definitions/dataConnectionStatus' - lastSync: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - nullable: true - created: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - dataConnectionErrors: + type: string + description: The status. + targetAccountOptions: type: array nullable: true + description: An array of potential target accounts. items: - $ref: '#/components/schemas/Connection/definitions/dataConnectionError' - connectionInfo: - type: object + $ref: '#/components/schemas/BankFeedMapping/definitions/targetAccountOption' + feedStartDate: + $ref: '#/components/schemas/DateTime' nullable: true - additionalProperties: true - additionalProperties: false - required: - - id - - integrationId - - integrationKey - - sourceId - - platformName - - linkUrl - - status - - created - - sourceType + description: The date from which bank transactions can be provided to the platform. + description: 'A bank feed connection between a source account and a target account, including potential target accounts.' definitions: - dataConnectionStatus: - title: Data connection status - description: The current authorization status of the data connection. - type: string - enum: - - PendingAuth - - Linked - - Unlinked - - Deauthorized - dataConnectionError: - title: Data connection error + targetAccountOption: + title: Target Account Option type: object properties: - statusCode: - type: string - description: The HTTP status code returned by the source platform when the error occurred. - statusText: + id: type: string - description: A non-numeric status code/text returned by the source platform when the error occurred. - errorMessage: + description: Id of the target account. + name: type: string - description: A message about a error returned by Codat. - erroredOnUtc: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - status: - title: Error status - description: The current status of a transient error. Null statuses indicate that the error is not transient. + nullable: true + description: Name of the target account. + balance: + type: number + format: decimal + nullable: true + description: The balance of the account. + sortCode: type: string nullable: true - enum: - - Active - - Resolved - resolvedOnUtc: - description: The datetime in Utc that the error was resolved. + description: The sort code of the account. + accountNumber: + type: string nullable: true - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - dataConnectionSourceType: - title: Source Type - description: The type of platform of the connection. - type: string - enum: - - Accounting - - Banking - - BankFeed - - Commerce - - Expense - - Other - - Unknown - example: Accounting - example: - id: ee2eb431-c0fa-4dc9-93fa-d29781c12bcd - integrationId: bf083d72-62c7-493e-aec9-81b4dbba7e2c - integrationKey: dfxm - sourceId: bdd831ce-eebd-4896-89a7-20e5ee8989ee - platformName: Basiq - linkUrl: 'https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start' - status: Linked - lastSync: '2022-10-27T10:22:43.6464237Z' - created: '2022-10-27T09:53:29Z' - sourceType: Banking - Connections: - title: Connections - x-internal: true - allOf: - - type: object - properties: - results: - type: array - items: - $ref: '#/components/schemas/Connection' - - $ref: '#/components/schemas/PagingInfo' - CreateAccountResponse: - title: Create account response - x-internal: true - allOf: - - type: object - properties: - data: - allOf: - - $ref: '#/components/schemas/Account' - - deprecated: true - - $ref: '#/components/schemas/PushOperation' - CreateAdjustmentRequest: - title: Create adjustment request - x-internal: true - type: array - minItems: 1 - maxItems: 50 - items: - $ref: '#/components/schemas/AdjustmentTransactionRequest' - CreateBankAccountResponse: - title: Create bank account response - x-internal: true - allOf: - - type: object - properties: - data: - allOf: - - $ref: '#/components/schemas/BankAccount' - - deprecated: true - - $ref: '#/components/schemas/PushOperation' - CreateCustomerResponse: - title: Create customer response - x-internal: true - allOf: - - type: object - properties: - data: - allOf: - - $ref: '#/components/schemas/Customer' - - deprecated: true - - $ref: '#/components/schemas/PushOperation' - CreateExpenseRequest: - title: Create expense request - x-internal: true + description: The account number of the account. + bankFeedMappings: + title: Bank feed mappings + type: array + items: + $ref: '#/components/schemas/BankFeedMapping' + additionalProperties: false + examples: + - sourceAccountId: acc-002 + targetAccountId: account-081 + sourceCurrency: USD + status: Success + feedStartDate: '2023-01-09T14:14:14.1057478Z' + sourceAccountName: ACME Bank + sourceAccountNumber: 1234-5678 + sourceBalance: 500 + targetAccountName: ACME Bank + - sourceAccountId: c53fd75a-dddb-4493-839a-5090b008f625 + status: pending + targetAccountOptions: + - name: account-081 + id: 044096a7-1478-4554-8820-f478caad1b00 + balance: 100.99 + sortCode: '602336' + accountNumber: '23203' + sourceAccountName: bank name here + sourceAccountNumber: '5670' + sourceBalance: 1550 + sourceCurrency: GBP + BankTransactions: + title: Bank transactions type: array - minItems: 1 - maxItems: 50 + maxItems: 1000 items: - $ref: '#/components/schemas/ExpenseTransaction' - CreateExpenseResponse: - title: Create expense response - x-internal: true + title: Bank transaction + type: object + properties: + id: + type: string + description: 'Identifier for the bank account transaction, unique for the company in the accounting software.' + example: '716422529' + date: + title: Local date time + type: string + examples: + - '2023-08-22T10:21:00' + - '2023-08-22' + 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: + + ``` + 2023-08-22T10:21:00 + 2023-08-22 + ``` + + When pushing bank transaction data to Codat, the date is treated as a local date. This means: + + - The date/time is used exactly as provided, without any timezone conversion. + - If a timezone offset is included (e.g., `2023-08-22T10:21:00-05:00`), the offset will be ignored and only the local date/time portion will be used. + - We recommend providing dates without a timezone suffix for clarity (e.g., `2023-08-22T10:21:00` rather than `2023-08-22T10:21:00Z`). + description: + type: string + nullable: true + description: Description of the bank transaction. + example: Debit for Payment Id sdp-1-57379a43-c4b8-49f5-bd7c-699189ee7a60 + counterparty: + type: string + nullable: true + description: The giving or receiving party such as a person or organization. + example: ACME INC + reference: + type: string + nullable: true + description: An optional reference to the bank transaction. + example: reference for transaction + reconciled: + type: boolean + nullable: true + description: '`True` if the bank transaction has been [reconciled](https://www.xero.com/uk/guides/what-is-bank-reconciliation/) in the accounting software.' + example: false + amount: + type: number + format: decimal + description: The amount transacted in the bank transaction. + example: 999.99 + balance: + type: number + format: decimal + description: 'The remaining balance in the account with ID `accountId`. This field is optional for QuickBooks Online but is required for Xero, Sage, NetSuite, Exact, and FreeAgent.' + example: -999.99 + transactionType: + title: Bank transaction type + nullable: true + description: Type of transaction for the bank statement line. + type: string + enum: + - Unknown + - Credit + - Debit + - Int + - Div + - Fee + - SerChg + - Dep + - Atm + - Pos + - Xfer + - Check + - Payment + - Cash + - DirectDep + - DirectDebit + - RepeatPmt + - Other + ClientRateLimitWebhook: + title: Client rate limit webhook type: object properties: - syncId: + id: type: string - example: cd937d46-8e41-43a9-9477-a79158ffd98a format: uuid - description: Unique id of sync created - CreateReimbursableExpenseResponse: - title: Create reimbursable expense response - x-internal: true - type: object - properties: - syncId: + example: 743ec94a-8aa4-44bb-8bd4-e1855ee0e74b + description: Unique identifier of the event. + eventType: type: string - example: cd937d46-8e41-43a9-9477-a79158ffd98a - format: uuid - description: Unique id of sync created - CreateSupplierResponse: - title: Create supplier response + description: The type of event. + examples: + - client.rateLimit.reset + - client.rateLimit.reached + generatedDate: + $ref: '#/components/schemas/DateTime' + description: The date time in UTC the event was generated in Codat. + payload: + $ref: '#/components/schemas/ClientRateLimitWebhook/definitions/clientRateLimitWebhookPayload' + definitions: + clientRateLimitWebhookPayload: + title: Client rate limit webhook payload + type: object + properties: + dailyQuota: + type: integer + description: The number of available requests per day. + quotaRemaining: + type: integer + description: Total number of requests remaining for your client. + expiryDate: + $ref: '#/components/schemas/DateTime' + description: The date time in UTC when your daily quota is reset. + Companies: + title: Companies x-internal: true allOf: - type: object properties: - data: - allOf: - - $ref: '#/components/schemas/Supplier' - - deprecated: true - - $ref: '#/components/schemas/PushOperation' - Customer: - title: 'Accounting: Customer' - description: | - ## Overview - - A customer is a person or organisation that buys goods or services. From the Customers endpoints, you can retrieve a [list of all the customers of a company](https://api.codat.io/swagger/index.html#/Customers/get_companies__companyId__data_customers). - - Customers' data links to accounts receivable [invoices](https://docs.codat.io/sync-for-expenses-api#/schemas/Invoice). + results: + type: array + items: + $ref: '#/components/schemas/Company' + - type: object + title: Pagination information + x-internal: true + properties: + pageNumber: + type: integer + description: Current page number. + pageSize: + type: integer + description: Number of items to return in results array. + maximum: 2000 + totalResults: + type: integer + description: Total number of items. + _links: + $ref: '#/components/schemas/Companies/allOf/1/definitions/links' + definitions: + links: + title: Hal Links + type: object + required: + - self + - current + properties: + self: + $ref: '#/components/schemas/Companies/allOf/1/definitions/halRef' + current: + $ref: '#/components/schemas/Companies/allOf/1/definitions/halRef' + next: + $ref: '#/components/schemas/Companies/allOf/1/definitions/halRef' + previous: + $ref: '#/components/schemas/Companies/allOf/1/definitions/halRef' + examples: + - self: + href: /companies + current: + href: /companies?page=1&pageSize=10 + halRef: + title: Hypertext reference + type: object + properties: + href: + type: string + format: uri-reference + description: Uri hypertext reference. + required: + - pageNumber + - pageSize + - totalResults + - _links + examples: + - pageNumber: 1 + pageSize: 10 + totalResults: 1 + _links: + self: + href: '/companies/{id}/data/{dataType}' + current: + href: '/companies/{id}/data/{dataType}?page=1&pageSize=10' + Company: + title: Company + description: "\uFEFFIn Codat, a company represents a business sharing access to their data. Each company can have multiple [connections](https://docs.codat.io/bank-feeds-api#/schemas/Connection) to different data sources such as one connection to [Xero](https://docs.codat.io/integrations/accounting/xero/accounting-xero) for accounting data, two connections to [Plaid](https://docs.codat.io/integrations/banking/plaid/banking-plaid) for two bank accounts and a connection to [Zettle](https://docs.codat.io/integrations/commerce/zettle/commerce-zettle) for POS data.\n\nTypically each company is one of your customers.\n\nWhen you create a company, you can specify a `name` and we will automatically generate a unique `id` for the company. You can also add a `description` to store any additional information about the company." type: object allOf: + - $ref: '#/components/schemas/Company/definitions/companyDetails' - type: object properties: - id: - type: string - description: 'Identifier for the customer, unique to the company in the accounting software.' - customerName: - type: string - nullable: true - description: 'Name of the customer as recorded in the accounting system, typically the company name.' - contactName: - type: string - nullable: true - description: Name of the main contact for the identified customer. - emailAddress: - type: string - nullable: true - description: Email address the customer can be contacted by. - defaultCurrency: - $ref: '#/components/schemas/Account/definitions/accountPrototype/properties/currency' - description: Default currency the transactional data of the customer is recorded in. - phone: - type: string - nullable: true - description: Phone number the customer can be contacted by. - addresses: - type: array - nullable: true - description: An array of Addresses. - items: - $ref: '#/components/schemas/CompanyInformation/properties/addresses/items' - contacts: + dataConnections: type: array - nullable: true - description: An array of Contacts. items: - $ref: '#/components/schemas/Customer/definitions/contact' - registrationNumber: - type: string - nullable: true - description: 'Company number. In the UK, this is typically the Companies House company registration number.' - taxNumber: - type: string - nullable: true - description: Company tax number. - status: - $ref: '#/components/schemas/Customer/definitions/customerStatus' - description: Current state of the customer. - metadata: - $ref: '#/components/schemas/Account/allOf/2/properties/metadata' - supplementalData: - $ref: '#/components/schemas/SupplementalData' - - $ref: '#/components/schemas/Account/allOf/3' - required: - - status + $ref: '#/components/schemas/Connection' definitions: - accountingCustomerRef: + companyDetails: + title: Company details type: object properties: id: - minLength: 1 - type: string - description: '`id` from the Customers data type' - companyName: - type: string - nullable: true - description: '`customerName` from the Customer data type' - required: - - id - customerStatus: - description: Status of customer. - type: string - enum: - - Unknown - - Active - - Archived - contact: - type: object - properties: + $ref: '#/components/parameters/companyId/schema' name: type: string + description: The name of the company + example: Codat Ltd. + description: + $ref: '#/components/schemas/CompanyRequestBody/properties/description' nullable: true - description: Name of a contact for a customer. - email: + redirect: type: string + format: uri + description: 'The `redirect` [Link URL](https://docs.codat.io/auth-flow/authorize-hosted-link) enabling the customer to start their auth flow journey for the company.' + example: 'https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739' + lastSync: + $ref: '#/components/schemas/DateTime' nullable: true - description: Email of a contact for a customer. - phone: - type: array + created: + $ref: '#/components/schemas/DateTime' + createdByUserName: + type: string + description: Name of user that created the company in Codat. nullable: true - description: An array of Phone numbers. - items: - $ref: '#/components/schemas/CompanyInformation/properties/phoneNumbers/items' - address: - $ref: '#/components/schemas/CompanyInformation/properties/addresses/items' - description: An object of Address information. - status: - $ref: '#/components/schemas/Customer/definitions/customerStatus' - modifiedDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - required: - - status - Customers: - title: Customers - x-internal: true - allOf: - - type: object - properties: - results: + products: type: array items: - $ref: '#/components/schemas/Customer' - - $ref: '#/components/schemas/PagingInfo' - DataStatus: - title: Data status - description: Describes the state of data in the Codat cache for a company and data type - type: object - required: - - dataType - - currentStatus - properties: - dataType: - title: Data types - x-internal: true - type: string - description: Available data types - enum: - - accountTransactions - - balanceSheet - - bankAccounts - - bankTransactions - - billCreditNotes - - billPayments - - bills - - cashFlowStatement - - chartOfAccounts - - company - - creditNotes - - customers - - directCosts - - directIncomes - - invoices - - itemReceipts - - items - - journalEntries - - journals - - paymentMethods - - payments - - profitAndLoss - - purchaseOrders - - salesOrders - - suppliers - - taxRates - - trackingCategories - - transfers - - banking-accountBalances - - banking-accounts - - banking-transactionCategories - - banking-transactions - - commerce-companyInfo - - commerce-customers - - commerce-disputes - - commerce-locations - - commerce-orders - - commerce-paymentMethods - - commerce-payments - - commerce-productCategories - - commerce-products - - commerce-taxComponents - - commerce-transactions - example: invoices - lastSuccessfulSync: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - currentStatus: - $ref: '#/components/schemas/PullOperation/properties/status' - latestSyncId: - type: string - description: Unique identifier for most recent sync of data type. - format: uuid - example: ad474a37-2003-478e-baee-9af9f1ec2fe3 - latestSuccessfulSyncId: - type: string - description: Unique identifier for the most recent successful sync of data type. - format: uuid - example: 8220fc90-55b6-47bc-9417-48ac6ea93101 - examples: - - dataType: string - lastSuccessfulSync: '2022-01-01T13:00:00.000Z' - currentStatus: string - latestSyncId: ad474a37-2003-478e-baee-9af9f1ec2fe3 - latestSuccessfulSyncId: 8220fc90-55b6-47bc-9417-48ac6ea93101 - DataStatusResponse: - x-internal: true - title: Data status response - type: object - additionalProperties: - $ref: '#/components/schemas/DataStatus' - DataType: - x-internal: true - $ref: '#/components/schemas/DataStatus/properties/dataType' - ErrorMessage: - title: Error message - type: object - x-internal: true - properties: - statusCode: - type: integer - description: The HTTP status code returned by the error. - service: - type: string - description: Codat's service the returned the error. - error: - type: string - description: A brief description of the error. - correlationId: - type: string - description: Unique identifier used to propagate to all downstream services and determine the source of the error. - validation: - $ref: '#/components/schemas/ErrorMessage/definitions/errorValidation' - canBeRetried: - type: string - description: '`True` if the error occurred transiently and can be retried.' - detailedErrorCode: - type: integer - description: Machine readable error code used to automate processes based on the code returned. - definitions: - errorValidation: - title: Validation error - type: object - nullable: true - description: 'A human-readable object describing validation decisions Codat has made. If an operation has failed because of validation errors, they will be detailed here.' - properties: - errors: - type: array + type: string + description: An array of products that are currently enabled for the company. + tags: + title: Tags + type: object + maxProperties: 10 + propertyNames: + pattern: '^.{1,27}$' + additionalProperties: + type: string + maxLength: 100 + description: A collection of user-defined key-value pairs that store custom metadata against the company. + referenceParentCompany: + $ref: '#/components/schemas/Company/definitions/companyReference' nullable: true - items: - $ref: '#/components/schemas/ErrorMessage/definitions/errorValidationItem' - warnings: + description: The parent entity or controlling organization of this company. Null if the company has no parent. + referenceSubsidiaryCompanies: type: array - nullable: true + nullable: false + description: A list of subsidiary companies owned or controlled by this entity. Empty if the company has no children. + minItems: 0 items: - $ref: '#/components/schemas/ErrorMessage/definitions/errorValidationItem' - errorValidationItem: - title: Validation error item + $ref: '#/components/schemas/Company/definitions/companyReference' + required: + - id + - name + - redirect + companyReference: + title: Company reference type: object properties: - itemId: - type: string - nullable: true - description: Unique identifier for a validation item. - message: + id: + $ref: '#/components/parameters/companyId/schema' + name: + $ref: '#/components/schemas/Company/definitions/companyDetails/properties/name' + description: + $ref: '#/components/schemas/Company/definitions/companyDetails/properties/description' + links: + type: object + description: A collection of links for the company. + properties: + portal: + type: string + format: uri + description: Link to the company page in the portal. + tags: + $ref: '#/components/schemas/Company/definitions/companyDetails/properties/tags' + examples: + - id: 0498e921-9b53-4396-a412-4f2f5983b0a2 + name: string + redirect: 'https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739' + lastSync: '2022-01-01T12:00:00.000Z' + created: '2022-01-01T12:00:00.000Z' + createdByUserName: string + tags: + region: us + uid: f6b0c253-16c7-4da1-a0c5-9c871e9c9d6c + dataConnections: + - id: ee2eb431-c0fa-4dc9-93fa-d29781c12bcd + integrationId: bf083d72-62c7-493e-aec9-81b4dbba7e2c + integrationKey: dfxm + sourceId: bdd831ce-eebd-4896-89a7-20e5ee8989ee + platformName: Basiq + linkUrl: 'https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start' + status: Linked + lastSync: '2022-10-27T10:22:43.6464237Z' + created: '2022-10-27T09:53:29Z' + sourceType: Banking + products: + - spend-insights + - lending + CompanyAccessToken: + title: Company access token + description: Details of the access token provisioned for a company. + type: object + allOf: + - $ref: '#/components/schemas/CompanyAccessToken/definitions/accessToken' + definitions: + accessToken: + title: Access token + type: object + properties: + expiresIn: + type: integer + description: The number of seconds until the access token expires. + example: 86400 + accessToken: type: string - nullable: true - description: A message outlining validation item's issue. - validatorName: + description: The access token for the company. + tokenType: type: string - nullable: true - description: Name of validator. - ExpenseContactRef: + description: The type of token. + example: Bearer + required: + - expiresIn + - accessToken + - tokenType + examples: + - expiresIn: 86400 + accessToken: string + tokenType: Bearer + CompanyInformation: + title: Company information + description: Information about the company from the underlying accounting software. type: object - title: Supplier/customer reference + properties: + companyName: + type: string + nullable: false + description: Name of the linked company. + baseCurrency: + type: string + nullable: false + description: Currency set in the accounting software of the linked company. + planType: + type: string + nullable: true + description: 'Accounting software subscription type such as Trial, Demo, Standard.' + multicurrencyEnabled: + type: boolean + description: Boolean showing if the organisation has multicurrency enabled. + currencies: + type: array + nullable: true + description: Array of enabled currencies for the linked company. + items: + type: string + CompanyRequestBody: + title: Create company request x-internal: true + type: object properties: - id: + name: type: string - example: 40e3e57c-2322-4898-966c-ca41adfd23fd - description: Identifier of supplier or customer. - type: + description: Name of company being connected. + pattern: '^[A-Za-z0-9\s\-'',&@.,?!\s]+$' + minLength: 1 + example: Bank of Dave + description: type: string - description: The type of contact. - example: Supplier - default: Supplier - enum: - - Supplier + example: Requested early access to the new financing scheme. + description: 'Additional information about the company. This can be used to store foreign IDs, references, etc.' + tags: + $ref: '#/components/schemas/Company/definitions/companyDetails/properties/tags' required: - - id - ExpensesSyncWebhook: - title: Expenses sync webhook + - name + CompanyUpdateRequest: + title: Update company request + x-internal: true type: object properties: - id: - type: string - format: uuid - example: ba29118f-5406-4e59-b05c-ba307ca38d01 - description: Unique identifier of the event. - eventType: + name: type: string - description: The type of event. - examples: - - expenses.sync.successful - - expenses.sync.unsuccessful - generatedDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: The date time in UTC the event was generated in Codat. - payload: - $ref: '#/components/schemas/ExpensesSyncWebhook/definitions/expensesSyncWebhookPayload' - definitions: - transaction: - title: Transaction - type: object - properties: - id: - type: string - description: Unique identifier of the transaction. - status: - type: string - enum: - - Unknown - - PushError - - Completed - - Failed - - Pending - description: Status of transaction. - errorMessage: - type: string - nullable: true - description: Error message for failed transaction. - expensesSyncWebhookPayload: - title: Expenses sync webhook payload - type: object - properties: - referenceCompany: - $ref: '#/components/schemas/Company/definitions/companyReference' - syncId: - type: string - description: Unique identifier of the sync. - transactions: - type: array - items: - $ref: '#/components/schemas/ExpensesSyncWebhook/definitions/transaction' - ExpenseTransaction: - title: Expense transaction + description: Name of company being connected. + pattern: '^[A-Za-z0-9\s\-'',&@.,?!\s]+$' + minLength: 1 + example: Bank of Dave + description: + $ref: '#/components/schemas/CompanyRequestBody/properties/description' + tags: + $ref: '#/components/schemas/Company/definitions/companyDetails/properties/tags' + Connection: + title: Connection + description: "\uFEFFA connection represents a [company's](https://docs.codat.io/bank-feeds-api#/schemas/Company) connection to a data source and allows you to synchronize data (pull and/or push) with that source.\n\nA company can have multiple data connections depending on the type of data source it is connecting to. For example, a single company can link to:\n\n- [Accounting data](https://docs.codat.io/accounting-api/overview) - 1 active connection.\n- [Banking data](https://docs.codat.io/banking-api/overview) - Multiple active connections.\n- [Commerce data](https://docs.codat.io/commerce-api/overview) - Multiple active connections.\nAny combination of accounting, banking, and commerce data connections is allowed.\n\nBefore you can use a data connection to pull or push data, the company must grant you access to their business data by [linking the connection](https://docs.codat.io/auth-flow/overview)." type: object properties: id: + $ref: '#/components/parameters/connectionId/schema' + integrationId: type: string - example: 4d7c6929-7770-412b-91bb-44d3bc71d111 format: uuid - description: Your unique identifier for the transaction. - type: + example: fd321cb6-7963-4506-b873-e99593a45e30 + description: A Codat ID representing the integration. + integrationKey: + type: string + description: A unique four-character ID that identifies the platform of the company's data connection. This ensures continuity if the platform changes its name in the future. + sourceId: + type: string + format: uuid + example: 35b92968-9851-4095-ad60-395c95cbcba4 + description: 'A source-specific ID used to distinguish between different sources originating from the same data connection. In general, a data connection is a single data source. However, for TrueLayer, `sourceId` is associated with a specific bank and has a many-to-one relationship with the `integrationId`.' + sourceType: + title: Source Type + description: The type of platform of the connection. type: string - example: Payment - description: The type of transaction. enum: - - Payment - - Refund - - Reward - - Chargeback - issueDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: Date of the transaction was recorded. - currency: + - Accounting + - Banking + - BankFeed + - Commerce + - Expense + - Other + - Unknown + example: Accounting + platformName: type: string - example: GBP - description: Currency the transaction was recorded in. - currencyRate: - title: Currency rate - type: number - format: decimal - 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 software, it will be available from Codat with the same precision (up to a maximum of 9 decimal places). - - For accounting software 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 | - - - ### Integration-specific details - - | Integration | Scenario | System behavior | - |-------------------|-------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------| - | QuickBooks Online | Transaction currency differs from base currency | If currency rate value is left `null`, a rate of 1 will be used by QBO by default. To override this, specify a currencyRate in the request body. | - contactRef: - description: Supplier or customer for the purchase to be associated to. - $ref: '#/components/schemas/ExpenseContactRef' - bankAccountRef: - type: object - title: Bank account reference - properties: - id: - type: string - example: 787dfb37-5707-4dc0-8a86-8d74e4cc78ea - description: Identifier of the bank account. - reference: + description: Name of integration connected to company. + linkUrl: type: string + format: uri + description: The link URL your customers can use to authorize access to their business application. + example: 'https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/2e2eb431-c1fa-4dc9-93fa-d29781c12bcd/start' + status: + $ref: '#/components/schemas/Connection/definitions/dataConnectionStatus' + lastSync: + $ref: '#/components/schemas/DateTime' nullable: true - description: User-friendly reference for the expense transaction. - merchantName: - type: string - example: Amazon UK - description: Name of the merchant where the purchase took place - lines: + created: + $ref: '#/components/schemas/DateTime' + dataConnectionErrors: type: array - description: Array of transaction lines. - minItems: 1 - maxItems: 100 + nullable: true items: - $ref: '#/components/schemas/ExpenseTransactionLine' - notes: - type: string - description: 'Any private, company notes about the transaction.' - example: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - postAsDraft: - type: boolean + $ref: '#/components/schemas/Connection/definitions/dataConnectionError' + connectionInfo: + type: object nullable: true - description: 'This optional property, when set to true, posts the transaction to a drafted state. Note that postAsDraft is only supported in Microsoft Dynamics 365 Business Central.' + additionalProperties: true + additionalProperties: false required: - id - - type - - issueDate - - currency - examples: - - id: a44135b0-6882-489a-83fe-a0c57a4afb19 - type: Payment - issueDate: '2024-05-21T00:00:00+00:00' - currency: GBP - currencyRate: 1 - contactRef: - id: '430' - type: Supplier - bankAccountRef: - id: '97' - merchantName: Amazon UK - notes: amazon purchase - lines: - - netAmount: 100 - taxAmount: 20 - taxRateRef: - id: 23_Bills - accountRef: - id: '35' - trackingRefs: - - id: DEPARTMENT_3 - - dataType: trackingCategories - invoiceTo: - id: '504' - type: customer - ExpenseTransactionLine: + - integrationId + - integrationKey + - sourceId + - platformName + - linkUrl + - status + - created + - sourceType + definitions: + dataConnectionStatus: + title: Data connection status + description: The current authorization status of the data connection. + type: string + enum: + - PendingAuth + - Linked + - Unlinked + - Deauthorized + dataConnectionError: + title: Data connection error + type: object + properties: + statusCode: + type: string + description: The HTTP status code returned by the source platform when the error occurred. + statusText: + type: string + description: A non-numeric status code/text returned by the source platform when the error occurred. + errorMessage: + type: string + description: A message about a error returned by Codat. + erroredOnUtc: + $ref: '#/components/schemas/DateTime' + status: + title: Error status + description: The current status of a transient error. Null statuses indicate that the error is not transient. + type: string + nullable: true + enum: + - Active + - Resolved + resolvedOnUtc: + description: The datetime in Utc that the error was resolved. + nullable: true + $ref: '#/components/schemas/DateTime' + dataConnectionSourceType: + title: Source Type + description: The type of platform of the connection. + type: string + enum: + - Accounting + - Banking + - BankFeed + - Commerce + - Expense + - Other + - Unknown + example: Accounting + example: + id: ee2eb431-c0fa-4dc9-93fa-d29781c12bcd + integrationId: bf083d72-62c7-493e-aec9-81b4dbba7e2c + integrationKey: dfxm + sourceId: bdd831ce-eebd-4896-89a7-20e5ee8989ee + platformName: Basiq + linkUrl: 'https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start' + status: Linked + lastSync: '2022-10-27T10:22:43.6464237Z' + created: '2022-10-27T09:53:29Z' + sourceType: Banking + Connections: + title: Connections x-internal: true - title: Expense transaction line + allOf: + - type: object + properties: + results: + type: array + items: + $ref: '#/components/schemas/Connection' + - $ref: '#/components/schemas/Companies/allOf/1' + CreateBankTransactions: + title: Create bank transactions type: object - x-examples: - ExpenseTransactionLine: - netAmount: 100 - taxAmount: 20 - taxRateRef: - id: 08d37c46-8d5d-441b-8bad-76286c43047e - accountRef: - id: 16989b16-96d4-401a-9054-f5c620c655a6 - trackingRefs: - - id: e9a1b63d-9ff0-40e7-8038-016354b987e6 - invoiceTo: - id: 80000002-1674552702 - type: customer properties: - netAmount: - type: number - format: decimal - example: 100 - description: 'Amount of the line, exclusive of tax.' - taxAmount: - type: number - format: decimal - example: 20 - description: Amount of tax for the line. - taxRateRef: - $ref: '#/components/schemas/RecordRef' - accountRef: - description: The `accountRef` contains the `id` of the account the transaction is against. The `accountRef` object is required for all integrations except QBD which currently supports either itemRef or accountRef. - $ref: '#/components/schemas/RecordRef' - itemRef: - $ref: '#/components/schemas/ItemRef' - trackingRefs: - type: array - minItems: 1 - maxItems: 10 - nullable: true - items: - $ref: '#/components/schemas/TrackingRef' - invoiceTo: - $ref: '#/components/schemas/InvoiceTo' + accountId: + type: string + description: Unique identifier for a bank account. + examples: + - 13d946f0-c5d5-42bc-b092-97ece17923ab + - 9wg4lep4ush5cxs79pl8sozmsndbaukll3ind4g7buqbm1h2 + - '7110701885' + - EILBDVJVNUAGVKRQ + - Checking 0202 + transactions: + $ref: '#/components/schemas/BankTransactions' required: - - netAmount - IntegrationType: - title: Integration type + - accountId + - transactions + CreateBankTransactionsResponse: + title: Create bank transaction response + x-internal: true + allOf: + - type: object + properties: + data: + $ref: '#/components/schemas/CreateBankTransactions' + - $ref: '#/components/schemas/PushOperation' + DataType: + title: Data types x-internal: true type: string - description: Type of transaction that has been processed e.g. Expense or Bank Feed. + description: Available data types enum: - - expenses - - bankfeeds - default: expenses - example: expenses - nullable: true - InvoiceTo: - title: Billable customer reference - x-internal: true + - accountTransactions + - balanceSheet + - bankAccounts + - bankTransactions + - billCreditNotes + - billPayments + - bills + - cashFlowStatement + - chartOfAccounts + - company + - creditNotes + - customers + - directCosts + - directIncomes + - invoices + - itemReceipts + - items + - journalEntries + - journals + - paymentMethods + - payments + - profitAndLoss + - purchaseOrders + - salesOrders + - suppliers + - taxRates + - trackingCategories + - transfers + - banking-accountBalances + - banking-accounts + - banking-transactionCategories + - banking-transactions + - commerce-companyInfo + - commerce-customers + - commerce-disputes + - commerce-locations + - commerce-orders + - commerce-paymentMethods + - commerce-payments + - commerce-productCategories + - commerce-products + - commerce-taxComponents + - commerce-transactions + example: invoices + DateTime: + title: Date time + type: string + examples: + - '2022-10-23T00:00:00Z' + - '2022-10-23' + 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. + ErrorMessage: + title: Error message type: object - nullable: true - description: Unique identifier for the customer billed for the transaction. The `invoiceTo` object is currently supported only for QuickBooks Online and QuickBooks Desktop. + x-internal: true properties: - id: + statusCode: + type: integer + description: The HTTP status code returned by the error. + service: type: string - example: 80000002-1674552702 - description: identifier of customer. - type: + description: Codat's service the returned the error. + error: type: string - example: customer - description: The type of contact. - enum: - - customer - ItemRef: - x-internal: true - type: object - title: Item reference - nullable: true - properties: - id: + description: A brief description of the error. + correlationId: type: string - example: 80000002-1675158984 - description: 'Unique identifier for the item associated with the transaction. The `itemRef` object is currently supported only for QuickBooks Desktop. You can specify either `itemRef` or `accountRef`, but not both.' - MappingOptions: - title: Mapping options - type: object - additionalProperties: false - x-examples: {} - properties: - expenseProvider: + description: Unique identifier used to propagate to all downstream services and determine the source of the error. + validation: + $ref: '#/components/schemas/ErrorMessage/definitions/errorValidation' + canBeRetried: type: string - description: Name of the expense integration. - example: Partner Expense - nullable: true - accounts: - type: array - description: Array of available accounts for mapping. - nullable: true - items: - $ref: '#/components/schemas/AccountMappingInfo' - trackingCategories: - type: array - description: Array of available tracking categories for mapping. - nullable: true - items: - $ref: '#/components/schemas/TrackingCategoryMappingInfo' - taxRates: - type: array - description: Array of available tax rates for mapping. - nullable: true - items: - $ref: '#/components/schemas/TaxRateMappingInfo' - PagingInfo: - type: object - title: Pagination information - x-internal: true - properties: - pageNumber: - type: integer - description: Current page number. - pageSize: - type: integer - description: Number of items to return in results array. - maximum: 2000 - totalResults: + description: '`True` if the error occurred transiently and can be retried.' + detailedErrorCode: type: integer - description: Total number of items. - _links: - $ref: '#/components/schemas/PagingInfo/definitions/links' + description: Machine readable error code used to automate processes based on the code returned. definitions: - links: - title: Hal Links + errorValidation: + title: Validation error type: object - required: - - self - - current + nullable: true + description: 'A human-readable object describing validation decisions Codat has made. If an operation has failed because of validation errors, they will be detailed here.' 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 - current: - href: /companies?page=1&pageSize=10 - halRef: - title: Hypertext reference + errors: + type: array + nullable: true + items: + $ref: '#/components/schemas/ErrorMessage/definitions/errorValidationItem' + warnings: + type: array + nullable: true + items: + $ref: '#/components/schemas/ErrorMessage/definitions/errorValidationItem' + errorValidationItem: + title: Validation error item type: object properties: - href: + itemId: + type: string + nullable: true + description: Unique identifier for a validation item. + message: + type: string + nullable: true + description: A message outlining validation item's issue. + validatorName: type: string - format: uri-reference - description: Uri hypertext reference. + nullable: true + description: Name of validator. + GenerateOtpResponse: + title: OTP response + type: object + description: Response containing a one-time password and its expiry time. + additionalProperties: false + properties: + otp: + type: string + description: The one-time password. + expiry: + $ref: '#/components/schemas/DateTime' + description: The expiry date and time of the OTP in UTC. required: - - pageNumber - - pageSize - - totalResults - - _links + - otp + - expiry examples: - - pageNumber: 1 - pageSize: 10 - totalResults: 1 - _links: - self: - href: '/companies/{id}/data/{dataType}' - current: - href: '/companies/{id}/data/{dataType}?page=1&pageSize=10' + - otp: GT40U4 + expiry: '2026-04-08T10:30:00Z' PullOperation: title: Pull operation description: |- @@ -12057,9 +4370,9 @@ components: nullable: true description: A message about a transient or persistent error returned by Codat or the source platform. requested: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' + $ref: '#/components/schemas/DateTime' completed: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' + $ref: '#/components/schemas/DateTime' progress: type: integer description: An integer signifying the progress of the pull operation. @@ -12100,7 +4413,7 @@ components: type: array items: $ref: '#/components/schemas/PullOperation' - - $ref: '#/components/schemas/PagingInfo' + - $ref: '#/components/schemas/Companies/allOf/1' PushOperation: title: Push operation type: object @@ -12113,7 +4426,7 @@ components: items: $ref: '#/components/schemas/PushOperation/definitions/pushOperationChange' dataType: - $ref: '#/components/schemas/DataStatus/properties/dataType' + $ref: '#/components/schemas/DataType' description: 'The type of data being pushed, eg invoices, customers.' companyId: $ref: '#/components/parameters/companyId/schema' @@ -12124,10 +4437,10 @@ components: dataConnectionKey: $ref: '#/components/parameters/connectionId/schema' requestedOnUtc: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' + $ref: '#/components/schemas/DateTime' description: The datetime when the push was requested. completedOnUtc: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' + $ref: '#/components/schemas/DateTime' description: 'The datetime when the push was completed, null if Pending.' timeoutInMinutes: type: integer @@ -12210,7 +4523,7 @@ components: type: string description: Unique identifier for a push operation. dataType: - $ref: '#/components/schemas/DataStatus/properties/dataType' + $ref: '#/components/schemas/DataType' nullable: true additionalProperties: false pushOperationStatus: @@ -12243,7 +4556,7 @@ components: type: array items: $ref: '#/components/schemas/PushOperation' - - $ref: '#/components/schemas/PagingInfo' + - $ref: '#/components/schemas/Companies/allOf/1' PushOption: title: Push option x-internal: true @@ -12371,821 +4684,541 @@ components: $ref: '#/components/schemas/PushOption/definitions/pushOptionProperty/properties/description' required: $ref: '#/components/schemas/PushOption/definitions/pushOptionProperty/properties/required' - RecordRef: - x-internal: true + SourceAccount: + title: Source account (v1) type: object - title: Record reference + description: The target bank account in a supported accounting software for ingestion into a bank feed. + additionalProperties: false properties: id: type: string - example: 40e3e57c-2322-4898-966c-ca41adfd23fd - description: Identifier of linked reference from mapping options. - ReimbursableExpenseTransactionLine: - x-internal: true - title: Reimbursable expense transaction line - type: object - properties: - description: + description: Unique ID for the bank account. + accountName: type: string - example: 2-night hotel stay - description: line description - netAmount: - type: number - format: decimal - example: 100 - description: 'Amount of the line, exclusive of tax.' - taxAmount: + nullable: true + description: The bank account name. + accountType: + type: string + nullable: true + description: The type of bank account e.g. Credit. + accountNumber: + type: string + nullable: true + description: The account number. + sortCode: + type: string + nullable: true + description: The sort code. + 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 + balance: type: number format: decimal - example: 20 - description: Amount of tax for the line. - taxRateRef: - $ref: '#/components/schemas/RecordRef' - accountRef: - description: The `accountRef` contains the `id` of the account the transaction is against. The `accountRef` object is required for all integrations except QBD which currently supports either itemRef or accountRef. - $ref: '#/components/schemas/RecordRef' - itemRef: - $ref: '#/components/schemas/ItemRef' - trackingRefs: - type: array - minItems: 1 - maxItems: 10 nullable: true - items: - $ref: '#/components/schemas/TrackingRef' - invoiceTo: - $ref: '#/components/schemas/InvoiceTo' - required: - - netAmount - ReimbursableExpenseTransactionRequest: - title: Reimbursable expense transaction request - type: array - minItems: 1 - maxItems: 50 - items: - $ref: '#/components/schemas/ReimbursableExpenseTransactionRequest/definitions/reimbursableExpenseTransaction' - definitions: - reimbursableExpenseTransaction: - title: Reimbursable expense transaction - type: object - properties: - id: - type: string - example: 4d7c6929-7770-412b-91bb-44d3bc71d111 - format: uuid - description: Your unique identifier for the transaction. - reference: - type: string - nullable: true - description: User-friendly reference for the reimbursable expense. - contactRef: - $ref: '#/components/schemas/ReimbursementContactRef' - apAccountRef: - $ref: '#/components/schemas/apAccountRef' - issueDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: Date of the transaction was recorded. - dueDate: - description: Date the supplier is due to be paid. - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - currency: - type: string - example: GBP - description: Currency the transaction was recorded in. - currencyRate: - $ref: '#/components/schemas/ExpenseTransaction/properties/currencyRate' - notes: - type: string - description: 'Any private, company notes about the transaction.' - example: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - lines: - type: array - description: Array of transaction lines. - minItems: 1 - maxItems: 100 - items: - $ref: '#/components/schemas/ReimbursableExpenseTransactionLine' - required: - - id - - contactRef - - issueDate - - dueDate - - currency - ReimbursementContactRef: - type: object - title: Contact reference - x-internal: true - properties: - id: + description: The latest balance for the bank account. + modifiedDate: + $ref: '#/components/schemas/DateTime' + nullable: true + description: The last date the bank account was modified. + status: type: string - example: 40e3e57c-2322-4898-966c-ca41adfd23fd - description: Identifier of contact. - required: - - id - SupplementalData: - title: Supplemental data - type: object - x-internal: true - description: |- - Supplemental data is additional data you can include in our standard data types. - - It is referenced as a configured dynamic key value pair that is unique to the accounting software. [Learn more](https://docs.codat.io/using-the-api/supplemental-data/overview) about supplemental data. - properties: - content: - type: object - additionalProperties: - type: object - additionalProperties: true nullable: true - Supplier: - title: 'Accounting: Supplier' - description: |- - ## Overview - - From the **Suppliers** endpoints, you can retrieve a list of [all the suppliers for a company](https://docs.codat.io/sync-for-expenses-api#/operations/list-suppliers). Suppliers' data links to accounts payable [bills](https://docs.codat.io/sync-for-expenses-api#/schemas/Bill). - type: object - allOf: - - type: object - properties: - id: - type: string - description: 'Identifier for the supplier, unique to the company in the accounting software.' - supplierName: - type: string - nullable: true - description: 'Name of the supplier as recorded in the accounting system, typically the company name.' - contactName: - type: string - nullable: true - description: Name of the main contact for the supplier. - emailAddress: - type: string - nullable: true - description: Email address that the supplier may be contacted on. - phone: - type: string - nullable: true - description: Phone number that the supplier may be contacted on. - examples: - - +44 25691 154789 - - (877) 492-8687 - - 01224 658 999 - addresses: - type: array - nullable: true - description: An array of Addresses. - items: - $ref: '#/components/schemas/CompanyInformation/properties/addresses/items' - registrationNumber: - type: string - nullable: true - description: 'Company number of the supplier. In the UK, this is typically the company registration number issued by Companies House.' - taxNumber: - type: string - nullable: true - description: Supplier's company tax number. - status: - $ref: '#/components/schemas/Supplier/definitions/supplierStatus' - defaultCurrency: - type: string - nullable: true - description: Default currency the supplier's transactional data is recorded in. - metadata: - $ref: '#/components/schemas/Account/allOf/2/properties/metadata' - supplementalData: - $ref: '#/components/schemas/SupplementalData' - - $ref: '#/components/schemas/Account/allOf/3' + description: Status of the source account. + enum: + - pending + - connected + - connecting + - disconnected + - unknown + feedStartDate: + $ref: '#/components/schemas/DateTime' + nullable: true required: - - status + - id definitions: - supplierRef: - title: Supplier reference - description: Reference to the supplier the record relates to. + sourceAccountPrototype: + title: Source account (v1) type: object properties: id: - minLength: 1 - type: string - description: The supplier's unique ID - supplierName: - type: string - nullable: true - description: The supplier's name + $ref: '#/components/schemas/SourceAccount/properties/id' + accountName: + $ref: '#/components/schemas/SourceAccount/properties/accountName' + accountType: + $ref: '#/components/schemas/SourceAccount/properties/accountType' + accountNumber: + $ref: '#/components/schemas/SourceAccount/properties/accountNumber' + sortCode: + $ref: '#/components/schemas/SourceAccount/properties/sortCode' + currency: + $ref: '#/components/schemas/SourceAccount/properties/currency' + balance: + $ref: '#/components/schemas/SourceAccount/properties/balance' + modifiedDate: + $ref: '#/components/schemas/SourceAccount/properties/modifiedDate' required: - id - supplierStatus: - description: Status of the supplier. - type: string - enum: - - Unknown - - Active - - Archived - examples: - - id: C520FFD4-F6F6-4FC2-A6D2-5D7088B2B14F - supplierName: Kelly's Industrial Supplies - contactName: Kelly's Industrial Supplies - emailAddress: sales@kellysupplies.com - phone: 07999 999999 - addresses: - - type: Billing - line1: Unit 51 - line2: Bakersfield Industrial Estate - city: Bakersfield - region: California - country: USA - postalcode: '93308' - registrationNumber: string - taxNumber: string - status: Unknown - defaultCurrency: string - metadata: - isDeleted: true - supplementalData: - content: - property1: - property1: null - property2: null - property2: - property1: null - property2: null - modifiedDate: '2022-10-23T00:00:00Z' - sourceModifiedDate: '2022-10-23T00:00:00Z' - Suppliers: - title: Suppliers - x-internal: true - allOf: - - type: object - properties: - results: - type: array - items: - $ref: '#/components/schemas/Supplier' - - $ref: '#/components/schemas/PagingInfo' - SyncCompleteWebhook: - title: Sync complete webhook - x-internal: true - description: Webhook request body used to notify that a sync has completed. - type: object - properties: - ClientId: - $ref: '#/components/schemas/SyncFailedWebhook/properties/ClientId' - ClientName: - $ref: '#/components/schemas/SyncFailedWebhook/properties/ClientName' - CompanyId: - $ref: '#/components/parameters/companyId/schema' - RuleId: - $ref: '#/components/schemas/SyncFailedWebhook/properties/RuleId' - RuleType: - $ref: '#/components/schemas/SyncFailedWebhook/properties/RuleType' - AlertId: - $ref: '#/components/schemas/SyncFailedWebhook/properties/AlertId' - Message: - $ref: '#/components/schemas/SyncFailedWebhook/properties/Message' - Data: - $ref: '#/components/schemas/SyncCompleteWebhook/definitions/SyncCompleteWebhookData' - definitions: - SyncCompleteWebhookData: - type: object - title: Sync complete webhook data - properties: - syncId: - $ref: '#/components/schemas/SyncFailedWebhook/definitions/SyncFailedWebhookData/properties/syncId' - syncType: - $ref: '#/components/schemas/SyncFailedWebhook/definitions/SyncFailedWebhookData/properties/syncType' + sourceAccounts: + title: Source accounts + type: array + items: + $ref: '#/components/schemas/SourceAccount' examples: - - ClientId: 30e0f9d2-52c0-4c9f-a806-bcd98a3bcd7e - ClientName: Expense Sync - CompanyId: 1f9559e7-8368-48c9-bdf4-f158e16b8b85 - AlertId: 33a4f8e9-09ae-4334-9b00-7bbe83024672 - RuleId: 5c27631d-3b63-4b50-8228-ee502fd113eb - RuleType: Sync Completed - Message: Sync 321363b4-efa9-4fbc-b71c-0b58d62f3248 for company 1f9559e7-8368-48c9-bdf4-f158e16b8b85 of type Expense completed successfully. - Data: - syncId: 321363b4-efa9-4fbc-b71c-0b58d62f3248 - syncType: Expense - SyncFailedWebhook: - title: Sync failed webhook - x-internal: true - description: Webhook request body used to notify that a sync has failed. + - id: acc-002 + accountName: account-081 + sortCode: '123456' + accountType: Credit + accountNumber: '12345670' + currency: GBP + balance: 99.99 + modifiedDate: '2023-01-09T14:14:14.1057478Z' + status: pending + - id: acc-003 + accountName: account-095 + sortCode: '123456' + accountType: Credit + accountNumber: '12345671' + currency: USD + balance: 0 + modifiedDate: '2023-01-09T14:14:14.1057478Z' + status: pending + SourceAccountBatchCreateResponse: + title: Batch source account request creation response + description: Account ID and resulting object of the batch `Create source account` request. type: object properties: - ClientId: - title: Client ID - type: string - format: uuid - description: Unique identifier for your client in Codat. - ClientName: - type: string - description: Name of your client in Codat. - CompanyId: - $ref: '#/components/parameters/companyId/schema' - RuleId: - type: string - format: uuid - description: Unique identifier for the rule. - deprecated: true - RuleType: - type: string - x-stoplight: - id: 34d52a089f08a - description: The type of rule. - AlertId: - type: string - format: uuid - description: Unique identifier of the webhook event. - Message: + sourceAccountId: type: string - description: A human-readable message about the webhook. - Data: - $ref: '#/components/schemas/SyncFailedWebhook/definitions/SyncFailedWebhookData' + description: Unique ID for the source account. + examples: + - '12345' + result: + $ref: '#/components/schemas/SourceAccountBatchCreateResponse/definitions/sourceAccountBatchCreateResult' definitions: - SyncFailedWebhookData: + sourceAccountBatchCreateResult: + title: Source Account Batch Create Result + description: Status details and corresponding object of the `Create account` operation. type: object - title: Sync failed webhook data properties: - syncId: - type: string - format: uuid - example: a9367074-b5c3-42c4-9be4-be129f43577e - description: Unique identifier for the failed sync. - syncType: - type: string - description: The type of sync being performed. - FailureStage: + statusCode: + type: integer + description: The HTTP status code for the creation of the source account + error: type: string - description: The stage of the job the sync failed. - examples: - - ClientId: 30e0f9d2-52c0-4c9f-a806-bcd98a3bcd7e - ClientName: Expense Sync - CompanyId: 1f9559e7-8368-48c9-bdf4-f158e16b8b85 - RuleId: 289c80dc-2aee-4b71-afff-9acd8d051080 - RuleType: Sync Failed - AlertId: 72c1103b-7f17-4a3a-8db5-67c2d360a516 - Message: Sync 3bead2a1-1b3d-4d90-8077-cddc5ca68b01 for company 1f9559e7-8368-48c9-bdf4-f158e16b8b85 of type Expense has failed at step Pushing. - Data: - syncId: 3bead2a1-1b3d-4d90-8077-cddc5ca68b01 - syncType: Expense - FailureStage: Pushing - SyncInitiated: - title: Sync initiated - type: object - properties: - syncId: - type: string - format: uuid - description: Unique identifier for the sync initiated. - additionalProperties: false - TaxRateMappingInfo: - title: Tax rate mapping info - x-internal: true - type: object - additionalProperties: false - x-examples: - UK Tax Rate: - id: 23_Bills - name: 20% Bill tax Bills - code: 20% Bill tax - effectiveTaxRate: 20 - totalTaxRate: 20 - validTransactionTypes: - - Payment - - Reward - properties: - id: - type: string - description: Unique identifier of tax rate. - example: 23_Bills - nullable: false - name: - type: string - description: Name of the tax rate in the accounting software. - example: 20% Bill tax Bills - nullable: false - code: - type: string - description: Code for the tax rate from the accounting software. - example: 20% Bill tax - nullable: true - effectiveTaxRate: - type: number - format: decimal - description: Effective tax rate. - example: 20 - totalTaxRate: - type: number - format: decimal - description: Total (not compounded) sum of the components of a tax rate. - example: 20 - validTransactionTypes: - $ref: '#/components/schemas/validTransactionTypes' - description: Supported transaction types for the tax rate. - TrackingCategoryMappingInfo: - title: Tracking category mapping info - x-internal: true - type: object - additionalProperties: false - x-examples: - Tracking Category with parentId: - id: DEPARTMENT_1 - name: TestLocation - hasChildren: false - parentId: DEPARTMENTS - Parent Tracking Category: - id: DEPARTMENTS - name: Departments - hasChildren: true - properties: - id: - type: string - description: Unique identifier of the tracking category. - example: DEPARTMENT_2 - nullable: false - name: - type: string - description: Name of the tracking category as it appears in the accounting software. - example: New York - nullable: false - hasChildren: - type: boolean - description: Boolean of whether the tracking category has child categories. - parentId: - type: string - description: ID of the parent tracking category - example: DEPARTMENTS - nullable: true - TrackingRef: + nullable: true + description: A brief description of the error. + account: + $ref: '#/components/schemas/SourceAccount' + SourceAccountBatchErrorResponse: + title: Batch source account creation error + description: Describes the error that occured when trying to create the specified source account. type: object - title: Tracking reference - x-internal: true properties: - id: - type: string - example: e9a1b63d-9ff0-40e7-8038-016354b987e6 - description: Unique identifier of the linked reference from mapping options or the unique identifier of the linked customer. - dataType: + sourceAccountId: type: string - example: trackingCategories - default: trackingCategories - description: The type of the linked reference - enum: - - trackingCategories - - customers - TrackingRefAdjustmentTransaction: + description: Unique ID for the source account. + examples: + - '12345' + result: + type: object + properties: + statusCode: + description: The error status code for the attempted creation of the source account. + type: string + examples: + - 409 + error: + description: The error description for the attempted creation of the source account. + type: string + examples: + - A bank account already exists with the same Id + SourceAccountV2: + title: Source account (v2) type: object - title: Tracking reference - x-internal: true + description: The target bank account in a supported accounting software for ingestion into a bank feed. + additionalProperties: false properties: id: type: string - example: e9a1b63d-9ff0-40e7-8038-016354b987e6 - description: Unique identifier of the linked reference from mapping options or the unique identifier of the linked customer or supplier. - dataType: + description: Unique ID for the bank account. + accountName: + type: string + description: The bank account name. + accountType: type: string - example: trackingCategories - default: trackingCategories - description: The type of the linked reference + description: 'The type of bank account e.g. checking, savings, loan, creditCard, prepaidCard.' enum: - - trackingCategories - - customers - - suppliers - Transaction: - title: Transaction - type: object - additionalProperties: false - properties: - transactionId: + - checking + - savings + - loan + - creditCard + - prepaidCard + accountNumber: type: string - description: Your unique idenfier of the transaction. - example: aa02271d-ed5f-47f5-be76-778d5905225a + description: The account number. + sortCode: + type: string + nullable: true + description: The sort code. + routingInfo: + $ref: '#/components/schemas/SourceAccountV2/definitions/routingInfo' + currency: + $ref: '#/components/schemas/SourceAccount/properties/currency' + balance: + type: number + format: decimal + description: The latest balance for the bank account. + accountInfo: + $ref: '#/components/schemas/SourceAccountV2/definitions/accountInfo' + modifiedDate: + $ref: '#/components/schemas/DateTime' nullable: true + description: The last date the bank account was modified. status: - $ref: '#/components/schemas/TransactionStatus' - message: type: string - description: Metadata such as validation errors or the resulting record created in the accounting software. nullable: true - integrationType: - $ref: '#/components/schemas/IntegrationType' - x-examples: - Successful Transaction: - transactionId: 8fdba4ed-e327-4925-be1a-b7a2b04627f7 - status: Completed - integrationType: expense - Unsuccessful Transaction: - transactionId: 3d694cd1-4cd9-4136-91db-32408195c6fc - status: ValidationError - message: The line item total -208.10((-195.01 + -1.09) + (-10.01 + -1.99)) must equal the transaction total -1.1 - integrationType: string - TransactionResponse: - title: Transaction response - x-internal: true - type: array - items: - $ref: '#/components/schemas/Transaction' - Transactions: - title: Transactions - x-internal: true - additionalProperties: false - allOf: - - type: object - properties: - results: - type: array - items: - $ref: '#/components/schemas/Transaction' - - $ref: '#/components/schemas/PagingInfo' - x-examples: - Example 1: - results: - - transactionId: aa02271d-ed5f-47f5-be76-778d5905225a - status: Completed - integrationType: expenses - - transactionId: 730177a2-8505-410a-9ebc-c2dd52e4bea9 - status: Completed - integrationType: expenses - pageNumber: 1 - pageSize: 100 - totalResults: 2 - links: - self: - href: string - current: - href: string - TransactionStatus: - title: Transaction status - x-internal: true - type: string - description: Status of the transaction. - enum: - - Unknown - - Pending - - ValidationError - - Completed - - PushError - example: Completed - nullable: true - TransferTransactionRequest: - title: Transfer - type: object - properties: - description: + description: Status of the source account. + enum: + - pending + - connected + - connecting + - disconnected + - unknown + feedStartDate: + nullable: true + title: Date type: string - description: 'Any private, company notes about the transaction.' - example: Transfer from bank account Y to bank account Z - date: - allOf: - - description: Date of the transfer transaction as recorded in the accounting software. - - title: Date time - type: string - examples: - - '2022-10-23T00:00:00Z' - - '2022-10-23' - 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. - from: + example: '2022-10-23' + description: |- + In Codat's data model, dates are represented using the ISO 8601 standard. Date fields are formatted as strings; for example: + ``` + 2020-10-08 + ``` + required: + - id + - accountName + - accountType + - accountNumber + - currency + - balance + definitions: + sourceAccountV2Prototype: + title: Source account (v2) type: object properties: - accountRef: - type: object - title: Account reference - description: Reference of the account you are transferring money from. - properties: - id: - type: string - description: '''id'' from the Accounts data type.' - required: - - id - amount: - type: number - format: decimal - description: Amount that has been transferred from the account in the native currency of the account. + id: + $ref: '#/components/schemas/SourceAccountV2/properties/id' + accountName: + $ref: '#/components/schemas/SourceAccountV2/properties/accountName' + accountType: + $ref: '#/components/schemas/SourceAccountV2/properties/accountType' + accountNumber: + $ref: '#/components/schemas/SourceAccountV2/properties/accountNumber' + routingInfo: + $ref: '#/components/schemas/SourceAccountV2/definitions/routingInfo' + sortCode: + $ref: '#/components/schemas/SourceAccountV2/properties/sortCode' + currency: + $ref: '#/components/schemas/SourceAccount/properties/currency' + balance: + $ref: '#/components/schemas/SourceAccountV2/properties/balance' + modifiedDate: + $ref: '#/components/schemas/SourceAccountV2/properties/modifiedDate' + accountInfo: + $ref: '#/components/schemas/SourceAccountV2/definitions/accountInfo' required: - - accountRef - - amount - to: + - id + - accountName + - accountType + - accountNumber + - currency + - balance + accountInfo: + title: Account Info type: object + nullable: true properties: - accountRef: - type: object - title: Account reference - description: Reference of the account you are transferring money to. - properties: - id: - type: string - description: '''id'' from the Accounts data type.' - required: - - id - amount: + description: + type: string + nullable: true + description: Description of the account. + nickname: + type: string + nullable: true + description: Name given to the account by the user. Used in UIs to assist in account selection. + accountOpenDate: + $ref: '#/components/schemas/SourceAccountV2/properties/feedStartDate' + nullable: true + description: Date when the account was opened or created at the provider + availableBalance: type: number format: decimal - description: Amount that has been transferred to the account in the native currency of the account. - required: - - accountRef - - amount - required: - - date - - from - - to - TransferTransactionResponse: - title: Create transfer response - x-internal: true + nullable: true + description: Balance of funds available for use. This includes pending activity. + sourceAccounts: + title: Source accounts + type: array + items: + $ref: '#/components/schemas/SourceAccountV2' + routingInfo: + title: Routing Info + type: object + description: Routing information for the bank. This does not include account number. + properties: + bankCode: + type: string + nullable: true + description: The numeric identifier of the routing number + type: + type: string + nullable: true + default: bankcode + enum: + - rtn + - aba + - swift + - bsb + - iban + - nz2 + - trno + - sortcode + - blz + - ifsc + - bankcode + - apca + - clabe + description: The type of routing number. + examples: + - id: acc-001 + accountName: account-081 + accountType: checking + accountNumber: '12345670' + routingInfo: + bankCode: 021001088 + type: bankcode + currency: GBP + balance: 99.99 + accountInfo: + description: account description 1 + nickname: account 123 + accountOpenDate: '2023-05-06' + availableBalance: 10 + modifiedDate: '2024-08-02T00:00:00.000Z' + status: pending + feedStartDate: '2024-05-01' + - id: acc-002 + accountName: account-083 + accountType: savings + accountNumber: '23456789' + routingInfo: + bankCode: 021001088 + type: bankcode + currency: GBP + balance: 400 + accountInfo: + description: account description 2 + nickname: account 1290 + accountOpenDate: '2023-05-23' + availableBalance: 400 + modifiedDate: '2024-08-02T00:00:00.000Z' + status: pending + feedStartDate: '2024-05-01' + SourceAccountV2BatchCreateResponse: + title: Batch source account (v2) creation response + description: Account ID and resulting object of the batch `Create source account` request. type: object properties: - syncId: + sourceAccountId: type: string - example: cd937d46-8e41-43a9-9477-a79158ffd98a - format: uuid - description: Unique id of sync created - UpdateCustomerResponse: - title: Update customer response - x-internal: true - allOf: - - type: object + description: Unique ID for the source account. + examples: + - '12345' + result: + $ref: '#/components/schemas/SourceAccountV2BatchCreateResponse/definitions/sourceAccountV2BatchCreateResult' + definitions: + sourceAccountV2BatchCreateResult: + title: Source Account V2 Batch CreateResult + description: Status details and corresponding object of the `Create account` operation. + type: object properties: - data: - allOf: - - $ref: '#/components/schemas/Customer' - - deprecated: true - - $ref: '#/components/schemas/PushOperation' - UpdateExpenseRequest: - title: Updating expense transaction request + statusCode: + type: integer + description: The HTTP status code for the creation of the source account + error: + type: string + nullable: true + description: A brief description of the error. + account: + $ref: '#/components/schemas/SourceAccountV2' + SourceAccountWebhook: + title: Source account status changed webhook type: object properties: - type: - type: string - example: Payment - description: The type of transaction. - enum: - - Payment - - Refund - - Reward - - Chargeback - issueDate: + id: type: string - description: Date the transaction was recorded. - example: '2022-06-28T00:00:00.000Z' - currency: + format: uuid + example: ba29118f-5406-4e59-b05c-ba307ca38d01 + description: Unique identifier of the event. + eventType: type: string - example: GBP - description: Currency the transaction was recorded in. - currencyRate: - $ref: '#/components/schemas/ExpenseTransaction/properties/currencyRate' - contactRef: - description: Supplier or Customer for the purchase to be associated to. - $ref: '#/components/schemas/ExpenseContactRef' - bankAccountRef: + description: The type of event. + examples: + - bankFeeds.sourceAccount.connected + - bankFeeds.sourceAccount.disconnected + generatedDate: + $ref: '#/components/schemas/DateTime' + description: The date time in UTC the event was generated in Codat. + payload: + $ref: '#/components/schemas/SourceAccountWebhook/definitions/sourceAccountWebhookPayload' + definitions: + sourceAccountWebhookPayload: + title: Payload type: object - title: Bank account reference properties: - id: - type: string - example: 787dfb37-5707-4dc0-8a86-8d74e4cc78ea - description: Identifier of the bank account. - merchantName: - type: string - description: Name of the merchant where the purchase took place - example: Amazon UK - lines: - type: array - description: Array of transaction lines. - items: - $ref: '#/components/schemas/ExpenseTransactionLine' - notes: - type: string - description: 'Any private, company notes about the transaction.' - example: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - required: - - type - - issueDate - - currency - UpdateExpenseResponse: - title: Update expense response - x-internal: true + referenceCompany: + $ref: '#/components/schemas/Company/definitions/companyReference' + companyId: + $ref: '#/components/parameters/companyId/schema' + deprecated: true + connectionId: + $ref: '#/components/parameters/connectionId/schema' + sourceAccount: + oneOf: + - $ref: '#/components/schemas/SourceAccountV2' + - $ref: '#/components/schemas/SourceAccount' + StartScheduledSyncResult: + title: Start scheduled sync result type: object + description: Represents the result of an ad-hoc sync request. properties: syncId: type: string - description: Unique identifier for the update expense sync. - example: 1ad0695c-4566-4715-918c-adbb03eac81e - UpdateReimbursableExpenseTransactionRequest: - title: Updating reimbursable expense transaction request + format: uuid + description: The unique identifier for the created sync. + required: + - syncId + SyncStatusResult: + title: Sync status type: object + description: Represents the status of a managed bank feed sync. properties: - reference: + syncId: + type: string + format: uuid + description: The unique identifier for the sync. + clientId: + type: string + format: uuid + description: The ID of the client associated with the company that owns the source bank account. + companyId: + type: string + format: uuid + description: The ID of the company that owns the source bank account. + companyName: + type: string + description: The name of the company that owns the source bank account. + dataConnectionId: + type: string + format: uuid + description: The ID of the target accounting data connection. + sourceAccountId: + type: string + description: The ID of the source bank account from which transactions are fetched. + periodStartUtc: + type: string + format: date-time + description: The start of the sync period. + periodEndUtc: type: string + format: date-time + description: The end of the sync period. + executionStartUtc: + type: string + format: date-time + description: The UTC timestamp when the sync started executing. + status: + type: string + description: 'The current status of the sync. Known values are `Started`, `Failed`, `SuccessDataPushed`, `SuccessNoDataPushed`, `PartialSuccessDataPushed`.' + example: SuccessDataPushed + executionEndUtc: + type: string + format: date-time nullable: true - description: User-friendly reference for the reimbursable expense. - contactRef: - $ref: '#/components/schemas/ReimbursementContactRef' - apAccountRef: - $ref: '#/components/schemas/apAccountRef' - issueDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: Date of the transaction was recorded. - dueDate: - description: Date the supplier is due to be paid. - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - currency: + description: 'The UTC timestamp when the sync execution ended, if completed (i.e. `status` is any value other than `Started`).' + errorMessage: type: string - example: GBP - description: Currency the transaction was recorded in. - currencyRate: - $ref: '#/components/schemas/ExpenseTransaction/properties/currencyRate' - notes: + nullable: true + description: Error message if the sync failed. + errorCode: type: string - description: 'Any private, company notes about the transaction.' - example: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - lines: + nullable: true + description: Error code if the sync failed. + pushOperationKeys: type: array - description: Array of transaction lines. - minItems: 1 - maxItems: 100 items: - $ref: '#/components/schemas/ReimbursableExpenseTransactionLine' + type: string + format: uuid + nullable: true + description: 'List of write operation keys associated with the sync, if the sync resulted in write attempts.' required: - - contactRef - - issueDate - - dueDate - - currency - UpdateSupplierResponse: - title: Update supplier response - x-internal: true - allOf: - - type: object - properties: - data: - allOf: - - $ref: '#/components/schemas/Supplier' - - deprecated: true - - $ref: '#/components/schemas/PushOperation' - validFor: - title: Valid endpoints - x-internal: true - type: array - description: Supported endpoints for the account. - nullable: false - items: - type: string - enum: - - expense-transactions.Payment - - expense-transactions.Refund - - expense-transactions.Reward - - expense-transactions.Chargeback - - reimbursable-expense-transactions - - transfer-transactions - - adjustment-transactions - example: expense-transactions.Payment - validTransactionTypes: - title: Valid transaction types - x-internal: true - type: array - description: Supported transaction types for the account. - nullable: false - items: - type: string - enum: - - Payment - - Refund - - Reward - - Chargeback - example: Payment + - syncId + - clientId + - companyId + - companyName + - dataConnectionId + - sourceAccountId + - periodStartUtc + - periodEndUtc + - executionStartUtc + - status parameters: - syncId: - name: syncId + companyId: + name: companyId in: path required: true schema: type: string format: uuid - example: 6fb40d5e-b13e-11ed-afa1-0242ac120002 - description: Unique identifier for a sync. - transactionId: - name: transactionId + example: 8a210b68-6988-11ed-a1eb-0242ac120002 + description: Unique identifier for your SMB in Codat. + description: Unique identifier for a company. + connectionId: + name: connectionId in: path required: true schema: type: string format: uuid - example: 336694d8-2dca-4cb5-a28d-3ccb83e55eee - description: The unique identifier for your SMB's transaction. + example: 2e9d2c44-f675-40ba-8049-353bfcb5e171 + description: Unique identifier for a company's data connection. + description: Unique identifier for a connection. + accountId: + name: accountId + in: path + required: true + schema: + type: string + examples: + - 13d946f0-c5d5-42bc-b092-97ece17923ab + - 9wg4lep4ush5cxs79pl8sozmsndbaukll3ind4g7buqbm1h2 + - 7110701885 + - EILBDVJVNUAGVKRQ + description: Unique identifier for an account. page: name: page in: query @@ -13223,26 +5256,6 @@ components: type: string example: '-modifiedDate' description: 'Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).' - 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. - description: Unique identifier for a company. - 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. - description: Unique identifier for a connection. dataType: name: dataType description: The key of a Codat data type @@ -13250,30 +5263,15 @@ components: required: true schema: $ref: '#/components/schemas/DataType' - supplierId: - name: supplierId - in: path - required: true - schema: - type: string - examples: - - 13d946f0-c5d5-42bc-b092-97ece17923ab - - 9wg4lep4ush5cxs79pl8sozmsndbaukll3ind4g7buqbm1h2 - - 7110701885 - - EILBDVJVNUAGVKRQ - description: Unique identifier for a supplier. - customerId: - name: customerId + datasetId: + name: datasetId in: path required: true schema: type: string - examples: - - 13d946f0-c5d5-42bc-b092-97ece17923ab - - 9wg4lep4ush5cxs79pl8sozmsndbaukll3ind4g7buqbm1h2 - - 7110701885 - - EILBDVJVNUAGVKRQ - description: Unique identifier for a customer. + format: uuid + description: Unique identifier for the dataset that completed its sync. + description: Unique identifier for the dataset that completed its sync. timeoutInMinutes: name: timeoutInMinutes in: query @@ -13281,20 +5279,6 @@ components: type: integer format: int32 description: Time limit for the push operation to complete before it is timed out. - allowSyncOnPushComplete: - name: allowSyncOnPushComplete - in: query - schema: - type: boolean - default: true - description: Allow a sync upon push completion. - forceUpdate: - name: forceUpdate - in: query - schema: - type: boolean - default: false - description: 'When updating data in the destination platform Codat checks the `sourceModifiedDate` against the `lastupdated` date from the accounting software, if they''re different Codat will return an error suggesting you should initiate another pull of the data. If this is set to `true` then the update will override this check.' responses: BadRequest: description: The request made is not valid. @@ -13432,21 +5416,6 @@ components: correlationId: bc997528a9d7abb9161ef45f05d38599 canBeRetried: Unknown detailedErrorCode: 0 - Unprocessable-Content: - description: The requests made can't be processed. This may be due to differences in platform support. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - examples: - Conflict: - value: - statusCode: 422 - service: ExpenseSyncApi - error: Expense transaction updates are not supported for platforms other than Xero. - correlationId: 7c8e23841d211c87f49f30b248f70c93 - 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: diff --git a/.speakeasy/logs/changes/old.openapi.yaml b/.speakeasy/logs/changes/old.openapi.yaml index 7a8bc7ccf..0b8397da1 100644 --- a/.speakeasy/logs/changes/old.openapi.yaml +++ b/.speakeasy/logs/changes/old.openapi.yaml @@ -1,21 +1,19 @@ openapi: 3.1.0 +servers: + - description: Production + url: 'https://api.codat.io' info: - title: Sync for Expenses - version: prealpha + title: Bank Feeds + version: 3.0.0 contact: + email: support@codat.io name: Codat - url: 'https://www.codat.io/' - email: expenses@codat.io description: |- - The API for Sync for Expenses. - - Sync for Expenses is an API and a set of supporting tools. It has been built to - enable corporate card and expense management platforms to provide high-quality - integrations with multiple accounting software through a standardized API. + Bank Feeds solution enables your SMB users to set up bank feeds from accounts in your application to supported accounting software. - [Explore product](https://docs.codat.io/sync-for-expenses/overview) | [See our OpenAPI spec](https://github.com/codatio/oas) + A bank feed is a connection between a source bank account in your application and a target bank account in a supported accounting software. - Not seeing the endpoints you're expecting? We've [reorganized our products](https://docs.codat.io/updates/230901-new-products), and you may be using a [different version of Sync for Expenses](https://docs.codat.io/sync-for-expenses-v1-api#/). + [Explore solution](https://docs.codat.io/bank-feeds-api/overview) | [See OpenAPI spec](https://github.com/codatio/oas) --- @@ -25,18 +23,10 @@ info: | :- |:- | | Companies | Create and manage your SMB users' companies. | | Connections | Create new and manage existing data connections for a company. | - | Configuration | View and manage mapping configuration and defaults for expense transactions. | - | Sync | Monitor the status of data syncs. | - | Expenses | Create and update transactions that represent your customers' spend. | - | Transfers | Create and update transactions that represent the movement of your customers' money. | - | Reimbursements | Create and update transactions that represent your customers' repayable spend. | - | Attachments | Attach receipts to a transaction for a complete audit trail. | - | Transaction status | Monitor the status of individual transactions in data syncs. | - | Manage data | Control and monitor the retrieval of data from an integration. | - | Push operations | View historic push operations. | - | Accounts | Create accounts and view account schemas. | - | Customers | Get, create, and update customers. | - | Suppliers | Get, create, and update suppliers. | + | Source accounts | Provide and manage lists of source bank accounts. | + | Account mapping | Extra functionality for building an account management UI. | + | Company information | Get detailed information about a company from the underlying platform. | + | Transactions | Create new bank account transactions for a company's connections, and see previous operations. | termsOfService: 'https://www.codat.io/legals/' security: @@ -78,7 +68,7 @@ x-speakeasy-name-override: methodNameOverride: download-attachment - operationId: ^upload-.*?-attachment methodNameOverride: upload-attachment -x-codat-docs-path: sync-for-expenses-api +x-codat-docs-path: bank-feeds-api x-codat-keep-docs-paths-local: true x-codat-speakeasy-pagination: type: offsetLimit @@ -93,42 +83,103 @@ tags: description: Create and manage your SMB users' companies. - name: Connections description: Create new and manage existing data connections for a company. - - name: Company info - description: View the company information of your customers' linked accounting software. - - name: Manage data - description: Control and monitor the retrieval of data from an integration. - - name: Mapping options - description: 'Get accounts, trackingCategories and taxRates that can be used in your create and update requests.' - - name: Accounts - description: Create accounts and view create account options. - name: Bank accounts - description: Create bank accounts and view create bank account options. - - name: Customers - description: 'Get, create, and update customers.' - - name: Suppliers - description: 'Get, create, and update suppliers.' - - name: Push operations - description: View historic push operations. - - name: Configuration - description: View and manage mapping configuration and defaults for expense transactions. - - name: Expenses - description: Create and update transactions that represent your customers' spend. - - name: Reimbursements - description: Create and update transactions that represent your customers' repayable spend. - - name: Transfers - description: Create and update transactions that represent the movement of your customers' money. - - name: Adjustments - description: Create transactions that represent your adjustments to your customers' spend. - - name: Attachments - description: Attach receipts to a transaction for a complete audit trail. - - name: Sync - description: Monitor the status of data syncs. - - name: Transaction status - description: Monitor the status of individual transactions in data syncs. -servers: - - url: 'https://api.codat.io' + description: Access bank accounts in an SMBs accounting software. + - name: Source accounts + description: Provide and manage lists of source bank accounts. + - name: Account mapping + description: Extra functionality for building an account management UI. + - name: Transactions + description: 'Create new bank account transactions for a company''s connections, and see previous operations.' + - name: Company information + description: Get detailed information about a company from the underlying accounting software. + - name: Managed bank feeds + description: Manage bank feed syncs for source accounts. paths: /companies: + post: + summary: Create company + tags: + - Companies + operationId: create-company + responses: + '200': + description: OK + content: + application/json: + x-speakeasy-usage-example: true + schema: + $ref: '#/components/schemas/Company' + examples: + With no description: + value: + id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 + name: Technicalium + description: '' + platform: '' + redirect: 'https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0' + dataConnections: [] + created: '2022-11-10T10:45:18.1950523Z' + createdByUserName: Dan Tzabar + products: + - spend-insights + referenceSubsidiaryCompanies: [] + With a description: + value: + id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 + name: Technicalium + description: 'Technology services, including web and app design and development' + platform: '' + redirect: 'https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0' + dataConnections: [] + created: '2022-11-10T10:45:18.1950523Z' + createdByUserName: Dan Tzabar + products: + - spend-insights + referenceSubsidiaryCompanies: [] + With a tag: + value: + id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 + name: Technicalium + description: '' + platform: '' + redirect: 'https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0' + dataConnections: [] + created: '2022-11-10T10:45:18.1950523Z' + createdByUserName: Dan Tzabar + products: + - spend-insights + tags: + region: us + referenceSubsidiaryCompanies: [] + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + description: "\uFEFF\x55\x73\x65\x20\x74\x68\x65\x20\x2A\x43\x72\x65\x61\x74\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2A\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x74\x6F\x20\x63\x72\x65\x61\x74\x65\x20\x61\x20\x6E\x65\x77\x20\x5B\x63\x6F\x6D\x70\x61\x6E\x79\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6D\x70\x61\x6E\x79\x29\x20\x74\x68\x61\x74\x20\x72\x65\x70\x72\x65\x73\x65\x6E\x74\x73\x20\x79\x6F\x75\x72\x20\x63\x75\x73\x74\x6F\x6D\x65\x72\x20\x69\x6E\x20\x43\x6F\x64\x61\x74\x2E\x20\n\n\x41\x20\x5B\x63\x6F\x6D\x70\x61\x6E\x79\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6D\x70\x61\x6E\x79\x29\x20\x72\x65\x70\x72\x65\x73\x65\x6E\x74\x73\x20\x61\x20\x62\x75\x73\x69\x6E\x65\x73\x73\x20\x73\x68\x61\x72\x69\x6E\x67\x20\x61\x63\x63\x65\x73\x73\x20\x74\x6F\x20\x74\x68\x65\x69\x72\x20\x64\x61\x74\x61\x2E\n\x45\x61\x63\x68\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x63\x61\x6E\x20\x68\x61\x76\x65\x20\x6D\x75\x6C\x74\x69\x70\x6C\x65\x20\x5B\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x29\x20\x74\x6F\x20\x64\x69\x66\x66\x65\x72\x65\x6E\x74\x20\x64\x61\x74\x61\x20\x73\x6F\x75\x72\x63\x65\x73\x2C\x20\x73\x75\x63\x68\x20\x61\x73\x20\x6F\x6E\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x58\x65\x72\x6F\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x64\x61\x74\x61\x2C\x20\x74\x77\x6F\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x20\x74\x6F\x20\x50\x6C\x61\x69\x64\x20\x66\x6F\x72\x20\x74\x77\x6F\x20\x62\x61\x6E\x6B\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x2C\x20\x61\x6E\x64\x20\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x5A\x65\x74\x74\x6C\x65\x20\x66\x6F\x72\x20\x50\x4F\x53\x20\x64\x61\x74\x61\x2E\n\n\x49\x66\x20\x66\x6F\x72\x62\x69\x64\x64\x65\x6E\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x20\x28\x73\x65\x65\x20\x60\x6E\x61\x6D\x65\x60\x20\x70\x61\x74\x74\x65\x72\x6E\x29\x20\x61\x72\x65\x20\x70\x72\x65\x73\x65\x6E\x74\x20\x69\x6E\x20\x74\x68\x65\x20\x72\x65\x71\x75\x65\x73\x74\x2C\x20\x61\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x77\x69\x6C\x6C\x20\x62\x65\x20\x63\x72\x65\x61\x74\x65\x64\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x66\x6F\x72\x62\x69\x64\x64\x65\x6E\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x20\x72\x65\x6D\x6F\x76\x65\x64\x2E\x20\x46\x6F\x72\x20\x65\x78\x61\x6D\x70\x6C\x65\x2C\x20\x60\x43\x6F\x6D\x70\x61\x6E\x79\x20\x28\x43\x6F\x64\x61\x74\x5B\x31\x5D\x29\x60\x20\x77\x69\x74\x68\x20\x62\x65\x20\x63\x72\x65\x61\x74\x65\x64\x20\x61\x73\x20\x60\x43\x6F\x6D\x70\x61\x6E\x79\x20\x43\x6F\x64\x61\x74\x31\x60\x2E" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CompanyRequestBody' + examples: + With no description: + value: + name: Technicalium + With a description: + value: + name: Technicalium + description: 'Technology services, including web and app design and development' get: summary: List companies tags: @@ -163,6 +214,11 @@ paths: sourceType: Accounting created: '2022-01-01T11:30:00Z' createdByUserName: Mike Smith + products: + - spend-insights + - lending + - expenses-v1 + - commerce referenceSubsidiaryCompanies: [] pageNumber: 1 pageSize: 100 @@ -194,6 +250,10 @@ paths: sourceType: Accounting created: '2022-01-01T11:30:00Z' createdByUserName: Joe Bloggs + products: + - spend-insights + - lending + - payables-v2 referenceSubsidiaryCompanies: [] - id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 name: Toft stores @@ -201,6 +261,8 @@ paths: dataConnections: [] created: '2022-11-10T10:45:18Z' createdByUserName: Dan Tzabar + products: + - spend-insights referenceSubsidiaryCompanies: - id: c8d3af58-7011-47ce-b3f2-89faf300ef6d name: Toft stores UK @@ -226,6 +288,10 @@ paths: sourceType: Accounting created: '2022-11-10T10:45:18Z' createdByUserName: Dan Tzabar + products: + - lending + - spend-insights + - payables referenceParentCompany: id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 name: Toft stores @@ -248,6 +314,8 @@ paths: sourceType: Accounting created: '2022-11-10T10:45:18Z' createdByUserName: Dan Tzabar + products: + - spend-insights referenceParentCompany: id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 name: Toft stores @@ -279,93 +347,191 @@ paths: '503': $ref: '#/components/responses/Service-Unavailable' operationId: list-companies - description: "\uFEFF\x54\x68\x65\x20\x2A\x4C\x69\x73\x74\x20\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73\x2A\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x72\x65\x74\x75\x72\x6E\x73\x20\x61\x20\x6C\x69\x73\x74\x20\x6F\x66\x20\x5B\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x73\x79\x6E\x63\x2D\x66\x6F\x72\x2D\x65\x78\x70\x65\x6E\x73\x65\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6D\x70\x61\x6E\x79\x29\x20\x61\x73\x73\x6F\x63\x69\x61\x74\x65\x64\x20\x74\x6F\x20\x79\x6F\x75\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65\x73\x2E\n\n\x41\x20\x5B\x63\x6F\x6D\x70\x61\x6E\x79\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x73\x79\x6E\x63\x2D\x66\x6F\x72\x2D\x65\x78\x70\x65\x6E\x73\x65\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6D\x70\x61\x6E\x79\x29\x20\x72\x65\x70\x72\x65\x73\x65\x6E\x74\x73\x20\x61\x20\x62\x75\x73\x69\x6E\x65\x73\x73\x20\x73\x68\x61\x72\x69\x6E\x67\x20\x61\x63\x63\x65\x73\x73\x20\x74\x6F\x20\x74\x68\x65\x69\x72\x20\x64\x61\x74\x61\x2E\n\x45\x61\x63\x68\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x63\x61\x6E\x20\x68\x61\x76\x65\x20\x6D\x75\x6C\x74\x69\x70\x6C\x65\x20\x5B\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x73\x79\x6E\x63\x2D\x66\x6F\x72\x2D\x65\x78\x70\x65\x6E\x73\x65\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x29\x20\x74\x6F\x20\x64\x69\x66\x66\x65\x72\x65\x6E\x74\x20\x64\x61\x74\x61\x20\x73\x6F\x75\x72\x63\x65\x73\x2C\x20\x73\x75\x63\x68\x20\x61\x73\x20\x6F\x6E\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x58\x65\x72\x6F\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x64\x61\x74\x61\x2C\x20\x74\x77\x6F\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x20\x74\x6F\x20\x50\x6C\x61\x69\x64\x20\x66\x6F\x72\x20\x74\x77\x6F\x20\x62\x61\x6E\x6B\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x2C\x20\x61\x6E\x64\x20\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x5A\x65\x74\x74\x6C\x65\x20\x66\x6F\x72\x20\x50\x4F\x53\x20\x64\x61\x74\x61\x2E" + description: "\uFEFF\x54\x68\x65\x20\x2A\x4C\x69\x73\x74\x20\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73\x2A\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x72\x65\x74\x75\x72\x6E\x73\x20\x61\x20\x6C\x69\x73\x74\x20\x6F\x66\x20\x5B\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6D\x70\x61\x6E\x79\x29\x20\x61\x73\x73\x6F\x63\x69\x61\x74\x65\x64\x20\x74\x6F\x20\x79\x6F\x75\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65\x73\x2E\n\n\x41\x20\x5B\x63\x6F\x6D\x70\x61\x6E\x79\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6D\x70\x61\x6E\x79\x29\x20\x72\x65\x70\x72\x65\x73\x65\x6E\x74\x73\x20\x61\x20\x62\x75\x73\x69\x6E\x65\x73\x73\x20\x73\x68\x61\x72\x69\x6E\x67\x20\x61\x63\x63\x65\x73\x73\x20\x74\x6F\x20\x74\x68\x65\x69\x72\x20\x64\x61\x74\x61\x2E\n\x45\x61\x63\x68\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x63\x61\x6E\x20\x68\x61\x76\x65\x20\x6D\x75\x6C\x74\x69\x70\x6C\x65\x20\x5B\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x29\x20\x74\x6F\x20\x64\x69\x66\x66\x65\x72\x65\x6E\x74\x20\x64\x61\x74\x61\x20\x73\x6F\x75\x72\x63\x65\x73\x2C\x20\x73\x75\x63\x68\x20\x61\x73\x20\x6F\x6E\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x58\x65\x72\x6F\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x64\x61\x74\x61\x2C\x20\x74\x77\x6F\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x20\x74\x6F\x20\x50\x6C\x61\x69\x64\x20\x66\x6F\x72\x20\x74\x77\x6F\x20\x62\x61\x6E\x6B\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x2C\x20\x61\x6E\x64\x20\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x5A\x65\x74\x74\x6C\x65\x20\x66\x6F\x72\x20\x50\x4F\x53\x20\x64\x61\x74\x61\x2E\n\n\x23\x23\x20\x46\x69\x6C\x74\x65\x72\x20\x62\x79\x20\x74\x61\x67\x73\n\n\x54\x68\x65\x20\x2A\x4C\x69\x73\x74\x20\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73\x2A\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x73\x75\x70\x70\x6F\x72\x74\x73\x20\x74\x68\x65\x20\x66\x69\x6C\x74\x65\x72\x69\x6E\x67\x20\x6F\x66\x20\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73\x20\x75\x73\x69\x6E\x67\x20\x5B\x74\x61\x67\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x75\x73\x69\x6E\x67\x2D\x74\x68\x65\x2D\x61\x70\x69\x2F\x6D\x61\x6E\x61\x67\x69\x6E\x67\x2D\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73\x23\x61\x64\x64\x2D\x6D\x65\x74\x61\x64\x61\x74\x61\x2D\x74\x6F\x2D\x61\x2D\x63\x6F\x6D\x70\x61\x6E\x79\x29\x2E\x20\x49\x74\x20\x73\x75\x70\x70\x6F\x72\x74\x73\x20\x74\x68\x65\x20\x66\x6F\x6C\x6C\x6F\x77\x69\x6E\x67\x20\x6F\x70\x65\x72\x61\x74\x6F\x72\x73\x20\x77\x69\x74\x68\x20\x5B\x43\x6F\x64\x61\x74\u2019\x73\x20\x71\x75\x65\x72\x79\x20\x6C\x61\x6E\x67\x75\x61\x67\x65\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x75\x73\x69\x6E\x67\x2D\x74\x68\x65\x2D\x61\x70\x69\x2F\x71\x75\x65\x72\x79\x69\x6E\x67\x29\x3A\n\n\x2D\x20\x65\x71\x75\x61\x6C\x73\x20\x28\x60\x3D\x60\x29\n\x2D\x20\x6E\x6F\x74\x20\x65\x71\x75\x61\x6C\x73\x20\x28\x60\x21\x3D\x60\x29\n\x2D\x20\x63\x6F\x6E\x74\x61\x69\x6E\x73\x20\x28\x60\x7E\x60\x29\n\n\x46\x6F\x72\x20\x65\x78\x61\x6D\x70\x6C\x65\x2C\x20\x79\x6F\x75\x20\x63\x61\x6E\x20\x75\x73\x65\x20\x74\x68\x65\x20\x71\x75\x65\x72\x79\x69\x6E\x67\x20\x74\x6F\x20\x66\x69\x6C\x74\x65\x72\x20\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73\x20\x74\x61\x67\x67\x65\x64\x20\x77\x69\x74\x68\x20\x61\x20\x73\x70\x65\x63\x69\x66\x69\x63\x20\x66\x6F\x72\x65\x69\x67\x6E\x20\x6B\x65\x79\x2C\x20\x72\x65\x67\x69\x6F\x6E\x2C\x20\x6F\x72\x20\x6F\x77\x6E\x69\x6E\x67\x20\x74\x65\x61\x6D\x3A\x20\n\x2D\x20\x46\x6F\x72\x65\x69\x67\x6E\x20\x6B\x65\x79\x3A\x20\x60\x75\x69\x64\x20\x3D\x20\x7B\x79\x6F\x75\x72\x43\x75\x73\x74\x6F\x6D\x65\x72\x49\x64\x7D\x60\n\x2D\x20\x52\x65\x67\x69\x6F\x6E\x3A\x20\x60\x72\x65\x67\x69\x6F\x6E\x20\x21\x3D\x20\x75\x6B\x60\n\x2D\x20\x4F\x77\x6E\x69\x6E\x67\x20\x74\x65\x61\x6D\x20\x61\x6E\x64\x20\x72\x65\x67\x69\x6F\x6E\x3A\x20\x60\x72\x65\x67\x69\x6F\x6E\x20\x3D\x20\x75\x6B\x20\x26\x26\x20\x6F\x77\x6E\x69\x6E\x67\x54\x65\x61\x6D\x20\x3D\x20\x69\x6E\x76\x6F\x69\x63\x65\x2D\x66\x69\x6E\x61\x6E\x63\x65\x60" parameters: - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/query' - $ref: '#/components/parameters/orderBy' - post: - summary: Create company + - name: tags + in: query + schema: + type: string + example: region=uk && team=invoice-finance + description: 'Filter companies by tags using the "equals" (=), "not equals" (!=), and "contains" (~) operators with [Codat’s query language](https://docs.codat.io/using-the-api/querying).' + '/companies/{companyId}': + get: + summary: Get company + operationId: get-company + description: "\uFEFF\x54\x68\x65\x20\x2A\x47\x65\x74\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2A\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x72\x65\x74\x75\x72\x6E\x73\x20\x61\x20\x73\x69\x6E\x67\x6C\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x66\x6F\x72\x20\x61\x20\x67\x69\x76\x65\x6E\x20\x60\x63\x6F\x6D\x70\x61\x6E\x79\x49\x64\x60\x2E\n\n\x41\x20\x5B\x63\x6F\x6D\x70\x61\x6E\x79\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6D\x70\x61\x6E\x79\x29\x20\x72\x65\x70\x72\x65\x73\x65\x6E\x74\x73\x20\x61\x20\x62\x75\x73\x69\x6E\x65\x73\x73\x20\x73\x68\x61\x72\x69\x6E\x67\x20\x61\x63\x63\x65\x73\x73\x20\x74\x6F\x20\x74\x68\x65\x69\x72\x20\x64\x61\x74\x61\x2E\n\x45\x61\x63\x68\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x63\x61\x6E\x20\x68\x61\x76\x65\x20\x6D\x75\x6C\x74\x69\x70\x6C\x65\x20\x5B\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x29\x20\x74\x6F\x20\x64\x69\x66\x66\x65\x72\x65\x6E\x74\x20\x64\x61\x74\x61\x20\x73\x6F\x75\x72\x63\x65\x73\x2C\x20\x73\x75\x63\x68\x20\x61\x73\x20\x6F\x6E\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x58\x65\x72\x6F\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x64\x61\x74\x61\x2C\x20\x74\x77\x6F\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x20\x74\x6F\x20\x50\x6C\x61\x69\x64\x20\x66\x6F\x72\x20\x74\x77\x6F\x20\x62\x61\x6E\x6B\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x2C\x20\x61\x6E\x64\x20\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x5A\x65\x74\x74\x6C\x65\x20\x66\x6F\x72\x20\x50\x4F\x53\x20\x64\x61\x74\x61\x2E\n" + parameters: + - $ref: '#/components/parameters/companyId' tags: - Companies - operationId: create-company responses: '200': description: OK content: application/json: - x-speakeasy-usage-example: true schema: $ref: '#/components/schemas/Company' examples: - With no description: + Simple company: value: id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 - name: Technicalium + name: Toft stores holdings description: '' platform: '' redirect: 'https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0' dataConnections: [] - created: '2022-11-10T10:45:18.1950523Z' + created: '2022-11-10T10:45:18Z' createdByUserName: Dan Tzabar + products: + - spend-insights + - lending + - expenses-v1 + - commerce referenceSubsidiaryCompanies: [] - With a description: + Parent multi-entity company: value: id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 - name: Technicalium - description: 'Technology services, including web and app design and development' + name: Toft stores + description: '' platform: '' redirect: 'https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0' dataConnections: [] - created: '2022-11-10T10:45:18.1950523Z' + created: '2022-11-10T10:45:18Z' createdByUserName: Dan Tzabar - referenceSubsidiaryCompanies: [] - With a tag: + products: + - spend-insights + - lending + - expenses-v1 + - commerce + referenceSubsidiaryCompanies: + - id: c8d3af58-7011-47ce-b3f2-89faf300ef6d + name: Toft stores UK + links: + portal: 'https://app.codat.io/companies/c8d3af58-7011-47ce-b3f2-89faf300ef6d/summary' + - id: db94eddc-9212-4568-9b5c-3eab0e325913 + name: Toft stores US + links: + portal: 'https://app.codat.io/companies/db94eddc-9212-4568-9b5c-3eab0e325913/summary' + Subsidiary multi-entity company: value: - id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 - name: Technicalium + id: c8d3af58-7011-47ce-b3f2-89faf300ef6d + name: Toft stores UK description: '' platform: '' - redirect: 'https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0' - dataConnections: [] - created: '2022-11-10T10:45:18.1950523Z' + redirect: 'https://link.codat.io/company/c8d3af58-7011-47ce-b3f2-89faf300ef6d' + dataConnections: + - id: d5ab61b7-1ad0-46fd-9f9f-b6761047941e + integrationId: cc750323-5a47-4f28-8d8e-30fbbf2ce137 + integrationKey: akxx + sourceId: 9815b998-024d-4415-a40b-89903b2cad6f + platformName: Oracle NetSuite + linkUrl: 'https://link-api.codat.io/companies/c8d3af58-7011-47ce-b3f2-89faf300ef6d/connections/d5ab61b7-1ad0-46fd-9f9f-b6761047941e/start' + status: Linked + lastSync: '2022-01-01T12:30:00.000Z' + created: '2022-01-01T11:30:00Z' + sourceType: Accounting + created: '2022-11-10T10:45:18Z' createdByUserName: Dan Tzabar - tags: - region: us + products: + - spend-insights + - lending + - expenses-v1 + - commerce + referenceParentCompany: + id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 + name: Toft stores + links: + portal: 'https://app.codat.io/companies/ab12c58d-a678-4ebf-a159-ae99e1807bd0/summary' referenceSubsidiaryCompanies: [] - '400': - $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '402': $ref: '#/components/responses/Payment-Required' '403': $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + delete: + summary: Delete a company + operationId: delete-company + parameters: + - $ref: '#/components/parameters/companyId' + description: "\uFEFF\x54\x68\x65\x20\x2A\x44\x65\x6C\x65\x74\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2A\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x70\x65\x72\x6D\x61\x6E\x65\x6E\x74\x6C\x79\x20\x64\x65\x6C\x65\x74\x65\x73\x20\x61\x20\x5B\x63\x6F\x6D\x70\x61\x6E\x79\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6D\x70\x61\x6E\x79\x29\x2C\x20\x69\x74\x73\x20\x5B\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x29\x20\x61\x6E\x64\x20\x61\x6E\x79\x20\x63\x61\x63\x68\x65\x64\x20\x64\x61\x74\x61\x2E\x20\x54\x68\x69\x73\x20\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E\x20\x69\x73\x20\x69\x72\x72\x65\x76\x65\x72\x73\x69\x62\x6C\x65\x2E\n\n\x41\x20\x5B\x63\x6F\x6D\x70\x61\x6E\x79\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6D\x70\x61\x6E\x79\x29\x20\x72\x65\x70\x72\x65\x73\x65\x6E\x74\x73\x20\x61\x20\x62\x75\x73\x69\x6E\x65\x73\x73\x20\x73\x68\x61\x72\x69\x6E\x67\x20\x61\x63\x63\x65\x73\x73\x20\x74\x6F\x20\x74\x68\x65\x69\x72\x20\x64\x61\x74\x61\x2E\n\x45\x61\x63\x68\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x63\x61\x6E\x20\x68\x61\x76\x65\x20\x6D\x75\x6C\x74\x69\x70\x6C\x65\x20\x5B\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x29\x20\x74\x6F\x20\x64\x69\x66\x66\x65\x72\x65\x6E\x74\x20\x64\x61\x74\x61\x20\x73\x6F\x75\x72\x63\x65\x73\x2C\x20\x73\x75\x63\x68\x20\x61\x73\x20\x6F\x6E\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x58\x65\x72\x6F\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x64\x61\x74\x61\x2C\x20\x74\x77\x6F\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x20\x74\x6F\x20\x50\x6C\x61\x69\x64\x20\x66\x6F\x72\x20\x74\x77\x6F\x20\x62\x61\x6E\x6B\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x2C\x20\x61\x6E\x64\x20\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x5A\x65\x74\x74\x6C\x65\x20\x66\x6F\x72\x20\x50\x4F\x53\x20\x64\x61\x74\x61\x2E\n" + tags: + - Companies + responses: + '204': + description: No Content + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + put: + summary: Replace company + description: "\uFEFF\x55\x73\x65\x20\x74\x68\x65\x20\x2A\x52\x65\x70\x6C\x61\x63\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2A\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x74\x6F\x20\x72\x65\x70\x6C\x61\x63\x65\x20\x74\x68\x65\x20\x65\x78\x69\x73\x74\x69\x6E\x67\x20\x6E\x61\x6D\x65\x2C\x20\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x2C\x20\x61\x6E\x64\x20\x74\x61\x67\x73\x20\x6F\x66\x20\x74\x68\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2E\x20\x43\x61\x6C\x6C\x69\x6E\x67\x20\x74\x68\x65\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x77\x69\x6C\x6C\x20\x72\x65\x70\x6C\x61\x63\x65\x20\x65\x78\x69\x73\x74\x69\x6E\x67\x20\x76\x61\x6C\x75\x65\x73\x20\x65\x76\x65\x6E\x20\x69\x66\x20\x6E\x65\x77\x20\x76\x61\x6C\x75\x65\x73\x20\x68\x61\x76\x65\x6E\x27\x74\x20\x62\x65\x65\x6E\x20\x64\x65\x66\x69\x6E\x65\x64\x20\x69\x6E\x20\x74\x68\x65\x20\x70\x61\x79\x6C\x6F\x61\x64\x2E\n\n\x41\x20\x5B\x63\x6F\x6D\x70\x61\x6E\x79\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6D\x70\x61\x6E\x79\x29\x20\x72\x65\x70\x72\x65\x73\x65\x6E\x74\x73\x20\x61\x20\x62\x75\x73\x69\x6E\x65\x73\x73\x20\x73\x68\x61\x72\x69\x6E\x67\x20\x61\x63\x63\x65\x73\x73\x20\x74\x6F\x20\x74\x68\x65\x69\x72\x20\x64\x61\x74\x61\x2E\n\x45\x61\x63\x68\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x63\x61\x6E\x20\x68\x61\x76\x65\x20\x6D\x75\x6C\x74\x69\x70\x6C\x65\x20\x5B\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x29\x20\x74\x6F\x20\x64\x69\x66\x66\x65\x72\x65\x6E\x74\x20\x64\x61\x74\x61\x20\x73\x6F\x75\x72\x63\x65\x73\x2C\x20\x73\x75\x63\x68\x20\x61\x73\x20\x6F\x6E\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x58\x65\x72\x6F\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x64\x61\x74\x61\x2C\x20\x74\x77\x6F\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x20\x74\x6F\x20\x50\x6C\x61\x69\x64\x20\x66\x6F\x72\x20\x74\x77\x6F\x20\x62\x61\x6E\x6B\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x2C\x20\x61\x6E\x64\x20\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x5A\x65\x74\x74\x6C\x65\x20\x66\x6F\x72\x20\x50\x4F\x53\x20\x64\x61\x74\x61\x2E" + operationId: replace-company + x-speakeasy-name-override: replace + parameters: + - $ref: '#/components/parameters/companyId' + tags: + - Companies + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Company' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' - description: "\uFEFF\x55\x73\x65\x20\x74\x68\x65\x20\x2A\x43\x72\x65\x61\x74\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2A\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x74\x6F\x20\x63\x72\x65\x61\x74\x65\x20\x61\x20\x6E\x65\x77\x20\x5B\x63\x6F\x6D\x70\x61\x6E\x79\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x73\x79\x6E\x63\x2D\x66\x6F\x72\x2D\x65\x78\x70\x65\x6E\x73\x65\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6D\x70\x61\x6E\x79\x29\x20\x74\x68\x61\x74\x20\x72\x65\x70\x72\x65\x73\x65\x6E\x74\x73\x20\x79\x6F\x75\x72\x20\x63\x75\x73\x74\x6F\x6D\x65\x72\x20\x69\x6E\x20\x43\x6F\x64\x61\x74\x2E\x20\n\n\x41\x20\x5B\x63\x6F\x6D\x70\x61\x6E\x79\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x73\x79\x6E\x63\x2D\x66\x6F\x72\x2D\x65\x78\x70\x65\x6E\x73\x65\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6D\x70\x61\x6E\x79\x29\x20\x72\x65\x70\x72\x65\x73\x65\x6E\x74\x73\x20\x61\x20\x62\x75\x73\x69\x6E\x65\x73\x73\x20\x73\x68\x61\x72\x69\x6E\x67\x20\x61\x63\x63\x65\x73\x73\x20\x74\x6F\x20\x74\x68\x65\x69\x72\x20\x64\x61\x74\x61\x2E\n\x45\x61\x63\x68\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x63\x61\x6E\x20\x68\x61\x76\x65\x20\x6D\x75\x6C\x74\x69\x70\x6C\x65\x20\x5B\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x73\x79\x6E\x63\x2D\x66\x6F\x72\x2D\x65\x78\x70\x65\x6E\x73\x65\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x29\x20\x74\x6F\x20\x64\x69\x66\x66\x65\x72\x65\x6E\x74\x20\x64\x61\x74\x61\x20\x73\x6F\x75\x72\x63\x65\x73\x2C\x20\x73\x75\x63\x68\x20\x61\x73\x20\x6F\x6E\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x58\x65\x72\x6F\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x64\x61\x74\x61\x2C\x20\x74\x77\x6F\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x20\x74\x6F\x20\x50\x6C\x61\x69\x64\x20\x66\x6F\x72\x20\x74\x77\x6F\x20\x62\x61\x6E\x6B\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x2C\x20\x61\x6E\x64\x20\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x5A\x65\x74\x74\x6C\x65\x20\x66\x6F\x72\x20\x50\x4F\x53\x20\x64\x61\x74\x61\x2E\n\n\x49\x66\x20\x66\x6F\x72\x62\x69\x64\x64\x65\x6E\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x20\x28\x73\x65\x65\x20\x60\x6E\x61\x6D\x65\x60\x20\x70\x61\x74\x74\x65\x72\x6E\x29\x20\x61\x72\x65\x20\x70\x72\x65\x73\x65\x6E\x74\x20\x69\x6E\x20\x74\x68\x65\x20\x72\x65\x71\x75\x65\x73\x74\x2C\x20\x61\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x77\x69\x6C\x6C\x20\x62\x65\x20\x63\x72\x65\x61\x74\x65\x64\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x66\x6F\x72\x62\x69\x64\x64\x65\x6E\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x20\x72\x65\x6D\x6F\x76\x65\x64\x2E\x20\x46\x6F\x72\x20\x65\x78\x61\x6D\x70\x6C\x65\x2C\x20\x60\x43\x6F\x6D\x70\x61\x6E\x79\x20\x28\x43\x6F\x64\x61\x74\x5B\x31\x5D\x29\x60\x20\x77\x69\x74\x68\x20\x62\x65\x20\x63\x72\x65\x61\x74\x65\x64\x20\x61\x73\x20\x60\x43\x6F\x6D\x70\x61\x6E\x79\x20\x43\x6F\x64\x61\x74\x31\x60\x2E" requestBody: content: application/json: schema: $ref: '#/components/schemas/CompanyRequestBody' examples: - With no description: + Update name: value: - name: Technicalium - With a description: + name: New Name + Update description: value: - name: Technicalium - description: 'Technology services, including web and app design and development' - '/companies/{companyId}': - put: + name: Same name + description: Additional documents required + patch: summary: Update company - description: "\uFEFF\x55\x73\x65\x20\x74\x68\x65\x20\x2A\x55\x70\x64\x61\x74\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2A\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x74\x6F\x20\x75\x70\x64\x61\x74\x65\x20\x62\x6F\x74\x68\x20\x74\x68\x65\x20\x6E\x61\x6D\x65\x20\x61\x6E\x64\x20\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x6F\x66\x20\x74\x68\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2E\x20\n\n\x41\x20\x5B\x63\x6F\x6D\x70\x61\x6E\x79\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x73\x79\x6E\x63\x2D\x66\x6F\x72\x2D\x65\x78\x70\x65\x6E\x73\x65\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6D\x70\x61\x6E\x79\x29\x20\x72\x65\x70\x72\x65\x73\x65\x6E\x74\x73\x20\x61\x20\x62\x75\x73\x69\x6E\x65\x73\x73\x20\x73\x68\x61\x72\x69\x6E\x67\x20\x61\x63\x63\x65\x73\x73\x20\x74\x6F\x20\x74\x68\x65\x69\x72\x20\x64\x61\x74\x61\x2E\n\x45\x61\x63\x68\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x63\x61\x6E\x20\x68\x61\x76\x65\x20\x6D\x75\x6C\x74\x69\x70\x6C\x65\x20\x5B\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x73\x79\x6E\x63\x2D\x66\x6F\x72\x2D\x65\x78\x70\x65\x6E\x73\x65\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x29\x20\x74\x6F\x20\x64\x69\x66\x66\x65\x72\x65\x6E\x74\x20\x64\x61\x74\x61\x20\x73\x6F\x75\x72\x63\x65\x73\x2C\x20\x73\x75\x63\x68\x20\x61\x73\x20\x6F\x6E\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x58\x65\x72\x6F\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x64\x61\x74\x61\x2C\x20\x74\x77\x6F\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x20\x74\x6F\x20\x50\x6C\x61\x69\x64\x20\x66\x6F\x72\x20\x74\x77\x6F\x20\x62\x61\x6E\x6B\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x2C\x20\x61\x6E\x64\x20\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x5A\x65\x74\x74\x6C\x65\x20\x66\x6F\x72\x20\x50\x4F\x53\x20\x64\x61\x74\x61\x2E" + description: "\uFEFF\x55\x73\x65\x20\x74\x68\x65\x20\x2A\x55\x70\x64\x61\x74\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2A\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x74\x6F\x20\x75\x70\x64\x61\x74\x65\x20\x74\x68\x65\x20\x6E\x61\x6D\x65\x2C\x20\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x2C\x20\x6F\x72\x20\x74\x61\x67\x73\x20\x6F\x66\x20\x74\x68\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2E\n\n\x54\x68\x65\x20\x2A\x55\x70\x64\x61\x74\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2A\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x64\x6F\x65\x73\x6E\x27\x74\x20\x68\x61\x76\x65\x20\x61\x6E\x79\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x66\x69\x65\x6C\x64\x73\x2E\x20\x49\x66\x20\x61\x6E\x79\x20\x6F\x66\x20\x74\x68\x65\x20\x66\x69\x65\x6C\x64\x73\x20\x70\x72\x6F\x76\x69\x64\x65\x64\x20\x61\x72\x65\x20\x60\x6E\x75\x6C\x6C\x60\x20\x6F\x72\x20\x6E\x6F\x74\x20\x70\x72\x6F\x76\x69\x64\x65\x64\x2C\x20\x74\x68\x65\x79\x20\x77\x6F\x6E\x27\x74\x20\x62\x65\x20\x69\x6E\x63\x6C\x75\x64\x65\x64\x20\x69\x6E\x20\x74\x68\x65\x20\x75\x70\x64\x61\x74\x65\x2E\x20\x20\n\n\x41\x20\x5B\x63\x6F\x6D\x70\x61\x6E\x79\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6D\x70\x61\x6E\x79\x29\x20\x72\x65\x70\x72\x65\x73\x65\x6E\x74\x73\x20\x61\x20\x62\x75\x73\x69\x6E\x65\x73\x73\x20\x73\x68\x61\x72\x69\x6E\x67\x20\x61\x63\x63\x65\x73\x73\x20\x74\x6F\x20\x74\x68\x65\x69\x72\x20\x64\x61\x74\x61\x2E" operationId: update-company parameters: - $ref: '#/components/parameters/companyId' @@ -396,26 +562,38 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CompanyRequestBody' + $ref: '#/components/schemas/CompanyUpdateRequest' examples: + Update tags: + value: + tags: + refrence: new reference Update name: value: name: New Name - Update description: - value: - name: Same name - description: Additional documents required - delete: - summary: Delete a company - operationId: delete-company + '/companies/{companyId}/accessToken': + get: + summary: Get company access token + operationId: get-company-access-token + x-speakeasy-name-override: get-access-token + description: "Use the _Get company access token_ endpoint to return an access token for the specified company ID. The token is valid for one day. \n\nThe token is required by Codat's embeddable UIs (such as [Connections SDK](https://docs.codat.io/auth-flow/optimize/connection-management) and [Link SDK](https://docs.codat.io/auth-flow/authorize-embedded-link)) to verify the identity of the user and improve the reliability of data provided by them." parameters: - $ref: '#/components/parameters/companyId' - description: "\uFEFF\x54\x68\x65\x20\x2A\x44\x65\x6C\x65\x74\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2A\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x70\x65\x72\x6D\x61\x6E\x65\x6E\x74\x6C\x79\x20\x64\x65\x6C\x65\x74\x65\x73\x20\x61\x20\x5B\x63\x6F\x6D\x70\x61\x6E\x79\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x73\x79\x6E\x63\x2D\x66\x6F\x72\x2D\x65\x78\x70\x65\x6E\x73\x65\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6D\x70\x61\x6E\x79\x29\x2C\x20\x69\x74\x73\x20\x5B\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x73\x79\x6E\x63\x2D\x66\x6F\x72\x2D\x65\x78\x70\x65\x6E\x73\x65\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x29\x20\x61\x6E\x64\x20\x61\x6E\x79\x20\x63\x61\x63\x68\x65\x64\x20\x64\x61\x74\x61\x2E\x20\x54\x68\x69\x73\x20\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E\x20\x69\x73\x20\x69\x72\x72\x65\x76\x65\x72\x73\x69\x62\x6C\x65\x2E\n\n\x41\x20\x5B\x63\x6F\x6D\x70\x61\x6E\x79\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x73\x79\x6E\x63\x2D\x66\x6F\x72\x2D\x65\x78\x70\x65\x6E\x73\x65\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6D\x70\x61\x6E\x79\x29\x20\x72\x65\x70\x72\x65\x73\x65\x6E\x74\x73\x20\x61\x20\x62\x75\x73\x69\x6E\x65\x73\x73\x20\x73\x68\x61\x72\x69\x6E\x67\x20\x61\x63\x63\x65\x73\x73\x20\x74\x6F\x20\x74\x68\x65\x69\x72\x20\x64\x61\x74\x61\x2E\n\x45\x61\x63\x68\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x63\x61\x6E\x20\x68\x61\x76\x65\x20\x6D\x75\x6C\x74\x69\x70\x6C\x65\x20\x5B\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x73\x79\x6E\x63\x2D\x66\x6F\x72\x2D\x65\x78\x70\x65\x6E\x73\x65\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x29\x20\x74\x6F\x20\x64\x69\x66\x66\x65\x72\x65\x6E\x74\x20\x64\x61\x74\x61\x20\x73\x6F\x75\x72\x63\x65\x73\x2C\x20\x73\x75\x63\x68\x20\x61\x73\x20\x6F\x6E\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x58\x65\x72\x6F\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x64\x61\x74\x61\x2C\x20\x74\x77\x6F\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x20\x74\x6F\x20\x50\x6C\x61\x69\x64\x20\x66\x6F\x72\x20\x74\x77\x6F\x20\x62\x61\x6E\x6B\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x2C\x20\x61\x6E\x64\x20\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x5A\x65\x74\x74\x6C\x65\x20\x66\x6F\x72\x20\x50\x4F\x53\x20\x64\x61\x74\x61\x2E\n" tags: - Companies responses: - '204': - description: No Content + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/CompanyAccessToken' + examples: + Simple company: + value: + expiresIn: 86400 + accessToken: string + tokenType: Bearer '401': $ref: '#/components/responses/Unauthorized' '402': @@ -430,114 +608,28 @@ paths: $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/connections': get: - summary: Get company - operationId: get-company - description: "\uFEFF\x54\x68\x65\x20\x2A\x47\x65\x74\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2A\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x72\x65\x74\x75\x72\x6E\x73\x20\x61\x20\x73\x69\x6E\x67\x6C\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x66\x6F\x72\x20\x61\x20\x67\x69\x76\x65\x6E\x20\x60\x63\x6F\x6D\x70\x61\x6E\x79\x49\x64\x60\x2E\n\n\x41\x20\x5B\x63\x6F\x6D\x70\x61\x6E\x79\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x73\x79\x6E\x63\x2D\x66\x6F\x72\x2D\x65\x78\x70\x65\x6E\x73\x65\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6D\x70\x61\x6E\x79\x29\x20\x72\x65\x70\x72\x65\x73\x65\x6E\x74\x73\x20\x61\x20\x62\x75\x73\x69\x6E\x65\x73\x73\x20\x73\x68\x61\x72\x69\x6E\x67\x20\x61\x63\x63\x65\x73\x73\x20\x74\x6F\x20\x74\x68\x65\x69\x72\x20\x64\x61\x74\x61\x2E\n\x45\x61\x63\x68\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x63\x61\x6E\x20\x68\x61\x76\x65\x20\x6D\x75\x6C\x74\x69\x70\x6C\x65\x20\x5B\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x73\x79\x6E\x63\x2D\x66\x6F\x72\x2D\x65\x78\x70\x65\x6E\x73\x65\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x29\x20\x74\x6F\x20\x64\x69\x66\x66\x65\x72\x65\x6E\x74\x20\x64\x61\x74\x61\x20\x73\x6F\x75\x72\x63\x65\x73\x2C\x20\x73\x75\x63\x68\x20\x61\x73\x20\x6F\x6E\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x58\x65\x72\x6F\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x64\x61\x74\x61\x2C\x20\x74\x77\x6F\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x20\x74\x6F\x20\x50\x6C\x61\x69\x64\x20\x66\x6F\x72\x20\x74\x77\x6F\x20\x62\x61\x6E\x6B\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x2C\x20\x61\x6E\x64\x20\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x5A\x65\x74\x74\x6C\x65\x20\x66\x6F\x72\x20\x50\x4F\x53\x20\x64\x61\x74\x61\x2E\n" + summary: List connections + description: "\uFEFF\x4C\x69\x73\x74\x20\x74\x68\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x20\x66\x6F\x72\x20\x61\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2E" + operationId: list-connections + tags: + - Connections parameters: - $ref: '#/components/parameters/companyId' - tags: - - Companies + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/pageSize' + - $ref: '#/components/parameters/query' + - $ref: '#/components/parameters/orderBy' responses: '200': description: OK content: application/json: schema: - $ref: '#/components/schemas/Company' + $ref: '#/components/schemas/Connections' examples: - Simple company: - value: - id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 - name: Toft stores holdings - description: '' - platform: '' - redirect: 'https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0' - dataConnections: [] - created: '2022-11-10T10:45:18Z' - createdByUserName: Dan Tzabar - referenceSubsidiaryCompanies: [] - Parent multi-entity company: - value: - id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 - name: Toft stores - description: '' - platform: '' - redirect: 'https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0' - dataConnections: [] - created: '2022-11-10T10:45:18Z' - createdByUserName: Dan Tzabar - referenceSubsidiaryCompanies: - - id: c8d3af58-7011-47ce-b3f2-89faf300ef6d - name: Toft stores UK - links: - portal: 'https://app.codat.io/companies/c8d3af58-7011-47ce-b3f2-89faf300ef6d/summary' - - id: db94eddc-9212-4568-9b5c-3eab0e325913 - name: Toft stores US - links: - portal: 'https://app.codat.io/companies/db94eddc-9212-4568-9b5c-3eab0e325913/summary' - Subsidiary multi-entity company: - value: - id: c8d3af58-7011-47ce-b3f2-89faf300ef6d - name: Toft stores UK - description: '' - platform: '' - redirect: 'https://link.codat.io/company/c8d3af58-7011-47ce-b3f2-89faf300ef6d' - dataConnections: - - id: d5ab61b7-1ad0-46fd-9f9f-b6761047941e - integrationId: cc750323-5a47-4f28-8d8e-30fbbf2ce137 - integrationKey: akxx - sourceId: 9815b998-024d-4415-a40b-89903b2cad6f - platformName: Oracle NetSuite - linkUrl: 'https://link-api.codat.io/companies/c8d3af58-7011-47ce-b3f2-89faf300ef6d/connections/d5ab61b7-1ad0-46fd-9f9f-b6761047941e/start' - status: Linked - lastSync: '2022-01-01T12:30:00.000Z' - created: '2022-01-01T11:30:00Z' - sourceType: Accounting - created: '2022-11-10T10:45:18Z' - createdByUserName: Dan Tzabar - referenceParentCompany: - id: ab12c58d-a678-4ebf-a159-ae99e1807bd0 - name: Toft stores - links: - portal: 'https://app.codat.io/companies/ab12c58d-a678-4ebf-a159-ae99e1807bd0/summary' - referenceSubsidiaryCompanies: [] - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - '/companies/{companyId}/connections': - get: - summary: List connections - description: "\uFEFF\x4C\x69\x73\x74\x20\x74\x68\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x20\x66\x6F\x72\x20\x61\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2E" - operationId: list-connections - tags: - - Connections - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/pageSize' - - $ref: '#/components/parameters/query' - - $ref: '#/components/parameters/orderBy' - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/Connections' - examples: - Connections: + Connections: value: results: - id: ee2eb431-c0fa-4dc9-93fa-d29781c12bcd @@ -752,26 +844,441 @@ paths: value: status: Unlinked description: '' - '/companies/{companyId}/sync/expenses/connections/partnerExpense': - post: + '/companies/{companyId}/connections/{connectionId}/data/bankAccounts': + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + get: + x-internal: true tags: - - Connections - description: Creates a partner expense data connection - summary: Create partner expense connection - operationId: create-partner-expense-connection - x-speakeasy-name-override: create-partner-expense-connection + - Bank accounts + summary: List bank accounts + operationId: list-bank-accounts parameters: - - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/pageSize' + - $ref: '#/components/parameters/query' + - $ref: '#/components/parameters/orderBy' responses: '200': description: Success content: application/json: schema: - $ref: '#/components/schemas/Connection' - examples: {} + $ref: '#/components/schemas/BankAccounts' + examples: + Dynamics 365 Business Central: + value: + results: + - id: c9a41bc7-6e5b-ed11-8c34-0022481b8b5b + accountName: '55' + accountType: Unknown + nominalCode: '10500' + sortCode: '' + accountNumber: '' + iBan: '' + currency: GBP + balance: -352.03 + modifiedDate: '2023-03-27T14:21:10Z' + sourceModifiedDate: '2023-02-07T00:00:00' + overdraftLimit: 0 + metadata: + isDeleted: false + - id: 47020f80-60e6-ec11-82f8-0022481a77f0 + accountName: '555' + accountType: Unknown + nominalCode: '40300' + sortCode: '' + accountNumber: '' + iBan: '' + currency: PLN + balance: 661.79 + modifiedDate: '2023-03-27T14:21:10Z' + sourceModifiedDate: '2022-06-07T00:00:00' + overdraftLimit: 0 + metadata: + isDeleted: false + pageNumber: 1 + pageSize: 2 + totalResults: 28 + _links: + current: + href: /companies/d6849caf-c146-41be-8335-b73346e3bd84/connections/60acb117-5cf5-4745-b069-491551da4066/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/d6849caf-c146-41be-8335-b73346e3bd84/connections/60acb117-5cf5-4745-b069-491551da4066/data/bankAccounts + next: + href: /companies/d6849caf-c146-41be-8335-b73346e3bd84/connections/60acb117-5cf5-4745-b069-491551da4066/data/bankAccounts?page=2&pageSize=2 + FreeAgent: + value: + results: + - id: '738783' + accountName: \w3fw + accountType: Debit + sortCode: '236972' + accountNumber: A06268209 + currency: GBP + balance: -10484.65 + availableBalance: -10484.65 + modifiedDate: '2023-04-25T14:19:12Z' + metadata: + isDeleted: false + - id: '738778' + accountName: 2e2bna45hy\ + accountType: Debit + sortCode: '236972' + accountNumber: D01825250 + currency: GBP + balance: -114.4 + availableBalance: -114.4 + modifiedDate: '2023-04-25T14:19:12Z' + metadata: + isDeleted: false + pageNumber: 1 + pageSize: 2 + totalResults: 82 + _links: + current: + href: /companies/071ad738-68f3-4561-afd0-69bab9df0803/connections/4fd7c69f-ecc1-45f5-83f2-42ed3391e386/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/071ad738-68f3-4561-afd0-69bab9df0803/connections/4fd7c69f-ecc1-45f5-83f2-42ed3391e386/data/bankAccounts + next: + href: /companies/071ad738-68f3-4561-afd0-69bab9df0803/connections/4fd7c69f-ecc1-45f5-83f2-42ed3391e386/data/bankAccounts?page=2&pageSize=2 + KashFlow: + value: + results: + - id: '765768' + accountName: 16th Account + accountType: Unknown + nominalCode: '70700' + currency: GBP + balance: 326 + availableBalance: 326 + modifiedDate: '2022-09-30T10:29:16Z' + - id: '765766' + accountName: 1a1a + accountType: Unknown + nominalCode: '70600' + currency: GBP + balance: 0 + availableBalance: 0 + modifiedDate: '2022-09-30T10:29:16Z' + pageNumber: 1 + pageSize: 2 + totalResults: 56 + _links: + current: + href: /companies/3a707a99-89da-4b16-a5d6-595333a16352/connections/ecab4f64-1a04-4c53-a343-bfd879f41f67/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/3a707a99-89da-4b16-a5d6-595333a16352/connections/ecab4f64-1a04-4c53-a343-bfd879f41f67/data/bankAccounts + next: + href: /companies/3a707a99-89da-4b16-a5d6-595333a16352/connections/ecab4f64-1a04-4c53-a343-bfd879f41f67/data/bankAccounts?page=2&pageSize=2 + Oracle NetSuite: + value: + results: + - id: '825' + accountName: Codat Europe Bank + accountType: Debit + nominalCode: '111111122222111' + currency: GBP + balance: 558.22 + modifiedDate: '2023-05-02T13:24:36Z' + sourceModifiedDate: '2022-07-15T11:34:02' + metadata: + isDeleted: false + - id: '826' + accountName: Codat Europe Bank USD + accountType: Debit + nominalCode: '1133221133' + currency: USD + modifiedDate: '2023-05-02T13:24:36Z' + sourceModifiedDate: '2021-03-26T10:31:40' + metadata: + isDeleted: false + pageNumber: 1 + pageSize: 2 + totalResults: 4 + _links: + current: + href: /companies/d5074b08-6a34-4b06-a742-236edf5dc4f1/connections/79f8313e-210a-4dc8-b69f-ba7e5004dda7/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/d5074b08-6a34-4b06-a742-236edf5dc4f1/connections/79f8313e-210a-4dc8-b69f-ba7e5004dda7/data/bankAccounts + next: + href: /companies/d5074b08-6a34-4b06-a742-236edf5dc4f1/connections/79f8313e-210a-4dc8-b69f-ba7e5004dda7/data/bankAccounts?page=2&pageSize=2 + QuickBooks Desktop: + value: + results: + - id: 20000-933270541 + accountName: Checking + accountType: Unknown + nominalCode: '10100' + currency: GBP + balance: 46954.1 + availableBalance: 46954.1 + modifiedDate: '2023-04-26T09:12:37Z' + sourceModifiedDate: '2023-12-16T05:06:45' + metadata: + isDeleted: false + - id: 550001-1071509830 + accountName: Petty Cash + accountType: Unknown + nominalCode: '10400' + currency: GBP + balance: 500 + availableBalance: 500 + modifiedDate: '2023-04-26T09:12:37Z' + sourceModifiedDate: '2023-12-16T05:06:45' + metadata: + isDeleted: false + pageNumber: 1 + pageSize: 2 + totalResults: 3 + _links: + current: + href: /companies/fc72ba08-af13-4474-b28a-01dcfa6cfb51/connections/2c26b4da-97d4-4ba9-baad-1e18b49b96ac/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/fc72ba08-af13-4474-b28a-01dcfa6cfb51/connections/2c26b4da-97d4-4ba9-baad-1e18b49b96ac/data/bankAccounts + next: + href: /companies/fc72ba08-af13-4474-b28a-01dcfa6cfb51/connections/2c26b4da-97d4-4ba9-baad-1e18b49b96ac/data/bankAccounts?page=2&pageSize=2 + QuickBooks Online Sandbox: + value: + results: + - id: '164' + accountName: '00' + accountType: Debit + nominalCode: '123567' + currency: GBP + balance: 0 + availableBalance: 0 + modifiedDate: '2023-04-26T09:35:57Z' + sourceModifiedDate: '2022-07-20T14:11:28Z' + metadata: + isDeleted: false + - id: '163' + accountName: '11' + accountType: Debit + currency: GBP + balance: 0 + availableBalance: 0 + modifiedDate: '2023-04-26T09:35:57Z' + sourceModifiedDate: '2022-07-20T14:11:28Z' + metadata: + isDeleted: false + pageNumber: 1 + pageSize: 2 + totalResults: 57 + _links: + current: + href: /companies/5a7f3597-36e1-4216-86fe-289ad36088a6/connections/1f9f6013-f8a5-4278-8a47-3ab7fdb6c24c/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/5a7f3597-36e1-4216-86fe-289ad36088a6/connections/1f9f6013-f8a5-4278-8a47-3ab7fdb6c24c/data/bankAccounts + next: + href: /companies/5a7f3597-36e1-4216-86fe-289ad36088a6/connections/1f9f6013-f8a5-4278-8a47-3ab7fdb6c24c/data/bankAccounts?page=2&pageSize=2 + QuickBooks Online: + value: + results: + - id: '202' + accountName: \aa + accountType: Debit + currency: GBP + balance: 123 + availableBalance: 123 + modifiedDate: '2023-01-18T11:02:37Z' + sourceModifiedDate: '2022-11-11T14:15:13Z' + - id: '193' + accountName: 1 year ago + accountType: Debit + currency: GBP + balance: 5300.02 + availableBalance: 5300.02 + modifiedDate: '2023-01-18T11:02:37Z' + sourceModifiedDate: '2023-01-18T06:05:12Z' + pageNumber: 1 + pageSize: 2 + totalResults: 140 + _links: + current: + href: /companies/10818b5e-6e6a-4ed4-a1c5-3e3efe626e87/connections/9e28a776-f4be-425b-8a3d-ad49956de2c9/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/10818b5e-6e6a-4ed4-a1c5-3e3efe626e87/connections/9e28a776-f4be-425b-8a3d-ad49956de2c9/data/bankAccounts + next: + href: /companies/10818b5e-6e6a-4ed4-a1c5-3e3efe626e87/connections/9e28a776-f4be-425b-8a3d-ad49956de2c9/data/bankAccounts?page=2&pageSize=2 + Sage 50 (UK): + value: + results: + - id: '1200' + accountName: Bank Current Account + accountType: Unknown + nominalCode: '1200' + sortCode: 23-34-34 + accountNumber: '003234234' + iBan: '' + currency: GBP + balance: -20091.04 + availableBalance: -20091.04 + modifiedDate: '2023-03-30T14:42:37Z' + sourceModifiedDate: '2022-11-25T09:25:48' + overdraftLimit: 120000 + institution: Lloyds Bank PLC + metadata: + isDeleted: false + - id: '1210' + accountName: Bank Deposit Account + accountType: Unknown + nominalCode: '1210' + sortCode: 45-45-45 + accountNumber: 9/00474345 + iBan: '' + currency: GBP + balance: 3510 + availableBalance: 3510 + modifiedDate: '2023-03-30T14:42:37Z' + sourceModifiedDate: '2022-11-25T09:25:48' + overdraftLimit: 0 + institution: Halifax Building Society + metadata: + isDeleted: false + pageNumber: 1 + pageSize: 2 + totalResults: 6 + _links: + current: + href: /companies/cf5f2a47-2990-4221-bae6-0c19c86ac304/connections/8ee4910f-4fc1-47e6-89b1-5931fb33d8f7/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/cf5f2a47-2990-4221-bae6-0c19c86ac304/connections/8ee4910f-4fc1-47e6-89b1-5931fb33d8f7/data/bankAccounts + next: + href: /companies/cf5f2a47-2990-4221-bae6-0c19c86ac304/connections/8ee4910f-4fc1-47e6-89b1-5931fb33d8f7/data/bankAccounts?page=2&pageSize=2 + Sage Business Cloud Accounting: + value: + results: + - id: 154d05abe9f24c4babe0f6a741dec1b9 + accountName: Abdi Internet Bank + accountType: Unknown + nominalCode: '1560' + sortCode: '010101' + accountNumber: '11111' + currency: GBP + balance: 49.61 + availableBalance: 49.61 + modifiedDate: '2022-10-24T14:52:53Z' + sourceModifiedDate: '2020-01-27T10:53:26Z' + - id: 565ce07212bc492c8c2d04f43f9f67e3 + accountName: Abdi Live Test + accountType: Unknown + nominalCode: '147852' + sortCode: '123456' + accountNumber: '1234567' + currency: GBP + balance: -225830.75 + availableBalance: -225830.75 + modifiedDate: '2022-10-24T14:52:53Z' + sourceModifiedDate: '2020-01-28T14:00:20Z' + pageNumber: 1 + pageSize: 2 + totalResults: 45 + _links: + current: + href: /companies/390083e2-351b-407c-a3be-55081c36c182/connections/37916fb7-b4b8-4a78-8872-1751e20ee0cd/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/390083e2-351b-407c-a3be-55081c36c182/connections/37916fb7-b4b8-4a78-8872-1751e20ee0cd/data/bankAccounts + next: + href: /companies/390083e2-351b-407c-a3be-55081c36c182/connections/37916fb7-b4b8-4a78-8872-1751e20ee0cd/data/bankAccounts?page=2&pageSize=2 + Sage Intacct: + value: + results: + - id: 'CREDITCARD:55' + accountName: CoT Credit Card + accountType: Credit + nominalCode: '10021' + currency: GBP + modifiedDate: '2023-04-04T16:31:46Z' + sourceModifiedDate: '2023-03-27T14:11:48' + metadata: + isDeleted: false + - id: 'CREDITCARD:58' + accountName: Cot Credit Card 2 + accountType: Credit + nominalCode: '11112' + currency: GBP + modifiedDate: '2023-04-04T16:31:46Z' + sourceModifiedDate: '2023-03-27T14:15:11' + metadata: + isDeleted: false + pageNumber: 1 + pageSize: 2 + totalResults: 14 + _links: + current: + href: /companies/df02b289-cb16-4964-ac4d-9fd60b04538e/connections/8f457d9c-1142-4241-a07e-71d1ee2e3052/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/df02b289-cb16-4964-ac4d-9fd60b04538e/connections/8f457d9c-1142-4241-a07e-71d1ee2e3052/data/bankAccounts + next: + href: /companies/df02b289-cb16-4964-ac4d-9fd60b04538e/connections/8f457d9c-1142-4241-a07e-71d1ee2e3052/data/bankAccounts?page=2&pageSize=2 + Xero: + value: + results: + - id: bd9e85e0-0478-433d-ae9f-0b3c4f04bfe4 + accountName: Business Bank Account + accountType: Debit + sortCode: '990404' + accountNumber: '987654321' + currency: GBP + balance: 6681.79 + modifiedDate: '2023-03-15T20:36:09Z' + sourceModifiedDate: '2023-03-15T20:35:07' + metadata: + isDeleted: false + - id: a8d6fb1a-8c5d-4683-90ce-bf9d28fc62ba + accountName: Business Savings Account + accountType: Debit + sortCode: '890303' + accountNumber: '876543210' + currency: GBP + balance: 0 + modifiedDate: '2023-03-15T20:36:09Z' + sourceModifiedDate: '2023-03-15T20:36:06' + metadata: + isDeleted: false + pageNumber: 1 + pageSize: 2 + totalResults: 2 + _links: + current: + href: /companies/5ced9667-a310-443a-a711-958d36377141/connections/6a4bcf97-e46a-465c-abf6-c42cec8e48c0/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/5ced9667-a310-443a-a711-958d36377141/connections/6a4bcf97-e46a-465c-abf6-c42cec8e48c0/data/bankAccounts + Zoho Books: + value: + results: + - id: '104957000000060010' + accountName: Abdi Test + accountType: Unknown + sortCode: '112233' + accountNumber: xxxx5678 + currency: GBP + balance: 69858.44 + modifiedDate: '2022-10-03T08:40:38Z' + institution: Test Bank + - id: '104957000000065002' + accountName: Abdi Test 2 + accountType: Unknown + sortCode: '' + accountNumber: '' + currency: AED + balance: 98.03 + modifiedDate: '2022-10-03T08:40:38Z' + institution: '' + pageNumber: 1 + pageSize: 2 + totalResults: 4 + _links: + current: + href: /companies/d0b68840-db50-4bc3-b88c-96e225333fea/connections/a2324b8e-60e9-451d-8eb1-0fdc8e8224df/data/bankAccounts?page=1&pageSize=2 + self: + href: /companies/d0b68840-db50-4bc3-b88c-96e225333fea/connections/a2324b8e-60e9-451d-8eb1-0fdc8e8224df/data/bankAccounts + next: + href: /companies/d0b68840-db50-4bc3-b88c-96e225333fea/connections/a2324b8e-60e9-451d-8eb1-0fdc8e8224df/data/bankAccounts?page=2&pageSize=2 '400': - $ref: '#/components/responses/BadRequest' + $ref: '#/components/responses/Malformed-Query' '401': $ref: '#/components/responses/Unauthorized' '402': @@ -780,2174 +1287,675 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' + '409': + $ref: '#/components/responses/Conflict' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' - '/companies/{companyId}/data/info': + description: "The *List bank accounts* endpoint returns a list of [bank accounts](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) for a given company's connection.\n\n[Bank accounts](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) are financial accounts maintained by a bank or other financial institution.\n\nBefore using this endpoint, you must have [retrieved data for the company](https://docs.codat.io/bank-feeds-api#/operations/refresh-company-data).\n " + '/companies/{companyId}/connections/{connectionId}/options/bankAccounts': + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' get: + summary: Get create/update bank account model + x-internal: true tags: - - Company info - summary: Get company info - description: Gets the latest basic info for a company. - operationId: get-company-info - parameters: - - $ref: '#/components/parameters/companyId' + - Bank accounts responses: '200': - description: Success + description: OK content: application/json: schema: - $ref: '#/components/schemas/CompanyInformation' + $ref: '#/components/schemas/PushOption' examples: - Example 1: + Dynamics 365 Business Central: value: - companyName: Codat - accountingPlatformRef: 1700060034_ETD - companyLegalName: Codat Ltd - addresses: - - type: Billing - line1: 301 Ink Rooms - line2: 28 Easton Street - city: London - region: England - country: United Kingdom - postalCode: WC1X 0BE - - type: Delivery - line1: 28 Easton Street - city: London - country: UK - postalCode: WC1X 0BE - phoneNumbers: - - number: 02012 345678 - type: Landline - - number: 07123 456789 - type: Mobile - - number: 02012 345678 - type: Fax - webLinks: - - type: Website - url: 'https://www.codat.io/' - - type: Social - url: 'https://www.linkedin.com/company/codat-limited/' - registrationNumber: '5590111724' - taxNumber: '74111622555799035846' - financialYearStartDate: '2023-04-01T00:00:00' - baseCurrency: GBP - sourceUrls: - Api: 'https://api.codat.io' - createdDate: '2020-03-09T15:19:26' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '409': - $ref: '#/components/responses/Conflict' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - '/companies/{companyId}/sync/expenses/config': - get: - tags: - - Configuration - parameters: - - $ref: '#/components/parameters/companyId' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/CompanyConfiguration' - examples: {} - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - summary: Get company configuration - description: Gets a company's expense sync configuration - operationId: get-company-configuration - post: - tags: - - Configuration - parameters: - - $ref: '#/components/parameters/companyId' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CompanyConfiguration' - examples: {} - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/CompanyConfiguration' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - summary: Set company configuration - description: Sets a company's expense sync configuration - operationId: set-company-configuration - x-speakeasy-name-override: set - parameters: - - $ref: '#/components/parameters/companyId' - '/companies/{companyId}/sync/expenses/mappingOptions': - get: - tags: - - Mapping options - parameters: - - $ref: '#/components/parameters/companyId' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/MappingOptions' - examples: {} - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - description: 'Gets the mapping options (accounts, trackingCategories and taxRates) for a company''s accounting software' - summary: Mapping options - operationId: get-mapping-options - x-speakeasy-name-override: get-mapping-options - parameters: - - $ref: '#/components/parameters/companyId' - '/companies/{companyId}/sync/expenses/syncs/lastSuccessful/status': - get: - tags: - - Sync - parameters: - - $ref: '#/components/parameters/companyId' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/CompanySyncStatus' - examples: {} - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - description: Gets the status of the last successful sync - summary: Last successful sync - operationId: get-last-successful-sync - x-speakeasy-name-override: get-last-successful-sync - parameters: - - $ref: '#/components/parameters/companyId' - '/companies/{companyId}/sync/expenses/syncs/latest/status': - get: - tags: - - Sync - parameters: - - $ref: '#/components/parameters/companyId' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/CompanySyncStatus' - examples: {} - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - description: Gets the latest sync status - summary: Latest sync status - operationId: get-latest-sync - x-speakeasy-name-override: get-latest-sync - parameters: - - $ref: '#/components/parameters/companyId' - '/companies/{companyId}/sync/expenses/syncs/list/status': - parameters: - - $ref: '#/components/parameters/companyId' - get: - tags: - - Sync - responses: - '200': - description: Success - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/CompanySyncStatus' - examples: {} - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - summary: List sync statuses - description: Gets a list of sync statuses - operationId: list-syncs - '/companies/{companyId}/sync/expenses/syncs/{syncId}/status': - get: - tags: - - Sync - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/syncId' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/CompanySyncStatus' - examples: {} - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - summary: Get sync status - description: Get the sync status for a specified sync - operationId: get-sync-by-id - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/syncId' - '/companies/{companyId}/sync/expenses/syncs/{syncId}/transactions': - get: - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/syncId' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/pageSize' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/Transactions' - examples: {} - '400': - $ref: '#/components/responses/Malformed-Query' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - tags: - - Transaction status - summary: List sync transactions - description: Gets the transactions and status for a sync - operationId: list-sync-transactions - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/syncId' - '/companies/{companyId}/sync/expenses/syncs/{syncId}/transactions/{transactionId}': - get: - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/syncId' - - $ref: '#/components/parameters/transactionId' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/TransactionResponse' - examples: {} - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - tags: - - Transaction status - summary: Get sync transaction - description: Gets the status of a transaction for a sync - operationId: get-sync-transaction - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/syncId' - - $ref: '#/components/parameters/transactionId' - '/companies/{companyId}/sync/expenses/expense-transactions': - parameters: - - $ref: '#/components/parameters/companyId' - post: - summary: Create expense transaction - operationId: create-expense-transaction - description: "The *Create expense* endpoint creates an [expense transaction](https://docs.codat.io/sync-for-expenses-api#/schemas/ExpenseTransaction) in the accounting software for a given company's connection. \n\n[Expense transactions](https://docs.codat.io/sync-for-expenses-api#/schemas/ExpenseTransaction) represent transactions made with a company debit or credit card. \n\n### Supported Integrations\n\n| Integration | Supported |\n|-------------------------------|-----------|\n| Dynamics 365 Business Central | Yes |\n| FreeAgent | Yes |\n| QuickBooks Desktop | Yes |\n| QuickBooks Online | Yes |\n| Oracle NetSuite | Yes |\n| Xero | Yes |" - tags: - - Expenses - responses: - '200': - description: OK - content: - application/json: - x-speakeasy-usage-example: true - schema: - $ref: '#/components/schemas/CreateExpenseResponse' - examples: - Example 1: - value: - syncId: cd937d46-8e41-43a9-9477-a79158ffd98a - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateExpenseRequest' - examples: - Payment: - value: - - id: 4d7c6929-7770-412b-91bb-44d3bc71d111 - type: Payment - issueDate: '2024-05-21T00:00:00+00:00' - currency: GBP - currencyRate: 1 - contactRef: - id: '430' - type: Supplier - bankAccountRef: - id: '97' - merchantName: Amazon UK - notes: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - lines: - - netAmount: 100 - taxAmount: 20 - taxRateRef: - id: 23_Bills - accountRef: - id: '35' - trackingRefs: - - id: DEPARTMENT_5 - dataType: trackingCategories - invoiceTo: - id: '504' - type: customer - Refund: - value: - - id: 7008d3f2-aeb4-11ed-afa1-0242ac120002 - type: Refund - issueDate: '2024-02-17T00:00:00+00:00' - currency: GBP - contactRef: - id: '430' - type: Supplier - bankAccountRef: - id: '97' - merchantName: Amazon UK - notes: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - lines: - - netAmount: 100 - taxAmount: 20 - taxRateRef: - id: 23_Bills - accountRef: - id: '42' - trackingRefs: - - id: DEPARTMENT_6 - '/companies/{companyId}/sync/expenses/expense-transactions/{transactionId}': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/transactionId' - put: - summary: Update expense transactions - tags: - - Expenses - responses: - '202': - description: Accepted - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateExpenseResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '422': - $ref: '#/components/responses/Unprocessable-Content' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - operationId: update-expense-transaction - description: "The *Update expense* endpoint updates an existing [expense transaction](https://docs.codat.io/sync-for-expenses-api#/schemas/UpdateExpenseRequest) in the accounting software for a given company's connection. \n\n[Expense transactions](https://docs.codat.io/sync-for-expenses-api#/schemas/UpdateExpenseRequest) represent transactions made with a company debit or credit card. \n\n### Supported Integrations\nThe following integrations are supported for the [Payment](https://docs.codat.io/expenses/sync-process/expense-transactions#transaction-types) transaction `type` only: \n| Integration | Supported |\n|-----------------------|-----------|\n| FreeAgent | Yes |\n| QuickBooks Online | Yes |\n| Oracle NetSuite | Yes |\n| Xero | Yes |" - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateExpenseRequest' - examples: - Payment: - value: - type: Payment - issueDate: '2024-05-21T00:00:00+00:00' - currency: GBP - currencyRate: 1 - contactRef: - id: '430' - type: Supplier - bankAccountRef: - id: '97' - merchantName: Amazon UK - notes: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - lines: - - netAmount: 100 - taxAmount: 20 - taxRateRef: - id: 23_Bills - accountRef: - id: '35' - trackingRefs: - - id: DEPARTMENT_5 - dataType: trackingCategories - invoiceTo: - id: '504' - type: customer - '/companies/{companyId}/sync/expenses/transfer-transactions/{transactionId}': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/transactionId' - put: - summary: Create transfer transaction - operationId: create-transfer-transaction - description: "Use the *Create transfer* endpoint to create or update a [transfer transaction](https://docs.codat.io/sync-for-expenses-api#/schemas/TransferTransactionRequest) in the accounting software for a given company's connection. \r\n\r\nTransfers record the movement of money between two bank accounts, or between a bank account and a nominal account. Use them to represent actions such as topping up a debit card account or a balance transfer to another credit card.\r\n\r\nThe `from.amount` and `to.amount` fields are in the native currency of the account.\r\n\r\n### Supported Integrations\r\n| Integration | Supported |\r\n|-----------------------|-----------|\r\n| FreeAgent | Yes |\r\n| QuickBooks Desktop | Yes |\r\n| QuickBooks Online | Yes |\r\n| Xero | Yes |" - tags: - - Transfers - responses: - '200': - description: OK - content: - application/json: - x-speakeasy-usage-example: true - schema: - $ref: '#/components/schemas/TransferTransactionResponse' - examples: - Example 1: + type: Object + displayName: Bank Account + description: An account that bank transactions may be recorded against + properties: + accountName: + type: String + displayName: Name + description: The name of the bank account in the originating system + required: true + validation: + warnings: [] + information: + - field: AccountName + details: 'Needs to be of the format ''{No.}-{Name}''' + currency: + type: String + displayName: Currency + description: The currency of the bank account + required: true + accountNumber: + type: String + displayName: Account Number + description: The account number for the bank account + required: false + nominalCode: + type: String + displayName: Nominal Code + description: The external reference given to each nominal account for a business + required: false + validation: + warnings: [] + information: + - field: NominalCode + details: Bank Account Posting Group with Nominal Account must exist + sortCode: + type: String + displayName: Sort Code + description: The sort code for the bank account + required: false + validation: + warnings: [] + information: + - field: SortCode + details: Must have a length between 0 and 20 characters + iBan: + type: String + displayName: IBAN + description: The international bank account number of the account. Often used when making or receiving international payments + required: false + overdraftLimit: + type: Number + displayName: Overdraft Limit + description: The pre-arranged overdraft limit of the account + required: false + validation: + warnings: [] + information: + - field: OverdraftLimit + details: Default value is 0 + required: true + Exact (Netherlands): value: - syncId: cd937d46-8e41-43a9-9477-a79158ffd98a - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TransferTransactionRequest' - examples: - Create transfer: - value: - description: Sample transfer description - date: '2021-05-21T00:00:00+00:00' - from: - accountRef: - id: 787dfb37-5707-4dc0-8a86-8d74e4cc78ea - amount: 100 - to: - accountRef: - id: 777dfb37-5506-3dc0-6g86-8d34z4cc78ea - amount: 100 - '/companies/{companyId}/sync/expenses/adjustment-transactions': - parameters: - - $ref: '#/components/parameters/companyId' - post: - summary: Create adjustment transaction - operationId: create-adjustment-transaction - description: "Use the *Create adjustment expense* endpoint to create an [adjustment](https://docs.codat.io/sync-for-expenses-api#/schemas/AdjustmentTransactionRequest) in the accounting software for a given company's connection. \n\nAdjustments represent write-offs and transaction alterations, such as foreign exchange adjustments, in the form of a journal entry. \n\n### Supported Integrations\n\n| Integration | Supported |\n|-----------------------|-----------|\n| QuickBooks Desktop | Yes |" - tags: - - Adjustments - responses: - '200': - description: OK - content: - application/json: - x-speakeasy-usage-example: true - schema: - $ref: '#/components/schemas/AdjustmentTransactionResponse' - examples: - Example 1: + type: Object + displayName: Bank Account + description: An account that bank transactions may be recorded against + properties: + accountName: + type: String + displayName: Name + description: The name of the bank account in the originating system + required: true + accountNumber: + type: String + displayName: Account Number + description: The account number for the bank account + required: true + validation: + warnings: + - field: AccountNumber + details: Should not exceed the maximum length of 14 characters if the specified currency is GBP. + information: [] + sortCode: + type: String + displayName: Sort Code + description: The sort code for the bank account + required: false + validation: + warnings: + - field: SortCode + details: Must be 6 characters long if the specified currency is GBP. + - field: SortCode + details: Must be provided if the specified currency is GBP. + information: [] + currency: + type: String + displayName: Currency + description: The currency of the bank account + required: false + nominalCode: + type: String + displayName: Nominal Code + description: The external reference given to each nominal account for a business + required: false + required: true + Exact (UK): value: - syncId: cd937d46-8e41-43a9-9477-a79158ffd98a - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateAdjustmentRequest' - examples: - Create adjustment: - value: - - id: 3357b3df-5f2e-465d-b9ba-226519dbb8f1 - date: '2024-05-21T00:00:00+00:00' - currency: USD - currencyRate: 1 - reference: test reference - lines: - - amount: 50 - accountRef: - id: 80000018-1671793811 - description: debit line - trackingRefs: - - id: 80000003-1674553958 - dataType: trackingCategories - invoiceTo: - id: 80000002-1674552702 - type: customer - - amount: -50 - accountRef: - id: 80000028-1671794219 - description: credit line - trackingRefs: - - id: 80000003-1674553958 - dataType: trackingCategories - '/companies/{companyId}/sync/expenses/reimbursable-expense-transactions': - parameters: - - $ref: '#/components/parameters/companyId' - post: - summary: Create reimbursable expense transaction - operationId: create-reimbursable-expense-transaction - description: "Use the *Create reimbursable expense* endpoint to submit an employee expense claim in the accounting platform for a given company's connection.\r\n\r\n[Reimbursable expense requests](https://docs.codat.io/sync-for-expenses-api#/schemas/ReimbursableExpenseTransactionRequest) are reflected in the accounting software in the form of **Bills** against an employee (who exists as a supplier in the accounting platform).\r\n\r\n### Supported Integrations\r\n| Integration | Supported |\r\n|-----------------------|-----------|\r\n| FreeAgent | Yes |\r\n| QuickBooks Desktop | Yes |\r\n| QuickBooks Online | Yes |\r\n| Oracle NetSuite | Yes |" - tags: - - Reimbursements - responses: - '200': - description: OK - content: - application/json: - x-speakeasy-usage-example: true - schema: - $ref: '#/components/schemas/CreateReimbursableExpenseResponse' - examples: - Example 1: - value: - syncId: cd937d46-8e41-43a9-9477-a79158ffd98a - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReimbursableExpenseTransactionRequest' - examples: - Create reimbursable expense: - value: - - id: 4d7c6929-7770-412b-91bb-44d3bc71d111 - reference: expenses w/c 01/07 - contactRef: - id: '752' - issueDate: '2024-05-21' - dueDate: '2024-05-21' - currency: GBP - currencyRate: 1 - notes: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - lines: - - description: Hotel - netAmount: 100 - taxAmount: 20 - taxRateRef: - id: 23_Bills - accountRef: - id: '35' - trackingRefs: - - id: DEPARTMENT_5 - dataType: trackingCategories - invoiceTo: - id: '504' - type: customer - '/companies/{companyId}/sync/expenses/reimbursable-expense-transactions/{transactionId}': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/transactionId' - put: - summary: Update reimbursable expense transaction - operationId: update-reimbursable-expense-transaction - description: "The *Update reimbursable expense* endpoint updates an existing employee expense claim in the accounting platform for a given company's connection. \r\n\r\nUpdating an existing [reimbursable expense transaction](https://docs.codat.io/sync-for-expenses-api#/schemas/UpdateReimbursableExpenseTransactionRequest) will update the existing **bill** against an employee (who exists as a supplier in the accounting software).\r\n\r\n### Supported Integrations\r\n| Integration | Supported |\r\n|-----------------------|-----------|\r\n| FreeAgent | Yes |\r\n| QuickBooks Online | Yes |\r\n| Oracle NetSuite | Yes |" - tags: - - Reimbursements - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/CreateReimbursableExpenseResponse' - examples: - Example 1: - value: - syncId: cd937d46-8e41-43a9-9477-a79158ffd98a - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateReimbursableExpenseTransactionRequest' - examples: - Update reimbursable expense: - value: - reference: expenses w/c 01/07 - contactRef: - id: '752' - issueDate: '2024-05-21' - dueDate: '2024-05-21' - currency: GBP - currencyRate: 1 - notes: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - lines: - - description: Hotel - netAmount: 100 - taxAmount: 20 - taxRateRef: - id: 23_Bills - accountRef: - id: '35' - trackingRefs: - - id: DEPARTMENT_5 - dataType: trackingCategories - invoiceTo: - id: '504' - type: customer - '/companies/{companyId}/sync/expenses/syncs/{syncId}/transactions/{transactionId}/attachments': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/syncId' - - $ref: '#/components/parameters/transactionId' - post: - summary: Upload attachment - operationId: upload-expense-attachment - x-speakeasy-name-override: upload - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/Attachment' - examples: {} - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - requestBody: - content: - multipart/form-data: - schema: - $ref: '#/components/schemas/AttachmentUpload' - tags: - - Attachments - description: "The *Upload attachment* endpoint uploads an attachment in the accounting software against the given transactionId. \n\n[Expense transactions](https://docs.codat.io/sync-for-expenses-api#/schemas/ExpenseTransaction) represent transactions made with a company debit or credit card. Attachments for `Adjustment` and `Transfer` transaction types are not supported for any integrations.\n\n**Integration-specific behaviour**\n\nEach accounting software supports different file formats and sizes.\n\n| Integration | File size | File extension |Supported transaction type\n|-------------------|-----------|------------------------------------------------------------------------------------------------------------------------------------------------|--------------|\n| **Xero** | 3 MB | 7Z, BMP, CSV, DOC, DOCX, EML, GIF, JPEG, JPG, KEYNOTE, MSG, NUMBERS, ODF, ODS, ODT, PAGES, PDF, PNG, PPT, PPTX, RAR, RTF, TIF, TIFF, TXT, XLS, XLSX, ZIP | All supported types |\n| **QuickBooks Online** | 100 MB | AI, CSV, DOC, DOCX, EPS, GIF, JPEG, JPG, ODS, PAGES, PDF, PNG, RTF, TIF, TXT, XLS, XLSX, XML | `ReimbursableExpenses`, `ExpensePayment`, `ExpenseRefund` |\n| **NetSuite** | 100 MB | BMP, CSV, XLS, XLSX, JSON, PDF, PJPG, PJPEG, PNG, TXT, SVG, TIF, TIFF, DOC, DOCX, ZIP |`ExpensePayment`, `ExpenseRefund` |\n| **Dynamics 365 Business Central** | 350 MB | [No explicit requirements outlined](https://learn.microsoft.com/en-gb/dynamics365/business-central/ui-how-add-link-to-record#to-attach-a-file-to-a-purchase-invoice) for text, image, and video files. | All supported types\n| **QuickBooks Desktop** | NA | Does not support attachment upload | N/A |\n| **FreeAgent** | 5MB | PNG, X-PNG, JPEG, PJG, GIF, X-PDF " - '/companies/{companyId}/data/all': - parameters: - - $ref: '#/components/parameters/companyId' - post: - summary: Refresh all data - operationId: refresh-all-data-types - responses: - '204': - description: No Content - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - description: |- - Refreshes all data types with `fetch on first link` set to `true` for a given company. - - This is an asynchronous operation, and will bring updated data into Codat from the linked integration for you to view. - - [Read more](https://docs.codat.io/core-concepts/data-type-settings) about data type settings and `fetch on first link`. - tags: - - Manage data - '/companies/{companyId}/dataStatus': - parameters: - - $ref: '#/components/parameters/companyId' - get: - summary: Get data status - operationId: get-data-status - description: Get the state of each data type for a company - tags: - - Manage data - responses: - '200': - description: OK - content: - application/json: - schema: - title: Data statuses - x-internal: true - type: object - properties: - accountTransactions: - $ref: '#/components/schemas/DataStatus' - nullable: true - balanceSheet: - $ref: '#/components/schemas/DataStatus' - nullable: true - bankAccounts: - $ref: '#/components/schemas/DataStatus' - nullable: true - bankTransactions: - $ref: '#/components/schemas/DataStatus' - nullable: true - billCreditNotes: - $ref: '#/components/schemas/DataStatus' - nullable: true - billPayments: - $ref: '#/components/schemas/DataStatus' - nullable: true - bills: - $ref: '#/components/schemas/DataStatus' - nullable: true - cashFlowStatement: - $ref: '#/components/schemas/DataStatus' - nullable: true - chartOfAccounts: - $ref: '#/components/schemas/DataStatus' - nullable: true - company: - $ref: '#/components/schemas/DataStatus' - nullable: true - creditNotes: - $ref: '#/components/schemas/DataStatus' - nullable: true - customers: - $ref: '#/components/schemas/DataStatus' - nullable: true - directCosts: - $ref: '#/components/schemas/DataStatus' - nullable: true - directIncomes: - $ref: '#/components/schemas/DataStatus' - nullable: true - invoices: - $ref: '#/components/schemas/DataStatus' - nullable: true - itemReceipts: - $ref: '#/components/schemas/DataStatus' - nullable: true - items: - $ref: '#/components/schemas/DataStatus' - nullable: true - journalEntries: - $ref: '#/components/schemas/DataStatus' - nullable: true - journals: - $ref: '#/components/schemas/DataStatus' - nullable: true - paymentMethods: - $ref: '#/components/schemas/DataStatus' - nullable: true - payments: - $ref: '#/components/schemas/DataStatus' - nullable: true - profitAndLoss: - $ref: '#/components/schemas/DataStatus' - nullable: true - purchaseOrders: - $ref: '#/components/schemas/DataStatus' - nullable: true - salesOrders: - $ref: '#/components/schemas/DataStatus' - nullable: true - suppliers: - $ref: '#/components/schemas/DataStatus' - nullable: true - taxRates: - $ref: '#/components/schemas/DataStatus' - nullable: true - trackingCategories: - $ref: '#/components/schemas/DataStatus' - nullable: true - transfers: - $ref: '#/components/schemas/DataStatus' - nullable: true - banking-accountBalances: - $ref: '#/components/schemas/DataStatus' - nullable: true - banking-accounts: - $ref: '#/components/schemas/DataStatus' - nullable: true - banking-transactionCategories: - $ref: '#/components/schemas/DataStatus' - nullable: true - banking-transactions: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-companyInfo: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-customers: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-disputes: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-locations: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-orders: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-paymentMethods: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-payments: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-productCategories: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-products: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-taxComponents: - $ref: '#/components/schemas/DataStatus' - nullable: true - commerce-transactions: - $ref: '#/components/schemas/DataStatus' - nullable: true - examples: - Example: - value: - accountTransactions: - dataType: accountTransactions - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - balanceSheet: - dataType: balanceSheet - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - bankAccounts: - dataType: bankAccounts - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - bankTransactions: - dataType: bankTransactions - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - billCreditNotes: - dataType: billCreditNotes - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - billPayments: - dataType: billPayments - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - bills: - dataType: bills - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - cashFlowStatement: - dataType: cashFlowStatement - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - chartOfAccounts: - dataType: chartOfAccounts - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - company: - dataType: company - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - creditNotes: - dataType: creditNotes - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - customers: - dataType: customers - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - directCosts: - dataType: directCosts - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - directIncomes: - dataType: directIncomes - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - invoices: - dataType: invoices - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - itemReceipts: - dataType: itemReceipts - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - items: - dataType: items - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - journalEntries: - dataType: journalEntries - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - journals: - dataType: journals - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - paymentMethods: - dataType: paymentMethods - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - payments: - dataType: payments - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - profitAndLoss: - dataType: profitAndLoss - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - purchaseOrders: - dataType: purchaseOrders - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - salesOrders: - dataType: salesOrders - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - suppliers: - dataType: suppliers - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - taxRates: - dataType: taxRates - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - trackingCategories: - dataType: trackingCategories - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - transfers: - dataType: transfers - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - banking-accountBalances: - dataType: banking-accountBalances - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - banking-accounts: - dataType: banking-accounts - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - banking-transactionCategories: - dataType: banking-transactionCategories - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - banking-transactions: - dataType: banking-transactions - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-companyInfo: - dataType: commerce-companyInfo - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-customers: - dataType: commerce-customers - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-disputes: - dataType: commerce-disputes - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-locations: - dataType: commerce-locations - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-orders: - dataType: commerce-orders - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-paymentMethods: - dataType: commerce-paymentMethods - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-payments: - dataType: commerce-payments - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-productCategories: - dataType: commerce-productCategories - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-products: - dataType: commerce-products - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-taxComponents: - dataType: commerce-taxComponents - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - commerce-transactions: - dataType: commerce-transactions - lastSuccessfulSync: '2022-01-01T00:00:00.000Z' - currentStatus: Complete - latestSyncId: d03b6979-eb3b-447a-a27a-13cf457a9f48 - latestSuccessfulSyncId: 6883bba8-514d-423f-ba7f-c38285a80b7f - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - '/companies/{companyId}/data/queue/{dataType}': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/dataType' - post: - summary: Refresh data type - operationId: refresh-data-type - description: |- - Refreshes a given data type for a given company. - - This is an asynchronous operation, and will bring updated data into Codat from the linked integration for you to view. - tags: - - Manage data - parameters: - - schema: - type: string - format: uuid - in: query - name: connectionId - description: 'Optionally, provide a data connection id to only queue pull operations on that connection.' - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/PullOperation' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - '/companies/{companyId}/data/history': - parameters: - - $ref: '#/components/parameters/companyId' - get: - summary: List pull operations - tags: - - Manage data - operationId: list-pull-operations - x-speakeasy-name-override: list-pull-operations - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/PullOperations' - examples: - Example: - value: - results: - - id: 97d60846-f07a-4d42-b5a0-0bdcc6ebf56b - companyId: 4645bd78-8988-45bc-ac9e-67ba5df6e4e5 - connectionId: 51baa045-4836-4317-a42e-3542e991e581 - dataType: invoices - status: Initial - requested: '2022-11-14T11:18:37.2798351Z' - progress: 10 - isCompleted: false - isErrored: false - _links: - current: - href: /companies/17129e41-5389-4f10-ac06-e0a37e47d177/data/history?page=1&pageSize=2 - self: - href: /companies/17129e41-5389-4f10-ac06-e0a37e47d177/data/history - next: - href: /companies/17129e41-5389-4f10-ac06-e0a37e47d177/data/history?page=2&pageSize=2 - pageNumber: 0 - pageSize: 0 - totalResults: 0 - '400': - $ref: '#/components/responses/Malformed-Query' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - description: Gets the pull operation history (datasets) for a given company. - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/pageSize' - - $ref: '#/components/parameters/query' - - $ref: '#/components/parameters/orderBy' - '/companies/{companyId}/data/history/{datasetId}': - parameters: - - $ref: '#/components/parameters/companyId' - - name: datasetId - in: path - required: true - schema: - type: string - format: uuid - description: Unique identifier for the dataset that completed its sync. - description: Unique identifier for the dataset that completed its sync. - get: - summary: Get pull operation - operationId: get-pull-operation - x-speakeasy-name-override: get-pull-operation - tags: - - Manage data - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/PullOperation' - examples: {} - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - description: Retrieve information about a single dataset or pull operation. - '/companies/{companyId}/push': - parameters: - - $ref: '#/components/parameters/companyId' - get: - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/pageSize' - - $ref: '#/components/parameters/query' - - $ref: '#/components/parameters/orderBy' - summary: List push operations - tags: - - Push operations - operationId: list-push-operations - description: List push operation records. - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/PushOperations' - examples: {} - '400': - $ref: '#/components/responses/Malformed-Query' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - '/companies/{companyId}/push/{pushOperationKey}': - parameters: - - $ref: '#/components/parameters/companyId' - - schema: - type: string - format: uuid - name: pushOperationKey - in: path - required: true - description: Push operation key. - get: - summary: Get push operation - tags: - - Push operations - operationId: get-push-operation - description: Retrieve push operation. - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/PushOperation' - examples: {} - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - '/companies/{companyId}/connections/{connectionId}/push/accounts': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/connectionId' - post: - tags: - - Accounts - summary: Create account - parameters: - - $ref: '#/components/parameters/timeoutInMinutes' - - $ref: '#/components/parameters/allowSyncOnPushComplete' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Account/definitions/accountPrototype' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/CreateAccountResponse' - examples: {} - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - description: |- - The *Create account* endpoint creates a new [account](https://docs.codat.io/sync-for-expenses-api#/schemas/Account) for a given company's connection. - - [Accounts](https://docs.codat.io/sync-for-expenses-api#/schemas/Account) are the categories a business uses to record accounting transactions. - - **Integration-specific behaviour** - - Required data may vary by integration. To see what data to post, first call [Get create account model](https://docs.codat.io/sync-for-expenses-api#/operations/get-create-chartOfAccounts-model). - operationId: create-account - '/companies/{companyId}/connections/{connectionId}/options/chartOfAccounts': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/connectionId' - get: - summary: Get create account model - tags: - - Accounts - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/PushOption' - examples: - Exact (Netherlands): + type: Object + displayName: Bank Account + description: An account that bank transactions may be recorded against + properties: + accountName: + type: String + displayName: Name + description: The name of the bank account in the originating system + required: true + accountNumber: + type: String + displayName: Account Number + description: The account number for the bank account + required: true + validation: + warnings: + - field: AccountNumber + details: Should not exceed the maximum length of 14 characters if the specified currency is GBP. + information: [] + sortCode: + type: String + displayName: Sort Code + description: The sort code for the bank account + required: false + validation: + warnings: + - field: SortCode + details: Must be 6 characters long if the specified currency is GBP. + - field: SortCode + details: Must be provided if the specified currency is GBP. + information: [] + currency: + type: String + displayName: Currency + description: The currency of the bank account + required: false + nominalCode: + type: String + displayName: Nominal Code + description: The external reference given to each nominal account for a business + required: false + required: true + FreeAgent: value: type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions + displayName: Bank Account + description: An account that bank transactions may be recorded against properties: - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: true - validation: - warnings: [] - information: - - field: NominalCode - details: Must be provided. - name: + accountName: type: String displayName: Name - description: Name of the account + description: The name of the bank account in the originating system required: true + sortCode: + type: String + displayName: Sort Code + description: The sort code for the bank account + required: false validation: - warnings: [] - information: - - field: Name - details: Must be provided. - fullyQualifiedCategory: + warnings: + - field: SortCode + details: Must have a length between 0 and 8 characters + information: [] + accountNumber: type: String - displayName: Fully Qualified Category - description: The full category of the account e.g. Liability.Current or Income.Revenue + displayName: Account Number + description: The account number for the bank account + required: false + iBan: + type: String + displayName: IBAN + description: The international bank account number of the account. Often used when making or receiving international payments + required: false + currency: + type: String + displayName: Currency + description: The currency of the bank account options: - - value: Asset.Assets.Cash + - value: AED type: String - displayName: Asset.Assets.Cash + displayName: AED required: false - - value: Asset.Assets.Bank + - value: AMD type: String - displayName: Asset.Assets.Bank + displayName: AMD required: false - - value: Asset.Assets.PaymentServices + - value: AOA type: String - displayName: Asset.Assets.PaymentServices + displayName: AOA required: false - - value: Asset.Assets.AccountsReceivable + - value: ARS type: String - displayName: Asset.Assets.AccountsReceivable + displayName: ARS required: false - - value: Liability.EquityAndLiabilities.AccountsPayable + - value: AUD type: String - displayName: Liability.EquityAndLiabilities.AccountsPayable + displayName: AUD required: false - - value: Asset.Assets.VAT + - value: AWG type: String - displayName: Asset.Assets.VAT + displayName: AWG required: false - - value: Liability.EquityAndLiabilities.EmployeesPayable + - value: AZN type: String - displayName: Liability.EquityAndLiabilities.EmployeesPayable + displayName: AZN required: false - - value: Asset.Assets.PrepaidExpenses + - value: BBD type: String - displayName: Asset.Assets.PrepaidExpenses + displayName: BBD required: false - - value: Liability.EquityAndLiabilities.AccruedExpenses + - value: BDT type: String - displayName: Liability.EquityAndLiabilities.AccruedExpenses + displayName: BDT required: false - - value: Liability.EquityAndLiabilities.IncomeTaxesPayable + - value: BGN type: String - displayName: Liability.EquityAndLiabilities.IncomeTaxesPayable + displayName: BGN required: false - - value: Asset.Assets.FixedAssets + - value: BRL type: String - displayName: Asset.Assets.FixedAssets + displayName: BRL required: false - - value: Asset.Assets.OtherAssets + - value: BWP type: String - displayName: Asset.Assets.OtherAssets + displayName: BWP required: false - - value: Asset.Assets.AccumulatedDeprecation + - value: CAD type: String - displayName: Asset.Assets.AccumulatedDeprecation + displayName: CAD required: false - - value: Asset.Assets.Inventory + - value: CHF type: String - displayName: Asset.Assets.Inventory + displayName: CHF required: false - - value: Equity.EquityAndLiabilities.CapitalStock + - value: CLP type: String - displayName: Equity.EquityAndLiabilities.CapitalStock + displayName: CLP required: false - - value: Equity.EquityAndLiabilities.RetainedEarnings + - value: CNY type: String - displayName: Equity.EquityAndLiabilities.RetainedEarnings + displayName: CNY required: false - - value: Liability.EquityAndLiabilities.LongTermDebt + - value: COP type: String - displayName: Liability.EquityAndLiabilities.LongTermDebt + displayName: COP required: false - - value: Liability.EquityAndLiabilities.CurrentPortionOfDebt + - value: CRC type: String - displayName: Liability.EquityAndLiabilities.CurrentPortionOfDebt + displayName: CRC required: false - - value: Unknown.EquityAndLiabilities.Intercompany + - value: CUC type: String - displayName: Unknown.EquityAndLiabilities.Intercompany + displayName: CUC required: false - - value: Unknown.General.General + - value: CUP type: String - displayName: Unknown.General.General + displayName: CUP required: false - - value: Income.NetIncome.Revenue + - value: CZK type: String - displayName: Income.NetIncome.Revenue + displayName: CZK required: false - - value: Expense.NetIncome.CostOfGoods + - value: DKK type: String - displayName: Expense.NetIncome.CostOfGoods + displayName: DKK required: false - - value: Expense.NetIncome.OtherCosts + - value: DOP type: String - displayName: Expense.NetIncome.OtherCosts + displayName: DOP required: false - - value: Expense.NetIncome.SalesGeneralAdministrativeExpenses + - value: EGP type: String - displayName: Expense.NetIncome.SalesGeneralAdministrativeExpenses + displayName: EGP required: false - - value: Expense.NetIncome.DeprecationCosts + - value: EUR type: String - displayName: Expense.NetIncome.DeprecationCosts + displayName: EUR required: false - - value: Expense.NetIncome.ResearchAndDevelopment + - value: FJD type: String - displayName: Expense.NetIncome.ResearchAndDevelopment + displayName: FJD required: false - - value: Expense.NetIncome.EmployeeCosts - type: String - displayName: Expense.NetIncome.EmployeeCosts - required: false - - value: Expense.NetIncome.EmploymentCosts + - value: GBP type: String - displayName: Expense.NetIncome.EmploymentCosts + displayName: GBP required: false - - value: Expense.ExceptionalIncome.ExceptionalCosts + - value: GEL type: String - displayName: Expense.ExceptionalIncome.ExceptionalCosts + displayName: GEL required: false - - value: Income.ExceptionalIncome.ExceptionalIncome + - value: GHS type: String - displayName: Income.ExceptionalIncome.ExceptionalIncome + displayName: GHS required: false - - value: Expense.ExceptionalIncome.IncomeTaxes + - value: GTQ type: String - displayName: Expense.ExceptionalIncome.IncomeTaxes + displayName: GTQ required: false - - value: Income.ExceptionalIncome.InterestIncome + - value: GYD type: String - displayName: Income.ExceptionalIncome.InterestIncome + displayName: GYD required: false - required: true - validation: - warnings: [] - information: - - field: FullyQualifiedCategory - details: Must be provided. - status: - type: String - displayName: Account Status - description: The status of the account - options: - - value: Active + - value: HKD type: String - displayName: Active + displayName: HKD required: false - - value: Pending + - value: HNL type: String - displayName: Pending + displayName: HNL required: false - - value: Unknown + - value: HRK type: String - displayName: Unknown + displayName: HRK required: false - required: true - validation: - warnings: [] - information: - - field: Status - details: Must be provided. - required: true - Exact (UK): - value: - type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions - properties: - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: true - validation: - warnings: [] - information: - - field: NominalCode - details: Must be provided. - name: - type: String - displayName: Name - description: Name of the account - required: true - validation: - warnings: [] - information: - - field: Name - details: Must be provided. - fullyQualifiedCategory: - type: String - displayName: Fully Qualified Category - description: The full category of the account e.g. Liability.Current or Income.Revenue - options: - - value: Asset.Assets.Cash + - value: HUF type: String - displayName: Asset.Assets.Cash + displayName: HUF required: false - - value: Asset.Assets.Bank + - value: IDR type: String - displayName: Asset.Assets.Bank + displayName: IDR required: false - - value: Asset.Assets.PaymentServices + - value: ILS type: String - displayName: Asset.Assets.PaymentServices + displayName: ILS required: false - - value: Asset.Assets.AccountsReceivable + - value: INR type: String - displayName: Asset.Assets.AccountsReceivable + displayName: INR required: false - - value: Liability.EquityAndLiabilities.AccountsPayable + - value: ISK type: String - displayName: Liability.EquityAndLiabilities.AccountsPayable + displayName: ISK required: false - - value: Asset.Assets.VAT + - value: JMD type: String - displayName: Asset.Assets.VAT + displayName: JMD required: false - - value: Liability.EquityAndLiabilities.EmployeesPayable + - value: JPY type: String - displayName: Liability.EquityAndLiabilities.EmployeesPayable + displayName: JPY required: false - - value: Asset.Assets.PrepaidExpenses + - value: KES type: String - displayName: Asset.Assets.PrepaidExpenses + displayName: KES required: false - - value: Liability.EquityAndLiabilities.AccruedExpenses + - value: KRW type: String - displayName: Liability.EquityAndLiabilities.AccruedExpenses + displayName: KRW required: false - - value: Liability.EquityAndLiabilities.IncomeTaxesPayable + - value: KWD type: String - displayName: Liability.EquityAndLiabilities.IncomeTaxesPayable + displayName: KWD required: false - - value: Asset.Assets.FixedAssets + - value: KYD type: String - displayName: Asset.Assets.FixedAssets + displayName: KYD required: false - - value: Asset.Assets.OtherAssets + - value: KZT type: String - displayName: Asset.Assets.OtherAssets + displayName: KZT required: false - - value: Asset.Assets.AccumulatedDeprecation + - value: LAK type: String - displayName: Asset.Assets.AccumulatedDeprecation + displayName: LAK required: false - - value: Asset.Assets.Inventory + - value: LBP type: String - displayName: Asset.Assets.Inventory + displayName: LBP required: false - - value: Equity.EquityAndLiabilities.CapitalStock + - value: LKR type: String - displayName: Equity.EquityAndLiabilities.CapitalStock + displayName: LKR required: false - - value: Equity.EquityAndLiabilities.RetainedEarnings + - value: LTL type: String - displayName: Equity.EquityAndLiabilities.RetainedEarnings + displayName: LTL required: false - - value: Liability.EquityAndLiabilities.LongTermDebt + - value: LVL type: String - displayName: Liability.EquityAndLiabilities.LongTermDebt + displayName: LVL required: false - - value: Liability.EquityAndLiabilities.CurrentPortionOfDebt + - value: MAD type: String - displayName: Liability.EquityAndLiabilities.CurrentPortionOfDebt + displayName: MAD required: false - - value: Unknown.EquityAndLiabilities.Intercompany + - value: MDL type: String - displayName: Unknown.EquityAndLiabilities.Intercompany + displayName: MDL required: false - - value: Unknown.General.General + - value: MGA type: String - displayName: Unknown.General.General + displayName: MGA required: false - - value: Income.NetIncome.Revenue + - value: MUR type: String - displayName: Income.NetIncome.Revenue + displayName: MUR required: false - - value: Expense.NetIncome.CostOfGoods + - value: MVR type: String - displayName: Expense.NetIncome.CostOfGoods + displayName: MVR required: false - - value: Expense.NetIncome.OtherCosts + - value: MWK type: String - displayName: Expense.NetIncome.OtherCosts + displayName: MWK required: false - - value: Expense.NetIncome.SalesGeneralAdministrativeExpenses + - value: MXN type: String - displayName: Expense.NetIncome.SalesGeneralAdministrativeExpenses + displayName: MXN required: false - - value: Expense.NetIncome.DeprecationCosts + - value: MYR type: String - displayName: Expense.NetIncome.DeprecationCosts + displayName: MYR required: false - - value: Expense.NetIncome.ResearchAndDevelopment + - value: MZN type: String - displayName: Expense.NetIncome.ResearchAndDevelopment + displayName: MZN required: false - - value: Expense.NetIncome.EmployeeCosts + - value: NAD type: String - displayName: Expense.NetIncome.EmployeeCosts + displayName: NAD required: false - - value: Expense.NetIncome.EmploymentCosts + - value: NGN type: String - displayName: Expense.NetIncome.EmploymentCosts + displayName: NGN required: false - - value: Expense.ExceptionalIncome.ExceptionalCosts + - value: NOK type: String - displayName: Expense.ExceptionalIncome.ExceptionalCosts + displayName: NOK required: false - - value: Income.ExceptionalIncome.ExceptionalIncome + - value: NPR type: String - displayName: Income.ExceptionalIncome.ExceptionalIncome + displayName: NPR required: false - - value: Expense.ExceptionalIncome.IncomeTaxes + - value: NZD type: String - displayName: Expense.ExceptionalIncome.IncomeTaxes + displayName: NZD required: false - - value: Income.ExceptionalIncome.InterestIncome + - value: OMR type: String - displayName: Income.ExceptionalIncome.InterestIncome + displayName: OMR required: false - required: true - validation: - warnings: [] - information: - - field: FullyQualifiedCategory - details: Must be provided. - status: - type: String - displayName: Account Status - description: The status of the account - options: - - value: Active + - value: PEN type: String - displayName: Active + displayName: PEN required: false - - value: Pending + - value: PHP type: String - displayName: Pending + displayName: PHP required: false - - value: Unknown + - value: PKR type: String - displayName: Unknown + displayName: PKR required: false - required: true - validation: - warnings: [] - information: - - field: Status - details: Must be provided. - required: true - MYOB AccountRight and Essentials: - value: - type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions - properties: - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: true - validation: - warnings: - - field: NominalCode - details: 'If alphanumeric is supported, must be between 1 and 10 characters. Otherwise format is x-xxxx' - information: [] - name: - type: String - displayName: Name - description: Name of the account - required: false - validation: - warnings: - - field: Name - details: Must have a length between 1 and 60 characters - information: [] - description: - type: String - displayName: Description - description: Description of the account - required: false - validation: - warnings: - - field: Description - details: Must have a length between 1 and 255 characters - information: [] - fullyQualifiedCategory: - type: String - displayName: Fully Qualified Category - description: The full category of the account e.g. Liability.Current or Income.Revenue - options: - - value: Asset.Bank + - value: PLN type: String - displayName: Bank + displayName: PLN required: false - - value: Asset.AccountReceivable + - value: QAR type: String - displayName: Accounts Receivable + displayName: QAR required: false - - value: Asset.OtherCurrentAsset + - value: RON type: String - displayName: Other Current Asset + displayName: RON required: false - - value: Asset.FixedAsset + - value: RSD type: String - displayName: Fixed Asset + displayName: RSD required: false - - value: Asset.OtherAsset + - value: RUB type: String - displayName: Other Asset + displayName: RUB required: false - - value: Asset.CashAndBank + - value: RWF type: String - displayName: Cash + displayName: RWF required: false - - value: Asset.Property Plant and Equipment + - value: SAR type: String - displayName: Equipment Machinery + displayName: SAR required: false - - value: Liability.CreditCard + - value: SCR type: String - displayName: Credit Card + displayName: SCR required: false - - value: Liability.AccountsPayable + - value: SEK type: String - displayName: Accounts Payable + displayName: SEK required: false - - value: Liability.OtherCurrentLiability + - value: SGD type: String - displayName: Other Current Liability + displayName: SGD required: false - - value: Liability.LongTermLiability + - value: THB type: String - displayName: Long Term Liability + displayName: THB required: false - - value: Liability.OtherLiability + - value: TND type: String - displayName: Other Liability + displayName: TND required: false - - value: Equity + - value: TRY type: String - displayName: Equity + displayName: TRY required: false - - value: Equity.Equity + - value: TTD type: String - displayName: Retained Earnings + displayName: TTD required: false - - value: Equity.Equity.RetainedEarnings + - value: TWD type: String - displayName: Retained Earnings + displayName: TWD required: false - - value: Equity.Owner's Equity + - value: TZS type: String - displayName: Retained Earnings + displayName: TZS required: false - - value: Income + - value: UAH type: String - displayName: Income + displayName: UAH required: false - - value: OtherIncome + - value: UGX type: String - displayName: Other Income + displayName: UGX required: false - - value: Expense + - value: USD type: String - displayName: Expense + displayName: USD required: false - - value: Expense.Expense + - value: UYU type: String - displayName: Sales Marketing + displayName: UYU required: false - - value: Expense.Expense.Insurance + - value: VEF type: String - displayName: General Administrative + displayName: VEF required: false - - value: Expense.Overhead + - value: VND type: String - displayName: General Administrative + displayName: VND required: false - - value: Expense.Expense.RepairMaintenance + - value: VUV type: String - displayName: Repairs Maintenance + displayName: VUV required: false - - value: OtherExpense + - value: XAF type: String - displayName: Other Expense + displayName: XAF required: false - - value: CostOfSales + - value: XCD type: String - displayName: Cost of Sales + displayName: XCD required: false - - value: Cost Of Goods Sold.Cost of Sales + - value: XOF type: String - displayName: Other + displayName: XOF required: false - required: true - status: - type: String - displayName: Account Status - description: The status of the account - options: - - value: Active + - value: ZAR type: String - displayName: Active + displayName: ZAR required: false - - value: Archived + - value: ZMK type: String - displayName: Archived + displayName: ZMK required: false required: true + balance: + type: Number + displayName: Balance + description: The balance of the bank account + required: false + validation: + warnings: [] + information: + - field: Balance + details: 'The opening balance, in the account currency' + institution: + type: String + displayName: Institution + description: The institution of the bank account + required: false required: true - QuickBooks Desktop: + KashFlow: value: type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions + displayName: Bank Account + description: An account that bank transactions may be recorded against properties: - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: true - validation: - warnings: - - field: NominalCode - details: Max length of 7 characters. - information: [] - name: + accountName: type: String - displayName: Name - description: Name of the account + displayName: Account Name + description: Name of the bank account as it appears in Kashflow. required: true - validation: - warnings: - - field: Name - details: Max length of 31 characters. + balance: + type: Number + displayName: Balance + description: 'The opening balance, in the account currency.' + required: false + currency: + type: String + displayName: Currency + description: The currency of the bank account. + required: true + required: true + QuickBooks Desktop: + value: + type: Object + displayName: Bank Account + description: An account that bank transactions may be recorded against + properties: + nominalCode: + type: String + displayName: Nominal Code + description: The external reference given to each nominal account for a business + required: true + validation: + warnings: + - field: NominalCode + details: Max length of 7 characters. information: [] - description: + accountName: type: String - displayName: Description - description: Description of the account - required: false + displayName: Name + description: The name of the bank account in the originating system + required: true validation: warnings: - - field: Description - details: Max length of 200 characters. + - field: AccountName + details: Max length of 31 characters. information: [] currency: type: String displayName: Currency - description: The currency of the account + description: The currency of the bank account required: false validation: warnings: @@ -2956,84 +1964,98 @@ paths: - field: Currency details: Must be a three letter ISO code that matches an existing active currency in the QuickBooks Desktop company - field: Currency - details: Can only be set if the Quickbooks Desktop company has Multicurrency enabled. + details: Can only be set if the QuickBooks Desktop company has Multicurrency enabled. information: - field: Currency details: 'If not set, will default to the base currency of the QuickBooks Desktop company' - fullyQualifiedCategory: - type: String - displayName: Fully Qualified Category - description: The full category of the account e.g. Liability.Current or Income.Revenue - options: - - value: Asset.AccountsReceivable - type: String - displayName: Account Receivable - required: false - - value: Asset.FixedAsset - type: String - displayName: Fixed Asset - required: false - - value: Asset.OtherCurrentAsset - type: String - displayName: Other Current Asset - required: false - - value: Asset.OtherAsset - type: String - displayName: Other Asset - required: false - - value: Income.Income - type: String - displayName: Income - required: false - - value: Income.OtherIncome - type: String - displayName: Other Income - required: false - - value: Liability.AccountsPayable - type: String - displayName: Accounts Payable - required: false - - value: Liability.CreditCard - type: String - displayName: Credit Card - required: false - - value: Liability.LongTermLiability - type: String - displayName: Long Term Liability - required: false - - value: Liability.OtherCurrentLiability - type: String - displayName: Other Current Liability - required: false - - value: Liability.CostOfGoodsSold - type: String - displayName: Cost Of Goods Sold - required: false - - value: Equity.Equity - type: String - displayName: Equity - required: false - - value: Expense.Expense - type: String - displayName: Expense - required: false - - value: Expense.OtherExpense - type: String - displayName: Other Expense - required: false - required: true - currentBalance: + balance: type: Number - displayName: Current Balance - description: The current balance in the account + displayName: Balance + description: The balance of the bank account required: false required: true QuickBooks Online Sandbox: value: type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions + displayName: Bank Account + description: An account that bank transactions may be recorded against + properties: + accountName: + type: String + displayName: Account Name + description: Name of account as it appears in the chart of accounts or general ledger. + required: true + accountNumber: + type: String + displayName: Account Number + description: User-defined account number to help the user in identifying the account within the chart-of-accounts and in deciding what should be posted to the account. + required: true + currency: + type: String + displayName: Currency + description: Currency of the bank account. + required: true + required: true + Sage Business Cloud Accounting: + value: + type: Object + displayName: Bank Account + description: An account that bank transactions may be recorded against properties: + accountName: + type: String + displayName: Name + description: The name of the bank account in the originating system + required: true + validation: + warnings: [] + information: + - field: AccountName + details: Must be provided. + - field: AccountName + details: Should not be longer than 50 characters. + currency: + type: String + displayName: Currency + description: The currency of the bank account + required: true + validation: + warnings: [] + information: + - field: Currency + details: Must be provided. + - field: Currency + details: Must match the company's base currency. + sortCode: + type: String + displayName: Sort Code + description: The sort code for the bank account + required: false + validation: + warnings: [] + information: + - field: SortCode + details: Should be a 6 digit number. + accountNumber: + type: String + displayName: Account Number + description: The account number for the bank account + required: false + validation: + warnings: [] + information: + - field: AccountNumber + details: Should not be longer than 25 characters. + iBan: + type: String + displayName: IBAN + description: The international bank account number of the account. Often used when making or receiving international payments + required: false + validation: + warnings: [] + information: + - field: IBan + details: Should be in the international bank account number format. nominalCode: type: String displayName: Nominal Code @@ -3043,8749 +2065,2123 @@ paths: warnings: [] information: - field: NominalCode - details: If included must have a length between 1 and 7 characters - name: + details: Should be a number between 1 and 99999999. + required: true + Sandbox: + value: + type: Object + displayName: Bank Account + description: An account that bank transactions may be recorded against + properties: + accountName: type: String displayName: Name - description: Name of the account + description: The name of the bank account in the originating system + required: true + accountType: + type: String + displayName: Account Type + description: The type of account + required: true + nominalCode: + type: String + displayName: Nominal Code + description: The external reference given to each nominal account for a business + required: true + sortCode: + type: String + displayName: Sort Code + description: The sort code for the bank account + required: true + accountNumber: + type: String + displayName: Account Number + description: The account number for the bank account + required: true + iBan: + type: String + displayName: IBAN + description: The international bank account number of the account. Often used when making or receiving international payments required: true - validation: - warnings: - - field: Name - details: Must have a length between 1 and 100 characters - information: [] currency: type: String displayName: Currency - description: The currency of the account - required: false - validation: - warnings: [] - information: - - field: Currency - details: When not specified company base currency will be used - fullyQualifiedCategory: + description: The currency of the bank account + required: true + balance: + type: Number + displayName: Balance + description: The balance of the bank account + required: true + availableBalance: + type: Number + displayName: Available Balance + description: The available balance of the bank account + required: true + overdraftLimit: + type: Number + displayName: Overdraft Limit + description: The pre-arranged overdraft limit of the account + required: true + institution: type: String - displayName: Fully Qualified Category - description: The full category of the account e.g. Liability.Current or Income.Revenue - options: - - value: Asset.Bank.CashOnHand - type: String - displayName: Cash On Hand - required: false - - value: Asset.Bank.Checking - type: String - displayName: Checking - required: false - - value: Asset.Bank.MoneyMarket - type: String - displayName: Money Market - required: false - - value: Asset.Bank.RentsHeldInTrust - type: String - displayName: Rents Held In Trust - required: false - - value: Asset.Bank.Savings - type: String - displayName: Savings - required: false - - value: Asset.Bank.TrustAccounts - type: String - displayName: Trust Accounts - required: false - - value: Asset.Bank.CashAndCashEquivalents - type: String - displayName: Cash And Cash Equivalents - required: false - - value: Asset.Bank.OtherEarmarkedBankAccounts - type: String - displayName: Other Earmarked Bank Accounts - required: false - - value: Asset.Other Current Asset.AllowanceForBadDebts - type: String - displayName: Allowance For Bad Debts - required: false - - value: Asset.Other Current Asset.DevelopmentCosts - type: String - displayName: Development Costs - required: false - - value: Asset.Other Current Asset.EmployeeCashAdvances - type: String - displayName: Employee Cash Advances - required: false - - value: Asset.Other Current Asset.OtherCurrentAssets - type: String - displayName: Other Current Assets - required: false - - value: Asset.Other Current Asset.Inventory - type: String - displayName: Inventory - required: false - - value: Asset.Other Current Asset.Investment_MortgageRealEstateLoans - type: String - displayName: Investment Mortgage Real Estate Loans - required: false - - value: Asset.Other Current Asset.Investment_Other - type: String - displayName: Investment Other - required: false - - value: Asset.Other Current Asset.Investment_TaxExemptSecurities - type: String - displayName: Investment Tax Exempt Securities - required: false - - value: Asset.Other Current Asset.Investment_USGovernmentObligations - type: String - displayName: Investment US Government Obligations - required: false - - value: Asset.Other Current Asset.LoansToOfficers - type: String - displayName: Loans To Officers - required: false - - value: Asset.Other Current Asset.LoansToOthers - type: String - displayName: Loans To Others - required: false - - value: Asset.Other Current Asset.LoansToStockholders - type: String - displayName: Loans To Stockholders - required: false - - value: Asset.Other Current Asset.PrepaidExpenses - type: String - displayName: Prepaid Expenses - required: false - - value: Asset.Other Current Asset.Retainage - type: String - displayName: Retainage - required: false - - value: Asset.Other Current Asset.UndepositedFunds - type: String - displayName: Undeposited Funds - required: false - - value: Asset.Other Current Asset.AssetsAvailableForSale - type: String - displayName: Assets Available For Sale - required: false - - value: Asset.Other Current Asset.BalWithGovtAuthorities - type: String - displayName: Balance With Govt Authorities - required: false - - value: Asset.Other Current Asset.CalledUpShareCapitalNotPaid - type: String - displayName: Called Up Share Capital Not Paid - required: false - - value: Asset.Other Current Asset.ExpenditureAuthorisationsAndLettersOfCredit - type: String - displayName: Expenditure Authorisations And Letters Of Credit - required: false - - value: Asset.Other Current Asset.GlobalTaxDeferred - type: String - displayName: Global Tax Deferred - required: false - - value: Asset.Other Current Asset.GlobalTaxRefund - type: String - displayName: Global Tax Refund - required: false - - value: Asset.Other Current Asset.InternalTransfers - type: String - displayName: Internal Transfers - required: false - - value: Asset.Other Current Asset.OtherConsumables - type: String - displayName: Other Consumables - required: false - - value: Asset.Other Current Asset.ProvisionsCurrentAssets - type: String - displayName: Provisions Current Assets - required: false - - value: Asset.Other Current Asset.ShortTermInvestmentsInRelatedParties - type: String - displayName: Short Term Investments In Related Parties - required: false - - value: Asset.Other Current Asset.ShortTermLoansAndAdvancesToRelatedParties - type: String - displayName: Short Term Loans And Advances To Related Parties - required: false - - value: Asset.Other Current Asset.TradeAndOtherReceivables - type: String - displayName: Trade And Other Receivables - required: false - - value: Asset.Fixed Asset.AccumulatedDepletion - type: String - displayName: Accumulated Depletion - required: false - - value: Asset.Fixed Asset.AccumulatedDepreciation - type: String - displayName: Accumulated Depreciation - required: false - - value: Asset.Fixed Asset.DepletableAssets - type: String - displayName: Depletable Assets - required: false - - value: Asset.Fixed Asset.FixedAssetComputers - type: String - displayName: Fixed Asset Computers - required: false - - value: Asset.Fixed Asset.FixedAssetCopiers - type: String - displayName: Fixed Asset Copiers - required: false - - value: Asset.Fixed Asset.FixedAssetFurniture - type: String - displayName: Fixed Asset Furniture - required: false - - value: Asset.Fixed Asset.FixedAssetPhone - type: String - displayName: Fixed Asset Phone - required: false - - value: Asset.Fixed Asset.FixedAssetPhotoVideo - type: String - displayName: Fixed Asset Photo Video - required: false - - value: Asset.Fixed Asset.FixedAssetSoftware - type: String - displayName: Fixed Asset Software - required: false - - value: Asset.Fixed Asset.FixedAssetOtherToolsEquipment - type: String - displayName: Fixed Asset Other Tools Equipment - required: false - - value: Asset.Fixed Asset.FurnitureAndFixtures - type: String - displayName: Furniture And Fixtures - required: false - - value: Asset.Fixed Asset.Land - type: String - displayName: Land - required: false - - value: Asset.Fixed Asset.LeaseholdImprovements - type: String - displayName: Leasehold Improvements - required: false - - value: Asset.Fixed Asset.OtherFixedAssets - type: String - displayName: Other Fixed Assets - required: false - - value: Asset.Fixed Asset.AccumulatedAmortization - type: String - displayName: Accumulated Amortization - required: false - - value: Asset.Fixed Asset.Buildings - type: String - displayName: Buildings - required: false - - value: Asset.Fixed Asset.IntangibleAssets - type: String - displayName: Intangible Assets - required: false - - value: Asset.Fixed Asset.MachineryAndEquipment - type: String - displayName: Machinery And Equipment - required: false - - value: Asset.Fixed Asset.Vehicles - type: String - displayName: Vehicles - required: false - - value: Asset.Fixed Asset.AssetsInCourseOfConstruction - type: String - displayName: Assets In Course Of Construction - required: false - - value: Asset.Fixed Asset.CapitalWip - type: String - displayName: Capital Wip - required: false - - value: Asset.Fixed Asset.CumulativeDepreciationOnIntangibleAssets - type: String - displayName: Cumulative Depreciation On Intangible Assets - required: false - - value: Asset.Fixed Asset.IntangibleAssetsUnderDevelopment - type: String - displayName: Intangible Assets Under Development - required: false - - value: Asset.Fixed Asset.LandAsset - type: String - displayName: Land Asset - required: false - - value: Asset.Fixed Asset.NonCurrentAssets - type: String - displayName: Non Current Assets - required: false - - value: Asset.Fixed Asset.ParticipatingInterests - type: String - displayName: Participating Interests - required: false - - value: Asset.Fixed Asset.ProvisionsFixedAssets - type: String - displayName: Provisions Fixed Assets - required: false - - value: Asset.Other Asset.LeaseBuyout - type: String - displayName: Lease Buyout - required: false - - value: Asset.Other Asset.OtherLongTermAssets - type: String - displayName: Other Long Term Assets - required: false - - value: Asset.Other Asset.SecurityDeposits - type: String - displayName: Security Deposits - required: false - - value: Asset.Other Asset.AccumulatedAmortizationOfOtherAssets - type: String - displayName: Accumulated Amortization Of Other Assets - required: false - - value: Asset.Other Asset.Goodwill - type: String - displayName: Goodwill - required: false - - value: Asset.Other Asset.Licenses - type: String - displayName: Licenses - required: false - - value: Asset.Other Asset.OrganizationalCosts - type: String - displayName: Organizational Costs - required: false - - value: Asset.Other Asset.AssetsHeldForSale - type: String - displayName: Assets Held For Sale - required: false - - value: Asset.Other Asset.AvailableForSaleFinancialAssets - type: String - displayName: Available For Sale Financial Assets - required: false - - value: Asset.Other Asset.DeferredTax - type: String - displayName: Deferred Tax - required: false - - value: Asset.Other Asset.Investments - type: String - displayName: Investments - required: false - - value: Asset.Other Asset.LongTermInvestments - type: String - displayName: Long Term Investments - required: false - - value: Asset.Other Asset.LongTermLoansAndAdvancesToRelatedParties - type: String - displayName: Long Term Loans And Advances To Related Parties - required: false - - value: Asset.Other Asset.OtherIntangibleAssets - type: String - displayName: Other Intangible Assets - required: false - - value: Asset.Other Asset.OtherLongTermInvestments - type: String - displayName: Other Long Term Investments - required: false - - value: Asset.Other Asset.OtherLongTermLoansAndAdvances - type: String - displayName: Other Long Term Loans And Advances - required: false - - value: Asset.Other Asset.PrepaymentsAndAccruedIncome - type: String - displayName: Prepayments And Accrued Income - required: false - - value: Asset.Other Asset.ProvisionsNonCurrentAssets - type: String - displayName: Provisions Non-Current Assets - required: false - - value: Asset.Accounts Receivable.AccountsReceivable - type: String - displayName: Accounts Receivable - required: false - - value: Expense.Expense.AdvertisingPromotional - type: String - displayName: Advertising/Promotional - required: false - - value: Expense.Expense.BadDebts - type: String - displayName: Bad Debts - required: false - - value: Expense.Expense.BankCharges - type: String - displayName: Bank Charges - required: false - - value: Expense.Expense.CharitableContributions - type: String - displayName: Charitable Contributions - required: false - - value: Expense.Expense.CommissionsAndFees - type: String - displayName: Commissions And Fees - required: false - - value: Expense.Expense.Entertainment - type: String - displayName: Entertainment - required: false - - value: Expense.Expense.EntertainmentMeals - type: String - displayName: Entertainment Meals - required: false - - value: Expense.Expense.EquipmentRental - type: String - displayName: Equipment Rental - required: false - - value: Expense.Expense.FinanceCosts - type: String - displayName: Finance Costs - required: false - - value: Expense.Expense.GlobalTaxExpense - type: String - displayName: Global Tax Expense - required: false - - value: Expense.Expense.Insurance - type: String - displayName: Insurance - required: false - - value: Expense.Expense.InterestPaid - type: String - displayName: Interest Paid - required: false - - value: Expense.Expense.LegalProfessionalFees - type: String - displayName: Legal And Professional Fees - required: false - - value: Expense.Expense.OfficeExpenses - type: String - displayName: Office Expenses - required: false - - value: Expense.Expense.OfficeGeneralAdministrativeExpenses - type: String - displayName: Office/General Administrative Expenses - required: false - - value: Expense.Expense.OtherBusinessExpenses - type: String - displayName: Other Business Expenses - required: false - - value: Expense.Expense.OtherMiscellaneousServiceCost - type: String - displayName: Other Miscellaneous Service Cost - required: false - - value: Expense.Expense.PromotionalMeals - type: String - displayName: Promotional Meals - required: false - - value: Expense.Expense.RentOrLeaseOfBuildings - type: String - displayName: Rent Or Lease Of Buildings - required: false - - value: Expense.Expense.RepairMaintenance - type: String - displayName: Repair And Maintenance - required: false - - value: Expense.Expense.ShippingFreightDelivery - type: String - displayName: 'Shipping, Freight And Delivery' - required: false - - value: Expense.Expense.SuppliesMaterials - type: String - displayName: Supplies And Materials - required: false - - value: Expense.Expense.Travel - type: String - displayName: Travel - required: false - - value: Expense.Expense.TravelMeals - type: String - displayName: Travel Meals - required: false - - value: Expense.Expense.Utilities - type: String - displayName: Utilities - required: false - - value: Expense.Expense.Auto - type: String - displayName: Auto - required: false - - value: Expense.Expense.CostOfLabor - type: String - displayName: Cost Of Labor - required: false - - value: Expense.Expense.DuesSubscriptions - type: String - displayName: Dues And Subscriptions - required: false - - value: Expense.Expense.PayrollExpenses - type: String - displayName: Payroll Expenses - required: false - - value: Expense.Expense.TaxesPaid - type: String - displayName: Taxes Paid - required: false - - value: Expense.Expense.UnappliedCashBillPaymentExpense - type: String - displayName: Unapplied Cash Bill Payment Expense - required: false - - value: Expense.Expense.Utilities - type: String - displayName: Utilities - required: false - - value: Expense.Expense.AmortizationExpense - type: String - displayName: Amortization Expense - required: false - - value: Expense.Expense.AppropriationsToDepreciation - type: String - displayName: Appropriations To Depreciation - required: false - - value: Expense.Expense.BorrowingCost - type: String - displayName: Borrowing Cost - required: false - - value: Expense.Expense.CommissionsAndFees - type: String - displayName: Commissions And Fees - required: false - - value: Expense.Expense.DistributionCosts - type: String - displayName: Distribution Costs - required: false - - value: Expense.Expense.ExternalServices - type: String - displayName: External Services - required: false - - value: Expense.Expense.ExtraordinaryCharges - type: String - displayName: Extraordinary Charges - required: false - - value: Expense.Expense.IncomeTaxExpense - type: String - displayName: Income Tax Expense - required: false - - value: Expense.Expense.LossOnDiscontinuedOperationsNetOfTax - type: String - displayName: Loss On Discontinued Operations Net Of Tax - required: false - - value: Expense.Expense.ManagementCompensation - type: String - displayName: Management Compensation - required: false - - value: Expense.Expense.OtherCurrentOperatingCharges - type: String - displayName: Other Current Operating Charges - required: false - - value: Expense.Expense.OtherExternalServices - type: String - displayName: Other External Services - required: false - - value: Expense.Expense.OtherRentalCosts - type: String - displayName: Other Rental Costs - required: false - - value: Expense.Expense.OtherSellingExpenses - type: String - displayName: Other Selling Expenses - required: false - - value: Expense.Expense.ProjectStudiesSurveysAssessments - type: String - displayName: Project Studies Surveys Assessments - required: false - - value: Expense.Expense.PurchasesRebates - type: String - displayName: Purchases Rebates - required: false - - value: Expense.Expense.ShippingAndDeliveryExpense - type: String - displayName: Shipping And Delivery Expense - required: false - - value: Expense.Expense.StaffCosts - type: String - displayName: Staff Costs - required: false - - value: Expense.Expense.Sundry - type: String - displayName: Sundry - required: false - - value: Expense.Expense.TravelExpensesGeneralAndAdminExpenses - type: String - displayName: Travel Expenses General And Admin Expenses - required: false - - value: Expense.Expense.TravelExpensesSellingExpense - type: String - displayName: Travel Expenses Selling Expense - required: false - - value: Expense.Other Expense.Depreciation - type: String - displayName: Depreciation - required: false - - value: Expense.Other Expense.ExchangeGainOrLoss - type: String - displayName: Exchange Gain Or Loss - required: false - - value: Expense.Other Expense.OtherMiscellaneousExpense - type: String - displayName: Other Miscellaneous Expense - required: false - - value: Expense.Other Expense.PenaltiesSettlements - type: String - displayName: Penalties And Settlements - required: false - - value: Expense.Other Expense.Amortization - type: String - displayName: Amortization - required: false - - value: Expense.Other Expense.GasAndFuel - type: String - displayName: Gas And Fuel - required: false - - value: Expense.Other Expense.HomeOffice - type: String - displayName: Home Office - required: false - - value: Expense.Other Expense.HomeOwnerRentalInsurance - type: String - displayName: Home Owner Rental Insurance - required: false - - value: Expense.Other Expense.OtherHomeOfficeExpenses - type: String - displayName: Other Home Office Expenses - required: false - - value: Expense.Other Expense.MortgageInterest - type: String - displayName: Mortgage Interest - required: false - - value: Expense.Other Expense.RentAndLease - type: String - displayName: Rent And Lease - required: false - - value: Expense.Other Expense.RepairsAndMaintenance - type: String - displayName: Repairs And Maintenance - required: false - - value: Expense.Other Expense.ParkingAndTolls - type: String - displayName: Parking And Tolls - required: false - - value: Expense.Other Expense.Vehicle - type: String - displayName: Vehicle - required: false - - value: Expense.Other Expense.VehicleInsurance - type: String - displayName: Vehicle Insurance - required: false - - value: Expense.Other Expense.VehicleLease - type: String - displayName: Vehicle Lease - required: false - - value: Expense.Other Expense.VehicleLoanInterest - type: String - displayName: Vehicle Loan Interest - required: false - - value: Expense.Other Expense.VehicleLoan - type: String - displayName: Vehicle Loan - required: false - - value: Expense.Other Expense.VehicleRegistration - type: String - displayName: Vehicle Registration - required: false - - value: Expense.Other Expense.VehicleRepairs - type: String - displayName: Vehicle Repairs - required: false - - value: Expense.Other Expense.OtherVehicleExpenses - type: String - displayName: Other Vehicle Expenses - required: false - - value: Expense.Other Expense.Utilities - type: String - displayName: Utilities - required: false - - value: Expense.Other Expense.WashAndRoadServices - type: String - displayName: Wash And Road Services - required: false - - value: Expense.Other Expense.DeferredTaxExpense - type: String - displayName: Deferred Tax Expense - required: false - - value: Expense.Other Expense.Depletion - type: String - displayName: Depletion - required: false - - value: Expense.Other Expense.ExceptionalItems - type: String - displayName: Exceptional Items - required: false - - value: Expense.Other Expense.ExtraordinaryItems - type: String - displayName: Extraordinary Items - required: false - - value: Expense.Other Expense.IncomeTaxOtherExpense - type: String - displayName: Income Tax Other Expense - required: false - - value: Expense.Other Expense.MatCredit - type: String - displayName: Mat Credit - required: false - - value: Expense.Other Expense.PriorPeriodItems - type: String - displayName: Prior Period Items - required: false - - value: Expense.Other Expense.TaxRoundoffGainOrLoss - type: String - displayName: Tax Roundoff Gain Or Loss - required: false - - value: Expense.Cost of Goods Sold.EquipmentRentalCos - type: String - displayName: Equipment Rental - COS - required: false - - value: Expense.Cost of Goods Sold.OtherCostsOfServiceCos - type: String - displayName: Other Costs Of Sales - COS - required: false - - value: Expense.Cost of Goods Sold.ShippingFreightDeliveryCos - type: String - displayName: 'Shipping, Freight And Delivery - COS' - required: false - - value: Expense.Cost of Goods Sold.SuppliesMaterialsCogs - type: String - displayName: Supplies And Materials - COS - required: false - - value: Expense.Cost of Goods Sold.CostOfLaborCos - type: String - displayName: Cost Of Labor - COS - required: false - - value: Expense.Cost of Goods Sold.CostOfSales - type: String - displayName: Cost Of Sales - required: false - - value: Expense.Cost of Goods Sold.FreightAndDeliveryCost - type: String - displayName: Freight And Delivery Cost - required: false - - value: Income.Income.NonProfitIncome - type: String - displayName: Non Profit Income - required: false - - value: Income.Income.OtherPrimaryIncome - type: String - displayName: Other Primary Income - required: false - - value: Income.Income.SalesOfProductIncome - type: String - displayName: Sales Of ProductIncome - required: false - - value: Income.Income.ServiceFeeIncome - type: String - displayName: Service Fee Income - required: false - - value: Income.Income.DiscountsRefundsGiven - type: String - displayName: Discounts Refunds Given - required: false - - value: Income.Income.UnappliedCashPaymentIncome - type: String - displayName: Unapplied Cash Payment Income - required: false - - value: Income.Income.CashReceiptIncome - type: String - displayName: Cash Receipt Income - required: false - - value: Income.Income.OperatingGrants - type: String - displayName: Operating Grants - required: false - - value: Income.Income.OtherCurrentOperatingIncome - type: String - displayName: Other Current Operating Income - required: false - - value: Income.Income.OwnWorkCapitalized - type: String - displayName: Own Work Capitalized - required: false - - value: Income.Income.RevenueGeneral - type: String - displayName: Revenue General - required: false - - value: Income.Income.SalesRetail - type: String - displayName: Sales Retail - required: false - - value: Income.Income.SalesWholesale - type: String - displayName: Sales Wholesale - required: false - - value: Income.Income.SavingsByTaxScheme - type: String - displayName: Savings By Tax Scheme - required: false - - value: Income.Other Income.DividendIncome - type: String - displayName: Dividend Income - required: false - - value: Income.Other Income.InterestEarned - type: String - displayName: Interest Earned - required: false - - value: Income.Other Income.OtherInvestmentIncome - type: String - displayName: Other Investment Income - required: false - - value: Income.Other Income.OtherMiscellaneousIncome - type: String - displayName: Other Miscellaneous Income - required: false - - value: Income.Other Income.TaxExemptInterest - type: String - displayName: Tax Exempt Interest - required: false - - value: Income.Other Income.GainLossOnSaleOfFixedAssets - type: String - displayName: Gain Loss On Sale Of Fixed Assets - required: false - - value: Income.Other Income.GainLossOnSaleOfInvestments - type: String - displayName: Gain Loss On Sale Of Investments - required: false - - value: Income.Other Income.LossOnDisposalOfAssets - type: String - displayName: Loss On Disposal Of Assets - required: false - - value: Income.Other Income.OtherOperatingIncome - type: String - displayName: Other Operating Income - required: false - - value: Income.Other Income.UnrealisedLossOnSecuritiesNetOfTax - type: String - displayName: Unrealised Loss On Securities Net Of Tax - required: false - - value: Liability.Accounts Payable.AccountsPayable - type: String - displayName: Accounts Payable - required: false - - value: Liability.Accounts Payable.OutstandingDuesMicroSmallEnterprise - type: String - displayName: Outstanding Dues Micro Small Enterprise - required: false - - value: Liability.Accounts Payable.OutstandingDuesOtherThanMicroSmallEnterprise - type: String - displayName: Outstanding Dues Other Than Micro Small Enterprise - required: false - - value: Liability.Credit Card.CreditCard - type: String - displayName: Credit Card - required: false - - value: Liability.Long Term Liability.NotesPayable - type: String - displayName: Notes Payable - required: false - - value: Liability.Long Term Liability.OtherLongTermLiabilities - type: String - displayName: Other Long Term Liabilities - required: false - - value: Liability.Long Term Liability.ShareholderNotesPayable - type: String - displayName: Shareholder Notes Payable - required: false - - value: Liability.Long Term Liability.AccrualsAndDeferredIncome - type: String - displayName: Accruals And Deferred Income - required: false - - value: Liability.Long Term Liability.AccruedLongLermLiabilities - type: String - displayName: Accrued Long Lerm Liabilities - required: false - - value: Liability.Long Term Liability.AccruedVacationPayable - type: String - displayName: Accrued Vacation Payable - required: false - - value: Liability.Long Term Liability.BankLoans - type: String - displayName: Bank Loans - required: false - - value: Liability.Long Term Liability.DebtsRelatedToParticipatingInterests - type: String - displayName: Debts Related To Participating Interests - required: false - - value: Liability.Long Term Liability.DeferredTaxLiabilities - type: String - displayName: Deferred Tax Liabilities - required: false - - value: Liability.Long Term Liability.GovernmentAndOtherPublicAuthorities - type: String - displayName: Government And Other Public Authorities - required: false - - value: Liability.Long Term Liability.GroupAndAssociates - type: String - displayName: Group And Associates - required: false - - value: Liability.Long Term Liability.LiabilitiesRelatedToAssetsHeldForSale - type: String - displayName: Liabilities Related To Assets Held For Sale - required: false - - value: Liability.Long Term Liability.LongTermBorrowings - type: String - displayName: Long Term Borrowings - required: false - - value: Liability.Long Term Liability.LongTermDebit - type: String - displayName: Long Term Debit - required: false - - value: Liability.Long Term Liability.LongTermEmployeeBenefitObligations - type: String - displayName: Long Term Employee Benefit Obligations - required: false - - value: Liability.Long Term Liability.ObligationsUnderFinanceLeases - type: String - displayName: Obligations Under Finance Leases - required: false - - value: Liability.Long Term Liability.OtherLongTermProvisions - type: String - displayName: Other Long Term Provisions - required: false - - value: Liability.Long Term Liability.ProvisionForLiabilities - type: String - displayName: Provision For Liabilities - required: false - - value: Liability.Long Term Liability.ProvisionsNonCurrentLiabilities - type: String - displayName: Provisions Non Current Liabilities - required: false - - value: Liability.Long Term Liability.StaffAndRelatedLongTermLiabilityAccounts - type: String - displayName: Staff And Related Long Term Liability Accounts - required: false - - value: Liability.Other Current Liability.DirectDepositPayable - type: String - displayName: Direct Deposit Payable - required: false - - value: Liability.Other Current Liability.LineOfCredit - type: String - displayName: Line Of Credit - required: false - - value: Liability.Other Current Liability.LoanPayable - type: String - displayName: Loan Payable - required: false - - value: Liability.Other Current Liability.GlobalTaxPayable - type: String - displayName: Global Tax Payable - required: false - - value: Liability.Other Current Liability.GlobalTaxSuspense - type: String - displayName: Global Tax Suspense - required: false - - value: Liability.Other Current Liability.OtherCurrentLiabilities - type: String - displayName: Other Current Liabilities - required: false - - value: Liability.Other Current Liability.PayrollClearing - type: String - displayName: Payroll Clearing - required: false - - value: Liability.Other Current Liability.PayrollTaxPayable - type: String - displayName: Payroll Tax Payable - required: false - - value: Liability.Other Current Liability.PrepaidExpensesPayable - type: String - displayName: Prepaid Expenses Payable - required: false - - value: Liability.Other Current Liability.RentsInTrustLiability - type: String - displayName: Rents In Trust Liability - required: false - - value: Liability.Other Current Liability.TrustAccountsLiabilities - type: String - displayName: Trust Accounts Liabilities - required: false - - value: Liability.Other Current Liability.FederalIncomeTaxPayable - type: String - displayName: Federal Income Tax Payable - required: false - - value: Liability.Other Current Liability.InsurancePayable - type: String - displayName: Insurance Payable - required: false - - value: Liability.Other Current Liability.SalesTaxPayable - type: String - displayName: Sales Tax Payable - required: false - - value: Liability.Other Current Liability.StateLocalIncomeTaxPayable - type: String - displayName: State Local Income Tax Payable - required: false - - value: Liability.Other Current Liability.AccruedLiabilities - type: String - displayName: Accrued Liabilities - required: false - - value: Liability.Other Current Liability.CurrentLiabilities - type: String - displayName: Current Liabilities - required: false - - value: Liability.Other Current Liability.CurrentPortionEmployeeBenefitsObligations - type: String - displayName: Current Portion EmployeeBenefits Obligations - required: false - - value: Liability.Other Current Liability.CurrentPortionOfObligationsUnderFinanceLeases - type: String - displayName: Current Portion Of Obligations Under Finance Leases - required: false - - value: Liability.Other Current Liability.CurrentTaxLiability - type: String - displayName: Current Tax Liability - required: false - - value: Liability.Other Current Liability.DividendsPayable - type: String - displayName: Dividends Payable - required: false - - value: Liability.Other Current Liability.DutiesAndTaxes - type: String - displayName: Duties And Taxes - required: false - - value: Liability.Other Current Liability.InterestPayables - type: String - displayName: Interest Payables - required: false - - value: Liability.Other Current Liability.ProvisionForWarrantyObligations - type: String - displayName: Provision For Warranty Obligations - required: false - - value: Liability.Other Current Liability.ProvisionsCurrentLiabilities - type: String - displayName: Provisions Current Liabilities - required: false - - value: Liability.Other Current Liability.ShortTermBorrowings - type: String - displayName: Short Term Borrowings - required: false - - value: Liability.Other Current Liability.SocialSecurityAgencies - type: String - displayName: Social Security Agencies - required: false - - value: Liability.Other Current Liability.StaffAndRelatedLiabilityAccounts - type: String - displayName: Staff And Related Liability Accounts - required: false - - value: Liability.Other Current Liability.SundryDebtorsAndCreditors - type: String - displayName: Sundry Debtors And Creditors - required: false - - value: Liability.Other Current Liability.TradeAndOtherPayables - type: String - displayName: Trade And Other Payables - required: false - - value: Equity.Equity.OpeningBalanceEquity - type: String - displayName: Opening Balance Equity - required: false - - value: Equity.Equity.PartnersEquity - type: String - displayName: Partners Equity - required: false - - value: Equity.Equity.RetainedEarnings - type: String - displayName: Retained Earnings - required: false - - value: Equity.Equity.AccumulatedAdjustment - type: String - displayName: Accumulated Adjustment - required: false - - value: Equity.Equity.OwnersEquity - type: String - displayName: Owners Equity - required: false - - value: Equity.Equity.PaidInCapitalOrSurplus - type: String - displayName: Paid In Capital Or Surplus - required: false - - value: Equity.Equity.PartnerContributions - type: String - displayName: Partner Contributions - required: false - - value: Equity.Equity.PartnerDistributions - type: String - displayName: Partner Distributions - required: false - - value: Equity.Equity.PreferredStock - type: String - displayName: Preferred Stock - required: false - - value: Equity.Equity.CommonStock - type: String - displayName: Common Stock - required: false - - value: Equity.Equity.TreasuryStock - type: String - displayName: Treasury Stock - required: false - - value: Equity.Equity.EstimatedTaxes - type: String - displayName: Estimated Taxes - required: false - - value: Equity.Equity.Healthcare - type: String - displayName: Healthcare - required: false - - value: Equity.Equity.PersonalIncome - type: String - displayName: Personal Income - required: false - - value: Equity.Equity.PersonalExpense - type: String - displayName: Personal Expense - required: false - - value: Equity.Equity.AccumulatedOtherComprehensiveIncome - type: String - displayName: Accumulated Other Comprehensive Income - required: false - - value: Equity.Equity.CalledUpShareCapital - type: String - displayName: Called Up Share Capital - required: false - - value: Equity.Equity.CapitalReserves - type: String - displayName: Capital Reserves - required: false - - value: Equity.Equity.DividendDisbursed - type: String - displayName: Dividend Disbursed - required: false - - value: Equity.Equity.EquityInEarningsOfSubsiduaries - type: String - displayName: Equity In Earnings Of Subsiduaries - required: false - - value: Equity.Equity.InvestmentGrants - type: String - displayName: Investment Grants - required: false - - value: Equity.Equity.MoneyReceivedAgainstShareWarrants - type: String - displayName: Money Received Against Share Warrants - required: false - - value: Equity.Equity.OtherFreeReserves - type: String - displayName: Other Free Reserves - required: false - - value: Equity.Equity.ShareApplicationMoneyPendingAllotment - type: String - displayName: Share Application Money Pending Allotment - required: false - - value: Equity.Equity.ShareCapital - type: String - displayName: Share Capital - required: false - - value: Equity.Equity.Funds - type: String - displayName: Funds - required: false - required: true - required: true - QuickBooks Online: - value: - type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions - properties: - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: false - validation: - warnings: [] - information: - - field: NominalCode - details: If included must have a length between 1 and 7 characters - name: - type: String - displayName: Name - description: Name of the account - required: true - validation: - warnings: - - field: Name - details: Must have a length between 1 and 100 characters - information: [] - currency: - type: String - displayName: Currency - description: The currency of the account - required: false - validation: - warnings: [] - information: - - field: Currency - details: When not specified company base currency will be used - fullyQualifiedCategory: - type: String - displayName: Fully Qualified Category - description: The full category of the account e.g. Liability.Current or Income.Revenue - options: - - value: Asset.Bank.CashOnHand - type: String - displayName: Cash On Hand - required: false - - value: Asset.Bank.Checking - type: String - displayName: Checking - required: false - - value: Asset.Bank.MoneyMarket - type: String - displayName: Money Market - required: false - - value: Asset.Bank.RentsHeldInTrust - type: String - displayName: Rents Held In Trust - required: false - - value: Asset.Bank.Savings - type: String - displayName: Savings - required: false - - value: Asset.Bank.TrustAccounts - type: String - displayName: Trust Accounts - required: false - - value: Asset.Bank.CashAndCashEquivalents - type: String - displayName: Cash And Cash Equivalents - required: false - - value: Asset.Bank.OtherEarmarkedBankAccounts - type: String - displayName: Other Earmarked Bank Accounts - required: false - - value: Asset.Other Current Asset.AllowanceForBadDebts - type: String - displayName: Allowance For Bad Debts - required: false - - value: Asset.Other Current Asset.DevelopmentCosts - type: String - displayName: Development Costs - required: false - - value: Asset.Other Current Asset.EmployeeCashAdvances - type: String - displayName: Employee Cash Advances - required: false - - value: Asset.Other Current Asset.OtherCurrentAssets - type: String - displayName: Other Current Assets - required: false - - value: Asset.Other Current Asset.Inventory - type: String - displayName: Inventory - required: false - - value: Asset.Other Current Asset.Investment_MortgageRealEstateLoans - type: String - displayName: Investment Mortgage Real Estate Loans - required: false - - value: Asset.Other Current Asset.Investment_Other - type: String - displayName: Investment Other - required: false - - value: Asset.Other Current Asset.Investment_TaxExemptSecurities - type: String - displayName: Investment Tax Exempt Securities - required: false - - value: Asset.Other Current Asset.Investment_USGovernmentObligations - type: String - displayName: Investment US Government Obligations - required: false - - value: Asset.Other Current Asset.LoansToOfficers - type: String - displayName: Loans To Officers - required: false - - value: Asset.Other Current Asset.LoansToOthers - type: String - displayName: Loans To Others - required: false - - value: Asset.Other Current Asset.LoansToStockholders - type: String - displayName: Loans To Stockholders - required: false - - value: Asset.Other Current Asset.PrepaidExpenses - type: String - displayName: Prepaid Expenses - required: false - - value: Asset.Other Current Asset.Retainage - type: String - displayName: Retainage - required: false - - value: Asset.Other Current Asset.UndepositedFunds - type: String - displayName: Undeposited Funds - required: false - - value: Asset.Other Current Asset.AssetsAvailableForSale - type: String - displayName: Assets Available For Sale - required: false - - value: Asset.Other Current Asset.BalWithGovtAuthorities - type: String - displayName: Balance With Govt Authorities - required: false - - value: Asset.Other Current Asset.CalledUpShareCapitalNotPaid - type: String - displayName: Called Up Share Capital Not Paid - required: false - - value: Asset.Other Current Asset.ExpenditureAuthorisationsAndLettersOfCredit - type: String - displayName: Expenditure Authorisations And Letters Of Credit - required: false - - value: Asset.Other Current Asset.GlobalTaxDeferred - type: String - displayName: Global Tax Deferred - required: false - - value: Asset.Other Current Asset.GlobalTaxRefund - type: String - displayName: Global Tax Refund - required: false - - value: Asset.Other Current Asset.InternalTransfers - type: String - displayName: Internal Transfers - required: false - - value: Asset.Other Current Asset.OtherConsumables - type: String - displayName: Other Consumables - required: false - - value: Asset.Other Current Asset.ProvisionsCurrentAssets - type: String - displayName: Provisions Current Assets - required: false - - value: Asset.Other Current Asset.ShortTermInvestmentsInRelatedParties - type: String - displayName: Short Term Investments In Related Parties - required: false - - value: Asset.Other Current Asset.ShortTermLoansAndAdvancesToRelatedParties - type: String - displayName: Short Term Loans And Advances To Related Parties - required: false - - value: Asset.Other Current Asset.TradeAndOtherReceivables - type: String - displayName: Trade And Other Receivables - required: false - - value: Asset.Fixed Asset.AccumulatedDepletion - type: String - displayName: Accumulated Depletion - required: false - - value: Asset.Fixed Asset.AccumulatedDepreciation - type: String - displayName: Accumulated Depreciation - required: false - - value: Asset.Fixed Asset.DepletableAssets - type: String - displayName: Depletable Assets - required: false - - value: Asset.Fixed Asset.FixedAssetComputers - type: String - displayName: Fixed Asset Computers - required: false - - value: Asset.Fixed Asset.FixedAssetCopiers - type: String - displayName: Fixed Asset Copiers - required: false - - value: Asset.Fixed Asset.FixedAssetFurniture - type: String - displayName: Fixed Asset Furniture - required: false - - value: Asset.Fixed Asset.FixedAssetPhone - type: String - displayName: Fixed Asset Phone - required: false - - value: Asset.Fixed Asset.FixedAssetPhotoVideo - type: String - displayName: Fixed Asset Photo Video - required: false - - value: Asset.Fixed Asset.FixedAssetSoftware - type: String - displayName: Fixed Asset Software - required: false - - value: Asset.Fixed Asset.FixedAssetOtherToolsEquipment - type: String - displayName: Fixed Asset Other Tools Equipment - required: false - - value: Asset.Fixed Asset.FurnitureAndFixtures - type: String - displayName: Furniture And Fixtures - required: false - - value: Asset.Fixed Asset.Land - type: String - displayName: Land - required: false - - value: Asset.Fixed Asset.LeaseholdImprovements - type: String - displayName: Leasehold Improvements - required: false - - value: Asset.Fixed Asset.OtherFixedAssets - type: String - displayName: Other Fixed Assets - required: false - - value: Asset.Fixed Asset.AccumulatedAmortization - type: String - displayName: Accumulated Amortization - required: false - - value: Asset.Fixed Asset.Buildings - type: String - displayName: Buildings - required: false - - value: Asset.Fixed Asset.IntangibleAssets - type: String - displayName: Intangible Assets - required: false - - value: Asset.Fixed Asset.MachineryAndEquipment - type: String - displayName: Machinery And Equipment - required: false - - value: Asset.Fixed Asset.Vehicles - type: String - displayName: Vehicles - required: false - - value: Asset.Fixed Asset.AssetsInCourseOfConstruction - type: String - displayName: Assets In Course Of Construction - required: false - - value: Asset.Fixed Asset.CapitalWip - type: String - displayName: Capital Wip - required: false - - value: Asset.Fixed Asset.CumulativeDepreciationOnIntangibleAssets - type: String - displayName: Cumulative Depreciation On Intangible Assets - required: false - - value: Asset.Fixed Asset.IntangibleAssetsUnderDevelopment - type: String - displayName: Intangible Assets Under Development - required: false - - value: Asset.Fixed Asset.LandAsset - type: String - displayName: Land Asset - required: false - - value: Asset.Fixed Asset.NonCurrentAssets - type: String - displayName: Non Current Assets - required: false - - value: Asset.Fixed Asset.ParticipatingInterests - type: String - displayName: Participating Interests - required: false - - value: Asset.Fixed Asset.ProvisionsFixedAssets - type: String - displayName: Provisions Fixed Assets - required: false - - value: Asset.Other Asset.LeaseBuyout - type: String - displayName: Lease Buyout - required: false - - value: Asset.Other Asset.OtherLongTermAssets - type: String - displayName: Other Long Term Assets - required: false - - value: Asset.Other Asset.SecurityDeposits - type: String - displayName: Security Deposits - required: false - - value: Asset.Other Asset.AccumulatedAmortizationOfOtherAssets - type: String - displayName: Accumulated Amortization Of Other Assets - required: false - - value: Asset.Other Asset.Goodwill - type: String - displayName: Goodwill - required: false - - value: Asset.Other Asset.Licenses - type: String - displayName: Licenses - required: false - - value: Asset.Other Asset.OrganizationalCosts - type: String - displayName: Organizational Costs - required: false - - value: Asset.Other Asset.AssetsHeldForSale - type: String - displayName: Assets Held For Sale - required: false - - value: Asset.Other Asset.AvailableForSaleFinancialAssets - type: String - displayName: Available For Sale Financial Assets - required: false - - value: Asset.Other Asset.DeferredTax - type: String - displayName: Deferred Tax - required: false - - value: Asset.Other Asset.Investments - type: String - displayName: Investments - required: false - - value: Asset.Other Asset.LongTermInvestments - type: String - displayName: Long Term Investments - required: false - - value: Asset.Other Asset.LongTermLoansAndAdvancesToRelatedParties - type: String - displayName: Long Term Loans And Advances To Related Parties - required: false - - value: Asset.Other Asset.OtherIntangibleAssets - type: String - displayName: Other Intangible Assets - required: false - - value: Asset.Other Asset.OtherLongTermInvestments - type: String - displayName: Other Long Term Investments - required: false - - value: Asset.Other Asset.OtherLongTermLoansAndAdvances - type: String - displayName: Other Long Term Loans And Advances - required: false - - value: Asset.Other Asset.PrepaymentsAndAccruedIncome - type: String - displayName: Prepayments And Accrued Income - required: false - - value: Asset.Other Asset.ProvisionsNonCurrentAssets - type: String - displayName: Provisions Non-Current Assets - required: false - - value: Asset.Accounts Receivable.AccountsReceivable - type: String - displayName: Accounts Receivable - required: false - - value: Expense.Expense.AdvertisingPromotional - type: String - displayName: Advertising/Promotional - required: false - - value: Expense.Expense.BadDebts - type: String - displayName: Bad Debts - required: false - - value: Expense.Expense.BankCharges - type: String - displayName: Bank Charges - required: false - - value: Expense.Expense.CharitableContributions - type: String - displayName: Charitable Contributions - required: false - - value: Expense.Expense.CommissionsAndFees - type: String - displayName: Commissions And Fees - required: false - - value: Expense.Expense.Entertainment - type: String - displayName: Entertainment - required: false - - value: Expense.Expense.EntertainmentMeals - type: String - displayName: Entertainment Meals - required: false - - value: Expense.Expense.EquipmentRental - type: String - displayName: Equipment Rental - required: false - - value: Expense.Expense.FinanceCosts - type: String - displayName: Finance Costs - required: false - - value: Expense.Expense.GlobalTaxExpense - type: String - displayName: Global Tax Expense - required: false - - value: Expense.Expense.Insurance - type: String - displayName: Insurance - required: false - - value: Expense.Expense.InterestPaid - type: String - displayName: Interest Paid - required: false - - value: Expense.Expense.LegalProfessionalFees - type: String - displayName: Legal And Professional Fees - required: false - - value: Expense.Expense.OfficeExpenses - type: String - displayName: Office Expenses - required: false - - value: Expense.Expense.OfficeGeneralAdministrativeExpenses - type: String - displayName: Office/General Administrative Expenses - required: false - - value: Expense.Expense.OtherBusinessExpenses - type: String - displayName: Other Business Expenses - required: false - - value: Expense.Expense.OtherMiscellaneousServiceCost - type: String - displayName: Other Miscellaneous Service Cost - required: false - - value: Expense.Expense.PromotionalMeals - type: String - displayName: Promotional Meals - required: false - - value: Expense.Expense.RentOrLeaseOfBuildings - type: String - displayName: Rent Or Lease Of Buildings - required: false - - value: Expense.Expense.RepairMaintenance - type: String - displayName: Repair And Maintenance - required: false - - value: Expense.Expense.ShippingFreightDelivery - type: String - displayName: 'Shipping, Freight And Delivery' - required: false - - value: Expense.Expense.SuppliesMaterials - type: String - displayName: Supplies And Materials - required: false - - value: Expense.Expense.Travel - type: String - displayName: Travel - required: false - - value: Expense.Expense.TravelMeals - type: String - displayName: Travel Meals - required: false - - value: Expense.Expense.Utilities - type: String - displayName: Utilities - required: false - - value: Expense.Expense.Auto - type: String - displayName: Auto - required: false - - value: Expense.Expense.CostOfLabor - type: String - displayName: Cost Of Labor - required: false - - value: Expense.Expense.DuesSubscriptions - type: String - displayName: Dues And Subscriptions - required: false - - value: Expense.Expense.PayrollExpenses - type: String - displayName: Payroll Expenses - required: false - - value: Expense.Expense.TaxesPaid - type: String - displayName: Taxes Paid - required: false - - value: Expense.Expense.UnappliedCashBillPaymentExpense - type: String - displayName: Unapplied Cash Bill Payment Expense - required: false - - value: Expense.Expense.Utilities - type: String - displayName: Utilities - required: false - - value: Expense.Expense.AmortizationExpense - type: String - displayName: Amortization Expense - required: false - - value: Expense.Expense.AppropriationsToDepreciation - type: String - displayName: Appropriations To Depreciation - required: false - - value: Expense.Expense.BorrowingCost - type: String - displayName: Borrowing Cost - required: false - - value: Expense.Expense.CommissionsAndFees - type: String - displayName: Commissions And Fees - required: false - - value: Expense.Expense.DistributionCosts - type: String - displayName: Distribution Costs - required: false - - value: Expense.Expense.ExternalServices - type: String - displayName: External Services - required: false - - value: Expense.Expense.ExtraordinaryCharges - type: String - displayName: Extraordinary Charges - required: false - - value: Expense.Expense.IncomeTaxExpense - type: String - displayName: Income Tax Expense - required: false - - value: Expense.Expense.LossOnDiscontinuedOperationsNetOfTax - type: String - displayName: Loss On Discontinued Operations Net Of Tax - required: false - - value: Expense.Expense.ManagementCompensation - type: String - displayName: Management Compensation - required: false - - value: Expense.Expense.OtherCurrentOperatingCharges - type: String - displayName: Other Current Operating Charges - required: false - - value: Expense.Expense.OtherExternalServices - type: String - displayName: Other External Services - required: false - - value: Expense.Expense.OtherRentalCosts - type: String - displayName: Other Rental Costs - required: false - - value: Expense.Expense.OtherSellingExpenses - type: String - displayName: Other Selling Expenses - required: false - - value: Expense.Expense.ProjectStudiesSurveysAssessments - type: String - displayName: Project Studies Surveys Assessments - required: false - - value: Expense.Expense.PurchasesRebates - type: String - displayName: Purchases Rebates - required: false - - value: Expense.Expense.ShippingAndDeliveryExpense - type: String - displayName: Shipping And Delivery Expense - required: false - - value: Expense.Expense.StaffCosts - type: String - displayName: Staff Costs - required: false - - value: Expense.Expense.Sundry - type: String - displayName: Sundry - required: false - - value: Expense.Expense.TravelExpensesGeneralAndAdminExpenses - type: String - displayName: Travel Expenses General And Admin Expenses - required: false - - value: Expense.Expense.TravelExpensesSellingExpense - type: String - displayName: Travel Expenses Selling Expense - required: false - - value: Expense.Other Expense.Depreciation - type: String - displayName: Depreciation - required: false - - value: Expense.Other Expense.ExchangeGainOrLoss - type: String - displayName: Exchange Gain Or Loss - required: false - - value: Expense.Other Expense.OtherMiscellaneousExpense - type: String - displayName: Other Miscellaneous Expense - required: false - - value: Expense.Other Expense.PenaltiesSettlements - type: String - displayName: Penalties And Settlements - required: false - - value: Expense.Other Expense.Amortization - type: String - displayName: Amortization - required: false - - value: Expense.Other Expense.GasAndFuel - type: String - displayName: Gas And Fuel - required: false - - value: Expense.Other Expense.HomeOffice - type: String - displayName: Home Office - required: false - - value: Expense.Other Expense.HomeOwnerRentalInsurance - type: String - displayName: Home Owner Rental Insurance - required: false - - value: Expense.Other Expense.OtherHomeOfficeExpenses - type: String - displayName: Other Home Office Expenses - required: false - - value: Expense.Other Expense.MortgageInterest - type: String - displayName: Mortgage Interest - required: false - - value: Expense.Other Expense.RentAndLease - type: String - displayName: Rent And Lease - required: false - - value: Expense.Other Expense.RepairsAndMaintenance - type: String - displayName: Repairs And Maintenance - required: false - - value: Expense.Other Expense.ParkingAndTolls - type: String - displayName: Parking And Tolls - required: false - - value: Expense.Other Expense.Vehicle - type: String - displayName: Vehicle - required: false - - value: Expense.Other Expense.VehicleInsurance - type: String - displayName: Vehicle Insurance - required: false - - value: Expense.Other Expense.VehicleLease - type: String - displayName: Vehicle Lease - required: false - - value: Expense.Other Expense.VehicleLoanInterest - type: String - displayName: Vehicle Loan Interest - required: false - - value: Expense.Other Expense.VehicleLoan - type: String - displayName: Vehicle Loan - required: false - - value: Expense.Other Expense.VehicleRegistration - type: String - displayName: Vehicle Registration - required: false - - value: Expense.Other Expense.VehicleRepairs - type: String - displayName: Vehicle Repairs - required: false - - value: Expense.Other Expense.OtherVehicleExpenses - type: String - displayName: Other Vehicle Expenses - required: false - - value: Expense.Other Expense.Utilities - type: String - displayName: Utilities - required: false - - value: Expense.Other Expense.WashAndRoadServices - type: String - displayName: Wash And Road Services - required: false - - value: Expense.Other Expense.DeferredTaxExpense - type: String - displayName: Deferred Tax Expense - required: false - - value: Expense.Other Expense.Depletion - type: String - displayName: Depletion - required: false - - value: Expense.Other Expense.ExceptionalItems - type: String - displayName: Exceptional Items - required: false - - value: Expense.Other Expense.ExtraordinaryItems - type: String - displayName: Extraordinary Items - required: false - - value: Expense.Other Expense.IncomeTaxOtherExpense - type: String - displayName: Income Tax Other Expense - required: false - - value: Expense.Other Expense.MatCredit - type: String - displayName: Mat Credit - required: false - - value: Expense.Other Expense.PriorPeriodItems - type: String - displayName: Prior Period Items - required: false - - value: Expense.Other Expense.TaxRoundoffGainOrLoss - type: String - displayName: Tax Roundoff Gain Or Loss - required: false - - value: Expense.Cost of Goods Sold.EquipmentRentalCos - type: String - displayName: Equipment Rental - COS - required: false - - value: Expense.Cost of Goods Sold.OtherCostsOfServiceCos - type: String - displayName: Other Costs Of Sales - COS - required: false - - value: Expense.Cost of Goods Sold.ShippingFreightDeliveryCos - type: String - displayName: 'Shipping, Freight And Delivery - COS' - required: false - - value: Expense.Cost of Goods Sold.SuppliesMaterialsCogs - type: String - displayName: Supplies And Materials - COS - required: false - - value: Expense.Cost of Goods Sold.CostOfLaborCos - type: String - displayName: Cost Of Labor - COS - required: false - - value: Expense.Cost of Goods Sold.CostOfSales - type: String - displayName: Cost Of Sales - required: false - - value: Expense.Cost of Goods Sold.FreightAndDeliveryCost - type: String - displayName: Freight And Delivery Cost - required: false - - value: Income.Income.NonProfitIncome - type: String - displayName: Non Profit Income - required: false - - value: Income.Income.OtherPrimaryIncome - type: String - displayName: Other Primary Income - required: false - - value: Income.Income.SalesOfProductIncome - type: String - displayName: Sales Of ProductIncome - required: false - - value: Income.Income.ServiceFeeIncome - type: String - displayName: Service Fee Income - required: false - - value: Income.Income.DiscountsRefundsGiven - type: String - displayName: Discounts Refunds Given - required: false - - value: Income.Income.UnappliedCashPaymentIncome - type: String - displayName: Unapplied Cash Payment Income - required: false - - value: Income.Income.CashReceiptIncome - type: String - displayName: Cash Receipt Income - required: false - - value: Income.Income.OperatingGrants - type: String - displayName: Operating Grants - required: false - - value: Income.Income.OtherCurrentOperatingIncome - type: String - displayName: Other Current Operating Income - required: false - - value: Income.Income.OwnWorkCapitalized - type: String - displayName: Own Work Capitalized - required: false - - value: Income.Income.RevenueGeneral - type: String - displayName: Revenue General - required: false - - value: Income.Income.SalesRetail - type: String - displayName: Sales Retail - required: false - - value: Income.Income.SalesWholesale - type: String - displayName: Sales Wholesale - required: false - - value: Income.Income.SavingsByTaxScheme - type: String - displayName: Savings By Tax Scheme - required: false - - value: Income.Other Income.DividendIncome - type: String - displayName: Dividend Income - required: false - - value: Income.Other Income.InterestEarned - type: String - displayName: Interest Earned - required: false - - value: Income.Other Income.OtherInvestmentIncome - type: String - displayName: Other Investment Income - required: false - - value: Income.Other Income.OtherMiscellaneousIncome - type: String - displayName: Other Miscellaneous Income - required: false - - value: Income.Other Income.TaxExemptInterest - type: String - displayName: Tax Exempt Interest - required: false - - value: Income.Other Income.GainLossOnSaleOfFixedAssets - type: String - displayName: Gain Loss On Sale Of Fixed Assets - required: false - - value: Income.Other Income.GainLossOnSaleOfInvestments - type: String - displayName: Gain Loss On Sale Of Investments - required: false - - value: Income.Other Income.LossOnDisposalOfAssets - type: String - displayName: Loss On Disposal Of Assets - required: false - - value: Income.Other Income.OtherOperatingIncome - type: String - displayName: Other Operating Income - required: false - - value: Income.Other Income.UnrealisedLossOnSecuritiesNetOfTax - type: String - displayName: Unrealised Loss On Securities Net Of Tax - required: false - - value: Liability.Accounts Payable.AccountsPayable - type: String - displayName: Accounts Payable - required: false - - value: Liability.Accounts Payable.OutstandingDuesMicroSmallEnterprise - type: String - displayName: Outstanding Dues Micro Small Enterprise - required: false - - value: Liability.Accounts Payable.OutstandingDuesOtherThanMicroSmallEnterprise - type: String - displayName: Outstanding Dues Other Than Micro Small Enterprise - required: false - - value: Liability.Credit Card.CreditCard - type: String - displayName: Credit Card - required: false - - value: Liability.Long Term Liability.NotesPayable - type: String - displayName: Notes Payable - required: false - - value: Liability.Long Term Liability.OtherLongTermLiabilities - type: String - displayName: Other Long Term Liabilities - required: false - - value: Liability.Long Term Liability.ShareholderNotesPayable - type: String - displayName: Shareholder Notes Payable - required: false - - value: Liability.Long Term Liability.AccrualsAndDeferredIncome - type: String - displayName: Accruals And Deferred Income - required: false - - value: Liability.Long Term Liability.AccruedLongLermLiabilities - type: String - displayName: Accrued Long Lerm Liabilities - required: false - - value: Liability.Long Term Liability.AccruedVacationPayable - type: String - displayName: Accrued Vacation Payable - required: false - - value: Liability.Long Term Liability.BankLoans - type: String - displayName: Bank Loans - required: false - - value: Liability.Long Term Liability.DebtsRelatedToParticipatingInterests - type: String - displayName: Debts Related To Participating Interests - required: false - - value: Liability.Long Term Liability.DeferredTaxLiabilities - type: String - displayName: Deferred Tax Liabilities - required: false - - value: Liability.Long Term Liability.GovernmentAndOtherPublicAuthorities - type: String - displayName: Government And Other Public Authorities - required: false - - value: Liability.Long Term Liability.GroupAndAssociates - type: String - displayName: Group And Associates - required: false - - value: Liability.Long Term Liability.LiabilitiesRelatedToAssetsHeldForSale - type: String - displayName: Liabilities Related To Assets Held For Sale - required: false - - value: Liability.Long Term Liability.LongTermBorrowings - type: String - displayName: Long Term Borrowings - required: false - - value: Liability.Long Term Liability.LongTermDebit - type: String - displayName: Long Term Debit - required: false - - value: Liability.Long Term Liability.LongTermEmployeeBenefitObligations - type: String - displayName: Long Term Employee Benefit Obligations - required: false - - value: Liability.Long Term Liability.ObligationsUnderFinanceLeases - type: String - displayName: Obligations Under Finance Leases - required: false - - value: Liability.Long Term Liability.OtherLongTermProvisions - type: String - displayName: Other Long Term Provisions - required: false - - value: Liability.Long Term Liability.ProvisionForLiabilities - type: String - displayName: Provision For Liabilities - required: false - - value: Liability.Long Term Liability.ProvisionsNonCurrentLiabilities - type: String - displayName: Provisions Non Current Liabilities - required: false - - value: Liability.Long Term Liability.StaffAndRelatedLongTermLiabilityAccounts - type: String - displayName: Staff And Related Long Term Liability Accounts - required: false - - value: Liability.Other Current Liability.DirectDepositPayable - type: String - displayName: Direct Deposit Payable - required: false - - value: Liability.Other Current Liability.LineOfCredit - type: String - displayName: Line Of Credit - required: false - - value: Liability.Other Current Liability.LoanPayable - type: String - displayName: Loan Payable - required: false - - value: Liability.Other Current Liability.GlobalTaxPayable - type: String - displayName: Global Tax Payable - required: false - - value: Liability.Other Current Liability.GlobalTaxSuspense - type: String - displayName: Global Tax Suspense - required: false - - value: Liability.Other Current Liability.OtherCurrentLiabilities - type: String - displayName: Other Current Liabilities - required: false - - value: Liability.Other Current Liability.PayrollClearing - type: String - displayName: Payroll Clearing - required: false - - value: Liability.Other Current Liability.PayrollTaxPayable - type: String - displayName: Payroll Tax Payable - required: false - - value: Liability.Other Current Liability.PrepaidExpensesPayable - type: String - displayName: Prepaid Expenses Payable - required: false - - value: Liability.Other Current Liability.RentsInTrustLiability - type: String - displayName: Rents In Trust Liability - required: false - - value: Liability.Other Current Liability.TrustAccountsLiabilities - type: String - displayName: Trust Accounts Liabilities - required: false - - value: Liability.Other Current Liability.FederalIncomeTaxPayable - type: String - displayName: Federal Income Tax Payable - required: false - - value: Liability.Other Current Liability.InsurancePayable - type: String - displayName: Insurance Payable - required: false - - value: Liability.Other Current Liability.SalesTaxPayable - type: String - displayName: Sales Tax Payable - required: false - - value: Liability.Other Current Liability.StateLocalIncomeTaxPayable - type: String - displayName: State Local Income Tax Payable - required: false - - value: Liability.Other Current Liability.AccruedLiabilities - type: String - displayName: Accrued Liabilities - required: false - - value: Liability.Other Current Liability.CurrentLiabilities - type: String - displayName: Current Liabilities - required: false - - value: Liability.Other Current Liability.CurrentPortionEmployeeBenefitsObligations - type: String - displayName: Current Portion EmployeeBenefits Obligations - required: false - - value: Liability.Other Current Liability.CurrentPortionOfObligationsUnderFinanceLeases - type: String - displayName: Current Portion Of Obligations Under Finance Leases - required: false - - value: Liability.Other Current Liability.CurrentTaxLiability - type: String - displayName: Current Tax Liability - required: false - - value: Liability.Other Current Liability.DividendsPayable - type: String - displayName: Dividends Payable - required: false - - value: Liability.Other Current Liability.DutiesAndTaxes - type: String - displayName: Duties And Taxes - required: false - - value: Liability.Other Current Liability.InterestPayables - type: String - displayName: Interest Payables - required: false - - value: Liability.Other Current Liability.ProvisionForWarrantyObligations - type: String - displayName: Provision For Warranty Obligations - required: false - - value: Liability.Other Current Liability.ProvisionsCurrentLiabilities - type: String - displayName: Provisions Current Liabilities - required: false - - value: Liability.Other Current Liability.ShortTermBorrowings - type: String - displayName: Short Term Borrowings - required: false - - value: Liability.Other Current Liability.SocialSecurityAgencies - type: String - displayName: Social Security Agencies - required: false - - value: Liability.Other Current Liability.StaffAndRelatedLiabilityAccounts - type: String - displayName: Staff And Related Liability Accounts - required: false - - value: Liability.Other Current Liability.SundryDebtorsAndCreditors - type: String - displayName: Sundry Debtors And Creditors - required: false - - value: Liability.Other Current Liability.TradeAndOtherPayables - type: String - displayName: Trade And Other Payables - required: false - - value: Equity.Equity.OpeningBalanceEquity - type: String - displayName: Opening Balance Equity - required: false - - value: Equity.Equity.PartnersEquity - type: String - displayName: Partners Equity - required: false - - value: Equity.Equity.RetainedEarnings - type: String - displayName: Retained Earnings - required: false - - value: Equity.Equity.AccumulatedAdjustment - type: String - displayName: Accumulated Adjustment - required: false - - value: Equity.Equity.OwnersEquity - type: String - displayName: Owners Equity - required: false - - value: Equity.Equity.PaidInCapitalOrSurplus - type: String - displayName: Paid In Capital Or Surplus - required: false - - value: Equity.Equity.PartnerContributions - type: String - displayName: Partner Contributions - required: false - - value: Equity.Equity.PartnerDistributions - type: String - displayName: Partner Distributions - required: false - - value: Equity.Equity.PreferredStock - type: String - displayName: Preferred Stock - required: false - - value: Equity.Equity.CommonStock - type: String - displayName: Common Stock - required: false - - value: Equity.Equity.TreasuryStock - type: String - displayName: Treasury Stock - required: false - - value: Equity.Equity.EstimatedTaxes - type: String - displayName: Estimated Taxes - required: false - - value: Equity.Equity.Healthcare - type: String - displayName: Healthcare - required: false - - value: Equity.Equity.PersonalIncome - type: String - displayName: Personal Income - required: false - - value: Equity.Equity.PersonalExpense - type: String - displayName: Personal Expense - required: false - - value: Equity.Equity.AccumulatedOtherComprehensiveIncome - type: String - displayName: Accumulated Other Comprehensive Income - required: false - - value: Equity.Equity.CalledUpShareCapital - type: String - displayName: Called Up Share Capital - required: false - - value: Equity.Equity.CapitalReserves - type: String - displayName: Capital Reserves - required: false - - value: Equity.Equity.DividendDisbursed - type: String - displayName: Dividend Disbursed - required: false - - value: Equity.Equity.EquityInEarningsOfSubsiduaries - type: String - displayName: Equity In Earnings Of Subsiduaries - required: false - - value: Equity.Equity.InvestmentGrants - type: String - displayName: Investment Grants - required: false - - value: Equity.Equity.MoneyReceivedAgainstShareWarrants - type: String - displayName: Money Received Against Share Warrants - required: false - - value: Equity.Equity.OtherFreeReserves - type: String - displayName: Other Free Reserves - required: false - - value: Equity.Equity.ShareApplicationMoneyPendingAllotment - type: String - displayName: Share Application Money Pending Allotment - required: false - - value: Equity.Equity.ShareCapital - type: String - displayName: Share Capital - required: false - - value: Equity.Equity.Funds - type: String - displayName: Funds - required: false - required: true - required: true - Sage Business Cloud Accounting: - value: - type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions - properties: - name: - type: String - displayName: Name - description: Name of the account - required: true - validation: - warnings: [] - information: - - field: Name - details: Should not be longer than 200 characters. - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: true - validation: - warnings: [] - information: - - field: NominalCode - details: Should be a number between 1 and 99999999. - fullyQualifiedCategory: - type: String - displayName: Fully Qualified Category - description: The full category of the account e.g. Liability.Current or Income.Revenue - options: - - value: SALES - type: String - displayName: Sales - required: false - - value: OTHER_INCOME - type: String - displayName: Other Income - required: false - - value: DIRECT_EXPENSES - type: String - displayName: Direct Expenses - required: false - - value: OVERHEADS - type: String - displayName: Overheads - required: false - - value: DEPRECIATION - type: String - displayName: Depreciation - required: false - - value: CURRENT_ASSETS - type: String - displayName: Current Assets - required: false - - value: FIXED_ASSETS - type: String - displayName: Fixed Assets - required: false - - value: FUTURE_ASSETS - type: String - displayName: Future Assets - required: false - - value: BANK - type: String - displayName: Bank - required: false - - value: CURRENT_LIABILITY - type: String - displayName: Current Liability - required: false - - value: FUTURE_LIABILITY - type: String - displayName: Future Liability - required: false - - value: EQUITY - type: String - displayName: Equity - required: false - - value: LINE_OF_CREDIT - type: String - displayName: Credit Card / Loan - required: false - required: true - required: true - Sage Intacct: - value: - type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions - properties: - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: true - validation: - warnings: - - field: NominalCode - details: Must be unique within the entity. - - field: NominalCode - details: 'Must be at most 24 characters in length, although restrictions may vary between entities.' - information: [] - name: - type: String - displayName: Name - description: Name of the account - required: true - status: - type: String - displayName: Account Status - description: The status of the account - options: - - value: Active - type: String - displayName: Active - required: false - - value: Archived - type: String - displayName: Archived - required: false - required: true - type: - type: String - displayName: Account Type - description: 'The type, or base category, of the account' - options: - - value: Asset - type: String - displayName: Asset - required: false - - value: Equity - type: String - displayName: Equity - required: false - - value: Expense - type: String - displayName: Expense - required: false - - value: Income - type: String - displayName: Income - required: false - - value: Liability - type: String - displayName: Liability - required: false - required: true - fullyQualifiedCategory: - type: String - displayName: Fully Qualified Category - description: The full category of the account e.g. Liability.Current or Income.Revenue - required: true - validation: - warnings: [] - information: - - field: FullyQualifiedCategory - details: 'Any category that is part of the hierarchy of one of: ''Assets'', ''Equity'', ''Liabilities'', ''Total Expenses'' and ''Total Income'' is permitted.' - required: true - Sandbox: - value: - type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions - properties: - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: true - name: - type: String - displayName: Name - description: Name of the account - required: true - description: - type: String - displayName: Description - description: Description of the account - required: true - fullyQualifiedCategory: - type: String - displayName: Fully Qualified Category - description: The full category of the account e.g. Liability.Current or Income.Revenue - required: true - fullyQualifiedName: - type: String - displayName: Fully Qualified Name - description: The full name of the account e.g. Liability.Current.VAT or Income.Revenue.Sales - required: true - currency: - type: String - displayName: Currency - description: The currency of the account - required: true - currentBalance: - type: Number - displayName: Current Balance - description: The current balance in the account - required: true - type: - type: String - displayName: Account Type - description: 'The type, or base category, of the account' - required: true - status: - type: String - displayName: Account Status - description: The status of the account - required: true - isBankAccount: - type: Boolean - displayName: Is Bank Account? - description: Confirms whether the nominal account represents a bank account or not - required: true - validDatatypeLinks: - type: Array - displayName: Valid Datatype Links - description: Describes which fields on other data types are valid links to this account in the originating system - properties: - property: - type: String - displayName: Property - description: The field on the source data type that other data types can link to - required: true - links: - type: Array - displayName: Links - description: 'A collection of absolute names of fields from other data types, e.g. Invoice.LineItems.AccountRef.Id' - required: true - required: true - metadata: - type: Object - displayName: Metadata - description: Miscellaneous data about the item - properties: - isDeleted: - type: Boolean - displayName: IsDeleted - description: A boolean to indicate whether the object has been deleted - required: true - required: true - required: true - Xero: - value: - type: Object - displayName: Nominal Account - description: Nominal Accounts are the categories a business uses to record transactions - properties: - nominalCode: - type: String - displayName: Nominal Code - description: Identifier for the nominal account. - required: true - validation: - warnings: - - field: NominalCode - details: Max length of 10 characters. - information: [] - name: - type: String - displayName: Name - description: Name of account as it appears in the chart of accounts or general ledger. - required: true - validation: - warnings: [] - information: - - field: Name - details: Payments are enabled to this account if the name ends in .PaymentsEnabled. - description: - type: String - displayName: Description - description: Description for the nominal account. - required: false - fullyQualifiedCategory: - type: String - displayName: Fully Qualified Category - description: Account type and category for nominal account. - options: - - value: Asset.Current - type: String - displayName: Current Asset - required: false - - value: Asset.Fixed - type: String - displayName: Fixed Asset - required: false - - value: Asset.Inventory - type: String - displayName: Inventory - required: false - - value: Asset.NonCurrent - type: String - displayName: Non-current Asset - required: false - - value: Asset.Prepayment - type: String - displayName: Prepayment - required: false - - value: Expense.DirectCosts - type: String - displayName: Direct Costs - required: false - - value: Expense.Expense - type: String - displayName: Expense - required: false - - value: Expense.Overhead - type: String - displayName: Overhead - required: false - - value: Expense.Superannuation - type: String - displayName: Superannuation - required: false - - value: Expense.Wages - type: String - displayName: Wages - required: false - - value: Income.Sales - type: String - displayName: Sales - required: false - - value: Income.Revenue - type: String - displayName: Revenue - required: false - - value: Income.Other - type: String - displayName: Other Income - required: false - - value: Liability.Current - type: String - displayName: Current Liability - required: false - - value: Liability.Depreciation - type: String - displayName: Depreciation - required: false - - value: Liability.Liability - type: String - displayName: Liability - required: false - - value: Liability.NonCurrent - type: String - displayName: Non Current Liability - required: false - - value: Liability.PayAsYouGo - type: String - displayName: Pay As You Go Liability - required: false - - value: Liability.Superannuation - type: String - displayName: Superannuation Liability - required: false - - value: Liability.WagesPayable - type: String - displayName: Wages Payable Liability - required: false - - value: Equity.Equity - type: String - displayName: Equity - required: false - required: true - required: true - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - operationId: get-create-chartOfAccounts-model - description: |- - The *Get create account model* endpoint returns the expected data for the request payload when creating an [account](https://docs.codat.io/sync-for-expenses-api#/schemas/Account) for a given company and integration. - - [Accounts](https://docs.codat.io/sync-for-expenses-api#/schemas/Account) are the categories a business uses to record accounting transactions. - - **Integration-specific behaviour** - - See the *response examples* for integration-specific indicative models. - '/companies/{companyId}/connections/{connectionId}/push/bankAccounts': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/connectionId' - post: - tags: - - Bank accounts - parameters: - - $ref: '#/components/parameters/timeoutInMinutes' - - $ref: '#/components/parameters/allowSyncOnPushComplete' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BankAccount' - examples: - QuickBooks Online: - value: - accountName: GBP Bank Account - accountType: Debit - accountNumber: '12345678' - currency: GBP - status: Active - Xero: - value: - accountName: Xero GBP Bank Account - accountType: Debit - sortCode: '445566' - accountNumber: '12345678' - currency: GBP - status: Active - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/CreateBankAccountResponse' - examples: {} - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - summary: Create bank account - description: "The *Create bank account* endpoint creates a new [bank account](https://docs.codat.io/sync-for-expenses-api#/schemas/BankAccount) for a given company's connection.\r\n\r\n[Bank accounts](https://docs.codat.io/sync-for-expenses-api#/schemas/BankAccount) are financial accounts maintained by a bank or other financial institution.\r\n\r\n**Integration-specific behaviour**\r\n\r\nRequired data may vary by integration. To see what data to post, first call [Get create/update bank account model](https://docs.codat.io/sync-for-expenses-api#/operations/get-create-update-bankAccounts-model)." - operationId: create-bank-account - '/companies/{companyId}/connections/{connectionId}/options/bankAccounts': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/connectionId' - get: - summary: Get create bank account model - tags: - - Bank accounts - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/PushOption' - examples: - Dynamics 365 Business Central: - value: - type: Object - displayName: Bank Account - description: An account that bank transactions may be recorded against - properties: - accountName: - type: String - displayName: Name - description: The name of the bank account in the originating system - required: true - validation: - warnings: [] - information: - - field: AccountName - details: 'Needs to be of the format ''{No.}-{Name}''' - currency: - type: String - displayName: Currency - description: The currency of the bank account - required: true - accountNumber: - type: String - displayName: Account Number - description: The account number for the bank account - required: false - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: false - validation: - warnings: [] - information: - - field: NominalCode - details: Bank Account Posting Group with Nominal Account must exist - sortCode: - type: String - displayName: Sort Code - description: The sort code for the bank account - required: false - validation: - warnings: [] - information: - - field: SortCode - details: Must have a length between 0 and 20 characters - iBan: - type: String - displayName: IBAN - description: The international bank account number of the account. Often used when making or receiving international payments - required: false - overdraftLimit: - type: Number - displayName: Overdraft Limit - description: The pre-arranged overdraft limit of the account - required: false - validation: - warnings: [] - information: - - field: OverdraftLimit - details: Default value is 0 - required: true - Exact (Netherlands): - value: - type: Object - displayName: Bank Account - description: An account that bank transactions may be recorded against - properties: - accountName: - type: String - displayName: Name - description: The name of the bank account in the originating system - required: true - accountNumber: - type: String - displayName: Account Number - description: The account number for the bank account - required: true - validation: - warnings: - - field: AccountNumber - details: Should not exceed the maximum length of 14 characters if the specified currency is GBP. - information: [] - sortCode: - type: String - displayName: Sort Code - description: The sort code for the bank account - required: false - validation: - warnings: - - field: SortCode - details: Must be 6 characters long if the specified currency is GBP. - - field: SortCode - details: Must be provided if the specified currency is GBP. - information: [] - currency: - type: String - displayName: Currency - description: The currency of the bank account - required: false - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: false - required: true - Exact (UK): - value: - type: Object - displayName: Bank Account - description: An account that bank transactions may be recorded against - properties: - accountName: - type: String - displayName: Name - description: The name of the bank account in the originating system - required: true - accountNumber: - type: String - displayName: Account Number - description: The account number for the bank account - required: true - validation: - warnings: - - field: AccountNumber - details: Should not exceed the maximum length of 14 characters if the specified currency is GBP. - information: [] - sortCode: - type: String - displayName: Sort Code - description: The sort code for the bank account - required: false - validation: - warnings: - - field: SortCode - details: Must be 6 characters long if the specified currency is GBP. - - field: SortCode - details: Must be provided if the specified currency is GBP. - information: [] - currency: - type: String - displayName: Currency - description: The currency of the bank account - required: false - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: false - required: true - FreeAgent: - value: - type: Object - displayName: Bank Account - description: An account that bank transactions may be recorded against - properties: - accountName: - type: String - displayName: Name - description: The name of the bank account in the originating system - required: true - sortCode: - type: String - displayName: Sort Code - description: The sort code for the bank account - required: false - validation: - warnings: - - field: SortCode - details: Must have a length between 0 and 8 characters - information: [] - accountNumber: - type: String - displayName: Account Number - description: The account number for the bank account - required: false - iBan: - type: String - displayName: IBAN - description: The international bank account number of the account. Often used when making or receiving international payments - required: false - currency: - type: String - displayName: Currency - description: The currency of the bank account - options: - - value: AED - type: String - displayName: AED - required: false - - value: AMD - type: String - displayName: AMD - required: false - - value: AOA - type: String - displayName: AOA - required: false - - value: ARS - type: String - displayName: ARS - required: false - - value: AUD - type: String - displayName: AUD - required: false - - value: AWG - type: String - displayName: AWG - required: false - - value: AZN - type: String - displayName: AZN - required: false - - value: BBD - type: String - displayName: BBD - required: false - - value: BDT - type: String - displayName: BDT - required: false - - value: BGN - type: String - displayName: BGN - required: false - - value: BRL - type: String - displayName: BRL - required: false - - value: BWP - type: String - displayName: BWP - required: false - - value: CAD - type: String - displayName: CAD - required: false - - value: CHF - type: String - displayName: CHF - required: false - - value: CLP - type: String - displayName: CLP - required: false - - value: CNY - type: String - displayName: CNY - required: false - - value: COP - type: String - displayName: COP - required: false - - value: CRC - type: String - displayName: CRC - required: false - - value: CUC - type: String - displayName: CUC - required: false - - value: CUP - type: String - displayName: CUP - required: false - - value: CZK - type: String - displayName: CZK - required: false - - value: DKK - type: String - displayName: DKK - required: false - - value: DOP - type: String - displayName: DOP - required: false - - value: EGP - type: String - displayName: EGP - required: false - - value: EUR - type: String - displayName: EUR - required: false - - value: FJD - type: String - displayName: FJD - required: false - - value: GBP - type: String - displayName: GBP - required: false - - value: GEL - type: String - displayName: GEL - required: false - - value: GHS - type: String - displayName: GHS - required: false - - value: GTQ - type: String - displayName: GTQ - required: false - - value: GYD - type: String - displayName: GYD - required: false - - value: HKD - type: String - displayName: HKD - required: false - - value: HNL - type: String - displayName: HNL - required: false - - value: HRK - type: String - displayName: HRK - required: false - - value: HUF - type: String - displayName: HUF - required: false - - value: IDR - type: String - displayName: IDR - required: false - - value: ILS - type: String - displayName: ILS - required: false - - value: INR - type: String - displayName: INR - required: false - - value: ISK - type: String - displayName: ISK - required: false - - value: JMD - type: String - displayName: JMD - required: false - - value: JPY - type: String - displayName: JPY - required: false - - value: KES - type: String - displayName: KES - required: false - - value: KRW - type: String - displayName: KRW - required: false - - value: KWD - type: String - displayName: KWD - required: false - - value: KYD - type: String - displayName: KYD - required: false - - value: KZT - type: String - displayName: KZT - required: false - - value: LAK - type: String - displayName: LAK - required: false - - value: LBP - type: String - displayName: LBP - required: false - - value: LKR - type: String - displayName: LKR - required: false - - value: LTL - type: String - displayName: LTL - required: false - - value: LVL - type: String - displayName: LVL - required: false - - value: MAD - type: String - displayName: MAD - required: false - - value: MDL - type: String - displayName: MDL - required: false - - value: MGA - type: String - displayName: MGA - required: false - - value: MUR - type: String - displayName: MUR - required: false - - value: MVR - type: String - displayName: MVR - required: false - - value: MWK - type: String - displayName: MWK - required: false - - value: MXN - type: String - displayName: MXN - required: false - - value: MYR - type: String - displayName: MYR - required: false - - value: MZN - type: String - displayName: MZN - required: false - - value: NAD - type: String - displayName: NAD - required: false - - value: NGN - type: String - displayName: NGN - required: false - - value: NOK - type: String - displayName: NOK - required: false - - value: NPR - type: String - displayName: NPR - required: false - - value: NZD - type: String - displayName: NZD - required: false - - value: OMR - type: String - displayName: OMR - required: false - - value: PEN - type: String - displayName: PEN - required: false - - value: PHP - type: String - displayName: PHP - required: false - - value: PKR - type: String - displayName: PKR - required: false - - value: PLN - type: String - displayName: PLN - required: false - - value: QAR - type: String - displayName: QAR - required: false - - value: RON - type: String - displayName: RON - required: false - - value: RSD - type: String - displayName: RSD - required: false - - value: RUB - type: String - displayName: RUB - required: false - - value: RWF - type: String - displayName: RWF - required: false - - value: SAR - type: String - displayName: SAR - required: false - - value: SCR - type: String - displayName: SCR - required: false - - value: SEK - type: String - displayName: SEK - required: false - - value: SGD - type: String - displayName: SGD - required: false - - value: THB - type: String - displayName: THB - required: false - - value: TND - type: String - displayName: TND - required: false - - value: TRY - type: String - displayName: TRY - required: false - - value: TTD - type: String - displayName: TTD - required: false - - value: TWD - type: String - displayName: TWD - required: false - - value: TZS - type: String - displayName: TZS - required: false - - value: UAH - type: String - displayName: UAH - required: false - - value: UGX - type: String - displayName: UGX - required: false - - value: USD - type: String - displayName: USD - required: false - - value: UYU - type: String - displayName: UYU - required: false - - value: VEF - type: String - displayName: VEF - required: false - - value: VND - type: String - displayName: VND - required: false - - value: VUV - type: String - displayName: VUV - required: false - - value: XAF - type: String - displayName: XAF - required: false - - value: XCD - type: String - displayName: XCD - required: false - - value: XOF - type: String - displayName: XOF - required: false - - value: ZAR - type: String - displayName: ZAR - required: false - - value: ZMK - type: String - displayName: ZMK - required: false - required: true - balance: - type: Number - displayName: Balance - description: The balance of the bank account - required: false - validation: - warnings: [] - information: - - field: Balance - details: 'The opening balance, in the account currency' - institution: - type: String - displayName: Institution - description: The institution of the bank account - required: false - required: true - KashFlow: - value: - type: Object - displayName: Bank Account - description: An account that bank transactions may be recorded against - properties: - accountName: - type: String - displayName: Account Name - description: Name of the bank account as it appears in Kashflow. - required: true - balance: - type: Number - displayName: Balance - description: 'The opening balance, in the account currency.' - required: false - currency: - type: String - displayName: Currency - description: The currency of the bank account. - required: true - required: true - QuickBooks Desktop: - value: - type: Object - displayName: Bank Account - description: An account that bank transactions may be recorded against - properties: - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: true - validation: - warnings: - - field: NominalCode - details: Max length of 7 characters. - information: [] - accountName: - type: String - displayName: Name - description: The name of the bank account in the originating system - required: true - validation: - warnings: - - field: AccountName - details: Max length of 31 characters. - information: [] - currency: - type: String - displayName: Currency - description: The currency of the bank account - required: false - validation: - warnings: - - field: Currency - details: 'The currency must match the base currency of the QuickBooks Desktop company unless the FullyQualifiedCategory is ''Asset.AccountsReceivable'',''Liability.AccountsPayable'' or ''Liability.CreditCard''' - - field: Currency - details: Must be a three letter ISO code that matches an existing active currency in the QuickBooks Desktop company - - field: Currency - details: Can only be set if the Quickbooks Desktop company has Multicurrency enabled. - information: - - field: Currency - details: 'If not set, will default to the base currency of the QuickBooks Desktop company' - balance: - type: Number - displayName: Balance - description: The balance of the bank account - required: false - required: true - QuickBooks Online Sandbox: - value: - type: Object - displayName: Bank Account - description: An account that bank transactions may be recorded against - properties: - accountName: - type: String - displayName: Account Name - description: Name of account as it appears in the chart of accounts or general ledger. - required: true - accountNumber: - type: String - displayName: Account Number - description: User-defined account number to help the user in identifying the account within the chart-of-accounts and in deciding what should be posted to the account. - required: true - currency: - type: String - displayName: Currency - description: Currency of the bank account. - required: true - required: true - Sage Business Cloud Accounting: - value: - type: Object - displayName: Bank Account - description: An account that bank transactions may be recorded against - properties: - accountName: - type: String - displayName: Name - description: The name of the bank account in the originating system - required: true - validation: - warnings: [] - information: - - field: AccountName - details: Must be provided. - - field: AccountName - details: Should not be longer than 50 characters. - currency: - type: String - displayName: Currency - description: The currency of the bank account - required: true - validation: - warnings: [] - information: - - field: Currency - details: Must be provided. - - field: Currency - details: Must match the company's base currency. - sortCode: - type: String - displayName: Sort Code - description: The sort code for the bank account - required: false - validation: - warnings: [] - information: - - field: SortCode - details: Should be a 6 digit number. - accountNumber: - type: String - displayName: Account Number - description: The account number for the bank account - required: false - validation: - warnings: [] - information: - - field: AccountNumber - details: Should not be longer than 25 characters. - iBan: - type: String - displayName: IBAN - description: The international bank account number of the account. Often used when making or receiving international payments - required: false - validation: - warnings: [] - information: - - field: IBan - details: Should be in the international bank account number format. - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: false - validation: - warnings: [] - information: - - field: NominalCode - details: Should be a number between 1 and 99999999. - required: true - Sandbox: - value: - type: Object - displayName: Bank Account - description: An account that bank transactions may be recorded against - properties: - accountName: - type: String - displayName: Name - description: The name of the bank account in the originating system - required: true - accountType: - type: String - displayName: Account Type - description: The type of account - required: true - nominalCode: - type: String - displayName: Nominal Code - description: The external reference given to each nominal account for a business - required: true - sortCode: - type: String - displayName: Sort Code - description: The sort code for the bank account - required: true - accountNumber: - type: String - displayName: Account Number - description: The account number for the bank account - required: true - iBan: - type: String - displayName: IBAN - description: The international bank account number of the account. Often used when making or receiving international payments - required: true - currency: - type: String - displayName: Currency - description: The currency of the bank account - required: true - balance: - type: Number - displayName: Balance - description: The balance of the bank account - required: true - availableBalance: - type: Number - displayName: Available Balance - description: The available balance of the bank account - required: true - overdraftLimit: - type: Number - displayName: Overdraft Limit - description: The pre-arranged overdraft limit of the account - required: true - institution: - type: String - displayName: Institution - description: The institution of the bank account - required: true - metadata: - type: Object - displayName: Metadata - description: Miscellaneous data about the item - properties: - isDeleted: - type: Boolean - displayName: IsDeleted - description: A boolean to indicate whether the object has been deleted - required: true - required: true - required: true - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - operationId: get-create-bankAccounts-model - description: "The *Get create/update bank account model* endpoint returns the expected data for the request payload when creating and updating a [bank account](https://docs.codat.io/sync-for-expenses-api#/schemas/BankAccount) for a given company and integration.\r\n\r\n[Bank accounts](https://docs.codat.io/sync-for-expenses-api#/schemas/BankAccount) are financial accounts maintained by a bank or other financial institution.\r\n\r\n**Integration-specific behaviour**\r\n\r\nSee the *response examples* for integration-specific indicative models.\r\n" - '/companies/{companyId}/data/customers': - parameters: - - $ref: '#/components/parameters/companyId' - get: - tags: - - Customers - summary: List customers - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/pageSize' - - $ref: '#/components/parameters/query' - - $ref: '#/components/parameters/orderBy' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/Customers' - examples: - Clear Books: - value: - results: - - id: c8180244-74ac-40cf-a5df-6d83661c44d7 - customerName: Arjun Kuvalis - contactName: Werner Langworth - emailAddress: Arjun34@hotmail.com - defaultCurrency: GBP - phone: 014605 64820 - addresses: - - type: Delivery - line1: Suite 214 - line2: 8439 Lueilwitz Passage - city: Fernandohaven - region: Northern Ireland - country: United Kingdom - postalCode: JG04 7PV - - type: Delivery - line1: Suite 096 - line2: 864 Halie Course - city: Juliochester - region: England - country: United Kingdom - postalCode: DZ8 4BF - - type: Delivery - line1: Suite 001 - line2: 416 Stokes Fords - city: Naderborough - region: Wales - country: United Kingdom - postalCode: XG25 0XX - contacts: - - name: Werner Langworth - email: Werner_Langworth@hotmail.com - phone: [] - address: - type: Delivery - line1: Apt. 145 - line2: 317 Williamson Freeway - city: Hortenseville - region: Scotland - country: United Kingdom - postalCode: CV4 2HR - status: Active - - name: Belle Glover - email: Belle51@yahoo.com - phone: [] - address: - type: Delivery - line1: Suite 075 - line2: 9921 Dickens Walk - city: South Ali - region: Scotland - country: United Kingdom - postalCode: TI04 4OO - status: Active - registrationNumber: NI7JEJVM - taxNumber: '7505220209.583549' - status: Active - modifiedDate: '2023-04-26T12:38:16Z' - sourceModifiedDate: '2022-07-03T01:27:00' - metadata: - isDeleted: false - - id: 6d162ee4-47b4-46c6-a2e6-aa9edd0fe6b0 - customerName: 'Breitenberg, Emard and Schiller' - contactName: Miguel Hahn - emailAddress: contact@BreitenbergEmardandSchiller.biz - defaultCurrency: GBP - phone: 0800 445 6957 - addresses: - - type: Billing - line1: Apt. 184 - line2: 60578 Louie Springs - city: East Khalid - region: Wales - country: United Kingdom - postalCode: XW89 7NT - contacts: - - name: Miguel Hahn - email: Miguel.Hahn@gmail.com - phone: - - number: 018555 09614 - type: Landline - address: - type: Delivery - line1: Suite 400 - line2: 21930 Milan Lane - city: Reingerton - region: Wales - country: United Kingdom - postalCode: QG10 2DL - status: Active - registrationNumber: KME0AMIL - taxNumber: '8560920952.553111' - status: Archived - modifiedDate: '2023-04-26T12:38:16Z' - sourceModifiedDate: '2022-12-03T11:05:01' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 20 - _links: - current: - href: /companies/354a121b-855f-4d25-90ad-0905b498c1c0/data/customers?page=1&pageSize=2 - self: - href: /companies/354a121b-855f-4d25-90ad-0905b498c1c0/data/customers - next: - href: /companies/354a121b-855f-4d25-90ad-0905b498c1c0/data/customers?page=2&pageSize=2 - Dynamics 365 Business Central: - value: - results: - - id: 0e2f7751-7696-ed11-bff5-6045bd0d2ad6 - customerName: '' - contactName: '' - emailAddress: '' - defaultCurrency: GBP - phone: '' - addresses: - - type: Billing - line1: '' - line2: '' - city: '' - region: '' - country: '' - postalCode: '' - contacts: - - name: '' - email: '' - phone: [] - address: - type: Billing - line1: '' - line2: '' - city: '' - region: '' - country: '' - postalCode: '' - status: Active - taxNumber: '' - status: Active - modifiedDate: '2023-03-27T14:21:25Z' - sourceModifiedDate: '2023-01-17T14:50:54Z' - metadata: - isDeleted: false - - id: 0ef95175-48c4-eb11-9f0a-0022481b4343 - customerName: '' - contactName: '' - emailAddress: '' - defaultCurrency: GBP - phone: '' - addresses: - - type: Billing - line1: '' - line2: '' - city: '' - region: '' - country: GB - postalCode: '' - contacts: - - name: '' - email: '' - phone: [] - address: - type: Billing - line1: '' - line2: '' - city: '' - region: '' - country: GB - postalCode: '' - status: Active - taxNumber: '' - status: Active - modifiedDate: '2023-03-27T14:21:25Z' - sourceModifiedDate: '2021-06-03T08:48:36Z' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 42 - _links: - current: - href: /companies/d6849caf-c146-41be-8335-b73346e3bd84/data/customers?page=1&pageSize=2 - self: - href: /companies/d6849caf-c146-41be-8335-b73346e3bd84/data/customers - next: - href: /companies/d6849caf-c146-41be-8335-b73346e3bd84/data/customers?page=2&pageSize=2 - Exact (Netherlands): - value: - results: - - id: 555f8251-c65a-433a-a813-5dbe04321d1e - customerName: Ab Netherlands - defaultCurrency: EUR - addresses: - - type: Billing - country: NL - contacts: [] - status: Active - modifiedDate: '2022-10-26T13:32:05Z' - sourceModifiedDate: '2021-06-14T15:26:37Z' - - id: 9fd1f78e-67aa-4af7-8a10-df1fc5fb5841 - customerName: anna test 2 - defaultCurrency: EUR - addresses: - - type: Billing - country: NL - contacts: [] - status: Active - modifiedDate: '2022-10-26T13:32:05Z' - sourceModifiedDate: '2022-05-24T11:53:21Z' - pageNumber: 1 - pageSize: 2 - totalResults: 71 - _links: - current: - href: /companies/b83b1923-4db6-45a8-a779-b4e320c15979/data/customers?page=1&pageSize=2 - self: - href: /companies/b83b1923-4db6-45a8-a779-b4e320c15979/data/customers - next: - href: /companies/b83b1923-4db6-45a8-a779-b4e320c15979/data/customers?page=2&pageSize=2 - Exact (UK): - value: - results: - - id: 5f20075a-a28e-434d-81a6-2db0dc170e87 - customerName: Abdi 99 - emailAddress: email@codat.io - defaultCurrency: GBP - addresses: - - type: Billing - line1: Ink Rooms - city: London - country: GB - postalCode: WC1X 0BE - contacts: [] - registrationNumber: '123456789' - taxNumber: GB339 0727 47 - status: Active - modifiedDate: '2022-10-26T13:33:08Z' - sourceModifiedDate: '2020-02-26T11:23:50Z' - - id: 1d9dc1a7-92d6-441b-93fd-42c9fb321b1c - customerName: Abdulbasit Al-haj - contactName: abeee - emailAddress: a.alhaj@codat.io - defaultCurrency: GBP - addresses: - - type: Billing - country: GB - contacts: - - name: abeee - phone: [] - address: - type: Unknown - line1: '' - country: 'GB ' - status: Active - modifiedDate: '2020-02-24T12:00:51.027Z' - status: Active - modifiedDate: '2022-10-26T13:33:08Z' - sourceModifiedDate: '2020-02-24T12:00:50Z' - pageNumber: 1 - pageSize: 2 - totalResults: 53 - _links: - current: - href: /companies/d95030cd-22b2-482b-9c7b-2980dcc2b1ce/data/customers?page=1&pageSize=2 - self: - href: /companies/d95030cd-22b2-482b-9c7b-2980dcc2b1ce/data/customers - next: - href: /companies/d95030cd-22b2-482b-9c7b-2980dcc2b1ce/data/customers?page=2&pageSize=2 - FreeAgent: - value: - results: - - id: '11526230' - customerName: '-' - contactName: Test 1 - addresses: - - type: Billing - line1: 1 Place House - line2: '' - city: London - country: United Kingdom - postalCode: WC1X 1AH - contacts: - - name: Test 1 - phone: [] - address: - type: Billing - line1: 1 Place House - line2: '' - city: London - country: United Kingdom - postalCode: WC1X 1AH - status: Unknown - status: Active - modifiedDate: '2023-04-25T14:19:12Z' - sourceModifiedDate: '2023-04-17T06:02:46Z' - metadata: - isDeleted: false - - id: '9677150' - customerName: '-' - contactName: Test 1 - addresses: - - type: Billing - line1: 1 Place House - line2: '' - city: London - country: United Kingdom - postalCode: WC1X 1AH - contacts: - - name: Test 1 - phone: [] - address: - type: Billing - line1: 1 Place House - line2: '' - city: London - country: United Kingdom - postalCode: WC1X 1AH - status: Unknown - status: Active - modifiedDate: '2023-04-25T14:19:12Z' - sourceModifiedDate: '2023-04-24T06:19:23Z' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 159 - _links: - current: - href: /companies/071ad738-68f3-4561-afd0-69bab9df0803/data/customers?page=1&pageSize=2 - self: - href: /companies/071ad738-68f3-4561-afd0-69bab9df0803/data/customers - next: - href: /companies/071ad738-68f3-4561-afd0-69bab9df0803/data/customers?page=2&pageSize=2 - FreshBooks: - value: - results: - - id: '634509' - customerName: A test customer 14 (updated) - contactName: test person name - emailAddress: test14@example.com - defaultCurrency: GBP - phone: 01876 541245 - addresses: - - type: Billing - line1: Line 1 - line2: Line 2 - city: Some city - region: A region - country: Country 1 - postalCode: SW1 2JQ - contacts: - - name: test person1 - email: test14A@example.com - phone: - - number: '24681012' - type: Primary - - number: '121086420' - type: Unknown - status: Active - - name: test person2 - email: test14B@example.com - phone: - - number: 1234 56789 - type: Primary - - number: 9876 54321 - type: Unknown - status: Active - - name: test person name - email: test14@example.com - phone: - - number: 01876 541245 - type: Unknown - status: Active - status: Active - modifiedDate: '2023-03-24T16:07:23Z' - sourceModifiedDate: '2022-05-18T09:23:56' - metadata: - isDeleted: false - - id: '634486' - customerName: A test customer name 2 - contactName: test person name - emailAddress: test8@example.com - defaultCurrency: GBP - phone: 01876 541245 - addresses: - - type: Billing - line1: Line 1 - line2: Line 2 - city: Some city - region: A region - country: Country 1 - postalCode: SW1 2JQ - contacts: - - name: test person1 - email: test9@example.com - phone: - - number: '24681012' - type: Primary - - number: '121086420' - type: Unknown - status: Active - - name: test person2 - email: test10@example.com - phone: - - number: '123456789' - type: Primary - - number: '987654321' - type: Unknown - status: Active - - name: test person name - email: test8@example.com - phone: - - number: 01876 541245 - type: Unknown - status: Active - status: Active - modifiedDate: '2023-03-24T16:07:23Z' - sourceModifiedDate: '2022-05-11T11:39:58' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 39 - _links: - current: - href: /companies/3691c49e-0db4-4172-b3ab-e4084c365013/data/customers?page=1&pageSize=2 - self: - href: /companies/3691c49e-0db4-4172-b3ab-e4084c365013/data/customers - next: - href: /companies/3691c49e-0db4-4172-b3ab-e4084c365013/data/customers?page=2&pageSize=2 - KashFlow: - value: - results: - - id: '92227673' - customerName: Chekko Customer Test 01 - contactName: '' - emailAddress: '' - phone: '' - addresses: [] - contacts: - - name: '' - email: '' - phone: [] - status: Active - taxNumber: '' - status: Active - modifiedDate: '2022-09-30T10:29:15Z' - sourceModifiedDate: '0001-01-01T00:00:00' - - id: '88459410' - customerName: Diogo Sousa - contactName: Mr Diogo Sousa - emailAddress: diogomail@mail.com - phone: '123123123' - addresses: - - type: Billing - line1: Billing Address - line2: Billing line 2 Billing line 3 - city: Billing line 4 - country: United Kingdom - postalCode: '123321' - - type: Delivery - line1: Delivery Address - line2: Delivery line2 Delivery line3 - city: Delivery line4 - country: United Kingdom - postalCode: '123321' - contacts: - - name: Mr Diogo Sousa - email: diogomail@mail.com - phone: - - number: '123123123' - type: Landline - - number: '321321321' - type: Mobile - address: - type: Billing - line1: Billing Address - line2: Billing line 2 Billing line 3 - city: Billing line 4 - country: United Kingdom - postalCode: '123321' - status: Active - - name: Mr Diogo Sousa - phone: [] - address: - type: Delivery - line1: Delivery Address - line2: Delivery line2 Delivery line3 - city: Delivery line4 - country: United Kingdom - postalCode: '123321' - status: Active - taxNumber: '' - status: Active - modifiedDate: '2022-09-30T10:29:15Z' - sourceModifiedDate: '2021-05-04T13:22:19' - pageNumber: 1 - pageSize: 2 - totalResults: 10 - _links: - current: - href: /companies/3a707a99-89da-4b16-a5d6-595333a16352/data/customers?page=1&pageSize=2 - self: - href: /companies/3a707a99-89da-4b16-a5d6-595333a16352/data/customers - next: - href: /companies/3a707a99-89da-4b16-a5d6-595333a16352/data/customers?page=2&pageSize=2 - Oracle NetSuite: - value: - results: - - id: '773' - customerName: 119 Test Customer - contactName: Mr Test Customer - defaultCurrency: GBP - addresses: [] - contacts: [] - status: Active - modifiedDate: '2023-01-30T14:48:02Z' - sourceModifiedDate: '2022-01-11T12:28:49' - - id: '172722' - customerName: 1248 European Company - contactName: European Company - defaultCurrency: GBP - addresses: [] - contacts: [] - status: Active - modifiedDate: '2023-01-30T14:48:02Z' - sourceModifiedDate: '2022-07-27T14:29:16' - pageNumber: 1 - pageSize: 2 - totalResults: 4 - _links: - current: - href: /companies/d5074b08-6a34-4b06-a742-236edf5dc4f1/data/customers?page=1&pageSize=2 - self: - href: /companies/d5074b08-6a34-4b06-a742-236edf5dc4f1/data/customers - next: - href: /companies/d5074b08-6a34-4b06-a742-236edf5dc4f1/data/customers?page=2&pageSize=2 - QuickBooks Desktop: - value: - results: - - id: 150000-933272658 - customerName: 'Abercrombie, Kristy' - contactName: Kristy Abercrombie - emailAddress: kristy@samplename.com - defaultCurrency: GBP - phone: 415-555-6579 - addresses: - - type: Delivery - line1: Kristy Abercrombie - line2: 5647 Cypress Hill Rd - city: Bayshore - region: CA - postalCode: '94326' - - type: Billing - line1: Kristy Abercrombie - line2: 5647 Cypress Hill Rd - city: Bayshore - region: CA - postalCode: '94326' - contacts: - - name: 'Abercrombie, Kristy' - email: kristy@samplename.com - phone: - - number: 415-555-6579 - type: Primary - status: Active - - name: Kristy Abercrombie - phone: [] - status: Active - - name: Steve Darcangelo - phone: [] - status: Active - status: Active - modifiedDate: '2023-04-26T09:07:55Z' - sourceModifiedDate: '2023-12-16T05:06:42' - metadata: - isDeleted: false - - id: 800000D0-1182061376 - customerName: 'Allard, Robert' - contactName: Amanda Roberts - emailAddress: rallard@myemail.com - defaultCurrency: GBP - phone: 650-555-3422 - addresses: - - type: Delivery - line1: Robert Allard - line2: 92834 Chandler St. - city: Millbrae - region: CA - postalCode: '94030' - - type: Billing - line1: Robert Allard - line2: 92834 Chandler St. - city: Millbrae - region: CA - postalCode: '94030' - contacts: - - name: 'Allard, Robert' - email: rallard@myemail.com - phone: - - number: 650-555-3422 - type: Primary - - number: 650-555-9804 - type: Fax - - number: 650-555-8349 - type: Unknown - status: Active - - name: Robert Allard - phone: [] - status: Active - - name: Rachel Fisher - phone: [] - status: Active - status: Active - modifiedDate: '2023-04-26T09:07:55Z' - sourceModifiedDate: '2023-12-16T05:06:42' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 64 - _links: - current: - href: /companies/fc72ba08-af13-4474-b28a-01dcfa6cfb51/data/customers?page=1&pageSize=2 - self: - href: /companies/fc72ba08-af13-4474-b28a-01dcfa6cfb51/data/customers - next: - href: /companies/fc72ba08-af13-4474-b28a-01dcfa6cfb51/data/customers?page=2&pageSize=2 - QuickBooks Online: - value: - results: - - id: '9' - customerName: Abe - contactName: Abraham's Company - emailAddress: ab@email.com - defaultCurrency: GBP - addresses: [] - contacts: - - name: Abe - email: ab@email.com - phone: - - number: '01111111111' - type: Mobile - status: Active - registrationNumber: XXXX9900001 - taxNumber: XXXX9900001 - status: Active - modifiedDate: '2023-01-18T11:02:35Z' - sourceModifiedDate: '2022-12-08T15:42:59Z' - - id: '49' - customerName: adeel qbo child test - contactName: Adeel test - emailAddress: adeel@adeel.com - defaultCurrency: GBP - phone: '123456789' - addresses: - - type: Billing - line1: 4 Privet Drive - city: London - country: United Kingdom - postalCode: WD25 7LR - - type: Delivery - line1: 4 Privet Drive - city: London - country: United Kingdom - postalCode: WD25 7LR - contacts: - - name: Adeel test - email: adeel@adeel.com - phone: - - number: '123456789' - type: Primary - - number: '07546543216' - type: Mobile - address: - type: Billing - line1: 4 Privet Drive - city: London - country: United Kingdom - postalCode: WD25 7LR - status: Active - status: Active - modifiedDate: '2023-01-18T11:02:35Z' - sourceModifiedDate: '2022-08-22T09:21:09Z' - pageNumber: 1 - pageSize: 2 - totalResults: 40 - _links: - current: - href: /companies/10818b5e-6e6a-4ed4-a1c5-3e3efe626e87/data/customers?page=1&pageSize=2 - self: - href: /companies/10818b5e-6e6a-4ed4-a1c5-3e3efe626e87/data/customers - next: - href: /companies/10818b5e-6e6a-4ed4-a1c5-3e3efe626e87/data/customers?page=2&pageSize=2 - QuickBooks Online Sandbox: - value: - results: - - id: '66' - customerName: Abercrombie International Group - contactName: Kristy Abercrombie - defaultCurrency: GBP - addresses: - - type: Billing - line1: 123 Main St - city: 'New York, NY' - contacts: - - name: Abercrombie International Group (deleted) - phone: [] - address: - type: Billing - line1: 123 Main St - city: 'New York, NY' - status: Archived - status: Archived - modifiedDate: '2023-04-26T09:35:56Z' - sourceModifiedDate: '2016-09-12T18:53:19Z' - metadata: - isDeleted: false - - id: '67' - customerName: Abercrombie International Group - contactName: Natalie Watts - emailAddress: n.watts@google.com - defaultCurrency: USD - addresses: - - type: Billing - - type: Delivery - contacts: - - name: Abercrombie International Group - email: n.watts@google.com - phone: [] - address: - type: Billing - status: Active - registrationNumber: XXXXVat123456 - taxNumber: XXXXVat123456 - status: Active - modifiedDate: '2023-04-26T09:35:56Z' - sourceModifiedDate: '2023-03-29T01:12:55Z' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 243 - _links: - current: - href: /companies/5a7f3597-36e1-4216-86fe-289ad36088a6/data/customers?page=1&pageSize=2 - self: - href: /companies/5a7f3597-36e1-4216-86fe-289ad36088a6/data/customers - next: - href: /companies/5a7f3597-36e1-4216-86fe-289ad36088a6/data/customers?page=2&pageSize=2 - Sage 200cloud: - value: - results: - - id: A1D001 - customerName: A1 Design Services - contactName: Lee Dalkin - emailAddress: newbusinessadvice@sage.com - defaultCurrency: GBP - phone: 01742 876 234 - addresses: - - type: Delivery - line1: 67a Station Road - line2: '' - city: Blackpool - region: Lancashire - country: '' - postalCode: BP12 7HT - - type: Delivery - line1: 23a Union Street - line2: '' - city: Manchester - region: '' - country: '' - postalCode: M2 6JK - - type: Billing - line1: 67a Station Road - line2: '' - city: Blackpool - region: Lancashire - country: Great Britain - postalCode: BP12 7HT - contacts: - - name: Lee Dalkin - email: newbusinessadvice@sage.com - phone: - - number: 01742 876 234 - type: Landline - - number: 01742 876 235 - type: Landline - - number: 01742 876 236 - type: Fax - status: Active - - name: Malcolm Leverret - email: '' - phone: [] - status: Active - - name: Jim Thomas - email: Jim@a1designservices.co.uk - phone: - - number: 01742 876 234 - type: Landline - - number: 01742 876 235 - type: Fax - status: Active - - name: Jullian Plawsworth - email: Jullian@a1designservices.co.uk - phone: - - number: 0151 349 3939 - type: Landline - - number: 0151 349 3940 - type: Fax - status: Active - registrationNumber: '' - taxNumber: GB238 3839 38 - status: Active - modifiedDate: '2022-10-14T09:35:53Z' - sourceModifiedDate: '2022-04-27T15:17:36Z' - - id: A1D002 - customerName: A2 Design Services - contactName: Lee Dalkin - emailAddress: newbusinessadvice@sage.com - defaultCurrency: GBP - phone: 01742 876 234 - addresses: - - type: Billing - line1: 77a Station Road - line2: '' - city: Blackpool - region: Lancashire - country: Great Britain - postalCode: BP12 7HT - contacts: - - name: Lee Dalkin - email: newbusinessadvice@sage.com - phone: - - number: 01742 876 234 - type: Landline - - number: 01742 876 235 - type: Landline - - number: 01742 876 236 - type: Fax - status: Active - - name: Malcolm Leverret - email: '' - phone: [] - status: Active - - name: Jim Thomas - email: Jim@a1designservices.co.uk - phone: - - number: 01742 876 234 - type: Landline - - number: 01742 876 235 - type: Fax - status: Active - - name: Jullian Plawsworth - email: Jullian@a1designservices.co.uk - phone: - - number: 0151 349 3939 - type: Landline - - number: 0151 349 3940 - type: Fax - status: Active - registrationNumber: '' - taxNumber: GB238 3839 40 - status: Active - modifiedDate: '2022-10-14T09:35:53Z' - sourceModifiedDate: '2020-09-23T10:28:58Z' - pageNumber: 1 - pageSize: 2 - totalResults: 43 - _links: - current: - href: /companies/93c21e2d-049c-4d24-b41b-57e61c30b69e/data/customers?page=1&pageSize=2 - self: - href: /companies/93c21e2d-049c-4d24-b41b-57e61c30b69e/data/customers - next: - href: /companies/93c21e2d-049c-4d24-b41b-57e61c30b69e/data/customers?page=2&pageSize=2 - Sage 50 (UK): - value: - results: - - id: A1D001 - customerName: A1 Design Services - contactName: Ian Cairns - emailAddress: newbusinessadvice@sage.com - defaultCurrency: GBP - phone: 01742 876 234 - addresses: - - type: Delivery - line1: 67a Station Road - line2: '' - city: Blackpool - region: Lancashire - country: GB - postalCode: BP12 7HT - - type: Delivery - line1: 23a Union Street - line2: '' - city: Manchester - region: '' - country: GB - postalCode: M2 6JK - - type: Unknown - line1: 67a Station Road - line2: '' - city: Blackpool - region: Lancashire - country: GB - postalCode: BP12 7HT - contacts: [] - taxNumber: GB238 3839 38 - status: Active - modifiedDate: '2023-03-30T14:42:41Z' - sourceModifiedDate: '2022-11-25T09:43:54Z' - metadata: - isDeleted: false - - id: ABS001 - customerName: ABS Garages Ltd - contactName: Mike Hall - emailAddress: newbusinessadvice@sage.com - defaultCurrency: GBP - phone: 0191 254 5909 - addresses: - - type: Delivery - line1: Swanson Industries - line2: Dukes Industrial Estate - city: Whitley Bay - region: North Tyneside - country: GB - postalCode: NE56 4ER - - type: Delivery - line1: Unit 34 - line2: Holystone Ind Estate - city: Hebburn - region: Tyne & Wear - country: GB - postalCode: NE31 1VB - - type: Unknown - line1: Unit 34 - line2: Holystone Ind Estate - city: Hebburn - region: Tyne & Wear - country: GB - postalCode: NE31 1VB - contacts: [] - taxNumber: GB745 4584 68 - status: Active - modifiedDate: '2023-03-30T14:42:41Z' - sourceModifiedDate: '2022-11-25T09:43:54Z' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 30 - _links: - current: - href: /companies/cf5f2a47-2990-4221-bae6-0c19c86ac304/data/customers?page=1&pageSize=2 - self: - href: /companies/cf5f2a47-2990-4221-bae6-0c19c86ac304/data/customers - next: - href: /companies/cf5f2a47-2990-4221-bae6-0c19c86ac304/data/customers?page=2&pageSize=2 - Sage Business Cloud Accounting: - value: - results: - - id: 260f6a3f94a243738f2d5e08496a41a8 - customerName: 100 test name - contactName: Main Contact - emailAddress: email@codat.io - defaultCurrency: GBP - phone: contact phone number - addresses: - - type: Billing - line1: Aruba Address line 1 - line2: Aruba Address line 2 - city: Aruba City - region: Aruba Province - country: Aruba (AW) - postalCode: Aruba Post - contacts: - - phone: - - number: contact mobile number - type: Mobile - - number: contact fax number - type: Fax - status: Unknown - status: Active - modifiedDate: '2022-10-24T14:52:54Z' - sourceModifiedDate: '2021-05-10T16:31:51Z' - - id: 44a5d9461d9e4f6d90a5ace251c5cf35 - customerName: 100 test name DS - contactName: Main Contact - emailAddress: DCemail@codat.io - defaultCurrency: GBP - phone: contact phone number - addresses: - - type: Billing - line1: POST - Aruba Address line 1 - line2: POST - Aruba Address line 2 - city: POST - Aruba City - region: Aruba Province - country: Aruba (AW) - postalCode: Aruba Post - contacts: [] - status: Active - modifiedDate: '2022-10-24T14:52:54Z' - sourceModifiedDate: '2021-06-10T14:22:46Z' - pageNumber: 1 - pageSize: 2 - totalResults: 168 - _links: - current: - href: /companies/390083e2-351b-407c-a3be-55081c36c182/data/customers?page=1&pageSize=2 - self: - href: /companies/390083e2-351b-407c-a3be-55081c36c182/data/customers - next: - href: /companies/390083e2-351b-407c-a3be-55081c36c182/data/customers?page=2&pageSize=2 - Sage Intacct: - value: - results: - - id: '188' - customerName: 33Across - contactName: Yuna Conn - defaultCurrency: USD - phone: 520-393-4468 - addresses: - - type: Unknown - line1: 155 Westend Point - line2: '' - city: Albuquerque - region: NM - country: United States - postalCode: '87140' - contacts: - - name: 'Conn, Yuna' - phone: - - number: 520-393-4468 - type: Primary - address: - type: Unknown - line1: 155 Westend Point - line2: '' - city: Albuquerque - region: NM - country: United States - postalCode: '87140' - status: Unknown - taxNumber: '' - status: Active - modifiedDate: '2023-04-04T16:32:21Z' - sourceModifiedDate: '2022-09-06T12:58:27' - metadata: - isDeleted: false - - id: '324' - customerName: 3Way International Logistics - contactName: Lauri O'Heagertie - defaultCurrency: CAD - phone: 410-309-3976 - addresses: - - type: Unknown - line1: 7 Lerdahl Junction - line2: '' - city: Sparwood - region: British Columbia - country: Canada - postalCode: L4R - contacts: - - name: 'O''Heagertie, Lauri' - phone: - - number: 410-309-3976 - type: Primary - address: - type: Unknown - line1: 7 Lerdahl Junction - line2: '' - city: Sparwood - region: British Columbia - country: Canada - postalCode: L4R - status: Unknown - taxNumber: '' - status: Active - modifiedDate: '2023-04-04T16:32:21Z' - sourceModifiedDate: '2020-10-20T05:01:49' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 530 - _links: - current: - href: /companies/df02b289-cb16-4964-ac4d-9fd60b04538e/data/customers?page=1&pageSize=2 - self: - href: /companies/df02b289-cb16-4964-ac4d-9fd60b04538e/data/customers - next: - href: /companies/df02b289-cb16-4964-ac4d-9fd60b04538e/data/customers?page=2&pageSize=2 - Wave: - value: - results: - - id: QnVzaW5lc3M6ZTI0OGQyZDctMWE5Ni00YTk4LWFkOTEtMDdlMGYyMmNhNmE2O0N1c3RvbWVyOjMyMzkzNTA4 - customerName: ABC Textiles - contactName: '' - emailAddress: c.taylor@codat.io - defaultCurrency: USD - addresses: [] - contacts: [] - status: Active - modifiedDate: '2022-11-16T18:15:30Z' - sourceModifiedDate: '2019-10-17T07:59:04Z' - - id: QnVzaW5lc3M6ZTI0OGQyZDctMWE5Ni00YTk4LWFkOTEtMDdlMGYyMmNhNmE2O0N1c3RvbWVyOjM3MTUzNDI2 - customerName: Coffee Cart - contactName: Coffee Carl - emailAddress: coffee.cart@example.com - defaultCurrency: GBP - phone: '0201111' - addresses: - - type: Billing - line1: 11 Coffee Lane - line2: Coffee Town - city: Coffee City - region: Hampshire - country: United Kingdom - postalCode: CC1 1CC - contacts: - - name: Coffee Carl - phone: - - number: '07733' - type: Mobile - status: Active - status: Active - modifiedDate: '2022-11-16T18:15:30Z' - sourceModifiedDate: '2020-03-17T19:12:39Z' - pageNumber: 1 - pageSize: 2 - totalResults: 10 - _links: - current: - href: /companies/0b22b59d-b4e5-4c35-b03f-88bbbcb41256/data/customers?page=1&pageSize=2 - self: - href: /companies/0b22b59d-b4e5-4c35-b03f-88bbbcb41256/data/customers - next: - href: /companies/0b22b59d-b4e5-4c35-b03f-88bbbcb41256/data/customers?page=2&pageSize=2 - Xero: - value: - results: - - id: e4c9d0e2-c285-4e85-b579-6d28b180c730 - customerName: 24 Locks - emailAddress: '' - addresses: [] - contacts: [] - status: Active - modifiedDate: '2023-03-15T20:35:10Z' - sourceModifiedDate: '2023-02-17T18:03:42' - metadata: - isDeleted: false - - id: bab779bc-c5fb-42cb-a888-953e8309711c - customerName: 7-Eleven - emailAddress: '' - addresses: [] - contacts: [] - status: Active - modifiedDate: '2023-03-15T20:35:10Z' - sourceModifiedDate: '2023-02-17T18:03:42' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 48 - _links: - current: - href: /companies/5ced9667-a310-443a-a711-958d36377141/data/customers?page=1&pageSize=2 - self: - href: /companies/5ced9667-a310-443a-a711-958d36377141/data/customers - next: - href: /companies/5ced9667-a310-443a-a711-958d36377141/data/customers?page=2&pageSize=2 - Zoho Books: - value: - results: - - id: '104957000000032105' - customerName: A B - contactName: Contact (First Name) Contact (Last Name) - emailAddress: contactperson@whateveryouwantidontcare12345.com - defaultCurrency: GBP - phone: Work Phone - addresses: [] - contacts: - - name: Contact (First Name) Contact (Last Name) - email: contactperson@whateveryouwantidontcare12345.com - phone: - - number: Work Phone - type: Landline - - number: Mobile - type: Mobile - status: Active - status: Active - modifiedDate: '2022-10-03T08:40:37Z' - sourceModifiedDate: '2022-06-09T14:36:47' - - id: '104957000000054050' - customerName: 'Doe, John' - contactName: John Doe - emailAddress: '' - defaultCurrency: GBP - addresses: [] - contacts: - - name: John Doe - email: '' - phone: [] - status: Active - status: Active - modifiedDate: '2022-10-03T08:40:37Z' - sourceModifiedDate: '2022-09-28T15:09:22' - pageNumber: 1 - pageSize: 2 - totalResults: 14 - _links: - current: - href: /companies/d0b68840-db50-4bc3-b88c-96e225333fea/data/customers?page=1&pageSize=2 - self: - href: /companies/d0b68840-db50-4bc3-b88c-96e225333fea/data/customers - next: - href: /companies/d0b68840-db50-4bc3-b88c-96e225333fea/data/customers?page=2&pageSize=2 - '400': - $ref: '#/components/responses/Malformed-Query' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '409': - $ref: '#/components/responses/Conflict' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - description: "The *List customers* endpoint returns a list of [customers](https://docs.codat.io/sync-for-expenses-api#/schemas/Customer) for a given company's connection.\n\n[Customers](https://docs.codat.io/sync-for-expenses-api#/schemas/Customer) are people or organizations that buy goods or services from the SMB.\n\nBefore using this endpoint, you must have [retrieved data for the company](https://docs.codat.io/sync-for-expenses-api#/operations/refresh-company-data).\n " - operationId: list-customers - '/companies/{companyId}/data/customers/{customerId}': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/customerId' - get: - tags: - - Customers - summary: Get customer - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/Customer' - examples: - Clear Books: - value: - id: c8180244-74ac-40cf-a5df-6d83661c44d7 - customerName: Arjun Kuvalis - contactName: Werner Langworth - emailAddress: Arjun34@hotmail.com - defaultCurrency: GBP - phone: 014605 64820 - addresses: - - type: Delivery - line1: Suite 214 - line2: 8439 Lueilwitz Passage - city: Fernandohaven - region: Northern Ireland - country: United Kingdom - postalCode: JG04 7PV - - type: Delivery - line1: Suite 096 - line2: 864 Halie Course - city: Juliochester - region: England - country: United Kingdom - postalCode: DZ8 4BF - - type: Delivery - line1: Suite 001 - line2: 416 Stokes Fords - city: Naderborough - region: Wales - country: United Kingdom - postalCode: XG25 0XX - contacts: - - name: Werner Langworth - email: Werner_Langworth@hotmail.com - phone: [] - address: - type: Delivery - line1: Apt. 145 - line2: 317 Williamson Freeway - city: Hortenseville - region: Scotland - country: United Kingdom - postalCode: CV4 2HR - status: Active - - name: Belle Glover - email: Belle51@yahoo.com - phone: [] - address: - type: Delivery - line1: Suite 075 - line2: 9921 Dickens Walk - city: South Ali - region: Scotland - country: United Kingdom - postalCode: TI04 4OO - status: Active - registrationNumber: NI7JEJVM - taxNumber: '7505220209.583549' - status: Active - modifiedDate: '2023-04-26T12:38:16Z' - sourceModifiedDate: '2022-07-03T01:27:00' - metadata: - isDeleted: false - Dynamics 365 Business Central: - value: - id: 0e2f7751-7696-ed11-bff5-6045bd0d2ad6 - customerName: '' - contactName: '' - emailAddress: '' - defaultCurrency: GBP - phone: '' - addresses: - - type: Billing - line1: '' - line2: '' - city: '' - region: '' - country: '' - postalCode: '' - contacts: - - name: '' - email: '' - phone: [] - address: - type: Billing - line1: '' - line2: '' - city: '' - region: '' - country: '' - postalCode: '' - status: Active - taxNumber: '' - status: Active - modifiedDate: '2023-03-27T14:21:25Z' - sourceModifiedDate: '2023-01-17T14:50:54Z' - metadata: - isDeleted: false - Exact (Netherlands): - value: - id: 555f8251-c65a-433a-a813-5dbe04321d1e - customerName: Ab Netherlands - defaultCurrency: EUR - addresses: - - type: Billing - country: NL - contacts: [] - status: Active - modifiedDate: '2022-10-26T13:32:05Z' - sourceModifiedDate: '2021-06-14T15:26:37Z' - Exact (UK): - value: - id: 5f20075a-a28e-434d-81a6-2db0dc170e87 - customerName: Abdi 99 - emailAddress: email@codat.io - defaultCurrency: GBP - addresses: - - type: Billing - line1: Ink Rooms - city: London - country: GB - postalCode: WC1X 0BE - contacts: [] - registrationNumber: '123456789' - taxNumber: GB339 0727 47 - status: Active - modifiedDate: '2022-10-26T13:33:08Z' - sourceModifiedDate: '2020-02-26T11:23:50Z' - FreeAgent: - value: - id: '11526230' - customerName: '-' - contactName: Test 1 - addresses: - - type: Billing - line1: 1 Place House - line2: '' - city: London - country: United Kingdom - postalCode: WC1X 1AH - contacts: - - name: Test 1 - phone: [] - address: - type: Billing - line1: 1 Place House - line2: '' - city: London - country: United Kingdom - postalCode: WC1X 1AH - status: Unknown - status: Active - modifiedDate: '2023-04-25T14:19:12Z' - sourceModifiedDate: '2023-04-17T06:02:46Z' - metadata: - isDeleted: false - FreshBooks: - value: - id: '634509' - customerName: A test customer 14 (updated) - contactName: test person name - emailAddress: test14@example.com - defaultCurrency: GBP - phone: 01876 541245 - addresses: - - type: Billing - line1: Line 1 - line2: Line 2 - city: Some city - region: A region - country: Country 1 - postalCode: SW1 2JQ - contacts: - - name: test person1 - email: test14A@example.com - phone: - - number: '24681012' - type: Primary - - number: '121086420' - type: Unknown - status: Active - - name: test person2 - email: test14B@example.com - phone: - - number: '123456789' - type: Primary - - number: '987654321' - type: Unknown - status: Active - - name: test person name - email: test14@example.com - phone: - - number: 01876 541245 - type: Unknown - status: Active - status: Active - modifiedDate: '2023-03-24T16:07:23Z' - sourceModifiedDate: '2022-05-18T09:23:56' - metadata: - isDeleted: false - KashFlow: - value: - id: '92227673' - customerName: Chekko Customer Test 01 - contactName: '' - emailAddress: '' - phone: '' - addresses: [] - contacts: - - name: '' - email: '' - phone: [] - status: Active - taxNumber: '' - status: Active - modifiedDate: '2022-09-30T10:29:15Z' - sourceModifiedDate: '0001-01-01T00:00:00' - Oracle NetSuite: - value: - id: '773' - customerName: 119 Test Customer - contactName: Mr Test Customer - defaultCurrency: GBP - addresses: [] - contacts: [] - status: Active - modifiedDate: '2023-01-30T14:48:02Z' - sourceModifiedDate: '2022-01-11T12:28:49' - QuickBooks Desktop: - value: - id: 150000-933272658 - customerName: 'Abercrombie, Kristy' - contactName: Kristy Abercrombie - emailAddress: kristy@samplename.com - defaultCurrency: GBP - phone: 415-555-6579 - addresses: - - type: Delivery - line1: Kristy Abercrombie - line2: 5647 Cypress Hill Rd - city: Bayshore - region: CA - postalCode: '94326' - - type: Billing - line1: Kristy Abercrombie - line2: 5647 Cypress Hill Rd - city: Bayshore - region: CA - postalCode: '94326' - contacts: - - name: 'Abercrombie, Kristy' - email: kristy@samplename.com - phone: - - number: 415-555-6579 - type: Primary - status: Active - - name: Kristy Abercrombie - phone: [] - status: Active - - name: Steve Darcangelo - phone: [] - status: Active - status: Active - modifiedDate: '2023-04-26T09:07:55Z' - sourceModifiedDate: '2023-12-16T05:06:42' - metadata: - isDeleted: false - QuickBooks Online: - value: - id: '9' - customerName: Abe - contactName: Abraham's Company - emailAddress: ab@email.com - defaultCurrency: GBP - addresses: [] - contacts: - - name: Abe - email: ab@email.com - phone: - - number: '01111111111' - type: Mobile - status: Active - registrationNumber: XXXX9900001 - taxNumber: XXXX9900001 - status: Active - modifiedDate: '2023-01-18T11:02:35Z' - sourceModifiedDate: '2022-12-08T15:42:59Z' - QuickBooks Online Sandbox: - value: - id: '66' - customerName: Abercrombie International Group - contactName: Kristy Abercrombie - defaultCurrency: GBP - addresses: - - type: Billing - line1: 123 Main St - city: 'New York, NY' - contacts: - - name: Abercrombie International Group (deleted) - phone: [] - address: - type: Billing - line1: 123 Main St - city: 'New York, NY' - status: Archived - status: Archived - modifiedDate: '2023-04-26T09:35:56Z' - sourceModifiedDate: '2016-09-12T18:53:19Z' - metadata: - isDeleted: false - Sage 200cloud: - value: - id: A1D001 - customerName: A1 Design Services - contactName: Lee Dalkin - emailAddress: newbusinessadvice@sage.com - defaultCurrency: GBP - phone: 01742 876 234 - addresses: - - type: Delivery - line1: 67a Station Road - line2: '' - city: Blackpool - region: Lancashire - country: '' - postalCode: BP12 7HT - - type: Delivery - line1: 23a Union Street - line2: '' - city: Manchester - region: '' - country: '' - postalCode: M2 6JK - - type: Billing - line1: 67a Station Road - line2: '' - city: Blackpool - region: Lancashire - country: Great Britain - postalCode: BP12 7HT - contacts: - - name: Lee Dalkin - email: newbusinessadvice@sage.com - phone: - - number: 01742 876 234 - type: Landline - - number: 01742 876 235 - type: Landline - - number: 01742 876 236 - type: Fax - status: Active - - name: Malcolm Leverret - email: '' - phone: [] - status: Active - - name: Jim Thomas - email: Jim@a1designservices.co.uk - phone: - - number: 01742 876 234 - type: Landline - - number: 01742 876 235 - type: Fax - status: Active - - name: Jullian Plawsworth - email: Jullian@a1designservices.co.uk - phone: - - number: 0151 349 3939 - type: Landline - - number: 0151 349 3940 - type: Fax - status: Active - registrationNumber: '' - taxNumber: GB238 3839 38 - status: Active - modifiedDate: '2022-10-14T09:35:53Z' - sourceModifiedDate: '2022-04-27T15:17:36Z' - Sage 50 (UK): - value: - id: A1D001 - customerName: A1 Design Services - contactName: Ian Cairns - emailAddress: newbusinessadvice@sage.com - defaultCurrency: GBP - phone: 01742 876 234 - addresses: - - type: Delivery - line1: 67a Station Road - line2: '' - city: Blackpool - region: Lancashire - country: GB - postalCode: BP12 7HT - - type: Delivery - line1: 23a Union Street - line2: '' - city: Manchester - region: '' - country: GB - postalCode: M2 6JK - - type: Unknown - line1: 67a Station Road - line2: '' - city: Blackpool - region: Lancashire - country: GB - postalCode: BP12 7HT - contacts: [] - taxNumber: GB238 3839 38 - status: Active - modifiedDate: '2023-03-30T14:42:41Z' - sourceModifiedDate: '2022-11-25T09:43:54Z' - metadata: - isDeleted: false - Sage Business Cloud Accounting: - value: - id: 260f6a3f94a243738f2d5e08496a41a8 - customerName: 100 test name - contactName: Main Contact - emailAddress: email@codat.io - defaultCurrency: GBP - phone: contact phone number - addresses: - - type: Billing - line1: Aruba Address line 1 - line2: Aruba Address line 2 - city: Aruba City - region: Aruba Province - country: Aruba (AW) - postalCode: Aruba Post - contacts: - - phone: - - number: contact mobile number - type: Mobile - - number: contact fax number - type: Fax - status: Unknown - status: Active - modifiedDate: '2022-10-24T14:52:54Z' - sourceModifiedDate: '2021-05-10T16:31:51Z' - Sage Intacct: - value: - id: '188' - customerName: 33Across - contactName: Yuna Conn - defaultCurrency: USD - phone: 520-393-4468 - addresses: - - type: Unknown - line1: 155 Westend Point - line2: '' - city: Albuquerque - region: NM - country: United States - postalCode: '87140' - contacts: - - name: 'Conn, Yuna' - phone: - - number: 520-393-4468 - type: Primary - address: - type: Unknown - line1: 155 Westend Point - line2: '' - city: Albuquerque - region: NM - country: United States - postalCode: '87140' - status: Unknown - taxNumber: '' - status: Active - modifiedDate: '2023-04-04T16:32:21Z' - sourceModifiedDate: '2022-09-06T12:58:27' - metadata: - isDeleted: false - Wave: - value: - id: QnVzaW5lc3M6ZTI0OGQyZDctMWE5Ni00YTk4LWFkOTEtMDdlMGYyMmNhNmE2O0N1c3RvbWVyOjMyMzkzNTA4 - customerName: ABC Textiles - contactName: '' - emailAddress: c.taylor@codat.io - defaultCurrency: USD - addresses: [] - contacts: [] - status: Active - modifiedDate: '2022-11-16T18:15:30Z' - sourceModifiedDate: '2019-10-17T07:59:04Z' - Xero: - value: - id: e4c9d0e2-c285-4e85-b579-6d28b180c730 - customerName: 24 Locks - emailAddress: '' - addresses: [] - contacts: [] - status: Active - modifiedDate: '2023-03-15T20:35:10Z' - sourceModifiedDate: '2023-02-17T18:03:42' - metadata: - isDeleted: false - Zoho Books: - value: - id: '104957000000032105' - customerName: A B - contactName: Contact (First Name) Contact (Last Name) - emailAddress: contactperson@whateveryouwantidontcare12345.com - defaultCurrency: GBP - phone: Work Phone - addresses: [] - contacts: - - name: Contact (First Name) Contact (Last Name) - email: contactperson@whateveryouwantidontcare12345.com - phone: - - number: Work Phone - type: Landline - - number: Mobile - type: Mobile - status: Active - status: Active - modifiedDate: '2022-10-03T08:40:37Z' - sourceModifiedDate: '2022-06-09T14:36:47' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '409': - $ref: '#/components/responses/Conflict' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - description: | - The *Get customer* endpoint returns a single customer for a given customerId. - - [Customers](https://docs.codat.io/sync-for-expenses-api#/schemas/Customer) are people or organizations that buy goods or services from the SMB. - - Before using this endpoint, you must have [retrieved data for the company](https://docs.codat.io/sync-for-expenses-api#/operations/refresh-company-data). - operationId: get-customer - '/companies/{companyId}/connections/{connectionId}/push/customers': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/connectionId' - post: - tags: - - Customers - summary: Create customer - parameters: - - $ref: '#/components/parameters/timeoutInMinutes' - - $ref: '#/components/parameters/allowSyncOnPushComplete' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Customer' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/CreateCustomerResponse' - examples: {} - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - operationId: create-customer - description: |- - The *Create customer* endpoint creates a new [customer](https://docs.codat.io/sync-for-expenses-api#/schemas/Customer) for a given company's connection. - - [Customers](https://docs.codat.io/sync-for-expenses-api#/schemas/Customer) are people or organizations that buy goods or services from the SMB. - - **Integration-specific behaviour** - - Required data may vary by integration. To see what data to post, first call [Get create/update customer model](https://docs.codat.io/sync-for-expenses-api#/operations/get-create-update-customers-model). - '/companies/{companyId}/connections/{connectionId}/push/customers/{customerId}': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/connectionId' - - $ref: '#/components/parameters/customerId' - put: - tags: - - Customers - summary: Update customer - parameters: - - $ref: '#/components/parameters/timeoutInMinutes' - - $ref: '#/components/parameters/allowSyncOnPushComplete' - - $ref: '#/components/parameters/forceUpdate' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Customer' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateCustomerResponse' - examples: {} - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - description: |- - The *Update customer* endpoint updates an existing [customer](https://docs.codat.io/sync-for-expenses-api#/schemas/Customer) for a given company's connection. - - [Customers](https://docs.codat.io/sync-for-expenses-api#/schemas/Customer) are people or organizations that buy goods or services from the SMB. - - **Integration-specific behaviour** - - Required data may vary by integration. To see what data to post, first call [Get create/update customer model](https://docs.codat.io/sync-for-expenses-api#/operations/get-create-update-customers-model). - operationId: update-customer - '/companies/{companyId}/data/suppliers': - parameters: - - $ref: '#/components/parameters/companyId' - get: - tags: - - Suppliers - summary: List suppliers - parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/pageSize' - - $ref: '#/components/parameters/query' - - $ref: '#/components/parameters/orderBy' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/Suppliers' - examples: - Clear Books: - value: - results: - - id: owQ2Gqgj9f - supplierName: Abshire - Kshlerin - contactName: Faye Hansen - emailAddress: hello@Abshire-Kshlerin.info - phone: 01338 858162 - addresses: - - type: Delivery - line1: Suite 431 - line2: 289 Giles Lake - city: Cesarmouth - region: Northern Ireland - country: United Kingdom - postalCode: BG40 9GP - registrationNumber: VYL1XZXR - taxNumber: '1396267523.0914588' - status: Active - modifiedDate: '2023-04-26T12:38:17Z' - sourceModifiedDate: '1660-11-28T23:18:00' - defaultCurrency: GBP - metadata: - isDeleted: false - - id: FyUkHbZxhn - supplierName: Arjun Kuvalis - contactName: Werner Langworth - emailAddress: Arjun34@hotmail.com - phone: 0116 796 3163 - addresses: - - type: Delivery - line1: Suite 214 - line2: 8439 Lueilwitz Passage - city: Fernandohaven - region: Northern Ireland - country: United Kingdom - postalCode: JG04 7PV - - type: Delivery - line1: Suite 096 - line2: 864 Halie Course - city: Juliochester - region: England - country: United Kingdom - postalCode: DZ8 4BF - - type: Delivery - line1: Suite 001 - line2: 416 Stokes Fords - city: Naderborough - region: Wales - country: United Kingdom - postalCode: XG25 0XX - registrationNumber: NI7JEJVM - taxNumber: '7505220209.583549' - status: Active - modifiedDate: '2023-04-26T12:38:17Z' - sourceModifiedDate: '0177-04-27T11:56:00' - defaultCurrency: GBP - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 100 - _links: - current: - href: /companies/354a121b-855f-4d25-90ad-0905b498c1c0/data/suppliers?page=1&pageSize=2 - self: - href: /companies/354a121b-855f-4d25-90ad-0905b498c1c0/data/suppliers - next: - href: /companies/354a121b-855f-4d25-90ad-0905b498c1c0/data/suppliers?page=2&pageSize=2 - Dynamics 365 Business Central: - value: - results: - - id: 78623f13-931e-eb11-bbf8-0022481b3585 - supplierName: '' - contactName: '' - emailAddress: '' - phone: '' - addresses: - - type: Billing - line1: '' - line2: '' - city: '' - region: '' - country: GB - postalCode: '' - taxNumber: '' - status: Active - modifiedDate: '2023-03-27T14:21:12Z' - sourceModifiedDate: '2020-11-04T11:44:22Z' - defaultCurrency: GBP - metadata: - isDeleted: false - - id: be49ec62-6754-ed11-946f-0022481b67d1 - supplierName: '' - contactName: '' - emailAddress: '' - phone: '' - addresses: - - type: Billing - line1: '' - line2: '' - city: '' - region: '' - country: GB - postalCode: '' - taxNumber: '' - status: Active - modifiedDate: '2023-03-27T14:21:12Z' - sourceModifiedDate: '2022-10-25T13:17:36Z' - defaultCurrency: GBP - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 31 - _links: - current: - href: /companies/d6849caf-c146-41be-8335-b73346e3bd84/data/suppliers?page=1&pageSize=2 - self: - href: /companies/d6849caf-c146-41be-8335-b73346e3bd84/data/suppliers - next: - href: /companies/d6849caf-c146-41be-8335-b73346e3bd84/data/suppliers?page=2&pageSize=2 - Exact (Netherlands): - value: - results: - - id: 3150917c-1d92-4d77-9018-31b5c4758ca9 - supplierName: Abe - contactName: Kelly's Contact Name - emailAddress: sales@kellysupplies.com - phone: 07999 999999 - addresses: - - type: Billing - line1: Unit 51 - city: Bakersfield - region: California - country: US - postalCode: '933081' - registrationNumber: '8409314368' - status: Active - modifiedDate: '2022-10-26T13:32:05Z' - sourceModifiedDate: '2022-07-15T12:01:15Z' - defaultCurrency: EUR - - id: 00014c12-2616-481a-a2e8-31bdf2497775 - supplierName: Ann's test supplier 2 - contactName: Ann's contact name - emailAddress: anna@anna888888.com - phone: '55555555' - addresses: - - type: Billing - line1: line1 - line2: line2 - city: city - region: region - country: RU - postalCode: postal - registrationNumber: '55566677788899944455' - taxNumber: RU4444444 - status: Active - modifiedDate: '2022-10-26T13:32:05Z' - sourceModifiedDate: '2021-06-09T12:04:08Z' - defaultCurrency: USD - pageNumber: 1 - pageSize: 2 - totalResults: 73 - _links: - current: - href: /companies/b83b1923-4db6-45a8-a779-b4e320c15979/data/suppliers?page=1&pageSize=2 - self: - href: /companies/b83b1923-4db6-45a8-a779-b4e320c15979/data/suppliers - next: - href: /companies/b83b1923-4db6-45a8-a779-b4e320c15979/data/suppliers?page=2&pageSize=2 - Exact (UK): - value: - results: - - id: 0185fea2-0298-445b-909a-0db685118a9e - supplierName: a - addresses: - - type: Billing - country: GB - status: Active - modifiedDate: '2022-10-26T13:33:13Z' - sourceModifiedDate: '2017-08-02T10:58:54Z' - defaultCurrency: GBP - - id: 64ae712f-4155-48bb-9fce-98232c51d979 - supplierName: aa - addresses: - - type: Billing - country: GB - status: Active - modifiedDate: '2022-10-26T13:33:13Z' - sourceModifiedDate: '2020-05-01T14:05:46Z' - defaultCurrency: GBP - pageNumber: 1 - pageSize: 2 - totalResults: 118 - _links: - current: - href: /companies/d95030cd-22b2-482b-9c7b-2980dcc2b1ce/data/suppliers?page=1&pageSize=2 - self: - href: /companies/d95030cd-22b2-482b-9c7b-2980dcc2b1ce/data/suppliers - next: - href: /companies/d95030cd-22b2-482b-9c7b-2980dcc2b1ce/data/suppliers?page=2&pageSize=2 - FreeAgent: - value: - results: - - id: '11526230' - supplierName: '-' - contactName: Test 1 - addresses: - - type: Billing - line1: 1 Place House - line2: '' - city: London - country: United Kingdom - postalCode: WC1X 1AH - status: Active - modifiedDate: '2023-04-25T14:19:08Z' - sourceModifiedDate: '2023-04-17T06:02:46' - metadata: - isDeleted: false - - id: '9677150' - supplierName: '-' - contactName: Test 1 - addresses: - - type: Billing - line1: 1 Place House - line2: '' - city: London - country: United Kingdom - postalCode: WC1X 1AH - status: Active - modifiedDate: '2023-04-25T14:19:08Z' - sourceModifiedDate: '2023-04-24T06:19:23' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 159 - _links: - current: - href: /companies/071ad738-68f3-4561-afd0-69bab9df0803/data/suppliers?page=1&pageSize=2 - self: - href: /companies/071ad738-68f3-4561-afd0-69bab9df0803/data/suppliers - next: - href: /companies/071ad738-68f3-4561-afd0-69bab9df0803/data/suppliers?page=2&pageSize=2 - FreshBooks: - value: - results: - - id: api vendor - supplierName: api vendor - addresses: [] - status: Active - modifiedDate: '2023-03-24T16:07:25Z' - metadata: - isDeleted: false - - id: DUndsRykrmy8kFsc+FvYk29YkJze4zSjGecoF4YcUEhVU7auJ5JkQA0VjXptZ7XQ+D4n6WoxFIkaGY2V/t4flA== - supplierName: 'Chekko Test merchant 100 - Test Very long name: ORIG CO NAME:AMERICAN EXPRESS ORIG ID:9493560001 DESC DATE:220307 CO ENTRY DESCR:ACH PMT SEC:CCD TRACE#:021000023255482 EED:220307 IND ID:A4670 IND NAME:Rick Sanchez' - addresses: [] - status: Active - modifiedDate: '2023-03-24T16:07:25Z' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 7 - _links: - current: - href: /companies/3691c49e-0db4-4172-b3ab-e4084c365013/data/suppliers?page=1&pageSize=2 - self: - href: /companies/3691c49e-0db4-4172-b3ab-e4084c365013/data/suppliers - next: - href: /companies/3691c49e-0db4-4172-b3ab-e4084c365013/data/suppliers?page=2&pageSize=2 - KashFlow: - value: - results: - - id: '6202387' - supplierName: Dell - contactName: '' - emailAddress: '' - phone: '' - addresses: [] - taxNumber: '' - status: Unknown - modifiedDate: '2022-09-30T10:29:15Z' - sourceModifiedDate: '2017-05-09T00:00:00' - - id: '9338173' - supplierName: Home - contactName: '' - emailAddress: '' - phone: '' - addresses: [] - taxNumber: '' - status: Unknown - modifiedDate: '2022-09-30T10:29:15Z' - sourceModifiedDate: '1990-01-01T00:00:00' - pageNumber: 1 - pageSize: 2 - totalResults: 7 - _links: - current: - href: /companies/3a707a99-89da-4b16-a5d6-595333a16352/data/suppliers?page=1&pageSize=2 - self: - href: /companies/3a707a99-89da-4b16-a5d6-595333a16352/data/suppliers - next: - href: /companies/3a707a99-89da-4b16-a5d6-595333a16352/data/suppliers?page=2&pageSize=2 - Oracle NetSuite: - value: - results: - - id: '779' - supplierName: Test Vendor - contactName: Test Vendor - emailAddress: '' - phone: '' - addresses: [] - status: Active - modifiedDate: '2023-01-30T14:47:02Z' - sourceModifiedDate: '2022-02-04T14:24:43' - defaultCurrency: GBP - - id: '726' - supplierName: Vendor -.A - contactName: Vendor -.A - emailAddress: '' - phone: '' - addresses: [] - status: Active - modifiedDate: '2023-01-30T14:47:02Z' - sourceModifiedDate: '2021-03-26T09:53:15' - defaultCurrency: GBP - pageNumber: 1 - pageSize: 2 - totalResults: 6 - _links: - current: - href: /companies/d5074b08-6a34-4b06-a742-236edf5dc4f1/data/suppliers?page=1&pageSize=2 - self: - href: /companies/d5074b08-6a34-4b06-a742-236edf5dc4f1/data/suppliers - next: - href: /companies/d5074b08-6a34-4b06-a742-236edf5dc4f1/data/suppliers?page=2&pageSize=2 - QuickBooks Desktop: - value: - results: - - id: A60000-1197760912 - supplierName: A Cheung Limited - contactName: Angela Cheung - emailAddress: AC@CheungLimited.com - phone: 510 555 5723 - addresses: - - type: Billing - line1: 'A Cheung Limited, Angela Cheung' - line2: 3818 Bear Rd. West - city: Berkeley - region: CA - postalCode: '94688' - status: Active - modifiedDate: '2023-04-26T09:09:03Z' - sourceModifiedDate: '2023-12-16T05:06:44' - defaultCurrency: GBP - metadata: - isDeleted: false - - id: A40000-1197774038 - supplierName: Bank of Anycity - contactName: Lisa D. Holzhauser - emailAddress: lisah@samplename.com - phone: 415-555-9135 - addresses: - - type: Billing - line1: 'Bank of Anycity, Lisa Holzhauser' - line2: 1935 Main Street - city: Middlefield - region: CA - postalCode: '94482' - status: Active - modifiedDate: '2023-04-26T09:09:03Z' - sourceModifiedDate: '2023-12-16T05:06:44' - defaultCurrency: GBP - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 54 - _links: - current: - href: /companies/fc72ba08-af13-4474-b28a-01dcfa6cfb51/data/suppliers?page=1&pageSize=2 - self: - href: /companies/fc72ba08-af13-4474-b28a-01dcfa6cfb51/data/suppliers - next: - href: /companies/fc72ba08-af13-4474-b28a-01dcfa6cfb51/data/suppliers?page=2&pageSize=2 - QuickBooks Online: - value: - results: - - id: '41' - supplierName: AI Support - contactName: AI Support - addresses: - - type: Billing - line1: test - region: string - country: Djibouti - status: Active - modifiedDate: '2023-01-18T11:02:36Z' - sourceModifiedDate: '2022-12-07T10:48:18Z' - defaultCurrency: GBP - - id: '42' - supplierName: AI Support 2 - contactName: AI Support 2 - addresses: - - type: Billing - line1: test - region: string - country: DJ - status: Active - modifiedDate: '2023-01-18T11:02:36Z' - sourceModifiedDate: '2021-08-31T08:45:02Z' - defaultCurrency: GBP - pageNumber: 1 - pageSize: 2 - totalResults: 23 - _links: - current: - href: /companies/10818b5e-6e6a-4ed4-a1c5-3e3efe626e87/data/suppliers?page=1&pageSize=2 - self: - href: /companies/10818b5e-6e6a-4ed4-a1c5-3e3efe626e87/data/suppliers - next: - href: /companies/10818b5e-6e6a-4ed4-a1c5-3e3efe626e87/data/suppliers?page=2&pageSize=2 - QuickBooks Online Sandbox: - value: - results: - - id: '129' - supplierName: Ally Johnson - contactName: Miss Smith - phone: 0728 38474 - addresses: - - type: Billing - line1: 100 London Road - line2: Angel - city: London - region: Greater London - country: England - postalCode: EC1M - status: Active - modifiedDate: '2023-04-26T09:35:55Z' - sourceModifiedDate: '2023-04-13T01:51:08Z' - defaultCurrency: GBP - metadata: - isDeleted: false - - id: '88' - supplierName: Andrew Haberbosch - addresses: [] - status: Active - modifiedDate: '2023-04-26T09:35:55Z' - sourceModifiedDate: '2022-07-06T15:55:28Z' - defaultCurrency: GBP - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 64 - _links: - current: - href: /companies/5a7f3597-36e1-4216-86fe-289ad36088a6/data/suppliers?page=1&pageSize=2 - self: - href: /companies/5a7f3597-36e1-4216-86fe-289ad36088a6/data/suppliers - next: - href: /companies/5a7f3597-36e1-4216-86fe-289ad36088a6/data/suppliers?page=2&pageSize=2 - Sage 200cloud: - value: - results: - - id: '776' - supplierName: Aaren - contactName: '' - emailAddress: '' - phone: '' - addresses: - - type: Unknown - line1: '' - line2: '' - city: '' - region: '' - country: Great Britain - postalCode: '' - taxNumber: '' - status: Archived - modifiedDate: '2022-10-14T09:35:58Z' - defaultCurrency: GBP - metadata: - isDeleted: true - - id: '914' - supplierName: Aaren - contactName: '' - emailAddress: '' - phone: '' - addresses: - - type: Unknown - line1: '' - line2: '' - city: '' - region: '' - country: Great Britain - postalCode: '' - taxNumber: '' - status: Archived - modifiedDate: '2022-10-14T09:35:58Z' - defaultCurrency: GBP - metadata: - isDeleted: true - pageNumber: 1 - pageSize: 2 - totalResults: 943 - _links: - current: - href: /companies/93c21e2d-049c-4d24-b41b-57e61c30b69e/data/suppliers?page=1&pageSize=2 - self: - href: /companies/93c21e2d-049c-4d24-b41b-57e61c30b69e/data/suppliers - next: - href: /companies/93c21e2d-049c-4d24-b41b-57e61c30b69e/data/suppliers?page=2&pageSize=2 - Sage 50 (UK): - value: - results: - - id: CON001 - supplierName: Concept Stationery Supplies - contactName: Mark Ramsay - emailAddress: newbusinessadvice@sage.com - phone: 0191 643 4343 - addresses: - - type: Delivery - line1: 66 New Street - line2: Ridgeway - city: Newcastle Upon Tyne - region: '' - country: GB - postalCode: NE1 4GF - - type: Unknown - line1: 66 New Street - line2: Ridgeway - city: Newcastle upon Tyne - region: '' - country: GB - postalCode: NE1 4GF - taxNumber: GB988 3453 23 - status: Active - modifiedDate: '2023-03-30T14:42:38Z' - sourceModifiedDate: '2022-11-25T09:43:54Z' - defaultCurrency: GBP - metadata: - isDeleted: false - - id: MCN001 - supplierName: McNally Computer Supplies - contactName: Stuart Lynn - emailAddress: newbusinessadvice@sage.com - phone: 0191 415 3434 - addresses: - - type: Delivery - line1: Station Lane Ind Est - line2: Birtley - city: Chester le Street - region: County Durham - country: GB - postalCode: DH1 3RG - - type: Unknown - line1: Station Lane Ind Est - line2: Birtley - city: Chester le Street - region: County Durham - country: GB - postalCode: DH1 3RG - taxNumber: GB455 2385 34 - status: Active - modifiedDate: '2023-03-30T14:42:38Z' - sourceModifiedDate: '2022-12-05T13:37:26Z' - defaultCurrency: GBP - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 15 - _links: - current: - href: /companies/cf5f2a47-2990-4221-bae6-0c19c86ac304/data/suppliers?page=1&pageSize=2 - self: - href: /companies/cf5f2a47-2990-4221-bae6-0c19c86ac304/data/suppliers - next: - href: /companies/cf5f2a47-2990-4221-bae6-0c19c86ac304/data/suppliers?page=2&pageSize=2 - Sage Business Cloud Accounting: - value: - results: - - id: 65179671e9ef424caff8b9006cd111c8 - supplierName: 5555 Abdul's Test Name - contactName: Main Contact - addresses: - - type: Billing - country: United Kingdom (GB) - status: Active - modifiedDate: '2022-10-24T14:52:54Z' - sourceModifiedDate: '2020-02-25T17:23:33Z' - defaultCurrency: GBP - - id: cf7f44d693904944a6a7cf3de0887964 - supplierName: Abdi Supplier - contactName: Abdi - emailAddress: abdisupplier@company.com - addresses: - - type: Billing - line1: 1 Place House - city: London - country: United Kingdom (GB) - postalCode: WC1X 1AH - status: Active - modifiedDate: '2022-10-24T14:52:54Z' - sourceModifiedDate: '2020-02-13T10:38:19Z' - defaultCurrency: GBP - pageNumber: 1 - pageSize: 2 - totalResults: 64 - _links: - current: - href: /companies/390083e2-351b-407c-a3be-55081c36c182/data/suppliers?page=1&pageSize=2 - self: - href: /companies/390083e2-351b-407c-a3be-55081c36c182/data/suppliers - next: - href: /companies/390083e2-351b-407c-a3be-55081c36c182/data/suppliers?page=2&pageSize=2 - Sage Intacct: - value: - results: - - id: '3' - supplierName: ADP - contactName: 'Jones, William' - phone: 214-760-9491 - addresses: - - type: Unknown - line1: 208 S Akard St - line2: '' - city: Dallas - region: TX - country: United States - postalCode: '75265' - registrationNumber: '' - taxNumber: 85-3678274 - status: Active - modifiedDate: '2023-04-04T16:32:20Z' - sourceModifiedDate: '2023-02-16T09:48:27' - defaultCurrency: USD - metadata: - isDeleted: false - - id: '29' - supplierName: Advisor Printing - contactName: 'Roach, Nathan' - phone: 130-202-4796 - addresses: - - type: Unknown - line1: 5 Carey Hill - line2: '' - city: Drayton Valley - region: Alberta - country: Canada - postalCode: G8V - registrationNumber: '' - taxNumber: '' - status: Active - modifiedDate: '2023-04-04T16:32:20Z' - sourceModifiedDate: '2022-06-15T11:38:29' - defaultCurrency: CAD - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 77 - _links: - current: - href: /companies/df02b289-cb16-4964-ac4d-9fd60b04538e/data/suppliers?page=1&pageSize=2 - self: - href: /companies/df02b289-cb16-4964-ac4d-9fd60b04538e/data/suppliers - next: - href: /companies/df02b289-cb16-4964-ac4d-9fd60b04538e/data/suppliers?page=2&pageSize=2 - Wave: - value: - results: - - id: QnVzaW5lc3M6ZTI0OGQyZDctMWE5Ni00YTk4LWFkOTEtMDdlMGYyMmNhNmE2O1ZlbmRvcjo2NjA0Nzk0 - supplierName: Computer Shop - contactName: '' - emailAddress: '' - addresses: [] - status: Active - modifiedDate: '2022-11-16T18:15:24Z' - sourceModifiedDate: '2020-04-07T13:28:02Z' - defaultCurrency: GBP - - id: QnVzaW5lc3M6ZTI0OGQyZDctMWE5Ni00YTk4LWFkOTEtMDdlMGYyMmNhNmE2O1ZlbmRvcjo2NjA0NzQx - supplierName: Flour Mill - contactName: '' - emailAddress: '' - addresses: [] - status: Active - modifiedDate: '2022-11-16T18:15:24Z' - sourceModifiedDate: '2020-04-07T13:12:40Z' - defaultCurrency: GBP - pageNumber: 1 - pageSize: 2 - totalResults: 9 - _links: - current: - href: /companies/0b22b59d-b4e5-4c35-b03f-88bbbcb41256/data/suppliers?page=1&pageSize=2 - self: - href: /companies/0b22b59d-b4e5-4c35-b03f-88bbbcb41256/data/suppliers - next: - href: /companies/0b22b59d-b4e5-4c35-b03f-88bbbcb41256/data/suppliers?page=2&pageSize=2 - Xero: - value: - results: - - id: e4c9d0e2-c285-4e85-b579-6d28b180c730 - supplierName: 24 Locks - emailAddress: '' - addresses: [] - status: Active - modifiedDate: '2023-03-15T20:36:09Z' - sourceModifiedDate: '2023-02-17T18:03:42' - metadata: - isDeleted: false - - id: bab779bc-c5fb-42cb-a888-953e8309711c - supplierName: 7-Eleven - emailAddress: '' - addresses: [] - status: Active - modifiedDate: '2023-03-15T20:36:09Z' - sourceModifiedDate: '2023-02-17T18:03:42' - metadata: - isDeleted: false - pageNumber: 1 - pageSize: 2 - totalResults: 48 - _links: - current: - href: /companies/5ced9667-a310-443a-a711-958d36377141/data/suppliers?page=1&pageSize=2 - self: - href: /companies/5ced9667-a310-443a-a711-958d36377141/data/suppliers - next: - href: /companies/5ced9667-a310-443a-a711-958d36377141/data/suppliers?page=2&pageSize=2 - Zoho Books: - value: - results: - - id: '104957000001494001' - supplierName: Acme Corporation - emailAddress: '' - addresses: [] - status: Active - modifiedDate: '2022-10-03T08:40:37Z' - sourceModifiedDate: '2022-09-16T13:09:56' - defaultCurrency: GBP - - id: '104957000000648001' - supplierName: Cool company - contactName: Dre - emailAddress: '' - addresses: [] - status: Active - modifiedDate: '2022-10-03T08:40:37Z' - sourceModifiedDate: '2022-06-10T09:07:16' - defaultCurrency: CAD - pageNumber: 1 - pageSize: 2 - totalResults: 6 - _links: - current: - href: /companies/d0b68840-db50-4bc3-b88c-96e225333fea/data/suppliers?page=1&pageSize=2 - self: - href: /companies/d0b68840-db50-4bc3-b88c-96e225333fea/data/suppliers - next: - href: /companies/d0b68840-db50-4bc3-b88c-96e225333fea/data/suppliers?page=2&pageSize=2 - '400': - $ref: '#/components/responses/Malformed-Query' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '409': - $ref: '#/components/responses/Conflict' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - description: "The *List suppliers* endpoint returns a list of [suppliers](https://docs.codat.io/sync-for-expenses-api#/schemas/Supplier) for a given company's connection.\n\n[Suppliers](https://docs.codat.io/sync-for-expenses-api#/schemas/Supplier) are people or organizations that provide something, such as a product or service.\n\nBefore using this endpoint, you must have [retrieved data for the company](https://docs.codat.io/sync-for-expenses-api#/operations/refresh-company-data).\n " - operationId: list-suppliers - '/companies/{companyId}/data/suppliers/{supplierId}': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/supplierId' - get: - tags: - - Suppliers - summary: Get supplier - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/Supplier' - examples: - Clear Books: - value: - id: owQ2Gqgj9f - supplierName: Abshire - Kshlerin - contactName: Faye Hansen - emailAddress: hello@Abshire-Kshlerin.info - phone: 01338 858162 - addresses: - - type: Delivery - line1: Suite 431 - line2: 289 Giles Lake - city: Cesarmouth - region: Northern Ireland - country: United Kingdom - postalCode: BG40 9GP - registrationNumber: VYL1XZXR - taxNumber: '1396267523.0914588' - status: Active - modifiedDate: '2023-04-26T12:38:17Z' - sourceModifiedDate: '1660-11-28T23:18:00' - defaultCurrency: GBP - metadata: - isDeleted: false - Dynamics 365 Business Central: - value: - id: 78623f13-931e-eb11-bbf8-0022481b3585 - supplierName: '' - contactName: '' - emailAddress: '' - phone: '' - addresses: - - type: Billing - line1: '' - line2: '' - city: '' - region: '' - country: GB - postalCode: '' - taxNumber: '' - status: Active - modifiedDate: '2023-03-27T14:21:12Z' - sourceModifiedDate: '2020-11-04T11:44:22Z' - defaultCurrency: GBP - metadata: - isDeleted: false - Exact (Netherlands): - value: - id: 3150917c-1d92-4d77-9018-31b5c4758ca9 - supplierName: Abe - contactName: Kelly's Contact Name - emailAddress: sales@kellysupplies.com - phone: 07999 999999 - addresses: - - type: Billing - line1: Unit 51 - city: Bakersfield - region: California - country: US - postalCode: '933081' - registrationNumber: '8409314368' - status: Active - modifiedDate: '2022-10-26T13:32:05Z' - sourceModifiedDate: '2022-07-15T12:01:15Z' - defaultCurrency: EUR - Exact (UK): - value: - id: 0185fea2-0298-445b-909a-0db685118a9e - supplierName: a - addresses: - - type: Billing - country: GB - status: Active - modifiedDate: '2022-10-26T13:33:13Z' - sourceModifiedDate: '2017-08-02T10:58:54Z' - defaultCurrency: GBP - FreeAgent: - value: - id: '11526230' - supplierName: '-' - contactName: Test 1 - addresses: - - type: Billing - line1: 1 Place House - line2: '' - city: London - country: United Kingdom - postalCode: WC1X 1AH - status: Active - modifiedDate: '2023-04-25T14:19:08Z' - sourceModifiedDate: '2023-04-17T06:02:46' - metadata: - isDeleted: false - FreshBooks: - value: - id: api vendor - supplierName: api vendor - addresses: [] - status: Active - modifiedDate: '2023-03-24T16:07:25Z' - metadata: - isDeleted: false - KashFlow: - value: - id: '6202387' - supplierName: Dell - contactName: '' - emailAddress: '' - phone: '' - addresses: [] - taxNumber: '' - status: Unknown - modifiedDate: '2022-09-30T10:29:15Z' - sourceModifiedDate: '2017-05-09T00:00:00' - Oracle NetSuite: - value: - id: '779' - supplierName: Test Vendor - contactName: Test Vendor - emailAddress: '' - phone: '' - addresses: [] - status: Active - modifiedDate: '2023-01-30T14:47:02Z' - sourceModifiedDate: '2022-02-04T14:24:43' - defaultCurrency: GBP - QuickBooks Desktop: - value: - id: A60000-1197760912 - supplierName: A Cheung Limited - contactName: Angela Cheung - emailAddress: AC@CheungLimited.com - phone: 510 555 5723 - addresses: - - type: Billing - line1: 'A Cheung Limited, Angela Cheung' - line2: 3818 Bear Rd. West - city: Berkeley - region: CA - postalCode: '94688' - status: Active - modifiedDate: '2023-04-26T09:09:03Z' - sourceModifiedDate: '2023-12-16T05:06:44' - defaultCurrency: GBP - metadata: - isDeleted: false - QuickBooks Online: - value: - id: '41' - supplierName: AI Support - contactName: AI Support - addresses: - - type: Billing - line1: test - region: string - country: Djibouti - status: Active - modifiedDate: '2023-01-18T11:02:36Z' - sourceModifiedDate: '2022-12-07T10:48:18Z' - defaultCurrency: GBP - QuickBooks Online Sandbox: - value: - id: '129' - supplierName: Ally Johnson - contactName: Miss Smith - phone: 0728 38474 - addresses: - - type: Billing - line1: 100 London Road - line2: Angel - city: London - region: Greater London - country: England - postalCode: EC1M - status: Active - modifiedDate: '2023-04-26T09:35:55Z' - sourceModifiedDate: '2023-04-13T01:51:08Z' - defaultCurrency: GBP - metadata: - isDeleted: false - Sage 200cloud: - value: - id: '776' - supplierName: Aaren - contactName: '' - emailAddress: '' - phone: '' - addresses: - - type: Unknown - line1: '' - line2: '' - city: '' - region: '' - country: Great Britain - postalCode: '' - taxNumber: '' - status: Archived - modifiedDate: '2022-10-14T09:35:58Z' - defaultCurrency: GBP - metadata: - isDeleted: true - Sage 50 (UK): - value: - id: CON001 - supplierName: Concept Stationery Supplies - contactName: Mark Ramsay - emailAddress: newbusinessadvice@sage.com - phone: 0191 643 4343 - addresses: - - type: Delivery - line1: 66 New Street - line2: Ridgeway - city: Newcastle Upon Tyne - region: '' - country: GB - postalCode: NE1 4GF - - type: Unknown - line1: 66 New Street - line2: Ridgeway - city: Newcastle upon Tyne - region: '' - country: GB - postalCode: NE1 4GF - taxNumber: GB988 3453 23 - status: Active - modifiedDate: '2023-03-30T14:42:38Z' - sourceModifiedDate: '2022-11-25T09:43:54Z' - defaultCurrency: GBP - metadata: - isDeleted: false - Sage Business Cloud Accounting: - value: - id: 65179671e9ef424caff8b9006cd111c8 - supplierName: 5555 Abdul's Test Name - contactName: Main Contact - addresses: - - type: Billing - country: United Kingdom (GB) - status: Active - modifiedDate: '2022-10-24T14:52:54Z' - sourceModifiedDate: '2020-02-25T17:23:33Z' - defaultCurrency: GBP - Sage Intacct: - value: - id: '3' - supplierName: ADP - contactName: 'Jones, William' - phone: 214-760-9491 - addresses: - - type: Unknown - line1: 208 S Akard St - line2: '' - city: Dallas - region: TX - country: United States - postalCode: '75265' - registrationNumber: '' - taxNumber: 85-3678274 - status: Active - modifiedDate: '2023-04-04T16:32:20Z' - sourceModifiedDate: '2023-02-16T09:48:27' - defaultCurrency: USD - metadata: - isDeleted: false - Wave: - value: - id: QnVzaW5lc3M6ZTI0OGQyZDctMWE5Ni00YTk4LWFkOTEtMDdlMGYyMmNhNmE2O1ZlbmRvcjo2NjA0Nzk0 - supplierName: Computer Shop - contactName: '' - emailAddress: '' - addresses: [] - status: Active - modifiedDate: '2022-11-16T18:15:24Z' - sourceModifiedDate: '2020-04-07T13:28:02Z' - defaultCurrency: GBP - Xero: - value: - id: e4c9d0e2-c285-4e85-b579-6d28b180c730 - supplierName: 24 Locks - emailAddress: '' - addresses: [] - status: Active - modifiedDate: '2023-03-15T20:36:09Z' - sourceModifiedDate: '2023-02-17T18:03:42' - metadata: - isDeleted: false - Zoho Books: - value: - id: '104957000001494001' - supplierName: Acme Corporation - emailAddress: '' - addresses: [] - status: Active - modifiedDate: '2022-10-03T08:40:37Z' - sourceModifiedDate: '2022-09-16T13:09:56' - defaultCurrency: GBP - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '409': - $ref: '#/components/responses/Conflict' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - description: | - The *Get supplier* endpoint returns a single supplier for a given supplierId. - - [Suppliers](https://docs.codat.io/sync-for-expenses-api#/schemas/Supplier) are people or organizations that provide something, such as a product or service. - - Before using this endpoint, you must have [retrieved data for the company](https://docs.codat.io/sync-for-expenses-api#/operations/refresh-company-data). - operationId: get-supplier - '/companies/{companyId}/connections/{connectionId}/push/suppliers': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/connectionId' - post: - tags: - - Suppliers - parameters: - - $ref: '#/components/parameters/timeoutInMinutes' - - $ref: '#/components/parameters/allowSyncOnPushComplete' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Supplier' - examples: - Sage Intacct: - value: - id: '73593' - supplierName: test 20230420 1004 - contactName: Joe Bloggs - status: Active - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/CreateSupplierResponse' - examples: {} - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - summary: Create supplier - description: "The *Create supplier* endpoint creates a new [supplier](https://docs.codat.io/sync-for-expenses-api#/schemas/Supplier) for a given company's connection.\r\n\r\n[Suppliers](https://docs.codat.io/sync-for-expenses-api#/schemas/Supplier) are people or organizations that provide something, such as a product or service.\r\n\r\n**Integration-specific behaviour**\r\n\r\nRequired data may vary by integration. To see what data to post, first call [Get create/update supplier model](https://docs.codat.io/sync-for-expenses-api#/operations/get-create-update-suppliers-model).\r\n" - operationId: create-supplier - '/companies/{companyId}/connections/{connectionId}/push/suppliers/{supplierId}': - parameters: - - $ref: '#/components/parameters/companyId' - - $ref: '#/components/parameters/connectionId' - - $ref: '#/components/parameters/supplierId' - put: - tags: - - Suppliers - parameters: - - $ref: '#/components/parameters/timeoutInMinutes' - - $ref: '#/components/parameters/allowSyncOnPushComplete' - - $ref: '#/components/parameters/forceUpdate' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Supplier' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSupplierResponse' - examples: {} - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/Payment-Required' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/Not-Found' - '429': - $ref: '#/components/responses/Too-Many-Requests' - '500': - $ref: '#/components/responses/Internal-Server-Error' - '503': - $ref: '#/components/responses/Service-Unavailable' - summary: Update supplier - description: "The *Update supplier* endpoint updates an existing [supplier](https://docs.codat.io/sync-for-expenses-api#/schemas/Supplier) for a given company's connection.\r\n\r\n[Suppliers](https://docs.codat.io/sync-for-expenses-api#/schemas/Supplier) are people or organizations that provide something, such as a product or service.\r\n\r\n**Integration-specific behaviour**\r\n\r\nRequired data may vary by integration. To see what data to post, first call [Get create/update supplier model](https://docs.codat.io/sync-for-expenses-api#/operations/get-create-update-suppliers-model)." - operationId: update-supplier -webhooks: - expenses.sync.successful: - post: - description: Called when an expense sync successfully completes without any errors or warnings. - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ExpensesSyncWebhook' - examples: - Successful: - value: - id: ba29118f-5406-4e59-b05c-ba307ca38d01 - eventType: expenses.sync.successful - generatedDate: '2024-09-01T00:00:00Z' - payload: - referenceCompany: - id: 0498e921-9b53-4396-a412-4f2f5983b0a2 - name: Toft stores - description: Syncing expenses - syncId: ee2eb431-c0fa-4dc9-93fa-d29781c12bcd - transactions: - - id: f47ac10b-58cc-4372-a567-0e02b2c3d479 - status: Completed - errorMessage: null - - id: e7f8a3d5-0c3c-4c9b-b5d3-56b4a43b62e4 - status: Completed - errorMessage: null - responses: - '200': - description: Return a 200 status to indicate that the webhook was received successfully. - expenses.sync.unsuccessful: - post: - description: 'Called when an expense sync fails to complete successfully, resulting in at least one error or warning.' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ExpensesSyncWebhook' - examples: - Unsuccessful: - value: - id: ba29118f-5406-4e59-b05c-ba307ca38d01 - eventType: expenses.sync.unsuccessful - generatedDate: '2024-09-01T00:00:00Z' - payload: - referenceCompany: - id: 0498e921-9b53-4396-a412-4f2f5983b0a2 - name: Toft stores - description: Syncing expenses - syncId: ee2eb431-c0fa-4dc9-93fa-d29781c12bcd - transactions: - - id: f47ac10b-58cc-4372-a567-0e02b2c3d479 - status: Completed - errorMessage: null - - id: e7f8a3d5-0c3c-4c9b-b5d3-56b4a43b62e4 - status: Failed - errorMessage: Insufficient funds - responses: - '200': - description: Return a 200 status to indicate that the webhook was received successfully. - SyncCompleted: - post: - deprecated: true - description: |- - Triggered anytime an expense sync completes. Used for Sync for Expenses only. - - > This event type is deprecated. Use the `expenses.sync.successful` to get notified when an expense sync completes successfully. - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SyncCompleteWebhook' - responses: - '200': - description: Return a 200 status to indicate that the webhook was received successfully. - SyncFailed: - post: - deprecated: true - description: |- - Indicates a failure occurred during an expense sync. Used for Sync for Expenses only. - - > This event type is deprecated. Use the `expenses.sync.unsuccessful` to get notified when an expense sync completes unsuccessfully. - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SyncFailedWebhook' - responses: - '200': - description: Return a 200 status to indicate that the webhook was received successfully. - client.rateLimit.reached: - post: - description: Called when your client’s request count to Codat's API surpasses the allocated quota. - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ClientRateLimitWebhook' - examples: - Reached: - value: - id: 743ec94a-8aa4-44bb-8bd4-e1855ee0e74b - eventType: client.rateLimit.reached - generatedDate: '2024-09-01T00:00:00Z' - payload: - dailyQuota: 12000 - quotaRemaining: 0 - expiryDate: '2024-09-01T12:14:14Z' - responses: - '200': - description: Return a 200 status to indicate that the webhook was received successfully. - client.rateLimit.reset: - post: - description: 'Called when your client''s rate limit quota is reset, allowing additional requests to Codat''s API.' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ClientRateLimitWebhook' - examples: - Reset: - value: - id: 743ec94a-8aa4-44bb-8bd4-e1855ee0e74b - eventType: client.rateLimit.reset - generatedDate: '2024-09-01T00:00:00Z' - payload: - dailyQuota: 12000 - quotaRemaining: 11993 - expiryDate: '2024-09-01T23:59:99Z' - responses: - '200': - description: Return a 200 status to indicate that the webhook was received successfully. - Client rate limit reached: - post: - deprecated: true - description: "Called when your client’s requests to Codat's API exceed the allocated quota. \n\n**Note: This event type is deprecated. Developers should now use the `client.rateLimit.reached` event for handling rate limit notifications.**" - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ClientRateLimitReachedWebhook' - responses: - '200': - description: Return a 200 status to indicate that the webhook was received successfully. - Client rate limit reset: - post: - deprecated: true - description: |- - Called when the rate limit quota has reset for the client, and more requests to Codat's API are available. - - Note: This event type is deprecated. Developers should now use the `client.rateLimit.reset` event for handling rate limit notifications. - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ClientRateLimitResetWebhook' - responses: - '200': - description: Return a 200 status to indicate that the webhook was received successfully. -components: - schemas: - Account: - title: 'Accounting: Account' - description: "\uFEFF\x3E\x20\x2A\x2A\x4C\x61\x6E\x67\x75\x61\x67\x65\x20\x74\x69\x70\x3A\x2A\x2A\x20\x41\x63\x63\x6F\x75\x6E\x74\x73\x20\x61\x72\x65\x20\x61\x6C\x73\x6F\x20\x72\x65\x66\x65\x72\x72\x65\x64\x20\x74\x6F\x20\x61\x73\x20\x2A\x2A\x63\x68\x61\x72\x74\x20\x6F\x66\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x2A\x2A\x2C\x20\x2A\x2A\x6E\x6F\x6D\x69\x6E\x61\x6C\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x2A\x2A\x2C\x20\x61\x6E\x64\x20\x2A\x2A\x67\x65\x6E\x65\x72\x61\x6C\x20\x6C\x65\x64\x67\x65\x72\x2A\x2A\x2E\n\n\x23\x23\x20\x4F\x76\x65\x72\x76\x69\x65\x77\n\n\x41\x63\x63\x6F\x75\x6E\x74\x73\x20\x61\x72\x65\x20\x74\x68\x65\x20\x63\x61\x74\x65\x67\x6F\x72\x69\x65\x73\x20\x61\x20\x62\x75\x73\x69\x6E\x65\x73\x73\x20\x75\x73\x65\x73\x20\x74\x6F\x20\x72\x65\x63\x6F\x72\x64\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E\x73\x2E\x20\x46\x72\x6F\x6D\x20\x74\x68\x65\x20\x41\x63\x63\x6F\x75\x6E\x74\x73\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x73\x2C\x20\x79\x6F\x75\x20\x63\x61\x6E\x20\x72\x65\x74\x72\x69\x65\x76\x65\x20\x61\x20\x6C\x69\x73\x74\x20\x6F\x66\x20\x61\x6C\x6C\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x20\x66\x6F\x72\x20\x61\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2E\n\n\x54\x68\x65\x20\x63\x61\x74\x65\x67\x6F\x72\x69\x65\x73\x20\x66\x6F\x72\x20\x61\x6E\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x69\x6E\x63\x6C\x75\x64\x65\x3A\n\x2A\x20\x41\x73\x73\x65\x74\n\x2A\x20\x45\x78\x70\x65\x6E\x73\x65\n\x2A\x20\x49\x6E\x63\x6F\x6D\x65\n\x2A\x20\x4C\x69\x61\x62\x69\x6C\x69\x74\x79\n\x2A\x20\x45\x71\x75\x69\x74\x79\x2E\n\n\x54\x68\x65\x20\x73\x61\x6D\x65\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x6D\x61\x79\x20\x68\x61\x76\x65\x20\x61\x20\x64\x69\x66\x66\x65\x72\x65\x6E\x74\x20\x63\x61\x74\x65\x67\x6F\x72\x79\x20\x62\x61\x73\x65\x64\x20\x6F\x6E\x20\x74\x68\x65\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x20\x69\x74\x20\x69\x73\x20\x75\x73\x65\x64\x20\x69\x6E\x2E\x20\x46\x6F\x72\x20\x65\x78\x61\x6D\x70\x6C\x65\x2C\x20\x61\x20\x63\x75\x72\x72\x65\x6E\x74\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x28\x6B\x6E\x6F\x77\x6E\x20\x61\x73\x20\x63\x68\x65\x63\x6B\x69\x6E\x67\x20\x69\x6E\x20\x74\x68\x65\x20\x55\x53\x29\x20\x73\x68\x6F\x75\x6C\x64\x20\x62\x65\x20\x63\x61\x74\x65\x67\x6F\x72\x69\x7A\x65\x64\x20\x61\x73\x20\x60\x41\x73\x73\x65\x74\x2E\x43\x75\x72\x72\x65\x6E\x74\x60\x20\x66\x6F\x72\x20\x58\x65\x72\x6F\x2C\x20\x61\x6E\x64\x20\x60\x41\x73\x73\x65\x74\x2E\x42\x61\x6E\x6B\x2E\x43\x68\x65\x63\x6B\x69\x6E\x67\x60\x20\x66\x6F\x72\x20\x51\x75\x69\x63\x6B\x42\x6F\x6F\x6B\x73\x20\x4F\x6E\x6C\x69\x6E\x65\x2E\n\n\x41\x74\x20\x74\x68\x65\x20\x73\x61\x6D\x65\x20\x74\x69\x6D\x65\x2C\x20\x65\x61\x63\x68\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x20\x6D\x61\x79\x20\x68\x61\x76\x65\x20\x69\x74\x73\x20\x6F\x77\x6E\x20\x72\x65\x71\x75\x69\x72\x65\x6D\x65\x6E\x74\x73\x20\x74\x6F\x20\x74\x68\x65\x20\x63\x61\x74\x65\x67\x6F\x72\x69\x65\x73\x2E\x20\x46\x6F\x72\x20\x65\x78\x61\x6D\x70\x6C\x65\x2C\x20\x61\x20\x50\x61\x79\x70\x61\x6C\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x69\x6E\x20\x58\x65\x72\x6F\x20\x69\x73\x20\x6F\x66\x20\x74\x68\x65\x20\x60\x41\x73\x73\x65\x74\x2E\x42\x61\x6E\x6B\x60\x20\x63\x61\x74\x65\x67\x6F\x72\x79\x20\x61\x6E\x64\x20\x74\x68\x65\x72\x65\x66\x6F\x72\x65\x20\x72\x65\x71\x75\x69\x72\x65\x73\x20\x61\x64\x64\x69\x74\x69\x6F\x6E\x61\x6C\x20\x70\x72\x6F\x70\x65\x72\x74\x69\x65\x73\x20\x74\x6F\x20\x62\x65\x20\x70\x72\x6F\x76\x69\x64\x65\x64\x2E\n\n\x54\x6F\x20\x64\x65\x74\x65\x72\x6D\x69\x6E\x65\x20\x74\x68\x65\x20\x6C\x69\x73\x74\x20\x6F\x66\x20\x61\x6C\x6C\x6F\x77\x65\x64\x20\x63\x61\x74\x65\x67\x6F\x72\x69\x65\x73\x20\x66\x6F\x72\x20\x61\x20\x73\x70\x65\x63\x69\x66\x69\x63\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2C\x20\x79\x6F\x75\x20\x63\x61\x6E\x3A\n\x2D\x20\x46\x6F\x6C\x6C\x6F\x77\x20\x6F\x75\x72\x20\x5B\x43\x72\x65\x61\x74\x65\x2C\x20\x75\x70\x64\x61\x74\x65\x2C\x20\x64\x65\x6C\x65\x74\x65\x20\x64\x61\x74\x61\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x75\x73\x69\x6E\x67\x2D\x74\x68\x65\x2D\x61\x70\x69\x2F\x70\x75\x73\x68\x29\x20\x67\x75\x69\x64\x65\x20\x61\x6E\x64\x20\x75\x73\x65\x20\x74\x68\x65\x20\x5B\x47\x65\x74\x20\x63\x72\x65\x61\x74\x65\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x6D\x6F\x64\x65\x6C\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x73\x79\x6E\x63\x2D\x66\x6F\x72\x2D\x65\x78\x70\x65\x6E\x73\x65\x73\x2D\x61\x70\x69\x23\x2F\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E\x73\x2F\x67\x65\x74\x2D\x63\x72\x65\x61\x74\x65\x2D\x63\x68\x61\x72\x74\x4F\x66\x41\x63\x63\x6F\x75\x6E\x74\x73\x2D\x6D\x6F\x64\x65\x6C\x29\x2E\n\x2D\x20\x52\x65\x66\x65\x72\x20\x74\x6F\x20\x74\x68\x65\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x27\x73\x20\x6F\x77\x6E\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x61\x74\x69\x6F\x6E\x2E\n\n\x3E\x20\x2A\x2A\x41\x63\x63\x6F\x75\x6E\x74\x73\x20\x77\x69\x74\x68\x20\x6E\x6F\x20\x63\x61\x74\x65\x67\x6F\x72\x79\x2A\x2A\n\x3E\n\x3E\x20\x49\x66\x20\x61\x6E\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x69\x73\x20\x70\x75\x6C\x6C\x65\x64\x20\x66\x72\x6F\x6D\x20\x74\x68\x65\x20\x63\x68\x61\x72\x74\x20\x6F\x66\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x20\x61\x6E\x64\x20\x69\x74\x73\x20\x6E\x6F\x6D\x69\x6E\x61\x6C\x20\x63\x6F\x64\x65\x20\x64\x6F\x65\x73\x20\x6E\x6F\x74\x20\x6C\x69\x65\x20\x77\x69\x74\x68\x69\x6E\x20\x74\x68\x65\x20\x63\x61\x74\x65\x67\x6F\x72\x79\x20\x6C\x61\x79\x6F\x75\x74\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x27\x73\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x2C\x20\x74\x68\x65\x6E\x20\x74\x68\x65\x20\x2A\x2A\x74\x79\x70\x65\x2A\x2A\x20\x69\x73\x20\x60\x55\x6E\x6B\x6E\x6F\x77\x6E\x60\x2E\x20\x54\x68\x65\x20\x2A\x2A\x66\x75\x6C\x6C\x79\x51\x75\x61\x6C\x69\x66\x69\x65\x64\x43\x61\x74\x65\x67\x6F\x72\x79\x2A\x2A\x20\x61\x6E\x64\x20\x2A\x2A\x66\x75\x6C\x6C\x79\x51\x75\x61\x6C\x69\x66\x69\x65\x64\x4E\x61\x6D\x65\x2A\x2A\x20\x66\x69\x65\x6C\x64\x73\x20\x72\x65\x74\x75\x72\x6E\x20\x60\x6E\x75\x6C\x6C\x60\x2E\n\x3E\n\x3E\x20\x54\x68\x69\x73\x20\x61\x70\x70\x72\x6F\x61\x63\x68\x20\x67\x69\x76\x65\x73\x20\x61\x20\x74\x72\x75\x65\x20\x72\x65\x70\x72\x65\x73\x65\x6E\x74\x61\x74\x69\x6F\x6E\x20\x6F\x66\x20\x74\x68\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x27\x73\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x20\x77\x68\x69\x6C\x73\x74\x20\x70\x72\x65\x76\x65\x6E\x74\x69\x6E\x67\x20\x64\x69\x73\x74\x6F\x72\x74\x69\x6E\x67\x20\x66\x69\x6E\x61\x6E\x63\x69\x61\x6C\x73\x20\x73\x75\x63\x68\x20\x61\x73\x20\x61\x20\x63\x6F\x6D\x70\x61\x6E\x79\x27\x73\x20\x70\x72\x6F\x66\x69\x74\x20\x61\x6E\x64\x20\x6C\x6F\x73\x73\x20\x61\x6E\x64\x20\x62\x61\x6C\x61\x6E\x63\x65\x20\x73\x68\x65\x65\x74\x20\x72\x65\x70\x6F\x72\x74\x73\x2E" - allOf: - - properties: - id: - type: string - description: 'Identifier for the account, unique for the company.' - example: 1b6266d1-1e44-46c5-8eb5-a8f98e03124e - - $ref: '#/components/schemas/Account/definitions/accountPrototype' - - properties: - metadata: - title: Metadata - type: object - x-internal: true - properties: - isDeleted: - type: boolean - description: Indicates whether the record has been deleted in the third-party system this record originated from. - nullable: true - - title: Modified dates - x-internal: true - allOf: - - title: ModifiedDate - x-internal: true - type: object - properties: - modifiedDate: - allOf: - - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - - description: "The date when the record was last fetched from the data source and updated in Codat’s data cache. \n\nUse 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.\n\nThis 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)).\n\nIn 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/TransferTransactionRequest/properties/date/allOf/1' - - 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. \n\nIt is not populated ([read more](https://docs.codat.io/using-the-api/modified-dates#source-modified-date)) when:\n - Pulling attachments\n - The integration platform does not provide modification dates for a data type\n - A record has been deleted from the source platform and Codat doesn't have a record of when the deletion occurred\n - A record has been voided. For certain platforms that soft delete records, `isDeleted` metadata is used to identify void records\n\nIn Codat's data model, dates and times are represented using the ISO 8601 standard." - definitions: - accountPrototype: - title: Account prototype - type: object - properties: - nominalCode: - type: string - nullable: true - description: Reference given to each nominal account for a business. It ensures money is allocated to the correct account. This code isn't a unique identifier in the Codat system. - example: '610' - name: - type: string - nullable: true - description: Name of the account. - example: Accounts Receivable - description: - type: string - nullable: true - description: Description for the account. - example: Invoices the business has issued but has not yet collected payment on. - fullyQualifiedCategory: - type: string - nullable: true - description: "Full category of the account. \r\n\r\nFor example, `Liability.Current` or `Income.Revenue`. To determine a list of possible categories for each integration, see our examples, follow our [Create, update, delete data](https://docs.codat.io/using-the-api/push) guide, or refer to the integration's own documentation." - example: Asset.Current - fullyQualifiedName: - type: string - nullable: true - description: |- - Full name of the account, for example: - - `Cash On Hand` - - `Rents Held In Trust` - - `Fixed Asset` - examples: - - Cash On Hand - - Fixed Asset - 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_.\n\n## Unknown currencies\n\nIn line with the ISO 4217 specification, the code _XXX_ is used when the data source does not return a currency for a transaction. \n\nThere 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 - currentBalance: - type: number - format: decimal - nullable: true - description: Current balance in the account. - example: 0 - type: - $ref: '#/components/schemas/Account/definitions/accountType' - status: - $ref: '#/components/schemas/Account/definitions/accountStatus' - isBankAccount: - type: boolean - description: Confirms whether the account is a bank account or not. - validDatatypeLinks: - type: array - nullable: true - description: 'The validDatatypeLinks can be used to determine whether an account can be correctly mapped to another object; for example, accounts with a `type` of `income` might only support being used on an Invoice and Direct Income. For more information, see [Valid Data Type Links](/sync-for-expenses-api#/schemas/ValidDataTypeLinks).' - items: - title: Valid data type links - description: "When querying Codat's data model, some data types return `validDatatypeLinks` metadata in the JSON response. This indicates where that object can be used as a reference—a _valid link_—when creating or updating other data.\n\nFor example, `validDatatypeLinks` might indicate the following references:\n\n- Which tax rates are valid to use on the line item of a bill.\n- Which items can be used when creating an invoice. \n\nYou can use `validDatatypeLinks` to present your SMB customers with only valid choices when selecting objects from a list, for example.\n\n## `validDatatypeLinks` example\n\nThe following example uses the `Accounting.Accounts` data type. It shows that, on the linked integration, this account is valid as the account on a payment or bill payment; and as the account referenced on the line item of a direct income or direct cost. Because there is no valid link to Invoices or Bills, using this account on those data types will result in an error.\n\n```json validDatatypeLinks for an account\n{\n \"id\": \"bd9e85e0-0478-433d-ae9f-0b3c4f04bfe4\",\n \"nominalCode\": \"090\",\n \"name\": \"Business Bank Account\",\n #...\n \"validDatatypeLinks\": [\n {\n \"property\": \"Id\",\n \"links\": [\n \"Payment.AccountRef.Id\",\n \"BillPayment.AccountRef.Id\",\n \"DirectIncome.LineItems.AccountRef.Id\",\n \"DirectCost.LineItems.AccountRef.Id\"\n ]\n }\n ]\n }\n```\n\n\n\n## Support for `validDatatypeLinks`\n\nCodat currently supports `validDatatypeLinks` for some data types on our Xero, QuickBooks Online, QuickBooks Desktop, Exact (NL), and Sage Business Cloud integrations. \n\nIf you'd like us to extend support to more data types or integrations, suggest or vote for this on our Product Roadmap." - type: object - properties: - property: - type: string - nullable: true - description: The property from the account that can be linked. - links: - type: array - nullable: true - description: Supported `dataTypes` that the record can be linked to. - items: - type: string - supplementalData: - $ref: '#/components/schemas/SupplementalData' - accountRef: - title: Account reference - type: object - description: 'Data types that reference an account, for example bill and invoice line items, use an accountRef that includes the ID and name of the linked account.' - properties: - id: - type: string - description: '''id'' from the Accounts data type.' - name: - type: string - description: '''name'' from the Accounts data type.' - accountType: - title: Account type - enum: - - Unknown - - Asset - - Expense - - Income - - Liability - - Equity - type: string - description: Type of account - example: Asset - accountStatus: - title: Account status - enum: - - Unknown - - Active - - Archived - - Pending - type: string - description: Status of the account - example: Active - type: object - AccountMappingInfo: - title: Account mapping info - x-internal: true - type: object - additionalProperties: false - x-examples: - Example AccountInfo: - id: 313a4dbe-b3a4-42f0-a5f5-43e382e62db9 - nominalCode: '720' - name: Travel - currency: GBP - accountType: Expense - fullyQualifiedCategory: Expense.Overhead - isBankAccount: false - validTransactionTypes: - - Payment - - Refund - validFor: - - expense-transactions.Payment - - expense-transactions.Refund - - reimbursable-expense-transactions - properties: - id: - type: string - description: Unique identifier of account. - example: 127f3b99-8dc2-4b7e-854c-91ef9bd2757b - nullable: false - nominalCode: - type: string - description: Code used to identify each nominal account in the accounting software. - example: '300' - nullable: true - name: - type: string - description: Name of the account as it appears in the company's accounting software. - example: Purchases - nullable: false - currency: - type: string - description: Currency of the account. - example: GBP - nullable: false - accountType: - type: string - description: Type of the account. - example: Expense - enum: - - Asset - - Liability - - Income - - Expense - - Equity - nullable: false - fullyQualifiedCategory: - type: string - description: Full account type and category of the account - example: Expense.DirectCosts - nullable: false - isBankAccount: - type: boolean - description: Confirms whether the account is a bank account or not. - validTransactionTypes: - $ref: '#/components/schemas/validTransactionTypes' - description: Supported transaction types for the account. - validFor: - $ref: '#/components/schemas/validFor' - description: Supported endpoints for the account. - AdjustmentTransactionLine: - x-internal: true - title: Adjustment transaction line - type: object - properties: - amount: - type: number - format: decimal - example: 50 - description: Amount of the line. A positive line represents a debit; a negative line represents a credit. - accountRef: - $ref: '#/components/schemas/RecordRef' - description: - type: string - description: 'Any private, company notes about the transaction.' - example: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - trackingRefs: - type: array - minItems: 1 - maxItems: 10 - nullable: true - items: - $ref: '#/components/schemas/TrackingRefAdjustmentTransaction' - invoiceTo: - $ref: '#/components/schemas/InvoiceTo' - required: - - amount - - accountRef - AdjustmentTransactionRequest: - title: Adjustment transaction - type: object - properties: - id: - type: string - format: uuid - description: Your unique identifier for the transaction. - date: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: Date of the transaction. - currency: - type: string - description: Currency the transaction was recorded in. - currencyRate: - $ref: '#/components/schemas/ExpenseTransaction/properties/currencyRate' - reference: - type: string - nullable: true - description: User-friendly reference for the adjustment transaction. - lines: - type: array - description: Array of transaction lines. - minItems: 1 - maxItems: 100 - items: - $ref: '#/components/schemas/AdjustmentTransactionLine' - required: - - id - - date - - currency - - lines - AdjustmentTransactionResponse: - title: Adjustment response - x-internal: true - type: object - properties: - syncId: - type: string - example: cd937d46-8e41-43a9-9477-a79158ffd98a - format: uuid - description: Unique id of sync created - apAccountRef: - x-internal: true - type: object - title: Accounts Payable account reference - nullable: true - properties: - id: - type: string - example: 8000004C-1724173136 - description: Unique identifier for the Accounts Payable account associated with the transaction. The `apAccountRef` object is currently supported only for QuickBooks Desktop. - Attachment: - title: Attachment - type: object - x-examples: - Attachment Example: - companyId: bf1e0242-5b7a-418b-a307-9e09dbf9f39a - id: '1400000000122699154' - transactionId: f8f00edd-ddb0-4ca5-b36b-8f932e6b5160 - properties: - companyId: - type: string - format: uuid - description: Unique ID of company in Codat - id: - type: string - description: Unique identifier of attachment - transactionId: - type: string - description: Unique identifier of transaction - AttachmentUpload: - title: Attachment upload - type: object - x-internal: true - required: - - file - properties: - file: - $ref: '#/components/schemas/AttachmentUpload/definitions/codatFile' - definitions: - codatFile: - type: string - description: The file to be uploaded as an attachment. - format: binary - BankAccount: - title: 'Accounting: Bank account' - description: "> **Accessing Bank Accounts through Banking API**\n> \n> This datatype was originally used for accessing bank account data both in accounting integrations and open banking aggregators. \n> \n> To view bank account data through the Banking API, please refer to the new [Banking: Account](https://docs.codat.io/sync-for-expenses-api#/schemas/Account) data type.\n\n## Overview\n\nA list of bank accounts associated with a company and a specific data connection.\n\nBank accounts data includes:\n* The name and ID of the account in the accounting software.\n* The currency and balance of the account.\n* The sort code and account number." - type: object - allOf: - - properties: - id: - type: string - description: 'Identifier for the account, unique for the company in the accounting software.' - - $ref: '#/components/schemas/BankAccount/definitions/bankAccountPrototype' - - properties: - metadata: - $ref: '#/components/schemas/Account/allOf/2/properties/metadata' - supplementalData: - $ref: '#/components/schemas/SupplementalData' - - $ref: '#/components/schemas/Account/allOf/3' - definitions: - bankAccountPrototype: - title: Bank account prototype - type: object - properties: - accountName: - type: string - nullable: true - description: Name of the bank account in the accounting software. - accountType: - title: Bank Account Type - x-internal: true - enum: - - Unknown - - Credit - - Debit - type: string - description: "The type of transactions and balances on the account. \nFor Credit accounts, positive balances are liabilities, and positive transactions **reduce** liabilities. \nFor Debit accounts, positive balances are assets, and positive transactions **increase** assets." - nominalCode: - type: string - nullable: true - description: Code used to identify each nominal account for a business. - sortCode: - type: string - nullable: true - description: |- - Sort code for the bank account. - - Xero integrations - The sort code is only displayed when the currency = GBP and the sort code and account number sum to 14 digits. For non-GBP accounts, this field is not populated. - accountNumber: - type: string - nullable: true - description: |- - Account number for the bank account. - - Xero integrations - Only a UK account number shows for bank accounts with GBP currency and a combined total of sort code and account number that equals 14 digits, For non-GBP accounts, the full bank account number is populated. - - FreeAgent integrations - For Credit accounts, only the last four digits are required. For other types, the field is optional. - iBan: - type: string - nullable: true - description: International bank account number of the account. Often used when making or receiving international payments. - currency: - $ref: '#/components/schemas/Account/definitions/accountPrototype/properties/currency' - description: Base currency of the bank account. - balance: - type: number - format: decimal - nullable: true - description: Balance of the bank account. - institution: - type: string - nullable: true - description: The institution of the bank account. - availableBalance: - type: number - format: decimal - nullable: true - description: Total available balance of the bank account as reported by the underlying data source. This may take into account overdrafts or pending transactions for example. - overdraftLimit: - type: number - format: decimal - nullable: true - description: |- - Pre-arranged overdraft limit of the account. - - The value is always positive. For example, an overdraftLimit of `1000` means that the balance of the account can go down to `-1000`. - status: - $ref: '#/components/schemas/BankAccount/definitions/bankAccountStatus' - bankAccountCreateResponse: - title: Create bank account response - allOf: - - properties: - data: - allOf: - - $ref: '#/components/schemas/BankAccount' - - deprecated: true - - $ref: '#/components/schemas/PushOperation' - bankAccountRef: - title: Bank account reference - type: object - properties: - id: - type: string - description: Bank account 'id' for the account transaction. - name: - type: string - description: bank account 'name' for the account transaction. - description: Links to the Account transactions data type. - bankAccounts: - title: 'Accounting: Bank accounts' - allOf: - - type: object - properties: - results: - type: array - items: - $ref: '#/components/schemas/BankAccount' - - $ref: '#/components/schemas/PagingInfo' - bankAccountStatus: - title: Account status - enum: - - Unknown - - Active - - Archived - - Pending - type: string - description: Status of the bank account. - example: Active - ClientRateLimitReachedWebhook: - title: Client rate limit reached webhook - x-internal: true - description: Webhook request body for a client that has reached their rate limit. - type: object - properties: - ClientId: - $ref: '#/components/schemas/SyncFailedWebhook/properties/ClientId' - ClientName: - $ref: '#/components/schemas/SyncFailedWebhook/properties/ClientName' - RuleId: - $ref: '#/components/schemas/SyncFailedWebhook/properties/RuleId' - RuleType: - $ref: '#/components/schemas/SyncFailedWebhook/properties/RuleType' - AlertId: - $ref: '#/components/schemas/SyncFailedWebhook/properties/AlertId' - Message: - $ref: '#/components/schemas/SyncFailedWebhook/properties/Message' - Data: - $ref: '#/components/schemas/ClientRateLimitReachedWebhook/definitions/ClientRateLimitReachedWebhookData' - definitions: - ClientRateLimitReachedWebhookData: - type: object - title: Client rate limit reached webhook data - properties: - DailyQuota: - type: integer - description: The number of available requests per day. - ExpiresUtc: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: The date time in UTC when your daily quota is reset. - examples: - - ClientId: bae71d36-ff47-420a-b4a6-f8c9ddf41140 - ClientName: Bank of Dave - RuleId: 70af3071-65d9-4ec3-b3cb-5283e8d55dac - RuleType: Rate Limit Reached - AlertId: a9367074-b5c3-42c4-9be4-be129f43577e - Message: The current daily rate limit quota of 1000 requests for bae71d36-ff47-420a-b4a6-f8c9ddf41140 has been reached. - Data: - DailyQuota: 1000 - ExpiresUtc: '2023-05-03T00:00:00Z' - ClientRateLimitResetWebhook: - title: Client rate limit reset webhook - x-internal: true - description: Webhook request body for a client that has had their rate limit reset. - type: object - properties: - ClientId: - $ref: '#/components/schemas/SyncFailedWebhook/properties/ClientId' - ClientName: - $ref: '#/components/schemas/SyncFailedWebhook/properties/ClientName' - RuleId: - $ref: '#/components/schemas/SyncFailedWebhook/properties/RuleId' - RuleType: - $ref: '#/components/schemas/SyncFailedWebhook/properties/RuleType' - AlertId: - $ref: '#/components/schemas/SyncFailedWebhook/properties/AlertId' - Message: - $ref: '#/components/schemas/SyncFailedWebhook/properties/Message' - Data: - $ref: '#/components/schemas/ClientRateLimitResetWebhook/definitions/ClientRateLimitResetWebhookData' - definitions: - ClientRateLimitResetWebhookData: - type: object - title: Client rate limit reset webhook data - properties: - QuotaRemaining: - type: integer - description: Total number of requests remaining for your client. - nullable: true - ResetReason: - type: string - description: The reason for your rate limit quota being reset. - DailyQuota: - $ref: '#/components/schemas/ClientRateLimitReachedWebhook/definitions/ClientRateLimitReachedWebhookData/properties/DailyQuota' - nullable: true - ExpiresUtc: - $ref: '#/components/schemas/ClientRateLimitReachedWebhook/definitions/ClientRateLimitReachedWebhookData/properties/ExpiresUtc' - nullable: true - examples: - - ClientId: bae71d36-ff47-420a-b4a6-f8c9ddf41140 - ClientName: Bank of Dave - RuleId: 70af3071-65d9-4ec3-b3cb-5283e8d55dac - RuleType: Rate Limit Reset - AlertId: a9367074-b5c3-42c4-9be4-be129f43577e - Message: The current daily rate limit quota for client 30e0f9d2-52c0-4c9f-a806-bcd98a3bcd7e has been reset to 1000 requests. - Data: - QuotaRemaining: 1000 - ResetReason: The quota was reset because it is a new day. - DailyQuota: 1000 - ExpiresUtc: '2023-05-03T00:00:00Z' - ClientRateLimitWebhook: - title: Client rate limit webhook - type: object - properties: - id: - type: string - format: uuid - example: 743ec94a-8aa4-44bb-8bd4-e1855ee0e74b - description: Unique identifier of the event. - eventType: - type: string - description: The type of event. - examples: - - client.rateLimit.reset - - client.rateLimit.reached - generatedDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: The date time in UTC the event was generated in Codat. - payload: - $ref: '#/components/schemas/ClientRateLimitWebhook/definitions/clientRateLimitWebhookPayload' - definitions: - clientRateLimitWebhookPayload: - title: Client rate limit webhook payload - type: object - properties: - dailyQuota: - type: integer - description: The number of available requests per day. - quotaRemaining: - type: integer - description: Total number of requests remaining for your client. - expiryDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: The date time in UTC when your daily quota is reset. - Companies: - title: Companies - x-internal: true - allOf: - - type: object - properties: - results: - type: array - items: - $ref: '#/components/schemas/Company' - - $ref: '#/components/schemas/PagingInfo' - Company: - title: Company - description: "\uFEFF\x49\x6E\x20\x43\x6F\x64\x61\x74\x2C\x20\x61\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x72\x65\x70\x72\x65\x73\x65\x6E\x74\x73\x20\x61\x20\x62\x75\x73\x69\x6E\x65\x73\x73\x20\x73\x68\x61\x72\x69\x6E\x67\x20\x61\x63\x63\x65\x73\x73\x20\x74\x6F\x20\x74\x68\x65\x69\x72\x20\x64\x61\x74\x61\x2E\x20\x45\x61\x63\x68\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x63\x61\x6E\x20\x68\x61\x76\x65\x20\x6D\x75\x6C\x74\x69\x70\x6C\x65\x20\x5B\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x73\x79\x6E\x63\x2D\x66\x6F\x72\x2D\x65\x78\x70\x65\x6E\x73\x65\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x29\x20\x74\x6F\x20\x64\x69\x66\x66\x65\x72\x65\x6E\x74\x20\x64\x61\x74\x61\x20\x73\x6F\x75\x72\x63\x65\x73\x20\x73\x75\x63\x68\x20\x61\x73\x20\x6F\x6E\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x5B\x58\x65\x72\x6F\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x2F\x78\x65\x72\x6F\x2F\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x2D\x78\x65\x72\x6F\x29\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x64\x61\x74\x61\x2C\x20\x74\x77\x6F\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x20\x74\x6F\x20\x5B\x50\x6C\x61\x69\x64\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x62\x61\x6E\x6B\x69\x6E\x67\x2F\x70\x6C\x61\x69\x64\x2F\x62\x61\x6E\x6B\x69\x6E\x67\x2D\x70\x6C\x61\x69\x64\x29\x20\x66\x6F\x72\x20\x74\x77\x6F\x20\x62\x61\x6E\x6B\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x20\x61\x6E\x64\x20\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x5B\x5A\x65\x74\x74\x6C\x65\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6D\x6D\x65\x72\x63\x65\x2F\x7A\x65\x74\x74\x6C\x65\x2F\x63\x6F\x6D\x6D\x65\x72\x63\x65\x2D\x7A\x65\x74\x74\x6C\x65\x29\x20\x66\x6F\x72\x20\x50\x4F\x53\x20\x64\x61\x74\x61\x2E\n\n\x54\x79\x70\x69\x63\x61\x6C\x6C\x79\x20\x65\x61\x63\x68\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x69\x73\x20\x6F\x6E\x65\x20\x6F\x66\x20\x79\x6F\x75\x72\x20\x63\x75\x73\x74\x6F\x6D\x65\x72\x73\x2E\n\n\x57\x68\x65\x6E\x20\x79\x6F\x75\x20\x63\x72\x65\x61\x74\x65\x20\x61\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2C\x20\x79\x6F\x75\x20\x63\x61\x6E\x20\x73\x70\x65\x63\x69\x66\x79\x20\x61\x20\x60\x6E\x61\x6D\x65\x60\x20\x61\x6E\x64\x20\x77\x65\x20\x77\x69\x6C\x6C\x20\x61\x75\x74\x6F\x6D\x61\x74\x69\x63\x61\x6C\x6C\x79\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x20\x61\x20\x75\x6E\x69\x71\x75\x65\x20\x60\x69\x64\x60\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2E\x20\x59\x6F\x75\x20\x63\x61\x6E\x20\x61\x6C\x73\x6F\x20\x61\x64\x64\x20\x61\x20\x60\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x60\x20\x74\x6F\x20\x73\x74\x6F\x72\x65\x20\x61\x6E\x79\x20\x61\x64\x64\x69\x74\x69\x6F\x6E\x61\x6C\x20\x69\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F\x6E\x20\x61\x62\x6F\x75\x74\x20\x74\x68\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2E" - type: object - allOf: - - $ref: '#/components/schemas/Company/definitions/companyDetails' - - type: object - properties: - dataConnections: - type: array - items: - $ref: '#/components/schemas/Connection' - definitions: - companyDetails: - title: Company details - type: object - properties: - id: - $ref: '#/components/parameters/companyId/schema' - name: - type: string - description: The name of the company - example: Codat Ltd. - description: - $ref: '#/components/schemas/CompanyRequestBody/properties/description' - nullable: true - redirect: - type: string - format: uri - description: 'The `redirect` [Link URL](https://docs.codat.io/auth-flow/authorize-hosted-link) enabling the customer to start their auth flow journey for the company.' - example: 'https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739' - lastSync: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - nullable: true - created: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - createdByUserName: - type: string - description: Name of user that created the company in Codat. - nullable: true - products: - type: array - items: - type: string - description: An array of products that are currently enabled for the company. - tags: - title: Tags - type: object - maxProperties: 10 - propertyNames: - pattern: '^.{1,27}$' - additionalProperties: - type: string - maxLength: 100 - description: A collection of user-defined key-value pairs that store custom metadata against the company. - referenceParentCompany: - $ref: '#/components/schemas/Company/definitions/companyReference' - nullable: true - description: The parent entity or controlling organization of this company. Null if the company has no parent. - referenceSubsidiaryCompanies: - type: array - nullable: false - description: A list of subsidiary companies owned or controlled by this entity. Empty if the company has no children. - minItems: 0 - items: - $ref: '#/components/schemas/Company/definitions/companyReference' - required: - - id - - name - - redirect - companyReference: - title: Company reference - type: object - properties: - id: - $ref: '#/components/parameters/companyId/schema' - name: - $ref: '#/components/schemas/Company/definitions/companyDetails/properties/name' - description: - $ref: '#/components/schemas/Company/definitions/companyDetails/properties/description' - links: - type: object - description: A collection of links for the company. - properties: - portal: - type: string - format: uri - description: Link to the company page in the portal. - tags: - $ref: '#/components/schemas/Company/definitions/companyDetails/properties/tags' - examples: - - id: 0498e921-9b53-4396-a412-4f2f5983b0a2 - name: string - redirect: 'https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739' - lastSync: '2022-01-01T12:00:00.000Z' - created: '2022-01-01T12:00:00.000Z' - createdByUserName: string - tags: - region: us - uid: f6b0c253-16c7-4da1-a0c5-9c871e9c9d6c - dataConnections: - - id: ee2eb431-c0fa-4dc9-93fa-d29781c12bcd - integrationId: bf083d72-62c7-493e-aec9-81b4dbba7e2c - integrationKey: dfxm - sourceId: bdd831ce-eebd-4896-89a7-20e5ee8989ee - platformName: Basiq - linkUrl: 'https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start' - status: Linked - lastSync: '2022-10-27T10:22:43.6464237Z' - created: '2022-10-27T09:53:29Z' - sourceType: Banking - CompanyConfiguration: - required: - - bankAccount - - supplier - - customer - title: Company configuration - type: object - x-examples: - Config Example: - bankAccount: - id: '89' - supplier: - id: '124' - customer: - id: '140' - properties: - bankAccount: - $ref: '#/components/schemas/CompanyConfiguration/definitions/BankAccountDetails' - supplier: - $ref: '#/components/schemas/CompanyConfiguration/definitions/SupplierDetails' - customer: - $ref: '#/components/schemas/CompanyConfiguration/definitions/CustomerDetails' - definitions: - BankAccountDetails: - title: Bank account details - type: object - properties: - id: - type: string - description: The id of the account from which purchases are made - example: '32' - SupplierDetails: - title: Supplier details - type: object - properties: - id: - $ref: '#/components/schemas/Supplier/allOf/0/properties/id' - CustomerDetails: - title: Customer details - type: object - properties: - id: - $ref: '#/components/schemas/Customer/allOf/0/properties/id' - CompanyInformation: - title: 'Accounting: Company information' - description: "Company info provides standard details about a linked company such as their address, phone number, and company registration.\n\n> **Company information or companies?**\n> \n> Company information is standard information that is held in the accounting software about a company. `Companies` is an endpoint that lists businesses in the Codat system that have linked and shared their data sources." - type: object - properties: - companyName: - type: string - nullable: true - description: Name of the linked company. - accountingPlatformRef: - type: string - nullable: true - description: Identifier or reference for the company in the accounting software. - companyLegalName: - type: string - nullable: true - description: Registered legal name of the linked company. - addresses: - type: array - nullable: true - description: An array of Addresses. - items: - title: 'Accounting: Address' - x-internal: true - type: object - properties: - type: - $ref: '#/components/schemas/CompanyInformation/properties/addresses/items/definitions/accountingAddressType' - line1: - type: string - nullable: true - description: Line 1 of the customer address. - line2: - type: string - nullable: true - description: Line 2 of the customer address. - city: - type: string - nullable: true - description: City of the customer address. - region: - type: string - nullable: true - description: Region of the customer address. - country: - type: string - nullable: true - description: Country of the customer address. - postalCode: - type: string - nullable: true - description: Postal code or zip code. - required: - - type - definitions: - accountingAddressType: - description: The type of the address - type: string - enum: - - Unknown - - Billing - - Delivery - phoneNumbers: - type: array - nullable: true - description: An array of phone numbers. - items: - title: Phone - type: object - x-internal: true - properties: - number: - type: string - nullable: true - examples: - - +44 25691 154789 - - (877) 492-8687 - - 01224 658 999 - description: A phone number. - type: - $ref: '#/components/schemas/CompanyInformation/properties/phoneNumbers/items/definitions/phoneNumberType' - required: - - type - definitions: - phoneNumberType: - description: The type of phone number - type: string - enum: - - Primary - - Landline - - Mobile - - Fax - - Unknown - webLinks: - type: array - nullable: true - description: An array of weblinks. - items: - title: Weblink - description: Weblink associated with the company. - type: object - properties: - type: - description: The type of the weblink. - type: string - enum: - - Website - - Social - - Unknown - url: - description: The full URL for the weblink. - type: string - format: url - example: - type: Website - url: 'https://codat.io' - ledgerLockDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: 'If set in the accounting software, the date (in the ISO 8601 date/time format) after which accounting transactions cannot be edited. Commonly used when books are closed at year-end.' - registrationNumber: - type: string - nullable: true - description: Registration number given to the linked company by the companies authority in the country of origin. In the UK this is Companies House. - taxNumber: + displayName: Institution + description: The institution of the bank account + required: true + metadata: + type: Object + displayName: Metadata + description: Miscellaneous data about the item + properties: + isDeleted: + type: Boolean + displayName: IsDeleted + description: A boolean to indicate whether the object has been deleted + required: true + required: true + required: true + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + operationId: get-create-bankAccounts-model + description: "The *Get create/update bank account model* endpoint returns the expected data for the request payload when creating and updating a [bank account](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) for a given company and integration.\r\n\r\n[Bank accounts](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) are financial accounts maintained by a bank or other financial institution.\r\n\r\n**Integration-specific behavior**\r\n\r\nSee the *response examples* for integration-specific indicative models.\r\n" + '/companies/{companyId}/connections/{connectionId}/push/bankAccounts': + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + post: + x-internal: true + tags: + - Bank accounts + summary: Create bank account + parameters: + - $ref: '#/components/parameters/timeoutInMinutes' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BankAccounts/allOf/0/properties/results/items/definitions/bankAccountPrototype' + examples: {} + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BankAccounts/allOf/0/properties/results/items/definitions/bankAccountCreateResponse' + examples: {} + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + description: "The *Create bank account* endpoint creates a new [bank account](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) for a given company's connection.\r\n\r\n[Bank accounts](https://docs.codat.io/bank-feeds-api#/schemas/BankAccount) are financial accounts maintained by a bank or other financial institution.\r\n\r\n**Integration-specific behavior**\r\n\r\nRequired data may vary by integration. To see what data to post, first call [Get create/update bank account model](https://docs.codat.io/bank-feeds-api#/operations/get-create-update-bankAccounts-model)." + operationId: create-bank-account + '/companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts/batch': + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + post: + tags: + - Source accounts + summary: Create source accounts + description: |- + The _Batch create source accounts_ endpoint allows you to create multiple representations of your SMB's bank accounts within Codat's domain. The company can then map the source account to an existing or new target account in their accounting software. + + > ### Versioning + > If you are integrating the Bank Feeds solution with Codat after August 1, 2024, please use the v2 version of the API, as detailed in the schema below. For integrations completed before August 1, 2024, select the v1 version from the schema dropdown below. + operationId: create-batch-source-account + x-speakeasy-name-override: create-batch + requestBody: + content: + application/json: + schema: + oneOf: + - type: array + items: + $ref: '#/components/schemas/SourceAccountV2/definitions/sourceAccountV2Prototype' + - type: array + items: + $ref: '#/components/schemas/SourceAccount/definitions/sourceAccountPrototype' + responses: + '201': + description: Success + content: + application/json: + schema: + type: array + items: + oneOf: + - $ref: '#/components/schemas/SourceAccountV2BatchCreateResponse' + - $ref: '#/components/schemas/SourceAccountBatchCreateResponse' + '207': + description: Multi-Status + content: + application/json: + schema: + type: array + items: + oneOf: + - $ref: '#/components/schemas/SourceAccountV2BatchCreateResponse' + - $ref: '#/components/schemas/SourceAccountBatchCreateResponse' + - $ref: '#/components/schemas/SourceAccountBatchErrorResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '409': + description: Conflict + content: + application/json: + schema: + type: array + items: + oneOf: + - $ref: '#/components/schemas/SourceAccountV2BatchCreateResponse' + - $ref: '#/components/schemas/SourceAccountBatchCreateResponse' + - $ref: '#/components/schemas/SourceAccountBatchErrorResponse' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts': + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + post: + tags: + - Source accounts + summary: Create single source account + description: |- + The _Create Source Account_ endpoint allows you to create a representation of a bank account within Codat's domain. The company can then map the source account to an existing or new target account in their accounting software. + + > ### Versioning + > If you are integrating the Bank Feeds solution with Codat after August 1, 2024, please use the v2 version of the API, as detailed in the schema below. For integrations completed before August 1, 2024, select the v1 version from the schema dropdown below. + operationId: create-source-account + requestBody: + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/SourceAccountV2/definitions/sourceAccountV2Prototype' + - $ref: '#/components/schemas/SourceAccount/definitions/sourceAccountPrototype' + examples: + Version 2: + value: + id: acc-001 + accountName: account-081 + accountType: checking + accountNumber: '12345670' + routingInfo: + bankCode: 021001088 + type: bankcode + currency: GBP + balance: 99.99 + accountInfo: + description: account description 1 + nickname: account 123 + accountOpenDate: '2023-05-06' + availableBalance: 10 + modifiedDate: '2024-08-02T00:00:00.000Z' + Version 1: + value: + id: acc-002 + accountName: account-081 + sortCode: '123456' + accountType: Credit + accountNumber: '12345670' + currency: GBP + balance: 99.99 + modifiedDate: '2023-01-09T14:14:14.1057478Z' + responses: + '200': + description: Success + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/SourceAccountV2' + - $ref: '#/components/schemas/SourceAccount' + examples: {} + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + get: + tags: + - Source accounts + summary: List source accounts + description: "\uFEFF\x54\x68\x65\x20\x5F\x4C\x69\x73\x74\x20\x73\x6F\x75\x72\x63\x65\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x5F\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x72\x65\x74\x75\x72\x6E\x73\x20\x61\x20\x6C\x69\x73\x74\x20\x6F\x66\x20\x5B\x73\x6F\x75\x72\x63\x65\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x42\x61\x6E\x6B\x46\x65\x65\x64\x41\x63\x63\x6F\x75\x6E\x74\x29\x20\x66\x6F\x72\x20\x61\x20\x67\x69\x76\x65\x6E\x20\x63\x6F\x6D\x70\x61\x6E\x79\x27\x73\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x2E\n\n\x5B\x53\x6F\x75\x72\x63\x65\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x42\x61\x6E\x6B\x46\x65\x65\x64\x41\x63\x63\x6F\x75\x6E\x74\x29\x20\x61\x72\x65\x20\x74\x68\x65\x20\x62\x61\x6E\x6B\x27\x73\x20\x62\x61\x6E\x6B\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x77\x69\x74\x68\x69\x6E\x20\x43\x6F\x64\x61\x74\x27\x73\x20\x64\x6F\x6D\x61\x69\x6E\x20\x66\x72\x6F\x6D\x20\x77\x68\x69\x63\x68\x20\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E\x73\x20\x61\x72\x65\x20\x73\x79\x6E\x63\x65\x64\x20\x69\x6E\x74\x6F\x20\x74\x68\x65\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x70\x6C\x61\x74\x66\x6F\x72\x6D\x2E\n\n\x3E\x20\x23\x23\x23\x20\x56\x65\x72\x73\x69\x6F\x6E\x69\x6E\x67\n\x3E\x20\x49\x66\x20\x79\x6F\x75\x20\x61\x72\x65\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6E\x67\x20\x74\x68\x65\x20\x42\x61\x6E\x6B\x20\x46\x65\x65\x64\x73\x20\x73\x6F\x6C\x75\x74\x69\x6F\x6E\x20\x77\x69\x74\x68\x20\x43\x6F\x64\x61\x74\x20\x61\x66\x74\x65\x72\x20\x41\x75\x67\x75\x73\x74\x20\x31\x2C\x20\x32\x30\x32\x34\x2C\x20\x70\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x74\x68\x65\x20\x76\x32\x20\x76\x65\x72\x73\x69\x6F\x6E\x20\x6F\x66\x20\x74\x68\x65\x20\x41\x50\x49\x2C\x20\x61\x73\x20\x64\x65\x74\x61\x69\x6C\x65\x64\x20\x69\x6E\x20\x74\x68\x65\x20\x73\x63\x68\x65\x6D\x61\x20\x62\x65\x6C\x6F\x77\x2E\x20\x46\x6F\x72\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x20\x63\x6F\x6D\x70\x6C\x65\x74\x65\x64\x20\x62\x65\x66\x6F\x72\x65\x20\x41\x75\x67\x75\x73\x74\x20\x31\x2C\x20\x32\x30\x32\x34\x2C\x20\x73\x65\x6C\x65\x63\x74\x20\x74\x68\x65\x20\x76\x31\x20\x76\x65\x72\x73\x69\x6F\x6E\x20\x66\x72\x6F\x6D\x20\x74\x68\x65\x20\x73\x63\x68\x65\x6D\x61\x20\x64\x72\x6F\x70\x64\x6F\x77\x6E\x20\x62\x65\x6C\x6F\x77\x2E" + operationId: list-source-accounts + responses: + '200': + description: Success + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/SourceAccountV2/definitions/sourceAccounts' + - $ref: '#/components/schemas/SourceAccount/definitions/sourceAccounts' + examples: {} + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts/{accountId}': + patch: + tags: + - Source accounts + summary: Update source account + description: "\uFEFF\x54\x68\x65\x20\x5F\x55\x70\x64\x61\x74\x65\x20\x73\x6F\x75\x72\x63\x65\x20\x61\x63\x63\x6F\x75\x6E\x74\x5F\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x75\x70\x64\x61\x74\x65\x73\x20\x61\x20\x73\x69\x6E\x67\x6C\x65\x20\x73\x6F\x75\x72\x63\x65\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x66\x6F\x72\x20\x61\x20\x73\x69\x6E\x67\x6C\x65\x20\x64\x61\x74\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x20\x74\x6F\x20\x61\x20\x73\x69\x6E\x67\x6C\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2E\n\n\x23\x23\x23\x20\x54\x69\x70\x73\x20\x61\x6E\x64\x20\x70\x69\x74\x66\x61\x6C\x6C\x73\n\n\x2A\x20\x54\x68\x69\x73\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x6D\x61\x6B\x65\x73\x20\x69\x74\x20\x70\x6F\x73\x73\x69\x62\x6C\x65\x20\x74\x6F\x20\x75\x70\x64\x61\x74\x65\x20\x74\x68\x65\x20\x60\x61\x63\x63\x6F\x75\x6E\x74\x4E\x61\x6D\x65\x60\x2C\x20\x60\x73\x74\x61\x74\x75\x73\x60\x2C\x20\x61\x6E\x64\x20\x60\x62\x61\x6C\x61\x6E\x63\x65\x60\x20\x66\x69\x65\x6C\x64\x73\x2E\n\x20\x20\x20\x20\x2A\x20\x54\x68\x65\x20\x60\x73\x74\x61\x74\x75\x73\x60\x20\x66\x69\x65\x6C\x64\x20\x63\x61\x6E\x20\x6F\x6E\x6C\x79\x20\x62\x65\x20\x75\x70\x64\x61\x74\x65\x64\x20\x74\x6F\x20\x27\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x27\x2E\n\x20\x20\x20\x20\x2A\x20\x54\x68\x65\x20\x60\x62\x61\x6C\x61\x6E\x63\x65\x60\x20\x66\x69\x65\x6C\x64\x20\x63\x61\x6E\x20\x6F\x6E\x6C\x79\x20\x62\x65\x20\x75\x70\x64\x61\x74\x65\x64\x20\x6F\x6E\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x20\x74\x68\x61\x74\x20\x61\x72\x65\x20\x2A\x2A\x6E\x6F\x74\x2A\x2A\x20\x27\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x27\x2E\n\x2A\x20\x55\x70\x64\x61\x74\x65\x73\x20\x6D\x61\x64\x65\x20\x68\x65\x72\x65\x20\x61\x70\x70\x6C\x79\x20\x65\x78\x63\x6C\x75\x73\x69\x76\x65\x6C\x79\x20\x74\x6F\x20\x73\x6F\x75\x72\x63\x65\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x20\x61\x6E\x64\x20\x77\x69\x6C\x6C\x20\x6E\x6F\x74\x20\x61\x66\x66\x65\x63\x74\x20\x74\x61\x72\x67\x65\x74\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x20\x69\x6E\x20\x74\x68\x65\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x73\x6F\x66\x74\x77\x61\x72\x65\x2E" + operationId: update-source-account + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + - $ref: '#/components/parameters/accountId' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SourceAccount' + examples: {} + responses: + '200': + description: Success + content: + application/json: + x-speakeasy-usage-example: true + schema: + $ref: '#/components/schemas/SourceAccount' + examples: {} + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + delete: + tags: + - Source accounts + summary: Delete source account + description: | + The _Delete source account_ endpoint enables you to remove a source account. + + Removing a source account will also remove any mapping between the source bank feed bank accounts and the target bankfeed bank account. + operationId: delete-source-account + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + - $ref: '#/components/parameters/accountId' + responses: + '204': + description: No Content + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts/credentials': + post: + tags: + - Source accounts + summary: Generate source account credentials + description: "\uFEFF\x54\x68\x65\x20\x5F\x47\x65\x6E\x65\x72\x61\x74\x65\x20\x62\x61\x6E\x6B\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x63\x72\x65\x64\x65\x6E\x74\x69\x61\x6C\x73\x5F\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x63\x61\x6E\x20\x62\x65\x20\x75\x73\x65\x64\x20\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x20\x63\x72\x65\x64\x65\x6E\x74\x69\x61\x6C\x73\x20\x66\x6F\x72\x20\x51\x75\x69\x63\x6B\x42\x6F\x6F\x6B\x73\x20\x4F\x6E\x6C\x69\x6E\x65\x20\x74\x6F\x20\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x20\x74\x68\x65\x20\x42\x61\x6E\x6B\x20\x46\x65\x65\x64\x20\x69\x6E\x20\x74\x68\x65\x20\x51\x42\x4F\x20\x70\x6F\x72\x74\x61\x6C\x2E\x20\x45\x61\x63\x68\x20\x74\x69\x6D\x65\x20\x74\x68\x69\x73\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x69\x73\x20\x63\x61\x6C\x6C\x65\x64\x2C\x20\x61\x20\x6E\x65\x77\x20\x73\x65\x74\x20\x6F\x66\x20\x63\x72\x65\x64\x65\x6E\x74\x69\x61\x6C\x73\x20\x77\x69\x6C\x6C\x20\x62\x65\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64\x2E\n\n\x54\x68\x65\x20\x6F\x6C\x64\x20\x63\x72\x65\x64\x65\x6E\x74\x69\x61\x6C\x73\x20\x77\x69\x6C\x6C\x20\x73\x74\x69\x6C\x6C\x20\x62\x65\x20\x76\x61\x6C\x69\x64\x20\x75\x6E\x74\x69\x6C\x20\x74\x68\x65\x20\x72\x65\x76\x6F\x6B\x65\x20\x63\x72\x65\x64\x65\x6E\x74\x69\x61\x6C\x73\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x69\x73\x20\x75\x73\x65\x64\x2C\x20\x77\x68\x69\x63\x68\x20\x77\x69\x6C\x6C\x20\x72\x65\x76\x6F\x6B\x65\x20\x61\x6C\x6C\x20\x63\x72\x65\x64\x65\x6E\x74\x69\x61\x6C\x73\x20\x61\x73\x73\x6F\x63\x69\x61\x74\x65\x64\x20\x74\x6F\x20\x74\x68\x65\x20\x64\x61\x74\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x2E\n\n\x3E\x20\x2A\x2A\x46\x6F\x72\x20\x51\x75\x69\x63\x6B\x42\x6F\x6F\x6B\x73\x20\x4F\x6E\x6C\x69\x6E\x65\x20\x6F\x6E\x6C\x79\x2A\x2A\n\x3E\n\x3E\x20\x4F\x6E\x6C\x79\x20\x63\x61\x6C\x6C\x20\x74\x68\x69\x73\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x77\x68\x65\x6E\x20\x6F\x6E\x62\x6F\x61\x72\x64\x69\x6E\x67\x20\x53\x4D\x42\x73\x20\x74\x68\x61\x74\x20\x75\x73\x65\x20\x20\x51\x75\x69\x63\x6B\x42\x6F\x6F\x6B\x73\x20\x4F\x6E\x6C\x69\x6E\x65\x2E" + operationId: generate-credentials + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + requestBody: + required: true + content: + application/json: {} + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BankAccountCredentials' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + delete: + tags: + - Source accounts + summary: Delete all source account credentials + x-speakeasy-name-override: delete-credentials + description: |- + The _Delete Bank Account Credentials_ endpoint serves as a comprehensive mechanism for revoking all existing authorization credentials that a company employs to establish its Bank Feed connection. + + In cases where multiple credential sets have been generated, a single API call to this endpoint revokes all of them. + operationId: delete-bank-feed-credentials + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + responses: + '204': + description: No Content + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/connections/{connectionId}/bankFeedAccounts/mapping': + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + get: + tags: + - Account mapping + summary: List bank feed accounts + description: "\uFEFF\x54\x68\x65\x20\x2A\x4C\x69\x73\x74\x20\x62\x61\x6E\x6B\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x2A\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x72\x65\x74\x75\x72\x6E\x73\x20\x69\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F\x6E\x20\x61\x62\x6F\x75\x74\x20\x61\x20\x73\x6F\x75\x72\x63\x65\x20\x62\x61\x6E\x6B\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x61\x6E\x64\x20\x61\x6E\x79\x20\x63\x75\x72\x72\x65\x6E\x74\x20\x6F\x72\x20\x70\x6F\x74\x65\x6E\x74\x69\x61\x6C\x20\x74\x61\x72\x67\x65\x74\x20\x6D\x61\x70\x70\x69\x6E\x67\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x2E\n\n\x41\x20\x62\x61\x6E\x6B\x20\x66\x65\x65\x64\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x6D\x61\x70\x70\x69\x6E\x67\x20\x69\x73\x20\x61\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x6C\x69\x6E\x6B\x20\x62\x65\x74\x77\x65\x65\x6E\x20\x74\x68\x65\x20\x73\x6F\x75\x72\x63\x65\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x28\x70\x72\x6F\x76\x69\x64\x65\x64\x20\x62\x79\x20\x74\x68\x65\x20\x43\x6F\x64\x61\x74\x20\x75\x73\x65\x72\x29\x20\x61\x6E\x64\x20\x74\x68\x65\x20\x74\x61\x72\x67\x65\x74\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x28\x74\x68\x65\x20\x65\x6E\x64\x20\x75\x73\x65\x72\x27\x73\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x69\x6E\x20\x74\x68\x65\x20\x75\x6E\x64\x65\x72\x6C\x79\x69\x6E\x67\x20\x73\x6F\x66\x74\x77\x61\x72\x65\x29\x2E\n\n\x3E\x20\x2A\x2A\x46\x6F\x72\x20\x63\x75\x73\x74\x6F\x6D\x20\x62\x75\x69\x6C\x64\x73\x20\x6F\x6E\x6C\x79\x2A\x2A\n\x3E\x20\n\x3E\x20\x4F\x6E\x6C\x79\x20\x75\x73\x65\x20\x74\x68\x69\x73\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x69\x66\x20\x79\x6F\x75\x20\x61\x72\x65\x20\x62\x75\x69\x6C\x64\x69\x6E\x67\x20\x79\x6F\x75\x72\x20\x6F\x77\x6E\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x6D\x61\x6E\x61\x67\x65\x6D\x65\x6E\x74\x20\x55\x49\x2E" + operationId: get-bank-account-mapping + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BankFeedMapping/definitions/bankFeedMappings' + examples: + Example: + value: + - sourceAccountId: account-001 + status: pending + targetAccountOptions: + - name: Money Bank account + id: d21e25d6-98c5-4bfb-b469-105833bea3c8 + accountNumber: '789' + sortCode: '123456' + - name: Bank of Dave account + id: d06ff4b2-e4f2-4681-9841-014bd008cdab + accountNumber: '99887766' + sortCode: '998866' + - name: LuxLend account + id: c8f252fc-84f3-4a8b-ace8-ae99f41a81ae + accountNumber: '123456789' + sortCode: '123456' + sourceAccountName: account-001 + sourceAccountNumber: '12345670' + sourceBalance: 99.99 + sourceCurrency: GBP + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + post: + tags: + - Account mapping + summary: Create bank feed account mapping + description: "\uFEFF\x54\x68\x65\x20\x2A\x43\x72\x65\x61\x74\x65\x20\x62\x61\x6E\x6B\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x6D\x61\x70\x70\x69\x6E\x67\x2A\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x63\x72\x65\x61\x74\x65\x73\x20\x61\x20\x6E\x65\x77\x20\x6D\x61\x70\x70\x69\x6E\x67\x20\x62\x65\x74\x77\x65\x65\x6E\x20\x61\x20\x73\x6F\x75\x72\x63\x65\x20\x62\x61\x6E\x6B\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x61\x6E\x64\x20\x61\x20\x70\x6F\x74\x65\x6E\x74\x69\x61\x6C\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x69\x6E\x20\x74\x68\x65\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x73\x6F\x66\x74\x77\x61\x72\x65\x20\x28\x74\x61\x72\x67\x65\x74\x20\x61\x63\x63\x6F\x75\x6E\x74\x29\x2E\n\n\x41\x20\x62\x61\x6E\x6B\x20\x66\x65\x65\x64\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x6D\x61\x70\x70\x69\x6E\x67\x20\x69\x73\x20\x61\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x6C\x69\x6E\x6B\x20\x62\x65\x74\x77\x65\x65\x6E\x20\x74\x68\x65\x20\x73\x6F\x75\x72\x63\x65\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x28\x70\x72\x6F\x76\x69\x64\x65\x64\x20\x62\x79\x20\x74\x68\x65\x20\x43\x6F\x64\x61\x74\x20\x75\x73\x65\x72\x29\x20\x61\x6E\x64\x20\x74\x68\x65\x20\x74\x61\x72\x67\x65\x74\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x28\x74\x68\x65\x20\x65\x6E\x64\x20\x75\x73\x65\x72\x27\x73\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x69\x6E\x20\x74\x68\x65\x20\x75\x6E\x64\x65\x72\x6C\x79\x69\x6E\x67\x20\x73\x6F\x66\x74\x77\x61\x72\x65\x29\x2E\n\n\x54\x6F\x20\x66\x69\x6E\x64\x20\x76\x61\x6C\x69\x64\x20\x74\x61\x72\x67\x65\x74\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x6F\x70\x74\x69\x6F\x6E\x73\x2C\x20\x66\x69\x72\x73\x74\x20\x63\x61\x6C\x6C\x20\x74\x68\x65\x20\x5B\x4C\x69\x73\x74\x20\x62\x61\x6E\x6B\x20\x66\x65\x65\x64\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x6D\x61\x70\x70\x69\x6E\x67\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E\x73\x2F\x67\x65\x74\x2D\x62\x61\x6E\x6B\x2D\x61\x63\x63\x6F\x75\x6E\x74\x2D\x6D\x61\x70\x70\x69\x6E\x67\x29\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x2E\n\n\x3E\x20\x2A\x2A\x46\x6F\x72\x20\x63\x75\x73\x74\x6F\x6D\x20\x62\x75\x69\x6C\x64\x73\x20\x6F\x6E\x6C\x79\x2A\x2A\n\x3E\n\x3E\x20\x4F\x6E\x6C\x79\x20\x75\x73\x65\x20\x74\x68\x69\x73\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x69\x66\x20\x79\x6F\x75\x20\x61\x72\x65\x20\x62\x75\x69\x6C\x64\x69\x6E\x67\x20\x79\x6F\x75\x72\x20\x6F\x77\x6E\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x6D\x61\x6E\x61\x67\x65\x6D\x65\x6E\x74\x20\x55\x49\x2E\n\n\x23\x23\x23\x23\x20\x41\x63\x63\x6F\x75\x6E\x74\x20\x6D\x61\x70\x70\x69\x6E\x67\x20\x76\x61\x72\x69\x61\x62\x69\x6C\x69\x74\x79\n\n\x54\x68\x65\x20\x6D\x65\x74\x68\x6F\x64\x20\x6F\x66\x20\x6D\x61\x70\x70\x69\x6E\x67\x20\x74\x68\x65\x20\x73\x6F\x75\x72\x63\x65\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x74\x6F\x20\x74\x68\x65\x20\x74\x61\x72\x67\x65\x74\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x76\x61\x72\x69\x65\x73\x20\x64\x65\x70\x65\x6E\x64\x69\x6E\x67\x20\x6F\x6E\x20\x74\x68\x65\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x73\x6F\x66\x74\x77\x61\x72\x65\x20\x79\x6F\x75\x72\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x75\x73\x65\x73\x2E\n\n\x23\x23\x23\x23\x20\x4D\x61\x70\x70\x69\x6E\x67\x20\x6F\x70\x74\x69\x6F\x6E\x73\x3A\n\n\x31\x2E\x20\x2A\x2A\x41\x50\x49\x20\x4D\x61\x70\x70\x69\x6E\x67\x2A\x2A\x3A\x20\x49\x6E\x74\x65\x67\x72\x61\x74\x65\x20\x74\x68\x65\x20\x6D\x61\x70\x70\x69\x6E\x67\x20\x6A\x6F\x75\x72\x6E\x65\x79\x20\x64\x69\x72\x65\x63\x74\x6C\x79\x20\x69\x6E\x74\x6F\x20\x79\x6F\x75\x72\x20\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x61\x20\x73\x65\x61\x6D\x6C\x65\x73\x73\x20\x75\x73\x65\x72\x20\x65\x78\x70\x65\x72\x69\x65\x6E\x63\x65\x2E\n\x32\x2E\x20\x2A\x2A\x43\x6F\x64\x61\x74\x20\x55\x49\x20\x4D\x61\x70\x70\x69\x6E\x67\x2A\x2A\x3A\x20\x49\x66\x20\x79\x6F\x75\x20\x70\x72\x65\x66\x65\x72\x20\x61\x20\x71\x75\x69\x63\x6B\x65\x72\x20\x73\x65\x74\x75\x70\x2C\x20\x79\x6F\x75\x20\x63\x61\x6E\x20\x75\x74\x69\x6C\x69\x7A\x65\x20\x43\x6F\x64\x61\x74\x27\x73\x20\x70\x72\x6F\x76\x69\x64\x65\x64\x20\x75\x73\x65\x72\x20\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x20\x66\x6F\x72\x20\x6D\x61\x70\x70\x69\x6E\x67\x2E\n\x33\x2E\x20\x2A\x2A\x41\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x50\x6C\x61\x74\x66\x6F\x72\x6D\x20\x4D\x61\x70\x70\x69\x6E\x67\x2A\x2A\x3A\x20\x46\x6F\x72\x20\x73\x6F\x6D\x65\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x73\x6F\x66\x74\x77\x61\x72\x65\x2C\x20\x74\x68\x65\x20\x6D\x61\x70\x70\x69\x6E\x67\x20\x70\x72\x6F\x63\x65\x73\x73\x20\x6D\x75\x73\x74\x20\x62\x65\x20\x63\x6F\x6E\x64\x75\x63\x74\x65\x64\x20\x77\x69\x74\x68\x69\x6E\x20\x74\x68\x65\x20\x73\x6F\x66\x74\x77\x61\x72\x65\x20\x69\x74\x73\x65\x6C\x66\x2E\n\n\x23\x23\x23\x20\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2D\x73\x70\x65\x63\x69\x66\x69\x63\x20\x62\x65\x68\x61\x76\x69\x6F\x72\n\n\x7C\x20\x42\x61\x6E\x6B\x20\x46\x65\x65\x64\x20\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x20\x7C\x20\x41\x50\x49\x20\x4D\x61\x70\x70\x69\x6E\x67\x20\x7C\x20\x43\x6F\x64\x61\x74\x20\x55\x49\x20\x4D\x61\x70\x70\x69\x6E\x67\x20\x7C\x20\x41\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x50\x6C\x61\x74\x66\x6F\x72\x6D\x20\x4D\x61\x70\x70\x69\x6E\x67\x20\x7C\n\x7C\x20\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x20\x7C\x20\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x20\x7C\x20\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x20\x7C\x20\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x20\x7C\n\x7C\x20\x58\x65\x72\x6F\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\x20\u2705\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\x20\u2705\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\n\x7C\x20\x46\x72\x65\x65\x41\x67\x65\x6E\x74\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\x20\u2705\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\x20\u2705\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\n\x7C\x20\x4F\x72\x61\x63\x6C\x65\x20\x4E\x65\x74\x53\x75\x69\x74\x65\x20\x20\x20\x20\x20\x20\x20\x7C\x20\u2705\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\x20\u2705\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\n\x7C\x20\x45\x78\x61\x63\x74\x20\x4F\x6E\x6C\x69\x6E\x65\x20\x28\x4E\x4C\x29\x20\x20\x20\x20\x20\x7C\x20\u2705\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\x20\u2705\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\n\x7C\x20\x51\x75\x69\x63\x6B\x42\x6F\x6F\x6B\x73\x20\x4F\x6E\x6C\x69\x6E\x65\x20\x20\x20\x20\x20\x7C\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\x20\u2705\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\n\x7C\x20\x53\x61\x67\x65\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C\x20\u2705\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7C" + operationId: create-bank-account-mapping + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BankFeedAccountMapping' + examples: + Example: + value: + sourceAccountId: acc-002 + targetAccountId: account-081 + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BankFeedAccountMappingResponse' + examples: {} + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/connections/{connectionId}/bankFeeds/info': + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + get: + summary: Get company information + description: |- + Use the *Get company information* endpoint to return information about the company available from the underlying accounting software. + + ### Supported Integrations + | Integration | Supported | + |-----------------------|-----------| + | Oracle NetSuite | Yes | + | Xero | Yes | + | Exact | No | + | FreeAgent | No | + | Sage | No | + | QuickBooks Online | No | + operationId: get-company-information + tags: + - Company information + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CompanyInformation' + examples: {} + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/connections/{connectionId}/push/bankAccounts/{accountId}/bankTransactions': + post: + tags: + - Transactions + summary: Create bank transactions + description: "\uFEFF\x54\x68\x65\x20\x2A\x43\x72\x65\x61\x74\x65\x20\x62\x61\x6E\x6B\x20\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E\x73\x2A\x20\x65\x6E\x64\x70\x6F\x69\x6E\x74\x20\x63\x72\x65\x61\x74\x65\x73\x20\x6E\x65\x77\x20\x5B\x62\x61\x6E\x6B\x20\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x42\x61\x6E\x6B\x54\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E\x73\x29\x20\x66\x6F\x72\x20\x61\x20\x67\x69\x76\x65\x6E\x20\x63\x6F\x6D\x70\x61\x6E\x79\x27\x73\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x2E\n\n\x5B\x42\x61\x6E\x6B\x20\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x42\x61\x6E\x6B\x54\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E\x73\x29\x20\x61\x72\x65\x20\x72\x65\x63\x6F\x72\x64\x73\x20\x6F\x66\x20\x6D\x6F\x6E\x65\x74\x61\x72\x79\x20\x61\x6D\x6F\x75\x6E\x74\x73\x20\x74\x68\x61\x74\x20\x68\x61\x76\x65\x20\x6D\x6F\x76\x65\x64\x20\x69\x6E\x20\x61\x6E\x64\x20\x6F\x75\x74\x20\x6F\x66\x20\x61\x6E\x20\x53\x4D\x42\x27\x73\x20\x62\x61\x6E\x6B\x20\x61\x63\x63\x6F\x75\x6E\x74\x2E\n\n\x2A\x2A\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2D\x73\x70\x65\x63\x69\x66\x69\x63\x20\x62\x65\x68\x61\x76\x69\x6F\x72\x2A\x2A\n\n\x54\x68\x65\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x70\x72\x6F\x70\x65\x72\x74\x69\x65\x73\x20\x6D\x61\x79\x20\x76\x61\x72\x79\x20\x62\x61\x73\x65\x64\x20\x6F\x6E\x20\x74\x68\x65\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2E\x20\x46\x6F\x72\x20\x64\x65\x74\x61\x69\x6C\x65\x64\x20\x72\x65\x71\x75\x69\x72\x65\x6D\x65\x6E\x74\x73\x20\x73\x70\x65\x63\x69\x66\x69\x63\x20\x74\x6F\x20\x65\x61\x63\x68\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x73\x6F\x66\x74\x77\x61\x72\x65\x2C\x20\x72\x65\x66\x65\x72\x20\x74\x6F\x20\x74\x68\x65\x20\x41\x50\x49\x20\x72\x65\x66\x65\x72\x65\x6E\x63\x65\x20\x65\x78\x61\x6D\x70\x6C\x65\x73\x2E\n\x41\x6C\x74\x65\x72\x6E\x61\x74\x69\x76\x65\x6C\x79\x2C\x20\x79\x6F\x75\x20\x63\x61\x6E\x20\x76\x69\x65\x77\x20\x74\x68\x65\x20\x5B\x47\x65\x74\x20\x63\x72\x65\x61\x74\x65\x20\x62\x61\x6E\x6B\x20\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E\x20\x6D\x6F\x64\x65\x6C\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E\x73\x2F\x67\x65\x74\x2D\x63\x72\x65\x61\x74\x65\x2D\x62\x61\x6E\x6B\x2D\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E\x73\x2D\x6D\x6F\x64\x65\x6C\x29\x20\x66\x6F\x72\x20\x6D\x6F\x72\x65\x20\x69\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F\x6E\x2E" + operationId: create-bank-transactions + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + - $ref: '#/components/parameters/accountId' + - $ref: '#/components/parameters/timeoutInMinutes' + - name: allowSyncOnPushComplete + in: query + schema: + type: boolean + default: true + description: Allow a sync upon push completion. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateBankTransactions' + examples: + Xero: + value: + accountId: 49cd5a42-b311-4750-9361-52e2ed1d4653 + transactions: + - id: '716422529' + date: '2023-08-22T10:21:00' + description: Repayment of Credit Card + counterparty: Bank of Example + reference: Ref-12345 + reconciled: true + amount: 100 + balance: 100 + transactionType: Credit + - id: '716422530' + date: '2023-08-22T10:22:00' + description: Amazon Purchase + counterparty: Amazon + reference: Ref-12346 + reconciled: false + amount: -100 + balance: 0 + transactionType: Debit + - id: '716422531' + date: '2023-08-22T10:23:00' + description: Office Supplies + counterparty: Office Mart + reference: Ref-12347 + reconciled: false + amount: -60 + balance: -60 + transactionType: Debit + QuickBooks Online Bank Feeds: + value: + accountId: 49cd5a42-b311-4750-9361-52e2ed1d4653 + transactions: + - id: '716422529' + date: '2023-08-22T10:21:00' + description: Repayment of Credit Card + amount: 100 + balance: 100 + transactionType: Credit + - id: '716422530' + date: '2023-08-22T10:22:00' + description: Amazon Purchase + amount: -100 + balance: 0 + transactionType: Debit + - id: '716422531' + date: '2023-08-22T10:23:00' + description: Office Supplies + amount: -60 + balance: -60 + transactionType: Debit + FreeAgent: + value: + accountId: 49cd5a42-b311-4750-9361-52e2ed1d4653 + transactions: + - id: '716422529' + date: '2023-08-22T10:21:00' + description: Repayment of Credit Card + amount: 100 + transactionType: Credit + - id: '716422530' + date: '2023-08-22T10:22:00' + description: Amazon Purchase + amount: -100 + transactionType: Debit + - id: '716422531' + date: '2023-08-22T10:23:00' + description: Office Supplies + amount: -60 + transactionType: Debit + Sage: + value: + accountId: 49cd5a42-b311-4750-9361-52e2ed1d4653 + transactions: + - id: '716422529' + date: '2023-08-22T10:21:00' + description: Repayment of Credit Card + counterparty: Bank of Example + reference: Ref-12345 + amount: 100 + balance: 100 + transactionType: Credit + - id: '716422530' + date: '2023-08-22T10:22:00' + description: Amazon Purchase + counterparty: Amazon + reference: Ref-12346 + amount: -100 + balance: 0 + transactionType: Debit + - id: '716422531' + date: '2023-08-22T10:23:00' + description: Office Supplies + counterparty: Office Mart + reference: Ref-12347 + amount: -60 + balance: -60 + transactionType: Debit + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CreateBankTransactionsResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/connections/{connectionId}/options/bankAccounts/{accountId}/bankTransactions': + get: + tags: + - Transactions + summary: Get create bank transactions model + description: |- + The *Get create bank account transactions model* endpoint returns the expected data for the request payload when creating [bank account transactions](https://docs.codat.io/bank-feeds-api#/schemas/BankTransactions) for a given company and integration. + + [Bank account transactions](https://docs.codat.io/bank-feeds-api#/schemas/BankTransactions) are records of money that has moved in and out of an SMB's bank account. + + **Integration-specific behavior** + + See the *response examples* for integration-specific indicative models. + operationId: get-create-bank-transactions-model + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + - $ref: '#/components/parameters/accountId' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/PushOption' + examples: {} + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/push/{pushOperationKey}': + parameters: + - $ref: '#/components/parameters/companyId' + - schema: + type: string + format: uuid + name: pushOperationKey + in: path + required: true + description: Push operation key. + get: + summary: Get create operation + tags: + - Transactions + operationId: get-create-operation + x-speakeasy-name-override: get-create-operation + description: |- + The **Get create operation** endpoint returns a specific [write operation](/using-the-api/push) identified by the `pushOperationKey` that was performed on the company. + + Write operations are actions that send requests to Codat, enabling the creation, updating, deletion of records, or uploading attachments in the connected accounting software. + + For bank feeds, your push operations will only relate to the `bankTransactions` data type. + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PushOperation' + examples: {} + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/push': + parameters: + - $ref: '#/components/parameters/companyId' + get: + parameters: + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/pageSize' + - $ref: '#/components/parameters/query' + - $ref: '#/components/parameters/orderBy' + summary: List create operations + tags: + - Transactions + operationId: list-create-operations + x-speakeasy-name-override: list-create-operations + description: "The **List create operations** endpoint returns a list of [write operations](/using-the-api/push) performed on the company.\n\nWrite operations are actions that send requests to Codat, enabling the creation, updating, deletion of records, or uploading attachments in the connected accounting software. \n\nFor bank feeds, use this endpoint to view write operations related to the `bankTransactions` data type." + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PushOperations' + examples: {} + '400': + $ref: '#/components/responses/Malformed-Query' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/connections/{connectionId}/bankFeedAccounts/{sourceAccountId}/managedBankFeeds/syncs/{syncId}': + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + - name: sourceAccountId + in: path + required: true + schema: + type: string + description: The ID of the source bank account. + - name: syncId + in: path + required: true + schema: + type: string + format: uuid + description: The ID of the sync. + get: + tags: + - Managed bank feeds + summary: Get sync + operationId: get-managed-bank-feed-sync + x-speakeasy-name-override: get-sync + description: "The _Get sync_ endpoint returns the [sync status](https://docs.codat.io/bank-feeds-api#/schemas/SyncStatusResult) for a given 'syncId'. \n\nA sync is a single execution that fetches bank transactions from a connected bank account and records them in the company's accounting software." + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/SyncStatusResult' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/connections/{connectionId}/bankFeedAccounts/{sourceAccountId}/managedBankFeeds/syncs/latest': + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + - name: sourceAccountId + in: path + required: true + schema: + type: string + description: The ID of the source bank account. + get: + tags: + - Managed bank feeds + summary: Get latest sync + operationId: get-latest-managed-bank-feed-sync + x-speakeasy-name-override: get-latest-sync + description: "The _Get latest sync_ endpoint returns the status for a given source account's [most recent sync](https://docs.codat.io/bank-feeds-api#/schemas/SyncStatusResult). \n\nA sync is a single execution that fetches bank transactions from a connected bank account and records them in the company's accounting software." + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/SyncStatusResult' + '204': + description: No Content + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' + '/companies/{companyId}/connections/{connectionId}/bankFeedAccounts/{sourceAccountId}/managedBankFeeds/syncs': + parameters: + - $ref: '#/components/parameters/companyId' + - $ref: '#/components/parameters/connectionId' + - name: sourceAccountId + in: path + required: true + schema: + type: string + description: The ID of the source bank account. + post: + tags: + - Managed bank feeds + summary: Run ad-hoc sync + operationId: run-managed-bank-feed-ad-hoc-sync + x-speakeasy-name-override: run-ad-hoc-sync + description: |- + The _Run ad-hoc sync_ endpoint immediately runs a sync with a fetch period from the last successful sync to the execution time of the new sync. + + A sync is a single execution that fetches bank transactions from a connected bank account and records them in the company's accounting software. + + Use either the [_Get latest sync_](https://docs.codat.io/bank-feeds-api#/operations/get-latest-managed-bank-feed-sync) endpoint or the [_Get sync_](https://docs.codat.io/bank-feeds-api#/operations/fetch-managed-bank-feed-sync-by-id) endpoint to get the result of this sync. + responses: + '201': + description: Created + content: + application/json: + schema: + $ref: '#/components/schemas/StartScheduledSyncResult' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/Payment-Required' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/Not-Found' + '409': + $ref: '#/components/responses/Conflict' + '429': + $ref: '#/components/responses/Too-Many-Requests' + '500': + $ref: '#/components/responses/Internal-Server-Error' + '503': + $ref: '#/components/responses/Service-Unavailable' +webhooks: + client.rateLimit.reached: + post: + description: Called when your client’s request count to Codat's API surpasses the allocated quota. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ClientRateLimitWebhook' + examples: + Reached: + value: + id: 743ec94a-8aa4-44bb-8bd4-e1855ee0e74b + eventType: client.rateLimit.reached + generatedDate: '2024-09-01T00:00:00Z' + payload: + dailyQuota: 12000 + quotaRemaining: 0 + expiryDate: '2024-09-01T12:14:14Z' + responses: + '200': + description: Return a 200 status to indicate that the webhook was received successfully. + client.rateLimit.reset: + post: + description: 'Called when your client''s rate limit quota is reset, allowing additional requests to Codat''s API.' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ClientRateLimitWebhook' + examples: + Reset: + value: + id: 743ec94a-8aa4-44bb-8bd4-e1855ee0e74b + eventType: client.rateLimit.reset + generatedDate: '2024-09-01T00:00:00Z' + payload: + dailyQuota: 12000 + quotaRemaining: 11993 + expiryDate: '2024-09-01T23:59:99Z' + responses: + '200': + description: Return a 200 status to indicate that the webhook was received successfully. + bankFeeds.sourceAccount.connected: + post: + description: Triggered when a bank feed source account has become connected to a target account. This occurs when a user sets up mapping between the two. + x-svix-feature-flag: bank-feeds + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SourceAccountWebhook' + examples: + Connected: + value: + id: ba29118f-5406-4e59-b05c-ba307ca38d01 + eventType: bankFeeds.sourceAccount.connected + generatedDate: '2022-10-23T00:00:00.000Z' + payload: + referenceCompany: + id: 0498e921-9b53-4396-a412-4f2f5983b0a2 + name: Toft stores + description: Requested early access to the new financing scheme. + links: + portal: 'https://app.codat.io/companies/0498e921-9b53-4396-a412-4f2f5983b0a2/summary' + connectionId: 2e9d2c44-f675-40ba-8049-353bfcb5e171 + sourceAccount: + id: acc-002 + accountName: account-081 + sortCode: '040004' + accountNumber: '12345678' + currency: GBP + balance: 99.99 + modifiedDate: '2023-01-09T14:14:14.1057478Z' + status: pending + responses: + '200': + description: Return a 200 status to indicate that the webhook was received successfully. + bankFeeds.sourceAccount.disconnected: + post: + description: Called when a bank feed source account has become disconnected. + x-svix-feature-flag: bank-feeds + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SourceAccountWebhook' + examples: + Disconnected: + value: + id: ba29118f-5406-4e59-b05c-ba307ca38d01 + eventType: bankFeeds.sourceAccount.disconnected + generatedDate: '2022-10-23T00:00:00.000Z' + payload: + referenceCompany: + id: 0498e921-9b53-4396-a412-4f2f5983b0a2 + name: Toft stores + description: Requested early access to the new financing scheme. + links: + portal: 'https://app.codat.io/companies/0498e921-9b53-4396-a412-4f2f5983b0a2/summary' + connectionId: 2e9d2c44-f675-40ba-8049-353bfcb5e171 + sourceAccount: + id: acc-002 + accountName: account-081 + sortCode: '040004' + accountNumber: '12345678' + currency: GBP + balance: 99.99 + modifiedDate: '2023-01-09T14:14:14.1057478Z' + status: pending + responses: + '200': + description: Return a 200 status to indicate that the webhook was received successfully. +components: + schemas: + BankAccountCredentials: + title: Bank Account Credentials + description: Result of generate credentials + type: object + properties: + username: type: string - nullable: true - description: Company tax number. - financialYearStartDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: Start date of the financial year for the company. - baseCurrency: + example: S0MW-TR0P-7DS0 + description: Username used by the bank feeds platform to retrieve transactions + password: type: string - nullable: true - description: Currency set in the accounting software of the linked company. Used by the currency rate. - sourceUrls: - type: object - additionalProperties: - type: string - nullable: true - nullable: true - description: |- - URL addresses for the accounting source. - - For example, for Xero integrations two URLs are returned. These have many potential use cases, such as [deep linking](https://developer.xero.com/documentation/api-guides/deep-link-xero). - createdDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: Date the linked company was created in the accounting software. - supplementalData: - $ref: '#/components/schemas/SupplementalData' + example: cO0ajh0uGyTN0Pwh + description: Password to enable the bank feeds platform to securely retrieve transactions. examples: - - companyName: ACME Corporation - accountingPlatformRef: 4444e827-401b-4925-92cb-d79086bf3b6b - companyLegalName: ACME Corporation Ltd. - addresses: - - type: Billing - line1: Warner House - line2: 98 Theobald's Road - city: London - region: '' - country: United Kingdom - postalcode: WC1X 8WB - - type: Unknown - line1: 123 Sierra Way - line2: '' - city: San Pablo - region: CA - country: '' - postalCode: '87999' - phoneNumbers: - - number: 010 1234 5678 - type: Landline - webLinks: - - type: Website - url: 'https://www.wbsl.com/' - ledgerLockDate: '2019-03-04T12:08:01.881Z' - registrationNumber: '1234567890' - taxNumber: GB 123456789 - financialYearStartDate: '2019-04-01T00:00:00Z' - baseCurrency: USD - sourceUrls: - url1: 'https://go.xero.com/organisationlogin/default.aspx?shortcode=!rxs0Q' - url2: 'https://reporting.xero.com/!rxs0Q' - createdDate: '2020-02-03T16:42:02Z' - CompanyRequestBody: - title: Create company request + - QuickBooks Online Bank Feeds: null + username: S0MW-TR0P-7DS0 + password: cO0ajh0uGyTN0Pwh + BankAccounts: x-internal: true + title: 'Accounting: Bank accounts' + allOf: + - type: object + properties: + results: + type: array + items: + title: 'Accounting: Bank account' + description: "> **Accessing Bank Accounts through Banking API**\n> \n> This datatype was originally used for accessing bank account data both in accounting integrations and open banking aggregators. \n> \n> To view bank account data through the Banking API, please refer to the new [Banking: Account](https://docs.codat.io/bank-feeds-api#/schemas/Account) data type.\n\n## Overview\n\nA list of bank accounts associated with a company and a specific data connection.\n\nBank accounts data includes:\n* The name and ID of the account in the accounting software.\n* The currency and balance of the account.\n* The sort code and account number." + type: object + allOf: + - properties: + id: + type: string + description: 'Identifier for the account, unique for the company in the accounting software.' + - $ref: '#/components/schemas/BankAccounts/allOf/0/properties/results/items/definitions/bankAccountPrototype' + - properties: + metadata: + title: Metadata + type: object + x-internal: true + properties: + isDeleted: + type: boolean + description: Indicates whether the record has been deleted in the third-party system this record originated from. + nullable: true + supplementalData: + title: Supplemental data + type: object + x-internal: true + description: "Supplemental data is additional data you can include in our standard data types. \n\nIt is referenced as a configured dynamic key value pair that is unique to the accounting software. [Learn more](https://docs.codat.io/using-the-api/supplemental-data/overview) about supplemental data." + properties: + content: + type: object + additionalProperties: + type: object + additionalProperties: true + nullable: true + - title: Modified dates + x-internal: true + allOf: + - title: ModifiedDate + x-internal: true + type: object + properties: + modifiedDate: + allOf: + - $ref: '#/components/schemas/DateTime' + - description: |- + The date when the record was last fetched from the accounting software, commerce software, or open banking provider 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/DateTime' + - description: "The date when a record was last modified in the accounting software, usually by the business or a business process. For example, when payments are made against an invoice. \n\nIt is not populated ([read more](https://docs.codat.io/using-the-api/modified-dates#source-modified-date)) when:\n - Pulling attachments\n - The accounting software does not provide modification dates for a data type\n - A record has been deleted from the source platform and Codat doesn't have a record of when the deletion occurred\n - A record has been voided. For certain platforms that soft delete records, `isDeleted` metadata is used to identify void records\n\nIn Codat's data model, dates and times are represented using the ISO 8601 standard." + definitions: + bankAccountPrototype: + title: Bank account prototype + type: object + properties: + accountName: + type: string + nullable: true + description: Name of the bank account in the accounting software. + accountType: + title: Bank Account Type + x-internal: true + enum: + - Unknown + - Credit + - Debit + type: string + description: "The type of transactions and balances on the account. \nFor Credit accounts, positive balances are liabilities, and positive transactions **reduce** liabilities. \nFor Debit accounts, positive balances are assets, and positive transactions **increase** assets." + nominalCode: + type: string + nullable: true + description: Code used to identify each nominal account for a business. + sortCode: + type: string + nullable: true + description: |- + Sort code for the bank account. + + Xero integrations + The sort code is only displayed when the currency = GBP and the sort code and account number sum to 14 digits. For non-GBP accounts, this field is not populated. + accountNumber: + type: string + nullable: true + description: |- + Account number for the bank account. + + Xero integrations + Only a UK account number shows for bank accounts with GBP currency and a combined total of sort code and account number that equals 14 digits, For non-GBP accounts, the full bank account number is populated. + + FreeAgent integrations + For Credit accounts, only the last four digits are required. For other types, the field is optional. + iBan: + type: string + nullable: true + description: International bank account number of the account. Often used when making or receiving international payments. + currency: + $ref: '#/components/schemas/SourceAccount/properties/currency' + description: Base currency of the bank account. + balance: + type: number + format: decimal + nullable: true + description: Balance of the bank account. + institution: + type: string + nullable: true + description: The institution of the bank account. + availableBalance: + type: number + format: decimal + nullable: true + description: Total available balance of the bank account as reported by the underlying data source. This may take into account overdrafts or pending transactions for example. + overdraftLimit: + type: number + format: decimal + nullable: true + description: |- + Pre-arranged overdraft limit of the account. + + The value is always positive. For example, an overdraftLimit of `1000` means that the balance of the account can go down to `-1000`. + status: + $ref: '#/components/schemas/BankAccounts/allOf/0/properties/results/items/definitions/bankAccountStatus' + bankAccountCreateResponse: + title: Create bank account response + allOf: + - properties: + data: + allOf: + - $ref: '#/components/schemas/BankAccounts/allOf/0/properties/results/items' + - deprecated: true + - $ref: '#/components/schemas/PushOperation' + bankAccountRef: + title: Bank account reference + type: object + properties: + id: + type: string + description: Bank account 'id' for the account transaction. + name: + type: string + description: bank account 'name' for the account transaction. + description: Links to the Account transactions data type. + bankAccounts: + title: 'Accounting: Bank accounts' + allOf: + - type: object + properties: + results: + type: array + items: + $ref: '#/components/schemas/BankAccounts/allOf/0/properties/results/items' + - $ref: '#/components/schemas/Companies/allOf/1' + bankAccountStatus: + title: Account status + enum: + - Unknown + - Active + - Archived + - Pending + type: string + description: Status of the bank account. + example: Active + - $ref: '#/components/schemas/Companies/allOf/1' + BankFeedAccountMapping: + title: Bank feed account mapping type: object + additionalProperties: false properties: - name: + sourceAccountId: type: string - description: Name of company being connected. - pattern: '^[A-Za-z0-9\s\-'',&@.,?!\s]+$' - minLength: 1 - example: Bank of Dave - description: + description: Unique ID for the source account + targetAccountId: type: string - example: Requested early access to the new financing scheme. - description: 'Additional information about the company. This can be used to store foreign IDs, references, etc.' - tags: - $ref: '#/components/schemas/Company/definitions/companyDetails/properties/tags' + nullable: true + description: Unique ID for the target account + feedStartDate: + $ref: '#/components/schemas/DateTime' + nullable: true + description: The date from which bank transactions can be provided to the platform. required: - - name - CompanySyncStatus: - title: Company sync status + - sourceAccountId + examples: + - sourceAccountId: acc-002 + targetAccountId: account-081 + BankFeedAccountMappingResponse: + title: Bank feed account mapping response type: object additionalProperties: false - x-examples: - Success Data Pushed: - companyId: 20803807-4e9a-4cb7-b67b-9f889a3916e1 - syncId: aa4c9dfd-e945-4424-9628-9e724f14c267 - syncStatusCode: 2000 - syncStatus: Complete - errorMessage: '' - syncExceptionMessage: '' - syncUtc: '2023-01-24T14:15:22Z' - dataPushed: true - Success No Data Pushed: - companyId: 20803807-4e9a-4cb7-b67b-9f889a3916e1 - syncId: aa4c9dfd-e945-4424-9628-9e724f14c267 - syncStatusCode: 2040 - syncStatus: Complete - errorMessage: '' - syncExceptionMessage: '' - syncUtc: '2023-01-24T14:15:22Z' - dataPushed: false properties: - companyId: + sourceAccountId: type: string - description: Unique identifier for your SMB in Codat. - example: d4d73051-ed31-42b6-99f6-d288cd940992 - nullable: true - syncId: - type: string - description: Unique identifier of the sync. - example: a6a22aff-a43a-411d-a910-2dae73217cce - nullable: true - syncStatusCode: - type: integer - format: int32 - description: Status code of the sync. - example: 2000 - syncStatus: + description: Unique ID for the source account. + targetAccountId: type: string - description: Text status of the sync. - examples: - - Complete - - PushError - - Started - - NotStarted - - Pushing nullable: true - errorMessage: + description: Unique ID for the target account. + status: type: string - description: Error message of the sync. nullable: true - syncExceptionMessage: + description: Status of the POST request. + error: type: string - description: Exception message of the sync. - nullable: true - syncUtc: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: Datetime of the sync. nullable: true - dataPushed: - type: boolean - description: Boolean of whether the sync resulted in data being pushed. - Connection: - title: Connection - description: "\uFEFF\x41\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x72\x65\x70\x72\x65\x73\x65\x6E\x74\x73\x20\x61\x20\x5B\x63\x6F\x6D\x70\x61\x6E\x79\x27\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x73\x79\x6E\x63\x2D\x66\x6F\x72\x2D\x65\x78\x70\x65\x6E\x73\x65\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6D\x70\x61\x6E\x79\x29\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x61\x20\x64\x61\x74\x61\x20\x73\x6F\x75\x72\x63\x65\x20\x61\x6E\x64\x20\x61\x6C\x6C\x6F\x77\x73\x20\x79\x6F\x75\x20\x74\x6F\x20\x73\x79\x6E\x63\x68\x72\x6F\x6E\x69\x7A\x65\x20\x64\x61\x74\x61\x20\x28\x70\x75\x6C\x6C\x20\x61\x6E\x64\x2F\x6F\x72\x20\x70\x75\x73\x68\x29\x20\x77\x69\x74\x68\x20\x74\x68\x61\x74\x20\x73\x6F\x75\x72\x63\x65\x2E\n\n\x41\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x63\x61\x6E\x20\x68\x61\x76\x65\x20\x6D\x75\x6C\x74\x69\x70\x6C\x65\x20\x64\x61\x74\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x20\x64\x65\x70\x65\x6E\x64\x69\x6E\x67\x20\x6F\x6E\x20\x74\x68\x65\x20\x74\x79\x70\x65\x20\x6F\x66\x20\x64\x61\x74\x61\x20\x73\x6F\x75\x72\x63\x65\x20\x69\x74\x20\x69\x73\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6E\x67\x20\x74\x6F\x2E\x20\x46\x6F\x72\x20\x65\x78\x61\x6D\x70\x6C\x65\x2C\x20\x61\x20\x73\x69\x6E\x67\x6C\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x63\x61\x6E\x20\x6C\x69\x6E\x6B\x20\x74\x6F\x3A\n\n\x2D\x20\x5B\x41\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x64\x61\x74\x61\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x2D\x61\x70\x69\x2F\x6F\x76\x65\x72\x76\x69\x65\x77\x29\x20\x2D\x20\x31\x20\x61\x63\x74\x69\x76\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x2E\n\x2D\x20\x5B\x42\x61\x6E\x6B\x69\x6E\x67\x20\x64\x61\x74\x61\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x69\x6E\x67\x2D\x61\x70\x69\x2F\x6F\x76\x65\x72\x76\x69\x65\x77\x29\x20\x2D\x20\x4D\x75\x6C\x74\x69\x70\x6C\x65\x20\x61\x63\x74\x69\x76\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x2E\n\x2D\x20\x5B\x43\x6F\x6D\x6D\x65\x72\x63\x65\x20\x64\x61\x74\x61\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x63\x6F\x6D\x6D\x65\x72\x63\x65\x2D\x61\x70\x69\x2F\x6F\x76\x65\x72\x76\x69\x65\x77\x29\x20\x2D\x20\x4D\x75\x6C\x74\x69\x70\x6C\x65\x20\x61\x63\x74\x69\x76\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x2E\n\x41\x6E\x79\x20\x63\x6F\x6D\x62\x69\x6E\x61\x74\x69\x6F\x6E\x20\x6F\x66\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x2C\x20\x62\x61\x6E\x6B\x69\x6E\x67\x2C\x20\x61\x6E\x64\x20\x63\x6F\x6D\x6D\x65\x72\x63\x65\x20\x64\x61\x74\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x20\x69\x73\x20\x61\x6C\x6C\x6F\x77\x65\x64\x2E\n\n\x42\x65\x66\x6F\x72\x65\x20\x79\x6F\x75\x20\x63\x61\x6E\x20\x75\x73\x65\x20\x61\x20\x64\x61\x74\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x70\x75\x6C\x6C\x20\x6F\x72\x20\x70\x75\x73\x68\x20\x64\x61\x74\x61\x2C\x20\x74\x68\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x6D\x75\x73\x74\x20\x67\x72\x61\x6E\x74\x20\x79\x6F\x75\x20\x61\x63\x63\x65\x73\x73\x20\x74\x6F\x20\x74\x68\x65\x69\x72\x20\x62\x75\x73\x69\x6E\x65\x73\x73\x20\x64\x61\x74\x61\x20\x62\x79\x20\x5B\x6C\x69\x6E\x6B\x69\x6E\x67\x20\x74\x68\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x61\x75\x74\x68\x2D\x66\x6C\x6F\x77\x2F\x6F\x76\x65\x72\x76\x69\x65\x77\x29\x2E" + description: Error returned during the post request + examples: + - sourceAccountId: acc-002 + targetAccountId: account-081 + status: Failed + error: A feed connection already exists to this account + BankFeedMapping: + title: Bank feed mapping type: object + additionalProperties: false properties: - id: - $ref: '#/components/parameters/connectionId/schema' - integrationId: + sourceAccountId: type: string - format: uuid - example: fd321cb6-7963-4506-b873-e99593a45e30 - description: A Codat ID representing the integration. - integrationKey: + description: Unique ID for the source account. + sourceAccountName: type: string - description: A unique four-character ID that identifies the platform of the company's data connection. This ensures continuity if the platform changes its name in the future. - sourceId: - type: string - format: uuid - example: 35b92968-9851-4095-ad60-395c95cbcba4 - description: 'A source-specific ID used to distinguish between different sources originating from the same data connection. In general, a data connection is a single data source. However, for TrueLayer, `sourceId` is associated with a specific bank and has a many-to-one relationship with the `integrationId`.' - sourceType: - title: Source Type - description: The type of platform of the connection. + description: Name for the source account. + sourceAccountNumber: type: string - enum: - - Accounting - - Banking - - BankFeed - - Commerce - - Expense - - Other - - Unknown - example: Accounting - platformName: + description: Account number for the source account. + sourceBalance: + type: number + format: decimal + description: Balance for the source account. + sourceCurrency: + $ref: '#/components/schemas/SourceAccount/properties/currency' + targetAccountId: type: string - description: Name of integration connected to company. - linkUrl: + nullable: true + description: Unique ID for the target account in the accounting software. + targetAccountName: type: string - format: uri - description: The link URL your customers can use to authorize access to their business application. - example: 'https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/2e2eb431-c1fa-4dc9-93fa-d29781c12bcd/start' + description: Name for the target account in the accounting software. status: - $ref: '#/components/schemas/Connection/definitions/dataConnectionStatus' - lastSync: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - nullable: true - created: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - dataConnectionErrors: + type: string + description: The status. + targetAccountOptions: type: array nullable: true + description: An array of potential target accounts. items: - $ref: '#/components/schemas/Connection/definitions/dataConnectionError' - connectionInfo: - type: object + $ref: '#/components/schemas/BankFeedMapping/definitions/targetAccountOption' + feedStartDate: + $ref: '#/components/schemas/DateTime' nullable: true - additionalProperties: - type: string - additionalProperties: false - required: - - id - - integrationId - - integrationKey - - sourceId - - platformName - - linkUrl - - status - - created - - sourceType - definitions: - dataConnectionStatus: - title: Data connection status - description: The current authorization status of the data connection. - type: string - enum: - - PendingAuth - - Linked - - Unlinked - - Deauthorized - dataConnectionError: - title: Data connection error - type: object - properties: - statusCode: - type: string - description: The HTTP status code returned by the source platform when the error occurred. - statusText: - type: string - description: A non-numeric status code/text returned by the source platform when the error occurred. - errorMessage: - type: string - description: A message about a error returned by Codat. - erroredOnUtc: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - status: - title: Error status - description: The current status of a transient error. Null statuses indicate that the error is not transient. - type: string - nullable: true - enum: - - Active - - Resolved - resolvedOnUtc: - description: The datetime in Utc that the error was resolved. - nullable: true - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - dataConnectionSourceType: - title: Source Type - description: The type of platform of the connection. - type: string - enum: - - Accounting - - Banking - - BankFeed - - Commerce - - Expense - - Other - - Unknown - example: Accounting - example: - id: ee2eb431-c0fa-4dc9-93fa-d29781c12bcd - integrationId: bf083d72-62c7-493e-aec9-81b4dbba7e2c - integrationKey: dfxm - sourceId: bdd831ce-eebd-4896-89a7-20e5ee8989ee - platformName: Basiq - linkUrl: 'https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start' - status: Linked - lastSync: '2022-10-27T10:22:43.6464237Z' - created: '2022-10-27T09:53:29Z' - sourceType: Banking - Connections: - title: Connections - x-internal: true - allOf: - - type: object - properties: - results: - type: array - items: - $ref: '#/components/schemas/Connection' - - $ref: '#/components/schemas/PagingInfo' - CreateAccountResponse: - title: Create account response - x-internal: true - allOf: - - type: object - properties: - data: - allOf: - - $ref: '#/components/schemas/Account' - - deprecated: true - - $ref: '#/components/schemas/PushOperation' - CreateAdjustmentRequest: - title: Create adjustment request - x-internal: true - type: array - minItems: 1 - maxItems: 50 - items: - $ref: '#/components/schemas/AdjustmentTransactionRequest' - CreateBankAccountResponse: - title: Create bank account response - x-internal: true - allOf: - - type: object - properties: - data: - allOf: - - $ref: '#/components/schemas/BankAccount' - - deprecated: true - - $ref: '#/components/schemas/PushOperation' - CreateCustomerResponse: - title: Create customer response - x-internal: true - allOf: - - type: object - properties: - data: - allOf: - - $ref: '#/components/schemas/Customer' - - deprecated: true - - $ref: '#/components/schemas/PushOperation' - CreateExpenseRequest: - title: Create expense request - x-internal: true + description: The date from which bank transactions can be provided to the platform. + description: 'A bank feed connection between a source account and a target account, including potential target accounts.' + definitions: + targetAccountOption: + title: Target Account Option + type: object + properties: + id: + type: string + description: Id of the target account. + name: + type: string + nullable: true + description: Name of the target account. + balance: + type: number + format: decimal + nullable: true + description: The balance of the account. + sortCode: + type: string + nullable: true + description: The sort code of the account. + accountNumber: + type: string + nullable: true + description: The account number of the account. + bankFeedMappings: + title: Bank feed mappings + type: array + items: + $ref: '#/components/schemas/BankFeedMapping' + additionalProperties: false + examples: + - sourceAccountId: acc-002 + targetAccountId: account-081 + sourceCurrency: USD + status: Success + feedStartDate: '2023-01-09T14:14:14.1057478Z' + sourceAccountName: ACME Bank + sourceAccountNumber: 1234-5678 + sourceBalance: 500 + targetAccountName: ACME Bank + - sourceAccountId: c53fd75a-dddb-4493-839a-5090b008f625 + status: pending + targetAccountOptions: + - name: account-081 + id: 044096a7-1478-4554-8820-f478caad1b00 + balance: 100.99 + sortCode: '602336' + accountNumber: '23203' + sourceAccountName: bank name here + sourceAccountNumber: '5670' + sourceBalance: 1550 + sourceCurrency: GBP + BankTransactions: + title: Bank transactions type: array - minItems: 1 - maxItems: 50 + maxItems: 1000 items: - $ref: '#/components/schemas/ExpenseTransaction' - CreateExpenseResponse: - title: Create expense response - x-internal: true + title: Bank transaction + type: object + properties: + id: + type: string + description: 'Identifier for the bank account transaction, unique for the company in the accounting software.' + example: '716422529' + date: + title: Local date time + type: string + examples: + - '2023-08-22T10:21:00' + - '2023-08-22' + 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: + + ``` + 2023-08-22T10:21:00 + 2023-08-22 + ``` + + When pushing bank transaction data to Codat, the date is treated as a local date. This means: + + - The date/time is used exactly as provided, without any timezone conversion. + - If a timezone offset is included (e.g., `2023-08-22T10:21:00-05:00`), the offset will be ignored and only the local date/time portion will be used. + - We recommend providing dates without a timezone suffix for clarity (e.g., `2023-08-22T10:21:00` rather than `2023-08-22T10:21:00Z`). + description: + type: string + nullable: true + description: Description of the bank transaction. + example: Debit for Payment Id sdp-1-57379a43-c4b8-49f5-bd7c-699189ee7a60 + counterparty: + type: string + nullable: true + description: The giving or receiving party such as a person or organization. + example: ACME INC + reference: + type: string + nullable: true + description: An optional reference to the bank transaction. + example: reference for transaction + reconciled: + type: boolean + nullable: true + description: '`True` if the bank transaction has been [reconciled](https://www.xero.com/uk/guides/what-is-bank-reconciliation/) in the accounting software.' + example: false + amount: + type: number + format: decimal + description: The amount transacted in the bank transaction. + example: 999.99 + balance: + type: number + format: decimal + description: 'The remaining balance in the account with ID `accountId`. This field is optional for QuickBooks Online but is required for Xero, Sage, NetSuite, Exact, and FreeAgent.' + example: -999.99 + transactionType: + title: Bank transaction type + nullable: true + description: Type of transaction for the bank statement line. + type: string + enum: + - Unknown + - Credit + - Debit + - Int + - Div + - Fee + - SerChg + - Dep + - Atm + - Pos + - Xfer + - Check + - Payment + - Cash + - DirectDep + - DirectDebit + - RepeatPmt + - Other + ClientRateLimitWebhook: + title: Client rate limit webhook type: object properties: - syncId: + id: type: string - example: cd937d46-8e41-43a9-9477-a79158ffd98a format: uuid - description: Unique id of sync created - CreateReimbursableExpenseResponse: - title: Create reimbursable expense response - x-internal: true - type: object - properties: - syncId: + example: 743ec94a-8aa4-44bb-8bd4-e1855ee0e74b + description: Unique identifier of the event. + eventType: type: string - example: cd937d46-8e41-43a9-9477-a79158ffd98a - format: uuid - description: Unique id of sync created - CreateSupplierResponse: - title: Create supplier response + description: The type of event. + examples: + - client.rateLimit.reset + - client.rateLimit.reached + generatedDate: + $ref: '#/components/schemas/DateTime' + description: The date time in UTC the event was generated in Codat. + payload: + $ref: '#/components/schemas/ClientRateLimitWebhook/definitions/clientRateLimitWebhookPayload' + definitions: + clientRateLimitWebhookPayload: + title: Client rate limit webhook payload + type: object + properties: + dailyQuota: + type: integer + description: The number of available requests per day. + quotaRemaining: + type: integer + description: Total number of requests remaining for your client. + expiryDate: + $ref: '#/components/schemas/DateTime' + description: The date time in UTC when your daily quota is reset. + Companies: + title: Companies x-internal: true allOf: - type: object properties: - data: - allOf: - - $ref: '#/components/schemas/Supplier' - - deprecated: true - - $ref: '#/components/schemas/PushOperation' - Customer: - title: 'Accounting: Customer' - description: | - ## Overview - - A customer is a person or organisation that buys goods or services. From the Customers endpoints, you can retrieve a [list of all the customers of a company](https://api.codat.io/swagger/index.html#/Customers/get_companies__companyId__data_customers). - - Customers' data links to accounts receivable [invoices](https://docs.codat.io/sync-for-expenses-api#/schemas/Invoice). + results: + type: array + items: + $ref: '#/components/schemas/Company' + - type: object + title: Pagination information + x-internal: true + properties: + pageNumber: + type: integer + description: Current page number. + pageSize: + type: integer + description: Number of items to return in results array. + maximum: 2000 + totalResults: + type: integer + description: Total number of items. + _links: + $ref: '#/components/schemas/Companies/allOf/1/definitions/links' + definitions: + links: + title: Hal Links + type: object + required: + - self + - current + properties: + self: + $ref: '#/components/schemas/Companies/allOf/1/definitions/halRef' + current: + $ref: '#/components/schemas/Companies/allOf/1/definitions/halRef' + next: + $ref: '#/components/schemas/Companies/allOf/1/definitions/halRef' + previous: + $ref: '#/components/schemas/Companies/allOf/1/definitions/halRef' + examples: + - self: + href: /companies + current: + href: /companies?page=1&pageSize=10 + halRef: + title: Hypertext reference + type: object + properties: + href: + type: string + format: uri-reference + description: Uri hypertext reference. + required: + - pageNumber + - pageSize + - totalResults + - _links + examples: + - pageNumber: 1 + pageSize: 10 + totalResults: 1 + _links: + self: + href: '/companies/{id}/data/{dataType}' + current: + href: '/companies/{id}/data/{dataType}?page=1&pageSize=10' + Company: + title: Company + description: "\uFEFF\x49\x6E\x20\x43\x6F\x64\x61\x74\x2C\x20\x61\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x72\x65\x70\x72\x65\x73\x65\x6E\x74\x73\x20\x61\x20\x62\x75\x73\x69\x6E\x65\x73\x73\x20\x73\x68\x61\x72\x69\x6E\x67\x20\x61\x63\x63\x65\x73\x73\x20\x74\x6F\x20\x74\x68\x65\x69\x72\x20\x64\x61\x74\x61\x2E\x20\x45\x61\x63\x68\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x63\x61\x6E\x20\x68\x61\x76\x65\x20\x6D\x75\x6C\x74\x69\x70\x6C\x65\x20\x5B\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x29\x20\x74\x6F\x20\x64\x69\x66\x66\x65\x72\x65\x6E\x74\x20\x64\x61\x74\x61\x20\x73\x6F\x75\x72\x63\x65\x73\x20\x73\x75\x63\x68\x20\x61\x73\x20\x6F\x6E\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x5B\x58\x65\x72\x6F\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x2F\x78\x65\x72\x6F\x2F\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x2D\x78\x65\x72\x6F\x29\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x64\x61\x74\x61\x2C\x20\x74\x77\x6F\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x20\x74\x6F\x20\x5B\x50\x6C\x61\x69\x64\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x62\x61\x6E\x6B\x69\x6E\x67\x2F\x70\x6C\x61\x69\x64\x2F\x62\x61\x6E\x6B\x69\x6E\x67\x2D\x70\x6C\x61\x69\x64\x29\x20\x66\x6F\x72\x20\x74\x77\x6F\x20\x62\x61\x6E\x6B\x20\x61\x63\x63\x6F\x75\x6E\x74\x73\x20\x61\x6E\x64\x20\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x5B\x5A\x65\x74\x74\x6C\x65\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6D\x6D\x65\x72\x63\x65\x2F\x7A\x65\x74\x74\x6C\x65\x2F\x63\x6F\x6D\x6D\x65\x72\x63\x65\x2D\x7A\x65\x74\x74\x6C\x65\x29\x20\x66\x6F\x72\x20\x50\x4F\x53\x20\x64\x61\x74\x61\x2E\n\n\x54\x79\x70\x69\x63\x61\x6C\x6C\x79\x20\x65\x61\x63\x68\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x69\x73\x20\x6F\x6E\x65\x20\x6F\x66\x20\x79\x6F\x75\x72\x20\x63\x75\x73\x74\x6F\x6D\x65\x72\x73\x2E\n\n\x57\x68\x65\x6E\x20\x79\x6F\x75\x20\x63\x72\x65\x61\x74\x65\x20\x61\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2C\x20\x79\x6F\x75\x20\x63\x61\x6E\x20\x73\x70\x65\x63\x69\x66\x79\x20\x61\x20\x60\x6E\x61\x6D\x65\x60\x20\x61\x6E\x64\x20\x77\x65\x20\x77\x69\x6C\x6C\x20\x61\x75\x74\x6F\x6D\x61\x74\x69\x63\x61\x6C\x6C\x79\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x20\x61\x20\x75\x6E\x69\x71\x75\x65\x20\x60\x69\x64\x60\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2E\x20\x59\x6F\x75\x20\x63\x61\x6E\x20\x61\x6C\x73\x6F\x20\x61\x64\x64\x20\x61\x20\x60\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x60\x20\x74\x6F\x20\x73\x74\x6F\x72\x65\x20\x61\x6E\x79\x20\x61\x64\x64\x69\x74\x69\x6F\x6E\x61\x6C\x20\x69\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F\x6E\x20\x61\x62\x6F\x75\x74\x20\x74\x68\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x2E" type: object allOf: + - $ref: '#/components/schemas/Company/definitions/companyDetails' - type: object properties: - id: - type: string - description: 'Identifier for the customer, unique to the company in the accounting software.' - customerName: - type: string - nullable: true - description: 'Name of the customer as recorded in the accounting system, typically the company name.' - contactName: - type: string - nullable: true - description: Name of the main contact for the identified customer. - emailAddress: - type: string - nullable: true - description: Email address the customer can be contacted by. - defaultCurrency: - $ref: '#/components/schemas/Account/definitions/accountPrototype/properties/currency' - description: Default currency the transactional data of the customer is recorded in. - phone: - type: string - nullable: true - description: Phone number the customer can be contacted by. - addresses: - type: array - nullable: true - description: An array of Addresses. - items: - $ref: '#/components/schemas/CompanyInformation/properties/addresses/items' - contacts: + dataConnections: type: array - nullable: true - description: An array of Contacts. items: - $ref: '#/components/schemas/Customer/definitions/contact' - registrationNumber: - type: string - nullable: true - description: 'Company number. In the UK, this is typically the Companies House company registration number.' - taxNumber: - type: string - nullable: true - description: Company tax number. - status: - $ref: '#/components/schemas/Customer/definitions/customerStatus' - description: Current state of the customer. - metadata: - $ref: '#/components/schemas/Account/allOf/2/properties/metadata' - supplementalData: - $ref: '#/components/schemas/SupplementalData' - - $ref: '#/components/schemas/Account/allOf/3' - required: - - status + $ref: '#/components/schemas/Connection' definitions: - accountingCustomerRef: + companyDetails: + title: Company details type: object properties: id: - minLength: 1 - type: string - description: '`id` from the Customers data type' - companyName: + $ref: '#/components/parameters/companyId/schema' + name: type: string + description: The name of the company + example: Codat Ltd. + description: + $ref: '#/components/schemas/CompanyRequestBody/properties/description' nullable: true - description: '`customerName` from the Customer data type' - required: - - id - customerStatus: - description: Status of customer. - type: string - enum: - - Unknown - - Active - - Archived - contact: - type: object - properties: - name: + redirect: type: string + format: uri + description: 'The `redirect` [Link URL](https://docs.codat.io/auth-flow/authorize-hosted-link) enabling the customer to start their auth flow journey for the company.' + example: 'https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739' + lastSync: + $ref: '#/components/schemas/DateTime' nullable: true - description: Name of a contact for a customer. - email: + created: + $ref: '#/components/schemas/DateTime' + createdByUserName: type: string + description: Name of user that created the company in Codat. nullable: true - description: Email of a contact for a customer. - phone: + products: type: array + items: + type: string + description: An array of products that are currently enabled for the company. + tags: + title: Tags + type: object + maxProperties: 10 + propertyNames: + pattern: '^.{1,27}$' + additionalProperties: + type: string + maxLength: 100 + description: A collection of user-defined key-value pairs that store custom metadata against the company. + referenceParentCompany: + $ref: '#/components/schemas/Company/definitions/companyReference' nullable: true - description: An array of Phone numbers. + description: The parent entity or controlling organization of this company. Null if the company has no parent. + referenceSubsidiaryCompanies: + type: array + nullable: false + description: A list of subsidiary companies owned or controlled by this entity. Empty if the company has no children. + minItems: 0 items: - $ref: '#/components/schemas/CompanyInformation/properties/phoneNumbers/items' - address: - $ref: '#/components/schemas/CompanyInformation/properties/addresses/items' - description: An object of Address information. - status: - $ref: '#/components/schemas/Customer/definitions/customerStatus' - modifiedDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' + $ref: '#/components/schemas/Company/definitions/companyReference' required: - - status - Customers: - title: Customers - x-internal: true - allOf: - - type: object - properties: - results: - type: array - items: - $ref: '#/components/schemas/Customer' - - $ref: '#/components/schemas/PagingInfo' - DataStatus: - title: Data status - description: Describes the state of data in the Codat cache for a company and data type - type: object - required: - - dataType - - lastSuccessfulSync - - currentStatus - properties: - dataType: - title: Data types - x-internal: true - type: string - description: Available data types - enum: - - accountTransactions - - balanceSheet - - bankAccounts - - bankTransactions - - billCreditNotes - - billPayments - - bills - - cashFlowStatement - - chartOfAccounts - - company - - creditNotes - - customers - - directCosts - - directIncomes - - invoices - - itemReceipts - - items - - journalEntries - - journals - - paymentMethods - - payments - - profitAndLoss - - purchaseOrders - - salesOrders - - suppliers - - taxRates - - trackingCategories - - transfers - - banking-accountBalances - - banking-accounts - - banking-transactionCategories - - banking-transactions - - commerce-companyInfo - - commerce-customers - - commerce-disputes - - commerce-locations - - commerce-orders - - commerce-paymentMethods - - commerce-payments - - commerce-productCategories - - commerce-products - - commerce-taxComponents - - commerce-transactions - example: invoices - lastSuccessfulSync: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - currentStatus: - $ref: '#/components/schemas/PullOperation/properties/status' - latestSyncId: - type: string - description: Unique identifier for most recent sync of data type. - format: uuid - example: ad474a37-2003-478e-baee-9af9f1ec2fe3 - latestSuccessfulSyncId: - type: string - description: Unique identifier for the most recent successful sync of data type. - format: uuid - example: 8220fc90-55b6-47bc-9417-48ac6ea93101 + - id + - name + - redirect + companyReference: + title: Company reference + type: object + properties: + id: + $ref: '#/components/parameters/companyId/schema' + name: + $ref: '#/components/schemas/Company/definitions/companyDetails/properties/name' + description: + $ref: '#/components/schemas/Company/definitions/companyDetails/properties/description' + links: + type: object + description: A collection of links for the company. + properties: + portal: + type: string + format: uri + description: Link to the company page in the portal. + tags: + $ref: '#/components/schemas/Company/definitions/companyDetails/properties/tags' examples: - - dataType: string - lastSuccessfulSync: '2022-01-01T13:00:00.000Z' - currentStatus: string - latestSyncId: ad474a37-2003-478e-baee-9af9f1ec2fe3 - latestSuccessfulSyncId: 8220fc90-55b6-47bc-9417-48ac6ea93101 - DataStatusResponse: - x-internal: true - title: Data status response - type: object - additionalProperties: - $ref: '#/components/schemas/DataStatus' - DataType: - x-internal: true - $ref: '#/components/schemas/DataStatus/properties/dataType' - ErrorMessage: - title: Error message - type: object - x-internal: true - properties: - statusCode: - type: integer - description: The HTTP status code returned by the error. - service: - type: string - description: Codat's service the returned the error. - error: - type: string - description: A brief description of the error. - correlationId: - type: string - description: Unique identifier used to propagate to all downstream services and determine the source of the error. - validation: - $ref: '#/components/schemas/ErrorMessage/definitions/errorValidation' - canBeRetried: - type: string - description: '`True` if the error occurred transiently and can be retried.' - detailedErrorCode: - type: integer - description: Machine readable error code used to automate processes based on the code returned. + - id: 0498e921-9b53-4396-a412-4f2f5983b0a2 + name: string + redirect: 'https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739' + lastSync: '2022-01-01T12:00:00.000Z' + created: '2022-01-01T12:00:00.000Z' + createdByUserName: string + tags: + region: us + uid: f6b0c253-16c7-4da1-a0c5-9c871e9c9d6c + dataConnections: + - id: ee2eb431-c0fa-4dc9-93fa-d29781c12bcd + integrationId: bf083d72-62c7-493e-aec9-81b4dbba7e2c + integrationKey: dfxm + sourceId: bdd831ce-eebd-4896-89a7-20e5ee8989ee + platformName: Basiq + linkUrl: 'https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start' + status: Linked + lastSync: '2022-10-27T10:22:43.6464237Z' + created: '2022-10-27T09:53:29Z' + sourceType: Banking + products: + - spend-insights + - lending + CompanyAccessToken: + title: Company access token + description: Details of the access token provisioned for a company. + type: object + allOf: + - $ref: '#/components/schemas/CompanyAccessToken/definitions/accessToken' definitions: - errorValidation: - title: Validation error - type: object - nullable: true - description: 'A human-readable object describing validation decisions Codat has made. If an operation has failed because of validation errors, they will be detailed here.' - properties: - errors: - type: array - nullable: true - items: - $ref: '#/components/schemas/ErrorMessage/definitions/errorValidationItem' - warnings: - type: array - nullable: true - items: - $ref: '#/components/schemas/ErrorMessage/definitions/errorValidationItem' - errorValidationItem: - title: Validation error item + accessToken: + title: Access token type: object properties: - itemId: - type: string - nullable: true - description: Unique identifier for a validation item. - message: + expiresIn: + type: integer + description: The number of seconds until the access token expires. + example: 86400 + accessToken: type: string - nullable: true - description: A message outlining validation item's issue. - validatorName: + description: The access token for the company. + tokenType: type: string - nullable: true - description: Name of validator. - ExpenseContactRef: + description: The type of token. + example: Bearer + required: + - expiresIn + - accessToken + - tokenType + examples: + - expiresIn: 86400 + accessToken: string + tokenType: Bearer + CompanyInformation: + title: Company information + description: Information about the company from the underlying accounting software. type: object - title: Supplier/customer reference + properties: + companyName: + type: string + nullable: false + description: Name of the linked company. + baseCurrency: + type: string + nullable: false + description: Currency set in the accounting software of the linked company. + planType: + type: string + nullable: true + description: 'Accounting software subscription type such as Trial, Demo, Standard.' + multicurrencyEnabled: + type: boolean + description: Boolean showing if the organisation has multicurrency enabled. + currencies: + type: array + nullable: true + description: Array of enabled currencies for the linked company. + items: + type: string + CompanyRequestBody: + title: Create company request x-internal: true + type: object properties: - id: + name: type: string - example: 40e3e57c-2322-4898-966c-ca41adfd23fd - description: Identifier of supplier or customer. - type: + description: Name of company being connected. + pattern: '^[A-Za-z0-9\s\-'',&@.,?!\s]+$' + minLength: 1 + example: Bank of Dave + description: type: string - description: The type of contact. - example: Supplier - default: Supplier - enum: - - Supplier + example: Requested early access to the new financing scheme. + description: 'Additional information about the company. This can be used to store foreign IDs, references, etc.' + tags: + $ref: '#/components/schemas/Company/definitions/companyDetails/properties/tags' required: - - id - ExpensesSyncWebhook: - title: Expenses sync webhook + - name + CompanyUpdateRequest: + title: Update company request + x-internal: true type: object properties: - id: - type: string - format: uuid - example: ba29118f-5406-4e59-b05c-ba307ca38d01 - description: Unique identifier of the event. - eventType: + name: type: string - description: The type of event. - examples: - - expenses.sync.successful - - expenses.sync.unsuccessful - generatedDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: The date time in UTC the event was generated in Codat. - payload: - $ref: '#/components/schemas/ExpensesSyncWebhook/definitions/expensesSyncWebhookPayload' - definitions: - transaction: - title: Transaction - type: object - properties: - id: - type: string - description: Unique identifier of the transaction. - status: - type: string - enum: - - Unknown - - PushError - - Completed - - Failed - - Pending - description: Status of transaction. - errorMessage: - type: string - nullable: true - description: Error message for failed transaction. - expensesSyncWebhookPayload: - title: Expenses sync webhook payload - type: object - properties: - referenceCompany: - $ref: '#/components/schemas/Company/definitions/companyReference' - syncId: - type: string - description: Unique identifier of the sync. - transactions: - type: array - items: - $ref: '#/components/schemas/ExpensesSyncWebhook/definitions/transaction' - ExpenseTransaction: - title: Expense transaction + description: Name of company being connected. + pattern: '^[A-Za-z0-9\s\-'',&@.,?!\s]+$' + minLength: 1 + example: Bank of Dave + description: + $ref: '#/components/schemas/CompanyRequestBody/properties/description' + tags: + $ref: '#/components/schemas/Company/definitions/companyDetails/properties/tags' + Connection: + title: Connection + description: "\uFEFF\x41\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x72\x65\x70\x72\x65\x73\x65\x6E\x74\x73\x20\x61\x20\x5B\x63\x6F\x6D\x70\x61\x6E\x79\x27\x73\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x2D\x66\x65\x65\x64\x73\x2D\x61\x70\x69\x23\x2F\x73\x63\x68\x65\x6D\x61\x73\x2F\x43\x6F\x6D\x70\x61\x6E\x79\x29\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x61\x20\x64\x61\x74\x61\x20\x73\x6F\x75\x72\x63\x65\x20\x61\x6E\x64\x20\x61\x6C\x6C\x6F\x77\x73\x20\x79\x6F\x75\x20\x74\x6F\x20\x73\x79\x6E\x63\x68\x72\x6F\x6E\x69\x7A\x65\x20\x64\x61\x74\x61\x20\x28\x70\x75\x6C\x6C\x20\x61\x6E\x64\x2F\x6F\x72\x20\x70\x75\x73\x68\x29\x20\x77\x69\x74\x68\x20\x74\x68\x61\x74\x20\x73\x6F\x75\x72\x63\x65\x2E\n\n\x41\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x63\x61\x6E\x20\x68\x61\x76\x65\x20\x6D\x75\x6C\x74\x69\x70\x6C\x65\x20\x64\x61\x74\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x20\x64\x65\x70\x65\x6E\x64\x69\x6E\x67\x20\x6F\x6E\x20\x74\x68\x65\x20\x74\x79\x70\x65\x20\x6F\x66\x20\x64\x61\x74\x61\x20\x73\x6F\x75\x72\x63\x65\x20\x69\x74\x20\x69\x73\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6E\x67\x20\x74\x6F\x2E\x20\x46\x6F\x72\x20\x65\x78\x61\x6D\x70\x6C\x65\x2C\x20\x61\x20\x73\x69\x6E\x67\x6C\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x63\x61\x6E\x20\x6C\x69\x6E\x6B\x20\x74\x6F\x3A\n\n\x2D\x20\x5B\x41\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x20\x64\x61\x74\x61\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x2D\x61\x70\x69\x2F\x6F\x76\x65\x72\x76\x69\x65\x77\x29\x20\x2D\x20\x31\x20\x61\x63\x74\x69\x76\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x2E\n\x2D\x20\x5B\x42\x61\x6E\x6B\x69\x6E\x67\x20\x64\x61\x74\x61\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x62\x61\x6E\x6B\x69\x6E\x67\x2D\x61\x70\x69\x2F\x6F\x76\x65\x72\x76\x69\x65\x77\x29\x20\x2D\x20\x4D\x75\x6C\x74\x69\x70\x6C\x65\x20\x61\x63\x74\x69\x76\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x2E\n\x2D\x20\x5B\x43\x6F\x6D\x6D\x65\x72\x63\x65\x20\x64\x61\x74\x61\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x63\x6F\x6D\x6D\x65\x72\x63\x65\x2D\x61\x70\x69\x2F\x6F\x76\x65\x72\x76\x69\x65\x77\x29\x20\x2D\x20\x4D\x75\x6C\x74\x69\x70\x6C\x65\x20\x61\x63\x74\x69\x76\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x2E\n\x41\x6E\x79\x20\x63\x6F\x6D\x62\x69\x6E\x61\x74\x69\x6F\x6E\x20\x6F\x66\x20\x61\x63\x63\x6F\x75\x6E\x74\x69\x6E\x67\x2C\x20\x62\x61\x6E\x6B\x69\x6E\x67\x2C\x20\x61\x6E\x64\x20\x63\x6F\x6D\x6D\x65\x72\x63\x65\x20\x64\x61\x74\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73\x20\x69\x73\x20\x61\x6C\x6C\x6F\x77\x65\x64\x2E\n\n\x42\x65\x66\x6F\x72\x65\x20\x79\x6F\x75\x20\x63\x61\x6E\x20\x75\x73\x65\x20\x61\x20\x64\x61\x74\x61\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x70\x75\x6C\x6C\x20\x6F\x72\x20\x70\x75\x73\x68\x20\x64\x61\x74\x61\x2C\x20\x74\x68\x65\x20\x63\x6F\x6D\x70\x61\x6E\x79\x20\x6D\x75\x73\x74\x20\x67\x72\x61\x6E\x74\x20\x79\x6F\x75\x20\x61\x63\x63\x65\x73\x73\x20\x74\x6F\x20\x74\x68\x65\x69\x72\x20\x62\x75\x73\x69\x6E\x65\x73\x73\x20\x64\x61\x74\x61\x20\x62\x79\x20\x5B\x6C\x69\x6E\x6B\x69\x6E\x67\x20\x74\x68\x65\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x5D\x28\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x6F\x63\x73\x2E\x63\x6F\x64\x61\x74\x2E\x69\x6F\x2F\x61\x75\x74\x68\x2D\x66\x6C\x6F\x77\x2F\x6F\x76\x65\x72\x76\x69\x65\x77\x29\x2E" type: object properties: id: + $ref: '#/components/parameters/connectionId/schema' + integrationId: type: string - example: 4d7c6929-7770-412b-91bb-44d3bc71d111 format: uuid - description: Your unique identifier for the transaction. - type: + example: fd321cb6-7963-4506-b873-e99593a45e30 + description: A Codat ID representing the integration. + integrationKey: + type: string + description: A unique four-character ID that identifies the platform of the company's data connection. This ensures continuity if the platform changes its name in the future. + sourceId: + type: string + format: uuid + example: 35b92968-9851-4095-ad60-395c95cbcba4 + description: 'A source-specific ID used to distinguish between different sources originating from the same data connection. In general, a data connection is a single data source. However, for TrueLayer, `sourceId` is associated with a specific bank and has a many-to-one relationship with the `integrationId`.' + sourceType: + title: Source Type + description: The type of platform of the connection. type: string - example: Payment - description: The type of transaction. enum: - - Payment - - Refund - - Reward - - Chargeback - issueDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: Date of the transaction was recorded. - currency: + - Accounting + - Banking + - BankFeed + - Commerce + - Expense + - Other + - Unknown + example: Accounting + platformName: type: string - example: GBP - description: Currency the transaction was recorded in. - currencyRate: - title: Currency rate - type: number - format: decimal - 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.\n\nCurrency rates in Codat are implemented as the multiple of foreign currency units to each base currency unit. \n\nIt 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.\n\nWhere the currency rate is provided by the underlying accounting software, it will be available from Codat with the same precision (up to a maximum of 9 decimal places). \n\nFor accounting software which do not provide an explicit currency rate, it is calculated as `baseCurrency / foreignCurrency` and will be returned to 9 decimal places.\n\n## Examples with base currency of GBP\n\n| Foreign Currency | Foreign Amount | Currency Rate | Base Currency Amount (GBP) |\n| :--------------- | :------------- | :------------ | :------------------------- |\n| **USD** | $20 | 0.781 | £15.62 |\n| **EUR** | €20 | 0.885 | £17.70 |\n| **RUB** | ₽20 | 0.011 | £0.22 |\n\n## Examples with base currency of USD\n\n| Foreign Currency | Foreign Amount | Currency Rate | Base Currency Amount (USD) |\n| :--------------- | :------------- | :------------ | :------------------------- |\n| **GBP** | £20 | 1.277 | $25.54 |\n| **EUR** | €20 | 1.134 | $22.68 |\n| **RUB** | ₽20 | 0.015 | $0.30 |\n\n\n### Integration-specific details\n\n| Integration | Scenario | System behavior |\n|-------------------|-------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| QuickBooks Online | Transaction currency differs from base currency | If currency rate value is left `null`, a rate of 1 will be used by QBO by default. To override this, specify a currencyRate in the request body. |" - contactRef: - description: Supplier or customer for the purchase to be associated to. - $ref: '#/components/schemas/ExpenseContactRef' - bankAccountRef: - type: object - title: Bank account reference - properties: - id: - type: string - example: 787dfb37-5707-4dc0-8a86-8d74e4cc78ea - description: Identifier of the bank account. - reference: + description: Name of integration connected to company. + linkUrl: type: string + format: uri + description: The link URL your customers can use to authorize access to their business application. + example: 'https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/2e2eb431-c1fa-4dc9-93fa-d29781c12bcd/start' + status: + $ref: '#/components/schemas/Connection/definitions/dataConnectionStatus' + lastSync: + $ref: '#/components/schemas/DateTime' nullable: true - description: User-friendly reference for the expense transaction. - merchantName: - type: string - example: Amazon UK - description: Name of the merchant where the purchase took place - lines: + created: + $ref: '#/components/schemas/DateTime' + dataConnectionErrors: type: array - description: Array of transaction lines. - minItems: 1 - maxItems: 100 + nullable: true items: - $ref: '#/components/schemas/ExpenseTransactionLine' - notes: - type: string - description: 'Any private, company notes about the transaction.' - example: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - postAsDraft: - type: boolean + $ref: '#/components/schemas/Connection/definitions/dataConnectionError' + connectionInfo: + type: object nullable: true - description: 'This optional property, when set to true, posts the transaction to a drafted state. Note that postAsDraft is only supported in Microsoft Dynamics 365 Business Central.' + additionalProperties: true + additionalProperties: false required: - id - - type - - issueDate - - currency - examples: - - id: a44135b0-6882-489a-83fe-a0c57a4afb19 - type: Payment - issueDate: '2024-05-21T00:00:00+00:00' - currency: GBP - currencyRate: 1 - contactRef: - id: '430' - type: Supplier - bankAccountRef: - id: '97' - merchantName: Amazon UK - notes: amazon purchase - lines: - - netAmount: 100 - taxAmount: 20 - taxRateRef: - id: 23_Bills - accountRef: - id: '35' - trackingRefs: - - id: DEPARTMENT_3 - - dataType: trackingCategories - invoiceTo: - id: '504' - type: customer - ExpenseTransactionLine: + - integrationId + - integrationKey + - sourceId + - platformName + - linkUrl + - status + - created + - sourceType + definitions: + dataConnectionStatus: + title: Data connection status + description: The current authorization status of the data connection. + type: string + enum: + - PendingAuth + - Linked + - Unlinked + - Deauthorized + dataConnectionError: + title: Data connection error + type: object + properties: + statusCode: + type: string + description: The HTTP status code returned by the source platform when the error occurred. + statusText: + type: string + description: A non-numeric status code/text returned by the source platform when the error occurred. + errorMessage: + type: string + description: A message about a error returned by Codat. + erroredOnUtc: + $ref: '#/components/schemas/DateTime' + status: + title: Error status + description: The current status of a transient error. Null statuses indicate that the error is not transient. + type: string + nullable: true + enum: + - Active + - Resolved + resolvedOnUtc: + description: The datetime in Utc that the error was resolved. + nullable: true + $ref: '#/components/schemas/DateTime' + dataConnectionSourceType: + title: Source Type + description: The type of platform of the connection. + type: string + enum: + - Accounting + - Banking + - BankFeed + - Commerce + - Expense + - Other + - Unknown + example: Accounting + example: + id: ee2eb431-c0fa-4dc9-93fa-d29781c12bcd + integrationId: bf083d72-62c7-493e-aec9-81b4dbba7e2c + integrationKey: dfxm + sourceId: bdd831ce-eebd-4896-89a7-20e5ee8989ee + platformName: Basiq + linkUrl: 'https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start' + status: Linked + lastSync: '2022-10-27T10:22:43.6464237Z' + created: '2022-10-27T09:53:29Z' + sourceType: Banking + Connections: + title: Connections x-internal: true - title: Expense transaction line + allOf: + - type: object + properties: + results: + type: array + items: + $ref: '#/components/schemas/Connection' + - $ref: '#/components/schemas/Companies/allOf/1' + CreateBankTransactions: + title: Create bank transactions type: object - x-examples: - ExpenseTransactionLine: - netAmount: 100 - taxAmount: 20 - taxRateRef: - id: 08d37c46-8d5d-441b-8bad-76286c43047e - accountRef: - id: 16989b16-96d4-401a-9054-f5c620c655a6 - trackingRefs: - - id: e9a1b63d-9ff0-40e7-8038-016354b987e6 - invoiceTo: - id: 80000002-1674552702 - type: customer properties: - netAmount: - type: number - format: decimal - example: 100 - description: 'Amount of the line, exclusive of tax.' - taxAmount: - type: number - format: decimal - example: 20 - description: Amount of tax for the line. - taxRateRef: - $ref: '#/components/schemas/RecordRef' - accountRef: - description: The `accountRef` contains the `id` of the account the transaction is against. The `accountRef` object is required for all integrations except QBD which currently supports either itemRef or accountRef. - $ref: '#/components/schemas/RecordRef' - itemRef: - $ref: '#/components/schemas/ItemRef' - trackingRefs: - type: array - minItems: 1 - maxItems: 10 - nullable: true - items: - $ref: '#/components/schemas/TrackingRef' - invoiceTo: - $ref: '#/components/schemas/InvoiceTo' + accountId: + type: string + description: Unique identifier for a bank account. + examples: + - 13d946f0-c5d5-42bc-b092-97ece17923ab + - 9wg4lep4ush5cxs79pl8sozmsndbaukll3ind4g7buqbm1h2 + - '7110701885' + - EILBDVJVNUAGVKRQ + - Checking 0202 + transactions: + $ref: '#/components/schemas/BankTransactions' required: - - netAmount - IntegrationType: - title: Integration type + - accountId + - transactions + CreateBankTransactionsResponse: + title: Create bank transaction response + x-internal: true + allOf: + - type: object + properties: + data: + $ref: '#/components/schemas/CreateBankTransactions' + - $ref: '#/components/schemas/PushOperation' + DataType: + title: Data types x-internal: true type: string - description: Type of transaction that has been processed e.g. Expense or Bank Feed. + description: Available data types enum: - - expenses - - bankfeeds - default: expenses - example: expenses - nullable: true - InvoiceTo: - title: Billable customer reference - x-internal: true + - accountTransactions + - balanceSheet + - bankAccounts + - bankTransactions + - billCreditNotes + - billPayments + - bills + - cashFlowStatement + - chartOfAccounts + - company + - creditNotes + - customers + - directCosts + - directIncomes + - invoices + - itemReceipts + - items + - journalEntries + - journals + - paymentMethods + - payments + - profitAndLoss + - purchaseOrders + - salesOrders + - suppliers + - taxRates + - trackingCategories + - transfers + - banking-accountBalances + - banking-accounts + - banking-transactionCategories + - banking-transactions + - commerce-companyInfo + - commerce-customers + - commerce-disputes + - commerce-locations + - commerce-orders + - commerce-paymentMethods + - commerce-payments + - commerce-productCategories + - commerce-products + - commerce-taxComponents + - commerce-transactions + example: invoices + DateTime: + title: Date time + type: string + examples: + - '2022-10-23T00:00:00Z' + - '2022-10-23' + 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:\n\n```\n2020-10-08T22:40:50Z\n2021-01-01T00:00:00\n```\n\n\n\nWhen syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:\n\n- Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z`\n- Unqualified local time: `2021-11-15T01:00:00`\n- UTC time offsets: `2021-11-15T01:00:00-05:00`\n\n> Time zones\n> \n> Not all dates from Codat will contain information about time zones. \n> Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced." + ErrorMessage: + title: Error message type: object - nullable: true - description: Unique identifier for the customer billed for the transaction. The `invoiceTo` object is currently supported only for QuickBooks Online and QuickBooks Desktop. + x-internal: true properties: - id: + statusCode: + type: integer + description: The HTTP status code returned by the error. + service: type: string - example: 80000002-1674552702 - description: identifier of customer. - type: + description: Codat's service the returned the error. + error: type: string - example: customer - description: The type of contact. - enum: - - customer - ItemRef: - x-internal: true - type: object - title: Item reference - nullable: true - properties: - id: + description: A brief description of the error. + correlationId: type: string - example: 80000002-1675158984 - description: 'Unique identifier for the item associated with the transaction. The `itemRef` object is currently supported only for QuickBooks Desktop. You can specify either `itemRef` or `accountRef`, but not both.' - MappingOptions: - title: Mapping options - type: object - additionalProperties: false - x-examples: {} - properties: - expenseProvider: + description: Unique identifier used to propagate to all downstream services and determine the source of the error. + validation: + $ref: '#/components/schemas/ErrorMessage/definitions/errorValidation' + canBeRetried: type: string - description: Name of the expense integration. - example: Partner Expense - nullable: true - accounts: - type: array - description: Array of available accounts for mapping. - nullable: true - items: - $ref: '#/components/schemas/AccountMappingInfo' - trackingCategories: - type: array - description: Array of available tracking categories for mapping. - nullable: true - items: - $ref: '#/components/schemas/TrackingCategoryMappingInfo' - taxRates: - type: array - description: Array of available tax rates for mapping. - nullable: true - items: - $ref: '#/components/schemas/TaxRateMappingInfo' - PagingInfo: - type: object - title: Pagination information - x-internal: true - properties: - pageNumber: - type: integer - description: Current page number. - pageSize: - type: integer - description: Number of items to return in results array. - maximum: 2000 - totalResults: + description: '`True` if the error occurred transiently and can be retried.' + detailedErrorCode: type: integer - description: Total number of items. - _links: - $ref: '#/components/schemas/PagingInfo/definitions/links' + description: Machine readable error code used to automate processes based on the code returned. definitions: - links: - title: Hal Links + errorValidation: + title: Validation error type: object - required: - - self - - current + nullable: true + description: 'A human-readable object describing validation decisions Codat has made. If an operation has failed because of validation errors, they will be detailed here.' 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 - current: - href: /companies?page=1&pageSize=10 - halRef: - title: Hypertext reference + errors: + type: array + nullable: true + items: + $ref: '#/components/schemas/ErrorMessage/definitions/errorValidationItem' + warnings: + type: array + nullable: true + items: + $ref: '#/components/schemas/ErrorMessage/definitions/errorValidationItem' + errorValidationItem: + title: Validation error item type: object properties: - href: + itemId: type: string - format: uri-reference - description: Uri hypertext reference. - required: - - pageNumber - - pageSize - - totalResults - - _links - examples: - - pageNumber: 1 - pageSize: 10 - totalResults: 1 - _links: - self: - href: '/companies/{id}/data/{dataType}' - current: - href: '/companies/{id}/data/{dataType}?page=1&pageSize=10' + nullable: true + description: Unique identifier for a validation item. + message: + type: string + nullable: true + description: A message outlining validation item's issue. + validatorName: + type: string + nullable: true + description: Name of validator. PullOperation: title: Pull operation description: |- @@ -11849,9 +4245,9 @@ components: nullable: true description: A message about a transient or persistent error returned by Codat or the source platform. requested: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' + $ref: '#/components/schemas/DateTime' completed: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' + $ref: '#/components/schemas/DateTime' progress: type: integer description: An integer signifying the progress of the pull operation. @@ -11892,7 +4288,7 @@ components: type: array items: $ref: '#/components/schemas/PullOperation' - - $ref: '#/components/schemas/PagingInfo' + - $ref: '#/components/schemas/Companies/allOf/1' PushOperation: title: Push operation type: object @@ -11905,7 +4301,7 @@ components: items: $ref: '#/components/schemas/PushOperation/definitions/pushOperationChange' dataType: - $ref: '#/components/schemas/DataStatus/properties/dataType' + $ref: '#/components/schemas/DataType' description: 'The type of data being pushed, eg invoices, customers.' companyId: $ref: '#/components/parameters/companyId/schema' @@ -11916,10 +4312,10 @@ components: dataConnectionKey: $ref: '#/components/parameters/connectionId/schema' requestedOnUtc: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' + $ref: '#/components/schemas/DateTime' description: The datetime when the push was requested. completedOnUtc: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' + $ref: '#/components/schemas/DateTime' description: 'The datetime when the push was completed, null if Pending.' timeoutInMinutes: type: integer @@ -12002,7 +4398,7 @@ components: type: string description: Unique identifier for a push operation. dataType: - $ref: '#/components/schemas/DataStatus/properties/dataType' + $ref: '#/components/schemas/DataType' nullable: true additionalProperties: false pushOperationStatus: @@ -12035,7 +4431,7 @@ components: type: array items: $ref: '#/components/schemas/PushOperation' - - $ref: '#/components/schemas/PagingInfo' + - $ref: '#/components/schemas/Companies/allOf/1' PushOption: title: Push option x-internal: true @@ -12163,801 +4559,534 @@ components: $ref: '#/components/schemas/PushOption/definitions/pushOptionProperty/properties/description' required: $ref: '#/components/schemas/PushOption/definitions/pushOptionProperty/properties/required' - RecordRef: - x-internal: true + SourceAccount: + title: Source account (v1) type: object - title: Record reference + description: The target bank account in a supported accounting software for ingestion into a bank feed. + additionalProperties: false properties: id: type: string - example: 40e3e57c-2322-4898-966c-ca41adfd23fd - description: Identifier of linked reference from mapping options. - ReimbursableExpenseTransactionLine: - x-internal: true - title: Reimbursable expense transaction line - type: object - properties: - description: + description: Unique ID for the bank account. + accountName: type: string - example: 2-night hotel stay - description: line description - netAmount: - type: number - format: decimal - example: 100 - description: 'Amount of the line, exclusive of tax.' - taxAmount: + nullable: true + description: The bank account name. + accountType: + type: string + nullable: true + description: The type of bank account e.g. Credit. + accountNumber: + type: string + nullable: true + description: The account number. + sortCode: + type: string + nullable: true + description: The sort code. + 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_.\n\n## Unknown currencies\n\nIn line with the ISO 4217 specification, the code _XXX_ is used when the data source does not return a currency for a transaction. \n\nThere 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 + balance: type: number format: decimal - example: 20 - description: Amount of tax for the line. - taxRateRef: - $ref: '#/components/schemas/RecordRef' - accountRef: - description: The `accountRef` contains the `id` of the account the transaction is against. The `accountRef` object is required for all integrations except QBD which currently supports either itemRef or accountRef. - $ref: '#/components/schemas/RecordRef' - itemRef: - $ref: '#/components/schemas/ItemRef' - trackingRefs: - type: array - minItems: 1 - maxItems: 10 nullable: true - items: - $ref: '#/components/schemas/TrackingRef' - invoiceTo: - $ref: '#/components/schemas/InvoiceTo' - required: - - netAmount - ReimbursableExpenseTransactionRequest: - title: Reimbursable expense transaction request - type: array - minItems: 1 - maxItems: 50 - items: - $ref: '#/components/schemas/ReimbursableExpenseTransactionRequest/definitions/reimbursableExpenseTransaction' - definitions: - reimbursableExpenseTransaction: - title: Reimbursable expense transaction - type: object - properties: - id: - type: string - example: 4d7c6929-7770-412b-91bb-44d3bc71d111 - format: uuid - description: Your unique identifier for the transaction. - reference: - type: string - nullable: true - description: User-friendly reference for the reimbursable expense. - contactRef: - $ref: '#/components/schemas/ReimbursementContactRef' - apAccountRef: - $ref: '#/components/schemas/apAccountRef' - issueDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: Date of the transaction was recorded. - dueDate: - description: Date the supplier is due to be paid. - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - currency: - type: string - example: GBP - description: Currency the transaction was recorded in. - currencyRate: - $ref: '#/components/schemas/ExpenseTransaction/properties/currencyRate' - notes: - type: string - description: 'Any private, company notes about the transaction.' - example: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - lines: - type: array - description: Array of transaction lines. - minItems: 1 - maxItems: 100 - items: - $ref: '#/components/schemas/ReimbursableExpenseTransactionLine' - required: - - id - - contactRef - - issueDate - - dueDate - - currency - ReimbursementContactRef: - type: object - title: Contact reference - x-internal: true - properties: - id: + description: The latest balance for the bank account. + modifiedDate: + $ref: '#/components/schemas/DateTime' + nullable: true + description: The last date the bank account was modified. + status: type: string - example: 40e3e57c-2322-4898-966c-ca41adfd23fd - description: Identifier of contact. - required: - - id - SupplementalData: - title: Supplemental data - type: object - x-internal: true - description: "Supplemental data is additional data you can include in our standard data types. \n\nIt is referenced as a configured dynamic key value pair that is unique to the accounting software. [Learn more](https://docs.codat.io/using-the-api/supplemental-data/overview) about supplemental data." - properties: - content: - type: object - additionalProperties: - type: object - additionalProperties: true nullable: true - Supplier: - title: 'Accounting: Supplier' - description: |- - ## Overview - - From the **Suppliers** endpoints, you can retrieve a list of [all the suppliers for a company](https://docs.codat.io/sync-for-expenses-api#/operations/list-suppliers). Suppliers' data links to accounts payable [bills](https://docs.codat.io/sync-for-expenses-api#/schemas/Bill). - type: object - allOf: - - type: object - properties: - id: - type: string - description: 'Identifier for the supplier, unique to the company in the accounting software.' - supplierName: - type: string - nullable: true - description: 'Name of the supplier as recorded in the accounting system, typically the company name.' - contactName: - type: string - nullable: true - description: Name of the main contact for the supplier. - emailAddress: - type: string - nullable: true - description: Email address that the supplier may be contacted on. - phone: - type: string - nullable: true - description: Phone number that the supplier may be contacted on. - examples: - - +44 25691 154789 - - (877) 492-8687 - - 01224 658 999 - addresses: - type: array - nullable: true - description: An array of Addresses. - items: - $ref: '#/components/schemas/CompanyInformation/properties/addresses/items' - registrationNumber: - type: string - nullable: true - description: 'Company number of the supplier. In the UK, this is typically the company registration number issued by Companies House.' - taxNumber: - type: string - nullable: true - description: Supplier's company tax number. - status: - $ref: '#/components/schemas/Supplier/definitions/supplierStatus' - defaultCurrency: - type: string - nullable: true - description: Default currency the supplier's transactional data is recorded in. - metadata: - $ref: '#/components/schemas/Account/allOf/2/properties/metadata' - supplementalData: - $ref: '#/components/schemas/SupplementalData' - - $ref: '#/components/schemas/Account/allOf/3' + description: Status of the source account. + enum: + - pending + - connected + - connecting + - disconnected + - unknown + feedStartDate: + $ref: '#/components/schemas/DateTime' + nullable: true required: - - status + - id definitions: - supplierRef: - title: Supplier reference - description: Reference to the supplier the record relates to. + sourceAccountPrototype: + title: Source account (v1) type: object properties: id: - minLength: 1 - type: string - description: The supplier's unique ID - supplierName: - type: string - nullable: true - description: The supplier's name + $ref: '#/components/schemas/SourceAccount/properties/id' + accountName: + $ref: '#/components/schemas/SourceAccount/properties/accountName' + accountType: + $ref: '#/components/schemas/SourceAccount/properties/accountType' + accountNumber: + $ref: '#/components/schemas/SourceAccount/properties/accountNumber' + sortCode: + $ref: '#/components/schemas/SourceAccount/properties/sortCode' + currency: + $ref: '#/components/schemas/SourceAccount/properties/currency' + balance: + $ref: '#/components/schemas/SourceAccount/properties/balance' + modifiedDate: + $ref: '#/components/schemas/SourceAccount/properties/modifiedDate' required: - id - supplierStatus: - description: Status of the supplier. - type: string - enum: - - Unknown - - Active - - Archived - examples: - - id: C520FFD4-F6F6-4FC2-A6D2-5D7088B2B14F - supplierName: Kelly's Industrial Supplies - contactName: Kelly's Industrial Supplies - emailAddress: sales@kellysupplies.com - phone: 07999 999999 - addresses: - - type: Billing - line1: Unit 51 - line2: Bakersfield Industrial Estate - city: Bakersfield - region: California - country: USA - postalcode: '93308' - registrationNumber: string - taxNumber: string - status: Unknown - defaultCurrency: string - metadata: - isDeleted: true - supplementalData: - content: - property1: - property1: null - property2: null - property2: - property1: null - property2: null - modifiedDate: '2022-10-23T00:00:00Z' - sourceModifiedDate: '2022-10-23T00:00:00Z' - Suppliers: - title: Suppliers - x-internal: true - allOf: - - type: object - properties: - results: - type: array - items: - $ref: '#/components/schemas/Supplier' - - $ref: '#/components/schemas/PagingInfo' - SyncCompleteWebhook: - title: Sync complete webhook - x-internal: true - description: Webhook request body used to notify that a sync has completed. - type: object - properties: - ClientId: - $ref: '#/components/schemas/SyncFailedWebhook/properties/ClientId' - ClientName: - $ref: '#/components/schemas/SyncFailedWebhook/properties/ClientName' - CompanyId: - $ref: '#/components/parameters/companyId/schema' - RuleId: - $ref: '#/components/schemas/SyncFailedWebhook/properties/RuleId' - RuleType: - $ref: '#/components/schemas/SyncFailedWebhook/properties/RuleType' - AlertId: - $ref: '#/components/schemas/SyncFailedWebhook/properties/AlertId' - Message: - $ref: '#/components/schemas/SyncFailedWebhook/properties/Message' - Data: - $ref: '#/components/schemas/SyncCompleteWebhook/definitions/SyncCompleteWebhookData' - definitions: - SyncCompleteWebhookData: - type: object - title: Sync complete webhook data - properties: - syncId: - $ref: '#/components/schemas/SyncFailedWebhook/definitions/SyncFailedWebhookData/properties/syncId' - syncType: - $ref: '#/components/schemas/SyncFailedWebhook/definitions/SyncFailedWebhookData/properties/syncType' + sourceAccounts: + title: Source accounts + type: array + items: + $ref: '#/components/schemas/SourceAccount' examples: - - ClientId: 30e0f9d2-52c0-4c9f-a806-bcd98a3bcd7e - ClientName: Expense Sync - CompanyId: 1f9559e7-8368-48c9-bdf4-f158e16b8b85 - AlertId: 33a4f8e9-09ae-4334-9b00-7bbe83024672 - RuleId: 5c27631d-3b63-4b50-8228-ee502fd113eb - RuleType: Sync Completed - Message: Sync 321363b4-efa9-4fbc-b71c-0b58d62f3248 for company 1f9559e7-8368-48c9-bdf4-f158e16b8b85 of type Expense completed successfully. - Data: - syncId: 321363b4-efa9-4fbc-b71c-0b58d62f3248 - syncType: Expense - SyncFailedWebhook: - title: Sync failed webhook - x-internal: true - description: Webhook request body used to notify that a sync has failed. + - id: acc-002 + accountName: account-081 + sortCode: '123456' + accountType: Credit + accountNumber: '12345670' + currency: GBP + balance: 99.99 + modifiedDate: '2023-01-09T14:14:14.1057478Z' + status: pending + - id: acc-003 + accountName: account-095 + sortCode: '123456' + accountType: Credit + accountNumber: '12345671' + currency: USD + balance: 0 + modifiedDate: '2023-01-09T14:14:14.1057478Z' + status: pending + SourceAccountBatchCreateResponse: + title: Batch source account request creation response + description: Account ID and resulting object of the batch `Create source account` request. type: object properties: - ClientId: - title: Client ID - type: string - format: uuid - description: Unique identifier for your client in Codat. - ClientName: - type: string - description: Name of your client in Codat. - CompanyId: - $ref: '#/components/parameters/companyId/schema' - RuleId: - type: string - format: uuid - description: Unique identifier for the rule. - deprecated: true - RuleType: + sourceAccountId: 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: - $ref: '#/components/schemas/SyncFailedWebhook/definitions/SyncFailedWebhookData' + description: Unique ID for the source account. + examples: + - '12345' + result: + $ref: '#/components/schemas/SourceAccountBatchCreateResponse/definitions/sourceAccountBatchCreateResult' definitions: - SyncFailedWebhookData: + sourceAccountBatchCreateResult: + title: Source Account Batch Create Result + description: Status details and corresponding object of the `Create account` operation. type: object - title: Sync failed webhook data properties: - syncId: - type: string - format: uuid - example: a9367074-b5c3-42c4-9be4-be129f43577e - description: Unique identifier for the failed sync. - syncType: - type: string - description: The type of sync being performed. - FailureStage: - type: string - description: The stage of the job the sync failed. - examples: - - ClientId: 30e0f9d2-52c0-4c9f-a806-bcd98a3bcd7e - ClientName: Expense Sync - CompanyId: 1f9559e7-8368-48c9-bdf4-f158e16b8b85 - RuleId: 289c80dc-2aee-4b71-afff-9acd8d051080 - RuleType: Sync Failed - AlertId: 72c1103b-7f17-4a3a-8db5-67c2d360a516 - Message: Sync 3bead2a1-1b3d-4d90-8077-cddc5ca68b01 for company 1f9559e7-8368-48c9-bdf4-f158e16b8b85 of type Expense has failed at step Pushing. - Data: - syncId: 3bead2a1-1b3d-4d90-8077-cddc5ca68b01 - syncType: Expense - FailureStage: Pushing - SyncInitiated: - title: Sync initiated - type: object - properties: - syncId: - type: string - format: uuid - description: Unique identifier for the sync initiated. - additionalProperties: false - TaxRateMappingInfo: - title: Tax rate mapping info - x-internal: true - type: object - additionalProperties: false - x-examples: - UK Tax Rate: - id: 23_Bills - name: 20% Bill tax Bills - code: 20% Bill tax - effectiveTaxRate: 20 - totalTaxRate: 20 - validTransactionTypes: - - Payment - - Reward - properties: - id: - type: string - description: Unique identifier of tax rate. - example: 23_Bills - nullable: false - name: - type: string - description: Name of the tax rate in the accounting software. - example: 20% Bill tax Bills - nullable: false - code: - type: string - description: Code for the tax rate from the accounting software. - example: 20% Bill tax - nullable: true - effectiveTaxRate: - type: number - format: decimal - description: Effective tax rate. - example: 20 - totalTaxRate: - type: number - format: decimal - description: Total (not compounded) sum of the components of a tax rate. - example: 20 - validTransactionTypes: - $ref: '#/components/schemas/validTransactionTypes' - description: Supported transaction types for the tax rate. - TrackingCategoryMappingInfo: - title: Tracking category mapping info - x-internal: true - type: object - additionalProperties: false - x-examples: - Tracking Category with parentId: - id: DEPARTMENT_1 - name: TestLocation - hasChildren: false - parentId: DEPARTMENTS - Parent Tracking Category: - id: DEPARTMENTS - name: Departments - hasChildren: true - properties: - id: - type: string - description: Unique identifier of the tracking category. - example: DEPARTMENT_2 - nullable: false - name: - type: string - description: Name of the tracking category as it appears in the accounting software. - example: New York - nullable: false - hasChildren: - type: boolean - description: Boolean of whether the tracking category has child categories. - parentId: - type: string - description: ID of the parent tracking category - example: DEPARTMENTS - nullable: true - TrackingRef: + statusCode: + type: integer + description: The HTTP status code for the creation of the source account + error: + type: string + nullable: true + description: A brief description of the error. + account: + $ref: '#/components/schemas/SourceAccount' + SourceAccountBatchErrorResponse: + title: Batch source account creation error + description: Describes the error that occured when trying to create the specified source account. type: object - title: Tracking reference - x-internal: true properties: - id: - type: string - example: e9a1b63d-9ff0-40e7-8038-016354b987e6 - description: Unique identifier of the linked reference from mapping options or the unique identifier of the linked customer. - dataType: + sourceAccountId: type: string - example: trackingCategories - default: trackingCategories - description: The type of the linked reference - enum: - - trackingCategories - - customers - TrackingRefAdjustmentTransaction: + description: Unique ID for the source account. + examples: + - '12345' + result: + type: object + properties: + statusCode: + description: The error status code for the attempted creation of the source account. + type: string + examples: + - 409 + error: + description: The error description for the attempted creation of the source account. + type: string + examples: + - A bank account already exists with the same Id + SourceAccountV2: + title: Source account (v2) type: object - title: Tracking reference - x-internal: true + description: The target bank account in a supported accounting software for ingestion into a bank feed. + additionalProperties: false properties: id: type: string - example: e9a1b63d-9ff0-40e7-8038-016354b987e6 - description: Unique identifier of the linked reference from mapping options or the unique identifier of the linked customer or supplier. - dataType: + description: Unique ID for the bank account. + accountName: + type: string + description: The bank account name. + accountType: type: string - example: trackingCategories - default: trackingCategories - description: The type of the linked reference + description: 'The type of bank account e.g. checking, savings, loan, creditCard, prepaidCard.' enum: - - trackingCategories - - customers - - suppliers - Transaction: - title: Transaction - type: object - additionalProperties: false - properties: - transactionId: + - checking + - savings + - loan + - creditCard + - prepaidCard + accountNumber: type: string - description: Your unique idenfier of the transaction. - example: aa02271d-ed5f-47f5-be76-778d5905225a + description: The account number. + sortCode: + type: string + nullable: true + description: The sort code. + routingInfo: + $ref: '#/components/schemas/SourceAccountV2/definitions/routingInfo' + currency: + $ref: '#/components/schemas/SourceAccount/properties/currency' + balance: + type: number + format: decimal + description: The latest balance for the bank account. + accountInfo: + $ref: '#/components/schemas/SourceAccountV2/definitions/accountInfo' + modifiedDate: + $ref: '#/components/schemas/DateTime' nullable: true + description: The last date the bank account was modified. status: - $ref: '#/components/schemas/TransactionStatus' - message: type: string - description: Metadata such as validation errors or the resulting record created in the accounting software. nullable: true - integrationType: - $ref: '#/components/schemas/IntegrationType' - x-examples: - Successful Transaction: - transactionId: 8fdba4ed-e327-4925-be1a-b7a2b04627f7 - status: Completed - integrationType: expense - Unsuccessful Transaction: - transactionId: 3d694cd1-4cd9-4136-91db-32408195c6fc - status: ValidationError - message: The line item total -208.10((-195.01 + -1.09) + (-10.01 + -1.99)) must equal the transaction total -1.1 - integrationType: string - TransactionResponse: - title: Transaction response - x-internal: true - type: array - items: - $ref: '#/components/schemas/Transaction' - Transactions: - title: Transactions - x-internal: true - additionalProperties: false - allOf: - - type: object - properties: - results: - type: array - items: - $ref: '#/components/schemas/Transaction' - - $ref: '#/components/schemas/PagingInfo' - x-examples: - Example 1: - results: - - transactionId: aa02271d-ed5f-47f5-be76-778d5905225a - status: Completed - integrationType: expenses - - transactionId: 730177a2-8505-410a-9ebc-c2dd52e4bea9 - status: Completed - integrationType: expenses - pageNumber: 1 - pageSize: 100 - totalResults: 2 - links: - self: - href: string - current: - href: string - TransactionStatus: - title: Transaction status - x-internal: true - type: string - description: Status of the transaction. - enum: - - Unknown - - Pending - - ValidationError - - Completed - - PushError - example: Completed - nullable: true - TransferTransactionRequest: - title: Transfer - type: object - properties: - description: + description: Status of the source account. + enum: + - pending + - connected + - connecting + - disconnected + - unknown + feedStartDate: + nullable: true + title: Date type: string - description: 'Any private, company notes about the transaction.' - example: Transfer from bank account Y to bank account Z - date: - allOf: - - description: Date of the transfer transaction as recorded in the accounting software. - - 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:\n\n```\n2020-10-08T22:40:50Z\n2021-01-01T00:00:00\n```\n\n\n\nWhen syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:\n\n- Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z`\n- Unqualified local time: `2021-11-15T01:00:00`\n- UTC time offsets: `2021-11-15T01:00:00-05:00`\n\n> Time zones\n> \n> Not all dates from Codat will contain information about time zones. \n> Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced." - from: + example: '2022-10-23' + description: |- + In Codat's data model, dates are represented using the ISO 8601 standard. Date fields are formatted as strings; for example: + ``` + 2020-10-08 + ``` + required: + - id + - accountName + - accountType + - accountNumber + - currency + - balance + definitions: + sourceAccountV2Prototype: + title: Source account (v2) type: object properties: - accountRef: - type: object - title: Account reference - description: Reference of the account you are transferring money from. - properties: - id: - type: string - description: '''id'' from the Accounts data type.' - required: - - id - amount: - type: number - format: decimal - description: Amount that has been transferred from the account in the native currency of the account. + id: + $ref: '#/components/schemas/SourceAccountV2/properties/id' + accountName: + $ref: '#/components/schemas/SourceAccountV2/properties/accountName' + accountType: + $ref: '#/components/schemas/SourceAccountV2/properties/accountType' + accountNumber: + $ref: '#/components/schemas/SourceAccountV2/properties/accountNumber' + routingInfo: + $ref: '#/components/schemas/SourceAccountV2/definitions/routingInfo' + sortCode: + $ref: '#/components/schemas/SourceAccountV2/properties/sortCode' + currency: + $ref: '#/components/schemas/SourceAccount/properties/currency' + balance: + $ref: '#/components/schemas/SourceAccountV2/properties/balance' + modifiedDate: + $ref: '#/components/schemas/SourceAccountV2/properties/modifiedDate' + accountInfo: + $ref: '#/components/schemas/SourceAccountV2/definitions/accountInfo' required: - - accountRef - - amount - to: + - id + - accountName + - accountType + - accountNumber + - currency + - balance + accountInfo: + title: Account Info type: object + nullable: true properties: - accountRef: - type: object - title: Account reference - description: Reference of the account you are transferring money to. - properties: - id: - type: string - description: '''id'' from the Accounts data type.' - required: - - id - amount: + description: + type: string + nullable: true + description: Description of the account. + nickname: + type: string + nullable: true + description: Name given to the account by the user. Used in UIs to assist in account selection. + accountOpenDate: + $ref: '#/components/schemas/SourceAccountV2/properties/feedStartDate' + nullable: true + description: Date when the account was opened or created at the provider + availableBalance: type: number format: decimal - description: Amount that has been transferred to the account in the native currency of the account. - required: - - accountRef - - amount - required: - - date - - from - - to - TransferTransactionResponse: - title: Create transfer response - x-internal: true + nullable: true + description: Balance of funds available for use. This includes pending activity. + sourceAccounts: + title: Source accounts + type: array + items: + $ref: '#/components/schemas/SourceAccountV2' + routingInfo: + title: Routing Info + type: object + description: Routing information for the bank. This does not include account number. + properties: + bankCode: + type: string + nullable: true + description: The numeric identifier of the routing number + type: + type: string + nullable: true + default: bankcode + enum: + - rtn + - aba + - swift + - bsb + - iban + - nz2 + - trno + - sortcode + - blz + - ifsc + - bankcode + - apca + - clabe + description: The type of routing number. + examples: + - id: acc-001 + accountName: account-081 + accountType: checking + accountNumber: '12345670' + routingInfo: + bankCode: 021001088 + type: bankcode + currency: GBP + balance: 99.99 + accountInfo: + description: account description 1 + nickname: account 123 + accountOpenDate: '2023-05-06' + availableBalance: 10 + modifiedDate: '2024-08-02T00:00:00.000Z' + status: pending + feedStartDate: '2024-05-01' + - id: acc-002 + accountName: account-083 + accountType: savings + accountNumber: '23456789' + routingInfo: + bankCode: 021001088 + type: bankcode + currency: GBP + balance: 400 + accountInfo: + description: account description 2 + nickname: account 1290 + accountOpenDate: '2023-05-23' + availableBalance: 400 + modifiedDate: '2024-08-02T00:00:00.000Z' + status: pending + feedStartDate: '2024-05-01' + SourceAccountV2BatchCreateResponse: + title: Batch source account (v2) creation response + description: Account ID and resulting object of the batch `Create source account` request. type: object properties: - syncId: + sourceAccountId: type: string - example: cd937d46-8e41-43a9-9477-a79158ffd98a - format: uuid - description: Unique id of sync created - UpdateCustomerResponse: - title: Update customer response - x-internal: true - allOf: - - type: object - properties: - data: - allOf: - - $ref: '#/components/schemas/Customer' - - deprecated: true - - $ref: '#/components/schemas/PushOperation' - UpdateExpenseRequest: - title: Updating expense transaction request + description: Unique ID for the source account. + examples: + - '12345' + result: + $ref: '#/components/schemas/SourceAccountV2BatchCreateResponse/definitions/sourceAccountV2BatchCreateResult' + definitions: + sourceAccountV2BatchCreateResult: + title: Source Account V2 Batch CreateResult + description: Status details and corresponding object of the `Create account` operation. + type: object + properties: + statusCode: + type: integer + description: The HTTP status code for the creation of the source account + error: + type: string + nullable: true + description: A brief description of the error. + account: + $ref: '#/components/schemas/SourceAccountV2' + SourceAccountWebhook: + title: Source account status changed webhook type: object properties: - type: - type: string - example: Payment - description: The type of transaction. - enum: - - Payment - - Refund - - Reward - - Chargeback - issueDate: + id: type: string - description: Date the transaction was recorded. - example: '2022-06-28T00:00:00.000Z' - currency: + format: uuid + example: ba29118f-5406-4e59-b05c-ba307ca38d01 + description: Unique identifier of the event. + eventType: type: string - example: GBP - description: Currency the transaction was recorded in. - currencyRate: - $ref: '#/components/schemas/ExpenseTransaction/properties/currencyRate' - contactRef: - description: Supplier or Customer for the purchase to be associated to. - $ref: '#/components/schemas/ExpenseContactRef' - bankAccountRef: + description: The type of event. + examples: + - bankFeeds.sourceAccount.connected + - bankFeeds.sourceAccount.disconnected + generatedDate: + $ref: '#/components/schemas/DateTime' + description: The date time in UTC the event was generated in Codat. + payload: + $ref: '#/components/schemas/SourceAccountWebhook/definitions/sourceAccountWebhookPayload' + definitions: + sourceAccountWebhookPayload: + title: Payload type: object - title: Bank account reference properties: - id: - type: string - example: 787dfb37-5707-4dc0-8a86-8d74e4cc78ea - description: Identifier of the bank account. - merchantName: - type: string - description: Name of the merchant where the purchase took place - example: Amazon UK - lines: - type: array - description: Array of transaction lines. - items: - $ref: '#/components/schemas/ExpenseTransactionLine' - notes: - type: string - description: 'Any private, company notes about the transaction.' - example: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - required: - - type - - issueDate - - currency - UpdateExpenseResponse: - title: Update expense response - x-internal: true + referenceCompany: + $ref: '#/components/schemas/Company/definitions/companyReference' + companyId: + $ref: '#/components/parameters/companyId/schema' + deprecated: true + connectionId: + $ref: '#/components/parameters/connectionId/schema' + sourceAccount: + oneOf: + - $ref: '#/components/schemas/SourceAccountV2' + - $ref: '#/components/schemas/SourceAccount' + StartScheduledSyncResult: + title: Start scheduled sync result type: object + description: Represents the result of an ad-hoc sync request. properties: syncId: type: string - description: Unique identifier for the update expense sync. - examples: - Example 1: - syncId: 1ad0695c-4566-4715-918c-adbb03eac81e - UpdateReimbursableExpenseTransactionRequest: - title: Updating reimbursable expense transaction request + format: uuid + description: The unique identifier for the created sync. + required: + - syncId + SyncStatusResult: + title: Sync status type: object + description: Represents the status of a managed bank feed sync. properties: - reference: + syncId: + type: string + format: uuid + description: The unique identifier for the sync. + clientId: + type: string + format: uuid + description: The ID of the client associated with the company that owns the source bank account. + companyId: + type: string + format: uuid + description: The ID of the company that owns the source bank account. + companyName: + type: string + description: The name of the company that owns the source bank account. + dataConnectionId: + type: string + format: uuid + description: The ID of the target accounting data connection. + sourceAccountId: + type: string + description: The ID of the source bank account from which transactions are fetched. + periodStartUtc: type: string + format: date-time + description: The start of the sync period. + periodEndUtc: + type: string + format: date-time + description: The end of the sync period. + executionStartUtc: + type: string + format: date-time + description: The UTC timestamp when the sync started executing. + status: + type: string + description: 'The current status of the sync. Known values are `Started`, `Failed`, `SuccessDataPushed`, `SuccessNoDataPushed`, `PartialSuccessDataPushed`.' + example: SuccessDataPushed + executionEndUtc: + type: string + format: date-time nullable: true - description: User-friendly reference for the reimbursable expense. - contactRef: - $ref: '#/components/schemas/ReimbursementContactRef' - apAccountRef: - $ref: '#/components/schemas/apAccountRef' - issueDate: - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - description: Date of the transaction was recorded. - dueDate: - description: Date the supplier is due to be paid. - $ref: '#/components/schemas/TransferTransactionRequest/properties/date/allOf/1' - currency: + description: 'The UTC timestamp when the sync execution ended, if completed (i.e. `status` is any value other than `Started`).' + errorMessage: type: string - example: GBP - description: Currency the transaction was recorded in. - currencyRate: - $ref: '#/components/schemas/ExpenseTransaction/properties/currencyRate' - notes: + nullable: true + description: Error message if the sync failed. + errorCode: type: string - description: 'Any private, company notes about the transaction.' - example: 'APPLE.COM/BILL - 09001077498 - Card Ending: 4590' - lines: + nullable: true + description: Error code if the sync failed. + pushOperationKeys: type: array - description: Array of transaction lines. - minItems: 1 - maxItems: 100 items: - $ref: '#/components/schemas/ReimbursableExpenseTransactionLine' + type: string + format: uuid + nullable: true + description: 'List of write operation keys associated with the sync, if the sync resulted in write attempts.' required: - - contactRef - - issueDate - - dueDate - - currency - UpdateSupplierResponse: - title: Update supplier response - x-internal: true - allOf: - - type: object - properties: - data: - allOf: - - $ref: '#/components/schemas/Supplier' - - deprecated: true - - $ref: '#/components/schemas/PushOperation' - validFor: - title: Valid endpoints - x-internal: true - type: array - description: Supported endpoints for the account. - nullable: false - items: - type: string - enum: - - expense-transactions.Payment - - expense-transactions.Refund - - expense-transactions.Reward - - expense-transactions.Chargeback - - reimbursable-expense-transactions - - transfer-transactions - - adjustment-transactions - example: expense-transactions.Payment - validTransactionTypes: - title: Valid transaction types - x-internal: true - type: array - description: Supported transaction types for the account. - nullable: false - items: - type: string - enum: - - Payment - - Refund - - Reward - - Chargeback - example: Payment + - syncId + - clientId + - companyId + - companyName + - dataConnectionId + - sourceAccountId + - periodStartUtc + - periodEndUtc + - executionStartUtc + - status parameters: - syncId: - name: syncId + companyId: + name: companyId in: path required: true schema: type: string format: uuid - example: 6fb40d5e-b13e-11ed-afa1-0242ac120002 - description: Unique identifier for a sync. - transactionId: - name: transactionId + example: 8a210b68-6988-11ed-a1eb-0242ac120002 + description: Unique identifier for your SMB in Codat. + description: Unique identifier for a company. + connectionId: + name: connectionId in: path required: true schema: type: string format: uuid - example: 336694d8-2dca-4cb5-a28d-3ccb83e55eee - description: The unique identifier for your SMB's transaction. + example: 2e9d2c44-f675-40ba-8049-353bfcb5e171 + description: Unique identifier for a company's data connection. + description: Unique identifier for a connection. + accountId: + name: accountId + in: path + required: true + schema: + type: string + examples: + - 13d946f0-c5d5-42bc-b092-97ece17923ab + - 9wg4lep4ush5cxs79pl8sozmsndbaukll3ind4g7buqbm1h2 + - 7110701885 + - EILBDVJVNUAGVKRQ + description: Unique identifier for an account. page: name: page in: query @@ -12995,26 +5124,6 @@ components: type: string example: '-modifiedDate' description: 'Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).' - 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. - description: Unique identifier for a company. - 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. - description: Unique identifier for a connection. dataType: name: dataType description: The key of a Codat data type @@ -13022,30 +5131,15 @@ components: required: true schema: $ref: '#/components/schemas/DataType' - supplierId: - name: supplierId - in: path - required: true - schema: - type: string - examples: - - 13d946f0-c5d5-42bc-b092-97ece17923ab - - 9wg4lep4ush5cxs79pl8sozmsndbaukll3ind4g7buqbm1h2 - - 7110701885 - - EILBDVJVNUAGVKRQ - description: Unique identifier for a supplier. - customerId: - name: customerId + datasetId: + name: datasetId in: path required: true schema: type: string - examples: - - 13d946f0-c5d5-42bc-b092-97ece17923ab - - 9wg4lep4ush5cxs79pl8sozmsndbaukll3ind4g7buqbm1h2 - - 7110701885 - - EILBDVJVNUAGVKRQ - description: Unique identifier for a customer. + format: uuid + description: Unique identifier for the dataset that completed its sync. + description: Unique identifier for the dataset that completed its sync. timeoutInMinutes: name: timeoutInMinutes in: query @@ -13053,20 +5147,6 @@ components: type: integer format: int32 description: Time limit for the push operation to complete before it is timed out. - allowSyncOnPushComplete: - name: allowSyncOnPushComplete - in: query - schema: - type: boolean - default: true - description: Allow a sync upon push completion. - forceUpdate: - name: forceUpdate - in: query - schema: - type: boolean - default: false - description: 'When updating data in the destination platform Codat checks the `sourceModifiedDate` against the `lastupdated` date from the accounting software, if they''re different Codat will return an error suggesting you should initiate another pull of the data. If this is set to `true` then the update will override this check.' responses: BadRequest: description: The request made is not valid. @@ -13204,21 +5284,6 @@ components: correlationId: bc997528a9d7abb9161ef45f05d38599 canBeRetried: Unknown detailedErrorCode: 0 - Unprocessable-Content: - description: The requests made can't be processed. This may be due to differences in platform support. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - examples: - Conflict: - value: - statusCode: 422 - service: ExpenseSyncApi - error: Expense transaction updates are not supported for platforms other than Xero. - correlationId: 7c8e23841d211c87f49f30b248f70c93 - 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: diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 5954f44d7..f61004f28 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,12 +1,11 @@ -speakeasyVersion: 1.750.0 +speakeasyVersion: 1.761.1 sources: bank-feeds-source: sourceNamespace: bank-feeds-source - sourceRevisionDigest: sha256:f7e363f09d5f09a6ef30f229fc24cd1da3bed7b8aaa5ed54dbcecf5ecf940aac - sourceBlobDigest: sha256:bec22303db7eda4f0434582b2c3646b374f23dd8f317aedb5fe4a63426516ad7 + sourceRevisionDigest: sha256:db973c9d8c06047299854a7aa58c29bee90109d9230c0d3014c5f37c9116b7ea + sourceBlobDigest: sha256:ea9603cd302e3ac9fb6b395903cff7fe65012374fe509a445472baf9daca0e35 tags: - latest - - speakeasy-sdk-regen-1769161196 - 3.0.0 lending-source: sourceNamespace: lending-source @@ -65,10 +64,10 @@ targets: bank-feeds-library: source: bank-feeds-source sourceNamespace: bank-feeds-source - sourceRevisionDigest: sha256:f7e363f09d5f09a6ef30f229fc24cd1da3bed7b8aaa5ed54dbcecf5ecf940aac - sourceBlobDigest: sha256:bec22303db7eda4f0434582b2c3646b374f23dd8f317aedb5fe4a63426516ad7 + sourceRevisionDigest: sha256:db973c9d8c06047299854a7aa58c29bee90109d9230c0d3014c5f37c9116b7ea + sourceBlobDigest: sha256:ea9603cd302e3ac9fb6b395903cff7fe65012374fe509a445472baf9daca0e35 codeSamplesNamespace: bank-feeds-source-csharp-code-samples - codeSamplesRevisionDigest: sha256:4ed437078d58acd0a3ea995a9be7ab509ce87fa5cdf821541c552d917bfb96a6 + codeSamplesRevisionDigest: sha256:9792e482c6efe6d3c71b38d3ea2aadd30a024f15f34c8a461e69405bffa56b16 lending-library: source: lending-source sourceNamespace: lending-source diff --git a/bank-feeds/.gitignore b/bank-feeds/.gitignore index ec33833aa..dae3d2513 100755 --- a/bank-feeds/.gitignore +++ b/bank-feeds/.gitignore @@ -1,3 +1,4 @@ +.speakeasy/reports .env .env.local .DS_Store diff --git a/bank-feeds/.speakeasy/gen.lock b/bank-feeds/.speakeasy/gen.lock index 825047a87..46affcbdb 100755 --- a/bank-feeds/.speakeasy/gen.lock +++ b/bank-feeds/.speakeasy/gen.lock @@ -1,39 +1,40 @@ lockVersion: 2.0.0 id: 0e14a69b-dba1-4c0f-85f5-3b5d7f7f7731 management: - docChecksum: b8d884bd137e3dd0f765c6066e3c837c + docChecksum: 5585d6d3f1630763832805877be3a651 docVersion: 3.0.0 - speakeasyVersion: 1.696.0 - generationVersion: 2.799.0 - releaseVersion: 8.0.0 - configChecksum: 1a858276984806426925e290454f90f9 + speakeasyVersion: 1.761.1 + generationVersion: 2.879.6 + releaseVersion: 8.0.1 + configChecksum: 421128a8a475865bb12149c21db6681f repoURL: https://github.com/codatio/client-sdk-csharp.git repoSubDirectory: bank-feeds + installationURL: https://github.com/codatio/client-sdk-csharp published: true persistentEdits: - generation_id: 79b1f608-ddf7-4701-9e53-23ff7f490446 - pristine_commit_hash: 7b345bda187b0ca6c33fda68d3091e68ebce8f09 - pristine_tree_hash: 97587d703d599c35acf86bc6814ac47f49fca06c + generation_id: 9af65452-eef3-4be8-966c-a116d456550d + pristine_commit_hash: 58cbfcc8d042a44cec84f3694505ec13fbd35b0a + pristine_tree_hash: e9c01e8132f98d6671ecc1c290755608dfb73eea features: csharp: additionalDependencies: 0.1.0 - constsAndDefaults: 0.0.1 - core: 3.15.8 + constsAndDefaults: 0.0.3 + core: 3.15.20 decimal: 0.1.0 deprecations: 2.81.2 - examples: 2.81.6 - globalSecurity: 2.83.8 + examples: 2.81.7 + globalSecurity: 2.83.11 globalSecurityCallbacks: 0.1.0 - globalServerURLs: 2.83.0 + globalServerURLs: 2.83.1 intellisenseMarkdownSupport: 0.1.0 methodArguments: 0.2.1 - nameOverrides: 2.81.2 + nameOverrides: 2.81.4 nullables: 0.1.1 responseFormat: 0.0.4 - retries: 0.0.1 + retries: 0.0.2 sdkHooks: 0.3.0 serverEventsSentinels: 0.2.0 - unions: 1.1.1 + unions: 1.1.2 webhooks: 1.0.0 trackedFiles: .gitattributes: @@ -46,32 +47,32 @@ trackedFiles: pristine_git_object: b8b381fe3dd38a3bca1d01345621a17e11feb241 Codat/BankFeeds/AccountMapping.cs: id: 24bb178ae073 - last_write_checksum: sha1:40c462f2fa7d8bf7a7663d8c6b0eededf505e8a3 - pristine_git_object: 26a88129d3edee0d1133530fbba24d054ace0df1 + last_write_checksum: sha1:ef63fabed4284e9b3ed32435ad49b4b7e007c524 + pristine_git_object: f8a6a32e98f1ebd398b2f3ca9782d1b9a9adff6c Codat/BankFeeds/BankAccounts.cs: id: 10b6fb2cf3a3 - last_write_checksum: sha1:ea6e9a502a28325bfb0de01e37f7c35c0d52d3f6 - pristine_git_object: 8980dae6ac86bdf47f0d2e0c229ab502360731d3 + last_write_checksum: sha1:df1aae619a90d80d46f6fd6748ae52b01405b637 + pristine_git_object: ad0536482e5ebf8fb62e8c1c590d5e515e083dd1 Codat/BankFeeds/Codat.BankFeeds.csproj: id: b14ae93586a5 - last_write_checksum: sha1:24de5d8ff256889ac5ab61186f278a6e7209b48e - pristine_git_object: b2776a572e0109db4796cfa42f0e8cc5ed86f977 + last_write_checksum: sha1:c50c35213ff9cb2d125d04d47a705feeeaea97c8 + pristine_git_object: f0f82291806a91dddb24bc8314edeb9a58451577 Codat/BankFeeds/CodatBankFeeds.cs: id: 8cff43071308 last_write_checksum: sha1:6af679fe11ad7ff635f58bbedea979cd9c961780 pristine_git_object: 364faf857ff2eff67390d3a7214b68991f3713af Codat/BankFeeds/Companies.cs: id: 2500d37333b1 - last_write_checksum: sha1:4c9b9da9be957c05d40f3be62506a7b673cdd117 - pristine_git_object: 01229aec0b7212e58893102c622747178f83e148 + last_write_checksum: sha1:0377db53323d9a9f54eb55d7a2abc50bf9727c53 + pristine_git_object: 7a5a8aff045107ba8695d5c7d310d1f4cc01532d Codat/BankFeeds/CompanyInformation.cs: id: 6cf1c9108d04 - last_write_checksum: sha1:e8a827d806d217fbc21ec2c1ffc9a95c9e5dbac5 - pristine_git_object: 1a088e40bd0deca0bde2ad1b6442511d800ed33b + last_write_checksum: sha1:aed018cab1d0161c255d02e44aa5d4cf063ad155 + pristine_git_object: 89e15460888d39b591398cba7de0877d1e32293f Codat/BankFeeds/Connections.cs: id: a601fca4cd0a - last_write_checksum: sha1:43a197ceb39bb9d731ae8e05cc15617823f6a66d - pristine_git_object: 44b4d047ec42281821e7aebdb2f7f17a39b24e25 + last_write_checksum: sha1:9f32f62b0010e23409412a3b7f9ff633a2c47174 + pristine_git_object: 5b11b113881741522a82407e6ce5c984eb1495ca Codat/BankFeeds/Hooks/HookTypes.cs: id: 9411ef70a129 last_write_checksum: sha1:49578d6fcb23d8bdd5100125ebaf96cf80f380f4 @@ -82,8 +83,8 @@ trackedFiles: pristine_git_object: 684b868efcf4b17e2c363df3171b9be541ee29ea Codat/BankFeeds/ManagedBankFeeds.cs: id: b0c647933881 - last_write_checksum: sha1:1ed5c1e582b60d524ef13f47b8fa1e0a7fcc692a - pristine_git_object: 19f8eee143968837fce1278b7a2f886453beb581 + last_write_checksum: sha1:25324bf0b86a9b219fb12ab507c336facb39ea17 + pristine_git_object: e9f71fb16511fb63821c1aa5ce54759c0ce0f33a Codat/BankFeeds/Models/Errors/CodatBankFeedsException.cs: id: 2ca50f8ea8c9 last_write_checksum: sha1:ef8d3f83686296a2a3fd36163480879e356cd3ba @@ -212,6 +213,14 @@ trackedFiles: id: 6602ff1de7f5 last_write_checksum: sha1:5a55af845de9e3a7617f1741a53d52508a04e41e pristine_git_object: 7e16e8fdb4dc456f92bd0d5e34219e1f27f09124 + Codat/BankFeeds/Models/Operations/GenerateOtpRequest.cs: + id: ef6d8c35e6cf + last_write_checksum: sha1:1307d05107f7730670dab6699f2cbb2d02336522 + pristine_git_object: 330714845cb6f57e7095fe07f1ff44a0636941ff + Codat/BankFeeds/Models/Operations/GenerateOtpResponse.cs: + id: 8145e6796a55 + last_write_checksum: sha1:2a1cd44b6d3eead293d478707d84eb769619addd + pristine_git_object: c80d1a837a6042dd39ff204d0b1418641b167869 Codat/BankFeeds/Models/Operations/GetBankAccountMappingRequest.cs: id: dfd17ee98d80 last_write_checksum: sha1:b27fee6d1ef1bf3c5da695702dc78c9431593dc3 @@ -540,6 +549,10 @@ trackedFiles: id: 2fa165eff6c7 last_write_checksum: sha1:f7b8df378ed3bd7c43a186f18730b25d3c71d39f pristine_git_object: c26def3b05fc9719a542375967b3415068e120dc + Codat/BankFeeds/Models/Shared/GenerateOtpResponse.cs: + id: 455d810e6e46 + last_write_checksum: sha1:8ce8a3806ac5748f1e429216a472cbec8b332bd3 + pristine_git_object: 06425f7fe0103022d4e3adc4e9f2a7dcb851bafa Codat/BankFeeds/Models/Shared/HalRef.cs: id: ac937ff36845 last_write_checksum: sha1:b8af3bd72903ec5fcbd4247fbcdb91541104e1bb @@ -722,16 +735,16 @@ trackedFiles: pristine_git_object: 50b495a125d2fd6f8868333ff66dac7d5a9c405f Codat/BankFeeds/SDKConfig.cs: id: f6805c21e6f6 - last_write_checksum: sha1:84485adcdef42030730433f172cd88406b1d9b80 - pristine_git_object: e9a0802b572dbbf29d7baf651ff1b960ccdaff5f + last_write_checksum: sha1:26c2e1c1a4137f2b819e773703184e2df5883721 + pristine_git_object: dbc1e3aa6489ee280d872c71a463942bde4a069c Codat/BankFeeds/SourceAccounts.cs: id: f6a7ce806fc8 - last_write_checksum: sha1:925edf02a2de4015910e95e08dd5e11cbd4a160b - pristine_git_object: c0ebb87d13907ff9023802240cbf3a8bc0c8fe36 + last_write_checksum: sha1:60eb3cabac79fdc6b33f051cde71e4d6365134d2 + pristine_git_object: a1a1eded943734ecb5096dd58bd11647d6f5d158 Codat/BankFeeds/Transactions.cs: id: 0df622cbc35b - last_write_checksum: sha1:d5dbf27b05bdb6a82c4b66d1a72e407c3b346670 - pristine_git_object: c82b036170cd2b66aa020ba5d3f57550df04a3ef + last_write_checksum: sha1:08573355ff69ee96d7ed2530ed495b408d4c1840 + pristine_git_object: e8fbb26a29a740bd8c87a62ac6f91c1558dad95a Codat/BankFeeds/Utils/AnyDeserializer.cs: id: fcfde7b13333 last_write_checksum: sha1:61dc6e9f0139522a530d3fe8bdd9ad285d4ed798 @@ -742,8 +755,8 @@ trackedFiles: pristine_git_object: 03b63a14db181e929d0d57303d21934f638cef99 Codat/BankFeeds/Utils/Constants.cs: id: 0e6827a53cba - last_write_checksum: sha1:eb9d3a7651b7b44ad23fccd5e74c8c4a80b40a55 - pristine_git_object: 9c86ef8d40c0ff760236780381dcce8c7116112e + last_write_checksum: sha1:ae27c3c7c69aabe631dac31bf6305d703b6a8733 + pristine_git_object: b11cd84efb422a1f96e659a1c0146594d934619c Codat/BankFeeds/Utils/DecimalStrConverter.cs: id: 5f4bbeaf1e21 last_write_checksum: sha1:94d464c1aa7131359a0c93d64160c1466caa313b @@ -770,8 +783,8 @@ trackedFiles: pristine_git_object: 0af914fecec2a7b87cf9f3bea5db001526733c12 Codat/BankFeeds/Utils/RequestBodySerializer.cs: id: b07d3670c0c2 - last_write_checksum: sha1:18862cffa301bdec244e238b4de3719a53ab0712 - pristine_git_object: 8cad303c04d929c2602e8e736472591db17d2085 + last_write_checksum: sha1:b8b680ec2a3acc22e101ac0e577304d10dc10e15 + pristine_git_object: fbbbd6462d7997c6e56d5932bd72b02de029b68a Codat/BankFeeds/Utils/ResponseBodyDeserializer.cs: id: 5e00454de7f6 last_write_checksum: sha1:b634f0a40926b930883e659562f07334ee774f68 @@ -782,32 +795,32 @@ trackedFiles: pristine_git_object: 6adc1790244312009c95a8e785d9c6e43919ccc4 Codat/BankFeeds/Utils/Retries/Retries.cs: id: fe7d624b59e0 - last_write_checksum: sha1:acc067f3b5ad61c23f44e48f2059ccca77fae9f2 - pristine_git_object: 33797487f18f882783c8cbcb941c9a8fefe2cff9 + last_write_checksum: sha1:60d22f1799d06292632fd4d25c8727b6d22abdd9 + pristine_git_object: 2d67c4efff54c3a537afcefb66a4599b42081e86 Codat/BankFeeds/Utils/Retries/RetryConfig.cs: id: 80fa9164544e last_write_checksum: sha1:51dca37e7591cfcbe25691b478deda4dafd8bd98 pristine_git_object: 694d3f426fa146a3a7ce67bf145da61b3d7e64c3 Codat/BankFeeds/Utils/SecurityMetadata.cs: id: 58ed702bb483 - last_write_checksum: sha1:3d17d681774003fd0f50d7c84686c2dda0358c97 - pristine_git_object: b4c71dc8737b8f3c87fa644947a578426f425eb9 + last_write_checksum: sha1:4dcaf4ba3ee13530af351bf53c0056b619a779c5 + pristine_git_object: 42cd40b55838c3cb0c789ac70e767991b421fd75 Codat/BankFeeds/Utils/SpeakeasyHttpClient.cs: id: 5d961381f2e4 last_write_checksum: sha1:2d80b8d6b1c24579fdd6bc3bf65f6b9c3d947710 pristine_git_object: 096f0ad8051f26fbaccd74813809b81277128b21 Codat/BankFeeds/Utils/SpeakeasyMetadata.cs: id: e698a536c92e - last_write_checksum: sha1:066ab8834ce74351c8749e998bec567a6972eae9 - pristine_git_object: 512af1f66e4b442de9ae0e0d290b70873306ba8a + last_write_checksum: sha1:4aca8d1506af98857b05f297c7794da4fdcd8712 + pristine_git_object: c1ca60340fc4b40e264b23abdc603dad1e4b3cca Codat/BankFeeds/Utils/URLBuilder.cs: id: 0c2dc2eadbaa last_write_checksum: sha1:34bd215dca6ab781ad32f63470c9e24e44c665ec pristine_git_object: e087e1a943511f3f69977de5969cdde51de30eb7 Codat/BankFeeds/Utils/Utilities.cs: id: db6fceaad525 - last_write_checksum: sha1:9dfe6eaf691445029a3ad22f335ba33dcabef461 - pristine_git_object: 8223f2beb1e356eb23678c57bf979a48cf85e890 + last_write_checksum: sha1:ae846e6cfe2fd5c9f7cd9202e96eaf12e42ded76 + pristine_git_object: af40f1f7e0e128a42408aeaff21178a478489e27 NUGET.md: id: f4c8a442a6e5 last_write_checksum: sha1:170767dcc888f07e2af2a8db19184ccadb8cf3c9 @@ -838,8 +851,8 @@ trackedFiles: pristine_git_object: 8f59ae20ff419a19bffc8cfd04f8b109a867eb18 docs/Models/Operations/CreateBankTransactionsRequest.md: id: d21fb1ae9a50 - last_write_checksum: sha1:c0033d4abda9840a087a104493cb45a6553134b4 - pristine_git_object: 7c11c637bcad405b98f26ac06b1aedd742558f90 + last_write_checksum: sha1:853c8bfc10e62570a12e5787a574ea5d199220b9 + pristine_git_object: 3da27e4f687800953689fcb7e8d4bc4ceb61c74c docs/Models/Operations/CreateBankTransactionsResponse.md: id: 4ee8cd01c760 last_write_checksum: sha1:49b73829244d698688f9b2445ec8cd7d94039673 @@ -918,8 +931,8 @@ trackedFiles: pristine_git_object: ce373caba7e53b86fa3a74ff11c52914beeb22d2 docs/Models/Operations/DeleteSourceAccountRequest.md: id: 65c37759918c - last_write_checksum: sha1:1cb88bf85b304cb9e17008d0fef212a8fd2cc7fb - pristine_git_object: ad916dc015b7f9034cbf70c17466cc0622df1f4d + last_write_checksum: sha1:d9ace07dcf3e1b38667d74fd1769e8633335f927 + pristine_git_object: 617f2cda695af4fe45e3f4394bf848d9a6cd577c docs/Models/Operations/DeleteSourceAccountResponse.md: id: a86080ee3209 last_write_checksum: sha1:9d2d9b371f2c5af6b32518eb2ff3acbaa8a72096 @@ -932,6 +945,14 @@ trackedFiles: id: 1e4b8000f332 last_write_checksum: sha1:adeb544582d6b6a561f65a42113d2d85c7a2d607 pristine_git_object: d6500a9d976f6e0eeeb7642cc9401ed871d67c90 + docs/Models/Operations/GenerateOtpRequest.md: + id: 3f037d163ad4 + last_write_checksum: sha1:6e94a8929d05c028bfaf1742dfa382b62ce906f2 + pristine_git_object: fdea8e0d3e20f3f79d4ae6b626eff4627cd3511a + docs/Models/Operations/GenerateOtpResponse.md: + id: 5df33517d482 + last_write_checksum: sha1:cd1d9cf4f270d44464441ebe10ad236c9b7f259b + pristine_git_object: aac317498ed5447faab98cf0f47fa901e425ae92 docs/Models/Operations/GetBankAccountMappingRequest.md: id: 140b0fd6d0f9 last_write_checksum: sha1:9f7bb491865ade207e6de3006ff8d79a8c57dadc @@ -982,8 +1003,8 @@ trackedFiles: pristine_git_object: 23a3001024d00e0464ec9656cab038ffa8e9a876 docs/Models/Operations/GetCreateBankTransactionsModelRequest.md: id: 86726053e992 - last_write_checksum: sha1:f7d027cd04acf3653c0054a0598c36a2efb07100 - pristine_git_object: 8fda6965ba2f04d3d3412d23c8617bffe76c6d38 + last_write_checksum: sha1:4428bd16f11177ecf0ac9a74b3d9da362e2cb6f1 + pristine_git_object: c4b972fd7ac82d652bf73a21ef97221fa1b76568 docs/Models/Operations/GetCreateBankTransactionsModelResponse.md: id: 7f3ac4685e7c last_write_checksum: sha1:2a47689d59d4dcf1fbb34de0d0e78959d5201b92 @@ -1098,36 +1119,36 @@ trackedFiles: pristine_git_object: 5e8947eabc008afcb786ae5eac3159a77b5f183b docs/Models/Operations/UpdateSourceAccountRequest.md: id: 3de64dbf3230 - last_write_checksum: sha1:16960c7c854c642e365e99b9b8fa940f2526f035 - pristine_git_object: c5c7450f76634df0382203bd511cb9349859742d + last_write_checksum: sha1:a5258e05bec49ba70a0467f6ade1daea2d9172e1 + pristine_git_object: 23cb357a0139be90a6221bae1b0c66721fc02206 docs/Models/Operations/UpdateSourceAccountResponse.md: id: 73ce677a40a7 - last_write_checksum: sha1:4f27398c956199d971a314ce0b247277f9fe9ae6 - pristine_git_object: bc5e745fb7335136d7f72d229f64d460633c85fc + last_write_checksum: sha1:1d8a050493eed6a57fbec576a81f93d568839a6e + pristine_git_object: c64990f932599300ef25d3955afcbbda4b04ea39 docs/Models/Shared/AccountInfo.md: id: c6b5fc92af48 last_write_checksum: sha1:e039de2c213d67655b7dff8b16f3dbaf926b8c11 pristine_git_object: 8b5b838317beca60c7f7b259dbb532e22754baf7 docs/Models/Shared/AccountType.md: id: 990ebbab609c - last_write_checksum: sha1:f973b7cc51132e31e3c998e3ec1120b2ba956968 - pristine_git_object: ba17e5a98d3f3b6c7d5073d85be4e4b723ee3618 + last_write_checksum: sha1:0f4234f1832fc352779668cf25b8828866454b6a + pristine_git_object: 61acb828ed04254ec93051247953760563d03c88 docs/Models/Shared/AccountingBankAccount.md: id: c9fc6e6432fd - last_write_checksum: sha1:9c4fc65a704b454ae8e911ee554ffb9122f376ae - pristine_git_object: d4905fb69b6174c917f5aa59e1268def3845bfdd + last_write_checksum: sha1:b5e3be11600b96c609dc2ad99c08ceb664b53838 + pristine_git_object: ace03a037fcf0e304b52f8e3698e0e4ec80e86b6 docs/Models/Shared/BankAccountCreateResponse.md: id: ef27ba73a966 - last_write_checksum: sha1:9f5e70eb27a292871cf9a2069fb71d2cb158192c - pristine_git_object: 6091530ddb08cb58e22a3ce3b5c8be0dfbeef6d5 + last_write_checksum: sha1:edeb256252a863e1f601474abb0bf865f2098093 + pristine_git_object: 1297b1b3d63ed0905e8d17171ecbfc2f1717a736 docs/Models/Shared/BankAccountCreateResponseAccountingBankAccount.md: id: 63c5cf2a8298 - last_write_checksum: sha1:621c0a595eb759a48d18a905c5c6a05fb99b9071 - pristine_git_object: 1775661516b91ff5f2aac78070da3f976ffac293 + last_write_checksum: sha1:5cdfe7e2f6ca8807ede5812e91951cd35c3caf67 + pristine_git_object: 82d752678c89404339436fbe041aa83985f9d4cd docs/Models/Shared/BankAccountCreateResponseBankAccountType.md: id: 0fb69d3bd916 - last_write_checksum: sha1:e599b865a221f5e2debe80303d819ae97211a7b4 - pristine_git_object: 3e01a16d785b0f9efa34c416bb5f34e8fed62c38 + last_write_checksum: sha1:76ee460b20d44f9c364ea6e9ad5d93f4451671d0 + pristine_git_object: 0be3bc48a804db88f8910db2c14c36d2130c1942 docs/Models/Shared/BankAccountCreateResponseMetadata.md: id: 211358835c9c last_write_checksum: sha1:3bc98b01237edda35ac4601aff83c0819a6b91d4 @@ -1142,60 +1163,60 @@ trackedFiles: pristine_git_object: 65260fab59f00a9256547cd35aafd7821125beb6 docs/Models/Shared/BankAccountPrototype.md: id: 1871d925c0db - last_write_checksum: sha1:94911f9ef250681f0ebae34a1c7360cd3bf7c245 - pristine_git_object: d2623a23ce95c8b6dce4549e1d935353348d2cb4 + last_write_checksum: sha1:c87a9bcf26b260aad52c2c53e61c497884e25345 + pristine_git_object: 5bda589511ac110e8d1ff5dc7970067e77ad200e docs/Models/Shared/BankAccountStatus.md: id: 483f38944c58 - last_write_checksum: sha1:141df201e2849300511668af5191641017a6b591 - pristine_git_object: 4ae20d422bec50701e6b3b052a9429969b86fe8b + last_write_checksum: sha1:108f06a6a5f145db8c20d445a948c3bac871a117 + pristine_git_object: acd2477bc13704f05fee99c48130bb3677f9b8b3 docs/Models/Shared/BankAccountType.md: id: 09b53958c9fc - last_write_checksum: sha1:9f3be767d9bebe03856cb55324cfc63304c0dae1 - pristine_git_object: 422338c051e74907c712c41894dbb07a20065114 + last_write_checksum: sha1:9301bcb9e84eb7fdf13a201cc61f5c72121b3770 + pristine_git_object: eb443429e048a80da8f23a6b0235f142760a523e docs/Models/Shared/BankAccounts.md: id: 9b6214380262 last_write_checksum: sha1:2948b3080599c24e49ef56c603c2407cba1aeb4d pristine_git_object: 956c65892182349562c31ba3434a657a2920d672 docs/Models/Shared/BankAccountsBankAccountType.md: id: 9f83baa768f3 - last_write_checksum: sha1:db41797af01ace6b32e9fe319f0a6a0f80bca578 - pristine_git_object: cfe10f447fc22b04018ef1e0d1ba3d85f5c8be42 + last_write_checksum: sha1:29ff6094240416a2e67dc8cdef188a9974a7564b + pristine_git_object: 1097b88b240194ae25038d334d9677af4fc753a3 docs/Models/Shared/BankFeedAccountMapping.md: id: 754a765f159f - last_write_checksum: sha1:9a232abc88a6bbd064a62ebed88b67020338e03c - pristine_git_object: 601d3b7c28cea7e8e76d463cd53395d869150388 + last_write_checksum: sha1:8a4d6618978eaaa595494fcd6b6852ef92c9d723 + pristine_git_object: a6a6c9ff07bd0bec34377378dd7d3f8d0829f22f docs/Models/Shared/BankFeedAccountMappingResponse.md: id: 1f0dcfeac7de last_write_checksum: sha1:2c9cb82f42321ad70613b69a4df88f1e74e1f673 pristine_git_object: d946fe3dad05a7e47c90bc61656b1531c9803024 docs/Models/Shared/BankFeedMapping.md: id: e29b80aa8534 - last_write_checksum: sha1:76fd2607ca3b85b897861c7ecdeda6c33dfcfd28 - pristine_git_object: 55abde013722595487b2ca4015e0f93864914abf + last_write_checksum: sha1:b736216e7438fc050f39567281bdf7ee13cb1fb5 + pristine_git_object: 1e817bd6cb9b80aa7e6b16b1fb20dda610f1053c docs/Models/Shared/BankTransactionType.md: id: c54e35a5b44f - last_write_checksum: sha1:b12eae7abb77942bf30ddb7191d74ba34f08a5c7 - pristine_git_object: 749fe41b2c455b66010b8a54e040f58eba72bd59 + last_write_checksum: sha1:f7edbd14fc3f27d8e904ecd141b7ece331db7771 + pristine_git_object: d0321466ff288609a3a67b7b526dce972029b257 docs/Models/Shared/BankTransactions.md: id: 4249068b40b8 - last_write_checksum: sha1:d888cae3c2ec8869592e8db2d1d9d939ee43c75c - pristine_git_object: 3cd3f964458c78a678f78997067d18600087952b + last_write_checksum: sha1:6dedd2fa0153ffa53bac26924c8acb9ddcf75c8c + pristine_git_object: 7cd17ea3800f4fdc843bbde3bbd83addbb619cfa docs/Models/Shared/ClientRateLimitWebhook.md: id: 1ef562909c52 - last_write_checksum: sha1:38dc67a1d2d6030792b4c9836bc29918b7e9571c - pristine_git_object: dc53a81164fa63d05fc382df0d581e1d55d8fe7c + last_write_checksum: sha1:63ede9681989adf31b56aba235bf56bf86984645 + pristine_git_object: f21b550e5520aeda76c41bbddaf1f8c8a904d199 docs/Models/Shared/ClientRateLimitWebhookPayload.md: id: 439174b8e305 - last_write_checksum: sha1:d4139704462019e91c1bf801610e39c3c79fff3a - pristine_git_object: 5cd8406a355d8e34d949669875e3e7a7fc2ccbcf + last_write_checksum: sha1:1a7795dd1007642791299f3ec78d349d1ebb47ec + pristine_git_object: ba85388946a28ad7793134a481f5ae3cd7896f3d docs/Models/Shared/Companies.md: id: a0ccb592562c last_write_checksum: sha1:33ceb259a7f6e0da08cc1853eda70f5a49645f00 pristine_git_object: 9b5611afd6b706c5da10b27b42cade952f5985b2 docs/Models/Shared/Company.md: id: 0bacd7adecf0 - last_write_checksum: sha1:56f079936116ddb8f1bff02e5708fe09e3a9e79c - pristine_git_object: 8831ab917d3ba684e962abd5e7420f65ccdbf193 + last_write_checksum: sha1:82db0596e9251d8a10d8eb12cb352075b9cef04d + pristine_git_object: 742222ad21641815234426a7210793a3fdfc4206 docs/Models/Shared/CompanyAccessToken.md: id: 76b9f12f8d38 last_write_checksum: sha1:49e93a5cab9a98b20a342641c663672514dfd706 @@ -1222,36 +1243,36 @@ trackedFiles: pristine_git_object: 2e5fa23d7bb058f3ae24ddb1dd16b618858575c2 docs/Models/Shared/Connection.md: id: dc957f4fb698 - last_write_checksum: sha1:47fb1643ad984131c8418d0eecb139281f16e9fc - pristine_git_object: f60ec0ad2dca08f7709b527ba8628d8d86f64d97 + last_write_checksum: sha1:dbadff097fdfa61568b129a37177b28214ae0402 + pristine_git_object: 0dd5577f1e1df0390214765a095af4b3c88fe879 docs/Models/Shared/Connections.md: id: b666cc92052a last_write_checksum: sha1:972fd49e0b70b8083d0e5dcedc1c24c1ddf5a42f pristine_git_object: 57cf4c378d4f74c4276a5559aa82a7dcc92a3f78 docs/Models/Shared/CreateBankTransactions.md: id: 86b9cb92f366 - last_write_checksum: sha1:d7ee8955ebad073b4d0c0259c21ebd6f5c1eac8f - pristine_git_object: 9f4e5df2316f0688bcaec2ea50235becd2013b8f + last_write_checksum: sha1:ee48e313b704fb8ee100ef5b1ccffabb765cf0dd + pristine_git_object: 196dde6d9a3d9b67fbe4e8bbbac8e67247358ea8 docs/Models/Shared/CreateBankTransactionsResponse.md: id: 13ade1444216 - last_write_checksum: sha1:c2a6c27e6f4484350d7a818dfe9647a4a8f31fc8 - pristine_git_object: a1f04458d6179328d94c5e7c3524db08dbec7d68 + last_write_checksum: sha1:7646c6ce1a9c21288320a3d1ee5943b9801547ea + pristine_git_object: 750c7352e54df851d77a08a66c7bdd58e6a2fd1e docs/Models/Shared/DataConnectionError.md: id: d23a4498743b - last_write_checksum: sha1:b71111b86d74ad2dc674cddf4267af54629673e3 - pristine_git_object: e300d83322071a0370c6c0a100f00f609f9b32ea + last_write_checksum: sha1:95522937cc2f945b48d7548e14e700a299830782 + pristine_git_object: 2ca1130f862d6be3c9e2cc7f19b291b580b5dbe4 docs/Models/Shared/DataConnectionStatus.md: id: b6023d05fc1d - last_write_checksum: sha1:b4fe05d43957d052510e1a5e916e25bc0175116a - pristine_git_object: 5d13bea516133003653398aacc1e9b963339249f + last_write_checksum: sha1:1507356b39ea684cb77ecd092abb451568ef5366 + pristine_git_object: 4b27d69a8e440549eff10116ac74f47ab8e5ab7e docs/Models/Shared/DataType.md: id: ac1aadc80f32 - last_write_checksum: sha1:daf79b7b459f751a44e0c912b91f22a91f3a942a - pristine_git_object: 4f6ed34172739dfabc1ced9d796293ee50eefc6f + last_write_checksum: sha1:5dc4ac255c05d298e96ce05fc28bc3da8661dcbc + pristine_git_object: 4b4652a5ec938ec23395147075f646bef4abd316 docs/Models/Shared/ErrorStatus.md: id: a442c2aac5e2 - last_write_checksum: sha1:54db65bad80e1edaecafa188d720645ba04cf00a - pristine_git_object: 9dc6625538bc288b5d0290e56d43ef5d84b0e676 + last_write_checksum: sha1:81175f91552be6ba398ce23ba45c67b3b0157245 + pristine_git_object: 567ccf6dc8574ca7778f42b10d27b384361e72aa docs/Models/Shared/ErrorValidation.md: id: 3a93d58ce8ba last_write_checksum: sha1:a9d454e3fa1e104edb254a78309fe6ebc96eb032 @@ -1260,6 +1281,10 @@ trackedFiles: id: 419fd0e21ac0 last_write_checksum: sha1:726fb6472066f59a3bcbac265430235499e100ae pristine_git_object: 6e0b6e5e3945b1fa7ad710c2b30d977332e20abe + docs/Models/Shared/GenerateOtpResponse.md: + id: acc8ecc02aa7 + last_write_checksum: sha1:02b7e36384d23805afad2ac5826ac593a00d9540 + pristine_git_object: 9cdf2f36f472b296e620c07174539a90738ec1fd docs/Models/Shared/HalRef.md: id: 591468342f60 last_write_checksum: sha1:e939b73619984d87dd17850152acb1df5ec0e313 @@ -1274,16 +1299,16 @@ trackedFiles: pristine_git_object: df60bed3a1d2692595fcf38cbb688726bac60682 docs/Models/Shared/PushChangeType.md: id: 6de80b1425da - last_write_checksum: sha1:18ec22aca07ce19b41a703ad1cd57154089f9112 - pristine_git_object: 7585e9c8cf7ae495dd24a7da9b7ba4a1b4bf1452 + last_write_checksum: sha1:418ea4b68f381fc72b3e0e1eced4b409fb1c89bd + pristine_git_object: 0a150b0aaf1443d30ecdc6770e3b7930bea9e78c docs/Models/Shared/PushFieldValidation.md: id: 9b5f64d5f6de last_write_checksum: sha1:ad48b5af8f4beeb07de2735aba150068b7f9a67c pristine_git_object: 1b11ccb06268027c20a6846aba856aaca3df5a1c docs/Models/Shared/PushOperation.md: id: 4a221b645804 - last_write_checksum: sha1:6b457fd9fb9d9b0119435c3288bb6168e1ed8391 - pristine_git_object: d2e918a4c783f685dae4674392bb154947eafb5d + last_write_checksum: sha1:7fc0f3ad5e29fdfcf78d2cef644847c78aa8377c + pristine_git_object: ba94bcea9d925bf96ffca711e5170ba8451258e7 docs/Models/Shared/PushOperationChange.md: id: 92da138a1f68 last_write_checksum: sha1:2fc9a993d57808ba089f990feef1327eb6602f77 @@ -1294,8 +1319,8 @@ trackedFiles: pristine_git_object: 36d6bd5a4232d8e67a33a9d9eb9f3fc98a74e3e9 docs/Models/Shared/PushOperationStatus.md: id: 055306d95263 - last_write_checksum: sha1:33fd1e78d2677a1d351510a53e2add8c200da2d3 - pristine_git_object: 4e041b534abc59050686f121dcd3852b4e61dab5 + last_write_checksum: sha1:e8f3e471dcb8f8ab292f89689b88946c4f187550 + pristine_git_object: ed45086c95bd46f99f1e20b493e4635c7dc2479a docs/Models/Shared/PushOperations.md: id: c6713e9e008d last_write_checksum: sha1:192f8b9fc160cddb1d7d4f92376cbcc442eac9a0 @@ -1314,8 +1339,8 @@ trackedFiles: pristine_git_object: a7e92dd2e7044668809e809de4ad9e8e69fabc3f docs/Models/Shared/PushOptionType.md: id: "761515451717" - last_write_checksum: sha1:c733fb80305dde395b3ab35c9f736d366bd901ca - pristine_git_object: f1bb3708829f9e73977f820d3da9e2c834a0e365 + last_write_checksum: sha1:f18e77eb41efef3b225fca627873f3c3b559792d + pristine_git_object: 8b78f7f6f877310dd28e2389b569ba084bb386b9 docs/Models/Shared/PushValidationInfo.md: id: eacc6dedb1df last_write_checksum: sha1:1d4a26eea2c6ac4491c8dee9a2cb36e709dade3f @@ -1334,52 +1359,52 @@ trackedFiles: pristine_git_object: a997c0213ebb03783bfda0a7559d0e1f0fd7d463 docs/Models/Shared/SourceAccount.md: id: adebe6b7a393 - last_write_checksum: sha1:c9c591dc1a1211ee2c414c13204cb330a86e7b76 - pristine_git_object: f1bd3e5012b608b7f78358b9ee61cbdc25a5aea4 + last_write_checksum: sha1:131870ce85f6326294578ec305881069b8bf9caf + pristine_git_object: 4e06607421169a61f4d25ef59d5c53c96eefc04d docs/Models/Shared/SourceAccountBatchCreateResponse.md: id: c404f67c7490 last_write_checksum: sha1:40f7abb47fc1c6dfe8e26c0840f28055e9642006 pristine_git_object: 7e14699b43ca3b2e496b1718d0f93ec56c1c0d45 docs/Models/Shared/SourceAccountBatchCreateResult.md: id: 37502af09be3 - last_write_checksum: sha1:cb69effe7390ed62a22c6dc3a6329d8d3879aab8 - pristine_git_object: f6cfa7b4e7ffca893db5eceeade9c79545937b59 + last_write_checksum: sha1:d816444f025e92a7a1a5a77d2d273d767b6f837f + pristine_git_object: ca3ec4f387bce38fc16b31d99ead12ef4a2388df docs/Models/Shared/SourceAccountBatchErrorResponse.md: id: 0be3f13a79a0 last_write_checksum: sha1:a467b7ad47d1078201ea6ea8c0f9f7d28b89f61b pristine_git_object: 4cc5053cddd2cef9cd04c6b54e79a987da3c71af docs/Models/Shared/SourceAccountPrototype.md: id: 6236fccaefab - last_write_checksum: sha1:2927440a74aafccebfd59cc21536dcb255c6752f - pristine_git_object: 9153044f488df05a4fc3ae24207eca09d1e83298 + last_write_checksum: sha1:eef120e54297ba3879abf7e12963758cd9365d2d + pristine_git_object: 60030a98b02b93658b5a97f84548351fc524ce49 docs/Models/Shared/SourceAccountStatus.md: id: 8aace5009465 - last_write_checksum: sha1:fd7217814ab267c44580c2982727441b53f59d77 - pristine_git_object: b10dbe8de055204ad269417ad976009e9f484a6c + last_write_checksum: sha1:b109f50dbcb35897b49e541fd6bb57314c6f4ff6 + pristine_git_object: 121416dd7839ec2c16214f181837f8b284f9107f docs/Models/Shared/SourceAccountV2.md: id: b92424e542f8 - last_write_checksum: sha1:0876ee45209a06556ca22c52d28628d3fccb6e0d - pristine_git_object: 39acbf28ccfba4be742529490c3adfd237855e33 + last_write_checksum: sha1:858ccc383c184f3d488375550f132e3b7fcc26f6 + pristine_git_object: a0f22d59ef3a31118d3790c905990054223aa368 docs/Models/Shared/SourceAccountV2AccountType.md: id: b0f5bbeaa0fd - last_write_checksum: sha1:8be5adb697720f4a5ae24e9e28d2899246dfabb5 - pristine_git_object: 827c490bdf2db2dc43ee274cacc0a5505ea6d147 + last_write_checksum: sha1:a02f4294a6d0fa0bcf810c3ae94311f5e89f994a + pristine_git_object: 58a431ffc1ed4fb67bb66a7cd2d944bcdbe4d05f docs/Models/Shared/SourceAccountV2BatchCreateResponse.md: id: 4d41a7d9bb28 last_write_checksum: sha1:74caa9fe2e60c0f1bd19d5bd9b701613e19077f5 pristine_git_object: 163d75b558ee47a5846350db5d03f5d5fa782ca4 docs/Models/Shared/SourceAccountV2BatchCreateResult.md: id: 8f773fa07bb5 - last_write_checksum: sha1:a4f5f6bbe424ba9c95b36a94723e3aad9ce4f7aa - pristine_git_object: cf6ff2475969924b5e430342b79d868be2947a88 + last_write_checksum: sha1:da74661f141b6337712d37829a987d9d44a404ff + pristine_git_object: 64ddbeafbd43679af10c22303e8204be74611484 docs/Models/Shared/SourceAccountV2Prototype.md: id: f4030fb0eac3 - last_write_checksum: sha1:5dd12010aed73220fd98baac6af050bb8ecdff72 - pristine_git_object: 1b1aa0ce712899e95dba918dc27258dd753a3db9 + last_write_checksum: sha1:d6751a192292a2cf12ac0bc11902f8b5642dd973 + pristine_git_object: d9f96380f5c6c16d867f4701cf2682671b1f8e8f docs/Models/Shared/SourceAccountWebhook.md: id: 596a95c0f992 - last_write_checksum: sha1:9610375af686822a5810f65defdbdda3be19bb82 - pristine_git_object: 1a9a1958ff697f48bea1a9e9592d30e81ce9842d + last_write_checksum: sha1:36f26db4bf6e67b3737e1d70dca506a39458126a + pristine_git_object: 8c649ee2d6daaddab8518b25960c204d354cc6cc docs/Models/Shared/SourceAccountWebhookPayload.md: id: 2e94655e7920 last_write_checksum: sha1:2bbaa923a68f996448e4b7d25c522c736b4f19da @@ -1390,16 +1415,16 @@ trackedFiles: pristine_git_object: 632106f5b32c232d05ab06980b6d68e12c8e9096 docs/Models/Shared/SourceType.md: id: 39837f63adac - last_write_checksum: sha1:f03d269bb54c4c8c38078a56ace7aba84193e83d - pristine_git_object: 3ddd34f70f3d4f0233402b8450a8002d16904e84 + last_write_checksum: sha1:5392d1db3f5f3d333ed31c1c2eeb2c99d2c8166e + pristine_git_object: b202e8d72bd3c9bc2cba75359c78146c6e542e77 docs/Models/Shared/StartScheduledSyncResult.md: id: 9fc7c2ad04d4 last_write_checksum: sha1:d7a6174ad1641e09108e95e4bd40e6cf9ce0dc7a pristine_git_object: 53bf39a157f1ab524d2169bbb36ad4eded0f3e52 docs/Models/Shared/Status.md: id: 162472e9fcb5 - last_write_checksum: sha1:7d5429eddb4d0ed8cf6884ef7a9ca9b0e317a3b7 - pristine_git_object: 8175684289b600b1a2923050fbb1c22775a3f156 + last_write_checksum: sha1:a0266a7a4b7b58081d4bf7f8ff6514a0b41b9e18 + pristine_git_object: a073a35c6750964fb0319c8cb09d07bd44b2c94e docs/Models/Shared/SupplementalData.md: id: 5c0e5f6881d6 last_write_checksum: sha1:c28abaeeee700c566fb4ee1288f22f8f9e2a7ad5 @@ -1414,8 +1439,8 @@ trackedFiles: pristine_git_object: b011dcbd3ed789f8032e6c3b4fdc891f0aa79d54 docs/Models/Shared/Type.md: id: 1475e79ae8e9 - last_write_checksum: sha1:7beec359e019e7800ed8f5c5ff946135d51a8af0 - pristine_git_object: 96e7f7338bc526e0d80f53c4aab72d18dbf28e98 + last_write_checksum: sha1:107fff9e37f834ae520e9e9a529729a7e85be3d2 + pristine_git_object: 8c1853a1e5f77446c60d6ccbc8cf54fead5245b7 docs/Models/Shared/Validation.md: id: f6b7937e6da7 last_write_checksum: sha1:3cb8a7f30a2e0475dce06f9f6abe299f025e22cb @@ -1442,36 +1467,36 @@ trackedFiles: pristine_git_object: 94e8224449b12d31bae84f283649675d21c0169f docs/sdks/accountmapping/README.md: id: 7ad9f6f15c0f - last_write_checksum: sha1:d419bfa28ff7263218d0e61950b2e8c4afbcda13 - pristine_git_object: f43ec46b167bb6c6b33e513a614f7430ee09d0e0 + last_write_checksum: sha1:4756f8eeb8250df20b4a1c214d98133a9a2eaea4 + pristine_git_object: b2aead0cd2e42dd6480648377ce6c2ebce41ab33 docs/sdks/bankaccounts/README.md: id: 510ffee224ea - last_write_checksum: sha1:3dcb3248465fb4b252a810979cce02678c93fffa - pristine_git_object: a24e306cd2ac682ff4a4c895f30da62941b73aef + last_write_checksum: sha1:5ab12540c436423c1fccf06d909d36e5d9de7b8f + pristine_git_object: 1589feec92136e4c1ce5f00f8ee072eec101ef86 docs/sdks/companies/README.md: id: 67e8a49afa67 - last_write_checksum: sha1:58b5ca1d0b6f14ffc01fa3ffedbbda1bc9938df2 - pristine_git_object: aa43c0dd4939f42434a4d273868a8d37a5cc2dd1 + last_write_checksum: sha1:e7de7493876272c63f8b96c93d826e2f944ef0e7 + pristine_git_object: d8c3ba66d6e03942c0c3872fda75e8af14538c96 docs/sdks/companyinformation/README.md: id: 319c7ed51023 last_write_checksum: sha1:053ba580628a7aaae2040a9e80e895dafcda859c pristine_git_object: cdb692ef4528d0c0acff519b1e953b8cbf6d8183 docs/sdks/connections/README.md: id: 3ef8931411ea - last_write_checksum: sha1:b98d343b3786a4c3375bad153ef1b76c2a2beac0 - pristine_git_object: 402d835650fc66d544bdbbd519ebdecb120b0805 + last_write_checksum: sha1:b00acf4129e4d560286b2987d5f363ecd118649e + pristine_git_object: 9bdeb0425db7377fd1b4ea6a26efcf614c6cfe6b docs/sdks/managedbankfeeds/README.md: id: 65ae848bcac2 last_write_checksum: sha1:ef1f7f5c86dc1c70e77298cb31a9ac3860880b33 pristine_git_object: dcb2e4326aef18ffc642b0156ccd71a19b777c40 docs/sdks/sourceaccounts/README.md: id: 19ba068a7927 - last_write_checksum: sha1:b8e782cdeea45029d77f41e05617029ed4db3dab - pristine_git_object: b24c608e2f2b5de3a8d22058eb1a05925c9d17fe + last_write_checksum: sha1:90ee178e9f82a0a6dabb955bb33720eacc3eeb36 + pristine_git_object: ea93bfd615963f13180d2457d96260052678e6b4 docs/sdks/transactions/README.md: id: 85592abe3c6b - last_write_checksum: sha1:0ab38330e06507950a616f013cde94bd37b3c4cb - pristine_git_object: 78b84db3544ca9871e612920b69e5f929f2f5a04 + last_write_checksum: sha1:eab794303a2d6d35f78bc5b2eadc584641afad6d + pristine_git_object: bdd2f08404bbb0906b12eebd9560cb75085f542c global.json: id: 908e72401bf4 last_write_checksum: sha1:3161b880f51cd74e7d1dea069b541d8bf4736dc9 @@ -2767,22 +2792,34 @@ examples: application/json: {} "500": application/json: {} + generate-otp: + Malformed query: + parameters: + path: + companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" + connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171" + responses: + "400": + application/json: {"statusCode": 400, "service": "PublicApi", "error": "Error processing request - not valid.", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "canBeRetried": "Unknown", "detailedErrorCode": 0} + "500": + application/json: {"statusCode": 400, "service": "PublicApi", "error": "Error processing request - not valid.", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "canBeRetried": "Unknown", "detailedErrorCode": 0} + speakeasy-default-generate-otp: + parameters: + path: + companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" + connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171" + responses: + "200": + application/json: {"otp": "GT40U4", "expiry": "2026-04-08T10:30:00Z"} + "400": + application/json: {} + "500": + application/json: {} examplesVersion: 1.0.2 generatedTests: {} releaseNotes: | ## Csharp SDK Changes: - * `Codat.bankFeeds.Companies.Create()`: `response.dataConnections.[].ConnectionInfo.{}` **Changed** **Breaking** :warning: - * `Codat.bankFeeds.Companies.List()`: `response.results.[].DataConnections.[].ConnectionInfo.{}` **Changed** **Breaking** :warning: - * `Codat.bankFeeds.Companies.Get()`: `response.dataConnections.[].ConnectionInfo.{}` **Changed** **Breaking** :warning: - * `Codat.bankFeeds.Companies.Replace()`: `response.dataConnections.[].ConnectionInfo.{}` **Changed** **Breaking** :warning: - * `Codat.bankFeeds.Companies.Update()`: `response.dataConnections.[].ConnectionInfo.{}` **Changed** **Breaking** :warning: - * `Codat.bankFeeds.Connections.List()`: `response.results.[].ConnectionInfo.{}` **Changed** **Breaking** :warning: - * `Codat.bankFeeds.Connections.Create()`: `response.connectionInfo.{}` **Changed** **Breaking** :warning: - * `Codat.bankFeeds.Connections.Get()`: `response.connectionInfo.{}` **Changed** **Breaking** :warning: - * `Codat.bankFeeds.Connections.Unlink()`: `response.connectionInfo.{}` **Changed** **Breaking** :warning: - * `Codat.bankFeeds.Configuration.Get()`: **Deleted** **Breaking** :warning: - * `Codat.bankFeeds.Configuration.Set()`: **Deleted** **Breaking** :warning: - * `Codat.bankFeeds.Sync.Get-Last-Successful-Sync()`: **Deleted** **Breaking** :warning: + * `Codat.bankFeeds.SourceAccounts.GenerateOtp()`: **Added** generatedFiles: - .gitattributes - Codat.BankFeeds.sln diff --git a/bank-feeds/.speakeasy/gen.yaml b/bank-feeds/.speakeasy/gen.yaml index 82564397a..e942dd3d0 100644 --- a/bank-feeds/.speakeasy/gen.yaml +++ b/bank-feeds/.speakeasy/gen.yaml @@ -14,6 +14,7 @@ generation: securityFeb2025: false sharedErrorComponentsApr2025: false sharedNestedComponentsJan2026: false + nameOverrideFeb2026: false auth: oAuth2ClientCredentialsEnabled: false oAuth2PasswordEnabled: false @@ -21,13 +22,14 @@ generation: schemas: allOfMergeStrategy: shallowMerge requestBodyFieldName: "" + versioningStrategy: automatic persistentEdits: {} tests: generateTests: true generateNewTests: false skipResponseBodyAssertions: false csharp: - version: 8.0.0 + version: 8.0.1 additionalDependencies: [] author: Codat baseErrorName: CodatBankFeedsException @@ -37,6 +39,7 @@ csharp: disableNamespacePascalCasingApr2024: true dotnetVersion: net8.0 enableCancellationToken: false + enableFormatting: false enableSourceLink: false flattenGlobalSecurity: false flatteningOrder: "" @@ -58,6 +61,7 @@ csharp: outputModelSuffix: output packageName: Codat.BankFeeds packageTags: "" + respectTitlesForPrimitiveUnionMembers: false responseFormat: envelope sourceDirectory: "" useNodatime: true diff --git a/bank-feeds/Codat/BankFeeds/AccountMapping.cs b/bank-feeds/Codat/BankFeeds/AccountMapping.cs index 26a88129d..f8a6a32e9 100644 --- a/bank-feeds/Codat/BankFeeds/AccountMapping.cs +++ b/bank-feeds/Codat/BankFeeds/AccountMapping.cs @@ -150,6 +150,11 @@ public async Task GetAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -209,9 +214,9 @@ public async Task GetAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -362,6 +367,11 @@ public async Task CreateAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + var serializedBody = RequestBodySerializer.Serialize(request, "BankFeedAccountMapping", "json", false, true); if (serializedBody != null) { @@ -427,9 +437,9 @@ public async Task CreateAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; diff --git a/bank-feeds/Codat/BankFeeds/BankAccounts.cs b/bank-feeds/Codat/BankFeeds/BankAccounts.cs index 8980dae6a..ad0536482 100644 --- a/bank-feeds/Codat/BankFeeds/BankAccounts.cs +++ b/bank-feeds/Codat/BankFeeds/BankAccounts.cs @@ -148,6 +148,11 @@ public async Task ListAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -207,9 +212,9 @@ public async Task ListAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -337,6 +342,11 @@ public async Task GetCreateModelAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -396,9 +406,9 @@ public async Task GetCreateModelAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -526,6 +536,11 @@ public async Task CreateAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + var serializedBody = RequestBodySerializer.Serialize(request, "BankAccountPrototype", "json", false, true); if (serializedBody != null) { @@ -591,9 +606,9 @@ public async Task CreateAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; diff --git a/bank-feeds/Codat/BankFeeds/Codat.BankFeeds.csproj b/bank-feeds/Codat/BankFeeds/Codat.BankFeeds.csproj index b2776a572..f0f822918 100644 --- a/bank-feeds/Codat/BankFeeds/Codat.BankFeeds.csproj +++ b/bank-feeds/Codat/BankFeeds/Codat.BankFeeds.csproj @@ -3,7 +3,7 @@ true Codat.BankFeeds - 8.0.0 + 8.0.1 net8.0 Codat Copyright (c) Codat 2026 diff --git a/bank-feeds/Codat/BankFeeds/Companies.cs b/bank-feeds/Codat/BankFeeds/Companies.cs index 01229aec0..7a5a8aff0 100644 --- a/bank-feeds/Codat/BankFeeds/Companies.cs +++ b/bank-feeds/Codat/BankFeeds/Companies.cs @@ -228,6 +228,11 @@ public async Task CreateAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + var serializedBody = RequestBodySerializer.Serialize(request, "Request", "json", false, true); if (serializedBody != null) { @@ -293,9 +298,9 @@ public async Task CreateAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -430,6 +435,11 @@ public async Task ListAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -489,9 +499,9 @@ public async Task ListAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -613,6 +623,11 @@ public async Task GetAsync(GetCompanyRequest request, Retry var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -672,9 +687,9 @@ public async Task GetAsync(GetCompanyRequest request, Retry } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -799,6 +814,11 @@ public async Task DeleteAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -858,9 +878,9 @@ public async Task DeleteAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -967,6 +987,11 @@ public async Task ReplaceAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + var serializedBody = RequestBodySerializer.Serialize(request, "CompanyRequestBody", "json", false, true); if (serializedBody != null) { @@ -1032,9 +1057,9 @@ public async Task ReplaceAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -1160,6 +1185,11 @@ public async Task UpdateAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Patch, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + var serializedBody = RequestBodySerializer.Serialize(request, "CompanyUpdateRequest", "json", false, true); if (serializedBody != null) { @@ -1225,9 +1255,9 @@ public async Task UpdateAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -1351,6 +1381,11 @@ public async Task GetAccessTokenAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -1410,9 +1445,9 @@ public async Task GetAccessTokenAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; diff --git a/bank-feeds/Codat/BankFeeds/CompanyInformation.cs b/bank-feeds/Codat/BankFeeds/CompanyInformation.cs index 1a088e40b..89e154608 100644 --- a/bank-feeds/Codat/BankFeeds/CompanyInformation.cs +++ b/bank-feeds/Codat/BankFeeds/CompanyInformation.cs @@ -110,6 +110,11 @@ public async Task GetAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -169,9 +174,9 @@ public async Task GetAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; diff --git a/bank-feeds/Codat/BankFeeds/Connections.cs b/bank-feeds/Codat/BankFeeds/Connections.cs index 44b4d047e..5b11b1138 100644 --- a/bank-feeds/Codat/BankFeeds/Connections.cs +++ b/bank-feeds/Codat/BankFeeds/Connections.cs @@ -163,6 +163,11 @@ public async Task ListAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -222,9 +227,9 @@ public async Task ListAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -348,6 +353,11 @@ public async Task CreateAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + var serializedBody = RequestBodySerializer.Serialize(request, "RequestBody", "json", false, true); if (serializedBody != null) { @@ -413,9 +423,9 @@ public async Task CreateAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -534,6 +544,11 @@ public async Task GetAsync(GetConnectionRequest request, var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -593,9 +608,9 @@ public async Task GetAsync(GetConnectionRequest request, } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -718,6 +733,11 @@ public async Task DeleteAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -777,9 +797,9 @@ public async Task DeleteAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -883,6 +903,11 @@ public async Task UnlinkAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Patch, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + var serializedBody = RequestBodySerializer.Serialize(request, "RequestBody", "json", false, true); if (serializedBody != null) { @@ -948,9 +973,9 @@ public async Task UnlinkAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; diff --git a/bank-feeds/Codat/BankFeeds/ManagedBankFeeds.cs b/bank-feeds/Codat/BankFeeds/ManagedBankFeeds.cs index 19f8eee14..e9f71fb16 100644 --- a/bank-feeds/Codat/BankFeeds/ManagedBankFeeds.cs +++ b/bank-feeds/Codat/BankFeeds/ManagedBankFeeds.cs @@ -138,6 +138,11 @@ public async Task GetSyncAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -197,9 +202,9 @@ public async Task GetSyncAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -323,6 +328,11 @@ public async Task GetLatestSyncAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -382,9 +392,9 @@ public async Task GetLatestSyncAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -519,6 +529,11 @@ public async Task RunAdHocSyncAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -578,9 +593,9 @@ public async Task RunAdHocSyncAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; diff --git a/bank-feeds/Codat/BankFeeds/Models/Operations/GenerateOtpRequest.cs b/bank-feeds/Codat/BankFeeds/Models/Operations/GenerateOtpRequest.cs new file mode 100644 index 000000000..330714845 --- /dev/null +++ b/bank-feeds/Codat/BankFeeds/Models/Operations/GenerateOtpRequest.cs @@ -0,0 +1,28 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Codat.BankFeeds.Models.Operations +{ + using Codat.BankFeeds.Utils; + + public class GenerateOtpRequest + { + /// + /// Unique identifier for a company. + /// + [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=companyId")] + public string CompanyId { get; set; } = default!; + + /// + /// Unique identifier for a connection. + /// + [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=connectionId")] + public string ConnectionId { get; set; } = default!; + } +} \ No newline at end of file diff --git a/bank-feeds/Codat/BankFeeds/Models/Operations/GenerateOtpResponse.cs b/bank-feeds/Codat/BankFeeds/Models/Operations/GenerateOtpResponse.cs new file mode 100644 index 000000000..c80d1a837 --- /dev/null +++ b/bank-feeds/Codat/BankFeeds/Models/Operations/GenerateOtpResponse.cs @@ -0,0 +1,39 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Codat.BankFeeds.Models.Operations +{ + using Codat.BankFeeds.Models.Shared; + using Codat.BankFeeds.Utils; + using System; + using System.Net.Http; + + public class GenerateOtpResponse + { + /// + /// HTTP response content type for this operation. + /// + public string? ContentType { get; set; } = default!; + + /// + /// HTTP response status code for this operation. + /// + public int StatusCode { get; set; } = default!; + + /// + /// Raw HTTP response; suitable for custom response parsing. + /// + public HttpResponseMessage RawResponse { get; set; } = default!; + + /// + /// Success. + /// + public Models.Shared.GenerateOtpResponse? GenerateOtpResponseValue { get; set; } + } +} \ No newline at end of file diff --git a/bank-feeds/Codat/BankFeeds/Models/Shared/GenerateOtpResponse.cs b/bank-feeds/Codat/BankFeeds/Models/Shared/GenerateOtpResponse.cs new file mode 100644 index 000000000..06425f7fe --- /dev/null +++ b/bank-feeds/Codat/BankFeeds/Models/Shared/GenerateOtpResponse.cs @@ -0,0 +1,50 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Codat.BankFeeds.Models.Shared +{ + using Codat.BankFeeds.Utils; + using Newtonsoft.Json; + + /// + /// Response containing a one-time password and its expiry time. + /// + public class GenerateOtpResponse + { + /// + /// The one-time password. + /// + [JsonProperty("otp")] + public string Otp { get; set; } = default!; + + /// + /// 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. + ///
+ [JsonProperty("expiry")] + public string Expiry { get; set; } = default!; + } +} \ No newline at end of file diff --git a/bank-feeds/Codat/BankFeeds/SDKConfig.cs b/bank-feeds/Codat/BankFeeds/SDKConfig.cs index e9a0802b5..dbc1e3aa6 100644 --- a/bank-feeds/Codat/BankFeeds/SDKConfig.cs +++ b/bank-feeds/Codat/BankFeeds/SDKConfig.cs @@ -45,7 +45,7 @@ public SDKConfig(ISpeakeasyHttpClient? client = null) Client = client ?? new SpeakeasyHttpClient(); ServerUrl = ""; ServerIndex = 0; - UserAgent = "speakeasy-sdk/csharp 8.0.0 2.799.0 3.0.0 Codat.BankFeeds"; + UserAgent = "speakeasy-sdk/csharp 8.0.1 2.879.6 3.0.0 Codat.BankFeeds"; SecuritySource = null; Hooks = new SDKHooks(); RetryConfig = null; diff --git a/bank-feeds/Codat/BankFeeds/SourceAccounts.cs b/bank-feeds/Codat/BankFeeds/SourceAccounts.cs index c0ebb87d1..a1a1eded9 100644 --- a/bank-feeds/Codat/BankFeeds/SourceAccounts.cs +++ b/bank-feeds/Codat/BankFeeds/SourceAccounts.cs @@ -187,6 +187,29 @@ public Task DeleteCredentialsAsync( DeleteBankFeedCredentialsRequest request, RetryConfig? retryConfig = null ); + + /// + /// Generate one-time password. + /// + /// + /// The *Generate OTP* endpoint generates a one-time password (OTP) for a bank feed connection. The OTP is returned along with an expiry time, after which it will no longer be valid.
+ ///
+ /// > **For Sage only**
+ /// >
+ /// > Only call this endpoint for connections to Sage. Calling it for other integrations will return an error. + ///
+ /// A parameter. + /// The retry configuration to use for this operation. + /// An awaitable task that returns a response envelope when completed. + /// The required parameter is null. + /// The HTTP request failed due to network issues. + /// The response body could not be deserialized. + /// The request made is not valid. Thrown when the API returns a 400, 401, 402, 403, 404, 429, 500 or 503 response. + /// Default API Exception. Thrown when the API returns a 4XX or 5XX response. + public Task GenerateOtpAsync( + GenerateOtpRequest request, + RetryConfig? retryConfig = null + ); } /// @@ -235,6 +258,11 @@ public async Task CreateBatchAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + var serializedBody = RequestBodySerializer.Serialize(request, "RequestBody", "json", false, true); if (serializedBody != null) { @@ -300,9 +328,9 @@ public async Task CreateBatchAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -454,6 +482,11 @@ public async Task CreateAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + var serializedBody = RequestBodySerializer.Serialize(request, "RequestBody", "json", false, true); if (serializedBody != null) { @@ -519,9 +552,9 @@ public async Task CreateAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -648,6 +681,11 @@ public async Task ListAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -707,9 +745,9 @@ public async Task ListAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -838,6 +876,11 @@ public async Task UpdateAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Patch, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + var serializedBody = RequestBodySerializer.Serialize(request, "SourceAccount", "json", false, true); if (serializedBody != null) { @@ -903,9 +946,9 @@ public async Task UpdateAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -1029,6 +1072,11 @@ public async Task DeleteAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -1088,9 +1136,9 @@ public async Task DeleteAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -1200,6 +1248,11 @@ public async Task GenerateCredentialsAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + var serializedBody = RequestBodySerializer.Serialize(request, "RequestBody", "json", false, false); if (serializedBody != null) { @@ -1265,9 +1318,9 @@ public async Task GenerateCredentialsAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -1391,6 +1444,11 @@ public async Task DeleteCredentialsAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -1450,9 +1508,9 @@ public async Task DeleteCredentialsAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -1528,5 +1586,197 @@ public async Task DeleteCredentialsAsync( throw new Models.Errors.SDKException("Unknown status code received", httpResponse, await httpResponse.Content.ReadAsStringAsync()); } + + /// + /// Generate one-time password. + /// + /// + /// The *Generate OTP* endpoint generates a one-time password (OTP) for a bank feed connection. The OTP is returned along with an expiry time, after which it will no longer be valid.
+ ///
+ /// > **For Sage only**
+ /// >
+ /// > Only call this endpoint for connections to Sage. Calling it for other integrations will return an error. + ///
+ /// A parameter. + /// The retry configuration to use for this operation. + /// An awaitable task that returns a response envelope when completed. + /// The required parameter is null. + /// The HTTP request failed due to network issues. + /// The response body could not be deserialized. + /// The request made is not valid. Thrown when the API returns a 400, 401, 402, 403, 404, 429, 500 or 503 response. + /// Default API Exception. Thrown when the API returns a 4XX or 5XX response. + public async Task GenerateOtpAsync( + GenerateOtpRequest request, + RetryConfig? retryConfig = null + ) + { + if (request == null) throw new ArgumentNullException(nameof(request)); + + string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl(); + var urlString = URLBuilder.Build(baseUrl, "/companies/{companyId}/connections/{connectionId}/bankFeeds/otp", request, null); + + var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString); + httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + + if (SDKConfiguration.SecuritySource != null) + { + httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); + } + + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "generate-otp", null, SDKConfiguration.SecuritySource); + + httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); + if (retryConfig == null) + { + if (this.SDKConfiguration.RetryConfig != null) + { + retryConfig = this.SDKConfiguration.RetryConfig; + } + else + { + var backoff = new BackoffStrategy( + initialIntervalMs: 500L, + maxIntervalMs: 60000L, + maxElapsedTimeMs: 3600000L, + exponent: 1.5 + ); + retryConfig = new RetryConfig( + strategy: RetryConfig.RetryStrategy.BACKOFF, + backoff: backoff, + retryConnectionErrors: true + ); + } + } + + List statusCodes = new List + { + "408", + "429", + "5XX", + }; + + Func> retrySend = async () => + { + var _httpRequest = await SDKConfiguration.Client.CloneAsync(httpRequest); + return await SDKConfiguration.Client.SendAsync(_httpRequest); + }; + var retries = new Codat.BankFeeds.Utils.Retries.Retries(retrySend, retryConfig, statusCodes); + + HttpResponseMessage httpResponse; + try + { + httpResponse = await retries.Run(); + int _statusCode = (int)httpResponse.StatusCode; + + if (_statusCode >= 400 && _statusCode < 500 || _statusCode >= 500 && _statusCode < 600) + { + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null); + if (_httpResponse != null) + { + httpResponse = _httpResponse; + } + } + } + catch (Exception _hookError) + { + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); + if (_httpResponse != null) + { + httpResponse = _httpResponse; + } + else + { + throw; + } + } + + httpResponse = await this.SDKConfiguration.Hooks.AfterSuccessAsync(new AfterSuccessContext(hookCtx), httpResponse); + + var contentType = httpResponse.Content.Headers.ContentType?.MediaType; + int responseStatusCode = (int)httpResponse.StatusCode; + if(responseStatusCode == 200) + { + if(Utilities.IsContentTypeMatch("application/json", contentType)) + { + var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); + Models.Shared.GenerateOtpResponse obj; + try + { + obj = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); + } + catch (Exception ex) + { + throw new ResponseValidationException("Failed to deserialize response body into Models.Shared.GenerateOtpResponse.", httpResponse, httpResponseBody, ex); + } + + var response = new Models.Operations.GenerateOtpResponse() + { + StatusCode = responseStatusCode, + ContentType = contentType, + RawResponse = httpResponse + }; + response.GenerateOtpResponseValue = obj; + return response; + } + + throw new Models.Errors.SDKException("Unknown content type received", httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(new List{400, 401, 402, 403, 404, 429}.Contains(responseStatusCode)) + { + if(Utilities.IsContentTypeMatch("application/json", contentType)) + { + var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); + ErrorMessagePayload payload; + try + { + payload = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); + } + catch (Exception ex) + { + throw new ResponseValidationException("Failed to deserialize response body into ErrorMessagePayload.", httpResponse, httpResponseBody, ex); + } + + throw new ErrorMessage(payload, httpResponse, httpResponseBody); + } + + throw new Models.Errors.SDKException("Unknown content type received", httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(new List{500, 503}.Contains(responseStatusCode)) + { + if(Utilities.IsContentTypeMatch("application/json", contentType)) + { + var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); + ErrorMessagePayload payload; + try + { + payload = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); + } + catch (Exception ex) + { + throw new ResponseValidationException("Failed to deserialize response body into ErrorMessagePayload.", httpResponse, httpResponseBody, ex); + } + + throw new ErrorMessage(payload, httpResponse, httpResponseBody); + } + + throw new Models.Errors.SDKException("Unknown content type received", httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(responseStatusCode >= 400 && responseStatusCode < 500) + { + throw new Models.Errors.SDKException("API error occurred", httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(responseStatusCode >= 500 && responseStatusCode < 600) + { + throw new Models.Errors.SDKException("API error occurred", httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + + throw new Models.Errors.SDKException("Unknown status code received", httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + } } \ No newline at end of file diff --git a/bank-feeds/Codat/BankFeeds/Transactions.cs b/bank-feeds/Codat/BankFeeds/Transactions.cs index c82b03617..e8fbb26a2 100644 --- a/bank-feeds/Codat/BankFeeds/Transactions.cs +++ b/bank-feeds/Codat/BankFeeds/Transactions.cs @@ -175,6 +175,11 @@ public Transactions(SDKConfig config) var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + var serializedBody = RequestBodySerializer.Serialize(request, "CreateBankTransactions", "json", false, true); if (serializedBody != null) { @@ -240,9 +245,9 @@ public Transactions(SDKConfig config) } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -370,6 +375,11 @@ public async Task GetCreateModelAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -429,9 +439,9 @@ public async Task GetCreateModelAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -557,6 +567,11 @@ public async Task GetCreateOperationAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -616,9 +631,9 @@ public async Task GetCreateOperationAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; @@ -744,6 +759,11 @@ public async Task ListCreateOperationsAsync( var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + if (!httpRequest.Headers.Contains("Accept")) + { + httpRequest.Headers.Add("Accept", "application/json"); + } + if (SDKConfiguration.SecuritySource != null) { httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); @@ -803,9 +823,9 @@ public async Task ListCreateOperationsAsync( } } } - catch (Exception error) + catch (Exception _hookError) { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, _hookError); if (_httpResponse != null) { httpResponse = _httpResponse; diff --git a/bank-feeds/Codat/BankFeeds/Utils/Constants.cs b/bank-feeds/Codat/BankFeeds/Utils/Constants.cs index 9c86ef8d4..b11cd84ef 100644 --- a/bank-feeds/Codat/BankFeeds/Utils/Constants.cs +++ b/bank-feeds/Codat/BankFeeds/Utils/Constants.cs @@ -22,12 +22,12 @@ public static class Constants /// /// The version of the SDK. /// - public const string SdkVersion = "8.0.0"; + public const string SdkVersion = "8.0.1"; /// /// The version of the SDK generator used to create this SDK. /// - public const string SdkGenVersion = "2.799.0"; + public const string SdkGenVersion = "2.879.6"; /// /// The version of the OpenAPI document used to generate this SDK. diff --git a/bank-feeds/Codat/BankFeeds/Utils/RequestBodySerializer.cs b/bank-feeds/Codat/BankFeeds/Utils/RequestBodySerializer.cs index 8cad303c0..fbbbd6462 100644 --- a/bank-feeds/Codat/BankFeeds/Utils/RequestBodySerializer.cs +++ b/bank-feeds/Codat/BankFeeds/Utils/RequestBodySerializer.cs @@ -282,7 +282,7 @@ private static HttpContent SerializeMultipart(object request, string mediaType) string fieldName = (metadata.Name ?? prop.Name) + "[]"; var fileContent = new ByteArrayContent(content); - fileContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream"); + fileContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(GetMimeType(fileName)); formData.Add(fileContent, fieldName, fileName); } } @@ -294,7 +294,7 @@ private static HttpContent SerializeMultipart(object request, string mediaType) string fieldName = metadata.Name; var fileContent = new ByteArrayContent(content); - fileContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream"); + fileContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(GetMimeType(fileName)); formData.Add(fileContent, fieldName, fileName); } else @@ -552,6 +552,27 @@ private static (string fileName, byte[] content) ExtractFileProperties(PropertyI return (fileName, content); } + private static string GetMimeType(string fileName) + { + var ext = System.IO.Path.GetExtension(fileName)?.ToLowerInvariant(); + return ext switch + { + ".json" => "application/json", + ".xml" => "application/xml", + ".txt" => "text/plain", + ".csv" => "text/csv", + ".html" or ".htm" => "text/html", + ".pdf" => "application/pdf", + ".zip" => "application/zip", + ".png" => "image/png", + ".jpg" or ".jpeg" => "image/jpeg", + ".gif" => "image/gif", + ".svg" => "image/svg+xml", + ".webp" => "image/webp", + _ => "application/octet-stream", + }; + } + private static PropertyInfo? GetPropertyInfo(object value, string propertyName) { try diff --git a/bank-feeds/Codat/BankFeeds/Utils/Retries/Retries.cs b/bank-feeds/Codat/BankFeeds/Utils/Retries/Retries.cs index 33797487f..2d67c4eff 100644 --- a/bank-feeds/Codat/BankFeeds/Utils/Retries/Retries.cs +++ b/bank-feeds/Codat/BankFeeds/Utils/Retries/Retries.cs @@ -127,6 +127,27 @@ private async Task GetResponseAsync(bool retryConnectionErr } } + private static long RetryAfterMs(HttpResponseMessage response) + { + if (response.Headers.TryGetValues("Retry-After", out var values)) + { + var retryAfter = System.Linq.Enumerable.FirstOrDefault(values); + if (!string.IsNullOrEmpty(retryAfter)) + { + if (long.TryParse(retryAfter, out var seconds) && seconds >= 0) + { + return seconds * 1000; + } + if (DateTimeOffset.TryParse(retryAfter, out var retryDate)) + { + var deltaMs = (long)(retryDate - DateTimeOffset.UtcNow).TotalMilliseconds; + return deltaMs > 0 ? deltaMs : 0; + } + } + } + return 0; + } + private async Task retryWithBackoff(bool retryConnectionErrors) { var backoff = retryConfig.Backoff; @@ -159,10 +180,16 @@ private async Task retryWithBackoff(bool retryConnectionErr throw; } - var intervalMs = backoff.InitialIntervalMs * Math.Pow(backoff.BaseFactor, numAttempts); - var jitterMs = backoff.JitterFactor * intervalMs; - intervalMs = intervalMs - jitterMs + new Random().NextDouble() * (2 * jitterMs + 1); - intervalMs = Math.Min(intervalMs, backoff.MaxIntervalMs); + long intervalMs = ex.Response != null ? RetryAfterMs(ex.Response) : 0; + + if (intervalMs <= 0) + { + var computed = backoff.InitialIntervalMs * Math.Pow(backoff.BaseFactor, numAttempts); + var jitterMs = backoff.JitterFactor * computed; + computed = computed - jitterMs + new Random().NextDouble() * (2 * jitterMs + 1); + computed = Math.Min(computed, backoff.MaxIntervalMs); + intervalMs = (long)computed; + } await Task.Delay((int)intervalMs); numAttempts += 1; diff --git a/bank-feeds/Codat/BankFeeds/Utils/SecurityMetadata.cs b/bank-feeds/Codat/BankFeeds/Utils/SecurityMetadata.cs index b4c71dc87..42cd40b55 100644 --- a/bank-feeds/Codat/BankFeeds/Utils/SecurityMetadata.cs +++ b/bank-feeds/Codat/BankFeeds/Utils/SecurityMetadata.cs @@ -11,6 +11,7 @@ namespace Codat.BankFeeds.Utils { using System; using System.Collections.Generic; + using System.Linq; using System.Net.Http; using System.Reflection; using System.Text; @@ -22,9 +23,9 @@ internal class SecurityMetadata private Dictionary headerParams { get; } = new Dictionary(); private Dictionary queryParams { get; } = new Dictionary(); - public SecurityMetadata(Func securitySource) + public SecurityMetadata(Func securitySource, string[]? allowedFields = null) { - ParseSecuritySource(securitySource); + ParseSecuritySource(securitySource, allowedFields); } public HttpRequestMessage Apply(HttpRequestMessage request) @@ -49,7 +50,7 @@ public HttpRequestMessage Apply(HttpRequestMessage request) return request; } - private void ParseSecuritySource(Func securitySource) + private void ParseSecuritySource(Func securitySource, string[]? allowedFields) { if (securitySource == null) { @@ -62,7 +63,16 @@ private void ParseSecuritySource(Func securitySource) return; } - foreach (var prop in security.GetType().GetProperties()) + var allProps = security.GetType().GetProperties(); + PropertyInfo[] props = allowedFields != null + ? allowedFields + .Select(name => allProps.FirstOrDefault(p => p.Name == name)) + .Where(p => p != null) + .Cast() + .ToArray() + : allProps; + + foreach (var prop in props) { var value = prop.GetValue(security, null); if (value == null) @@ -79,6 +89,7 @@ private void ParseSecuritySource(Func securitySource) if (secMetadata.Option) { ParseOption(value); + return; } else if (secMetadata.Scheme) { @@ -91,6 +102,11 @@ private void ParseSecuritySource(Func securitySource) { ParseScheme(secMetadata, value); } + + if (!secMetadata.Composite) + { + return; + } } } @@ -99,6 +115,10 @@ private void ParseSecuritySource(Func securitySource) private void ParseOption(object option) { + // Check if the option itself IS a basic auth scheme (e.g. UserPassAuth where + // fields directly contain username/password with full basic auth metadata). + // This is distinct from an option that CONTAINS a basic auth scheme as a + // nested class (e.g. SchemeBasicAuth) - that case is handled by ParseScheme. foreach (var prop in option.GetType().GetProperties()) { var value = prop.GetValue(option, null); @@ -113,6 +133,12 @@ private void ParseOption(object option) continue; } + if (secMetadata.Type == "http" && secMetadata.SubType == "basic" && !Utilities.IsClass(value)) + { + ParseBasicAuthScheme(option); + return; + } + ParseScheme(secMetadata, value); } } diff --git a/bank-feeds/Codat/BankFeeds/Utils/SpeakeasyMetadata.cs b/bank-feeds/Codat/BankFeeds/Utils/SpeakeasyMetadata.cs index 512af1f66..c1ca60340 100644 --- a/bank-feeds/Codat/BankFeeds/Utils/SpeakeasyMetadata.cs +++ b/bank-feeds/Codat/BankFeeds/Utils/SpeakeasyMetadata.cs @@ -65,6 +65,7 @@ internal class SecurityMetadata public string? SubType { get; set; } = null; public bool Option { get; set; } = false; public bool Scheme { get; set; } = false; + public bool Composite { get; set; } = false; public string Name { get; set; } = ""; } diff --git a/bank-feeds/Codat/BankFeeds/Utils/Utilities.cs b/bank-feeds/Codat/BankFeeds/Utils/Utilities.cs index 8223f2beb..af40f1f7e 100644 --- a/bank-feeds/Codat/BankFeeds/Utils/Utilities.cs +++ b/bank-feeds/Codat/BankFeeds/Utils/Utilities.cs @@ -130,11 +130,26 @@ public static bool IsList(object? o) && o.GetType().GetGenericTypeDefinition().IsAssignableFrom(typeof(List<>)); } + public static bool IsModelNamespace(string ns) + { + var modelNamespaces = new[] + { + "Codat.BankFeeds.Models.Operations", + "Codat.BankFeeds.Models.Shared", + "Codat.BankFeeds.Models.Errors", + "Codat.BankFeeds.Models.Webhooks", + }; + + return modelNamespaces.Contains(ns); + } + public static bool IsClass(object? o) { if (o == null) return false; - return o.GetType().IsClass && (o.GetType().FullName ?? "").StartsWith("Codat.BankFeeds.Models"); + if (!o.GetType().IsClass) + return false; + return IsModelNamespace(o.GetType().Namespace ?? ""); } // TODO: code review polyfilled for IsAssignableTo @@ -303,6 +318,7 @@ public static string PrefixBearer(string authHeaderValue) return $"Bearer {authHeaderValue}"; } + public static string RemoveSuffix(string inputString, string suffix) { if (!String.IsNullOrEmpty(suffix) && inputString.EndsWith(suffix)) @@ -311,6 +327,7 @@ public static string RemoveSuffix(string inputString, string suffix) } return inputString; } + public static string TemplateUrl(string template, Dictionary paramDict) { foreach(KeyValuePair entry in paramDict) @@ -319,5 +336,19 @@ public static string TemplateUrl(string template, Dictionary par } return template; } + + public static Dictionary> CollectHeaders(HttpHeaders headers) + { + var dict = new Dictionary>(StringComparer.OrdinalIgnoreCase); + foreach (var header in headers) + { + if (!dict.ContainsKey(header.Key)) + { + dict[header.Key] = new List(); + } + dict[header.Key].AddRange(header.Value); + } + return dict; + } } } diff --git a/bank-feeds/README.md b/bank-feeds/README.md index 55452c61f..43fbdfeae 100644 --- a/bank-feeds/README.md +++ b/bank-feeds/README.md @@ -141,6 +141,7 @@ var res = await sdk.Companies.CreateAsync(req); * [Delete](docs/sdks/sourceaccounts/README.md#delete) - Delete source account * [GenerateCredentials](docs/sdks/sourceaccounts/README.md#generatecredentials) - Generate source account credentials * [DeleteCredentials](docs/sdks/sourceaccounts/README.md#deletecredentials) - Delete all source account credentials +* [GenerateOtp](docs/sdks/sourceaccounts/README.md#generateotp) - Generate one-time password ### [Transactions](docs/sdks/transactions/README.md) diff --git a/bank-feeds/RELEASES.md b/bank-feeds/RELEASES.md index 9bc796117..c9fb60c82 100644 --- a/bank-feeds/RELEASES.md +++ b/bank-feeds/RELEASES.md @@ -248,4 +248,14 @@ Based on: ### Generated - [csharp v8.0.0] bank-feeds ### Releases -- [NuGet v8.0.0] https://www.nuget.org/packages/Codat.BankFeeds/8.0.0 - bank-feeds \ No newline at end of file +- [NuGet v8.0.0] https://www.nuget.org/packages/Codat.BankFeeds/8.0.0 - bank-feeds + +## 2026-04-08 10:23:39 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.761.1 (2.879.6) https://github.com/speakeasy-api/speakeasy +### Generated +- [csharp v8.0.1] bank-feeds +### Releases +- [NuGet v8.0.1] https://www.nuget.org/packages/Codat.BankFeeds/8.0.1 - bank-feeds \ No newline at end of file diff --git a/bank-feeds/docs/Models/Operations/CreateBankTransactionsRequest.md b/bank-feeds/docs/Models/Operations/CreateBankTransactionsRequest.md index 7c11c637b..3da27e4f6 100644 --- a/bank-feeds/docs/Models/Operations/CreateBankTransactionsRequest.md +++ b/bank-feeds/docs/Models/Operations/CreateBankTransactionsRequest.md @@ -3,11 +3,11 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | -| `CompanyId` | *string* | :heavy_check_mark: | Unique identifier for a company. | 8a210b68-6988-11ed-a1eb-0242ac120002 | -| `ConnectionId` | *string* | :heavy_check_mark: | Unique identifier for a connection. | 2e9d2c44-f675-40ba-8049-353bfcb5e171 | -| `AccountId` | *string* | :heavy_check_mark: | Unique identifier for an account. | 13d946f0-c5d5-42bc-b092-97ece17923ab | -| `TimeoutInMinutes` | *int* | :heavy_minus_sign: | Time limit for the push operation to complete before it is timed out. | | -| `AllowSyncOnPushComplete` | *bool* | :heavy_minus_sign: | Allow a sync upon push completion. | | -| `CreateBankTransactions` | [CreateBankTransactions](../../Models/Shared/CreateBankTransactions.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `CompanyId` | *string* | :heavy_check_mark: | Unique identifier for a company. | 8a210b68-6988-11ed-a1eb-0242ac120002 | +| `ConnectionId` | *string* | :heavy_check_mark: | Unique identifier for a connection. | 2e9d2c44-f675-40ba-8049-353bfcb5e171 | +| `AccountId` | *string* | :heavy_check_mark: | Unique identifier for an account. | **Example 1:** 13d946f0-c5d5-42bc-b092-97ece17923ab
**Example 2:** 9wg4lep4ush5cxs79pl8sozmsndbaukll3ind4g7buqbm1h2
**Example 3:** 7110701885
**Example 4:** EILBDVJVNUAGVKRQ | +| `TimeoutInMinutes` | *int* | :heavy_minus_sign: | Time limit for the push operation to complete before it is timed out. | | +| `AllowSyncOnPushComplete` | *bool* | :heavy_minus_sign: | Allow a sync upon push completion. | | +| `CreateBankTransactions` | [CreateBankTransactions](../../Models/Shared/CreateBankTransactions.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Operations/DeleteSourceAccountRequest.md b/bank-feeds/docs/Models/Operations/DeleteSourceAccountRequest.md index ad916dc01..617f2cda6 100644 --- a/bank-feeds/docs/Models/Operations/DeleteSourceAccountRequest.md +++ b/bank-feeds/docs/Models/Operations/DeleteSourceAccountRequest.md @@ -3,8 +3,8 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | -| `CompanyId` | *string* | :heavy_check_mark: | Unique identifier for a company. | 8a210b68-6988-11ed-a1eb-0242ac120002 | -| `ConnectionId` | *string* | :heavy_check_mark: | Unique identifier for a connection. | 2e9d2c44-f675-40ba-8049-353bfcb5e171 | -| `AccountId` | *string* | :heavy_check_mark: | Unique identifier for an account. | 13d946f0-c5d5-42bc-b092-97ece17923ab | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `CompanyId` | *string* | :heavy_check_mark: | Unique identifier for a company. | 8a210b68-6988-11ed-a1eb-0242ac120002 | +| `ConnectionId` | *string* | :heavy_check_mark: | Unique identifier for a connection. | 2e9d2c44-f675-40ba-8049-353bfcb5e171 | +| `AccountId` | *string* | :heavy_check_mark: | Unique identifier for an account. | **Example 1:** 13d946f0-c5d5-42bc-b092-97ece17923ab
**Example 2:** 9wg4lep4ush5cxs79pl8sozmsndbaukll3ind4g7buqbm1h2
**Example 3:** 7110701885
**Example 4:** EILBDVJVNUAGVKRQ | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Operations/GenerateOtpRequest.md b/bank-feeds/docs/Models/Operations/GenerateOtpRequest.md new file mode 100644 index 000000000..fdea8e0d3 --- /dev/null +++ b/bank-feeds/docs/Models/Operations/GenerateOtpRequest.md @@ -0,0 +1,9 @@ +# GenerateOtpRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | +| `CompanyId` | *string* | :heavy_check_mark: | Unique identifier for a company. | 8a210b68-6988-11ed-a1eb-0242ac120002 | +| `ConnectionId` | *string* | :heavy_check_mark: | Unique identifier for a connection. | 2e9d2c44-f675-40ba-8049-353bfcb5e171 | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Operations/GenerateOtpResponse.md b/bank-feeds/docs/Models/Operations/GenerateOtpResponse.md new file mode 100644 index 000000000..aac317498 --- /dev/null +++ b/bank-feeds/docs/Models/Operations/GenerateOtpResponse.md @@ -0,0 +1,11 @@ +# GenerateOtpResponse + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | | +| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | | +| `RawResponse` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | | +| `GenerateOtpResponseValue` | [Models.Shared.GenerateOtpResponse](../../Models/Shared/GenerateOtpResponse.md) | :heavy_minus_sign: | Success | {
"otp": "GT40U4",
"expiry": "2026-04-08T10:30:00Z"
} | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Operations/GetCreateBankTransactionsModelRequest.md b/bank-feeds/docs/Models/Operations/GetCreateBankTransactionsModelRequest.md index 8fda6965b..c4b972fd7 100644 --- a/bank-feeds/docs/Models/Operations/GetCreateBankTransactionsModelRequest.md +++ b/bank-feeds/docs/Models/Operations/GetCreateBankTransactionsModelRequest.md @@ -3,8 +3,8 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | -| `CompanyId` | *string* | :heavy_check_mark: | Unique identifier for a company. | 8a210b68-6988-11ed-a1eb-0242ac120002 | -| `ConnectionId` | *string* | :heavy_check_mark: | Unique identifier for a connection. | 2e9d2c44-f675-40ba-8049-353bfcb5e171 | -| `AccountId` | *string* | :heavy_check_mark: | Unique identifier for an account. | 13d946f0-c5d5-42bc-b092-97ece17923ab | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `CompanyId` | *string* | :heavy_check_mark: | Unique identifier for a company. | 8a210b68-6988-11ed-a1eb-0242ac120002 | +| `ConnectionId` | *string* | :heavy_check_mark: | Unique identifier for a connection. | 2e9d2c44-f675-40ba-8049-353bfcb5e171 | +| `AccountId` | *string* | :heavy_check_mark: | Unique identifier for an account. | **Example 1:** 13d946f0-c5d5-42bc-b092-97ece17923ab
**Example 2:** 9wg4lep4ush5cxs79pl8sozmsndbaukll3ind4g7buqbm1h2
**Example 3:** 7110701885
**Example 4:** EILBDVJVNUAGVKRQ | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Operations/UpdateSourceAccountRequest.md b/bank-feeds/docs/Models/Operations/UpdateSourceAccountRequest.md index c5c7450f7..23cb357a0 100644 --- a/bank-feeds/docs/Models/Operations/UpdateSourceAccountRequest.md +++ b/bank-feeds/docs/Models/Operations/UpdateSourceAccountRequest.md @@ -3,9 +3,9 @@ ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `CompanyId` | *string* | :heavy_check_mark: | Unique identifier for a company. | 8a210b68-6988-11ed-a1eb-0242ac120002 | -| `ConnectionId` | *string* | :heavy_check_mark: | Unique identifier for a connection. | 2e9d2c44-f675-40ba-8049-353bfcb5e171 | -| `AccountId` | *string* | :heavy_check_mark: | Unique identifier for an account. | 13d946f0-c5d5-42bc-b092-97ece17923ab | -| `SourceAccount` | [SourceAccount](../../Models/Shared/SourceAccount.md) | :heavy_minus_sign: | N/A | {
"id": "acc-002",
"accountName": "account-081",
"sortCode": "123456",
"accountType": "Credit",
"accountNumber": "12345670",
"currency": "GBP",
"balance": 99.99,
"modifiedDate": "2023-01-09T14:14:14.1057478Z",
"status": "pending"
} | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `CompanyId` | *string* | :heavy_check_mark: | Unique identifier for a company. | 8a210b68-6988-11ed-a1eb-0242ac120002 | +| `ConnectionId` | *string* | :heavy_check_mark: | Unique identifier for a connection. | 2e9d2c44-f675-40ba-8049-353bfcb5e171 | +| `AccountId` | *string* | :heavy_check_mark: | Unique identifier for an account. | **Example 1:** 13d946f0-c5d5-42bc-b092-97ece17923ab
**Example 2:** 9wg4lep4ush5cxs79pl8sozmsndbaukll3ind4g7buqbm1h2
**Example 3:** 7110701885
**Example 4:** EILBDVJVNUAGVKRQ | +| `SourceAccount` | [SourceAccount](../../Models/Shared/SourceAccount.md) | :heavy_minus_sign: | N/A | **Example 1:** {
"id": "acc-002",
"accountName": "account-081",
"sortCode": "123456",
"accountType": "Credit",
"accountNumber": "12345670",
"currency": "GBP",
"balance": 99.99,
"modifiedDate": "2023-01-09T14:14:14.1057478Z",
"status": "pending"
}
**Example 2:** {
"id": "acc-003",
"accountName": "account-095",
"sortCode": "123456",
"accountType": "Credit",
"accountNumber": "12345671",
"currency": "USD",
"balance": 0,
"modifiedDate": "2023-01-09T14:14:14.1057478Z",
"status": "pending"
} | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Operations/UpdateSourceAccountResponse.md b/bank-feeds/docs/Models/Operations/UpdateSourceAccountResponse.md index bc5e745fb..c64990f93 100644 --- a/bank-feeds/docs/Models/Operations/UpdateSourceAccountResponse.md +++ b/bank-feeds/docs/Models/Operations/UpdateSourceAccountResponse.md @@ -3,9 +3,9 @@ ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | | -| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | | -| `RawResponse` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | | -| `SourceAccount` | [SourceAccount](../../Models/Shared/SourceAccount.md) | :heavy_minus_sign: | Success | {
"id": "acc-002",
"accountName": "account-081",
"sortCode": "123456",
"accountType": "Credit",
"accountNumber": "12345670",
"currency": "GBP",
"balance": 99.99,
"modifiedDate": "2023-01-09T14:14:14.1057478Z",
"status": "pending"
} | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | | +| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | | +| `RawResponse` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | | +| `SourceAccount` | [SourceAccount](../../Models/Shared/SourceAccount.md) | :heavy_minus_sign: | Success | **Example 1:** {
"id": "acc-002",
"accountName": "account-081",
"sortCode": "123456",
"accountType": "Credit",
"accountNumber": "12345670",
"currency": "GBP",
"balance": 99.99,
"modifiedDate": "2023-01-09T14:14:14.1057478Z",
"status": "pending"
}
**Example 2:** {
"id": "acc-003",
"accountName": "account-095",
"sortCode": "123456",
"accountType": "Credit",
"accountNumber": "12345671",
"currency": "USD",
"balance": 0,
"modifiedDate": "2023-01-09T14:14:14.1057478Z",
"status": "pending"
} | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Shared/AccountType.md b/bank-feeds/docs/Models/Shared/AccountType.md index ba17e5a98..61acb828e 100644 --- a/bank-feeds/docs/Models/Shared/AccountType.md +++ b/bank-feeds/docs/Models/Shared/AccountType.md @@ -2,6 +2,14 @@ The type of bank account e.g. checking, savings, loan, creditCard, prepaidCard. +## Example Usage + +```csharp +using Codat.BankFeeds.Models.Shared; + +var value = AccountType.Checking; +``` + ## Values diff --git a/bank-feeds/docs/Models/Shared/AccountingBankAccount.md b/bank-feeds/docs/Models/Shared/AccountingBankAccount.md index d4905fb69..ace03a037 100644 --- a/bank-feeds/docs/Models/Shared/AccountingBankAccount.md +++ b/bank-feeds/docs/Models/Shared/AccountingBankAccount.md @@ -20,8 +20,8 @@ Bank accounts data includes: | Field | Type | Required | Description | Example | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `ModifiedDate` | *string* | :heavy_minus_sign: | N/A | 2022-10-23T00:00:00Z | -| `SourceModifiedDate` | *string* | :heavy_minus_sign: | N/A | 2022-10-23T00:00:00Z | +| `ModifiedDate` | *string* | :heavy_minus_sign: | N/A | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | +| `SourceModifiedDate` | *string* | :heavy_minus_sign: | N/A | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | | `Id` | *string* | :heavy_minus_sign: | Identifier for the account, unique for the company in the accounting software. | | | `AccountName` | *string* | :heavy_minus_sign: | Name of the bank account in the accounting software. | | | `AccountType` | [BankAccountsBankAccountType](../../Models/Shared/BankAccountsBankAccountType.md) | :heavy_minus_sign: | The type of transactions and balances on the account.
For Credit accounts, positive balances are liabilities, and positive transactions **reduce** liabilities.
For Debit accounts, positive balances are assets, and positive transactions **increase** assets. | | @@ -29,7 +29,7 @@ Bank accounts data includes: | `SortCode` | *string* | :heavy_minus_sign: | Sort code for the bank account.

Xero integrations
The sort code is only displayed when the currency = GBP and the sort code and account number sum to 14 digits. For non-GBP accounts, this field is not populated. | | | `AccountNumber` | *string* | :heavy_minus_sign: | Account number for the bank account.

Xero integrations
Only a UK account number shows for bank accounts with GBP currency and a combined total of sort code and account number that equals 14 digits, For non-GBP accounts, the full bank account number is populated.

FreeAgent integrations
For Credit accounts, only the last four digits are required. For other types, the field is optional. | | | `IBan` | *string* | :heavy_minus_sign: | International bank account number of the account. Often used when making or receiving international payments. | | -| `Currency` | *string* | :heavy_minus_sign: | 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. | GBP | +| `Currency` | *string* | :heavy_minus_sign: | 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. | **Example 1:** GBP
**Example 2:** USD
**Example 3:** EUR | | `Balance` | *decimal* | :heavy_minus_sign: | Balance of the bank account. | | | `Institution` | *string* | :heavy_minus_sign: | The institution of the bank account. | | | `AvailableBalance` | *decimal* | :heavy_minus_sign: | Total available balance of the bank account as reported by the underlying data source. This may take into account overdrafts or pending transactions for example. | | diff --git a/bank-feeds/docs/Models/Shared/BankAccountCreateResponse.md b/bank-feeds/docs/Models/Shared/BankAccountCreateResponse.md index 6091530dd..1297b1b3d 100644 --- a/bank-feeds/docs/Models/Shared/BankAccountCreateResponse.md +++ b/bank-feeds/docs/Models/Shared/BankAccountCreateResponse.md @@ -11,8 +11,8 @@ | `CompanyId` | *string* | :heavy_check_mark: | Unique identifier for your SMB in Codat. | 8a210b68-6988-11ed-a1eb-0242ac120002 | | `PushOperationKey` | *string* | :heavy_check_mark: | A unique identifier generated by Codat to represent this single push operation. This identifier can be used to track the status of the push, and should be persisted. | | | `DataConnectionKey` | *string* | :heavy_check_mark: | Unique identifier for a company's data connection. | 2e9d2c44-f675-40ba-8049-353bfcb5e171 | -| `RequestedOnUtc` | *string* | :heavy_check_mark: | 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. | 2022-10-23T00:00:00Z | -| `CompletedOnUtc` | *string* | :heavy_minus_sign: | 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. | 2022-10-23T00:00:00Z | +| `RequestedOnUtc` | *string* | :heavy_check_mark: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | +| `CompletedOnUtc` | *string* | :heavy_minus_sign: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | | `TimeoutInMinutes` | *int* | :heavy_minus_sign: | Number of minutes the push operation must complete within before it times out. | | | ~~`TimeoutInSeconds`~~ | *int* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

Number of seconds the push operation must complete within before it times out. | | | `Status` | [PushOperationStatus](../../Models/Shared/PushOperationStatus.md) | :heavy_check_mark: | The current status of the push operation. | | diff --git a/bank-feeds/docs/Models/Shared/BankAccountCreateResponseAccountingBankAccount.md b/bank-feeds/docs/Models/Shared/BankAccountCreateResponseAccountingBankAccount.md index 177566151..82d752678 100644 --- a/bank-feeds/docs/Models/Shared/BankAccountCreateResponseAccountingBankAccount.md +++ b/bank-feeds/docs/Models/Shared/BankAccountCreateResponseAccountingBankAccount.md @@ -22,8 +22,8 @@ Bank accounts data includes: | Field | Type | Required | Description | Example | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `ModifiedDate` | *string* | :heavy_minus_sign: | N/A | 2022-10-23T00:00:00Z | -| `SourceModifiedDate` | *string* | :heavy_minus_sign: | N/A | 2022-10-23T00:00:00Z | +| `ModifiedDate` | *string* | :heavy_minus_sign: | N/A | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | +| `SourceModifiedDate` | *string* | :heavy_minus_sign: | N/A | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | | `Id` | *string* | :heavy_minus_sign: | Identifier for the account, unique for the company in the accounting software. | | | `AccountName` | *string* | :heavy_minus_sign: | Name of the bank account in the accounting software. | | | `AccountType` | [BankAccountCreateResponseBankAccountType](../../Models/Shared/BankAccountCreateResponseBankAccountType.md) | :heavy_minus_sign: | The type of transactions and balances on the account.
For Credit accounts, positive balances are liabilities, and positive transactions **reduce** liabilities.
For Debit accounts, positive balances are assets, and positive transactions **increase** assets. | | @@ -31,7 +31,7 @@ Bank accounts data includes: | `SortCode` | *string* | :heavy_minus_sign: | Sort code for the bank account.

Xero integrations
The sort code is only displayed when the currency = GBP and the sort code and account number sum to 14 digits. For non-GBP accounts, this field is not populated. | | | `AccountNumber` | *string* | :heavy_minus_sign: | Account number for the bank account.

Xero integrations
Only a UK account number shows for bank accounts with GBP currency and a combined total of sort code and account number that equals 14 digits, For non-GBP accounts, the full bank account number is populated.

FreeAgent integrations
For Credit accounts, only the last four digits are required. For other types, the field is optional. | | | `IBan` | *string* | :heavy_minus_sign: | International bank account number of the account. Often used when making or receiving international payments. | | -| `Currency` | *string* | :heavy_minus_sign: | 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. | GBP | +| `Currency` | *string* | :heavy_minus_sign: | 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. | **Example 1:** GBP
**Example 2:** USD
**Example 3:** EUR | | `Balance` | *decimal* | :heavy_minus_sign: | Balance of the bank account. | | | `Institution` | *string* | :heavy_minus_sign: | The institution of the bank account. | | | `AvailableBalance` | *decimal* | :heavy_minus_sign: | Total available balance of the bank account as reported by the underlying data source. This may take into account overdrafts or pending transactions for example. | | diff --git a/bank-feeds/docs/Models/Shared/BankAccountCreateResponseBankAccountType.md b/bank-feeds/docs/Models/Shared/BankAccountCreateResponseBankAccountType.md index 3e01a16d7..0be3bc48a 100644 --- a/bank-feeds/docs/Models/Shared/BankAccountCreateResponseBankAccountType.md +++ b/bank-feeds/docs/Models/Shared/BankAccountCreateResponseBankAccountType.md @@ -4,6 +4,14 @@ The type of transactions and balances on the account. For Credit accounts, positive balances are liabilities, and positive transactions **reduce** liabilities. For Debit accounts, positive balances are assets, and positive transactions **increase** assets. +## Example Usage + +```csharp +using Codat.BankFeeds.Models.Shared; + +var value = BankAccountCreateResponseBankAccountType.Unknown; +``` + ## Values diff --git a/bank-feeds/docs/Models/Shared/BankAccountPrototype.md b/bank-feeds/docs/Models/Shared/BankAccountPrototype.md index d2623a23c..5bda58951 100644 --- a/bank-feeds/docs/Models/Shared/BankAccountPrototype.md +++ b/bank-feeds/docs/Models/Shared/BankAccountPrototype.md @@ -11,7 +11,7 @@ | `SortCode` | *string* | :heavy_minus_sign: | Sort code for the bank account.

Xero integrations
The sort code is only displayed when the currency = GBP and the sort code and account number sum to 14 digits. For non-GBP accounts, this field is not populated. | | | `AccountNumber` | *string* | :heavy_minus_sign: | Account number for the bank account.

Xero integrations
Only a UK account number shows for bank accounts with GBP currency and a combined total of sort code and account number that equals 14 digits, For non-GBP accounts, the full bank account number is populated.

FreeAgent integrations
For Credit accounts, only the last four digits are required. For other types, the field is optional. | | | `IBan` | *string* | :heavy_minus_sign: | International bank account number of the account. Often used when making or receiving international payments. | | -| `Currency` | *string* | :heavy_minus_sign: | 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. | GBP | +| `Currency` | *string* | :heavy_minus_sign: | 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. | **Example 1:** GBP
**Example 2:** USD
**Example 3:** EUR | | `Balance` | *decimal* | :heavy_minus_sign: | Balance of the bank account. | | | `Institution` | *string* | :heavy_minus_sign: | The institution of the bank account. | | | `AvailableBalance` | *decimal* | :heavy_minus_sign: | Total available balance of the bank account as reported by the underlying data source. This may take into account overdrafts or pending transactions for example. | | diff --git a/bank-feeds/docs/Models/Shared/BankAccountStatus.md b/bank-feeds/docs/Models/Shared/BankAccountStatus.md index 4ae20d422..acd2477bc 100644 --- a/bank-feeds/docs/Models/Shared/BankAccountStatus.md +++ b/bank-feeds/docs/Models/Shared/BankAccountStatus.md @@ -2,6 +2,14 @@ Status of the bank account. +## Example Usage + +```csharp +using Codat.BankFeeds.Models.Shared; + +var value = BankAccountStatus.Unknown; +``` + ## Values diff --git a/bank-feeds/docs/Models/Shared/BankAccountType.md b/bank-feeds/docs/Models/Shared/BankAccountType.md index 422338c05..eb443429e 100644 --- a/bank-feeds/docs/Models/Shared/BankAccountType.md +++ b/bank-feeds/docs/Models/Shared/BankAccountType.md @@ -4,6 +4,14 @@ The type of transactions and balances on the account. For Credit accounts, positive balances are liabilities, and positive transactions **reduce** liabilities. For Debit accounts, positive balances are assets, and positive transactions **increase** assets. +## Example Usage + +```csharp +using Codat.BankFeeds.Models.Shared; + +var value = BankAccountType.Unknown; +``` + ## Values diff --git a/bank-feeds/docs/Models/Shared/BankAccountsBankAccountType.md b/bank-feeds/docs/Models/Shared/BankAccountsBankAccountType.md index cfe10f447..1097b88b2 100644 --- a/bank-feeds/docs/Models/Shared/BankAccountsBankAccountType.md +++ b/bank-feeds/docs/Models/Shared/BankAccountsBankAccountType.md @@ -4,6 +4,14 @@ The type of transactions and balances on the account. For Credit accounts, positive balances are liabilities, and positive transactions **reduce** liabilities. For Debit accounts, positive balances are assets, and positive transactions **increase** assets. +## Example Usage + +```csharp +using Codat.BankFeeds.Models.Shared; + +var value = BankAccountsBankAccountType.Unknown; +``` + ## Values diff --git a/bank-feeds/docs/Models/Shared/BankFeedAccountMapping.md b/bank-feeds/docs/Models/Shared/BankFeedAccountMapping.md index 601d3b7c2..a6a6c9ff0 100644 --- a/bank-feeds/docs/Models/Shared/BankFeedAccountMapping.md +++ b/bank-feeds/docs/Models/Shared/BankFeedAccountMapping.md @@ -7,4 +7,4 @@ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `SourceAccountId` | *string* | :heavy_check_mark: | Unique ID for the source account | | | `TargetAccountId` | *string* | :heavy_minus_sign: | Unique ID for the target account | | -| `FeedStartDate` | *string* | :heavy_minus_sign: | 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. | 2022-10-23T00:00:00Z | \ No newline at end of file +| `FeedStartDate` | *string* | :heavy_minus_sign: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Shared/BankFeedMapping.md b/bank-feeds/docs/Models/Shared/BankFeedMapping.md index 55abde013..1e817bd6c 100644 --- a/bank-feeds/docs/Models/Shared/BankFeedMapping.md +++ b/bank-feeds/docs/Models/Shared/BankFeedMapping.md @@ -11,9 +11,9 @@ A bank feed connection between a source account and a target account, including | `SourceAccountName` | *string* | :heavy_minus_sign: | Name for the source account. | | | `SourceAccountNumber` | *string* | :heavy_minus_sign: | Account number for the source account. | | | `SourceBalance` | *decimal* | :heavy_minus_sign: | Balance for the source account. | | -| `SourceCurrency` | *string* | :heavy_minus_sign: | 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. | GBP | +| `SourceCurrency` | *string* | :heavy_minus_sign: | 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. | **Example 1:** GBP
**Example 2:** USD
**Example 3:** EUR | | `TargetAccountId` | *string* | :heavy_minus_sign: | Unique ID for the target account in the accounting software. | | | `TargetAccountName` | *string* | :heavy_minus_sign: | Name for the target account in the accounting software. | | | `Status` | *string* | :heavy_minus_sign: | The status. | | | `TargetAccountOptions` | List<[TargetAccountOption](../../Models/Shared/TargetAccountOption.md)> | :heavy_minus_sign: | An array of potential target accounts. | | -| `FeedStartDate` | *string* | :heavy_minus_sign: | 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. | 2022-10-23T00:00:00Z | \ No newline at end of file +| `FeedStartDate` | *string* | :heavy_minus_sign: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Shared/BankTransactionType.md b/bank-feeds/docs/Models/Shared/BankTransactionType.md index 749fe41b2..d0321466f 100644 --- a/bank-feeds/docs/Models/Shared/BankTransactionType.md +++ b/bank-feeds/docs/Models/Shared/BankTransactionType.md @@ -2,6 +2,14 @@ Type of transaction for the bank statement line. +## Example Usage + +```csharp +using Codat.BankFeeds.Models.Shared; + +var value = BankTransactionType.Unknown; +``` + ## Values diff --git a/bank-feeds/docs/Models/Shared/BankTransactions.md b/bank-feeds/docs/Models/Shared/BankTransactions.md index 3cd3f9644..7cd17ea38 100644 --- a/bank-feeds/docs/Models/Shared/BankTransactions.md +++ b/bank-feeds/docs/Models/Shared/BankTransactions.md @@ -6,7 +6,7 @@ | Field | Type | Required | Description | Example | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Id` | *string* | :heavy_minus_sign: | Identifier for the bank account transaction, unique for the company in the accounting software. | 716422529 | -| `Date` | *string* | :heavy_minus_sign: | 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:

```
2023-08-22T10:21:00
2023-08-22
```

When pushing bank transaction data to Codat, the date is treated as a local date. This means:

- The date/time is used exactly as provided, without any timezone conversion.
- If a timezone offset is included (e.g., `2023-08-22T10:21:00-05:00`), the offset will be ignored and only the local date/time portion will be used.
- We recommend providing dates without a timezone suffix for clarity (e.g., `2023-08-22T10:21:00` rather than `2023-08-22T10:21:00Z`). | 2023-08-22T10:21:00 | +| `Date` | *string* | :heavy_minus_sign: | 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:

```
2023-08-22T10:21:00
2023-08-22
```

When pushing bank transaction data to Codat, the date is treated as a local date. This means:

- The date/time is used exactly as provided, without any timezone conversion.
- If a timezone offset is included (e.g., `2023-08-22T10:21:00-05:00`), the offset will be ignored and only the local date/time portion will be used.
- We recommend providing dates without a timezone suffix for clarity (e.g., `2023-08-22T10:21:00` rather than `2023-08-22T10:21:00Z`). | **Example 1:** 2023-08-22T10:21:00
**Example 2:** 2023-08-22 | | `Description` | *string* | :heavy_minus_sign: | Description of the bank transaction. | Debit for Payment Id sdp-1-57379a43-c4b8-49f5-bd7c-699189ee7a60 | | `Counterparty` | *string* | :heavy_minus_sign: | The giving or receiving party such as a person or organization. | ACME INC | | `Reference` | *string* | :heavy_minus_sign: | An optional reference to the bank transaction. | reference for transaction | diff --git a/bank-feeds/docs/Models/Shared/ClientRateLimitWebhook.md b/bank-feeds/docs/Models/Shared/ClientRateLimitWebhook.md index dc53a8116..f21b550e5 100644 --- a/bank-feeds/docs/Models/Shared/ClientRateLimitWebhook.md +++ b/bank-feeds/docs/Models/Shared/ClientRateLimitWebhook.md @@ -6,6 +6,6 @@ | Field | Type | Required | Description | Example | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Id` | *string* | :heavy_minus_sign: | Unique identifier of the event. | 743ec94a-8aa4-44bb-8bd4-e1855ee0e74b | -| `EventType` | *string* | :heavy_minus_sign: | The type of event. | client.rateLimit.reset | -| `GeneratedDate` | *string* | :heavy_minus_sign: | 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. | 2022-10-23T00:00:00Z | +| `EventType` | *string* | :heavy_minus_sign: | The type of event. | **Example 1:** client.rateLimit.reset
**Example 2:** client.rateLimit.reached | +| `GeneratedDate` | *string* | :heavy_minus_sign: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | | `Payload` | [ClientRateLimitWebhookPayload](../../Models/Shared/ClientRateLimitWebhookPayload.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Shared/ClientRateLimitWebhookPayload.md b/bank-feeds/docs/Models/Shared/ClientRateLimitWebhookPayload.md index 5cd8406a3..ba8538894 100644 --- a/bank-feeds/docs/Models/Shared/ClientRateLimitWebhookPayload.md +++ b/bank-feeds/docs/Models/Shared/ClientRateLimitWebhookPayload.md @@ -7,4 +7,4 @@ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `DailyQuota` | *long* | :heavy_minus_sign: | The number of available requests per day. | | | `QuotaRemaining` | *long* | :heavy_minus_sign: | Total number of requests remaining for your client. | | -| `ExpiryDate` | *string* | :heavy_minus_sign: | 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. | 2022-10-23T00:00:00Z | \ No newline at end of file +| `ExpiryDate` | *string* | :heavy_minus_sign: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Shared/Company.md b/bank-feeds/docs/Models/Shared/Company.md index 8831ab917..742222ad2 100644 --- a/bank-feeds/docs/Models/Shared/Company.md +++ b/bank-feeds/docs/Models/Shared/Company.md @@ -15,8 +15,8 @@ When you create a company, you can specify a `name` and we will automatically ge | `Name` | *string* | :heavy_check_mark: | The name of the company | Codat Ltd. | | `Description` | *string* | :heavy_minus_sign: | Additional information about the company. This can be used to store foreign IDs, references, etc. | Requested early access to the new financing scheme. | | `Redirect` | *string* | :heavy_check_mark: | The `redirect` [Link URL](https://docs.codat.io/auth-flow/authorize-hosted-link) enabling the customer to start their auth flow journey for the company. | https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739 | -| `LastSync` | *string* | :heavy_minus_sign: | 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. | 2022-10-23T00:00:00Z | -| `Created` | *string* | :heavy_minus_sign: | 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. | 2022-10-23T00:00:00Z | +| `LastSync` | *string* | :heavy_minus_sign: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | +| `Created` | *string* | :heavy_minus_sign: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | | `CreatedByUserName` | *string* | :heavy_minus_sign: | Name of user that created the company in Codat. | | | `Products` | List<*string*> | :heavy_minus_sign: | An array of products that are currently enabled for the company. | | | `Tags` | Dictionary | :heavy_minus_sign: | A collection of user-defined key-value pairs that store custom metadata against the company. | | diff --git a/bank-feeds/docs/Models/Shared/Connection.md b/bank-feeds/docs/Models/Shared/Connection.md index f60ec0ad2..0dd5577f1 100644 --- a/bank-feeds/docs/Models/Shared/Connection.md +++ b/bank-feeds/docs/Models/Shared/Connection.md @@ -24,7 +24,7 @@ Before you can use a data connection to pull or push data, the company must gran | `PlatformName` | *string* | :heavy_check_mark: | Name of integration connected to company. | | | `LinkUrl` | *string* | :heavy_check_mark: | The link URL your customers can use to authorize access to their business application. | https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/2e2eb431-c1fa-4dc9-93fa-d29781c12bcd/start | | `Status` | [DataConnectionStatus](../../Models/Shared/DataConnectionStatus.md) | :heavy_check_mark: | The current authorization status of the data connection. | | -| `LastSync` | *string* | :heavy_minus_sign: | 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. | 2022-10-23T00:00:00Z | -| `Created` | *string* | :heavy_check_mark: | 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. | 2022-10-23T00:00:00Z | +| `LastSync` | *string* | :heavy_minus_sign: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | +| `Created` | *string* | :heavy_check_mark: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | | `DataConnectionErrors` | List<[DataConnectionError](../../Models/Shared/DataConnectionError.md)> | :heavy_minus_sign: | N/A | | | `ConnectionInfo` | Dictionary | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Shared/CreateBankTransactions.md b/bank-feeds/docs/Models/Shared/CreateBankTransactions.md index 9f4e5df23..196dde6d9 100644 --- a/bank-feeds/docs/Models/Shared/CreateBankTransactions.md +++ b/bank-feeds/docs/Models/Shared/CreateBankTransactions.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | -| `AccountId` | *string* | :heavy_check_mark: | Unique identifier for a bank account. | 13d946f0-c5d5-42bc-b092-97ece17923ab | -| `Transactions` | List<[BankTransactions](../../Models/Shared/BankTransactions.md)> | :heavy_check_mark: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `AccountId` | *string* | :heavy_check_mark: | Unique identifier for a bank account. | **Example 1:** 13d946f0-c5d5-42bc-b092-97ece17923ab
**Example 2:** 9wg4lep4ush5cxs79pl8sozmsndbaukll3ind4g7buqbm1h2
**Example 3:** 7110701885
**Example 4:** EILBDVJVNUAGVKRQ
**Example 5:** Checking 0202 | +| `Transactions` | List<[BankTransactions](../../Models/Shared/BankTransactions.md)> | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Shared/CreateBankTransactionsResponse.md b/bank-feeds/docs/Models/Shared/CreateBankTransactionsResponse.md index a1f04458d..750c7352e 100644 --- a/bank-feeds/docs/Models/Shared/CreateBankTransactionsResponse.md +++ b/bank-feeds/docs/Models/Shared/CreateBankTransactionsResponse.md @@ -11,8 +11,8 @@ | `CompanyId` | *string* | :heavy_check_mark: | Unique identifier for your SMB in Codat. | 8a210b68-6988-11ed-a1eb-0242ac120002 | | `PushOperationKey` | *string* | :heavy_check_mark: | A unique identifier generated by Codat to represent this single push operation. This identifier can be used to track the status of the push, and should be persisted. | | | `DataConnectionKey` | *string* | :heavy_check_mark: | Unique identifier for a company's data connection. | 2e9d2c44-f675-40ba-8049-353bfcb5e171 | -| `RequestedOnUtc` | *string* | :heavy_check_mark: | 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. | 2022-10-23T00:00:00Z | -| `CompletedOnUtc` | *string* | :heavy_minus_sign: | 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. | 2022-10-23T00:00:00Z | +| `RequestedOnUtc` | *string* | :heavy_check_mark: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | +| `CompletedOnUtc` | *string* | :heavy_minus_sign: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | | `TimeoutInMinutes` | *int* | :heavy_minus_sign: | Number of minutes the push operation must complete within before it times out. | | | ~~`TimeoutInSeconds`~~ | *int* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

Number of seconds the push operation must complete within before it times out. | | | `Status` | [PushOperationStatus](../../Models/Shared/PushOperationStatus.md) | :heavy_check_mark: | The current status of the push operation. | | diff --git a/bank-feeds/docs/Models/Shared/DataConnectionError.md b/bank-feeds/docs/Models/Shared/DataConnectionError.md index e300d8332..2ca1130f8 100644 --- a/bank-feeds/docs/Models/Shared/DataConnectionError.md +++ b/bank-feeds/docs/Models/Shared/DataConnectionError.md @@ -8,6 +8,6 @@ | `StatusCode` | *string* | :heavy_minus_sign: | The HTTP status code returned by the source platform when the error occurred. | | | `StatusText` | *string* | :heavy_minus_sign: | A non-numeric status code/text returned by the source platform when the error occurred. | | | `ErrorMessage` | *string* | :heavy_minus_sign: | A message about a error returned by Codat. | | -| `ErroredOnUtc` | *string* | :heavy_minus_sign: | 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. | 2022-10-23T00:00:00Z | +| `ErroredOnUtc` | *string* | :heavy_minus_sign: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | | `Status` | [ErrorStatus](../../Models/Shared/ErrorStatus.md) | :heavy_minus_sign: | The current status of a transient error. Null statuses indicate that the error is not transient. | | -| `ResolvedOnUtc` | *string* | :heavy_minus_sign: | 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. | 2022-10-23T00:00:00Z | \ No newline at end of file +| `ResolvedOnUtc` | *string* | :heavy_minus_sign: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Shared/DataConnectionStatus.md b/bank-feeds/docs/Models/Shared/DataConnectionStatus.md index 5d13bea51..4b27d69a8 100644 --- a/bank-feeds/docs/Models/Shared/DataConnectionStatus.md +++ b/bank-feeds/docs/Models/Shared/DataConnectionStatus.md @@ -2,6 +2,14 @@ The current authorization status of the data connection. +## Example Usage + +```csharp +using Codat.BankFeeds.Models.Shared; + +var value = DataConnectionStatus.PendingAuth; +``` + ## Values diff --git a/bank-feeds/docs/Models/Shared/DataType.md b/bank-feeds/docs/Models/Shared/DataType.md index 4f6ed3417..4b4652a5e 100644 --- a/bank-feeds/docs/Models/Shared/DataType.md +++ b/bank-feeds/docs/Models/Shared/DataType.md @@ -2,6 +2,14 @@ Available data types +## Example Usage + +```csharp +using Codat.BankFeeds.Models.Shared; + +var value = DataType.AccountTransactions; +``` + ## Values diff --git a/bank-feeds/docs/Models/Shared/ErrorStatus.md b/bank-feeds/docs/Models/Shared/ErrorStatus.md index 9dc662553..567ccf6dc 100644 --- a/bank-feeds/docs/Models/Shared/ErrorStatus.md +++ b/bank-feeds/docs/Models/Shared/ErrorStatus.md @@ -2,6 +2,14 @@ The current status of a transient error. Null statuses indicate that the error is not transient. +## Example Usage + +```csharp +using Codat.BankFeeds.Models.Shared; + +var value = ErrorStatus.Active; +``` + ## Values diff --git a/bank-feeds/docs/Models/Shared/GenerateOtpResponse.md b/bank-feeds/docs/Models/Shared/GenerateOtpResponse.md new file mode 100644 index 000000000..9cdf2f36f --- /dev/null +++ b/bank-feeds/docs/Models/Shared/GenerateOtpResponse.md @@ -0,0 +1,11 @@ +# GenerateOtpResponse + +Response containing a one-time password and its expiry time. + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Otp` | *string* | :heavy_check_mark: | The one-time password. | | +| `Expiry` | *string* | :heavy_check_mark: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Shared/PushChangeType.md b/bank-feeds/docs/Models/Shared/PushChangeType.md index 7585e9c8c..0a150b0aa 100644 --- a/bank-feeds/docs/Models/Shared/PushChangeType.md +++ b/bank-feeds/docs/Models/Shared/PushChangeType.md @@ -2,6 +2,14 @@ Type of change being applied to record in third party platform. +## Example Usage + +```csharp +using Codat.BankFeeds.Models.Shared; + +var value = PushChangeType.Unknown; +``` + ## Values diff --git a/bank-feeds/docs/Models/Shared/PushOperation.md b/bank-feeds/docs/Models/Shared/PushOperation.md index d2e918a4c..ba94bcea9 100644 --- a/bank-feeds/docs/Models/Shared/PushOperation.md +++ b/bank-feeds/docs/Models/Shared/PushOperation.md @@ -10,8 +10,8 @@ | `CompanyId` | *string* | :heavy_check_mark: | Unique identifier for your SMB in Codat. | 8a210b68-6988-11ed-a1eb-0242ac120002 | | `PushOperationKey` | *string* | :heavy_check_mark: | A unique identifier generated by Codat to represent this single push operation. This identifier can be used to track the status of the push, and should be persisted. | | | `DataConnectionKey` | *string* | :heavy_check_mark: | Unique identifier for a company's data connection. | 2e9d2c44-f675-40ba-8049-353bfcb5e171 | -| `RequestedOnUtc` | *string* | :heavy_check_mark: | 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. | 2022-10-23T00:00:00Z | -| `CompletedOnUtc` | *string* | :heavy_minus_sign: | 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. | 2022-10-23T00:00:00Z | +| `RequestedOnUtc` | *string* | :heavy_check_mark: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | +| `CompletedOnUtc` | *string* | :heavy_minus_sign: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | | `TimeoutInMinutes` | *int* | :heavy_minus_sign: | Number of minutes the push operation must complete within before it times out. | | | ~~`TimeoutInSeconds`~~ | *int* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

Number of seconds the push operation must complete within before it times out. | | | `Status` | [PushOperationStatus](../../Models/Shared/PushOperationStatus.md) | :heavy_check_mark: | The current status of the push operation. | | diff --git a/bank-feeds/docs/Models/Shared/PushOperationStatus.md b/bank-feeds/docs/Models/Shared/PushOperationStatus.md index 4e041b534..ed45086c9 100644 --- a/bank-feeds/docs/Models/Shared/PushOperationStatus.md +++ b/bank-feeds/docs/Models/Shared/PushOperationStatus.md @@ -2,6 +2,14 @@ The current status of the push operation. +## Example Usage + +```csharp +using Codat.BankFeeds.Models.Shared; + +var value = PushOperationStatus.Pending; +``` + ## Values diff --git a/bank-feeds/docs/Models/Shared/PushOptionType.md b/bank-feeds/docs/Models/Shared/PushOptionType.md index f1bb37088..8b78f7f6f 100644 --- a/bank-feeds/docs/Models/Shared/PushOptionType.md +++ b/bank-feeds/docs/Models/Shared/PushOptionType.md @@ -2,6 +2,14 @@ The option type. +## Example Usage + +```csharp +using Codat.BankFeeds.Models.Shared; + +var value = PushOptionType.Array; +``` + ## Values diff --git a/bank-feeds/docs/Models/Shared/SourceAccount.md b/bank-feeds/docs/Models/Shared/SourceAccount.md index f1bd3e501..4e0660742 100644 --- a/bank-feeds/docs/Models/Shared/SourceAccount.md +++ b/bank-feeds/docs/Models/Shared/SourceAccount.md @@ -12,8 +12,8 @@ The target bank account in a supported accounting software for ingestion into a | `AccountType` | *string* | :heavy_minus_sign: | The type of bank account e.g. Credit. | | | `AccountNumber` | *string* | :heavy_minus_sign: | The account number. | | | `SortCode` | *string* | :heavy_minus_sign: | The sort code. | | -| `Currency` | *string* | :heavy_minus_sign: | 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. | GBP | +| `Currency` | *string* | :heavy_minus_sign: | 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. | **Example 1:** GBP
**Example 2:** USD
**Example 3:** EUR | | `Balance` | *decimal* | :heavy_minus_sign: | The latest balance for the bank account. | | -| `ModifiedDate` | *string* | :heavy_minus_sign: | 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. | 2022-10-23T00:00:00Z | +| `ModifiedDate` | *string* | :heavy_minus_sign: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | | `Status` | [SourceAccountStatus](../../Models/Shared/SourceAccountStatus.md) | :heavy_minus_sign: | Status of the source account. | | -| `FeedStartDate` | *string* | :heavy_minus_sign: | 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. | 2022-10-23T00:00:00Z | \ No newline at end of file +| `FeedStartDate` | *string* | :heavy_minus_sign: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Shared/SourceAccountBatchCreateResult.md b/bank-feeds/docs/Models/Shared/SourceAccountBatchCreateResult.md index f6cfa7b4e..ca3ec4f38 100644 --- a/bank-feeds/docs/Models/Shared/SourceAccountBatchCreateResult.md +++ b/bank-feeds/docs/Models/Shared/SourceAccountBatchCreateResult.md @@ -5,8 +5,8 @@ Status details and corresponding object of the `Create account` operation. ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `StatusCode` | *long* | :heavy_minus_sign: | The HTTP status code for the creation of the source account | | -| `Error` | *string* | :heavy_minus_sign: | A brief description of the error. | | -| `Account` | [SourceAccount](../../Models/Shared/SourceAccount.md) | :heavy_minus_sign: | The target bank account in a supported accounting software for ingestion into a bank feed. | {
"id": "acc-002",
"accountName": "account-081",
"sortCode": "123456",
"accountType": "Credit",
"accountNumber": "12345670",
"currency": "GBP",
"balance": 99.99,
"modifiedDate": "2023-01-09T14:14:14.1057478Z",
"status": "pending"
} | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `StatusCode` | *long* | :heavy_minus_sign: | The HTTP status code for the creation of the source account | | +| `Error` | *string* | :heavy_minus_sign: | A brief description of the error. | | +| `Account` | [SourceAccount](../../Models/Shared/SourceAccount.md) | :heavy_minus_sign: | The target bank account in a supported accounting software for ingestion into a bank feed. | **Example 1:** {
"id": "acc-002",
"accountName": "account-081",
"sortCode": "123456",
"accountType": "Credit",
"accountNumber": "12345670",
"currency": "GBP",
"balance": 99.99,
"modifiedDate": "2023-01-09T14:14:14.1057478Z",
"status": "pending"
}
**Example 2:** {
"id": "acc-003",
"accountName": "account-095",
"sortCode": "123456",
"accountType": "Credit",
"accountNumber": "12345671",
"currency": "USD",
"balance": 0,
"modifiedDate": "2023-01-09T14:14:14.1057478Z",
"status": "pending"
} | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Shared/SourceAccountPrototype.md b/bank-feeds/docs/Models/Shared/SourceAccountPrototype.md index 9153044f4..60030a98b 100644 --- a/bank-feeds/docs/Models/Shared/SourceAccountPrototype.md +++ b/bank-feeds/docs/Models/Shared/SourceAccountPrototype.md @@ -10,6 +10,6 @@ | `AccountType` | *string* | :heavy_minus_sign: | The type of bank account e.g. Credit. | | | `AccountNumber` | *string* | :heavy_minus_sign: | The account number. | | | `SortCode` | *string* | :heavy_minus_sign: | The sort code. | | -| `Currency` | *string* | :heavy_minus_sign: | 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. | GBP | +| `Currency` | *string* | :heavy_minus_sign: | 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. | **Example 1:** GBP
**Example 2:** USD
**Example 3:** EUR | | `Balance` | *decimal* | :heavy_minus_sign: | The latest balance for the bank account. | | -| `ModifiedDate` | *string* | :heavy_minus_sign: | 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. | 2022-10-23T00:00:00Z | \ No newline at end of file +| `ModifiedDate` | *string* | :heavy_minus_sign: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Shared/SourceAccountStatus.md b/bank-feeds/docs/Models/Shared/SourceAccountStatus.md index b10dbe8de..121416dd7 100644 --- a/bank-feeds/docs/Models/Shared/SourceAccountStatus.md +++ b/bank-feeds/docs/Models/Shared/SourceAccountStatus.md @@ -2,6 +2,14 @@ Status of the source account. +## Example Usage + +```csharp +using Codat.BankFeeds.Models.Shared; + +var value = SourceAccountStatus.Pending; +``` + ## Values diff --git a/bank-feeds/docs/Models/Shared/SourceAccountV2.md b/bank-feeds/docs/Models/Shared/SourceAccountV2.md index 39acbf28c..a0f22d59e 100644 --- a/bank-feeds/docs/Models/Shared/SourceAccountV2.md +++ b/bank-feeds/docs/Models/Shared/SourceAccountV2.md @@ -13,9 +13,9 @@ The target bank account in a supported accounting software for ingestion into a | `AccountNumber` | *string* | :heavy_check_mark: | The account number. | | | `SortCode` | *string* | :heavy_minus_sign: | The sort code. | | | `RoutingInfo` | [RoutingInfo](../../Models/Shared/RoutingInfo.md) | :heavy_minus_sign: | Routing information for the bank. This does not include account number. | | -| `Currency` | *string* | :heavy_check_mark: | 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. | GBP | +| `Currency` | *string* | :heavy_check_mark: | 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. | **Example 1:** GBP
**Example 2:** USD
**Example 3:** EUR | | `Balance` | *decimal* | :heavy_check_mark: | The latest balance for the bank account. | | | `AccountInfo` | [AccountInfo](../../Models/Shared/AccountInfo.md) | :heavy_minus_sign: | N/A | | -| `ModifiedDate` | *string* | :heavy_minus_sign: | 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. | 2022-10-23T00:00:00Z | +| `ModifiedDate` | *string* | :heavy_minus_sign: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | | `Status` | [Status](../../Models/Shared/Status.md) | :heavy_minus_sign: | Status of the source account. | | | `FeedStartDate` | *string* | :heavy_minus_sign: | In Codat's data model, dates are represented using the ISO 8601 standard. Date fields are formatted as strings; for example:
```
2020-10-08
``` | 2022-10-23 | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Shared/SourceAccountV2AccountType.md b/bank-feeds/docs/Models/Shared/SourceAccountV2AccountType.md index 827c490bd..58a431ffc 100644 --- a/bank-feeds/docs/Models/Shared/SourceAccountV2AccountType.md +++ b/bank-feeds/docs/Models/Shared/SourceAccountV2AccountType.md @@ -2,6 +2,14 @@ The type of bank account e.g. checking, savings, loan, creditCard, prepaidCard. +## Example Usage + +```csharp +using Codat.BankFeeds.Models.Shared; + +var value = SourceAccountV2AccountType.Checking; +``` + ## Values diff --git a/bank-feeds/docs/Models/Shared/SourceAccountV2BatchCreateResult.md b/bank-feeds/docs/Models/Shared/SourceAccountV2BatchCreateResult.md index cf6ff2475..64ddbeafb 100644 --- a/bank-feeds/docs/Models/Shared/SourceAccountV2BatchCreateResult.md +++ b/bank-feeds/docs/Models/Shared/SourceAccountV2BatchCreateResult.md @@ -5,8 +5,8 @@ Status details and corresponding object of the `Create account` operation. ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `StatusCode` | *long* | :heavy_minus_sign: | The HTTP status code for the creation of the source account | | -| `Error` | *string* | :heavy_minus_sign: | A brief description of the error. | | -| `Account` | [SourceAccountV2](../../Models/Shared/SourceAccountV2.md) | :heavy_minus_sign: | The target bank account in a supported accounting software for ingestion into a bank feed. | {
"id": "acc-001",
"accountName": "account-081",
"accountType": "checking",
"accountNumber": "12345670",
"routingInfo": {
"bankCode": 21001088,
"type": "bankcode"
},
"currency": "GBP",
"balance": 99.99,
"accountInfo": {
"description": "account description 1",
"nickname": "account 123",
"accountOpenDate": "2023-05-06",
"availableBalance": 10
},
"modifiedDate": "2024-08-02T00:00:00.000Z",
"status": "pending",
"feedStartDate": "2024-05-01"
} | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `StatusCode` | *long* | :heavy_minus_sign: | The HTTP status code for the creation of the source account | | +| `Error` | *string* | :heavy_minus_sign: | A brief description of the error. | | +| `Account` | [SourceAccountV2](../../Models/Shared/SourceAccountV2.md) | :heavy_minus_sign: | The target bank account in a supported accounting software for ingestion into a bank feed. | **Example 1:** {
"id": "acc-001",
"accountName": "account-081",
"accountType": "checking",
"accountNumber": "12345670",
"routingInfo": {
"bankCode": 21001088,
"type": "bankcode"
},
"currency": "GBP",
"balance": 99.99,
"accountInfo": {
"description": "account description 1",
"nickname": "account 123",
"accountOpenDate": "2023-05-06",
"availableBalance": 10
},
"modifiedDate": "2024-08-02T00:00:00.000Z",
"status": "pending",
"feedStartDate": "2024-05-01"
}
**Example 2:** {
"id": "acc-002",
"accountName": "account-083",
"accountType": "savings",
"accountNumber": "23456789",
"routingInfo": {
"bankCode": 21001088,
"type": "bankcode"
},
"currency": "GBP",
"balance": 400,
"accountInfo": {
"description": "account description 2",
"nickname": "account 1290",
"accountOpenDate": "2023-05-23",
"availableBalance": 400
},
"modifiedDate": "2024-08-02T00:00:00.000Z",
"status": "pending",
"feedStartDate": "2024-05-01"
} | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Shared/SourceAccountV2Prototype.md b/bank-feeds/docs/Models/Shared/SourceAccountV2Prototype.md index 1b1aa0ce7..d9f96380f 100644 --- a/bank-feeds/docs/Models/Shared/SourceAccountV2Prototype.md +++ b/bank-feeds/docs/Models/Shared/SourceAccountV2Prototype.md @@ -11,7 +11,7 @@ | `AccountNumber` | *string* | :heavy_check_mark: | The account number. | | | `RoutingInfo` | [RoutingInfo](../../Models/Shared/RoutingInfo.md) | :heavy_minus_sign: | Routing information for the bank. This does not include account number. | | | `SortCode` | *string* | :heavy_minus_sign: | The sort code. | | -| `Currency` | *string* | :heavy_check_mark: | 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. | GBP | +| `Currency` | *string* | :heavy_check_mark: | 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. | **Example 1:** GBP
**Example 2:** USD
**Example 3:** EUR | | `Balance` | *decimal* | :heavy_check_mark: | The latest balance for the bank account. | | -| `ModifiedDate` | *string* | :heavy_minus_sign: | 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. | 2022-10-23T00:00:00Z | +| `ModifiedDate` | *string* | :heavy_minus_sign: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | | `AccountInfo` | [AccountInfo](../../Models/Shared/AccountInfo.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Shared/SourceAccountWebhook.md b/bank-feeds/docs/Models/Shared/SourceAccountWebhook.md index 1a9a1958f..8c649ee2d 100644 --- a/bank-feeds/docs/Models/Shared/SourceAccountWebhook.md +++ b/bank-feeds/docs/Models/Shared/SourceAccountWebhook.md @@ -6,6 +6,6 @@ | Field | Type | Required | Description | Example | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Id` | *string* | :heavy_minus_sign: | Unique identifier of the event. | ba29118f-5406-4e59-b05c-ba307ca38d01 | -| `EventType` | *string* | :heavy_minus_sign: | The type of event. | bankFeeds.sourceAccount.connected | -| `GeneratedDate` | *string* | :heavy_minus_sign: | 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. | 2022-10-23T00:00:00Z | +| `EventType` | *string* | :heavy_minus_sign: | The type of event. | **Example 1:** bankFeeds.sourceAccount.connected
**Example 2:** bankFeeds.sourceAccount.disconnected | +| `GeneratedDate` | *string* | :heavy_minus_sign: | 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. | **Example 1:** 2022-10-23T00:00:00Z
**Example 2:** 2022-10-23 | | `Payload` | [SourceAccountWebhookPayload](../../Models/Shared/SourceAccountWebhookPayload.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/bank-feeds/docs/Models/Shared/SourceType.md b/bank-feeds/docs/Models/Shared/SourceType.md index 3ddd34f70..b202e8d72 100644 --- a/bank-feeds/docs/Models/Shared/SourceType.md +++ b/bank-feeds/docs/Models/Shared/SourceType.md @@ -2,6 +2,14 @@ The type of platform of the connection. +## Example Usage + +```csharp +using Codat.BankFeeds.Models.Shared; + +var value = SourceType.Accounting; +``` + ## Values diff --git a/bank-feeds/docs/Models/Shared/Status.md b/bank-feeds/docs/Models/Shared/Status.md index 817568428..a073a35c6 100644 --- a/bank-feeds/docs/Models/Shared/Status.md +++ b/bank-feeds/docs/Models/Shared/Status.md @@ -2,6 +2,14 @@ Status of the source account. +## Example Usage + +```csharp +using Codat.BankFeeds.Models.Shared; + +var value = Status.Pending; +``` + ## Values diff --git a/bank-feeds/docs/Models/Shared/Type.md b/bank-feeds/docs/Models/Shared/Type.md index 96e7f7338..8c1853a1e 100644 --- a/bank-feeds/docs/Models/Shared/Type.md +++ b/bank-feeds/docs/Models/Shared/Type.md @@ -2,6 +2,14 @@ The type of routing number. +## Example Usage + +```csharp +using Codat.BankFeeds.Models.Shared; + +var value = Type.Rtn; +``` + ## Values diff --git a/bank-feeds/docs/sdks/accountmapping/README.md b/bank-feeds/docs/sdks/accountmapping/README.md index f43ec46b1..b2aead0cd 100644 --- a/bank-feeds/docs/sdks/accountmapping/README.md +++ b/bank-feeds/docs/sdks/accountmapping/README.md @@ -21,7 +21,7 @@ A bank feed account mapping is a specified link between the source account (prov ### Example Usage - + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Operations; @@ -92,9 +92,34 @@ The method of mapping the source account to the target account varies depending | QuickBooks Online | | | ✅ | | Sage | | | ✅ | -### Example Usage +### Example Usage: Example + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +CreateBankAccountMappingRequest req = new CreateBankAccountMappingRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", + BankFeedAccountMapping = new BankFeedAccountMapping() { + SourceAccountId = "acc-002", + TargetAccountId = "account-081", + }, +}; + +var res = await sdk.AccountMapping.CreateAsync(req); + +// handle response +``` +### Example Usage: Malformed query - + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Operations; diff --git a/bank-feeds/docs/sdks/bankaccounts/README.md b/bank-feeds/docs/sdks/bankaccounts/README.md index a24e306cd..1589feec9 100644 --- a/bank-feeds/docs/sdks/bankaccounts/README.md +++ b/bank-feeds/docs/sdks/bankaccounts/README.md @@ -19,9 +19,262 @@ The *List bank accounts* endpoint returns a list of [bank accounts](https://docs Before using this endpoint, you must have [retrieved data for the company](https://docs.codat.io/bank-feeds-api#/operations/refresh-company-data). -### Example Usage +### Example Usage: Dynamics 365 Business Central - + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +ListBankAccountsRequest req = new ListBankAccountsRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", + Query = "id=e3334455-1aed-4e71-ab43-6bccf12092ee", + OrderBy = "-modifiedDate", +}; + +var res = await sdk.BankAccounts.ListAsync(req); + +// handle response +``` +### Example Usage: FreeAgent + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +ListBankAccountsRequest req = new ListBankAccountsRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", + Query = "id=e3334455-1aed-4e71-ab43-6bccf12092ee", + OrderBy = "-modifiedDate", +}; + +var res = await sdk.BankAccounts.ListAsync(req); + +// handle response +``` +### Example Usage: KashFlow + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +ListBankAccountsRequest req = new ListBankAccountsRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", + Query = "id=e3334455-1aed-4e71-ab43-6bccf12092ee", + OrderBy = "-modifiedDate", +}; + +var res = await sdk.BankAccounts.ListAsync(req); + +// handle response +``` +### Example Usage: Oracle NetSuite + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +ListBankAccountsRequest req = new ListBankAccountsRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", + Query = "id=e3334455-1aed-4e71-ab43-6bccf12092ee", + OrderBy = "-modifiedDate", +}; + +var res = await sdk.BankAccounts.ListAsync(req); + +// handle response +``` +### Example Usage: QuickBooks Desktop + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +ListBankAccountsRequest req = new ListBankAccountsRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", + Query = "id=e3334455-1aed-4e71-ab43-6bccf12092ee", + OrderBy = "-modifiedDate", +}; + +var res = await sdk.BankAccounts.ListAsync(req); + +// handle response +``` +### Example Usage: QuickBooks Online + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +ListBankAccountsRequest req = new ListBankAccountsRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", + Query = "id=e3334455-1aed-4e71-ab43-6bccf12092ee", + OrderBy = "-modifiedDate", +}; + +var res = await sdk.BankAccounts.ListAsync(req); + +// handle response +``` +### Example Usage: QuickBooks Online Sandbox + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +ListBankAccountsRequest req = new ListBankAccountsRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", + Query = "id=e3334455-1aed-4e71-ab43-6bccf12092ee", + OrderBy = "-modifiedDate", +}; + +var res = await sdk.BankAccounts.ListAsync(req); + +// handle response +``` +### Example Usage: Sage 50 (UK) + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +ListBankAccountsRequest req = new ListBankAccountsRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", + Query = "id=e3334455-1aed-4e71-ab43-6bccf12092ee", + OrderBy = "-modifiedDate", +}; + +var res = await sdk.BankAccounts.ListAsync(req); + +// handle response +``` +### Example Usage: Sage Business Cloud Accounting + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +ListBankAccountsRequest req = new ListBankAccountsRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", + Query = "id=e3334455-1aed-4e71-ab43-6bccf12092ee", + OrderBy = "-modifiedDate", +}; + +var res = await sdk.BankAccounts.ListAsync(req); + +// handle response +``` +### Example Usage: Sage Intacct + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +ListBankAccountsRequest req = new ListBankAccountsRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", + Query = "id=e3334455-1aed-4e71-ab43-6bccf12092ee", + OrderBy = "-modifiedDate", +}; + +var res = await sdk.BankAccounts.ListAsync(req); + +// handle response +``` +### Example Usage: Xero + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +ListBankAccountsRequest req = new ListBankAccountsRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", + Query = "id=e3334455-1aed-4e71-ab43-6bccf12092ee", + OrderBy = "-modifiedDate", +}; + +var res = await sdk.BankAccounts.ListAsync(req); + +// handle response +``` +### Example Usage: Zoho Books + + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Operations; @@ -72,9 +325,177 @@ The *Get create/update bank account model* endpoint returns the expected data fo See the *response examples* for integration-specific indicative models. -### Example Usage +### Example Usage: Dynamics 365 Business Central + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +GetCreateBankAccountsModelRequest req = new GetCreateBankAccountsModelRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", +}; + +var res = await sdk.BankAccounts.GetCreateModelAsync(req); + +// handle response +``` +### Example Usage: Exact (Netherlands) + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +GetCreateBankAccountsModelRequest req = new GetCreateBankAccountsModelRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", +}; + +var res = await sdk.BankAccounts.GetCreateModelAsync(req); + +// handle response +``` +### Example Usage: Exact (UK) + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +GetCreateBankAccountsModelRequest req = new GetCreateBankAccountsModelRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", +}; + +var res = await sdk.BankAccounts.GetCreateModelAsync(req); + +// handle response +``` +### Example Usage: FreeAgent + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +GetCreateBankAccountsModelRequest req = new GetCreateBankAccountsModelRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", +}; + +var res = await sdk.BankAccounts.GetCreateModelAsync(req); + +// handle response +``` +### Example Usage: KashFlow + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +GetCreateBankAccountsModelRequest req = new GetCreateBankAccountsModelRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", +}; + +var res = await sdk.BankAccounts.GetCreateModelAsync(req); + +// handle response +``` +### Example Usage: QuickBooks Desktop + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +GetCreateBankAccountsModelRequest req = new GetCreateBankAccountsModelRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", +}; + +var res = await sdk.BankAccounts.GetCreateModelAsync(req); + +// handle response +``` +### Example Usage: QuickBooks Online Sandbox + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +GetCreateBankAccountsModelRequest req = new GetCreateBankAccountsModelRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", +}; + +var res = await sdk.BankAccounts.GetCreateModelAsync(req); + +// handle response +``` +### Example Usage: Sage Business Cloud Accounting + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +GetCreateBankAccountsModelRequest req = new GetCreateBankAccountsModelRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", +}; + +var res = await sdk.BankAccounts.GetCreateModelAsync(req); + +// handle response +``` +### Example Usage: Sandbox - + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Operations; @@ -124,7 +545,7 @@ Required data may vary by integration. To see what data to post, first call [Get ### Example Usage - + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Operations; diff --git a/bank-feeds/docs/sdks/companies/README.md b/bank-feeds/docs/sdks/companies/README.md index aa43c0dd4..d8c3ba66d 100644 --- a/bank-feeds/docs/sdks/companies/README.md +++ b/bank-feeds/docs/sdks/companies/README.md @@ -23,9 +23,69 @@ Each company can have multiple [connections](https://docs.codat.io/bank-feeds-ap If forbidden characters (see `name` pattern) are present in the request, a company will be created with the forbidden characters removed. For example, `Company (Codat[1])` with be created as `Company Codat1`. -### Example Usage +### Example Usage: Malformed query + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +CompanyRequestBody req = new CompanyRequestBody() { + Name = "Bank of Dave", + Description = "Requested early access to the new financing scheme.", +}; + +var res = await sdk.Companies.CreateAsync(req); + +// handle response +``` +### Example Usage: With a description + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +CompanyRequestBody req = new CompanyRequestBody() { + Name = "Technicalium", + Description = "Technology services, including web and app design and development", +}; + +var res = await sdk.Companies.CreateAsync(req); + +// handle response +``` +### Example Usage: With a tag + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +CompanyRequestBody req = new CompanyRequestBody() { + Name = "Bank of Dave", + Description = "Requested early access to the new financing scheme.", +}; + +var res = await sdk.Companies.CreateAsync(req); + +// handle response +``` +### Example Usage: With no description - + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Shared; @@ -81,9 +141,31 @@ For example, you can use the querying to filter companies tagged with a specific - Region: `region != uk` - Owning team and region: `region = uk && owningTeam = invoice-finance` -### Example Usage +### Example Usage: List of Companies + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); - +ListCompaniesRequest req = new ListCompaniesRequest() { + Query = "id=e3334455-1aed-4e71-ab43-6bccf12092ee", + OrderBy = "-modifiedDate", + Tags = "region=uk && team=invoice-finance", +}; + +var res = await sdk.Companies.ListAsync(req); + +// handle response +``` +### Example Usage: One company + + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Operations; @@ -130,9 +212,49 @@ A [company](https://docs.codat.io/bank-feeds-api#/schemas/Company) represents a Each company can have multiple [connections](https://docs.codat.io/bank-feeds-api#/schemas/Connection) to different data sources, such as one connection to Xero for accounting data, two connections to Plaid for two bank accounts, and a connection to Zettle for POS data. -### Example Usage +### Example Usage: Parent multi-entity company - + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +GetCompanyRequest req = new GetCompanyRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", +}; + +var res = await sdk.Companies.GetAsync(req); + +// handle response +``` +### Example Usage: Simple company + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +GetCompanyRequest req = new GetCompanyRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", +}; + +var res = await sdk.Companies.GetAsync(req); + +// handle response +``` +### Example Usage: Subsidiary multi-entity company + + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Operations; @@ -223,9 +345,57 @@ var res = await sdk.Companies.DeleteAsync(req); A [company](https://docs.codat.io/bank-feeds-api#/schemas/Company) represents a business sharing access to their data. Each company can have multiple [connections](https://docs.codat.io/bank-feeds-api#/schemas/Connection) to different data sources, such as one connection to Xero for accounting data, two connections to Plaid for two bank accounts, and a connection to Zettle for POS data. -### Example Usage +### Example Usage: Unauthorized + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +ReplaceCompanyRequest req = new ReplaceCompanyRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + CompanyRequestBody = new CompanyRequestBody() { + Name = "Bank of Dave", + Description = "Requested early access to the new financing scheme.", + }, +}; + +var res = await sdk.Companies.ReplaceAsync(req); - +// handle response +``` +### Example Usage: Update description + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +ReplaceCompanyRequest req = new ReplaceCompanyRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + CompanyRequestBody = new CompanyRequestBody() { + Name = "Same name", + Description = "Additional documents required", + }, +}; + +var res = await sdk.Companies.ReplaceAsync(req); + +// handle response +``` +### Example Usage: Update name + + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Operations; @@ -273,9 +443,56 @@ The *Update company* endpoint doesn't have any required fields. If any of the fi A [company](https://docs.codat.io/bank-feeds-api#/schemas/Company) represents a business sharing access to their data. -### Example Usage +### Example Usage: Unauthorized + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +UpdateCompanyRequest req = new UpdateCompanyRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + CompanyUpdateRequest = new CompanyUpdateRequest() { + Name = "Bank of Dave", + Description = "Requested early access to the new financing scheme.", + }, +}; + +var res = await sdk.Companies.UpdateAsync(req); + +// handle response +``` +### Example Usage: Update name + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +UpdateCompanyRequest req = new UpdateCompanyRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + CompanyUpdateRequest = new CompanyUpdateRequest() { + Name = "New Name", + }, +}; + +var res = await sdk.Companies.UpdateAsync(req); + +// handle response +``` +### Example Usage: Update tags - + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Operations; @@ -326,7 +543,7 @@ The token is required by Codat's embeddable UIs (such as [Connections SDK](https ### Example Usage - + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Operations; diff --git a/bank-feeds/docs/sdks/connections/README.md b/bank-feeds/docs/sdks/connections/README.md index 402d83565..9bdeb0425 100644 --- a/bank-feeds/docs/sdks/connections/README.md +++ b/bank-feeds/docs/sdks/connections/README.md @@ -18,7 +18,7 @@ Create new and manage existing data connections for a company. ### Example Usage - + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Operations; @@ -63,9 +63,32 @@ var res = await sdk.Connections.ListAsync(req); Use the [List Integrations](https://docs.codat.io/platform-api#/operations/list-integrations) endpoint to access valid platform keys. -### Example Usage +### Example Usage: Connection + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +CreateConnectionRequest req = new CreateConnectionRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + RequestBody = new CreateConnectionRequestBody() { + PlatformKey = "gbol", + }, +}; + +var res = await sdk.Connections.CreateAsync(req); + +// handle response +``` +### Example Usage: Unauthorized - + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Operations; @@ -111,7 +134,7 @@ var res = await sdk.Connections.CreateAsync(req); ### Example Usage - + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Operations; @@ -200,7 +223,7 @@ var res = await sdk.Connections.DeleteAsync(req); ### Example Usage - + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Operations; diff --git a/bank-feeds/docs/sdks/sourceaccounts/README.md b/bank-feeds/docs/sdks/sourceaccounts/README.md index b24c608e2..ea93bfd61 100644 --- a/bank-feeds/docs/sdks/sourceaccounts/README.md +++ b/bank-feeds/docs/sdks/sourceaccounts/README.md @@ -13,6 +13,7 @@ Provide and manage lists of source bank accounts. * [Delete](#delete) - Delete source account * [GenerateCredentials](#generatecredentials) - Generate source account credentials * [DeleteCredentials](#deletecredentials) - Delete all source account credentials +* [GenerateOtp](#generateotp) - Generate one-time password ## CreateBatch @@ -23,7 +24,7 @@ The _Batch create source accounts_ endpoint allows you to create multiple repres ### Example Usage - + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Operations; @@ -78,9 +79,70 @@ The _Create Source Account_ endpoint allows you to create a representation of a > ### Versioning > If you are integrating the Bank Feeds solution with Codat after August 1, 2024, please use the v2 version of the API, as detailed in the schema below. For integrations completed before August 1, 2024, select the v1 version from the schema dropdown below. -### Example Usage +### Example Usage: Malformed query - + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +CreateSourceAccountRequest req = new CreateSourceAccountRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", + RequestBody = CreateSourceAccountRequestBody.CreateSourceAccountPrototype( + new SourceAccountPrototype() { + Id = "", + Currency = "GBP", + ModifiedDate = "2022-10-23T00:00:00Z", + } + ), +}; + +var res = await sdk.SourceAccounts.CreateAsync(req); + +// handle response +``` +### Example Usage: Version 1 + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +CreateSourceAccountRequest req = new CreateSourceAccountRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", + RequestBody = CreateSourceAccountRequestBody.CreateSourceAccountPrototype( + new SourceAccountPrototype() { + Id = "acc-002", + AccountName = "account-081", + AccountType = "Credit", + AccountNumber = "12345670", + SortCode = "123456", + Currency = "GBP", + Balance = 99.99M, + ModifiedDate = "2023-01-09T14:14:14.1057478Z", + } + ), +}; + +var res = await sdk.SourceAccounts.CreateAsync(req); + +// handle response +``` +### Example Usage: Version 2 + + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Operations; @@ -187,7 +249,7 @@ var res = await sdk.SourceAccounts.ListAsync(req); ### Example Usage - + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Operations; @@ -297,7 +359,7 @@ The old credentials will still be valid until the revoke credentials endpoint is ### Example Usage - + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Operations; @@ -381,4 +443,53 @@ var res = await sdk.SourceAccounts.DeleteCredentialsAsync(req); | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | | Codat.BankFeeds.Models.Errors.ErrorMessage | 401, 402, 403, 404, 429 | application/json | | Codat.BankFeeds.Models.Errors.ErrorMessage | 500, 503 | application/json | +| Codat.BankFeeds.Models.Errors.SDKException | 4XX, 5XX | \*/\* | + +## GenerateOtp + +The *Generate OTP* endpoint generates a one-time password (OTP) for a bank feed connection. The OTP is returned along with an expiry time, after which it will no longer be valid. + +> **For Sage only** +> +> Only call this endpoint for connections to Sage. Calling it for other integrations will return an error. + + +### Example Usage + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +GenerateOtpRequest req = new GenerateOtpRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", +}; + +var res = await sdk.SourceAccounts.GenerateOtpAsync(req); + +// handle response +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `request` | [GenerateOtpRequest](../../Models/Operations/GenerateOtpRequest.md) | :heavy_check_mark: | The request object to use for the request. | + +### Response + +**[Models.Operations.GenerateOtpResponse](../../Models/Operations/GenerateOtpResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | +| Codat.BankFeeds.Models.Errors.ErrorMessage | 400, 401, 402, 403, 404, 429 | application/json | +| Codat.BankFeeds.Models.Errors.ErrorMessage | 500, 503 | application/json | | Codat.BankFeeds.Models.Errors.SDKException | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/bank-feeds/docs/sdks/transactions/README.md b/bank-feeds/docs/sdks/transactions/README.md index 78b84db35..bdd2f0840 100644 --- a/bank-feeds/docs/sdks/transactions/README.md +++ b/bank-feeds/docs/sdks/transactions/README.md @@ -22,9 +22,195 @@ Create new bank account transactions for a company's connections, and see previo The required properties may vary based on the integration. For detailed requirements specific to each accounting software, refer to the API reference examples. Alternatively, you can view the [Get create bank transaction model](https://docs.codat.io/bank-feeds-api#/operations/get-create-bank-transactions-model) for more information. -### Example Usage +### Example Usage: FreeAgent + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; +using System.Collections.Generic; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +CreateBankTransactionsRequest req = new CreateBankTransactionsRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", + AccountId = "13d946f0-c5d5-42bc-b092-97ece17923ab", + CreateBankTransactions = new CreateBankTransactions() { + AccountId = "49cd5a42-b311-4750-9361-52e2ed1d4653", + Transactions = new List() { + new BankTransactions() { + Id = "716422529", + Date = "2023-08-22T10:21:00", + Description = "Repayment of Credit Card", + Amount = 100M, + TransactionType = BankTransactionType.Credit, + }, + new BankTransactions() { + Id = "716422530", + Date = "2023-08-22T10:22:00", + Description = "Amazon Purchase", + Amount = -100M, + TransactionType = BankTransactionType.Debit, + }, + new BankTransactions() { + Id = "716422531", + Date = "2023-08-22T10:23:00", + Description = "Office Supplies", + Amount = -60M, + TransactionType = BankTransactionType.Debit, + }, + }, + }, +}; + +var res = await sdk.Transactions.CreateAsync(req); + +// handle response +``` +### Example Usage: Malformed query + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; +using System.Collections.Generic; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +CreateBankTransactionsRequest req = new CreateBankTransactionsRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", + AccountId = "13d946f0-c5d5-42bc-b092-97ece17923ab", + CreateBankTransactions = new CreateBankTransactions() { + AccountId = "13d946f0-c5d5-42bc-b092-97ece17923ab", + Transactions = new List() {}, + }, +}; + +var res = await sdk.Transactions.CreateAsync(req); + +// handle response +``` +### Example Usage: QuickBooks Online Bank Feeds + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; +using System.Collections.Generic; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +CreateBankTransactionsRequest req = new CreateBankTransactionsRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", + AccountId = "13d946f0-c5d5-42bc-b092-97ece17923ab", + CreateBankTransactions = new CreateBankTransactions() { + AccountId = "49cd5a42-b311-4750-9361-52e2ed1d4653", + Transactions = new List() { + new BankTransactions() { + Id = "716422529", + Date = "2023-08-22T10:21:00", + Description = "Repayment of Credit Card", + Amount = 100M, + Balance = 100M, + TransactionType = BankTransactionType.Credit, + }, + new BankTransactions() { + Id = "716422530", + Date = "2023-08-22T10:22:00", + Description = "Amazon Purchase", + Amount = -100M, + Balance = 0M, + TransactionType = BankTransactionType.Debit, + }, + new BankTransactions() { + Id = "716422531", + Date = "2023-08-22T10:23:00", + Description = "Office Supplies", + Amount = -60M, + Balance = -60M, + TransactionType = BankTransactionType.Debit, + }, + }, + }, +}; + +var res = await sdk.Transactions.CreateAsync(req); + +// handle response +``` +### Example Usage: Sage + + +```csharp +using Codat.BankFeeds; +using Codat.BankFeeds.Models.Operations; +using Codat.BankFeeds.Models.Shared; +using System.Collections.Generic; + +var sdk = new CodatBankFeeds(security: new Security() { + AuthHeader = "Basic BASE_64_ENCODED(API_KEY)", +}); + +CreateBankTransactionsRequest req = new CreateBankTransactionsRequest() { + CompanyId = "8a210b68-6988-11ed-a1eb-0242ac120002", + ConnectionId = "2e9d2c44-f675-40ba-8049-353bfcb5e171", + AccountId = "13d946f0-c5d5-42bc-b092-97ece17923ab", + CreateBankTransactions = new CreateBankTransactions() { + AccountId = "49cd5a42-b311-4750-9361-52e2ed1d4653", + Transactions = new List() { + new BankTransactions() { + Id = "716422529", + Date = "2023-08-22T10:21:00", + Description = "Repayment of Credit Card", + Counterparty = "Bank of Example", + Reference = "Ref-12345", + Amount = 100M, + Balance = 100M, + TransactionType = BankTransactionType.Credit, + }, + new BankTransactions() { + Id = "716422530", + Date = "2023-08-22T10:22:00", + Description = "Amazon Purchase", + Counterparty = "Amazon", + Reference = "Ref-12346", + Amount = -100M, + Balance = 0M, + TransactionType = BankTransactionType.Debit, + }, + new BankTransactions() { + Id = "716422531", + Date = "2023-08-22T10:23:00", + Description = "Office Supplies", + Counterparty = "Office Mart", + Reference = "Ref-12347", + Amount = -60M, + Balance = -60M, + TransactionType = BankTransactionType.Debit, + }, + }, + }, +}; + +var res = await sdk.Transactions.CreateAsync(req); + +// handle response +``` +### Example Usage: Xero - + ```csharp using Codat.BankFeeds; using Codat.BankFeeds.Models.Operations;