PayFlow.

Zimbabwe · USD and ZWG

Take money the way
Zimbabwe actually pays.

EcoCash, InnBucks, OneMoney, O'mari, SmileCash, ZB eWallet and card — through one account, settled into your bank. Share a link and get paid this afternoon, or integrate the API when you are ready.

Settled through ZB Bank's Smile&Pay. Verification is required before you can accept live payments.

Every rail your customers already use

Not a subset. If a customer can pay with it in Zimbabwe, you can accept it — and you choose which to offer on each payment.

  • EcoCash A prompt on the customer's phone. The way most of this market pays.
  • InnBucks A code the customer enters in the InnBucks app.
  • OneMoney NetOne subscribers, prompted on the handset.
  • O'mari Telecel wallet, confirmed with a one-time code.
  • SmileCash ZB's own wallet, confirmed with a one-time code.
  • ZB eWallet Request-to-pay against a ZB eWallet balance.
  • Visa & Mastercard 3-D Secure, so the liability sits where it belongs.
  • Hosted checkout Let the customer choose on a page we host.

No developer required

Most of our merchants never write a line of code

A payment link is a web address. Send it on WhatsApp, print it as a QR code, read it down the phone. The customer opens it, chooses how to pay, and the money lands in your balance.

Payment links

Fixed price, or let the customer choose the amount for a deposit or a donation. Close it after one payment, cap it at a hundred, or leave it open.

Invoices

Numbered sequentially, with VAT applied to the subtotal so the document adds up when your client checks it. Issuing one produces a page they can pay on. An ageing report shows what you are owed and how late it is.

Subscriptions

Bill the same customer on a schedule. Each cycle raises an invoice and sends them a link — we do not charge a stored card, because the rails in this market do not offer one, and we would rather say so than let you promise it.

Fraud controls

Block a number or an address. Cap how many payments one customer can push through in an hour. Start a rule in observation and watch what it would have stopped before you let it refuse anybody.

For developers

One request. Every rail.

A REST API with idempotency, signed webhooks and a sandbox that behaves like production. Change method and the same request reaches a different rail.

curl https://api.payflow.co.zw/v1/payments \
  -H "X-API-Key: pk_live_..." \
  -H "X-API-Secret: sk_live_..." \
  -H "Idempotency-Key: order-4172" \
  -d '{
    "reference":  "ORDER-4172",
    "amount":     "45.00",
    "currency":   "USD",
    "method":     "ecocash",
    "item_name":  "Handwoven basket",
    "payer": { "mobile": "0771234567" }
  }'
201 Created
{
  "id": "pay_06GAKSH836AD7RJWA3DF",
  "status": "awaiting_payment",
  "next_action": {
    "type": "await_payer",
    "message": "A prompt has been sent to the customer's phone."
  },
  "platform_fee": { "minor": 88, "formatted": "0.88" },
  "net": { "minor": 4412, "formatted": "44.12" }
}

Idempotent by design

Retry a create with the same Idempotency-Key and you get the original payment back, not a second charge.

Signed webhooks

HMAC-signed with a timestamp, so a replayed delivery is detectable. Failed deliveries retry for 24 hours and are visible in your dashboard.

A sandbox that tells the truth

Test keys work the moment you register, before verification. Same API, same responses, no money.

Versioned, and honest about it

Every response says which version served it. A version scheduled for retirement says so in the headers, at least twelve months ahead.

Pricing

Per transaction. Nothing else.

No monthly fee, no setup fee, no charge for a payment that fails. Our standard rates, in USD:

Standard transaction fees by payment method
MethodFeeMinimumOn USD 45.00
EcoCash, OneMoney, InnBucks0.20 + 1.50%0.150.88
Other mobile wallets0.30 + 1.90%0.251.16
Visa & Mastercard0.30 + 2.90%0.501.61

You choose who pays it

Absorb the fee, or add it to what the customer pays — per account, or per transaction. A shop absorbs it; a school collecting fees usually passes it on.

ZWG is priced separately

Both currencies are supported with their own rates and caps. Your exact schedule is always visible in your dashboard.

Volume changes the number

These are the standard rates. If you are processing at scale, talk to us — rates are set per account.

Built to be audited

Double-entry from the first cent

Every movement is a balanced posting. Balances are derived from the entries that justify them, never stored and never adjusted by hand.

Your data is yours alone

Isolation is enforced twice — in the application and again by the database itself, so a bug in one cannot expose another business's money.

We never store a card number

A PAN passes through to the bank and is discarded. We keep the last four digits and the brand, because that is all anyone needs.

Verified businesses only

Every account passes KYC before it can take live payments, reviewed by two people. It is what keeps the platform clean for everyone on it.

Open an account today.
Take a payment this afternoon.

Registration takes a few minutes and gives you sandbox keys immediately. Business verification unlocks live payments, usually within two business days.