Moniepoint Agentic Access
Moniepoint exposes 63 API operations that an AI agent could call, of which 33 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.
By consequence: 30 read, 15 write, and 18 physical.
Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.
By consequence
Highest-consequence actions
The physical and safety-critical operations an agent could invoke — the ones that most warrant scoped tokens, tight TTLs, and escalation. Full per-operation contracts are in the source below.
| Method | Path | Consequence | Human-in-loop |
|---|---|---|---|
| POST | /api/v1/bank-transfer/reserved-accounts/limit | physical | conditional |
| PUT | /api/v1/bank-transfer/reserved-accounts/limit | physical | conditional |
| POST | /api/v1/bill-payment/customer-validate | physical | conditional |
| POST | /api/v1/bill-payment/process-bill | physical | conditional |
| POST | /api/v1/invoice/create | physical | conditional |
| DELETE | /api/v1/invoice/{invoiceReference}/cancel | physical | conditional |
| POST | /api/v1/merchant/bank-transfer/init-payment | physical | conditional |
| POST | /api/v1/merchant/cards/charge | physical | conditional |
| POST | /api/v1/merchant/cards/charge-card-token | physical | conditional |
| POST | /api/v1/push-payment/request | physical | conditional |
| POST | /api/v1/refunds/initiate-refund | physical | conditional |
| POST | /api/v2/bank-transfer/reserved-accounts | physical | conditional |
| PUT | /api/v2/bank-transfer/reserved-accounts | physical | conditional |
| DELETE | /api/v2/bank-transfer/reserved-accounts/{accountReference} | physical | conditional |
| POST | /api/v2/disbursements/bulk | physical | conditional |
| POST | /api/v2/disbursements/single | physical | conditional |
| POST | /api/v2/disbursements/single/resend-otp | physical | conditional |
| POST | /api/v2/disbursements/single/validate-otp | physical | conditional |
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/moniepoint-pos-api-openapi.yml, openapi/monnify-authentication-api-openapi.yml,
openapi/monnify-bills-payment-api-openapi.yml, openapi/monnify-collections-api-openapi.yml,
openapi/monnify-direct-debit-api-openapi.yml, openapi/monnify-disbursements-api-openapi.yml,
openapi/monnify-invoices-api-openapi.yml, openapi/monnify-refunds-api-openapi.yml, openapi/monnify-reserved-accounts-api-openapi.yml,
openapi/monnify-settlements-api-openapi.yml, openapi/monnify-sub-accounts-api-openapi.yml,
openapi/monnify-verification-api-openapi.yml, openapi/monnify-wallets-api-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: 63
by_action_class:
acting: 33
connected: 30
by_consequence:
physical: 18
read: 30
write: 15
human_in_the_loop_required: 0
operations:
- path: /api/v1/push-payment/request
method: post
operationId: pushPaymentRequest
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: /api/v1/push-payment/status/{reference}
method: get
operationId: pushPaymentStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/auth/login
method: post
operationId: monnifyLogin
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/v1/bill-payment/categories
method: get
operationId: listBillCategories
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/bill-payment/billers
method: get
operationId: listBillers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/bill-payment/biller-items
method: get
operationId: listBillerItems
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/bill-payment/customer-validate
method: post
operationId: validateBillsCustomer
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: /api/v1/bill-payment/process-bill
method: post
operationId: processBill
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: /api/v1/bill-payment/status
method: get
operationId: getBillStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/merchant/transactions/init-transaction
method: post
operationId: initializeTransaction
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/v1/merchant/bank-transfer/init-payment
method: post
operationId: payWithBankTransfer
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: /api/v1/merchant/cards/charge
method: post
operationId: chargeCard
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: /api/v1/merchant/cards/otp/authorize
method: post
operationId: authorizeOtp
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/v1/merchant/cards/charge-card-token
method: post
operationId: chargeCardToken
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: /api/v2/merchant/transactions/query
method: get
operationId: getTransactionStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/transactions/search
method: get
operationId: searchTransactions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/direct-debit/mandate
method: post
operationId: createMandate
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/v1/direct-debit/mandate/{mandateCode}
method: get
operationId: getMandate
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/direct-debit/mandate/{mandateCode}
method: delete
operationId: cancelMandate
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/v1/direct-debit/mandate/activation
method: post
operationId: activateMandate
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/v1/direct-debit/mandate/debit
method: post
operationId: debitMandate
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/v2/disbursements/single
method: post
operationId: initiateSingleTransfer
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: /api/v2/disbursements/single/validate-otp
method: post
operationId: authorizeSingleTransferOtp
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: /api/v2/disbursements/single/resend-otp
method: post
operationId: resendTransferOtp
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: /api/v2/disbursements/single/summary
method: get
operationId: getSingleTransferStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/disbursements/single/transactions
method: get
operationId: listSingleTransfers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/disbursements/bulk
method: post
operationId: initiateBulkTransfer
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: /api/v2/disbursements/bulk/summary
method: get
operationId: getBulkTransferSummary
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/disbursements/bulk/{batchReference}/transactions
method: get
operationId: listBulkTransferItems
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/disbursements/wallet-balance
method: get
operationId: getWalletBalance
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/sdk/transactions/banks
method: get
operationId: listBanks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/disbursements/account/validate
method: get
operationId: validateBankAccount
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/invoice/create
method: post
operationId: createInvoice
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: /api/v1/invoice/{invoiceReference}/details
method: get
operationId: getInvoice
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/invoice/all
method: get
operationId: listInvoices
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/invoice/{invoiceReference}/cancel
method: delete
operationId: cancelInvoice
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: /api/v1/refunds/initiate-refund
method: post
operationId: initiateRefund
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: /api/v1/refunds
method: get
operationId: listRefunds
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/refunds/{refundReference}
method: get
operationId: getRefundStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/bank-transfer/reserved-accounts
method: post
operationId: reserveAccountV2
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: /api/v2/bank-transfer/reserved-accounts
method: put
operationId: updateReservedAccountKyc
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: /api/v2/bank-transfer/reserved-accounts/{accountReference}
method: get
operationId: getReservedAccountV2
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/bank-transfer/reserved-accounts/{accountReference}
method: delete
operationId: deallocateReservedAccount
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: /api/v1/bank-transfer/reserved-accounts/transactions
method: get
operationId: listReservedAccountTransactions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/bank-transfer/reserved-accounts/limit
method: post
operationId: reserveAccountWithLimit
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: /api/v1/bank-transfer/reserved-accounts/limit
method: put
operationId: updateReservedAccountLimit
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: /api/v1/limit-profiles
method: post
operationId: createLimitProfile
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/v1/limit-profiles
method: get
operationId: listLimitProfiles
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/limit-profiles
method: put
operationId: updateLimitProfile
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/v1/transactions/find-by-settlement-reference
method: get
operationId: findTransactionsBySettlement
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/settlements
method: get
operationId: listSettlements
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/sub-accounts
method: post
operationId: createSubAccounts
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/v1/sub-accounts
method: put
operationId: updateSubAccount
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/v1/sub-accounts
method: get
operationId: listSubAccounts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/sub-accounts/{subAccountCode}
method: delete
operationId: deleteSubAccount
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/v1/disbursements/account/validate
method: get
operationId: validateAccount
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/vas/bvn-account-match
method: post
operationId: matchBvnToAccount
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/v1/vas/bvn-details/{bvn}
method: get
operationId: getBvnDetails
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/vas/verify-nin
method: post
operationId: verifyNin
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/v1/disbursements/wallet
method: post
operationId: createWallet
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/v1/disbursements/wallet
method: get
operationId: listWallets
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/disbursements/wallet-balance
method: get
operationId: getWalletBalance
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/disbursements/wallet/transactions
method: get
operationId: listWalletTransactions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none