generated: '2026-08-06' method: generated source: openapi/airtm-enterprise-v1-openapi.json, openapi/airtm-enterprise-v2-openapi.json 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: 69 by_action_class: acting: 28 connected: 41 by_consequence: physical: 16 read: 41 write: 11 safety-critical: 1 human_in_the_loop_required: 1 operations: - path: purchases method: post operationId: Purchases _ Payins_purchases-payins/create-purchase 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: purchases method: get operationId: Purchases _ Payins_purchases-payins/get-purchase x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: payouts method: post operationId: Payments _ Payouts_payments-payouts/create-payout 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: payouts/{payoutId}/commit method: post operationId: Payments _ Payouts_payments-payouts/commit-payout 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: payouts/one-step method: post operationId: Payments _ Payouts_payments-payouts/one-step-payout 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: payouts/events/:payoutId method: get operationId: Payments _ Payouts_payments-payouts/get-payout-event x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: payouts/{payoutId}/cancel method: post operationId: Payments _ Payouts_payments-payouts/cancel-pending-payments-copy-1 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: operations method: get operationId: Operations_operations/list-operations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: operations/{operationId} method: get operationId: Operations_operations/get-operation-detail x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: code/{code} method: get operationId: Operations_operations/get-operation-by-code x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: partners/me method: get operationId: Partner_partner/my-balance x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: bulk-payments method: post operationId: Bulk Payments_bulk-payments/new-bulk-payment 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: bulk-payments method: get operationId: Bulk Payments_bulk-payments/get-bulk-payments-history x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: bulk-payments/{bulkPaymentId} method: get operationId: Bulk Payments_bulk-payments/get-bulk-payments-details x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: bulk-payments/{bulkPaymentId}/errors method: get operationId: Bulk Payments_bulk-payments/get-failed-bulk-payments x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: bulk-payments/{bulkPaymentId}/payments method: get operationId: Bulk Payments_bulk-payments/get-bulk-payments-by-id x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: bulk-payments/{bulkPaymentId}/payments/cancel method: post operationId: Bulk Payments_bulk-payments/cancel-pending-payments-1 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: account-status method: get operationId: Account Status_account-status/get-account-status x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /withdrawals method: post operationId: CreateWithdrawal 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: /withdrawals method: get operationId: ListWithdrawals x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /withdrawals/{id} method: get operationId: GetWithdrawalById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /users/{email} method: get operationId: GetUserByEmail x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /reports method: post operationId: GenerateReport 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: /reports method: get operationId: ListReports x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /reports/{id} method: get operationId: GetReport x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /reports/{id}/file method: get operationId: GetReportFile x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /payouts method: post operationId: CreatePayout 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: /payouts method: get operationId: ListPayouts x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /payouts/{id} method: get operationId: GetPayout x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /payouts/{id} method: delete operationId: CancelPayout 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: /payouts/by-code/{code} method: get operationId: GetPayoutByCode x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /payouts/{id}/events method: get operationId: GetPayoutEvents x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /payouts/{id}/commit method: post operationId: CommitPayout 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: /payins method: post operationId: CreatePayin 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: /payins method: get operationId: ListPayins x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /payins/{id} method: get operationId: GetPayinById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /payins/{id} method: delete operationId: CancelPayin 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: /payins/by-code/{code} method: get operationId: GetPayinByCode x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /me method: get operationId: GetMe x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /me/balance method: get operationId: GeBalance x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /crypto-accounts method: post operationId: CreateExternalCryptoAccount 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: /crypto-accounts method: get operationId: ListExternalCryptoAccounts x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /bank-accounts method: post operationId: CreateExternalBankAccount 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: /bank-accounts method: get operationId: ListExternalBankAccounts x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /embedded/webhooks/portal-url method: get operationId: GetPortalUrl x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /embedded/transactions method: get operationId: ListTransactions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /embedded/transactions method: post operationId: CreateTransaction 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: /embedded/transactions/{id} method: get operationId: GetTransactionById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /embedded/senders method: post operationId: CreateSender 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: /embedded/senders method: get operationId: GetSenderByExternalId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /embedded/senders/{senderId} method: get operationId: GetSenderById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /embedded/senders/{senderId} method: put operationId: UpdateSenderById 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: /embedded/receivers method: post operationId: CreateReceiver 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: /embedded/receivers method: get operationId: GetReceiverByExternalId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /embedded/receivers/{receiverId} method: get operationId: GetReceiverById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /embedded/receivers/{receiverId} method: put operationId: UpdateReceiver 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: /embedded/receivers/{receiverId}/payment-rail-instance method: post operationId: AddPaymentRailInstance 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: /embedded/receivers/{receiverId}/payment-rail-instance/{paymentRailInstanceId} method: delete operationId: RemovePaymentRailInstance 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: /embedded/quotes method: post operationId: CreateQuote 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: /embedded/catalog method: get operationId: ListCatalog x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /deposits method: get operationId: ListDeposits x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /deposits/{id} method: get operationId: GetDeposit x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /bulk-payouts method: post operationId: CreateBulkPayout 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: /bulk-payouts method: get operationId: ListBulkPayouts x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /bulk-payouts/{id} method: get operationId: GetBulkPayout x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api-keys method: post operationId: CreateApiKey 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: /api-keys method: get operationId: ListApiKeys x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api-keys/{id} method: delete operationId: RevokeApiKey x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /api-keys/{id}/allowed-ips method: post operationId: ToggleAllowedIp 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