Payment gateway for mobile money

Accept payments and pay out, from one API

Payless lets merchants and platforms collect from customers, send money out, hold balances, issue invoices and reconcile every transaction — with one REST API and a dashboard your team can run without a payments engineer.

  • Collections (C2B)
  • Payouts (B2C)
  • Merchant wallets
  • Invoicing
One gateway for C2B collections B2C payouts Wallets Invoicing Webhooks Fees & reports
Products

Everything a payment gateway should do

Money in, money out and the bookkeeping around it — in one place, instead of three stitched-on integrations.

Collections (C2B)

Charge a customer's mobile money wallet and follow the result on a single reference, with an idempotency key so a retry cannot become a double charge.

Disbursements (B2C)

Send money out to customers, suppliers or staff, with per-transaction status you can poll or receive by callback.

Merchant wallets

Balances held per merchant and per provider, updated as transactions settle, with a ledger behind every movement.

Invoicing & payment links

Raise an invoice, email it as a PDF or share a payment link, and let the payment match itself back to the invoice.

Signed webhooks

Every settlement callback is signed with your merchant secret, and each delivery attempt is recorded, so you can prove what was sent and when.

Fees & reconciliation

Transaction fees, fee reports and exports per merchant and per network — the month-end work that usually lands on finance.

How it works

Live in four steps

No hardware, no acquirer paperwork in your code path — an account, a key and two endpoints.

1 Create your account

Register your business. Once it is approved you get a merchant code and your own dashboard logins.

2 Get your API keys

Create a key for each project — scoped, rotatable and revocable at any time.

3 Integrate

Send a collection or a disbursement over REST, then read the status by reference.

4 Go live

Point your callback URL at your server, verify the signature, and reconcile from the dashboard.

Developers

Built to be integrated in a day

A small, predictable REST API: JSON in, JSON out, status by reference. Collect money with one call.

  • Collections, payouts and balances behind one bearer key
  • Idempotency keys, so retries never double-charge
  • Status by reference instead of polling loops
  • Signed callbacks with delivery history
POST /api/v1/payments/collections/push POST /api/v1/payments/disbursements GET /api/v1/payments/{reference} GET /api/v1/payments/wallets/balance
collect a payment
# collect TZS 25,000 from a mobile money wallet
curl -X POST "https://payments.payless.cloud/api/v1/payments/collections/push" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "X-Idempotency-Key: REQ-20260907-001" \
  -d '{
    "msisdn": "255713456789",
    "amount": "25000",
    "currency": "TZS",
    "providerCode": "VODA",
    "requestId": "REQ-20260907-001",
    "reference": "INV-1001",
    "callbackUrl": "https://your-server.com/webhook/mobile-money"
  }'
// response envelope
{
  "status": "SUCCESS",
  "code": "PGW-0000",
  "message": "request accepted",
  "data": { "status": "PENDING", "reference": "INV-1001" }
}
Security

The parts that matter when money is moving

Verifiable callbacks, scoped credentials and a record of everything that happened.

Signed callbacks

Callbacks carry a signature from a per-merchant secret that you can rotate, so a settlement notice can be verified as genuinely ours.

Scoped API keys

Keys are stored hashed, belong to a single project, and can be rotated or revoked without rebuilding your integration.

Protected access

Dashboard sessions are signed and expire, passwords are bcrypt-hashed, and the database connection is encrypted.

Audit trail

Transaction events and callback delivery attempts are recorded, so a disputed payment can be traced end to end.

Start taking payments

Create a merchant account, generate an API key and send your first collection — your dashboard is ready as soon as you register.