One API for Many Billers
A partner-facing payments API that puts utilities, mobile carriers, top-up providers and a mobile-money partner behind one consistent, secure interface.
- Entry point: Partner clientmTLS · token
- Safeguard: Security layerAuth · JWS / JWE
- Core system: Payments APIPayments · payouts · refunds · top-ups
- Process: Fees & commissions
- Process: Biller adaptersREST · SOAP · file
- External system: Billers & partners
Agent cash operations
- Entry point: Cash-in / cash-out
- Safeguard: One-time codeHashed · expiring · bound
- Safeguard: Attempt limitsTime-boxed lockout
- External system: Webhook to partner
Partners integrate once; adapters absorb each biller’s protocol, security and settlement rules.
Challenge
Every biller spoke a different protocol — REST, SOAP or file exchange — with its own reference formats, settlement rules and security requirements. Partners needed one consistent way to make payments, payouts, refunds and top-ups. Cash-in and cash-out at agent locations had to be impossible to brute-force.
Approach
- Normalize the model, not just the transport. One documented API exposes payments, payouts, refunds, recharges, fees, commissions and exchange rates consistently, regardless of which biller sits behind it.
- Meet each partner's security bar. Mutual TLS where required, and signed, encrypted messages (JWS/JWE) for partners that demand message-level security.
- Design cash operations to resist guessing. One-time codes are stored only as hashes, compared in constant time, expire, and are bound to the account, biller and transaction type. Attempts are limited, with time-boxed lockouts.
- Reject duplicates at the door. Repeated payment and payout requests are detected per client, biller and account.
Implementation
- Partner endpoints for payments, payouts, refunds, top-ups, fees, commissions, promotions, accounts, billers and webhooks.
- Biller adapters for REST and SOAP services, including a WS-Security SOAP integration and an mTLS client.
- A cash-in / cash-out service with code generation, account validation, lockouts, scheduled expiry and partner webhook notifications.
- Event publishing to Kafka, caching, and background processing for biller master files.
Outcome
Partners integrate once and reach many billers. Agent cash operations are protected by single-use, expiring codes and bounded attempts.
Technical perspective
Each integration brings its own protocol, cryptography and failure semantics. Moving money means idempotency and auditability have to hold even when a downstream biller times out halfway through a request.
Facing something similar?
Tell us about your systems and what needs to change. We’ll tell you honestly whether we can help.
More work
Connecting Legacy Accounting to Modern Commerce
A regional distributor of truck and industrial parts
- QuickBooks Desktop
- Web Connector
- Integration service
- AI categorizer
- Catalog + vectors
- Storefront
Thousands of accounting-only items became a categorized, typo-tolerant storefront, and web orders now reach QuickBooks Desktop without re-keying.
Read the case study
Engineering Reliable Payment & Fulfillment Workflows
A regional consumer financial-services platform
- Cardholder
- 3D Secure 2
- Server-to-server response
- Verification
- Atomic state change
- Fulfillment guard
Replayed, forged and concurrent completions cannot produce a payment or a fulfillment, and gift card issuance can be frozen without stopping checkout.
Read the case study
Adding a Multi-Vendor Marketplace to an Existing Platform
A regional consumer financial-services platform
- Buyers & sellers
- Platform
- Stock-sync queue
- Sync worker
- Commerce engine
Sellers can be onboarded, moderated and paid inside the existing platform, and stock reconciles even when the commerce engine is briefly unavailable.
Read the case study