{"files":{"SKILL.md":"---\nname: accounting-api\ndescription: \"Accounting API skill. Use when working with Accounting for companies. Covers 135 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Accounting API\nAPI version: 3.0.0\n\n## Auth\nApiKey Authorization in header\n\n## Base URL\nhttps://api.codat.io\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /companies/{companyId}/connections/{connectionId}/data/accountTransactions -- list account transactions\n3. POST /companies/{companyId}/connections/{connectionId}/push/accounts -- create first account\n\n## Endpoints\n135 endpoints across 1 group. See references/api-spec.lap for full details.\n\n### Companies\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /companies/{companyId}/connections/{connectionId}/data/accountTransactions | List account transactions |\n| GET | /companies/{companyId}/connections/{connectionId}/data/accountTransactions/{accountTransactionId} | Get account transaction |\n| GET | /companies/{companyId}/data/accounts | List accounts |\n| GET | /companies/{companyId}/data/accounts/{accountId} | Get account |\n| GET | /companies/{companyId}/connections/{connectionId}/options/chartOfAccounts | Get create account model |\n| POST | /companies/{companyId}/connections/{connectionId}/push/accounts | Create account |\n| GET | /companies/{companyId}/data/billCreditNotes | List bill credit notes |\n| GET | /companies/{companyId}/data/billCreditNotes/{billCreditNoteId} | Get bill credit note |\n| GET | /companies/{companyId}/connections/{connectionId}/options/billCreditNotes | Get create/update bill credit note model |\n| POST | /companies/{companyId}/connections/{connectionId}/push/billCreditNotes | Create bill credit note |\n| PUT | /companies/{companyId}/connections/{connectionId}/push/billCreditNotes/{billCreditNoteId} | Update bill credit note |\n| POST | /companies/{companyId}/connections/{connectionId}/push/billCreditNotes/{billCreditNoteId}/attachment | Upload bill credit note attachment |\n| GET | /companies/{companyId}/data/billPayments | List bill payments |\n| GET | /companies/{companyId}/data/billPayments/{billPaymentId} | Get bill payment |\n| POST | /companies/{companyId}/connections/{connectionId}/push/billPayments | Create bill payments |\n| GET | /companies/{companyId}/connections/{connectionId}/options/billPayments | Get create bill payment model |\n| DELETE | /companies/{companyId}/connections/{connectionId}/push/billPayments/{billPaymentId} | Delete bill payment |\n| GET | /companies/{companyId}/data/bills | List bills |\n| GET | /companies/{companyId}/data/bills/{billId} | Get bill |\n| GET | /companies/{companyId}/connections/{connectionId}/options/bills | Get create/update bill model |\n| POST | /companies/{companyId}/connections/{connectionId}/push/bills | Create bill |\n| PUT | /companies/{companyId}/connections/{connectionId}/push/bills/{billId} | Update bill |\n| DELETE | /companies/{companyId}/connections/{connectionId}/push/bills/{billId} | Delete bill |\n| GET | /companies/{companyId}/connections/{connectionId}/data/bills/{billId}/attachments | List bill attachments |\n| GET | /companies/{companyId}/connections/{connectionId}/data/bills/{billId}/attachments/{attachmentId} | Get bill attachment |\n| GET | /companies/{companyId}/connections/{connectionId}/data/bills/{billId}/attachments/{attachmentId}/download | Download bill attachment |\n| POST | /companies/{companyId}/connections/{connectionId}/push/bills/{billId}/attachments | Upload bill attachment |\n| GET | /companies/{companyId}/data/creditNotes | List credit notes |\n| GET | /companies/{companyId}/data/creditNotes/{creditNoteId} | Get credit note |\n| GET | /companies/{companyId}/connections/{connectionId}/options/creditNotes | Get create/update credit note model |\n| POST | /companies/{companyId}/connections/{connectionId}/push/creditNotes | Create credit note |\n| PUT | /companies/{companyId}/connections/{connectionId}/push/creditNotes/{creditNoteId} | Update credit note |\n| GET | /companies/{companyId}/data/customers | List customers |\n| GET | /companies/{companyId}/data/customers/{customerId} | Get customer |\n| GET | /companies/{companyId}/connections/{connectionId}/options/customers | Get create/update customer model |\n| POST | /companies/{companyId}/connections/{connectionId}/push/customers | Create customer |\n| PUT | /companies/{companyId}/connections/{connectionId}/push/customers/{customerId} | Update customer |\n| GET | /companies/{companyId}/connections/{connectionId}/data/customers/{customerId}/attachments | List customer attachments |\n| GET | /companies/{companyId}/connections/{connectionId}/data/customers/{customerId}/attachments/{attachmentId} | Get customer attachment |\n| GET | /companies/{companyId}/connections/{connectionId}/data/customers/{customerId}/attachments/{attachmentId}/download | Download customer attachment |\n| GET | /companies/{companyId}/connections/{connectionId}/data/directCosts | List direct costs |\n| GET | /companies/{companyId}/connections/{connectionId}/data/directCosts/{directCostId} | Get direct cost |\n| GET | /companies/{companyId}/connections/{connectionId}/options/directCosts | Get create direct cost model |\n| POST | /companies/{companyId}/connections/{connectionId}/push/directCosts | Create direct cost |\n| DELETE | /companies/{companyId}/connections/{connectionId}/push/directCosts/{directCostId} | Delete direct cost |\n| POST | /companies/{companyId}/connections/{connectionId}/push/directCosts/{directCostId}/attachment | Upload direct cost attachment |\n| GET | /companies/{companyId}/connections/{connectionId}/data/directCosts/{directCostId}/attachments/{attachmentId} | Get direct cost attachment |\n| GET | /companies/{companyId}/connections/{connectionId}/data/directCosts/{directCostId}/attachments/{attachmentId}/download | Download direct cost attachment |\n| GET | /companies/{companyId}/connections/{connectionId}/data/directCosts/{directCostId}/attachments | List direct cost attachments |\n| GET | /companies/{companyId}/connections/{connectionId}/data/directIncomes | List direct incomes |\n| GET | /companies/{companyId}/connections/{connectionId}/data/directIncomes/{directIncomeId} | Get direct income |\n| GET | /companies/{companyId}/connections/{connectionId}/options/directIncomes | Get create direct income model |\n| POST | /companies/{companyId}/connections/{connectionId}/push/directIncomes | Create direct income |\n| POST | /companies/{companyId}/connections/{connectionId}/push/directIncomes/{directIncomeId}/attachment | Create direct income attachment |\n| GET | /companies/{companyId}/connections/{connectionId}/data/directIncomes/{directIncomeId}/attachments/{attachmentId} | Get direct income attachment |\n| GET | /companies/{companyId}/connections/{connectionId}/data/directIncomes/{directIncomeId}/attachments/{attachmentId}/download | Download direct income attachment |\n| GET | /companies/{companyId}/connections/{connectionId}/data/directIncomes/{directIncomeId}/attachments | List direct income attachments |\n| GET | /companies/{companyId}/data/financials/balanceSheet | Get balance sheet |\n| GET | /companies/{companyId}/data/financials/profitAndLoss | Get profit and loss |\n| GET | /companies/{companyId}/data/financials/cashFlowStatement | Get cash flow statement |\n| GET | /companies/{companyId}/data/info | Get company info |\n| POST | /companies/{companyId}/data/info | Refresh company info |\n| GET | /companies/{companyId}/data/invoices | List invoices |\n| GET | /companies/{companyId}/data/invoices/{invoiceId} | Get invoice |\n| GET | /companies/{companyId}/data/invoices/{invoiceId}/pdf | Get invoice as PDF |\n| GET | /companies/{companyId}/connections/{connectionId}/data/invoices/{invoiceId}/attachments | List invoice attachments |\n| GET | /companies/{companyId}/connections/{connectionId}/data/invoices/{invoiceId}/attachments/{attachmentId} | Get invoice attachment |\n| GET | /companies/{companyId}/connections/{connectionId}/data/invoices/{invoiceId}/attachments/{attachmentId}/download | Download invoice attachment |\n| GET | /companies/{companyId}/connections/{connectionId}/options/invoices | Get create/update invoice model |\n| POST | /companies/{companyId}/connections/{connectionId}/push/invoices | Create invoice |\n| PUT | /companies/{companyId}/connections/{connectionId}/push/invoices/{invoiceId} | Update invoice |\n| DELETE | /companies/{companyId}/connections/{connectionId}/push/invoices/{invoiceId} | Delete invoice |\n| POST | /companies/{companyId}/connections/{connectionId}/push/invoices/{invoiceId}/attachment | Upload invoice attachment |\n| GET | /companies/{companyId}/connections/{connectionId}/data/itemReceipts | List item receipts |\n| GET | /companies/{companyId}/connections/{connectionId}/data/itemReceipts/{itemReceiptId} | Get item receipt |\n| GET | /companies/{companyId}/data/items | List items |\n| GET | /companies/{companyId}/data/items/{itemId} | Get item |\n| GET | /companies/{companyId}/connections/{connectionId}/options/items | Get create item model |\n| POST | /companies/{companyId}/connections/{connectionId}/push/items | Create item |\n| GET | /companies/{companyId}/data/journalEntries | List journal entries |\n| GET | /companies/{companyId}/data/journalEntries/{journalEntryId} | Get journal entry |\n| GET | /companies/{companyId}/connections/{connectionId}/options/journalEntries | Get create journal entry model |\n| POST | /companies/{companyId}/connections/{connectionId}/push/journalEntries | Create journal entry |\n| DELETE | /companies/{companyId}/connections/{connectionId}/push/journalEntries/{journalEntryId} | Delete journal entry |\n| GET | /companies/{companyId}/data/journals | List journals |\n| GET | /companies/{companyId}/data/journals/{journalId} | Get journal |\n| GET | /companies/{companyId}/connections/{connectionId}/options/journals | Get create journal model |\n| POST | /companies/{companyId}/connections/{connectionId}/push/journals | Create journal |\n| GET | /companies/{companyId}/data/paymentMethods | List payment methods |\n| GET | /companies/{companyId}/data/paymentMethods/{paymentMethodId} | Get payment method |\n| GET | /companies/{companyId}/data/payments | List payments |\n| GET | /companies/{companyId}/data/payments/{paymentId} | Get payment |\n| GET | /companies/{companyId}/connections/{connectionId}/data/payments | List payments |\n| GET | /companies/{companyId}/connections/{connectionId}/options/payments | Get create payment model |\n| POST | /companies/{companyId}/connections/{connectionId}/push/payments | Create payment |\n| GET | /companies/{companyId}/data/purchaseOrders | List purchase orders |\n| GET | /companies/{companyId}/data/purchaseOrders/{purchaseOrderId} | Get purchase order |\n| GET | /companies/{companyId}/connections/{connectionId}/options/purchaseOrders | Get create/update purchase order model |\n| POST | /companies/{companyId}/connections/{connectionId}/push/purchaseOrders | Create purchase order |\n| PUT | /companies/{companyId}/connections/{connectionId}/push/purchaseOrders/{purchaseOrderId} | Update purchase order |\n| GET | /companies/{companyId}/data/purchaseOrders/{purchaseOrderId}/pdf | Download purchase order as PDF |\n| GET | /companies/{companyId}/connections/{connectionId}/data/purchaseOrders/{purchaseOrderId}/attachments | List purchase order attachments |\n| GET | /companies/{companyId}/connections/{connectionId}/data/purchaseOrders/{purchaseOrderId}/attachments/{attachmentId} | Get purchase order attachment |\n| GET | /companies/{companyId}/connections/{connectionId}/data/purchaseOrders/{purchaseOrderId}/attachments/{attachmentId}/download | Download purchase order attachment |\n| GET | /companies/{companyId}/data/salesOrders | List sales orders |\n| GET | /companies/{companyId}/data/salesOrders/{salesOrderId} | Get sales order |\n| GET | /companies/{companyId}/data/suppliers | List suppliers |\n| GET | /companies/{companyId}/data/suppliers/{supplierId} | Get supplier |\n| GET | /companies/{companyId}/connections/{connectionId}/options/suppliers | Get create/update supplier model |\n| POST | /companies/{companyId}/connections/{connectionId}/push/suppliers | Create supplier |\n| PUT | /companies/{companyId}/connections/{connectionId}/push/suppliers/{supplierId} | Update supplier |\n| GET | /companies/{companyId}/connections/{connectionId}/data/suppliers/{supplierId}/attachments | List supplier attachments |\n| GET | /companies/{companyId}/connections/{connectionId}/data/suppliers/{supplierId}/attachments/{attachmentId} | Get supplier attachment |\n| GET | /companies/{companyId}/connections/{connectionId}/data/suppliers/{supplierId}/attachments/{attachmentId}/download | Download supplier attachment |\n| GET | /companies/{companyId}/data/taxRates | List all tax rates |\n| GET | /companies/{companyId}/data/taxRates/{taxRateId} | Get tax rate |\n| GET | /companies/{companyId}/data/trackingCategories | List tracking categories |\n| GET | /companies/{companyId}/data/trackingCategories/{trackingCategoryId} | Get tracking categories |\n| GET | /companies/{companyId}/connections/{connectionId}/data/transfers | List transfers |\n| POST | /companies/{companyId}/connections/{connectionId}/push/transfers/{transferId}/attachment | Upload transfer attachment |\n| GET | /companies/{companyId}/connections/{connectionId}/data/transfers/{transferId} | Get transfer |\n| GET | /companies/{companyId}/connections/{connectionId}/options/transfers | Get create transfer model |\n| POST | /companies/{companyId}/connections/{connectionId}/push/transfers | Create transfer |\n| GET | /companies/{companyId}/connections/{connectionId}/data/bankAccounts | List bank accounts |\n| GET | /companies/{companyId}/connections/{connectionId}/data/bankAccounts/{accountId} | Get bank account |\n| GET | /companies/{companyId}/connections/{connectionId}/options/bankAccounts | Get create/update bank account model |\n| POST | /companies/{companyId}/connections/{connectionId}/push/bankAccounts | Create bank account |\n| PUT | /companies/{companyId}/connections/{connectionId}/push/bankAccounts/{bankAccountId} | Update bank account |\n| GET | /companies/{companyId}/connections/{connectionId}/data/bankAccounts/{accountId}/bankTransactions | List bank account transactions |\n| GET | /companies/{companyId}/connections/{connectionId}/options/bankAccounts/{accountId}/bankTransactions | Get create bank account transactions model |\n| POST | /companies/{companyId}/connections/{connectionId}/push/bankAccounts/{accountId}/bankTransactions | Create bank account transactions |\n| GET | /companies/{companyId}/reports/agedDebtor/available | Aged debtors report available |\n| GET | /companies/{companyId}/reports/agedDebtor | Aged debtors report |\n| GET | /companies/{companyId}/reports/agedCreditor/available | Aged creditors report available |\n| GET | /companies/{companyId}/reports/agedCreditor | Aged creditors report |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Search accountTransactions?\" -> GET /companies/{companyId}/connections/{connectionId}/data/accountTransactions\n- \"Get accountTransaction details?\" -> GET /companies/{companyId}/connections/{connectionId}/data/accountTransactions/{accountTransactionId}\n- \"Search accounts?\" -> GET /companies/{companyId}/data/accounts\n- \"Get account details?\" -> GET /companies/{companyId}/data/accounts/{accountId}\n- \"List all chartOfAccounts?\" -> GET /companies/{companyId}/connections/{connectionId}/options/chartOfAccounts\n- \"Create a account?\" -> POST /companies/{companyId}/connections/{connectionId}/push/accounts\n- \"Search billCreditNotes?\" -> GET /companies/{companyId}/data/billCreditNotes\n- \"Get billCreditNote details?\" -> GET /companies/{companyId}/data/billCreditNotes/{billCreditNoteId}\n- \"List all billCreditNotes?\" -> GET /companies/{companyId}/connections/{connectionId}/options/billCreditNotes\n- \"Create a billCreditNote?\" -> POST /companies/{companyId}/connections/{connectionId}/push/billCreditNotes\n- \"Update a billCreditNote?\" -> PUT /companies/{companyId}/connections/{connectionId}/push/billCreditNotes/{billCreditNoteId}\n- \"Create a attachment?\" -> POST /companies/{companyId}/connections/{connectionId}/push/billCreditNotes/{billCreditNoteId}/attachment\n- \"Search billPayments?\" -> GET /companies/{companyId}/data/billPayments\n- \"Get billPayment details?\" -> GET /companies/{companyId}/data/billPayments/{billPaymentId}\n- \"Create a billPayment?\" -> POST /companies/{companyId}/connections/{connectionId}/push/billPayments\n- \"List all billPayments?\" -> GET /companies/{companyId}/connections/{connectionId}/options/billPayments\n- \"Delete a billPayment?\" -> DELETE /companies/{companyId}/connections/{connectionId}/push/billPayments/{billPaymentId}\n- \"Search bills?\" -> GET /companies/{companyId}/data/bills\n- \"Get bill details?\" -> GET /companies/{companyId}/data/bills/{billId}\n- \"List all bills?\" -> GET /companies/{companyId}/connections/{connectionId}/options/bills\n- \"Create a bill?\" -> POST /companies/{companyId}/connections/{connectionId}/push/bills\n- \"Update a bill?\" -> PUT /companies/{companyId}/connections/{connectionId}/push/bills/{billId}\n- \"Delete a bill?\" -> DELETE /companies/{companyId}/connections/{connectionId}/push/bills/{billId}\n- \"List all attachments?\" -> GET /companies/{companyId}/connections/{connectionId}/data/bills/{billId}/attachments\n- \"Get attachment details?\" -> GET /companies/{companyId}/connections/{connectionId}/data/bills/{billId}/attachments/{attachmentId}\n- \"List all download?\" -> GET /companies/{companyId}/connections/{connectionId}/data/bills/{billId}/attachments/{attachmentId}/download\n- \"Search creditNotes?\" -> GET /companies/{companyId}/data/creditNotes\n- \"Get creditNote details?\" -> GET /companies/{companyId}/data/creditNotes/{creditNoteId}\n- \"List all creditNotes?\" -> GET /companies/{companyId}/connections/{connectionId}/options/creditNotes\n- \"Create a creditNote?\" -> POST /companies/{companyId}/connections/{connectionId}/push/creditNotes\n- \"Update a creditNote?\" -> PUT /companies/{companyId}/connections/{connectionId}/push/creditNotes/{creditNoteId}\n- \"Search customers?\" -> GET /companies/{companyId}/data/customers\n- \"Get customer details?\" -> GET /companies/{companyId}/data/customers/{customerId}\n- \"List all customers?\" -> GET /companies/{companyId}/connections/{connectionId}/options/customers\n- \"Create a customer?\" -> POST /companies/{companyId}/connections/{connectionId}/push/customers\n- \"Update a customer?\" -> PUT /companies/{companyId}/connections/{connectionId}/push/customers/{customerId}\n- \"Search directCosts?\" -> GET /companies/{companyId}/connections/{connectionId}/data/directCosts\n- \"Get directCost details?\" -> GET /companies/{companyId}/connections/{connectionId}/data/directCosts/{directCostId}\n- \"List all directCosts?\" -> GET /companies/{companyId}/connections/{connectionId}/options/directCosts\n- \"Create a directCost?\" -> POST /companies/{companyId}/connections/{connectionId}/push/directCosts\n- \"Delete a directCost?\" -> DELETE /companies/{companyId}/connections/{connectionId}/push/directCosts/{directCostId}\n- \"Search directIncomes?\" -> GET /companies/{companyId}/connections/{connectionId}/data/directIncomes\n- \"Get directIncome details?\" -> GET /companies/{companyId}/connections/{connectionId}/data/directIncomes/{directIncomeId}\n- \"List all directIncomes?\" -> GET /companies/{companyId}/connections/{connectionId}/options/directIncomes\n- \"Create a directIncome?\" -> POST /companies/{companyId}/connections/{connectionId}/push/directIncomes\n- \"List all balanceSheet?\" -> GET /companies/{companyId}/data/financials/balanceSheet\n- \"List all profitAndLoss?\" -> GET /companies/{companyId}/data/financials/profitAndLoss\n- \"List all cashFlowStatement?\" -> GET /companies/{companyId}/data/financials/cashFlowStatement\n- \"List all info?\" -> GET /companies/{companyId}/data/info\n- \"Create a info?\" -> POST /companies/{companyId}/data/info\n- \"Search invoices?\" -> GET /companies/{companyId}/data/invoices\n- \"Get invoice details?\" -> GET /companies/{companyId}/data/invoices/{invoiceId}\n- \"List all pdf?\" -> GET /companies/{companyId}/data/invoices/{invoiceId}/pdf\n- \"List all invoices?\" -> GET /companies/{companyId}/connections/{connectionId}/options/invoices\n- \"Create a invoice?\" -> POST /companies/{companyId}/connections/{connectionId}/push/invoices\n- \"Update a invoice?\" -> PUT /companies/{companyId}/connections/{connectionId}/push/invoices/{invoiceId}\n- \"Delete a invoice?\" -> DELETE /companies/{companyId}/connections/{connectionId}/push/invoices/{invoiceId}\n- \"Search itemReceipts?\" -> GET /companies/{companyId}/connections/{connectionId}/data/itemReceipts\n- \"Get itemReceipt details?\" -> GET /companies/{companyId}/connections/{connectionId}/data/itemReceipts/{itemReceiptId}\n- \"Search items?\" -> GET /companies/{companyId}/data/items\n- \"Get item details?\" -> GET /companies/{companyId}/data/items/{itemId}\n- \"List all items?\" -> GET /companies/{companyId}/connections/{connectionId}/options/items\n- \"Create a item?\" -> POST /companies/{companyId}/connections/{connectionId}/push/items\n- \"Search journalEntries?\" -> GET /companies/{companyId}/data/journalEntries\n- \"Get journalEntry details?\" -> GET /companies/{companyId}/data/journalEntries/{journalEntryId}\n- \"List all journalEntries?\" -> GET /companies/{companyId}/connections/{connectionId}/options/journalEntries\n- \"Create a journalEntry?\" -> POST /companies/{companyId}/connections/{connectionId}/push/journalEntries\n- \"Delete a journalEntry?\" -> DELETE /companies/{companyId}/connections/{connectionId}/push/journalEntries/{journalEntryId}\n- \"Search journals?\" -> GET /companies/{companyId}/data/journals\n- \"Get journal details?\" -> GET /companies/{companyId}/data/journals/{journalId}\n- \"List all journals?\" -> GET /companies/{companyId}/connections/{connectionId}/options/journals\n- \"Create a journal?\" -> POST /companies/{companyId}/connections/{connectionId}/push/journals\n- \"Search paymentMethods?\" -> GET /companies/{companyId}/data/paymentMethods\n- \"Get paymentMethod details?\" -> GET /companies/{companyId}/data/paymentMethods/{paymentMethodId}\n- \"Search payments?\" -> GET /companies/{companyId}/data/payments\n- \"Get payment details?\" -> GET /companies/{companyId}/data/payments/{paymentId}\n- \"List all payments?\" -> GET /companies/{companyId}/connections/{connectionId}/options/payments\n- \"Create a payment?\" -> POST /companies/{companyId}/connections/{connectionId}/push/payments\n- \"Search purchaseOrders?\" -> GET /companies/{companyId}/data/purchaseOrders\n- \"Get purchaseOrder details?\" -> GET /companies/{companyId}/data/purchaseOrders/{purchaseOrderId}\n- \"List all purchaseOrders?\" -> GET /companies/{companyId}/connections/{connectionId}/options/purchaseOrders\n- \"Create a purchaseOrder?\" -> POST /companies/{companyId}/connections/{connectionId}/push/purchaseOrders\n- \"Update a purchaseOrder?\" -> PUT /companies/{companyId}/connections/{connectionId}/push/purchaseOrders/{purchaseOrderId}\n- \"Search salesOrders?\" -> GET /companies/{companyId}/data/salesOrders\n- \"Get salesOrder details?\" -> GET /companies/{companyId}/data/salesOrders/{salesOrderId}\n- \"Search suppliers?\" -> GET /companies/{companyId}/data/suppliers\n- \"Get supplier details?\" -> GET /companies/{companyId}/data/suppliers/{supplierId}\n- \"List all suppliers?\" -> GET /companies/{companyId}/connections/{connectionId}/options/suppliers\n- \"Create a supplier?\" -> POST /companies/{companyId}/connections/{connectionId}/push/suppliers\n- \"Update a supplier?\" -> PUT /companies/{companyId}/connections/{connectionId}/push/suppliers/{supplierId}\n- \"Search taxRates?\" -> GET /companies/{companyId}/data/taxRates\n- \"Get taxRate details?\" -> GET /companies/{companyId}/data/taxRates/{taxRateId}\n- \"Search trackingCategories?\" -> GET /companies/{companyId}/data/trackingCategories\n- \"Get trackingCategory details?\" -> GET /companies/{companyId}/data/trackingCategories/{trackingCategoryId}\n- \"Search transfers?\" -> GET /companies/{companyId}/connections/{connectionId}/data/transfers\n- \"Get transfer details?\" -> GET /companies/{companyId}/connections/{connectionId}/data/transfers/{transferId}\n- \"List all transfers?\" -> GET /companies/{companyId}/connections/{connectionId}/options/transfers\n- \"Create a transfer?\" -> POST /companies/{companyId}/connections/{connectionId}/push/transfers\n- \"Search bankAccounts?\" -> GET /companies/{companyId}/connections/{connectionId}/data/bankAccounts\n- \"Get bankAccount details?\" -> GET /companies/{companyId}/connections/{connectionId}/data/bankAccounts/{accountId}\n- \"List all bankAccounts?\" -> GET /companies/{companyId}/connections/{connectionId}/options/bankAccounts\n- \"Create a bankAccount?\" -> POST /companies/{companyId}/connections/{connectionId}/push/bankAccounts\n- \"Update a bankAccount?\" -> PUT /companies/{companyId}/connections/{connectionId}/push/bankAccounts/{bankAccountId}\n- \"Search bankTransactions?\" -> GET /companies/{companyId}/connections/{connectionId}/data/bankAccounts/{accountId}/bankTransactions\n- \"List all bankTransactions?\" -> GET /companies/{companyId}/connections/{connectionId}/options/bankAccounts/{accountId}/bankTransactions\n- \"Create a bankTransaction?\" -> POST /companies/{companyId}/connections/{connectionId}/push/bankAccounts/{accountId}/bankTransactions\n- \"List all available?\" -> GET /companies/{companyId}/reports/agedDebtor/available\n- \"List all agedDebtor?\" -> GET /companies/{companyId}/reports/agedDebtor\n- \"List all agedCreditor?\" -> GET /companies/{companyId}/reports/agedCreditor\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Paginated endpoints accept limit/offset or cursor parameters\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Accounting API\n@base https://api.codat.io\n@version 3.0.0\n@auth ApiKey Authorization in header\n@endpoints 135\n@hint download_for_search\n@toc companies(135)\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/accountTransactions\n@desc List account transactions\n@required {companyId: str(uuid) # Unique identifier for a company., connectionId: str(uuid) # Unique identifier for a connection.}\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/accountTransactions/{accountTransactionId}\n@desc Get account transaction\n@required {companyId: str(uuid) # Unique identifier for a company., connectionId: str(uuid) # Unique identifier for a connection., accountTransactionId: str # Unique identifier for an account transaction.}\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/accounts\n@desc List accounts\n@required {companyId: str(uuid) # Unique identifier for a company.}\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/accounts/{accountId}\n@desc Get account\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/options/chartOfAccounts\n@desc Get create account model\n@returns(200) {type: str, displayName: str, description: str, required: bool, properties: map?, options: [map]?, validation: map{warnings: [map]?, information: [map]?}} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/accounts\n@desc Create account\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out., nominalCode: str # 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., name: str # Name of the account., description: str # Description for the account., fullyQualifiedCategory: str # Full category of the account. \r \r For example, `Liability.Current` or `Income.Revenue`. To determine a list of possible categories for each integration, see our examples, follow our [Create, update, delete data](https://docs.codat.io/using-the-api/push) guide, or refer to the integration's own documentation., fullyQualifiedName: str # Full name of the account, for example: - `Cash On Hand` - `Rents Held In Trust` - `Fixed Asset`, currency: str(ISO4217) # The currency data type in Codat is the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code, e.g. _GBP_.  ## Unknown currencies  In line with the ISO 4217 specification, the code _XXX_ is used when the data source does not return a currency for a transaction.   There are only a very small number of edge cases where this currency code is returned by the Codat system., currentBalance: num(decimal) # Current balance in the account., type: str(Unknown/Asset/Expense/Income/Liability/Equity) # Type of account, status: str(Unknown/Active/Archived/Pending) # Status of the account, isBankAccount: bool # Confirms whether the account is a bank account or not., validDatatypeLinks: [map{property: str, links: [str]}] # The validDatatypeLinks can be used to determine whether an account can be correctly mapped to another object; for example, accounts with a `type` of `income` might only support being used on an Invoice and Direct Income. For more information, see [Valid Data Type Links](/accounting-api#/schemas/ValidDataTypeLinks)., supplementalData: map{content: map} # Supplemental data is additional data you can include in our standard data types.   It is referenced as a configured dynamic key value pair that is unique to the accounting software. [Learn more](https://docs.codat.io/using-the-api/supplemental-data/overview) about supplemental data.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/billCreditNotes\n@desc List bill credit notes\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/billCreditNotes/{billCreditNoteId}\n@desc Get bill credit note\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/options/billCreditNotes\n@desc Get create/update bill credit note model\n@returns(200) {type: str, displayName: str, description: str, required: bool, properties: map?, options: [map]?, validation: map{warnings: [map]?, information: [map]?}} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/billCreditNotes\n@desc Create bill credit note\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n@example_request {\"billCreditNoteNumber\":\"309\",\"supplierRef\":{\"id\":\"87\",\"supplierName\":\"Ankunding Inc\"},\"withholdingTax\":[],\"totalAmount\":100,\"totalDiscount\":0,\"subTotal\":100,\"totalTaxAmount\":0,\"discountPercentage\":0,\"remainingCredit\":100,\"status\":\"Submitted\",\"issueDate\":\"2023-04-20T00:00:00\",\"currency\":\"GBP\",\"currencyRate\":1.242097,\"lineItems\":[{\"description\":\"\",\"unitAmount\":100,\"quantity\":1,\"subTotal\":100,\"taxAmount\":0,\"totalAmount\":100,\"accountRef\":{\"id\":\"7\"},\"taxRateRef\":{\"id\":\"NON\",\"name\":\"NON\",\"effectiveTaxRate\":0},\"trackingCategoryRefs\":[],\"tracking\":{\"categoryRefs\":[],\"isBilledTo\":\"Unknown\",\"isRebilledTo\":\"NotApplicable\"}}]}\n\n@endpoint PUT /companies/{companyId}/connections/{connectionId}/push/billCreditNotes/{billCreditNoteId}\n@desc Update bill credit note\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out., forceUpdate: bool=false # When updating data in the destination platform Codat checks the `sourceModifiedDate` against the `lastupdated` date from the accounting software, if they're different Codat will return an error suggesting you should initiate another pull of the data. If this is set to `true` then the update will override this check.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/billCreditNotes/{billCreditNoteId}/attachment\n@desc Upload bill credit note attachment\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/billPayments\n@desc List bill payments\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/billPayments/{billPaymentId}\n@desc Get bill payment\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/billPayments\n@desc Create bill payments\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n@example_request {\"supplierRef\":{\"id\":\"SUPP1\",\"supplierName\":\"string\"},\"accountRef\":{\"id\":\"1200\",\"name\":\"string\"},\"totalAmount\":15.38,\"currency\":\"GBP\",\"currencyRate\":1,\"date\":\"2023-01-05T12:33:25.339Z\",\"note\":\"note - billpayment on 20230220 of 15.38\",\"paymentMethodRef\":{\"id\":\"string\",\"name\":\"string\"},\"lines\":[{\"amount\":15.38,\"links\":[{\"type\":\"Bill\",\"id\":\"3\",\"amount\":-15.38,\"currencyRate\":1}],\"allocatedOnDate\":\"2023-01-05T12:33:25.339Z\"}],\"modifiedDate\":\"2023-01-05T12:33:25.339Z\",\"sourceModifiedDate\":\"2023-01-05T12:33:25.339Z\",\"reference\":\"reference 20230220 15.38\",\"metadata\":{\"isDeleted\":true}}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/options/billPayments\n@desc Get create bill payment model\n@returns(200) {type: str, displayName: str, description: str, required: bool, properties: map?, options: [map]?, validation: map{warnings: [map]?, information: [map]?}} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint DELETE /companies/{companyId}/connections/{connectionId}/push/billPayments/{billPaymentId}\n@desc Delete bill payment\n@returns(200) {changes: [map]?, dataType: str, companyId: str(uuid), pushOperationKey: str(uuid), dataConnectionKey: str(uuid), requestedOnUtc: str, completedOnUtc: str, timeoutInMinutes: int(int32)?, timeoutInSeconds: int(int32)?, status: str, errorMessage: str?, validation: map{errors: [map]?, warnings: [map]?}, statusCode: int} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/bills\n@desc List bills\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/bills/{billId}\n@desc Get bill\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/options/bills\n@desc Get create/update bill model\n@returns(200) {type: str, displayName: str, description: str, required: bool, properties: map?, options: [map]?, validation: map{warnings: [map]?, information: [map]?}} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/bills\n@desc Create bill\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n@example_request {\"reference\":\"20230308 15.16\",\"supplierRef\":{\"id\":\"80000001-1671793885\",\"supplierName\":\"string\"},\"purchaseOrderRefs\":[{\"id\":\"string\",\"purchaseOrderNumber\":\"string\"}],\"issueDate\":\"2023-03-08T09:21:18.558Z\",\"dueDate\":\"2023-03-14T09:21:18.558Z\",\"currency\":\"USD\",\"currencyRate\":1,\"lineItems\":[{\"description\":\"line 1 description\",\"unitAmount\":1.625,\"quantity\":2,\"discountAmount\":0,\"subTotal\":3.25,\"taxAmount\":0,\"totalAmount\":3.25,\"discountPercentage\":0,\"itemRef\":{\"id\":\"80000001-1674566705\",\"name\":\"string\"},\"trackingCategoryRefs\":[{\"id\":\"80000003-1674553958\",\"name\":\"Class 2\"}],\"tracking\":{\"categoryRefs\":[{\"id\":\"80000001-1674553252\",\"name\":\"Class 1\"}],\"customerRef\":{\"id\":\"80000002-1674552702\",\"companyName\":\"string\"},\"projectRef\":{\"id\":\"string\",\"name\":\"string\"},\"isBilledTo\":\"Unknown\",\"isRebilledTo\":\"Customer\"},\"isDirectCost\":true}],\"withholdingTax\":[{\"name\":\"string\",\"amount\":0}],\"status\":\"Open\",\"subTotal\":3.25,\"taxAmount\":0,\"totalAmount\":3.25,\"amountDue\":115.899999984,\"note\":\"note\",\"paymentAllocations\":[]}\n\n@endpoint PUT /companies/{companyId}/connections/{connectionId}/push/bills/{billId}\n@desc Update bill\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out., forceUpdate: bool=false # When updating data in the destination platform Codat checks the `sourceModifiedDate` against the `lastupdated` date from the accounting software, if they're different Codat will return an error suggesting you should initiate another pull of the data. If this is set to `true` then the update will override this check.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint DELETE /companies/{companyId}/connections/{connectionId}/push/bills/{billId}\n@desc Delete bill\n@returns(200) {changes: [map]?, dataType: str, companyId: str(uuid), pushOperationKey: str(uuid), dataConnectionKey: str(uuid), requestedOnUtc: str, completedOnUtc: str, timeoutInMinutes: int(int32)?, timeoutInSeconds: int(int32)?, status: str, errorMessage: str?, validation: map{errors: [map]?, warnings: [map]?}, statusCode: int} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/bills/{billId}/attachments\n@desc List bill attachments\n@returns(200) {attachments: [map]?} # Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/bills/{billId}/attachments/{attachmentId}\n@desc Get bill attachment\n@required {attachmentId: str(uuid) # Unique identifier for an attachment.}\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/bills/{billId}/attachments/{attachmentId}/download\n@desc Download bill attachment\n@required {attachmentId: str(uuid) # Unique identifier for an attachment.}\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/bills/{billId}/attachments\n@desc Upload bill attachment\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/creditNotes\n@desc List credit notes\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/creditNotes/{creditNoteId}\n@desc Get credit note\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/options/creditNotes\n@desc Get create/update credit note model\n@returns(200) {type: str, displayName: str, description: str, required: bool, properties: map?, options: [map]?, validation: map{warnings: [map]?, information: [map]?}} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/creditNotes\n@desc Create credit note\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n@example_request {\"creditNoteNumber\":\"09/03 17.15\",\"note\":\"credit note 20230309 17.15\",\"status\":\"Submitted\",\"customerRef\":{\"id\":\"80000002-1674552702\"},\"currency\":\"USD\",\"currencyRate\":1,\"subTotal\":10.2,\"issueDate\":\"2023-03-09T02:21:26.726327+00:00\",\"lineItems\":[{\"itemRef\":{\"id\":\"80000004-1675280003\",\"name\":\"test income item 1\"},\"quantity\":1,\"subTotal\":1.25,\"taxAmount\":0,\"unitAmount\":1.25,\"description\":\"banana\",\"totalAmount\":1.25}],\"totalAmount\":1.25,\"totalDiscount\":0,\"totalTaxAmount\":0,\"discountPercentage\":0,\"remainingCredit\":0}\n\n@endpoint PUT /companies/{companyId}/connections/{connectionId}/push/creditNotes/{creditNoteId}\n@desc Update credit note\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out., forceUpdate: bool=false # When updating data in the destination platform Codat checks the `sourceModifiedDate` against the `lastupdated` date from the accounting software, if they're different Codat will return an error suggesting you should initiate another pull of the data. If this is set to `true` then the update will override this check.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/customers\n@desc List customers\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/customers/{customerId}\n@desc Get customer\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/options/customers\n@desc Get create/update customer model\n@returns(200) {type: str, displayName: str, description: str, required: bool, properties: map?, options: [map]?, validation: map{warnings: [map]?, information: [map]?}} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/customers\n@desc Create customer\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint PUT /companies/{companyId}/connections/{connectionId}/push/customers/{customerId}\n@desc Update customer\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out., forceUpdate: bool=false # When updating data in the destination platform Codat checks the `sourceModifiedDate` against the `lastupdated` date from the accounting software, if they're different Codat will return an error suggesting you should initiate another pull of the data. If this is set to `true` then the update will override this check.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/customers/{customerId}/attachments\n@desc List customer attachments\n@returns(200) {attachments: [map]?} # Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/customers/{customerId}/attachments/{attachmentId}\n@desc Get customer attachment\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/customers/{customerId}/attachments/{attachmentId}/download\n@desc Download customer attachment\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/directCosts\n@desc List direct costs\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/directCosts/{directCostId}\n@desc Get direct cost\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/options/directCosts\n@desc Get create direct cost model\n@returns(200) {type: str, displayName: str, description: str, required: bool, properties: map?, options: [map]?, validation: map{warnings: [map]?, information: [map]?}} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/directCosts\n@desc Create direct cost\n@required {issueDate: str # In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example:  ``` 2020-10-08T22:40:50Z 2021-01-01T00:00:00 ```    When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:  - Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z` - Unqualified local time: `2021-11-15T01:00:00` - UTC time offsets: `2021-11-15T01:00:00-05:00`  > Time zones >  > Not all dates from Codat will contain information about time zones.   > Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced., currency: str(ISO4217) # The currency data type in Codat is the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code, e.g. _GBP_.  ## Unknown currencies  In line with the ISO 4217 specification, the code _XXX_ is used when the data source does not return a currency for a transaction.   There are only a very small number of edge cases where this currency code is returned by the Codat system., lineItems: [map{description: str, unitAmount!: num(decimal), quantity!: num(decimal), discountAmount: num(decimal), discountPercentage: num(decimal), subTotal: num(decimal), taxAmount: num(decimal), totalAmount: num(decimal), accountRef: map, taxRateRef: map, itemRef: map, trackingCategoryRefs: [map], tracking: map}] # An array of line items., paymentAllocations: [map{payment!: map, allocation!: map}] # An array of payment allocations., subTotal: num(decimal) # The total amount of the direct costs, excluding any taxes., taxAmount: num(decimal) # The total amount of tax on the direct costs., totalAmount: num(decimal) # The amount of the direct costs, inclusive of tax.}\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out., reference: str # User-friendly reference for the direct cost., note: str # A note attached to the direct cost., contactRef: map{id!: str, dataType: str}, currencyRate: num(decimal) # Rate to convert the total amount of the payment into the base currency for the company at the time of the payment.  Currency rates in Codat are implemented as the multiple of foreign currency units to each base currency unit.    It is not possible to perform the currency conversion with two or more non-base currencies participating in the transaction. For example, if a company's base currency is USD, and it has a bill issued in EUR, then the bill payment must happen in USD or EUR.  Where the currency rate is provided by the underlying accounting software, it will be available from Codat with the same precision (up to a maximum of 9 decimal places).   For accounting software which do not provide an explicit currency rate, it is calculated as `baseCurrency / foreignCurrency` and will be returned to 9 decimal places.  ## Examples with base currency of GBP  | Foreign Currency | Foreign Amount | Currency Rate | Base Currency Amount (GBP) | | :--------------- | :------------- | :------------ | :------------------------- | | **USD**          | $20            | 0.781         | £15.62                     | | **EUR**          | €20            | 0.885         | £17.70                     | | **RUB**          | ₽20            | 0.011         | £0.22                      |  ## Examples with base currency of USD  | Foreign Currency | Foreign Amount | Currency Rate | Base Currency Amount (USD) | | :--------------- | :------------- | :------------ | :------------------------- | | **GBP**          | £20            | 1.277         | $25.54                     | | **EUR**          | €20            | 1.134         | $22.68                     | | **RUB**          | ₽20            | 0.015         | $0.30                      |   ### Integration-specific details  | Integration       | Scenario                                        | System behavior                                                                                                                                                      | |-------------------|-------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------| | QuickBooks Online | Transaction currency differs from base currency | If currency rate value is left `null`, a rate of 1 will be used by QBO by default. To override this, specify a currencyRate in the request body.  |, supplementalData: map{content: map} # Supplemental data is additional data you can include in our standard data types.   It is referenced as a configured dynamic key value pair that is unique to the accounting software. [Learn more](https://docs.codat.io/using-the-api/supplemental-data/overview) about supplemental data.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n@example_request {\"reference\":\"test ref\",\"note\":\"directCost 21/03 09.20\",\"contactRef\":{\"id\":\"80000001-1671793885\",\"dataType\":\"suppliers\"},\"issueDate\":\"2023-03-21T10:19:52.223Z\",\"currency\":\"USD\",\"lineItems\":[{\"description\":\"test description line 1\",\"unitAmount\":7,\"quantity\":1,\"discountAmount\":0,\"discountPercentage\":0,\"subTotal\":99,\"taxAmount\":360,\"totalAmount\":70,\"accountRef\":{\"id\":\"8000000D-1671793811\",\"name\":\"Purchases - Hardware for Resale\"},\"itemRef\":{\"id\":\"80000001-1674566705\",\"name\":\"item test\"},\"trackingCategoryRefs\":[{\"id\":\"80000001-1674553252\",\"name\":\"Class 1\"}]}],\"paymentAllocations\":[{\"payment\":{\"note\":\"payment allocations note\",\"reference\":\"payment allocations reference\",\"accountRef\":{\"id\":\"80000028-1671794219\",\"name\":\"Bank Account 1\"},\"paidOnDate\":\"2023-01-28T10:19:52.223Z\",\"totalAmount\":54},\"allocation\":{\"currencyRate\":0,\"allocatedOnDate\":\"2023-01-29T10:19:52.223Z\",\"totalAmount\":88}}],\"subTotal\":362,\"taxAmount\":4,\"totalAmount\":366}\n\n@endpoint DELETE /companies/{companyId}/connections/{connectionId}/push/directCosts/{directCostId}\n@desc Delete direct cost\n@returns(200) {changes: [map]?, dataType: str, companyId: str(uuid), pushOperationKey: str(uuid), dataConnectionKey: str(uuid), requestedOnUtc: str, completedOnUtc: str, timeoutInMinutes: int(int32)?, timeoutInSeconds: int(int32)?, status: str, errorMessage: str?, validation: map{errors: [map]?, warnings: [map]?}, statusCode: int} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/directCosts/{directCostId}/attachment\n@desc Upload direct cost attachment\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/directCosts/{directCostId}/attachments/{attachmentId}\n@desc Get direct cost attachment\n@required {attachmentId: str(uuid) # Unique identifier for an attachment.}\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/directCosts/{directCostId}/attachments/{attachmentId}/download\n@desc Download direct cost attachment\n@required {attachmentId: str(uuid) # Unique identifier for an attachment.}\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/directCosts/{directCostId}/attachments\n@desc List direct cost attachments\n@returns(200) {attachments: [map]?} # Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/directIncomes\n@desc List direct incomes\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/directIncomes/{directIncomeId}\n@desc Get direct income\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/options/directIncomes\n@desc Get create direct income model\n@returns(200) {type: str, displayName: str, description: str, required: bool, properties: map?, options: [map]?, validation: map{warnings: [map]?, information: [map]?}} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/directIncomes\n@desc Create direct income\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n@example_request {\"reference\":null,\"note\":\"test note\",\"contactRef\":{\"id\":\"80000002-1674552702\",\"dataType\":\"customers\"},\"issueDate\":\"2023-02-01T16:27:40.023Z\",\"currency\":\"USD\",\"lineItems\":[{\"description\":\"line description 1\",\"unitAmount\":9100,\"quantity\":68,\"discountAmount\":0,\"discountPercentage\":0,\"subTotal\":5320,\"taxAmount\":37,\"totalAmount\":12,\"accountRef\":{\"id\":\"80000007-1671793811\"},\"trackingCategoryRefs\":[{\"id\":\"80000002-1674553271\",\"name\":\"string\"}]}],\"paymentAllocations\":[{\"payment\":{\"id\":\"3594002235\",\"note\":\"payment allocations note\",\"reference\":\"230202 1217\",\"accountRef\":{\"id\":\"80000028-1671794219\"},\"currency\":\"USD\",\"currencyRate\":1,\"paidOnDate\":\"2023-02-01T16:27:40.023Z\",\"totalAmount\":560},\"allocation\":{\"currency\":\"USD\",\"currencyRate\":1,\"allocatedOnDate\":\"2023-02-01T16:27:40.023Z\",\"totalAmount\":560}}],\"subTotal\":0,\"taxAmount\":9999,\"totalAmount\":9999,\"metadata\":{\"isDeleted\":true}}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/directIncomes/{directIncomeId}/attachment\n@desc Create direct income attachment\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/directIncomes/{directIncomeId}/attachments/{attachmentId}\n@desc Get direct income attachment\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out.}\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/directIncomes/{directIncomeId}/attachments/{attachmentId}/download\n@desc Download direct income attachment\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/directIncomes/{directIncomeId}/attachments\n@desc List direct income attachments\n@returns(200) {attachments: [map]?} # Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/financials/balanceSheet\n@desc Get balance sheet\n@required {periodLength: int(int32) # Number of months defining the period of interest., periodsToCompare: int(int32) # Number of periods with `periodLength` to compare.}\n@optional {startMonth: str # The month the report starts from.}\n@returns(200) {currency: str(ISO4217), reports: [map], mostRecentAvailableMonth: str, earliestAvailableMonth: str} # Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/financials/profitAndLoss\n@desc Get profit and loss\n@required {periodLength: int(int32) # Number of months defining the period of interest., periodsToCompare: int(int32) # Number of periods with `periodLength` to compare.}\n@optional {startMonth: str # The month the report starts from.}\n@returns(200) {reports: [map], reportBasis: str, currency: str, mostRecentAvailableMonth: str, earliestAvailableMonth: str} # Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/financials/cashFlowStatement\n@desc Get cash flow statement\n@required {periodLength: int(int32) # Number of months defining the period of interest., periodsToCompare: int(int32) # Number of periods with `periodLength` to compare.}\n@optional {startMonth: str # The month the report starts from.}\n@returns(200) {reports: [map], reportBasis: str, reportInput: str, currency: str(ISO4217), mostRecentAvailableMonth: str, earliestAvailableMonth: str} # Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/info\n@desc Get company info\n@returns(200) {companyName: str?, accountingPlatformRef: str?, companyLegalName: str?, addresses: [map]?, phoneNumbers: [map]?, webLinks: [map]?, ledgerLockDate: str, registrationNumber: str?, taxNumber: str?, financialYearStartDate: str, baseCurrency: str?, sourceUrls: map?, createdDate: str, supplementalData: map{content: map?}} # Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/data/info\n@desc Refresh company info\n@returns(200) {datasetLogsUrl: str(uri)?, id: str(uuid), companyId: str(uuid), connectionId: str(uuid), dataType: str, status: str, errorMessage: str?, requested: str, completed: str, progress: int(int32), isCompleted: bool, isErrored: bool, validationInformationUrl: str(uri)?} # Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/invoices\n@desc List invoices\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/invoices/{invoiceId}\n@desc Get invoice\n@required {invoiceId: str # Unique identifier for an invoice.}\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/invoices/{invoiceId}/pdf\n@desc Get invoice as PDF\n@required {invoiceId: str # Unique identifier for an invoice.}\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/invoices/{invoiceId}/attachments\n@desc List invoice attachments\n@required {invoiceId: str # Unique identifier for an invoice.}\n@returns(200) {attachments: [map]?} # Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/invoices/{invoiceId}/attachments/{attachmentId}\n@desc Get invoice attachment\n@required {invoiceId: str # Unique identifier for an invoice., attachmentId: str(uuid) # Unique identifier for an attachment.}\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/invoices/{invoiceId}/attachments/{attachmentId}/download\n@desc Download invoice attachment\n@required {invoiceId: str # Unique identifier for an invoice., attachmentId: str(uuid) # Unique identifier for an attachment.}\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/options/invoices\n@desc Get create/update invoice model\n@returns(200) {type: str, displayName: str, description: str, required: bool, properties: map?, options: [map]?, validation: map{warnings: [map]?, information: [map]?}} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/invoices\n@desc Create invoice\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n@example_request {\"invoiceNumber\":\"18/04 15.26\",\"note\":\"invoice push 20230418 15.26\",\"customerRef\":{\"id\":\"80000002-1674552702\",\"companyName\":\"Test Customer 1\"},\"salesOrderRefs\":[],\"issueDate\":\"2023-04-18T11:09:01.438Z\",\"dueDate\":\"2023-05-24T11:09:01.438Z\",\"modifiedDate\":\"2023-02-14T11:09:01.438Z\",\"sourceModifiedDate\":\"2023-02-14T11:09:01.438Z\",\"paidOnDate\":\"2023-02-10T11:09:01.438Z\",\"currency\":\"USD\",\"currencyRate\":1,\"lineItems\":[{\"description\":\"lineItems.description 1\",\"unitAmount\":15,\"quantity\":2,\"discountAmount\":0,\"subTotal\":30,\"taxAmount\":0,\"totalAmount\":30,\"accountRef\":{\"id\":\"80000006-1671793811\",\"name\":\"Consulting Income\"},\"discountPercentage\":0,\"taxRateRef\":{\"id\":\"80000002-1671793802\",\"name\":\"Non (TAX CODE)\",\"effectiveTaxRate\":0},\"itemRef\":{\"id\":\"80000004-1675280003\",\"name\":\"test income item 1\"},\"trackingCategoryRefs\":[{\"id\":\"80000004-1674554660\",\"name\":\"Class 3\"}]}],\"paymentAllocations\":[{\"payment\":{\"id\":\"80000004-1789341990\",\"note\":\"string\",\"reference\":\"string\",\"accountRef\":{\"id\":\"string\",\"name\":\"string\"},\"currency\":\"USD\",\"currencyRate\":1,\"paidOnDate\":\"2023-02-14T11:09:01.438Z\",\"totalAmount\":725},\"allocation\":{\"currency\":\"USD\",\"currencyRate\":1,\"allocatedOnDate\":\"2023-02-14T11:09:01.438Z\",\"totalAmount\":725}}],\"withholdingTax\":[{\"name\":\"string\",\"amount\":0}],\"totalDiscount\":0,\"subTotal\":30,\"additionalTaxAmount\":0,\"additionalTaxPercentage\":0,\"totalTaxAmount\":0,\"totalAmount\":30,\"amountDue\":87326532,\"discountPercentage\":0,\"status\":\"Submitted\"}\n\n@endpoint PUT /companies/{companyId}/connections/{connectionId}/push/invoices/{invoiceId}\n@desc Update invoice\n@required {invoiceId: str # Unique identifier for an invoice.}\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out., forceUpdate: bool=false # When updating data in the destination platform Codat checks the `sourceModifiedDate` against the `lastupdated` date from the accounting software, if they're different Codat will return an error suggesting you should initiate another pull of the data. If this is set to `true` then the update will override this check.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint DELETE /companies/{companyId}/connections/{connectionId}/push/invoices/{invoiceId}\n@desc Delete invoice\n@required {invoiceId: str # Unique identifier for an invoice., companyId: str(uuid) # Unique identifier for a company., connectionId: str(uuid) # Unique identifier for a connection.}\n@returns(200) {changes: [map]?, dataType: str, companyId: str(uuid), pushOperationKey: str(uuid), dataConnectionKey: str(uuid), requestedOnUtc: str, completedOnUtc: str, timeoutInMinutes: int(int32)?, timeoutInSeconds: int(int32)?, status: str, errorMessage: str?, validation: map{errors: [map]?, warnings: [map]?}, statusCode: int} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/invoices/{invoiceId}/attachment\n@desc Upload invoice attachment\n@required {invoiceId: str # Unique identifier for an invoice.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/itemReceipts\n@desc List item receipts\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/itemReceipts/{itemReceiptId}\n@desc Get item receipt\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/items\n@desc List items\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/items/{itemId}\n@desc Get item\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/options/items\n@desc Get create item model\n@returns(200) {type: str, displayName: str, description: str, required: bool, properties: map?, options: [map]?, validation: map{warnings: [map]?, information: [map]?}} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/items\n@desc Create item\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/journalEntries\n@desc List journal entries\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/journalEntries/{journalEntryId}\n@desc Get journal entry\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/options/journalEntries\n@desc Get create journal entry model\n@returns(200) {type: str, displayName: str, description: str, required: bool, properties: map?, options: [map]?, validation: map{warnings: [map]?, information: [map]?}} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/journalEntries\n@desc Create journal entry\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n@example_request {\"description\":\"record level description\",\"postedOn\":\"2023-02-23T19:49:16.052Z\",\"createdOn\":\"2023-02-22T19:49:16.052Z\",\"updatedOn\":\"2023-02-21T19:49:16.052Z\",\"journalRef\":{\"id\":\"12\"},\"journalLines\":[{\"description\":\"journalLines.description debit\",\"netAmount\":23.02,\"currency\":\"USD\",\"accountRef\":{\"id\":\"80000019-1671793811\",\"name\":\"Office Supplies\"},\"tracking\":{\"recordRefs\":[{\"id\":\"80000001-1674553252\",\"dataType\":\"customers\"}]}},{\"description\":\"journalLines.description credit\",\"netAmount\":-23.02,\"currency\":\"USD\",\"accountRef\":{\"id\":\"8000001E-1671793811\",\"name\":\"Utilities\"},\"tracking\":{\"recordRefs\":[{\"id\":\"80000002-1674553271\",\"dataType\":\"trackingCategories\"}]}}],\"recordRef\":{\"id\":\"80000002-6722155312\",\"dataType\":\"bills\"},\"metadata\":{\"isDeleted\":true}}\n\n@endpoint DELETE /companies/{companyId}/connections/{connectionId}/push/journalEntries/{journalEntryId}\n@desc Delete journal entry\n@returns(200) {changes: [map]?, dataType: str, companyId: str(uuid), pushOperationKey: str(uuid), dataConnectionKey: str(uuid), requestedOnUtc: str, completedOnUtc: str, timeoutInMinutes: int(int32)?, timeoutInSeconds: int(int32)?, status: str, errorMessage: str?, validation: map{errors: [map]?, warnings: [map]?}, statusCode: int} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/journals\n@desc List journals\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/journals/{journalId}\n@desc Get journal\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/options/journals\n@desc Get create journal model\n@returns(200) {type: str, displayName: str, description: str, required: bool, properties: map?, options: [map]?, validation: map{warnings: [map]?, information: [map]?}} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/journals\n@desc Create journal\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out., journalCode: str # Native journal number or code., name: str # Journal name. The maximum length for a journal name is 256 characters. All characters above that number will be truncated., type: str # The type of the journal., parentId: str # Parent journal ID. If the journal is a parent journal, this value is not present., hasChildren: bool # If the journal has child journals, this value is true. If it doesn’t, it is false., createdOn: str # In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example:  ``` 2020-10-08T22:40:50Z 2021-01-01T00:00:00 ```    When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:  - Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z` - Unqualified local time: `2021-11-15T01:00:00` - UTC time offsets: `2021-11-15T01:00:00-05:00`  > Time zones >  > Not all dates from Codat will contain information about time zones.   > Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced., status: str(Unknown/Active/Archived) # Current journal status.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/paymentMethods\n@desc List payment methods\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/paymentMethods/{paymentMethodId}\n@desc Get payment method\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/payments\n@desc List payments\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/payments/{paymentId}\n@desc Get payment\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/payments\n@desc List payments\n@required {linkType: str # The type of link on a payment's line in Codat.}\n@optional {query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/options/payments\n@desc Get create payment model\n@returns(200) {type: str, displayName: str, description: str, required: bool, properties: map?, options: [map]?, validation: map{warnings: [map]?, information: [map]?}} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/payments\n@desc Create payment\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n@example_request {\"customerRef\":{\"id\":\"80000002-1674552702\",\"companyName\":\"string\"},\"accountRef\":{\"id\":\"8000002E-1675267199\",\"name\":\"Undeposited Funds\"},\"paymentMethodRef\":{\"id\":\"string\",\"name\":\"string\"},\"totalAmount\":28,\"currency\":\"USD\",\"currencyRate\":1,\"date\":\"2023-02-10T11:47:04.792Z\",\"note\":\"note 14/02 1147\",\"lines\":[{\"amount\":28,\"links\":[{\"type\":\"Invoice\",\"id\":\"181-1676374586\",\"amount\":-28,\"currencyRate\":1}],\"allocatedOnDate\":\"2023-02-11T11:47:04.792Z\"}],\"reference\":\"ref 14/02 1147\"}\n\n@endpoint GET /companies/{companyId}/data/purchaseOrders\n@desc List purchase orders\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/purchaseOrders/{purchaseOrderId}\n@desc Get purchase order\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/options/purchaseOrders\n@desc Get create/update purchase order model\n@returns(200) {type: str, displayName: str, description: str, required: bool, properties: map?, options: [map]?, validation: map{warnings: [map]?, information: [map]?}} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/purchaseOrders\n@desc Create purchase order\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint PUT /companies/{companyId}/connections/{connectionId}/push/purchaseOrders/{purchaseOrderId}\n@desc Update purchase order\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out., forceUpdate: bool=false # When updating data in the destination platform Codat checks the `sourceModifiedDate` against the `lastupdated` date from the accounting software, if they're different Codat will return an error suggesting you should initiate another pull of the data. If this is set to `true` then the update will override this check.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/purchaseOrders/{purchaseOrderId}/pdf\n@desc Download purchase order as PDF\n@required {purchaseOrderId: str # Unique identifier for a purchase order.}\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/purchaseOrders/{purchaseOrderId}/attachments\n@desc List purchase order attachments\n@required {purchaseOrderId: str # Unique identifier for a purchase order.}\n@returns(200) {attachments: [map]?} # Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/purchaseOrders/{purchaseOrderId}/attachments/{attachmentId}\n@desc Get purchase order attachment\n@required {purchaseOrderId: str # Unique identifier for a purchase order., attachmentId: str(uuid) # Unique identifier for an attachment.}\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/purchaseOrders/{purchaseOrderId}/attachments/{attachmentId}/download\n@desc Download purchase order attachment\n@required {purchaseOrderId: str # Unique identifier for a purchase order., attachmentId: str(uuid) # Unique identifier for an attachment.}\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/salesOrders\n@desc List sales orders\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/salesOrders/{salesOrderId}\n@desc Get sales order\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/suppliers\n@desc List suppliers\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/suppliers/{supplierId}\n@desc Get supplier\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/options/suppliers\n@desc Get create/update supplier model\n@returns(200) {type: str, displayName: str, description: str, required: bool, properties: map?, options: [map]?, validation: map{warnings: [map]?, information: [map]?}} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/suppliers\n@desc Create supplier\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n@example_request {\"id\":\"73593\",\"supplierName\":\"test 20230420 1004\",\"contactName\":\"Joe Bloggs\",\"status\":\"Active\"}\n\n@endpoint PUT /companies/{companyId}/connections/{connectionId}/push/suppliers/{supplierId}\n@desc Update supplier\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out., forceUpdate: bool=false # When updating data in the destination platform Codat checks the `sourceModifiedDate` against the `lastupdated` date from the accounting software, if they're different Codat will return an error suggesting you should initiate another pull of the data. If this is set to `true` then the update will override this check.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/suppliers/{supplierId}/attachments\n@desc List supplier attachments\n@returns(200) {attachments: [map]?} # Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/suppliers/{supplierId}/attachments/{attachmentId}\n@desc Get supplier attachment\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/suppliers/{supplierId}/attachments/{attachmentId}/download\n@desc Download supplier attachment\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/taxRates\n@desc List all tax rates\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/taxRates/{taxRateId}\n@desc Get tax rate\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/trackingCategories\n@desc List tracking categories\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/data/trackingCategories/{trackingCategoryId}\n@desc Get tracking categories\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/transfers\n@desc List transfers\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/transfers/{transferId}/attachment\n@desc Upload transfer attachment\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/transfers/{transferId}\n@desc Get transfer\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/options/transfers\n@desc Get create transfer model\n@returns(200) {type: str, displayName: str, description: str, required: bool, properties: map?, options: [map]?, validation: map{warnings: [map]?, information: [map]?}} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/transfers\n@desc Create transfer\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n@example_request {\"description\":\"test transfers push 20230126 12.08\",\"contactRef\":{\"id\":\"80000028-167239230944\",\"dataType\":\"customers\"},\"date\":\"2023-01-26T11:51:18.104Z\",\"from\":{\"accountRef\":{\"id\":\"80000028-1671794219\",\"dataType\":\"bankAccounts\"},\"amount\":12},\"to\":{\"accountRef\":{\"id\":\"80000004-1671793811\",\"dataType\":\"bankAccounts\"},\"amount\":12},\"status\":\"Unknown\",\"trackingCategoryRefs\":[{\"id\":\"80000001-1674553252\",\"name\":\"Class 1\"}],\"metadata\":{\"isDeleted\":true}}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/bankAccounts\n@desc List bank accounts\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/bankAccounts/{accountId}\n@desc Get bank account\n@returns(200) Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/options/bankAccounts\n@desc Get create/update bank account model\n@returns(200) {type: str, displayName: str, description: str, required: bool, properties: map?, options: [map]?, validation: map{warnings: [map]?, information: [map]?}} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/bankAccounts\n@desc Create bank account\n@optional {allowSyncOnPushComplete: bool=true # Allow a sync upon push completion., timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint PUT /companies/{companyId}/connections/{connectionId}/push/bankAccounts/{bankAccountId}\n@desc Update bank account\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out., forceUpdate: bool=false # When updating data in the destination platform Codat checks the `sourceModifiedDate` against the `lastupdated` date from the accounting software, if they're different Codat will return an error suggesting you should initiate another pull of the data. If this is set to `true` then the update will override this check.}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/data/bankAccounts/{accountId}/bankTransactions\n@desc List bank account transactions\n@required {companyId: str(uuid) # Unique identifier for a company., connectionId: str(uuid) # Unique identifier for a connection., accountId: str # Unique identifier for an account.}\n@optional {page: int(int32)=1 # Page number. [Read more](https://docs.codat.io/using-the-api/paging)., pageSize: int(int32)=100 # Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging)., query: str # Codat query string. [Read more](https://docs.codat.io/using-the-api/querying)., orderBy: str # Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).}\n@returns(200) Success\n@errors {400: Your `query` parameter was not correctly formed, 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 409: The data type's dataset has not been requested or is still syncing., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/connections/{connectionId}/options/bankAccounts/{accountId}/bankTransactions\n@desc Get create bank account transactions model\n@required {companyId: str(uuid) # Unique identifier for a company., connectionId: str(uuid) # Unique identifier for a connection., accountId: str # Unique identifier for an account.}\n@returns(200) {type: str, displayName: str, description: str, required: bool, properties: map?, options: [map]?, validation: map{warnings: [map]?, information: [map]?}} # Success\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint POST /companies/{companyId}/connections/{connectionId}/push/bankAccounts/{accountId}/bankTransactions\n@desc Create bank account transactions\n@required {companyId: str(uuid) # Unique identifier for a company., connectionId: str(uuid) # Unique identifier for a connection., accountId: str # Unique identifier for an account.}\n@optional {timeoutInMinutes: int(int32) # Time limit for the push operation to complete before it is timed out., allowSyncOnPushComplete: bool=true # Allow a sync upon push completion., accountId: str # Unique identifier for a bank account., transactions: [map{id: any, amount: any, date: str, description: any, balance: any}]}\n@returns(200) Success\n@errors {400: The request made is not valid., 401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/reports/agedDebtor/available\n@desc Aged debtors report available\n@returns(200) OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/reports/agedDebtor\n@desc Aged debtors report\n@optional {reportDate: str(date) # Date the report is generated up to., numberOfPeriods: int(int32) # Number of periods to include in the report., periodLengthDays: int(int32) # The length of period in days.}\n@returns(200) {generated: str, reportDate: str, data: [map]} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/reports/agedCreditor/available\n@desc Aged creditors report available\n@returns(200) OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@endpoint GET /companies/{companyId}/reports/agedCreditor\n@desc Aged creditors report\n@optional {reportDate: str(date) # Date the report is generated up to., numberOfPeriods: int(int32) # Number of periods to include in the report., periodLengthDays: int(int32) # The length of period in days.}\n@returns(200) {generated: str, reportDate: str, data: [map]} # OK\n@errors {401: Your API request was not properly authorized., 402: An account limit has been exceeded. The type of limit is described in the error property:  - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io., 403: You are using an outdated API key or a key not associated with that resource., 404: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted., 429: Too many requests were made in a given amount of time. Wait a short period and then try again., 500: There is a problem with our server. Please try again later., 503: The Codat API is temporarily offline for maintenance. Please try again later.}\n\n@end\n"}}