Overview
PayGlocal sends webhook notifications to your configured endpoint at every stage of an MCA transaction. You do not need to poll for status — PayGlocal calls you. Each notification is a HTTP POST with a JSON body. Your endpoint must respond with HTTP 200 immediately. Process any business logic after acknowledging.Setting Up Your Webhook Endpoint
Your webhook endpoint is a publicly accessible POST endpoint on your backend. Share the URL with your PayGlocal account manager to have it configured against your partner account. Rules for a valid webhook URL:- Must be HTTPS
- Must be publicly reachable (no localhost or private IPs)
- Must accept HTTP POST requests
- Must return HTTP 200 within a few seconds of receiving the request
The Eight Events
VIRTUAL_ACCOUNT_PROVISIONED
Fired once a merchant’s virtual accounts have been successfully provisioned across all applicable acquirers. This is your signal that the merchant is ready to start receiving funds.
This event fires only once per merchant, after virtual account provisioning is fully complete across all acquirers. It must be explicitly enabled for your partner account before you’ll receive it.
MERCHANT_MCA_ACCEPTED
Fired when a merchant’s onboarding application is accepted for the MCA product specifically.
MERCHANT_CARDS_ACCEPTED
Fired when a merchant’s onboarding application is accepted for the Cards product specifically.
A merchant onboarding for multiple products fires one
MERCHANT_<PRODUCT>_ACCEPTED event per product as each is approved. Track product-level acceptance independently rather than assuming one event means the merchant is fully accepted across the board.MCA_FUND_RECEIVED
Fired when funds land in the merchant’s virtual account. This is your trigger to upload the supporting invoice.
gid and trigger your invoice upload flow. See Uploading Documents.
TXN_SENT_FOR_SETTLEMENT
Fired when PayGlocal has accepted the invoice and submitted the transaction for settlement. No action required from your side.
TXN_SETTLED
Fired when the funds have been settled to the merchant’s INR bank account.
FIRC_RECEIVED
Fired when the Foreign Inward Remittance Certificate (FIRC) document is ready. The FIRC is the official proof of receipt for cross-border payments and is required for compliance.
fircUrl and store it in your own system. The URL expires after 10 minutes.
INVOICE_GENERATED
Fired when PayGlocal generates the monthly GST invoice for a reseller’s MCA business. This is a reseller-level notification (keyed by resellerMid), separate from the merchant-level lifecycle events above.
invoiceUrl and store it in your own system, keyed by resellerMid and servicePeriod.
Event Summary
Handling Best Practices
Respond first, process second Return HTTP 200 immediately before running any business logic. Long-running operations in the webhook handler will cause timeouts.gid as an idempotency key — check whether you have already processed that event before acting on it.
Verify the merchantId
Always confirm that the merchantId in the payload belongs to your partner account before acting on the event.
Store the FIRC immediately
Do not cache the fircUrl — download the file to your own storage (S3, GCS, etc.) the moment you receive the FIRC_RECEIVED event.
Store the GST invoice immediately
Do not cache the invoiceUrl — download the file to your own storage the moment you receive the INVOICE_GENERATED event. It expires in 15 minutes.
