Taking payments
Connect Paystack, Flutterwave or Stripe so customers can pay on their phones.
Customers pay through your own payment gateway account, and the money settles there. Oculus never holds or forwards your funds.
| Gateway | Good for |
|---|---|
| Paystack | Mobile money and cards in Ghana |
| Flutterwave | Mobile money and cards across Africa |
| Stripe | International cards |
You can connect more than one. When you do, customers choose how to pay after picking a package — someone with a mobile money wallet and someone with only a card can both buy.
Connecting a gateway
Settings → Payment gateways → Configure.
- Copy your secret key from your gateway's dashboard. Start with the test key while you try things out.
- Stripe only: also add your publishable key and webhook signing secret. Flutterwave only: add the "secret hash" you set for webhooks. Paystack needs nothing extra.
- Set the currency to match your gateway account, usually
GHS. - Switch on Live mode only once you've switched to your live key.
Keys are encrypted when you save them and are never shown again — only the last few characters, so you can tell which key is in use.
Set up the webhook (recommended)
The webhook is how your gateway tells Oculus the moment a payment succeeds. The exact URL to use is shown in Settings → Payment gateways → Configure, with a Copy button. It looks like this:
Paste it into the webhook (callback) URL setting in your gateway's dashboard.
Without a webhook
Payments still work. Oculus asks your gateway directly whether each payment went through, using your secret key:
- while the customer waits on the page — usually within a few seconds;
- every couple of minutes for anyone who closed the page. Their payment is still confirmed and their voucher created, so staff can find it under Vouchers if they come to the counter.
The webhook just makes it instant.
One Paystack account, several businesses
A Paystack account has one webhook URL. If yours already points at another website or app, you have two good options:
- Leave it as it is. Oculus confirms payments without the webhook, as above. Your other integration keeps working.
- Add a separate business for your Wi-Fi in your Paystack dashboard. Each business has its own keys, its own webhook URL and its own settlement reports, so your Wi-Fi income is also kept apart from your other sales.
Don't point the webhook at Oculus if another system needs it — that system would stop hearing about its own payments.
Testing
With test keys and Live mode off, buy a package from your login page using your gateway's test card or test mobile money number. The customer is online within seconds of paying. Then switch to your live key and switch on Live mode.
Receipts
Every payment has a receipt in your business's name and your login page's colours.
- Customers who give an email get their voucher by email with the PDF receipt attached.
- For everyone else, open Payments in the console and select Receipt next to the payment. Hand it over, print it, or send it on.
Payments lists every purchase with its voucher, method and status. Filter by date, site or status, search by reference, voucher, email or phone, and Export CSV for your accountant.
Refunds
Owners and admins can refund a payment from Payments: select Refund next to it and give a reason.
- The whole amount goes back through the gateway the customer paid with, from your account with them. It can take a few days to reach the customer.
- The voucher stops working straight away, and any device using it is disconnected.
- Who refunded it, when and why are shown on the payment and kept in the audit log. The receipt is marked Refunded.
If the gateway refuses (for example, the payment was already reversed in its dashboard), nothing changes in Oculus and the gateway's reason is shown. A refund can't be undone.
Card payments with bank verification
Customers pay before they're online, so the login window can only reach your gateway's own pages. Mobile money, and cards that don't ask for extra verification, work as normal. A card whose bank sends the customer to its own verification page (3-D Secure) may not load there. If that happens, the customer can pay with mobile money, or use mobile data to finish paying by card.
Prices and currency
A package's currency must match the gateway's. A package priced in GHS can't
be charged through a gateway account set to another currency.