Online payments with CHIP
Connect your own CHIP account to Invoa so customers can pay invoices online by FPX, cards, e-wallets or DuitNow QR, with payments and receipts recorded for you.
CHIP is a Malaysian payment gateway. When you connect your CHIP account to Invoa, every unpaid invoice's customer page shows a Pay online button. The customer pays by FPX, card, e-wallet or DuitNow QR; the money settles into your CHIP account and from there to your bank. Invoa never holds your money. When the payment succeeds, Invoa records it, marks the invoice paid and emails the receipt.
Optional, and always your own account. You don't need CHIP to use Invoa: without it, customers pay by bank transfer or DuitNow to the account on your invoice. If you connect CHIP, it is your company's own CHIP merchant account. Money goes from CHIP to your bank, CHIP charges its own per-payment fee, and Invoa adds nothing and takes no share.
Before you start
- A CHIP merchant account. If you do not have one, click Open a CHIP account under Settings → Payments (CHIP). CHIP verifies your business before you can take live payments.
- Owner or admin access in Invoa. Other roles can see the page but not change it.
1. Get your keys from CHIP
In the CHIP merchant portal:
- While you set up, switch on Test mode at the top of the portal. Test keys only create test payments; no real money moves.
- Open Developers → API keys, create a key and copy the Secret key.
- Open Developers → Brands and copy the Brand ID of the brand your customers should see at checkout.
2. Connect CHIP in Invoa
- Open Settings → Payments (CHIP).
- Tick Use our own CHIP account.
- Paste the Brand ID and the Secret key.
- If these are test keys, tick These are CHIP test-mode keys (no real money moves).
- Leave Webhook public key (PEM) empty for now.
- Click Save.
The secret key is encrypted when you save it and never shown again; the field then reads "Stored … — enter a new key to replace it". To change it, paste a new key and save.
3. Add the Invoa webhook in CHIP
The webhook is how CHIP tells Invoa that a payment succeeded, even if the customer closes the page before returning.
- In Invoa, copy the address under Webhook URL to paste into CHIP.
- In the CHIP portal, open Developers → Webhooks → Add webhook.
- Title it
Invoa, paste the address as the callback URL, and tick the eventpurchase.paid. You can also tickpurchase.payment_failureandpayment.refunded. - Save the webhook in CHIP and copy its public key — the text that starts
-----BEGIN PUBLIC KEY-----. - Back in Invoa, paste it into Webhook public key (PEM) and click Save.
Tip: If you leave Webhook public key (PEM) empty, Invoa looks for a CHIP webhook with your Invoa address when you save, and stores its key for you.
What Save checks
Each time you save, Invoa checks your secret key with CHIP and shows the result at the top of the page:
| Message | What to do |
|---|---|
| "CHIP accepted the secret key and its signing keys are stored." | Nothing. You are connected. |
| "Saved, but CHIP rejected the secret key …" | Check the key belongs to this CHIP account. Test keys need the test-mode box ticked; live keys need it unticked. |
| "Saved, but CHIP could not be reached to check the key. Save again in a minute." | Try again shortly. |
| "Saved and CHIP accepted the key, but there is no CHIP webhook for … yet." | Add the webhook (step 3), so payments are confirmed even if the customer closes the page. |
The badge at the top right shows which account collects payments. Your CHIP account means you are connected. Online payments off means customers see only your bank details.
Go live
When a test payment has worked end to end:
- In the CHIP portal, switch Test mode off and create a live secret key. Live keys are separate from test keys.
- In Invoa, paste the live key into Secret key, untick the test-mode box, and click Save.
- Read the message at the top of the page. If it says there is no CHIP webhook, add it again as in step 3.
Payment methods
Under Default payment methods, tick the methods to offer on your invoices:
| Method | What the customer sees |
|---|---|
| FPX online banking (personal, B2C) | Pay from a personal online banking account. |
| FPX corporate banking (B2B) | Pay from a company's corporate online banking. |
| Credit / debit card (Visa, Mastercard) | Card payment. |
| E-wallets (Touch 'n Go, GrabPay, ShopeePay, Maybank QR) | Pay from an e-wallet. |
| DuitNow QR | Scan a QR with the amount filled in, from any banking app. |
If you untick everything, all five are offered. CHIP only shows methods that are switched on for your CHIP account. A method marked Not enabled on your CHIP account is not available yet — ask CHIP to enable it, or untick it.
CHIP charges its own fee for each transaction, depending on the method. See CHIP's pricing at chip-in.asia.
Switch cards off for large invoices
Card fees are a percentage of the amount, so on large invoices you may prefer FPX. Under Switch cards off for invoices at or above (RM), set the amount; the default is RM 5,000.00. When the amount being paid is at or above it, cards are not offered. Enter 0 to always allow cards. If cards are the only method you offer, they stay on.
What the customer sees
- On the invoice's customer page, under Amount due, the customer clicks Pay online.
- They go to CHIP's secure checkout for the full outstanding balance, choose a method and pay.
- CHIP sends them back to the customer page, which shows one of:
- "Payment received — thank you. Your receipt is on its way."
- "Thanks — your payment is being confirmed. This page updates once CHIP notifies us (usually within a minute)."
- "The payment was not completed. You can try again or pay by bank transfer."
Pay online appears only on invoices in Ringgit that still have a balance, and only when online payments are set up. Online payment always covers the whole balance; a customer who wants to pay part can pay by bank transfer and use I have paid by bank transfer.
How the payment is recorded
When CHIP confirms the payment, Invoa:
- Records a payment with the method CHIP (online), a reference starting with
CHIP, dated the day CHIP confirmed it. - Marks the invoice Paid (or Partially paid).
- Issues a receipt and emails it, with the PDF, to the customer's contact email.
If CHIP sends the same notification twice, Invoa records the payment only once. The payment appears under Payments → Confirmed payments with webhook next to the method.
Troubleshooting
| Problem | Likely cause |
|---|---|
| No Pay online button | Online payments are not set up, the invoice is paid or void, or it is not in Ringgit. |
| Customer sees "Online payment is not available for this invoice yet. Please pay by bank transfer." | The CHIP connection was removed or is incomplete. Check Settings → Payments (CHIP). |
| Customer paid but the invoice is still unpaid | The webhook is missing or its public key is wrong. Re-check step 3 and save again. |
| Cards not offered | The amount is at or above your card threshold, or cards are not enabled on your CHIP account. |
Related
Something unclear or out of date? Tell us at hello@invoa.io and we'll fix the page.