Collect payments with Paynow
PAYNOW collects EcoCash and OneMoney by Paynow’s Mobile Express
Checkout. The payer enters their number on the portal, a PIN prompt appears on
their phone, and they approve it there. They never leave the portal page.
Offered in the country catalog for Zimbabwe (ZW).
Centipid Billing follows Paynow’s
Express Checkout API
the way the official PHP SDK calls it:
POST /interface/remotetransactionsends the PIN prompt to the payer’s number.- Paynow posts the result to Centipid’s result URL when the payer answers.
- Centipid reads the transaction’s poll URL to confirm it.
Paid
(Awaiting Delivery and Delivered also count as paid).
Before you start
Register a Paynow merchant account at paynow.co.zw for the ISP, and have it approved for Mobile Express Checkout. Currency. Paynow has no currency field: each integration is set up in one currency, and amounts are read in it. Create the integration in the currency your Centipid account bills in, USD or ZWG. An account billing in ZAR cannot use Paynow; checkout refuses it rather than charge the wrong amount.Configure the gateway
1
Create an integration in Paynow
Open Receive Payments → 3rd Party Integrations and create an
integration in your billing currency. Paynow emails the integration ID and
key.
2
Open Settings → Payments → Paynow in Centipid
Enter the Integration ID and Integration key, then switch to Paynow.
3
Run a controlled test payment
Pay a small amount from the captive portal, approve the prompt on the
phone, and confirm the payment reaches the ledger.
Credentials
How a payment completes
Every message to and from Paynow carries a hash: the upper-case SHA-512 of its values followed by the integration key. Centipid checks it on every reply, every result post and every status poll.- A result post with a missing or wrong hash is rejected (
401) and credits nothing. - A result post with a good hash only starts a status check. The status check re-reads the transaction from Paynow before anything is credited.
- Centipid also checks the status every 5 seconds for about 3 minutes after the prompt is sent. That check connects the payer if the result post is lost.
- A repeated result post settles the same payment once. It never provisions the subscriber twice.
Networks
The portal only asks for a number, so Centipid picks the wallet from the prefix:
Any other number, Telecel (073) for example, is refused before a prompt is sent.
Paynow’s Express Checkout also offers InnBucks and O’mari, but those need the
payer to scan a code or type a one-time PIN, which the portal does not ask for.
Troubleshooting
- “Unable to send the Paynow payment prompt”: the integration ID or key is wrong, or the integration is not enabled for Mobile Express Checkout. Paynow’s exact error is in the application log.
- Test payments fail straight away: a new integration starts in test mode,
and Paynow only sets it live after one successful test payment. In test mode
Paynow accepts only its test numbers (
0771111111succeeds after 5 seconds,0773333333is cancelled after 30) and only when the payer email is one of the merchant account’s login emails. Real phones work once Paynow sets the integration live. - “Enter an EcoCash or OneMoney number”: the number’s prefix is not in the table above.
- “Paynow takes payments in USD or ZWG only”: the account bills in ZAR.
- The payer paid but did not connect: search the payment by Paynow’s reference, shown in the Paynow transaction list.
