PayPoint store payments
The customer pays without leaving WhatsApp, and the money goes straight to the store’s own PayPoint account. Nexafon never holds the sale money; its own fee is charged to the store’s wallet (billing).
Set up the store
Section titled “Set up the store”- Save the store’s PayPoint API key and merchant id with
PUT /api/v1/workspaces/{workspaceId}/payments/paypoint(or in the embedded Payments screen, withpayments:manage). Nexafon answers only “saved” and the last 4 characters; the key is encrypted and never returned or logged. POST …/payments/paypoint/testchecks the key with PayPoint without charging anyone.PUT …/payments/paypoint/walletspicks the wallets customers may use:evc_plus,zaad,sahal,jeeb,edahab,premier_wallet.
What the customer sees
Section titled “What the customer sees”- After delivery details the checkout shows Pay with PayPoint: the store’s wallets, the number to charge (their WhatsApp number, editable) and the total.
- On Pay, Nexafon starts the charge with the store’s key and closes the checkout. A “waiting” message asks the customer to enter their PIN on their phone.
- When PayPoint confirms, the order is marked
paidexactly once, the customer gets a confirmation with the order number, items, total, wallet and reference, andorder.paidgoes out. - If it fails, the customer gets the reason in plain words (not enough balance, cancelled, no PIN in time, no
account on this wallet) with Try again and Another wallet;
order.payment_failedgoes out.
Only one payment attempt runs at a time per order. If no payment is started 10 minutes after checkout, the payment step is sent once more. A payment confirmed late, after another attempt already paid, never pays twice: it is flagged for a refund decision.
Guarantees
Section titled “Guarantees”- No public endpoint can start a charge or mark an order paid: charges start only from the checkout, and only PayPoint’s confirmation of Nexafon’s own payment reference settles an order.
- The amount charged is the order’s server-computed total.
- Payment status is polled from PayPoint for up to 24 hours, so a PIN approved late is still recorded.