POS Payments
POS Payments
The POS system provides comprehensive payment processing with support for multiple payment methods, partial payments, refunds, and voids.
Payment Methods
Cash
- Accept cash payments at the counter or table.
- Enter the amount tendered; change is calculated automatically.
- Receipt can be printed for cash transactions.
Mobile Money (MoMo)
- Accept payments via MTN Mobile Money, Vodafone Cash, and AirtelTigo Money.
- Customer provides their phone number.
- An OTP prompt is sent to the customer to authorize payment.
- Supported networks are configured in payment settings.
Card (Paystack / Terminal)
- Card payments can be processed via:
- Paystack Inline: Web-based card entry
- External terminal: Connected card machine
- Visa and Mastercard are supported.
Bank Transfer (Virtual Account)
- Customer receives a virtual account number to transfer funds.
- Payment is tracked via manual proof or webhook.
- Requires the manual payment proof feature.
External Payment Link
- Generate a payment link that can be sent to the customer.
- Customer completes payment on their own device.
Payment Settings
Configure payment methods at POS > Settings > Payments (/pos/[branchId]/settings/payments):
| Setting | Description |
|---|---|
| Accepted methods | Enable/disable each payment type |
| Default method | Pre-selected payment method |
| MoMo providers | Configure supported mobile money networks |
| Paystack key | Paystack public key for card payments |
| Bank details | Merchant bank account info for transfers |
| Service charge | Optional service charge percentage |
| Tax rate | Applicable tax rate |
| Payment notes | Instructions displayed to customers |
Processing a Payment
Standard Payment Flow
- Open the order in Counter or Floor mode.
- Click Settle to open the SettleOrderDialog.
- Select the payment method.
- Enter the amount to collect (full or partial).
- Complete the transaction:
- Cash: Enter amount tendered
- MoMo: Enter customer phone, confirm OTP
- Card: Process via terminal or Paystack embed
- Receipt is printed automatically (if printer configured).
- Order status updates to paid/completed.
Partial Payments
- Split an order across multiple payment methods.
- Pay a portion with cash and the remainder with card.
- Track remaining balance until fully settled.
Split-the-Bill
- Available for floor mode orders (table service).
- Each seat/guest pays their share.
- Payment methods can differ per share.
- Remaining balance is visible until fully paid.
Refunds
A refund is only done when the money is actually back with the guest. Every refund records how it went back, and the POS never counts money as refunded until that happened.
Who can do what
| Step | Who |
|---|---|
| Ask for a refund | The guest (cancel before the kitchen starts, from their order page), or any staff member at the till |
| Approve it | Staff with the Refund orders permission (owners and managers by default). A cashier without it asks a manager to enter their code at the till |
| Finish it | Online payments: Paystack returns the money and confirms it. Cash, MoMo or card-machine payments: the staff member who handed the money back confirms it |
How the money goes back
The POS suggests the way the guest paid. You can change it (a guest who paid online may take cash).
| Guest paid… | Refund | Done when |
|---|---|---|
| Cash (counter, waiter, courier) | Cash from the drawer | You hand it over and confirm |
| Card machine | Reversed on the card machine | You reverse it on the machine and enter its slip number |
| MoMo / bank transfer to the shop | MoMo or transfer to the guest | You send it and enter the transaction id |
| Online (Paystack card / MoMo / bank) | Online refund (automatic) | Paystack reports it processed |
Timing
- Online refunds: Paystack sends the request right away. MoMo usually arrives the same day; card
refunds can take up to 10 business days to show on the guest's statement. Paystack only refunds successful payments, within 180 days, and never more than was paid.
- If Paystack refuses (for example the payment was already reversed), the refund is marked
failed, the order goes back to paid, and you see Paystack's reason. Nothing was refunded.
- A refund a guest makes by cancelling a cash-paid order stays pending until a staff member
hands the money back and confirms it. Pending refunds never come off the cash drawer count.
The cash drawer
Only refunds paid out of the drawer (cash) are taken off the expected cash at shift close. Card, MoMo and online refunds never leave the drawer, so they don't change the count.
Steps
- Open the order and choose Refund.
- Pick everything, or only some items.
- Give a reason, and check how the money goes back (and its reference, if asked).
- If you can't approve refunds, a manager enters their code.
- Online refunds show Refund pending until Paystack confirms.
Voids
The VoidItemDialog handles voiding individual items on an order:
- Select the item to void.
- Choose a void reason.
- Confirm the void.
- The voided item is removed from the order total.
Order Payment Statuses
| Status | Description |
|---|---|
| Unpaid | Order placed, no payment received |
| Partially Paid | Some payment received, balance remaining |
| Paid | Full payment received |
| Refunded | Payment returned to customer |
| Partially Refunded | Partial refund processed |
Print Receipts
- Customer receipts are automatically printed after successful payment.
- Duplicate receipts can be printed on demand.
- Receipt format is configurable in Settings > Receipts.
- Receipts include order details, itemized list, payment info, and QR code for digital access.
Related Documentation
Was this page helpful?