From 810e11bb1c89546a4289fae440d6153704a2418b Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 8 Jun 2026 13:00:34 +0000 Subject: [PATCH] Remove deprecated Partner Commerce references Remove Partner Commerce API page, OAS specification, and platform key reference as part of deprecation cleanup. https://claude.ai/code/session_012MUKfJPeXkrS7sfi7SsDEg --- docs/integrations/commerce/overview.md | 1 - .../sync-for-partner-commerce-api/index.tsx | 12 - static/oas/Codat-Sync-Partner-Commerce.json | 4290 ----------------- 3 files changed, 4303 deletions(-) delete mode 100644 src/pages/sync-for-partner-commerce-api/index.tsx delete mode 100644 static/oas/Codat-Sync-Partner-Commerce.json diff --git a/docs/integrations/commerce/overview.md b/docs/integrations/commerce/overview.md index 6ba3c7c94..20dc1b55b 100644 --- a/docs/integrations/commerce/overview.md +++ b/docs/integrations/commerce/overview.md @@ -50,7 +50,6 @@ Each integration has a unique 4-character key that identifies it in our APIs. Fo | Lightspeed K | ldgh | | Lightspeed K Sandbox | lrhd | | Lightspeed K Trial | ltes | -| Partner Commerce | lqai | | Shopify | fztf | | Square | zsth | | Square Sandbox | xcwv | diff --git a/src/pages/sync-for-partner-commerce-api/index.tsx b/src/pages/sync-for-partner-commerce-api/index.tsx deleted file mode 100644 index 3a0128267..000000000 --- a/src/pages/sync-for-partner-commerce-api/index.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import React from "react"; -import Api from '../../components/Api' - -const URL = "/oas/Codat-Sync-Partner-Commerce.json" - -const PartnerCommerceSyncApi = () => { - return ( - - ); -} - -export default PartnerCommerceSyncApi \ No newline at end of file diff --git a/static/oas/Codat-Sync-Partner-Commerce.json b/static/oas/Codat-Sync-Partner-Commerce.json deleted file mode 100644 index 1105849c4..000000000 --- a/static/oas/Codat-Sync-Partner-Commerce.json +++ /dev/null @@ -1,4290 +0,0 @@ -{ - "openapi": "3.1.0", - "x-stoplight": { - "id": "v6f6vc930irb5" - }, - "servers": [ - { - "description": "Production", - "url": "https://api.codat.io" - } - ], - "info": { - "title": "Sync for Commerce - Partner commerce", - "version": "1.1", - "contact": { - "name": "Codat", - "url": "https://www.codat.io/", - "email": "syncforcommerce@codat.io" - }, - "description": "The Sync for Commerce API for commerce partners\n\nSync for Commerce automatically replicates and reconciles sales data from a merchant’s PoS Salon system into their accounting software. This eliminates manual processing by merchants and transforms their ability to run and grow their business.\n ", - "termsOfService": "https://www.codat.io/legals/" - }, - "security": [ - { - "auth_header": [] - } - ], - "x-speakeasy-retries": { - "strategy": "backoff", - "backoff": { - "initialInterval": 500, - "maxInterval": 60000, - "maxElapsedTime": 3600000, - "exponent": 1.5 - }, - "statusCodes": [ - 408, - 429, - "5XX" - ], - "retryConnectionErrors": true - }, - "x-speakeasy-name-override": [ - { - "operationId": "^list-.*?", - "methodNameOverride": "list" - }, - { - "operationId": "^list-.*?-attachments", - "methodNameOverride": "list-attachments" - }, - { - "operationId": "^get-.*?", - "methodNameOverride": "get" - }, - { - "operationId": "^get-create-.*?-model", - "methodNameOverride": "get-create-model" - }, - { - "operationId": "^get-create-update.*?-model", - "methodNameOverride": "get-create-update-model" - }, - { - "operationId": "^get-.*?-attachment", - "methodNameOverride": "get-attachment" - }, - { - "operationId": "^update-.*?", - "methodNameOverride": "update" - }, - { - "operationId": "^create-.*?", - "methodNameOverride": "create" - }, - { - "operationId": "^delete-.*?", - "methodNameOverride": "delete" - }, - { - "operationId": "^delete-.*?-attachment", - "methodNameOverride": "delete-attachment" - }, - { - "operationId": "^download-.*?-attachment", - "methodNameOverride": "download-attachment" - }, - { - "operationId": "^upload-.*?-attachment", - "methodNameOverride": "upload-attachment" - } - ], - "x-codat-docs-path": "sync-for-partner-commerce-api", - "x-codat-keep-docs-paths-local": true, - "x-codat-speakeasy-pagination": { - "type": "offsetLimit", - "inputs": [ - { - "name": "page", - "in": "parameters", - "type": "page" - } - ], - "outputs": { - "results": "$.results" - } - }, - "tags": [ - { - "name": "Connections", - "description": "Create new and manage existing Sync for Commerce connections using the Sync flow UI." - }, - { - "name": "Sync flow settings", - "description": "Configure preferences for any given Sync for Commerce company using sync flow." - }, - { - "name": "Sync", - "description": "Initiate the sync of company data into accounting software." - }, - { - "name": "Sync status", - "description": "Monitor the sync of company data into accounting software." - }, - { - "name": "Commerce data", - "description": "Post to Codat commerce data from clients system." - }, - { - "name": "Integrations", - "description": "View useful information about codat's integrations." - } - ], - "paths": { - "/config/sync/commerce/{commerceKey}/{accountingKey}/start": { - "get": { - "tags": [ - "Connections" - ], - "summary": "Start new sync flow", - "description": "Create a new company with data connections. Get a URL for Sync Flow, including a one time passcode.", - "operationId": "get-sync-flow-url", - "x-speakeasy-name-override": "get-sync-flow-url", - "parameters": [ - { - "name": "commerceKey", - "in": "path", - "description": "Key for Partner Commerce data connection i.e. \"lqai\"", - "required": true, - "example": "lqai", - "schema": { - "type": "string" - } - }, - { - "name": "accountingKey", - "in": "path", - "description": "Accounting software key", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "merchantIdentifier", - "in": "query", - "schema": { - "type": "string" - }, - "description": "Identifier for your merchant, can be the merchant name or Codat company id." - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncFlowUrl" - } - } - } - }, - "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" - } - } - }, - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "commerceKey", - "in": "path", - "required": true, - "description": "Unique identifier for commerce software." - }, - { - "schema": { - "type": "string" - }, - "name": "accountingKey", - "in": "path", - "required": true, - "description": "Unique identifier for accounting software." - } - ] - }, - "/companies": { - "get": { - "tags": [ - "Connections" - ], - "summary": "List companies", - "description": "Returns a list of companies.", - "operationId": "list-companies", - "x-speakeasy-name-override": "list-companies", - "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/Companies" - } - } - } - }, - "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": { - "get": { - "summary": "List connections", - "description": "List 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": { - "value": { - "results": [ - { - "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" - } - ], - "pageNumber": 0, - "pageSize": 0, - "totalResults": 0, - "_links": { - "self": { - "href": "string" - }, - "current": { - "href": "string" - }, - "next": { - "href": "string" - }, - "previous": { - "href": "string" - } - } - } - } - } - } - } - }, - "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}": { - "patch": { - "tags": [ - "Connections" - ], - "summary": "Update connection", - "description": "Update a data connection", - "operationId": "update-connection", - "x-speakeasy-name-override": "update-connection", - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - }, - { - "$ref": "#/components/parameters/connectionId" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateConnection" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Connection" - } - } - } - }, - "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" - } - } - }, - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - }, - { - "$ref": "#/components/parameters/connectionId" - } - ] - }, - "/config/integrations": { - "get": { - "tags": [ - "Integrations" - ], - "summary": "List integrations", - "description": "Retrieve a list of available integrations support by data type and state of release.", - "operationId": "list-integrations", - "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/Integrations" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Malformed-Query" - }, - "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" - } - } - } - }, - "/config/integrations/{platformKey}/branding": { - "get": { - "tags": [ - "Integrations" - ], - "summary": "Get branding for an integration", - "description": "Retrieve Integration branding assets.", - "operationId": "get-integration-branding", - "x-speakeasy-name-override": "get-branding", - "parameters": [ - { - "$ref": "#/components/parameters/platformKey" - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Branding" - } - } - } - }, - "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" - } - } - }, - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "platformKey", - "in": "path", - "required": true, - "description": "Unique four letter identifier for the platform" - } - ] - }, - "/sync/commerce/config/ui/text": { - "get": { - "tags": [ - "Sync flow settings" - ], - "summary": "Get preferences for text fields", - "description": "Return preferences set for the text fields on sync flow.", - "operationId": "get-config-text-sync-flow", - "x-speakeasy-name-override": "get-config-text-sync-flow", - "parameters": [ - { - "$ref": "#/components/parameters/locale" - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LocalizationInfo" - } - } - } - }, - "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" - } - } - }, - "patch": { - "tags": [ - "Sync flow settings" - ], - "summary": "Update preferences for text fields", - "description": "Set preferences for the text fields on sync flow.", - "operationId": "update-config-text-sync-flow", - "x-speakeasy-name-override": "update-config-text-sync-flow", - "parameters": [ - { - "$ref": "#/components/parameters/locale" - } - ], - "requestBody": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LocalizationInfo" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LocalizationInfo" - } - } - } - }, - "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" - } - } - } - }, - "/clients/{clientId}/config/ui/accounts/platform/{platformKey}": { - "parameters": [ - { - "$ref": "#/components/parameters/clientId" - }, - { - "$ref": "#/components/parameters/platformKey" - } - ], - "get": { - "tags": [ - "Sync flow settings" - ], - "summary": "List visible accounts", - "description": "Return accounts which are visible on sync flow.", - "operationId": "get-visible-accounts", - "x-speakeasy-name-override": "get-visible-accounts", - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VisibleAccounts" - } - } - } - }, - "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" - } - } - } - }, - "/sync/commerce/config/ui/accounts/platform/{platformKey}": { - "post": { - "tags": [ - "Sync flow settings" - ], - "summary": "Update visible accounts", - "description": "Update which accounts are visible on sync flow.", - "operationId": "update-visible-accounts-sync-flow", - "x-speakeasy-name-override": "update-visible-accounts-sync-flow", - "parameters": [ - { - "$ref": "#/components/parameters/platformKey" - } - ], - "requestBody": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VisibleAccounts" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VisibleAccounts" - } - } - } - }, - "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}/sync/commerce/latest": { - "post": { - "tags": [ - "Sync" - ], - "summary": "Initiate new sync", - "description": "Run a Commerce sync from the last successful sync up to the date provided (optional), otherwise UtcNow is used.\\r\\nIf there was no previously successful sync, the start date in the config is used.", - "operationId": "request-sync", - "x-speakeasy-name-override": "request", - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ], - "requestBody": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncToLatestArgs" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "x-speakeasy-usage-example": true, - "schema": { - "$ref": "#/components/schemas/SyncSummary" - } - } - } - }, - "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" - } - } - }, - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ] - }, - "/meta/companies/{companyId}/sync/commerce/historic": { - "post": { - "tags": [ - "Sync" - ], - "summary": "Initiate sync for specific range", - "description": "Initiate a sync for the specified start date to the specified finish date in the request payload.", - "operationId": "request-sync-for-date-range", - "x-speakeasy-name-override": "request-for-date-range", - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ], - "requestBody": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncRange" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncSummary" - } - } - } - }, - "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" - } - } - } - }, - "/meta/companies/{companyId}/sync/commerce/status": { - "get": { - "tags": [ - "Sync status" - ], - "summary": "Get sync status", - "description": "Gets a list of sync statuses.", - "operationId": "get-sync-status", - "x-speakeasy-name-override": "get-status", - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncStatus" - } - } - } - }, - "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" - } - } - }, - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ] - }, - "/companies/{companyId}/sync/commerce/syncs/lastSuccessful/status": { - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ], - "get": { - "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", - "tags": [ - "Sync status" - ], - "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" - } - } - } - }, - "/companies/{companyId}/sync/commerce/syncs/latest/status": { - "get": { - "description": "Gets the latest sync status", - "summary": "Latest sync status", - "operationId": "get-latest-sync", - "x-speakeasy-name-override": "get-latest-sync", - "tags": [ - "Sync status" - ], - "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" - } - } - }, - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ] - }, - "/companies/{companyId}/sync/commerce/syncs/{syncId}/status": { - "get": { - "tags": [ - "Sync status" - ], - "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/commerce/syncs/list/status": { - "get": { - "summary": "List sync statuses", - "description": "Gets a list of sync statuses", - "operationId": "list-syncs", - "tags": [ - "Sync status" - ], - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ], - "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" - } - } - }, - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ] - }, - "/companies/{companyId}/data/commerce-orders": { - "post": { - "summary": "Post orders data", - "description": "Post orders data to codat for transformation", - "operationId": "post-commerce-orders", - "tags": [ - "Commerce data" - ], - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Order" - } - }, - "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" - } - } - }, - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ] - }, - "/companies/{companyId}/data/commerce-transactions": { - "post": { - "summary": "Post transactions data", - "description": "Post transactions data to codat for transformation", - "operationId": "post-commerce-transactions", - "tags": [ - "Commerce data" - ], - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Transaction" - } - }, - "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" - } - } - }, - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ] - }, - "/companies/{companyId}/data/commerce-payments": { - "post": { - "summary": "Post payments data", - "description": "Post payments data to codat for transformation", - "operationId": "post-commerce-payments", - "tags": [ - "Commerce data" - ], - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Payment" - } - }, - "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" - } - } - }, - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ] - }, - "/companies/{companyId}/data/commerce-locations": { - "put": { - "summary": "Create update commerce locations data", - "description": "Create or update locations data", - "operationId": "post-commerce-locations", - "tags": [ - "Commerce data" - ], - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Location" - } - }, - "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" - } - } - }, - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ] - }, - "/companies/{companyId}/data/commerce-taxComponents": { - "put": { - "summary": "Create or update tax components data", - "description": "Create or update tax components data", - "operationId": "put-commerce-taxComponents", - "tags": [ - "Commerce data" - ], - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ], - "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" - } - } - }, - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ] - }, - "/companies/{companyId}/data/commerce-products": { - "put": { - "summary": "Create or update products data", - "description": "Create or update products data", - "operationId": "put-commerce-products", - "tags": [ - "Commerce data" - ], - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" - } - }, - "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" - } - } - }, - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ] - }, - "/companies/{companyId}/data/commerce-paymentMethods": { - "put": { - "summary": "Create or update payment methods data", - "description": "Create or update payment methods data", - "operationId": "put-commerce-paymentMethods", - "tags": [ - "Commerce data" - ], - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PaymentMethod" - } - }, - "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" - } - } - }, - "parameters": [ - { - "$ref": "#/components/parameters/companyId" - } - ] - } - }, - "x-webhooks": { - "Sync Connection Deleted": { - "post": { - "requestBody": { - "description": "A Sync for Commerce connection is deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncConnectionDeletedWebhook" - } - } - } - }, - "responses": { - "200": { - "description": "Return a 200 status to indicate that the webhook was received successfully." - } - } - } - } - }, - "components": { - "schemas": { - "AccountOption": { - "x-internal": true, - "title": "Account option", - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true, - "description": "Name of the account." - }, - "id": { - "type": "string", - "description": "Identifier for the account, unique for the company." - }, - "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." - }, - "classification": { - "type": "string", - "nullable": true, - "description": "Classification of the type of G/L account.", - "example": "Bank Nominal" - } - }, - "additionalProperties": false - }, - "Branding": { - "title": "Branding", - "type": "object", - "properties": { - "logo": { - "$ref": "#/components/schemas/Branding/definitions/brandingLogo" - }, - "button": { - "$ref": "#/components/schemas/Branding/definitions/brandingButton" - }, - "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`." - } - }, - "definitions": { - "brandingLogo": { - "description": "Logo branding references.", - "type": "object", - "properties": { - "full": { - "$ref": "#/components/schemas/Branding/definitions/brandingImage" - }, - "square": { - "$ref": "#/components/schemas/Branding/definitions/brandingImage" - } - } - }, - "brandingButton": { - "type": "object", - "description": "Button branding references.", - "properties": { - "default": { - "$ref": "#/components/schemas/Branding/definitions/brandingImage" - }, - "hover": { - "$ref": "#/components/schemas/Branding/definitions/brandingImage" - } - } - }, - "brandingImage": { - "title": "Branding Image", - "type": "object", - "properties": { - "image": { - "$ref": "#/components/schemas/Branding/definitions/imageReference" - } - }, - "examples": [] - }, - "imageReference": { - "type": "object", - "title": "Image Reference", - "description": "Image reference.", - "properties": { - "src": { - "type": "string", - "format": "uri", - "description": "Source URL for image." - }, - "alt": { - "type": "string", - "description": "Alternative text when image is not available." - } - } - } - }, - "examples": [ - { - "logo": { - "full": { - "image": { - "src": "https://static.codat.io/public/officialLogos/Full/8A156A5A-39CB-4F9D-856E-76EF9B9A9607.png", - "alt": "xero full icon" - } - }, - "square": { - "image": { - "src": "https://static.codat.io/public/officialLogos/Square/8A156A5A-39CB-4F9D-856E-76EF9B2W3607.png", - "alt": "xero square icon" - } - } - }, - "button": { - "default": { - "image": { - "src": "https://static.codat.io/public/officialButtons/Full/8A156A5A-39CB-4F9D-856E-76EF9Q7A9607.png", - "alt": "xero default button icon" - } - }, - "hover": { - "image": { - "src": "https://static.codat.io/public/officialLogos/Full/8A156A5A-39CB-4F9D-856E-76EF9B9A9607.png", - "alt": "xero hover button icon" - } - } - }, - "sourceId": "35b92968-9851-4095-ad60-395c95cbcba4" - } - ] - }, - "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": "In Codat, a company represents a business sharing access to their data. Each company can have multiple [connections](https://docs.codat.io/sync-for-sync-for-commerce-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", - "properties": { - "id": { - "$ref": "#/components/parameters/companyId/schema" - }, - "name": { - "type": "string", - "description": "The name of the company", - "example": "Codat Ltd." - }, - "description": { - "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." - }, - "platform": { - "type": "string", - "deprecated": true, - "example": "Xero", - "description": "`platformKeys` name used when creating the company." - }, - "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/Company/properties/created" - }, - "created": { - "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." - }, - "createdByUserName": { - "type": "string", - "description": "Name of user that created the company in Codat." - }, - "dataConnections": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Connection" - } - }, - "groups": { - "type": "array", - "items": { - "title": "Group reference", - "type": "object", - "properties": { - "id": { - "$ref": "#/components/schemas/Company/definitions/companyGroupAssignment/properties/groupId/allOf/0" - } - } - }, - "description": "An array of groups the company has been assigned to." - } - }, - "required": [ - "id", - "name", - "redirect" - ], - "definitions": { - "companyGroupAssignment": { - "title": "Group assignment", - "type": "object", - "properties": { - "groupId": { - "allOf": [ - { - "type": "string", - "format": "uuid", - "example": "60d2fa12-8a04-11ee-b9d1-0242ac120002", - "description": "Unique identifier for the group." - }, - { - "description": "Unique identifier of the group you want to assign the company to." - } - ] - } - } - } - }, - "examples": [ - { - "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", - "name": "string", - "platform": "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", - "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" - } - ], - "groups": [ - { - "id": "d7a6c4b4-dc87-45f6-b803-62f466398680" - } - ] - } - ] - }, - "CompanySyncStatus": { - "title": "Company sync status", - "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": { - "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": { - "type": "string", - "description": "Text status of the sync.", - "example": "Completed", - "nullable": true - }, - "errorMessage": { - "type": "string", - "description": "Error message of the sync.", - "nullable": true - }, - "syncExceptionMessage": { - "type": "string", - "description": "Exception message of the sync.", - "nullable": true - }, - "syncUtc": { - "$ref": "#/components/schemas/Company/properties/created", - "description": "Datetime of the sync.", - "nullable": true - }, - "dataPushed": { - "type": "boolean", - "description": "Boolean of whether the sync resulted in data being pushed." - } - } - }, - "ConfigAccount": { - "x-internal": true, - "title": "Account configuration", - "type": "object", - "description": "G/L account object for configuration.", - "properties": { - "labelText": { - "type": "string", - "nullable": true, - "description": "Label text for sales configuration section." - }, - "descriptionText": { - "type": "string", - "nullable": true, - "description": "Descriprtive text for sales configuration section." - }, - "selectedAccountId": { - "type": "string", - "nullable": true, - "description": "Selected account id from the list of available accounts." - }, - "required": { - "type": "boolean", - "description": "Required section to be configured for sync." - }, - "accountOptions": { - "type": "array", - "description": "Object containing account options.", - "items": { - "$ref": "#/components/schemas/AccountOption" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "Configuration": { - "title": "Configuration", - "type": "object", - "properties": { - "sales": { - "$ref": "#/components/schemas/Sales" - }, - "payments": { - "$ref": "#/components/schemas/Payments" - }, - "newPayments": { - "$ref": "#/components/schemas/NewPayments" - }, - "fees": { - "$ref": "#/components/schemas/Fees" - } - }, - "additionalProperties": false - }, - "Connection": { - "title": "Connection", - "description": "A connection represents a [company's](https://docs.codat.io/sync-for-sync-for-commerce-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", - "format": "uuid", - "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": { - "$ref": "#/components/schemas/Branding/properties/sourceId" - }, - "sourceType": { - "$ref": "#/components/schemas/Integration/definitions/sourceType" - }, - "platformName": { - "type": "string", - "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/Company/properties/created" - }, - "created": { - "$ref": "#/components/schemas/Company/properties/created" - }, - "dataConnectionErrors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Connection/definitions/dataConnectionError" - } - }, - "connectionInfo": { - "type": "object", - "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 error." - }, - "statusText": { - "type": "string", - "description": "A non-numeric status code/text." - }, - "errorMessage": { - "type": "string", - "description": "A brief message about the error." - }, - "erroredOnUtc": { - "$ref": "#/components/schemas/Company/properties/created" - } - } - }, - "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" - } - ] - }, - "CreateCompany": { - "title": "Create 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/Company/properties/description" - }, - "groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Company/properties/groups/items" - }, - "description": "Reference to the groups that the company is assigned to." - } - }, - "required": [ - "name" - ] - }, - "Customer": { - "title": "Customer", - "x-internal": true, - "type": "object", - "properties": { - "selectedCustomerId": { - "type": "string", - "nullable": true, - "description": "Selected customer id from the list of customer records on the accounting software." - }, - "customerOptions": { - "type": "array", - "description": "List of customer options from the list of customer records on the accounting software.", - "items": { - "$ref": "#/components/schemas/Option" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "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", - "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": { - "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", - "nullable": true, - "description": "Name of validator." - } - } - } - } - }, - "Fees": { - "title": "Fees", - "x-internal": true, - "type": "object", - "properties": { - "feesSupplier": { - "$ref": "#/components/schemas/FeesSupplier" - }, - "syncFees": { - "type": "boolean", - "description": "Boolean indicator to enable syncing fees." - }, - "accounts": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ConfigAccount" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "FeesSupplier": { - "x-internal": true, - "title": "Supplier fees", - "type": "object", - "properties": { - "selectedSupplierId": { - "type": "string", - "nullable": true, - "description": "Selected supplier id from the list of supplier records on the accounting software." - }, - "supplierOptions": { - "type": "array", - "description": "List of supplier options from the list of supplier records on the accounting software.", - "items": { - "$ref": "#/components/schemas/Option" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "Grouping": { - "title": "Grouping", - "x-internal": true, - "type": "object", - "properties": { - "groupingPeriod": { - "$ref": "#/components/schemas/GroupingPeriod" - }, - "groupingLevels": { - "$ref": "#/components/schemas/GroupingLevels" - } - }, - "additionalProperties": false - }, - "GroupingLevels": { - "x-internal": true, - "title": "Grouping levels", - "type": "object", - "properties": { - "invoiceLevel": { - "$ref": "#/components/schemas/InvoiceLevelSelection" - }, - "invoiceLineLevel": { - "$ref": "#/components/schemas/InvoiceLineLevelSelection" - } - }, - "additionalProperties": false - }, - "GroupingPeriod": { - "x-internal": true, - "title": "Grouping period", - "type": "object", - "properties": { - "selectedGroupingPeriod": { - "type": "string", - "nullable": true, - "description": "Grouping period i.e. Daily sales." - }, - "groupingPeriodOptions": { - "type": "array", - "description": "Array of grouping period options.", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "Integration": { - "title": "Integration", - "description": "An integration that Codat supports", - "examples": [ - { - "key": "gbol", - "logoUrl": "http://example.com", - "name": "Xero", - "enabled": true, - "sourceId": "accounting", - "sourceType": "8193a927-ab7a-45a3-9dc2-d357a4932dfe", - "integrationId": "497a18ca-284e-40c0-985d-f72be35d468e", - "isOfflineConnector": true, - "isBeta": true, - "dataProvidedBy": "string", - "datatypeFeatures": [ - { - "datatype": "invoices", - "supportedFeatures": [ - { - "featureType": "get", - "featureState": "release" - } - ] - } - ] - } - ], - "type": "object", - "properties": { - "key": { - "$ref": "#/components/parameters/platformKey/schema" - }, - "logoUrl": { - "type": "string", - "format": "uri", - "description": "Static url for integration's logo." - }, - "name": { - "type": "string", - "example": "Xero", - "description": "Name of integration." - }, - "enabled": { - "type": "boolean", - "description": "Whether this integration is enabled for your customers to use." - }, - "sourceId": { - "$ref": "#/components/schemas/Branding/properties/sourceId" - }, - "sourceType": { - "$ref": "#/components/schemas/Integration/definitions/sourceType" - }, - "integrationId": { - "$ref": "#/components/schemas/Connection/properties/integrationId" - }, - "isOfflineConnector": { - "type": "boolean", - "description": "`True` if the integration is to an application installed and run locally on an SMBs computer." - }, - "isBeta": { - "type": "boolean", - "description": "`True` if the integration is currently in beta release." - }, - "dataProvidedBy": { - "type": "string", - "description": "The name of the data provider." - }, - "datatypeFeatures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Integration/definitions/dataTypeFeature" - } - } - }, - "required": [ - "key", - "logoUrl", - "name", - "enabled" - ], - "definitions": { - "sourceType": { - "title": "Source Type", - "description": "The type of platform of the connection.", - "type": "string", - "enum": [ - "Accounting", - "Banking", - "BankFeed", - "Commerce", - "Expense", - "Other", - "Unknown" - ], - "example": "Accounting" - }, - "dataTypeFeature": { - "title": "Data type feature", - "description": "Describes support for a given datatype and associated operations", - "type": "object", - "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" - }, - "supportedFeatures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Integration/definitions/supportedFeature" - } - } - }, - "required": [ - "datatype", - "supportedFeatures" - ], - "examples": [ - { - "datatype": "invoices", - "supportedFeatures": [ - { - "featureType": "Get", - "featureState": "Release" - } - ] - } - ] - }, - "supportedFeature": { - "type": "object", - "x-internal": true, - "properties": { - "featureType": { - "$ref": "#/components/schemas/Integration/definitions/featureType" - }, - "featureState": { - "$ref": "#/components/schemas/Integration/definitions/featureState" - } - }, - "required": [ - "featureType", - "featureState" - ] - }, - "featureState": { - "title": "Feature state", - "type": "string", - "example": "Release", - "description": "The current release state of the feature.", - "enum": [ - "Release", - "Alpha", - "Beta", - "Deprecated", - "NotSupported", - "NotImplemented" - ] - }, - "featureType": { - "type": "string", - "x-internal": true, - "description": "The type of feature.", - "enum": [ - "Get", - "Post", - "Categorization", - "Delete", - "Put", - "GetAsPdf", - "DownloadAttachment", - "GetAttachment", - "GetAttachments", - "UploadAttachment" - ], - "example": "Get" - } - } - }, - "Integrations": { - "title": "Integrations", - "x-internal": true, - "allOf": [ - { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Integration" - } - } - } - }, - { - "$ref": "#/components/schemas/PagingInfo" - } - ] - }, - "InvoiceLevelSelection": { - "x-internal": true, - "title": "Invoice level selection", - "type": "object", - "properties": { - "selectedGroupByOptions": { - "type": "array", - "description": "Selected array of grouping options.", - "items": { - "type": "string" - }, - "nullable": true - }, - "groupByOptions": { - "type": "array", - "description": "Options for grouping sales.", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "InvoiceLineLevelSelection": { - "x-internal": true, - "title": "Invoice line level selection", - "type": "object", - "properties": { - "selectedGroupByOptions": { - "type": "array", - "description": "Invoice line level selection.", - "items": { - "type": "string" - }, - "nullable": true - }, - "groupByOptions": { - "type": "array", - "description": "Options for grouping on invoice lines.", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "InvoiceStatus": { - "x-internal": true, - "title": "Invoice status", - "type": "object", - "properties": { - "selectedInvoiceStatus": { - "type": "string", - "nullable": true, - "description": "Selected option for invoice status for invoice to be synced.", - "example": "Submitted" - }, - "invoiceStatusOptions": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true, - "description": "Options for invoice statuses." - } - }, - "additionalProperties": false - }, - "Localization": { - "title": "Localization", - "x-internal": true, - "type": "object", - "properties": { - "text": { - "type": "string", - "description": "Value of the property.", - "nullable": true - }, - "required": { - "type": "boolean", - "description": "`True` if required." - } - } - }, - "LocalizationInfo": { - "title": "Localization info", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/Localization" - } - }, - "NewPayments": { - "x-internal": true, - "title": "New payments", - "type": "object", - "properties": { - "syncPayments": { - "type": "boolean", - "description": "Boolean indicator for syncing payments." - }, - "accounts": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ConfigAccount" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "NewTaxRates": { - "x-internal": true, - "title": "New tax rates", - "type": "object", - "properties": { - "accountingTaxRateOptions": { - "type": "array", - "description": "Array of accounting tax rate options.", - "items": { - "$ref": "#/components/schemas/Option" - }, - "nullable": true - }, - "commerceTaxRateOptions": { - "type": "array", - "description": "Array of tax component options.", - "items": { - "$ref": "#/components/schemas/Option" - }, - "nullable": true - }, - "taxRateMappings": { - "type": "array", - "description": "Array of tax component to rate mapppings.", - "items": { - "$ref": "#/components/schemas/TaxRateMapping" - }, - "nullable": true - }, - "selectedDefaultZeroTaxRateId": { - "type": "string", - "description": "Default tax rate selected for sync.", - "nullable": true - }, - "defaultZeroTaxRateOptions": { - "type": "array", - "description": "Default zero tax rate selected for sync.", - "items": { - "$ref": "#/components/schemas/Option" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "Option": { - "title": "Option", - "x-internal": true, - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name value of the option.", - "nullable": true - }, - "id": { - "type": "string", - "description": "Unique identifier for the option." - } - }, - "additionalProperties": false - }, - "Order": { - "type": "object", - "title": "Order", - "description": "Order is representation of sale transaction on a POS system", - "properties": { - "id": { - "type": "string", - "format": "uuid" - }, - "orderNumber": { - "type": "string" - }, - "country": { - "type": "string" - }, - "currency": { - "type": "string" - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "totalAmount": { - "type": "number", - "format": "decimal" - }, - "totalRefund": { - "type": "number", - "format": "decimal" - }, - "totalTaxAmount": { - "type": "number", - "format": "decimal" - }, - "totalDiscount": { - "type": "number", - "format": "decimal" - }, - "totalGratuity": { - "type": "number", - "format": "decimal" - }, - "orderLineItems": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderLineItem" - } - }, - "payments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Payment" - } - }, - "serviceCharges": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceCharge" - } - }, - "locationRef": { - "$ref": "#/components/schemas/LocationRef" - }, - "customerRef": { - "type": "object", - "properties": { - "id": null, - "type": "string", - "format": "uuid" - }, - "name": { - "type": "string" - }, - "modifiedDate": { - "type": "string", - "format": "date-time" - }, - "sourceModifiedDate": { - "type": "string", - "format": "date-time" - } - } - }, - "required": [ - "id", - "orderNumber", - "country", - "currency", - "createdDate", - "totalAmount", - "totalRefund", - "totalTaxAmount", - "totalDiscount", - "totalGratuity", - "orderLineItems", - "payments", - "serviceCharges", - "locationRef", - "customerRef", - "modifiedDate", - "sourceModifiedDate" - ] - }, - "OrderLineItem": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "uuid" - }, - "quantity": { - "type": "integer" - }, - "taxPercentage": { - "type": "integer" - }, - "totalAmount": { - "type": "number", - "format": "decimal" - }, - "totalTaxAmount": { - "type": "number", - "format": "decimal" - }, - "unitPrice": { - "type": "number", - "format": "decimal" - }, - "taxes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tax" - } - }, - "productRef": { - "$ref": "#/components/schemas/ProductRef" - }, - "productVariantRef": { - "$ref": "#/components/schemas/ProductVariantRef" - }, - "discountAllocations": { - "type": "array", - "items": {} - } - } - }, - "Tax": { - "type": "object", - "properties": { - "taxComponentRef": { - "$ref": "#/components/schemas/TaxComponentRef" - }, - "taxAmount": { - "type": "number", - "format": "decimal" - } - } - }, - "TaxComponentRef": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - } - }, - "TaxComponent": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the tax component." - }, - "name": { - "type": "string", - "description": "The name of the tax component." - }, - "rate": { - "type": "number", - "format": "decimal", - "description": "The rate of the tax component.", - "minimum": 0, - "maximum": 1 - }, - "isCompound": { - "type": "boolean", - "description": "Indicates whether the tax is compound (applies to a base amount including other taxes)." - }, - "modifiedDate": { - "type": "string", - "format": "date-time", - "description": "The date and time when the tax component was last modified." - }, - "sourceModifiedDate": { - "type": "string", - "format": "date-time", - "description": "The date and time when the source of the tax component was last modified." - } - }, - "required": [ - "id", - "name", - "rate", - "isCompound", - "modifiedDate", - "sourceModifiedDate" - ] - }, - "ProductRef": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "uuid" - }, - "name": { - "type": "string" - } - } - }, - "ProductVariantRef": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "uuid" - }, - "name": { - "type": "string" - } - } - }, - "Product": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the product." - }, - "categorization": { - "type": "string", - "description": "The categorization of the product." - }, - "name": { - "type": "string", - "description": "The name of the product." - }, - "description": { - "type": "string", - "description": "The description of the product." - }, - "productCategoryRefs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "References to the categories this product belongs to." - }, - "isGiftCard": { - "type": "boolean", - "description": "Indicates whether the product is a gift card." - }, - "variants": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the variant." - }, - "name": { - "type": "string", - "description": "The name of the variant." - }, - "quantity": { - "type": "integer", - "description": "The quantity of the variant." - }, - "isTaxEnabled": { - "type": "boolean", - "description": "Indicates whether taxes are enabled for this variant." - }, - "sku": { - "type": "string", - "description": "The stock keeping unit (SKU) of the variant." - }, - "vatPercentage": { - "type": "number", - "format": "decimal", - "description": "The VAT percentage applicable to the variant." - }, - "prices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "currency": { - "type": "string", - "description": "The currency in which the price is defined." - }, - "unitPrice": { - "type": "number", - "format": "decimal", - "description": "The unit price of the variant." - } - } - }, - "description": "The prices of the variant in different currencies." - }, - "inventory": { - "type": "object", - "properties": { - "totalQuantity": { - "type": "integer", - "description": "The total quantity of the variant in inventory." - }, - "locations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Location" - }, - "description": "The locations where this variant is stored." - } - }, - "description": "Information about the inventory of the variant." - }, - "shippingRequired": { - "type": "boolean", - "description": "Indicates whether shipping is required for this variant." - }, - "createdDate": { - "type": "string", - "format": "date-time", - "description": "The date and time when the variant was created." - } - }, - "description": "The variants of the product." - } - }, - "createdDate": { - "type": "string", - "format": "date-time", - "description": "The date and time when the product was created." - }, - "modifiedDate": { - "type": "string", - "format": "date-time", - "description": "The date and time when the product was last modified." - }, - "sourceModifiedDate": { - "type": "string", - "format": "date-time", - "description": "The date and time when the source of the product was last modified." - }, - "status": { - "type": "string", - "description": "The status of the product (e.g., \"Published\")." - } - }, - "required": [ - "id", - "categorization", - "name", - "description", - "isGiftCard", - "variants", - "createdDate", - "modifiedDate", - "sourceModifiedDate", - "status" - ] - }, - "Payment": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "uuid" - }, - "amount": { - "type": "number", - "format": "decimal" - }, - "currency": { - "type": "string" - }, - "type": { - "type": "string" - }, - "status": { - "type": "string" - }, - "dueDate": { - "type": "string", - "format": "date-time" - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "modifiedDate": { - "type": "string", - "format": "date-time" - } - } - }, - "ServiceCharge": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "totalAmount": { - "type": "number", - "format": "decimal" - }, - "taxPercentage": { - "type": "integer" - }, - "taxAmount": { - "type": "number", - "format": "decimal" - }, - "taxes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tax" - } - }, - "quantity": { - "type": "integer" - }, - "type": { - "type": "string" - } - } - }, - "LocationRef": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "uuid" - } - } - }, - "Location": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the location." - }, - "name": { - "type": "string", - "description": "The name of the location." - }, - "address": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The type of address (e.g., \"Inventory\")." - }, - "line1": { - "type": "string", - "description": "The first line of the address." - }, - "city": { - "type": "string", - "description": "The city of the address." - }, - "region": { - "type": "string", - "description": "The region or state of the address." - }, - "country": { - "type": "string", - "description": "The country of the address in ISO 3166-1 alpha-2 format." - }, - "postalCode": { - "type": "string", - "description": "The postal code of the address." - } - }, - "required": [ - "type", - "line1", - "city", - "country", - "postalCode" - ] - }, - "modifiedDate": { - "type": "string", - "format": "date-time", - "description": "The date and time when the location was last modified." - } - }, - "required": [ - "id", - "name", - "address", - "modifiedDate" - ] - }, - "Transaction": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the transaction." - }, - "totalAmount": { - "type": "number", - "format": "decimal", - "description": "The total amount of the transaction." - }, - "currency": { - "type": "string", - "description": "The currency of the transaction amount." - }, - "type": { - "type": "string", - "description": "The type of transaction (e.g., \"Refund\")." - }, - "createdDate": { - "type": "string", - "format": "date-time", - "description": "The date and time when the transaction was created." - }, - "modifiedDate": { - "type": "string", - "format": "date-time", - "description": "The date and time when the transaction was last modified." - } - }, - "required": [ - "id", - "totalAmount", - "currency", - "type", - "createdDate", - "modifiedDate" - ] - }, - "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": { - "type": "integer", - "description": "Total number of items." - }, - "_links": { - "$ref": "#/components/schemas/PagingInfo/definitions/links" - } - }, - "definitions": { - "links": { - "title": "Hal Links", - "type": "object", - "required": [ - "self", - "current" - ], - "properties": { - "self": { - "$ref": "#/components/schemas/PagingInfo/definitions/halRef" - }, - "current": { - "$ref": "#/components/schemas/PagingInfo/definitions/halRef" - }, - "next": { - "$ref": "#/components/schemas/PagingInfo/definitions/halRef" - }, - "previous": { - "$ref": "#/components/schemas/PagingInfo/definitions/halRef" - } - }, - "examples": [ - { - "self": { - "href": "/companies/{id}/data/{dataType}" - }, - "current": { - "href": "/companies/{id}/data/{dataType}?page=1&pageSize=10" - } - } - ] - }, - "halRef": { - "title": "Hypertext reference", - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-reference", - "description": "Uri hypertext reference." - } - } - } - }, - "required": [ - "pageNumber", - "pageSize", - "totalResults", - "_links" - ], - "examples": [ - { - "_links": { - "pageNumber": 1, - "pageSize": 10, - "totalResults": 1, - "self": { - "href": "/companies/{id}/data/{dataType}" - }, - "current": { - "href": "/companies/{id}/data/{dataType}?page=1&pageSize=10" - } - } - } - ] - }, - "Payments": { - "title": "Payments", - "x-internal": true, - "type": "object", - "properties": { - "syncPayments": { - "type": "boolean", - "description": "Boolean indicator for syncing sales." - }, - "accounts": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ConfigAccount" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "PaymentMethod": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the payment method." - }, - "name": { - "type": "string", - "description": "The name of the payment method." - }, - "status": { - "type": "string", - "description": "The status of the payment method." - }, - "modifiedDate": { - "type": "string", - "format": "date-time", - "description": "The date and time when the payment method was last modified." - } - }, - "required": [ - "id", - "name", - "status", - "modifiedDate" - ] - }, - "Sales": { - "title": "Sales", - "x-internal": true, - "type": "object", - "properties": { - "syncSales": { - "type": "boolean", - "description": "Boolean indicator for syncing sales." - }, - "accounts": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ConfigAccount" - }, - "nullable": true - }, - "invoiceStatus": { - "$ref": "#/components/schemas/InvoiceStatus" - }, - "salesCustomer": { - "$ref": "#/components/schemas/Customer" - }, - "taxRates": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TaxRateAmount" - }, - "nullable": true - }, - "newTaxRates": { - "$ref": "#/components/schemas/NewTaxRates" - }, - "grouping": { - "$ref": "#/components/schemas/Grouping" - } - }, - "additionalProperties": false - }, - "SyncConnectionDeletedWebhook": { - "title": "Sync connection deleted webhook", - "description": "A Sync for Commerce connection is deleted.", - "x-internal": true, - "type": "object", - "properties": { - "ClientId": { - "$ref": "#/components/parameters/clientId/schema" - }, - "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." - }, - "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": { - "type": "string", - "description": "A human readable message about the webhook." - } - }, - "examples": [ - { - "ClientId": "bae71d36-ff47-420a-b4a6-f8c9ddf41140", - "ClientName": "Bank of Dave", - "CompanyId": "8a210b68-6988-11ed-a1eb-0242ac120002", - "RuleId": "70af3071-65d9-4ec3-b3cb-5283e8d55dac", - "RuleType": "Sync Connection Deleted", - "AlertId": "a9367074-b5c3-42c4-9be4-be129f43577e", - "Message": "Sync connection for company 8a210b68-6988-11ed-a1eb-0242ac120002 deleted" - }, - { - "ClientId": "bae71d36-ff47-420a-b4a6-f8c9ddf41140", - "ClientName": "Bank of Dave", - "CompanyId": "8a210b68-6988-11ed-a1eb-0242ac120002", - "RuleId": "70af3071-65d9-4ec3-b3cb-5283e8d55dac", - "RuleType": "Sync Connection Deleted", - "AlertId": "a9367074-b5c3-42c4-9be4-be129f43577e", - "Message": "Sync connection for company Tesco (8a210b68-6988-11ed-a1eb-0242ac120002) deleted" - } - ] - }, - "SyncFlowUrl": { - "title": "Sync flow url", - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "Sync flow URL.", - "example": "https://sync-flow-integration.codat.io/57b6fad9-e3ca-447b-89db-e4ffa21e6ef3/lqai/mqjo/start?otp=836415" - } - } - }, - "SyncRange": { - "x-internal": true, - "title": "Data range", - "type": "object", - "required": [ - "dateRange" - ], - "properties": { - "dateRange": { - "type": "object", - "properties": { - "start": { - "$ref": "#/components/schemas/Company/properties/created", - "description": "Start date of the Sync." - }, - "finish": { - "$ref": "#/components/schemas/Company/properties/created", - "description": "Finish date of the Sync." - } - }, - "required": [ - "start", - "finish" - ] - } - } - }, - "SyncStatus": { - "title": "Sync status", - "description": "The status of syncing for a company and its connections.", - "type": "object", - "x-examples": { - "4200": { - "companyId": "782575ae-c4f8-4a0b-8041-4ffa193aaab7", - "commerceSyncId": "78ab9424-bb29-47d2-b808-4c6e651efd6d", - "syncId": "afe076de-4d1b-44d8-8b4a-717463af00c5", - "syncStatusCode": "4200,", - "syncStatus": "MapCoreError", - "errorMessage": "Cannot match the tax id '23vwUg7OhGIZvEUHdee7fw' to a mapped account on the accounting software for journal entry.", - "syncExceptionMessage": "Cannot match the tax id '23vwUg7OhGIZvEUHdee7fw' to a mapped account on the accounting software for journal entry.", - "syncUtc": "2023-04-12T10:52:54.5359678Z", - "dataPushed": false, - "dataConnections": [ - { - "id": "9bd6cb3b-06b3-4944-91e6-7dffbf5846a2", - "integrationId": "3485371f-930d-4614-997a-5dfa2cec546c", - "integrationKey": "lqai", - "sourceId": "c4f9fa2d-cb83-4a3f-9b36-45b4af190e81", - "platformName": "Partner Commerce", - "linkUrl": "https://link-api.codat.io/companies/0bfd6552-7712-45bb-8c67-c4eabd7ec78e/connections/248f3e4e-8b71-44a1-b091-69ac25b86e6c/start", - "status": "Linked", - "lastSync": "2023-06-14T11:58:52.2695708Z", - "created": "2023-06-14T11:39:00Z", - "sourceType": "Commerce", - "dataConnectionErrors": [] - }, - { - "id": "ff8f694d-1a8f-4b00-99d7-26173aff34eb", - "integrationId": "adeb7fe9-4c64-4848-9e0d-175317876b6f", - "integrationKey": "qhyg", - "sourceId": "afe268b1-289e-4496-b890-3d65e9ce1acb", - "platformName": "QuickBooks Online", - "linkUrl": "https://link-api.codat.io/companies/0bfd6552-7712-45bb-8c67-c4eabd7ec78e/connections/1486b3db-f752-467a-9d56-66dd57cc754d/start", - "status": "Linked", - "lastSync": "2023-08-10T17:50:14.0900922Z", - "created": "2023-06-14T11:39:00Z", - "sourceType": "Accounting", - "dataConnectionErrors": [] - } - ] - } - }, - "properties": { - "companyId": [ - { - "$ref": "#/components/parameters/companyId" - } - ], - "commerceSyncId": { - "type": "string", - "format": "guid", - "description": "Unique identifier for the sync in Codat.", - "example": "8d0a044e-b683-4fc9-bd0d-bfb2ca5731b7" - }, - "syncId": { - "type": "string", - "format": "uuid", - "example": "730dcf2e-3afc-4d83-bb90-9f4b95dddf68", - "description": "Unique identifier for the sync in Codat." - }, - "syncStatusCode": { - "type": "integer", - "format": "int32", - "description": "Numerical status code sync of the company data.", - "example": 4000 - }, - "syncStatus": { - "type": "string", - "nullable": true, - "description": "Status of the sync of the company data. This is linked to status code.", - "example": "ValidateError, Pending" - }, - "errorMessage": { - "type": "string", - "nullable": true, - "description": "Friendly error message for the sync operation.", - "example": "Customer 3b9bf2ed-a618-4af2-80f2-f2b57fddc748 is not in an Active state. (Archived)" - }, - "syncExceptionMessage": { - "type": "string", - "nullable": true, - "description": "Exception message for the sync operation.", - "example": "Customer 3b9bf2ed-a618-4af2-80f2-f2b57fddc748 is not in an Active state. (Archived)" - }, - "syncUtc": { - "$ref": "#/components/schemas/Company/properties/created", - "description": "UTC DateTime for the Sync.", - "nullable": true - }, - "dataPushed": { - "type": "boolean", - "description": "Boolean indicator for data being pushed during a sync operation.", - "example": true - }, - "dataConnections": { - "type": "array", - "description": "Array of containing objects data connection information for the company.", - "items": { - "$ref": "#/components/schemas/Connection" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "SyncSummary": { - "title": "Sync summary", - "type": "object", - "properties": { - "syncDateRangeUtc": { - "type": "object", - "properties": { - "start": { - "$ref": "#/components/schemas/Company/properties/created", - "description": "Start date of the Sync." - }, - "finish": { - "$ref": "#/components/schemas/Company/properties/created", - "description": "Finish date of the Sync." - } - }, - "additionalProperties": false - }, - "companyId": { - "type": "string", - "format": "guid", - "description": "Unique identifier for your SMB in Codat.", - "example": "f4637ec9-9fc0-4a02-8df0-c90d6dc86208" - }, - "commerceSyncId": { - "type": "string", - "format": "guid", - "description": "Unique identifier for the sync in Codat.", - "example": "8d0a044e-b683-4fc9-bd0d-bfb2ca5731b7" - }, - "syncStatusCode": { - "type": "integer", - "format": "int32", - "description": "Numerical status code sync of the company data.", - "example": 4000 - }, - "syncStatus": { - "type": "string", - "nullable": true, - "description": "Status of the sync of the company data. This is linked to status code.", - "example": "ValidateError, Pending" - }, - "errorMessage": { - "type": "string", - "nullable": true, - "description": "Friendly error message for the sync operation.", - "example": "Customer 3b9bf2ed-a618-4af2-80f2-f2b57fddc748 is not in an Active state. (Archived)" - }, - "syncExceptionMessage": { - "type": "string", - "nullable": true, - "description": "Exception message for the sync operation.", - "example": "Customer 3b9bf2ed-a618-4af2-80f2-f2b57fddc748 is not in an Active state. (Archived)" - }, - "syncUtc": { - "$ref": "#/components/schemas/Company/properties/created", - "description": "UTC DateTime for the Sync.", - "nullable": true - }, - "dataConnections": { - "type": "array", - "description": "Array of containing objects data connection information for the company.", - "items": { - "$ref": "#/components/schemas/Connection" - }, - "nullable": true - }, - "dataPushed": { - "type": "boolean", - "description": "Boolean indicator for data being pushed during a sync operation.", - "example": true - } - }, - "additionalProperties": false - }, - "SyncToLatestArgs": { - "title": "Sync To Latest Args", - "x-internal": true, - "type": "object", - "properties": { - "syncTo": { - "$ref": "#/components/schemas/Company/properties/created", - "description": "The DateTime, upto which Sync will run up to starting from the previous successful sync", - "nullable": true - } - } - }, - "TaxRateAmount": { - "x-internal": true, - "title": "Tax rate amount", - "type": "object", - "properties": { - "selectedTaxRateId": { - "type": "string", - "description": "Selected tax rate id from the list of tax rates on the accounting software.", - "nullable": true - }, - "taxRateOptions": { - "type": "array", - "description": "Array of tax rate options object.", - "items": { - "$ref": "#/components/schemas/Option" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "TaxRateMapping": { - "x-internal": true, - "title": "Tax rate mapping", - "type": "object", - "properties": { - "selectedCommerceTaxRateIds": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Selected tax component id from the list of tax components on the commerce software.", - "nullable": true - }, - "selectedAccountingTaxRateId": { - "type": "string", - "nullable": true, - "description": "Selected tax rate id from the list of tax rates on the accounting software." - } - }, - "additionalProperties": false - }, - "UpdateConnection": { - "title": "Update connection", - "x-internal": true, - "type": "object", - "properties": { - "status": { - "$ref": "#/components/schemas/Connection/definitions/dataConnectionStatus", - "description": "The current authorization status of the data connection.", - "nullable": true - } - }, - "additionalProperties": false - }, - "VisibleAccounts": { - "title": "Visible accounts", - "type": "object", - "properties": { - "visibleAccounts": { - "description": "Visible accounts on sync flow.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - } - } - }, - "responses": { - "BadRequest": { - "description": "The request made is not valid.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorMessage" - }, - "examples": { - "Malformed query": { - "value": { - "statusCode": 400, - "service": "PublicApi", - "error": "Error processing request - not valid.", - "correlationId": "bc997528a9d7abb9161ef45f05d38599", - "canBeRetried": "Unknown", - "detailedErrorCode": 0 - } - } - } - } - } - }, - "Malformed-Query": { - "description": "Your `query` parameter was not correctly formed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorMessage" - }, - "examples": { - "Malformed query": { - "value": { - "statusCode": 400, - "service": "ClientsApi", - "error": "Error parsing query - Malformed query.", - "correlationId": "bc997528a9d7abb9161ef45f05d38599", - "canBeRetried": "Unknown", - "detailedErrorCode": 0 - } - }, - "Unresolved property": { - "value": { - "statusCode": 400, - "service": "PullApi", - "error": "Error parsing query - Could not resolve property isCompleted on Dataset", - "correlationId": "98457fb9956b7f9b4b2fd4f6e23bb5c8", - "canBeRetried": "Unknown", - "detailedErrorCode": 0 - } - } - } - } - } - }, - "Unauthorized": { - "description": "Your API request was not properly authorized.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorMessage" - }, - "examples": { - "Unauthorized": { - "value": { - "statusCode": 401, - "service": "PublicApi", - "error": "Unauthorized", - "correlationId": "7eb40d6b415d7bcd99ce658268284056", - "canBeRetried": "Unknown", - "detailedErrorCode": 0 - } - } - } - } - } - }, - "Payment-Required": { - "description": "An account limit has been exceeded. The type of limit is described in the error property:\n\n- You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request.\n- The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan.\n- Your Free account is older than 365 days and has expired. Contact support@codat.io.\n", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorMessage" - }, - "examples": { - "Conflict": { - "value": { - "statusCode": 429, - "service": "PublicApi", - "error": "You have exceeded the 50-company limit that applies to a Free plan. We recommend that you delete any companies you no longer need and retry the request.", - "correlationId": "bc997528a9d7abb9161ef45f05d38599", - "canBeRetried": "Unknown", - "detailedErrorCode": 0 - } - } - } - } - } - }, - "Forbidden": { - "description": "You are using an outdated API key or a key not associated with that resource.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorMessage" - }, - "examples": { - "Conflict": { - "value": { - "statusCode": 403, - "service": "PublicApi", - "error": "You are using an outdated API key or a key not associated with that resource.", - "correlationId": "bc997528a9d7abb9161ef45f05d38599", - "canBeRetried": "Unknown", - "detailedErrorCode": 0 - } - } - } - } - } - }, - "Not-Found": { - "description": "One or more of the resources you referenced could not be found.\nThis might be because your company or data connection id is wrong, or was already deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorMessage" - }, - "examples": { - "Data connection not found": { - "value": { - "statusCode": 404, - "service": "PublicApi", - "error": "Data connection a22dd66b-564a-4832-9b37-7b3ce4aeb7de not found", - "correlationId": "8fa2b5f4794970a4ee73758f612e8df0", - "canBeRetried": "Unknown", - "detailedErrorCode": 0 - } - }, - "Company not found": { - "value": { - "statusCode": 404, - "service": "ClientsApi", - "error": "No company was found with ID 846ed55c-974b-4392-a1f1-87b6fdbf3c5e", - "correlationId": "0a40c2f31fc8f992fb88b0853e4166f3", - "canBeRetried": "Unknown", - "detailedErrorCode": 0 - } - }, - "No data available": { - "value": { - "statusCode": 404, - "service": "PublicApi", - "error": "No data available for accounts for ID e5889b459f544926ac5b8e6756df2s", - "correlationId": "0a40c2f31fc8f992fb88b0853e4166f3", - "canBeRetried": "Unknown", - "detailedErrorCode": 0 - } - } - } - } - } - }, - "Conflict": { - "description": "The data type's dataset has not been requested or is still syncing.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorMessage" - }, - "examples": { - "Conflict": { - "value": { - "statusCode": 409, - "service": "PublicApi", - "error": "The data set has not been requested.", - "correlationId": "bc997528a9d7abb9161ef45f05d38599", - "canBeRetried": "Unknown", - "detailedErrorCode": 0 - } - } - } - } - } - }, - "Too-Many-Requests": { - "description": "Too many requests were made in a given amount of time. Wait a short period and then try again.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorMessage" - }, - "examples": { - "Conflict": { - "value": { - "statusCode": 429, - "service": "PublicApi", - "error": "You have made too many requests in a given amount of time; please retry later.", - "correlationId": "bc997528a9d7abb9161ef45f05d38599", - "canBeRetried": "Unknown", - "detailedErrorCode": 0 - } - } - } - } - } - }, - "Internal-Server-Error": { - "description": "There is a problem with our server. Please try again later.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorMessage" - }, - "examples": { - "Conflict": { - "value": { - "statusCode": 500, - "service": "PublicApi", - "error": "There is a problem with our server. Please try again later.", - "correlationId": "bc997528a9d7abb9161ef45f05d38599", - "canBeRetried": "Unknown", - "detailedErrorCode": 0 - } - } - } - } - } - }, - "Service-Unavailable": { - "description": "The Codat API is temporarily offline for maintenance. Please try again later.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorMessage" - }, - "examples": { - "Conflict": { - "value": { - "statusCode": 500, - "service": "PublicApi", - "error": "The Codat API is temporarily offline for maintenance. Please try again later.", - "correlationId": "bc997528a9d7abb9161ef45f05d38599", - "canBeRetried": "Unknown", - "detailedErrorCode": 0 - } - } - } - } - } - } - }, - "parameters": { - "clientId": { - "name": "clientId", - "in": "path", - "required": true, - "schema": { - "title": "Client ID", - "type": "string", - "format": "uuid", - "description": "Unique identifier for your client in Codat." - }, - "description": "Unique identifier for your client in Codat." - }, - "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." - }, - "page": { - "name": "page", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "minimum": 1, - "example": 1, - "default": 1 - }, - "description": "Page number. [Read more](https://docs.codat.io/using-the-api/paging)." - }, - "pageSize": { - "name": "pageSize", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 100, - "example": 100, - "minimum": 1, - "maximum": 5000 - }, - "description": "Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)." - }, - "query": { - "name": "query", - "in": "query", - "required": false, - "schema": { - "type": "string" - }, - "example": "-modifiedDate", - "description": "Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)." - }, - "orderBy": { - "name": "orderBy", - "in": "query", - "required": false, - "schema": { - "type": "string", - "example": "-modifiedDate" - }, - "description": "Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results)." - }, - "syncId": { - "name": "syncId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "example": "6fb40d5e-b13e-11ed-afa1-0242ac120002" - }, - "description": "Unique identifier for a sync." - }, - "platformKey": { - "name": "platformKey", - "in": "path", - "required": true, - "schema": { - "type": "string", - "minLength": 4, - "maxLength": 4, - "pattern": "[a-z]{4}", - "example": "gbol", - "description": "A unique 4-letter key to represent a platform in each integration. View [accounting](https://docs.codat.io/integrations/accounting/overview#platform-keys), [banking](https://docs.codat.io/integrations/banking/overview#platform-keys), and [commerce](https://docs.codat.io/integrations/commerce/overview#platform-keys) platform keys." - }, - "description": "A unique 4-letter key to represent a platform in each integration. View [accounting](https://docs.codat.io/integrations/accounting/overview#platform-keys), [banking](https://docs.codat.io/integrations/banking/overview#platform-keys), and [commerce](https://docs.codat.io/integrations/commerce/overview#platform-keys) platform keys." - }, - "locale": { - "name": "locale", - "in": "query", - "required": true, - "example": "en-us", - "schema": { - "type": "string", - "enum": [ - "en-us", - "fr-fr" - ] - }, - "description": "Localization identifier for English (US) or French." - } - }, - "securitySchemes": { - "auth_header": { - "name": "Authorization", - "description": "The word \"Basic\" followed by a space and your API key. [API keys](https://docs.codat.io/sync-for-sync-for-commerce-api#/schemas/apiKeys) are tokens used to control access to the API. You can get an API key via [the Codat Portal](https://app.codat.io/developers/api-keys), via [the API](https://docs.codat.io/codat-api#/api-keys/api-keys-list), or [read more](https://docs.codat.io/using-the-api/authentication) about authentication at Codat.", - "type": "apiKey", - "in": "header", - "x-speakeasy-example": "Basic BASE_64_ENCODED(API_KEY)" - } - } - } -}