canonical: https://jentic.com/apis/mono.co/mono

# Mono API

The Mono API is an open banking platform for Africa that links customer bank accounts and reads their financial data. It initiates account linking, exchanges the authorization token, and then returns account details, balances, transactions, identity, income, and statements. It assesses creditworthiness, initiates one-time payments and refunds, manages direct debit mandates, and runs BVN, bank, and account-number lookups across Nigeria, Ghana, Kenya, and South Africa. Response figures are in the lowest denomination of each currency.

## For AI agents

Link African bank accounts and read balances, transactions, identity, and statements, initiate payments and direct debit mandates, and run BVN and account-number lookups.

## Scope

Does not issue cards, hold balances, or handle tax filing. Use for bank account linking, financial data, payments, and direct debit only.

## Capabilities

- Initiate account linking and exchange the authorization token
- Read linked account balances, transactions, identity, and statements
- Assess account creditworthiness and retrieve income data
- Initiate one-time payments and verify or refund them
- Create and manage direct debit mandates and debit against them
- Run BVN, bank, and account-number lookups across supported countries

## Use cases

### AI agent open banking access via Jentic

An AI agent connected through Jentic reads a linked account without wiring Mono's auth flow by hand. It searches by intent such as reading account transactions, Jentic returns the matching Mono operation with its input schema, and the agent fetches balances, transactions, and identity for a linked account. The developer's own Jentic One instance injects the API key at call time.

Example prompt: Call GET `/v2/accounts/{id}/balance` for a linked account, then GET `/v2/accounts/{id}/transactions` to read its history

### Account linking and financial data

Fintech apps onboard a customer's bank account to read their finances. Mono initiates account linking, exchanges the authorization token, then returns account details, identity, income, and statements, so an agent can complete the link and pull a financial picture for underwriting or budgeting.

Example prompt: Call POST `/v2/accounts/initiate` to start linking, then POST `/v2/accounts/auth` to exchange the token

### Payments and refunds

Merchants collect and reverse one-time payments. Mono initiates a payment, verifies its status by reference, lists payment transactions, and refunds a payment, so an agent can take a bank payment and reconcile or reverse it, with figures handled in the lowest denomination of the currency.

Example prompt: Call POST `/v2/payments/initiate` to start a payment, then GET `/v2/payments/verify/{reference}` to confirm it

### Direct debit mandates

Lenders and subscription businesses collect recurring debits. Mono creates a direct debit mandate, lists and retrieves mandates, cancels one, and debits an account against an active mandate, so an agent can set up recurring collection and trigger a debit when a payment is due.

Example prompt: Call POST `/v3/payments/mandates` to create a mandate, then POST `/v3/payments/mandates/{id}/debit` when a payment is due

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/v2/accounts/initiate` | Initiate account linking |
| GET | `/v2/accounts/{id}/balance` | Get account balance |
| GET | `/v2/accounts/{id}/transactions` | Get account transactions |
| POST | `/v2/accounts/{id}/creditworthiness` | Assess creditworthiness |
| POST | `/v2/payments/initiate` | Initiate a one-time payment |
| GET | `/v2/payments/verify/{reference}` | Verify payment status |
| POST | `/v3/payments/mandates` | Create a direct debit mandate |
| POST | `/v3/lookup/account-number` | Account number lookup |

## Key resources

- **Accounts** — Link accounts and read balances, transactions, identity, income, and statements
- **Customers** — Create and manage customers and their transactions
- **Payments** — Initiate, verify, and refund one-time payments
- **Direct Debit** — Create, manage, and debit against direct debit mandates
- **Lookup** — BVN, bank, and account-number lookups across supported countries

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 64 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 90 / 100
  - Developer Experience & Jentic Compatibility: 58 / 100
  - AI-Readiness & Agent Experience: 51 / 100
  - Agent Usability: 94 / 100
  - Security: 50 / 100
  - AI Discoverability: 70 / 100
- **View full report:** https://jentic.com/apis/mono.co/mono/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring the Mono API by hand means learning its mono-sec-key header, completing the account linking and token exchange, and tracking that figures arrive in the lowest denomination of each currency. Through Jentic you install once, import Mono from the API Directory, store the key once, and your agent calls the account and payment operations.
- **Permission scoping:** Mono puts the account id in the URL path (`/v2/accounts/{id}/transactions`), so a rule can pin your agent to one linked account and the read operations on it. You choose the operations it may call, so initiating payments, refunding, or debiting a mandate are not included unless you add them.
- **Credential handling:** Your Mono secret key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'read account transactions' or 'initiate a payment', and Jentic returns the matching Mono operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Plaid API** — Plaid links bank accounts in North America and Europe, where Mono focuses on African open banking.
- **TrueLayer API** — TrueLayer provides UK and European open banking and payments; Mono covers Nigeria, Ghana, Kenya, and South Africa.
- **Salt Edge Account Information API** — Salt Edge aggregates account information across many regions, extending the account data Mono returns for Africa.
- **Paystack API** — Paystack handles card and transfer payment acceptance in Africa alongside Mono's account linking and direct debit.

## FAQ

### What authentication does the Mono API use?

The Mono API authenticates with an API key sent in the mono-sec-key header, per its OpenAPI spec. Through Jentic, your secret key is stored encrypted by your own Jentic One instance and injected into the mono-sec-key header at execution time, so it never enters the agent's prompt or logs.

### Can I read a linked account's transactions with the Mono API?

Yes. After linking is complete, the account operations return balances, transactions, identity, income, and statements for a linked account id. Figures are reported in the lowest denomination of the account currency, such as kobo for Nigerian naira.

### What are the rate limits for the Mono API?

The OpenAPI spec does not state numeric rate limits. Check the Mono documentation at https://docs.mono.co for current limits across the account, payment, and lookup operations.

### How do I link a bank account through Jentic?

Search Jentic by intent such as linking an account, and it returns the Mono account-initiate operation with its input schema. Start linking, exchange the authorization token, then read the account data, with your key injected at call time. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Can I limit what my agent is allowed to do with the Mono API?

Yes. Mono puts the account id in the URL path, such as `/v2/accounts/{id}/transactions`, so a rule can pin your agent to the read operations on one linked account so it fetches balances and transactions and nothing else. State-changing operations such as initiating a payment or debiting a mandate stay out unless you add them, and every call is logged by your self-hosted instance.

### Is there a Mono API MCP server?

You do not need an MCP server to give your agent the Mono API. Jentic connects it directly from the API Directory: import it, store your secret key once, and your agent calls the account and payment operations on demand without loading another server's tool definitions into its context.
