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

# Quickteller E-Wallet Transfer API

The Quickteller E-Wallet Transfer API registers users, opens wallet accounts in a chosen currency, and moves funds between wallet accounts in the Quickteller ecosystem. Each transfer takes a fromAccountId, toAccountId, amount, and currency, plus a required Idempotency-Key header so a retried request does not move money twice. Account balances, single transactions, and a paginated transaction history by accountId are available for reconciliation, with a sandbox host for testing.

## For AI agents

Open Quickteller wallet accounts, read balances, transfer funds between wallets with an idempotency key, and look up transaction history.

## Scope

Does not handle card acceptance, bill payments, airtime, or bank account payouts. Use for Quickteller wallet accounts, balances, transfers, and transaction lookups only.

## Capabilities

- Register a Quickteller user with a username, password, and email, then log in for a JWT
- Open a wallet account for a userId in a given currency
- Read the current balance of a wallet account by accountId
- Transfer funds between two wallet accounts with an Idempotency-Key so retries are safe
- Page through transactions for an accountId and fetch a single transaction's details

## Use cases

### Agent-initiated wallet transfers through Jentic

A finance assistant agent can move money between Quickteller wallets when a user asks. Through Jentic the agent searches for 'transfer funds between wallets', gets the POST /transfers operation with its input schema, and sends fromAccountId, toAccountId, amount, and currency along with an Idempotency-Key, while the JWT bearer token is injected at execution time. The agent can check the source balance first so it does not attempt a transfer the wallet cannot cover.

Example prompt: Read the balance with GET `/accounts/{accountId}/balance`, then call POST /transfers with fromAccountId, toAccountId, amount 5000, currency NGN, and a fresh Idempotency-Key header

### Safe retries for money movement

Payment clients regularly retry requests after timeouts, which is dangerous when the request moves money. Quickteller requires an Idempotency-Key header on POST /transfers, so a client that resends the same key after a network failure does not trigger a second transfer. The transfer response returns the transaction id and a status such as SUCCESS for confirmation.

Example prompt: Submit POST /transfers with a generated Idempotency-Key, and on a timeout resend the identical request with the same key, then confirm via GET `/transactions/{transactionId}`

### Wallet reconciliation

Back-office teams reconcile wallet activity against their own ledgers. Quickteller returns a paginated list from GET /transactions filtered by the accountId query parameter with page and size controls, and GET `/transactions/{transactionId}` returns one transaction's details. Pairing these with GET `/accounts/{accountId}/balance` gives a closing balance for the period.

Example prompt: Page through GET /transactions with accountId set and size 50, sum the amounts, and compare the total with GET `/accounts/{accountId}/balance`

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/transfers` | Transfer funds between accounts |
| GET | `/accounts/{accountId}/balance` | Get account balance |
| POST | `/accounts` | Create a wallet account |
| GET | `/transactions` | List transactions |
| GET | `/transactions/{transactionId}` | Get transaction details |
| POST | `/auth/login` | Authenticate a user |

## Key resources

- **Auth** — User registration and login that returns a JWT
- **Users** — User details by userId
- **Accounts** — Wallet account creation by userId and currency, plus balance lookup
- **Transfers** — Idempotent fund transfers between wallet accounts
- **Transactions** — Paginated transaction history and single transaction details

## 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:** 45 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 76 / 100
  - Developer Experience & Jentic Compatibility: 68 / 100
  - AI-Readiness & Agent Experience: 19 / 100
  - Agent Usability: 94 / 100
  - Security: 75 / 100
  - AI Discoverability: 63 / 100
- **View full report:** https://jentic.com/apis/quickteller.com/quickteller/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 Quickteller wallet API by hand means logging in for a JWT, attaching it as a bearer token, and generating a unique Idempotency-Key for every transfer. Through Jentic you install once, import Quickteller from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Transfers carry the source and destination account ids in the request body, so rules bound which operations your agent may call, not which wallet it moves money from. Limit it to the operations it needs, such as balance and transaction reads, so POST /transfers and account creation are not included unless you add them.
- **Credential handling:** Your Quickteller bearer token 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 'transfer funds between wallets' or 'check a wallet balance', and Jentic returns the matching Quickteller operation with its input schema, including the Idempotency-Key header, so the agent calls the right endpoint directly.

## Related APIs

- **Flutterwave Payments** — African payments API with card charges, customers, and transfers
- **Paystack** — Payments, subscriptions, refunds, and transfers for African merchants
- **Interswitch** — Payment initiation and transaction status for African card and account payments

## FAQ

### What authentication does the Quickteller E-Wallet Transfer API use?

Per its OpenAPI spec, the API authenticates with an HTTP bearer token in JWT format sent in the Authorization header, declared at the top level of the spec. POST `/auth/login` takes a username and password and is the route for obtaining a token. Through Jentic the token is stored by your own instance and attached at call time, so it never enters the agent's context.

### Does the Quickteller E-Wallet Transfer API prevent duplicate transfers?

Yes. POST /transfers requires an Idempotency-Key header, so resending a request with the same key after a timeout does not move funds a second time. The body requires fromAccountId, toAccountId, amount, and currency, with an optional narration.

### What are the rate limits for the Quickteller E-Wallet Transfer API?

The OpenAPI spec does not specify rate limits. Check with Quickteller at https://www.quickteller.com for current limits, and test against the sandbox host https://sandbox.quickteller.com/v1 first.

### Is there a Quickteller MCP server?

You don't need an MCP server to give your agent the Quickteller E-Wallet Transfer API. Jentic connects it directly from the API Directory: import it, store your bearer token once, and your agent calls the balance, transfer, and transaction operations it needs, discovered on demand.

### Can I limit what my agent is allowed to do with the Quickteller E-Wallet Transfer API?

Yes. For example, write a rule that allows only GET `/accounts/{accountId}/balance` and the two transaction read operations, so the agent can report balances and history but cannot call POST /transfers or open accounts. Every call it makes is logged.

### How do I transfer funds between Quickteller wallets through Jentic?

Search Jentic for 'transfer funds between wallets', load the POST /transfers operation, and execute it with fromAccountId, toAccountId, amount, currency, and an Idempotency-Key header. Confirm the result with GET `/transactions/{transactionId}.` To run it on your own infrastructure, install Jentic One from its GitHub repo.
