> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usenumero.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Numero wallet payments and approvals

> Reviewed same-currency payments between Numero businesses, with optional corporate API approvals.

Send funds from your active holding wallet to another Numero business in the same currency. Both businesses must be active and their countries must enable the currency. Card funds and customer-pool wallets are excluded; custody-bound EUR wallets are unavailable for this ledger transfer.

## Endpoints

```text theme={null}
POST /api/v1/business/wallet-payments/review
POST /api/v1/business/wallet-payments/{reference}/execute
GET /api/v1/business/wallet-payments/{reference}
GET /api/v1/business/approvals/{reference}
```

**Signature required:** Yes, on every endpoint. Send `X-Numero-Api-Key`, `X-Numero-Signature` and `X-Numero-Signature-Version: v2`, following [Request signing](https://docs.usenumero.com/03-request-signing.md). Review/execute require `transfers:write`; wallet status requires `wallet:read`. Approval status requires the original operation's scope (`transfers:write` or `vas:write`).

Review also requires `Idempotency-Key`. Send `{sourceWalletId,recipientWalletId,amount,narration}`: the source is your ledger wallet identifier, recipient is their public Numero wallet ID, and amount is in major currency units with at most two decimal places. Preserve the key and reviewed reference after any timeout. The API uses HMAC authentication; it does not accept a dashboard PIN or email OTP.

Review returns `data.reference`, `currency`, `amount`, `stampDuty`, `totalDebit`, recipient name, status and expiry. There is no Numero transfer fee; configured NGN stamp duty is included in total debit. Check the reviewed recipient, currency and total before executing the returned reference. A replay cannot post a second payment. Recipient balances stay private. Both businesses receive their own transaction entry.

Execution returns `Completed` or `PendingApproval`. Reviews expire after ten minutes; approval-gated payments expire after 24 hours and recheck funds, eligibility and pricing before posting. GET status before retrying an uncertain execution. A different currency, disabled country, changed funds, changed pricing or expired review is refused without a partial payment.

Tier 3 corporates can opt API transactions into amount, currency, process and channel rules in Dashboard → Settings → Approvals & alerts. API approvals default off. Owners retain dashboard control; API opt-in is enforced even for an owner's API key. Different eligible team members must vote, and the initiator cannot approve their own request.

Poll `/business/approvals/{reference}` for `approvalStatus`, approval progress, expiry and `executionReferences`. If the same reference is reused across rails, provide `?rail=WALLET_PAYMENT` (or the original rail). `Approved` means released to its payment workflow: use the execution references with the original status endpoint to check settlement. Revoked initiating keys cannot release pending requests. Status and transactions remain scoped to the authenticated business and test/live mode.

Approval request emails go to active team members eligible to approve the process, excluding the initiator. Additional transaction alert addresses are configured separately on the dashboard and receive transaction alerts; adding an address grants no approval rights and sends no security codes.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.