generated: '2026-07-15' method: generated source: openapi/codat-io-openapi.yml description: Recommended x-agentic-access execution contracts, classified heuristically from the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind audience per deployment. See research/curity/agentic-governance/. summary: operations: 52 by_action_class: connected: 36 acting: 16 by_consequence: read: 36 write: 15 physical: 1 human_in_the_loop_required: 0 operations: - path: /companies method: get operationId: listCompanies x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies method: post operationId: createCompany x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /companies/{companyId} method: get operationId: getCompany x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId} method: patch operationId: updateCompany x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /companies/{companyId} method: delete operationId: deleteCompany x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /companies/{companyId}/connections method: get operationId: listConnections x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections method: post operationId: createConnection x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /companies/{companyId}/connections/{connectionId} method: get operationId: getConnection x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId} method: delete operationId: deleteConnection x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /companies/{companyId}/connections/{connectionId} method: patch operationId: unlinkConnection x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /companies/{companyId}/data/all method: post operationId: refreshAllData x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /companies/{companyId}/data/queue/{dataType} method: post operationId: refreshDataType x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /companies/{companyId}/dataStatus method: get operationId: getDataStatus x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /webhooks method: get operationId: listWebhookConsumers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /webhooks method: post operationId: createWebhookConsumer x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /integrations method: get operationId: listIntegrations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /integrations/{platformKey} method: get operationId: getIntegration x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/data/accounts method: get operationId: listAccounts x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/data/accounts/{accountId} method: get operationId: getAccount x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/data/invoices method: get operationId: listInvoices x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/data/invoices/{invoiceId} method: get operationId: getInvoice x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/data/bills method: get operationId: listBills x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/data/journalEntries method: get operationId: listJournalEntries x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/data/customers method: get operationId: listCustomers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/data/suppliers method: get operationId: listSuppliers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/data/financials/balanceSheet method: get operationId: getBalanceSheet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/data/financials/profitAndLoss method: get operationId: getProfitAndLoss x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/data/financials/cashFlowStatement method: get operationId: getCashFlowStatement x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/data/banking-accounts method: get operationId: listBankingAccounts x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/data/banking-transactions method: get operationId: listBankingTransactions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/data/banking-transactionCategories method: get operationId: listBankingTransactionCategories x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/data/commerce-customers method: get operationId: listCommerceCustomers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/data/commerce-orders method: get operationId: listCommerceOrders x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/data/commerce-payments method: get operationId: listCommercePayments x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/data/commerce-products method: get operationId: listCommerceProducts x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/reports/enhancedBalanceSheet/accounts method: get operationId: getEnhancedBalanceSheetAccounts x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/reports/enhancedProfitAndLoss/accounts method: get operationId: getEnhancedProfitAndLossAccounts x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /data/companies/{companyId}/assess/dataTypes/{dataType}/dataIntegrity/status method: get operationId: getDataIntegrityStatus x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/data/bankAccounts method: get operationId: listBankFeedBankAccounts x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/data/bankAccounts method: put operationId: createBankFeedBankAccounts x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /companies/{companyId}/connections/{connectionId}/bankFeedAccounts method: get operationId: getBankFeedConfiguration x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/payables/bills method: get operationId: listPayablesBills x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/connections/{connectionId}/payables/bills method: post operationId: createPayableBill x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /companies/{companyId}/connections/{connectionId}/payables/bills/{billId}/payment method: post operationId: createBillPayment x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /companies/{companyId}/connections/{connectionId}/payables/suppliers method: post operationId: createPayableSupplier x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /companies/{companyId}/sync/expenses/expense-transactions method: post operationId: createExpenseTransactions x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /companies/{companyId}/sync/expenses/syncs/latest/status method: get operationId: getLatestExpenseSyncStatus x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/sync/expenses/mappingOptions method: get operationId: getExpenseMappingOptions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{companyId}/sync/commerce/latest method: post operationId: requestCommerceSync x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /config/companies/{companyId}/sync/commerce method: get operationId: getCommerceConfig x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /config/companies/{companyId}/sync/commerce method: post operationId: setCommerceConfig x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /meta/companies/{companyId}/sync/commerce/status method: get operationId: getCommerceSyncStatus x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none