1
Get your API keys
Grab your
X-Api-Key and X-Api-Secret from the API Keys page in your merchant dashboard. See Authentication for how they’re used.2
Set your webhook URL
Go to Webhook Settings in your dashboard and set the URL we should call when a payment comes in, plus note your webhook secret — you’ll use it to verify signatures. See Webhooks for the full payload and verification example.
3
Create a virtual account
Pick a The response includes a dedicated account number your customer can transfer into:
reference yourself — your own order ID or customer ID. You’ll use it (not our internal ID) to look this transaction up later.4
Show the customer the account number
Display
account_number and bank_name to your customer, or the returned details however fits your flow. Any amount they send lands in your wallet.5
Get notified when they pay
We POST to your webhook URL the moment the transfer clears — no polling required. Verify the For a virtual account payment like this one,
X-Webhook-Signature header before trusting the payload; the full example is in Webhooks.reference is actually the payer’s bank transfer narration — not something you or we generate, and not guaranteed unique. transaction_id is ABCMPay’s own internal ID for the transaction, always unique — use that (not reference) to match the webhook back to your own records. See why the two are different for the full breakdown by endpoint.Where to next
Virtual Accounts
Full endpoint reference: create, fetch, list.
Collect Payments
Prefer a one-time payment link instead of a dedicated account? Start here.
Payouts
Send money back out to a bank account.
Webhooks
Full payload reference, signature verification, and replay protection.