canonical: https://jentic.com/apis/dusupay.com/dusupay

# Dusupay African Payments API

The Dusupay African Payments API collects and disburses funds across more than 15 African countries using mobile money, bank transfers, and card payments. Agents can initialize a collection and authorize it with a one-time password, send payouts to bank accounts and mobile money wallets, and verify a transaction's status by reference. Utility endpoints return wallet balances, available payment providers, and payout bank codes so a payment is routed through the right rail. Authentication uses a public API key on every request, with a secret key additionally required for payouts and balance inquiries.

## For AI agents

Collect inbound payments via mobile money, bank, and card, send payouts to recipients, and verify transaction status across African markets. Covers 7 operations for collections, payouts, and balance checks.

## Scope

Does not handle invoicing, subscription billing, or accounting reconciliation. Use for African collections and payouts only.

## Capabilities

- Initialize mobile money, bank, and card collection requests across African countries
- Authorize a collection with the one-time password a customer receives
- Send payouts and disbursements to recipients' bank accounts and mobile money wallets
- Verify the status of a transaction by its reference
- Retrieve merchant wallet balances by currency
- List available payment providers and payout bank codes for a country

## Use cases

### AI Agent Payment Collection

Let an AI agent take an inbound payment across African mobile money, bank, and card rails: it initializes a collection for the amount and provider, authorizes it with the one-time password the customer receives, and verifies the final status by reference. Through Jentic the agent discovers the right Dusupay operation by intent and calls it with the collection details, so a checkout flow runs without a developer wiring each step by hand.

Example prompt: Initialize a mobile money collection for 50000 UGX, authorize it with the customer's OTP, then verify the transaction status by reference

### Cross-Border Payouts

Merchants disburse funds to recipients across African countries without integrating each bank or mobile money provider directly. The payout operation sends funds to a bank account or mobile money wallet, after looking up the correct payout bank codes, and the transaction verify operation confirms the disbursement settled. Payouts require the merchant's secret key in addition to the public key.

Example prompt: Look up the payout bank codes, send a payout to a recipient's bank account, then verify the disbursement by reference

### Transaction Verification and Reconciliation

Finance teams confirm which payments cleared and reconcile them against expected amounts. The API verifies a transaction by its reference and returns merchant wallet balances by currency, so an agent can match settled collections to balances at the end of a day. This avoids polling a dashboard to check whether a specific payment succeeded.

Example prompt: Verify a transaction by its reference, then read the merchant wallet balances to reconcile the day's collections

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/collections/initialize` | Initialize a collection request |
| POST | `/collections/authorize` | Authorize a collection with OTP |
| POST | `/payout/send-funds` | Send funds (payout or disbursement) |
| GET | `/data/transaction/verify/{reference}` | Verify transaction status |
| GET | `/data/wallet-balances` | Get wallet balances |
| GET | `/data/payment-providers` | List available payment providers |
| GET | `/data/payout-bank-codes` | Get payout bank codes |

## Key resources

- **Collections** — Initialize inbound payments and authorize them with a one-time password
- **Payouts** — Send funds to recipients' bank accounts and mobile money wallets
- **Data** — Verify transactions, read wallet balances, and list payment providers and payout bank codes

## 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:** 68 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 93 / 100
  - Developer Experience & Jentic Compatibility: 66 / 100
  - AI-Readiness & Agent Experience: 51 / 100
  - Agent Usability: 94 / 100
  - Security: 50 / 100
  - AI Discoverability: 88 / 100
- **View full report:** https://jentic.com/apis/dusupay.com/dusupay/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 Dusupay by hand means managing its public-key and secret-key headers, the initialize-then-authorize collection flow with its one-time password, and choosing the production or sandbox host. Through Jentic you install once, import Dusupay from the API Directory, store both keys once, and your agent calls it.
- **Permission scoping:** Dusupay carries the amount, recipient, and provider in the request body rather than the URL path, so rules bound which operations your agent may call rather than which account it touches. You choose the operations it needs, such as initializing collections and verifying transactions, so sending payouts is not included unless you add it.
- **Credential handling:** Your Dusupay public and secret keys are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'collect a mobile money payment' or 'send a payout', and Jentic returns the matching Dusupay operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Flutterwave Payments API** — African payments platform for collections and payouts across many countries
- **Paystack API** — Payment acceptance and transfers focused on Nigeria and nearby markets
- **Airtel Africa API** — Direct Airtel Money mobile wallet rails in several African markets
- **Stripe API** — Global card processing for customers outside Dusupay's African coverage

## FAQ

### What authentication does the Dusupay African Payments API use?

The Dusupay API authenticates with API keys sent in request headers per its OpenAPI spec: a public-key header on every request and a secret-key header additionally required for payouts and balance inquiries. Through Jentic both keys are stored encrypted by your own Jentic One instance and injected at call time, so they never enter the agent's context.

### Can I collect mobile money payments with the Dusupay API?

Yes. The collection initialize operation starts an inbound payment via mobile money, bank transfer, or card, and the authorize operation completes it with the one-time password the customer receives. You then confirm the result with the transaction verify operation.

### What are the rate limits for the Dusupay African Payments API?

The OpenAPI spec does not specify rate limits; see https://developer.dusupay.com/ for current limits. Use the transaction verify operation to confirm a payment's final status rather than polling rapidly.

### Is there a Dusupay MCP server?

You don't need an MCP server to give your agent the Dusupay API. Jentic connects it directly from the API Directory: import it, store your public and secret keys once, and your agent calls operations like initializing a collection or sending a payout. Operations are discovered on demand, so no extra server's tool definitions sit in your agent's context.

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

Yes. Write a rule that allows only collection and verification operations, so the agent can take inbound payments and check their status but cannot send payouts, which also require the secret key. Dusupay passes the amount and recipient in the request body, so rules bound which operations run rather than which account, and every call is logged.

### How do I collect a payment with the Dusupay API through Jentic?

Search Jentic for 'collect a mobile money payment' to find the collection initialize operation, authorize it with the customer's OTP, then verify the transaction by reference. To run it on your own infrastructure, install Jentic One from its GitHub repo.
