Money Flows
Money-flow endpoints must be designed for retries, timeouts, and provider uncertainty.
Live sandbox readiness (GET /mobile/readiness and the Côte d'Ivoire service catalog) currently marks cash-in, airtime, and bills as unavailable. Virtual cards and savings pots are not contracted and must not be treated as live product surfaces.
Idempotency
Send Idempotency-Key on every retryable available mutation:
POST /wallets/transferPOST /wallets/topup-dev(sandbox / development only)
Use a stable operation identifier. Do not generate a new idempotency key on retry.
Do not send production clients through cash-in, airtime, or bill-pay until a rail is connected.
Do not integrate savings-pots deposit/withdraw or virtual-cards as live product.
Quotes
Use POST /wallets/transfer/quote before showing the final transfer confirmation. The quote response should drive fees, limits, blockers, and total.
Sandbox versus staging
Sandbox may simulate success, pending, and failure. Staging validates live provider behavior. Never use staging for exploratory destructive testing.