PayGate
Enable online invoice payments, connect providers, and automate reconciliation.
What PayGate does
Adds a Pay Now button to invoices.
Connects to your payment provider (PayFast, Yoco, PayStack, and more).
Auto-updates invoice status when webhooks confirm payment.
Payment links vs webhooks
Payment link generation creates a hosted checkout page for the client.
Webhooks are optional server callbacks that can mark invoices paid automatically after payment completes.
Some providers support webhooks in Illumi today; others may still be link-only.
If your provider is link-only, you can still use PayGate to collect payment — you’ll just mark invoices paid manually or rely on provider reconciliation.
Test mode vs Live mode
Use Test mode to validate your setup before charging real customers.
Use Live mode when you’re ready to take real payments.
If you see authentication errors (e.g. invalid_client), the most common cause is a mismatch between selected mode and the credentials you entered.
If PayGate is set to Live mode, make sure you’ve entered Live keys (not test keys).
If PayGate is set to Test mode, make sure you’ve entered test/sandbox keys.
Which credentials do I paste into PayGate?
Each provider uses different credential names (Merchant ID, Secret Key, Client ID, etc). Illumi shows the exact field labels for the selected provider.
Keep credentials private. Never share them in emails or invoices.
If you rotate keys in your provider dashboard, update them in Settings → PayGate immediately.
Never paste provider secret keys into invoices, emails, or client notes. Only paste them into Settings → PayGate.
Set it up
Webhooks (payment status updates)
Some providers send a server-to-server webhook after payment completes so Illumi can automatically mark the invoice paid.
Only configure webhook endpoints that match your connected provider. If you’re unsure, start by testing Pay Now links first.
Stripe uses a webhook secret (STRIPE_WEBHOOK_SECRET) to verify events. If you set up Stripe webhooks, you must set that secret on the server.