Bank Feeds API icon

Bank Feeds API

Bank Feeds API enables your SMB users to set up bank feeds from accounts in your application to supported accounting platforms

COMMUNITYAPI KEY0 INSTALLS
OpenAPI Specificationv3.1
{
  "openapi": "3.1.0",
  "servers": [
    {
      "description": "Production",
      "url": "https://api.codat.io"
    }
  ],
  "info": {
    "contact": {
      "email": "support@codat.io",
      "name": "Codat"
    },
    "description": "Bank Feeds API enables your SMB users to set up bank feeds from accounts in your application to supported accounting platforms.\n\nA bank feed is a connection between a source bank account—in your application—and a target bank account in a supported accounting package.\n\n[Read more...](https://docs.codat.io/bank-feeds-api/overview)\n\n[See our OpenAPI spec](https://github.com/codatio/oas) ",
    "termsOfService": "https://www.codat.io/legals/",
    "title": "Bank Feeds API",
    "version": "2.1.0",
    "x-apisguru-categories": [
      "financial"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_static.codat.io_public_branding_codat-icon-blue.svg"
    },
    "x-origin": [
      {
        "format": "openapi",
        "url": "https://raw.githubusercontent.com/codatio/oas/main/json/Codat-Bank-Feeds.json",
        "version": "3.1"
      }
    ],
    "x-providerName": "codat.io",
    "x-serviceName": "bank-feeds"
  },
  "security": [
    {
      "auth_header": []
    }
  ],
  "tags": [
    {
      "description": "Bank feed bank accounts",
      "name": "Bank feed accounts"
    },
    {
      "description": "Bank feed bank accounts",
      "name": "Bank account transactions"
    }
  ],
  "paths": {
    "/companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts": {
      "get": {
        "description": "Get BankFeed BankAccounts for a single data source connected to a single company.",
        "operationId": "get-bank-feeds",
        "parameters": [
          {
            "$ref": "#/components/parameters/companyId"
          },
          {
            "$ref": "#/components/parameters/connectionId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankFeedAccounts"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "List bank feed bank accounts",
        "tags": [
          "Bank feed accounts"
        ]
      },
      "put": {
        "description": "Put BankFeed BankAccounts for a single data source connected to a single company.",
        "operationId": "create-bank-feed",
        "parameters": [
          {
            "$ref": "#/components/parameters/companyId"
          },
          {
            "$ref": "#/components/parameters/connectionId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BankFeedAccounts"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankFeedAccounts"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "Create bank feed bank accounts",
        "tags": [
          "Bank feed accounts"
        ]
      }
    },
    "/companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts/{accountId}": {
      "patch": {
        "description": "Update a single BankFeed BankAccount for a single data source connected to a single company.",
        "operationId": "update-bank-feed",
        "parameters": [
          {
            "$ref": "#/components/parameters/companyId"
          },
          {
            "$ref": "#/components/parameters/connectionId"
          },
          {
            "$ref": "#/components/parameters/accountId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BankFeedAccount"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankFeedAccount"
                },
                "x-speakeasy-usage-example": true
              }
            },
            "description": "Success"
          }
        },
        "summary": "Update bank feed bank account",
        "tags": [
          "Bank feed accounts"
        ]
      }
    },
    "/companies/{companyId}/connections/{connectionId}/data/bankAccounts/{accountId}/bankTransactions": {
      "get": {
        "description": "Gets bank transactions for a given bank account ID",
        "operationId": "list-bank-account-transactions",
        "parameters": [
          {
            "$ref": "#/components/parameters/companyId"
          },
          {
            "$ref": "#/components/parameters/connectionId"
          },
          {
            "$ref": "#/components/parameters/accountId"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/pageSize"
          },
          {
            "$ref": "#/components/parameters/query"
          },
          {
            "$ref": "#/components/parameters/orderBy"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankTransactionsResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "List bank transactions for bank account",
        "tags": [
          "Bank account transactions"
        ]
      }
    },
    "/companies/{companyId}/connections/{connectionId}/options/bankAccounts/{accountId}/bankTransactions": {
      "get": {
        "description": "Gets the options of pushing bank account transactions.",
        "operationId": "get-create-bank-account-model",
        "parameters": [
          {
            "$ref": "#/components/parameters/companyId"
          },
          {
            "$ref": "#/components/parameters/connectionId"
          },
          {
            "$ref": "#/components/parameters/accountId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PushOption"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "List push options for bank account bank transactions",
        "tags": [
          "Bank account transactions"
        ],
        "x-extension-1": null
      }
    },
    "/companies/{companyId}/connections/{connectionId}/push/bankAccounts/{accountId}/bankTransactions": {
      "post": {
        "description": "Posts bank transactions to the accounting package for a given company.\n\n> **Supported Integrations**\n> \n> Check out our [Knowledge UI](https://knowledge.codat.io/supported-features/accounting?view=tab-by-data-type&dataType=bankTransactions) for integrations that support POST methods.",
        "operationId": "create-bank-transactions",
        "parameters": [
          {
            "$ref": "#/components/parameters/companyId"
          },
          {
            "$ref": "#/components/parameters/connectionId"
          },
          {
            "$ref": "#/components/parameters/accountId"
          },
          {
            "in": "query",
            "name": "allowSyncOnPushComplete",
            "schema": {
              "default": true,
              "type": "boolean"
            },
            "x-stoplight": {
              "id": "kc8ehjqr6p02q"
            }
          },
          {
            "in": "query",
            "name": "timeoutInMinutes",
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "x-stoplight": {
              "id": "irz50qjbs3yef"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BankTransactions"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateBankTransactionsResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "summary": "Create bank transactions",
        "tags": [
          "Bank account transactions"
        ]
      }
    }
  },
  "components": {
    "parameters": {
      "accountId": {
        "description": "Unique identifier for an account",
        "in": "path",
        "name": "accountId",
        "required": true,
        "schema": {
          "example": "8a210b68-6988-11ed-a1eb-0242ac120002",
          "format": "uuid",
          "type": "string"
        }
      },
      "companyId": {
        "in": "path",
        "name": "companyId",
        "required": true,
        "schema": {
          "description": "Unique identifier for your SMB in Codat.",
          "example": "8a210b68-6988-11ed-a1eb-0242ac120002",
          "format": "uuid",
          "type": "string"
        }
      },
      "connectionId": {
        "in": "path",
        "name": "connectionId",
        "required": true,
        "schema": {
          "description": "Unique identifier for a company's data connection.",
          "example": "2e9d2c44-f675-40ba-8049-353bfcb5e171",
          "format": "uuid",
          "type": "string"
        }
      },
      "orderBy": {
        "description": "Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).",
        "in": "query",
        "name": "orderBy",
        "required": false,
        "schema": {
          "example": "-modifiedDate",
          "type": "string"
        },
        "x-stoplight": {
          "id": "4je9lwo02netu"
        }
      },
      "page": {
        "description": "Page number. [Read more](https://docs.codat.io/using-the-api/paging).",
        "in": "query",
        "name": "page",
        "required": true,
        "schema": {
          "default": 1,
          "example": 1,
          "format": "int32",
          "minimum": 0,
          "type": "integer"
        },
        "x-stoplight": {
          "id": "1318joqblpp4e"
        }
      },
      "pageSize": {
        "description": "Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging).",
        "in": "query",
        "name": "pageSize",
        "schema": {
          "default": 100,
          "example": 100,
          "format": "int32",
          "maximum": 5000,
          "minimum": 1,
          "type": "integer"
        },
        "x-stoplight": {
          "id": "s2ika6rltk5y6"
        }
      },
      "query": {
        "description": "Codat query string. [Read more](https://docs.codat.io/using-the-api/querying).",
        "in": "query",
        "name": "query",
        "required": false,
        "schema": {
          "type": "string"
        },
        "x-stoplight": {
          "id": "gupdb9kt30hfq"
        }
      }
    },
    "schemas": {
      "BankFeedAccount": {
        "additionalProperties": false,
        "description": "The target bank account in a supported accounting package for ingestion into a bank feed.",
        "examples": [
          {
            "accountName": "account-081",
            "accountNumber": "12345670",
            "accountType": "Credit",
            "balance": 99.99,
            "currency": "GBP",
            "id": "acc-002",
            "modifiedDate": "2023-01-09T14:14:14.1057478Z",
            "sortCode": "123456",
            "status": "pending"
          },
          {
            "accountName": "account-095",
            "accountNumber": "12345671",
            "accountType": "Credit",
            "balance": 0,
            "currency": "USD",
            "id": "acc-003",
            "modifiedDate": "2023-01-09T14:14:14.1057478Z",
            "sortCode": "123456",
            "status": "pending"
          }
        ],
        "properties": {
          "accountName": {
            "description": "The bank account name",
            "nullable": true,
            "type": "string"
          },
          "accountNumber": {
            "description": "The account number",
            "nullable": true,
            "type": "string"
          },
          "accountType": {
            "description": "The type of bank account e.g. Credit",
            "nullable": true,
            "type": "string"
          },
          "balance": {
            "description": "The latest balance for the bank account",
            "nullable": true,
            "type": "number"
          },
          "currency": {
            "description": "The currency e.g. USD",
            "nullable": true,
            "type": "string"
          },
          "feedStartDate": {
            "$ref": "#/components/schemas/DateTime",
            "nullable": true
          },
          "id": {
            "description": "Unique ID for the bank feed account",
            "type": "string"
          },
          "modifiedDate": {
            "$ref": "#/components/schemas/DateTime",
            "description": "The last date the bank account was modified",
            "nullable": true
          },
          "sortCode": {
            "description": "The sort code",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "title": "Bank Feed Account",
        "type": "object"
      },
      "BankFeedAccounts": {
        "items": {
          "$ref": "#/components/schemas/BankFeedAccount"
        },
        "type": "array",
        "x-internal": true
      },
      "BankTransactions": {
        "definitions": {
          "bankTransactionLine": {
            "allOf": [
              {
                "properties": {
                  "amount": {
                    "type": "number"
                  },
                  "balance": {
                    "type": "number"
                  },
                  "clearedOnDate": {
                    "$ref": "#/components/schemas/DateTime"
                  },
                  "counterparty": {
                    "nullable": true,
                    "type": "string"
                  },
                  "description": {
                    "nullable": true,
                    "type": "string"
                  },
                  "id": {
                    "type": "string"
                  },
                  "reconciled": {
                    "type": "boolean"
                  },
                  "reference": {
                    "nullable": true,
                    "type": "string"
                  },
                  "transactionType": {
                    "$ref": "#/components/schemas/BankTransactions/definitions/bankTransactionType"
                  }
                },
                "type": "object"
              },
              {
                "allOf": [
                  {
                    "properties": {
                      "modifiedDate": {
                        "$ref": "#/components/schemas/DateTime",
                        "description": "The date on which this record was last modified in Codat."
                      }
                    },
                    "title": "ModifiedDate",
                    "type": "object",
                    "x-internal": true
                  },
                  {
                    "properties": {
                      "sourceModifiedDate": {
                        "$ref": "#/components/schemas/DateTime",
                        "description": "The date on which this record was last modified in the originating system"
                      }
                    },
                    "title": "Source Modified Date",
                    "type": "object",
                    "x-internal": true
                  }
                ],
                "x-internal": true
              }
            ],
            "required": [
              "amount",
              "balance",
              "date",
              "reconciled",
              "transactionType"
            ],
            "title": "Bank transaction line",
            "type": "object"
          },
          "bankTransactionType": {
            "description": "Type of transaction for the bank statement line",
            "enum": [
              "Unknown",
              "Credit",
              "Debit",
              "Int",
              "Div",
              "Fee",
              "SerChg",
              "Dep",
              "Atm",
              "Pos",
              "Xfer",
              "Check",
              "Payment",
              "Cash",
              "DirectDep",
              "DirectDebit",
              "RepeatPmt",
              "Other"
            ],
            "title": "Bank transaction type",
            "type": "string"
          }
        },
        "description": "> **Accessing Bank Accounts through Banking API**\n> \n> This datatype was originally used for accessing bank account data both in accounting integrations and open banking aggregators. \n>\n> To view bank account data through the Banking API, please refer to the new datatype [here](https://docs.codat.io/banking-api#/operations/list-all-banking-transactions)\n\n> View the coverage for bank transactions in the <a className=\"external\" href=\"https://knowledge.codat.io/supported-features/accounting?view=tab-by-data-type&dataType=bankTransactions\" target=\"_blank\">Data coverage explorer</a>.\n\n## Overview\n\nTransactional banking data for a specific company and account.\n\nBank transactions include the:\n* Amount of the transaction.\n* Current account balance.\n* Transaction type, for example, credit, debit, or transfer.",
        "properties": {
          "accountId": {
            "nullable": true,
            "type": "string"
          },
          "transactions": {
            "items": {
              "$ref": "#/components/schemas/BankTransactions/definitions/bankTransactionLine"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "title": "Bank account transactions",
        "type": "object"
      },
      "BankTransactionsResponse": {
        "allOf": [
          {
            "properties": {
              "results": {
                "items": {
                  "$ref": "#/components/schemas/BankTransactions"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          {
            "examples": [
              {
                "_links": {
                  "current": {
                    "href": "/companies/{id}/data/{dataType}?page=1&pageSize=10"
                  },
                  "pageNumber": 1,
                  "pageSize": 10,
                  "self": {
                    "href": "/companies/{id}/data/{dataType}"
                  },
                  "totalResults": 1
                }
              }
            ],
            "properties": {
              "_links": {
                "$ref": "#/components/schemas/Links"
              },
              "pageNumber": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "totalResults": {
                "type": "integer"
              }
            },
            "required": [
              "pageNumber",
              "pageSize",
              "totalResults",
              "_links"
            ],
            "type": "object",
            "x-internal": true
          }
        ],
        "x-internal": true
      },
      "CreateBankTransactionsResponse": {
        "allOf": [
          {
            "properties": {
              "data": {
                "$ref": "#/components/schemas/BankTransactions"
              }
            },
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/PushOperation"
          }
        ],
        "x-internal": true
      },
      "DataType": {
        "description": "Available Data types",
        "enum": [
          "accountTransactions",
          "balanceSheet",
          "bankAccounts",
          "bankTransactions",
          "billCreditNotes",
          "billPayments",
          "bills",
          "cashFlowStatement",
          "chartOfAccounts",
          "company",
          "creditNotes",
          "customers",
          "directCosts",
          "directIncomes",
          "invoices",
          "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",
        "type": "string",
        "x-internal": true
      },
      "DateTime": {
        "description": "In Codat's data model, dates and times are represented using the <a class=\"external\" href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601 standard</a>. 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.",
        "example": "2022-10-23T00:00:00Z",
        "title": "Date time",
        "type": "string"
      },
      "HRef": {
        "properties": {
          "href": {
            "format": "uri-reference",
            "type": "string"
          }
        },
        "title": "Hypertext reference",
        "type": "object",
        "x-internal": true
      },
      "Links": {
        "examples": [
          {
            "current": {
              "href": "/companies/{id}/data/{dataType}?page=1&pageSize=10"
            },
            "self": {
              "href": "/companies/{id}/data/{dataType}"
            }
          }
        ],
        "properties": {
          "current": {
            "$ref": "#/components/schemas/HRef"
          },
          "next": {
            "$ref": "#/components/schemas/HRef"
          },
          "previous": {
            "$ref": "#/components/schemas/HRef"
          },
          "self": {
            "$ref": "#/components/schemas/HRef"
          }
        },
        "required": [
          "self",
          "current"
        ],
        "type": "object",
        "x-internal": true
      },
      "PushOperation": {
        "definitions": {
          "pushChangeType": {
            "enum": [
              "Unknown",
              "Created",
              "Modified",
              "Deleted",
              "AttachmentUploaded"
            ],
            "title": "Push change type",
            "type": "string"
          },
          "pushOperationChange": {
            "properties": {
              "attachmentId": {
                "nullable": true,
                "type": "string"
              },
              "recordRef": {
                "$ref": "#/components/schemas/PushOperation/definitions/pushOperationRef"
              },
              "type": {
                "$ref": "#/components/schemas/PushOperation/definitions/pushChangeType"
              }
            },
            "type": "object"
          },
          "pushOperationRef": {
            "additionalProperties": false,
            "properties": {
              "dataType": {
                "$ref": "#/components/schemas/DataType",
                "nullable": true
              },
              "id": {
                "type": "string"
              }
            },
            "title": "Push operation reference",
            "type": "object",
            "x-internal": true
          },
          "pushOperationStatus": {
            "description": "The status of the push operation.",
            "enum": [
              "Pending",
              "Failed",
              "Success",
              "TimedOut"
            ],
            "title": "Push operation status",
            "type": "string"
          },
          "validation": {
            "description": "A human-readable object describing validation decisions Codat has made when pushing data into the platform. If a push has failed because of validation errors, they will be detailed here.",
            "properties": {
              "errors": {
                "items": {
                  "$ref": "#/components/schemas/PushOperation/definitions/validationItem"
                },
                "nullable": true,
                "type": "array"
              },
              "warnings": {
                "items": {
                  "$ref": "#/components/schemas/PushOperation/definitions/validationItem"
                },
                "nullable": true,
                "type": "array"
              }
            },
            "title": "Validation",
            "type": "object"
          },
          "validationItem": {
            "additionalProperties": false,
            "properties": {
              "itemId": {
                "nullable": true,
                "type": "string"
              },
              "message": {
                "nullable": true,
                "type": "string"
              },
              "validatorName": {
                "nullable": true,
                "type": "string"
              }
            },
            "title": "Validation item",
            "type": "object"
          }
        },
        "properties": {
          "changes": {
            "items": {
              "$ref": "#/components/schemas/PushOperation/definitions/pushOperationChange"
            },
            "nullable": true,
            "type": "array"
          },
          "companyId": {
            "$ref": "#/components/parameters/companyId/schema"
          },
          "completedOnUtc": {
            "$ref": "#/components/schemas/DateTime",
            "description": "The datetime when the push was completed, null if Pending."
          },
          "dataConnectionKey": {
            "$ref": "#/components/parameters/connectionId/schema"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType",
            "description": "The type of data being pushed, eg invoices, customers.",
            "nullable": true
          },
          "errorMessage": {
            "nullable": true,
            "type": "string"
          },
          "pushOperationKey": {
            "description": "A unique identifier generated by Codat to represent this single push operation. This identifier can be used to track the status of the push, and should be persisted.",
            "format": "uuid",
            "type": "string"
          },
          "requestedOnUtc": {
            "$ref": "#/components/schemas/DateTime",
            "description": "The datetime when the push was requested."
          },
          "status": {
            "$ref": "#/components/schemas/PushOperation/definitions/pushOperationStatus"
          },
          "statusCode": {
            "type": "integer"
          },
          "timeoutInMinutes": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "timeoutInSeconds": {
            "deprecated": true,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "validation": {
            "$ref": "#/components/schemas/PushOperation/definitions/validation"
          }
        },
        "required": [
          "companyId",
          "pushOperationKey",
          "dataConnectionKey",
          "requestedOnUtc",
          "status",
          "statusCode"
        ],
        "type": "object",
        "x-internal": true
      },
      "PushOption": {
        "definitions": {
          "pushFieldValidation": {
            "additionalProperties": false,
            "properties": {
              "details": {
                "minLength": 1,
                "type": "string"
              },
              "field": {
                "type": "string"
              },
              "ref": {
                "format": "uri",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "details"
            ],
            "title": "Push field validation",
            "type": "object"
          },
          "pushOptionChoice": {
            "properties": {
              "description": {
                "type": "string"
              },
              "displayName": {
                "type": "string"
              },
              "required": {
                "type": "boolean"
              },
              "type": {
                "$ref": "#/components/schemas/PushOption/definitions/pushOptionType"
              },
              "value": {
                "description": "Allowed value for field.",
                "minLength": 1,
                "type": "string"
              }
            },
            "title": "Push Option Choice",
            "type": "object"
          },
          "pushOptionProperty": {
            "properties": {
              "description": {
                "minLength": 1,
                "type": "string"
              },
              "displayName": {
                "minLength": 1,
                "type": "string"
              },
              "options": {
                "items": {
                  "$ref": "#/components/schemas/PushOption/definitions/pushOptionChoice"
                },
                "nullable": true,
                "type": "array"
              },
              "properties": {
                "additionalProperties": {
                  "$ref": "#/components/schemas/PushOption/definitions/pushOptionProperty"
                },
                "nullable": true,
                "type": "object"
              },
              "required": {
                "type": "boolean"
              },
              "type": {
                "$ref": "#/components/schemas/PushOption/definitions/pushOptionType"
              },
              "validation": {
                "$ref": "#/components/schemas/PushOption/definitions/pushValidationInfo"
              }
            },
            "required": [
              "description",
              "displayName",
              "required",
              "type"
            ],
            "title": "Push Option Property",
            "type": "object"
          },
          "pushOptionType": {
            "enum": [
              "Array",
              "Object",
              "String",
              "Number",
              "Boolean",
              "DateTime",
              "File",
              "MultiPart"
            ],
            "title": "Option Type",
            "type": "string"
          },
          "pushValidationInfo": {
            "additionalProperties": false,
            "properties": {
              "information": {
                "items": {
                  "$ref": "#/components/schemas/PushOption/definitions/pushFieldValidation"
                },
                "nullable": true,
                "type": "array"
              },
              "warnings": {
                "items": {
                  "$ref": "#/components/schemas/PushOption/definitions/pushFieldValidation"
                },
                "nullable": true,
                "type": "array"
              }
            },
            "title": "Push validation info",
            "type": "object"
          }
        },
        "properties": {
          "description": {
            "type": "string"
          },
          "displayName": {
            "minLength": 1,
            "type": "string"
          },
          "options": {
            "items": {
              "$ref": "#/components/schemas/PushOption/definitions/pushOptionChoice"
            },
            "nullable": true,
            "type": "array"
          },
          "properties": {
            "additionalProperties": {
              "$ref": "#/components/schemas/PushOption/definitions/pushOptionProperty"
            },
            "nullable": true,
            "type": "object"
          },
          "required": {
            "type": "boolean"
          },
          "type": {
            "$ref": "#/components/schemas/PushOption/definitions/pushOptionType"
          },
          "validation": {
            "$ref": "#/components/schemas/PushOption/definitions/pushValidationInfo",
            "nullable": true
          }
        },
        "required": [
          "displayName",
          "required",
          "type"
        ],
        "title": "Push Option",
        "type": "object",
        "x-internal": true
      }
    },
    "securitySchemes": {
      "auth_header": {
        "description": "The word \"Basic\" followed by a space and your API Key, base64 encoded, which can be found [here](https://app.codat.io/developers/api-keys)",
        "in": "header",
        "name": "Authorization",
        "type": "apiKey"
      }
    }
  },
  "x-speakeasy-retries": {
    "backoff": {
      "exponent": 1.5,
      "initialInterval": 500,
      "maxElapsedTime": 3600000,
      "maxInterval": 60000
    },
    "retryConnectionErrors": true,
    "statusCodes": [
      408,
      429,
      "5XX"
    ],
    "strategy": "backoff"
  },
  "x-stoplight": {
    "id": "j388fn92qyj2u"
  }
}