Before you start
You’ll need a PayMongo merchant account at paymongo.com. Approval typically takes 1–3 business days after submitting your business documents.Configuration steps
Get your API keys
Log in to your PayMongo dashboard → Developers → API Keys. You’ll see two values:
- Public Key (starts with
pk_test_for test mode orpk_live_for production) - Secret Key (starts with
sk_test_orsk_live_)
Enter the keys in AppointFlow
Open
/admin/settings/payments. Toggle PayMongo on, then paste your Public Key and Secret Key into the form. Click Save.Your secret key is encrypted at rest — even our staff can’t read it. After saving, the form shows the key partially masked.Set up the webhook
In your PayMongo dashboard, go to Developers → Webhooks → Create Webhook. Use this URL:Select these events:
checkout_session.payment.paidpayment.paidpayment.failed
Run a test payment
Make sure your Booking Policy is set to Require Payment (or has a deposit enabled). Open your public booking page in an incognito window, complete a booking, and use PayMongo’s test card numbers (e.g.,
4343 4343 4343 4345) to verify the flow.After payment, the booking should show as Confirmed in your admin dashboard within seconds.Supported payment methods
When customers reach the PayMongo checkout, they can pay via:- GCash (most common in the Philippines)
- GrabPay
- Maya wallet
- Credit/Debit cards (Visa, Mastercard, JCB)
- Online banking (BPI, BDO, UnionBank, etc.)
Fees
PayMongo charges per-transaction fees — see their pricing page. AppointFlow itself takes no payment fee beyond your subscription plan.Troubleshooting
Payments succeed on PayMongo but bookings stay Pending Payment
Payments succeed on PayMongo but bookings stay Pending Payment
The webhook isn’t reaching AppointFlow. Double-check the webhook URL in your PayMongo dashboard matches
https://appointflow.online/api/webhooks/paymongo/<your-slug> exactly. Test the webhook with PayMongo’s Send test event button.Customer sees 'Invalid signature' error
Customer sees 'Invalid signature' error
The webhook secret in AppointFlow doesn’t match the one in PayMongo. Re-copy
the secret from PayMongo and paste it into
/admin/settings/payments, then
save.Test cards aren't working
Test cards aren't working
Make sure you’re using test mode keys (starting with
pk_test_ / sk_test_). Live keys reject test cards.