Docs / Guides

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:

  1. While you set up, switch on Test mode at the top of the portal. Test keys only create test payments; no real money moves.
  2. Open Developers → API keys, create a key and copy the Secret key.
  3. Open Developers → Brands and copy the Brand ID of the brand your customers should see at checkout.

2. Connect CHIP in Invoa

  1. Open Settings → Payments (CHIP).
  2. Tick Use our own CHIP account.
  3. Paste the Brand ID and the Secret key.
  4. If these are test keys, tick These are CHIP test-mode keys (no real money moves).
  5. Leave Webhook public key (PEM) empty for now.
  6. 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.

  1. In Invoa, copy the address under Webhook URL to paste into CHIP.
  2. In the CHIP portal, open Developers → Webhooks → Add webhook.
  3. Title it Invoa, paste the address as the callback URL, and tick the event purchase.paid. You can also tick purchase.payment_failure and payment.refunded.
  4. Save the webhook in CHIP and copy its public key — the text that starts -----BEGIN PUBLIC KEY-----.
  5. 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:

MessageWhat 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:

  1. In the CHIP portal, switch Test mode off and create a live secret key. Live keys are separate from test keys.
  2. In Invoa, paste the live key into Secret key, untick the test-mode box, and click Save.
  3. 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:

MethodWhat 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 QRScan 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

  1. On the invoice's customer page, under Amount due, the customer clicks Pay online.
  2. They go to CHIP's secure checkout for the full outstanding balance, choose a method and pay.
  3. 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:

  1. Records a payment with the method CHIP (online), a reference starting with CHIP, dated the day CHIP confirmed it.
  2. Marks the invoice Paid (or Partially paid).
  3. 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

ProblemLikely cause
No Pay online buttonOnline 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 unpaidThe webhook is missing or its public key is wrong. Re-check step 3 and save again.
Cards not offeredThe amount is at or above your card threshold, or cards are not enabled on your CHIP account.

Something unclear or out of date? Tell us at hello@invoa.io and we'll fix the page.