generated: '2026-07-24' method: generated source: openapi/weel-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: 51 by_action_class: connected: 24 acting: 27 by_consequence: read: 24 write: 27 human_in_the_loop_required: 0 operations: - path: /v2/businesses/{client_id}/transactions method: get operationId: listTransactions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/businesses/{client_id}/transactions/{transaction_id} method: get operationId: getTransaction x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/statements method: get operationId: listStatements x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/users method: get operationId: listUsers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/roles method: get operationId: listRoles x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/users/{user_id} method: get operationId: getUser x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/users/{user_id} method: patch operationId: updateUser 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: /v1/businesses/{client_id}/users/{user_id} method: delete operationId: deleteUser 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: /v1/businesses/{client_id}/invites method: get operationId: listInvites x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/invites method: post operationId: createInvite 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: /v1/businesses/{client_id}/invites/{invite_id} method: delete operationId: cancelInvite 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: /v1/businesses/{client_id}/users/{user_id}/budget-members method: get operationId: listBudgetMembersByUser x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/budgets method: get operationId: listBudgets x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/budgets method: post operationId: createBudget 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: /v1/businesses/{client_id}/budgets/{budget_id} method: get operationId: getBudget x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/budgets/{budget_id} method: patch operationId: updateBudget 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: /v1/businesses/{client_id}/budgets/{budget_id} method: delete operationId: deleteBudget 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: /v1/businesses/{client_id}/budgets/{budget_id}/topups method: get operationId: listBudgetTopups x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/budgets/{budget_id}/topups method: post operationId: createBudgetTopup 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: /v1/businesses/{client_id}/budgets/{budget_id}/members method: get operationId: listBudgetMembers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/budgets/{budget_id}/members method: post operationId: createBudgetMember 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: /v1/businesses/{client_id}/budgets/{budget_id}/members/{budget_member_id} method: get operationId: getBudgetMember x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/budgets/{budget_id}/members/{budget_member_id} method: patch operationId: updateBudgetMember 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: /v1/businesses/{client_id}/budgets/{budget_id}/members/{budget_member_id} method: delete operationId: deleteBudgetMember 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: /v1/businesses/{client_id}/budgets/{budget_id}/owners method: get operationId: listBudgetOwners x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/budgets/{budget_id}/owners method: post operationId: createBudgetOwner 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: /v1/businesses/{client_id}/budgets/{budget_id}/owners/{budget_owner_id} method: delete operationId: deleteBudgetOwner 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: /v1/businesses/{client_id}/budgets/{budget_id}/members/{budget_member_id}/topups method: get operationId: listBudgetMemberTopups x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/budgets/{budget_id}/members/{budget_member_id}/topups method: post operationId: createBudgetMemberTopup 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: /v1/businesses/{client_id}/balance method: get operationId: listBalances x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/custom-fields method: get operationId: listCustomFields x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/custom-fields method: post operationId: createCustomField 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: /v1/businesses/{client_id}/custom-fields/{custom_field_id} method: get operationId: getCustomField x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/custom-fields/{custom_field_id} method: patch operationId: updateCustomField 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: /v1/businesses/{client_id}/custom-fields/{custom_field_id} method: delete operationId: deleteCustomField 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: /v1/businesses/{client_id}/custom-fields/{custom_field_id}/options method: get operationId: listCustomFieldOptions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/custom-fields/{custom_field_id}/options method: post operationId: createCustomFieldOption 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: /v1/businesses/{client_id}/custom-fields/{custom_field_id}/options/{option_id} method: patch operationId: updateCustomFieldOption 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: /v1/businesses/{client_id}/custom-fields/{custom_field_id}/options/{option_id} method: delete operationId: deleteCustomFieldOption 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: /v1/businesses/{client_id}/custom-fields/{custom_field_id}/budgets method: get operationId: listCustomFieldBudgets x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/custom-fields/{custom_field_id}/budgets method: post operationId: linkCustomFieldBudget 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: /v1/businesses/{client_id}/custom-fields/{custom_field_id}/budgets/{budget_id} method: delete operationId: unlinkCustomFieldBudget 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: /v1/businesses/{client_id}/accounting-codes method: get operationId: listAccountingCodes x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/accounting-codes method: post operationId: upsertAccountingCode 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: /v1/businesses/{client_id}/accounting-codes/{accounting_code_id} method: delete operationId: deleteAccountingCode 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: /v1/businesses/{client_id}/categories method: get operationId: listCategories x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/categories method: post operationId: createCategory 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: /v1/businesses/{client_id}/categories/{category_id} method: patch operationId: updateCategory 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: /v1/businesses/{client_id}/categories/{category_id} method: delete operationId: deleteCategory 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: /v1/businesses/{client_id}/tax-rates method: get operationId: listTaxRates x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/businesses/{client_id}/tax-rates/{tax_rate_id} method: get operationId: getTaxRate x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none