Appearance
Online payments
Each company chooses its own payment gateways and enters its own merchant credentials. Once a gateway is switched on, clients can pay their project invoices online from the client portal, and the receipt is posted in OSERP automatically.
This release takes payments for project invoices in the client portal. Your online shop's checkout keeps its current payment setup; moving it onto these gateways is a later, separate step.
Which gateways are available
| Gateway | Where | How the client pays | Test access |
|---|---|---|---|
| Practice gateway | Anywhere | A pretend checkout: no money moves | Built in, test mode only |
| Bank transfer | Anywhere | Transfers to your account, quoting the invoice number; you confirm it arrived | None needed |
| Stripe | Global, including the UAE | Stripe's checkout page (cards, Apple Pay, Google Pay) | Free test keys from Stripe |
| Razorpay | India | Razorpay payment link (UPI, cards, net banking, wallets) | Free test keys from Razorpay |
| Telr | UAE and the Gulf | Telr's payment page | Test mode on your Telr store |
| Network International (N-Genius) | UAE | N-Genius payment page (used by Emirates NBD and many UAE merchants) | Sandbox access from Network International |
| Bank gateway (Mastercard Gateway) | UAE, the Gulf, India | Your bank's hosted checkout (ADCB, Mashreq, CBD, RAKBANK and others run on it) | Test credentials from your bank |
Card details never pass through OSERP or your website: every gateway takes the client to its own secure page.
Set up a gateway
- Open Integrations > Payments (needs Payments: manage; the built-in administrator and accountant roles have it).
- Choose Add a gateway and pick the Provider.
- Fill in:
| Field | Meaning |
|---|---|
| Name shown to clients | What the client sees on the pay button, e.g. "Card payment" or "Emirates NBD" |
| Mode | Test while trying it; Live to take real money. The practice gateway is test only |
| Provider fields | The credentials from your gateway account, listed per provider. Secret fields are never shown again once saved; leave them blank to keep the saved value |
| Switched on | Clients are offered it only while it is on |
| Offer first | Listed first when the client chooses how to pay |
- Choose Save, then Test connection. The result is shown beside the gateway (for example "Stripe accepted the key" or the gateway's own error).
Test keys go with test mode. OSERP refuses a Stripe or Razorpay test key in live mode and a live key in test mode, because taking test payments in production (or real ones in a test) is the classic mistake.
Bank transfer needs your account name, bank, IBAN or account number, and optionally SWIFT/IFSC and instructions. These are shown to the client with the amount and the invoice number to quote.
Turning a gateway off stops it being offered at once. A gateway that has taken payments cannot be deleted, only switched off, so its payments stay traceable.
How a client pays
On an invoice in the portal, a person with Pay invoices online sees Pay this invoice with one button per switched-on gateway that takes the invoice's currency.
- Online gateways: the client is taken to the gateway's page, pays, and comes back to a page that says Payment received, The payment did not go through (with the reason) or Waiting for the gateway to confirm.
- Bank transfer: the client sees your account details and the reference, transfers the money, and enters their bank's transfer reference under I have transferred the money. You are emailed to check your bank.
An invoice is paid online in full. An invoice that already has part of its payment recorded is not offered online; the client is told to contact you.
What happens in the books
The payment is confirmed only by asking the gateway directly, never by the client returning to your site. When the gateway confirms it:
- the invoice is advanced to the Payment stage of the sales flow, posting the receipt through the same GL mapping as any other customer receipt;
- the receipt's note names the gateway, the gateway's payment reference, and "TEST payment" for test mode;
- the client's invoice shows Paid;
- any other payment attempt left open on that invoice (for example a transfer started and abandoned) is closed, so nobody can confirm a second payment for it.
A receipt is posted exactly once, even if the client's return and the gateway's notification arrive at the same moment. If the money arrives but the receipt cannot be posted (for example the invoice was paid by another receipt in the meantime), the payment is kept on record with the reason, and the company is emailed to refund it or allocate it on account.
Confirm a bank transfer
Under Payments received, a transfer the client reported shows Transfer to confirm with their reference. When the money is in your bank, optionally enter the bank's reference and choose Confirm received. The receipt is posted. A transfer can only be confirmed once.
Payments received
The list shows every payment attempt, newest first: invoice, customer, amount, gateway (marked "Test" for test mode), status, receipt number, and any failure reason or receipt problem. Filter it by status.
| Status | Meaning |
|---|---|
| Started / Waiting for the gateway | The client opened the gateway's page and has not finished |
| Transfer to confirm | The client reports a bank transfer |
| Paid | Confirmed by the gateway (or by you, for a transfer); the receipt number is shown |
| Failed | Declined or abandoned at the gateway; the reason is shown |
| Cancelled | The invoice was paid another way |
Gateway notifications (webhooks)
Gateways can notify OSERP when a payment completes, which settles it even if the client closes their browser before returning. In the gateway's dashboard, set the notification (webhook) address to:
https://<your OSERP address>/api/v1/payments/webhook/<gateway id>
Ask OSERP support for the gateway id. A notification only tells OSERP which payment to check; OSERP then asks the gateway itself, so a forged notification settles nothing.
Practice before going live
- Add the Practice gateway (test mode) and switch it on.
- On a test project with an invoice, give your own portal access Pay invoices online.
- In the portal, choose Pay with the practice gateway, then Decline: the result says it did not go through and the invoice stays unpaid.
- Pay again and choose Pay: the result says Payment received, the invoice shows Paid, and a receipt appears on the invoice in OSERP.
- Switch the practice gateway off before going live.
Change log
| Release | Change |
|---|---|
| Portal phase 4b | Gateways per company (practice, bank transfer, Stripe, Razorpay, Telr, N-Genius, Mastercard Gateway); paying project invoices in the client portal; receipts posted through the sales flow; bank transfer confirmation |