Forwarding PayPal Instant Payment Notifications (IPN)

PayPal IPN Forwarding is a ChartMogul feature that lets you relay Instant Payment Notifications (IPNs — real-time payment alerts PayPal fires when a transaction occurs) to ChartMogul, even when your PayPal account already sends IPNs to another destination.

PayPal only allows one IPN endpoint (the URL that receives payment notifications) per account. If you're already using your PayPal IPN — for example, as part of your own checkout system — you'll need a webhook relay to forward the same IPN to ChartMogul. A webhook relay is a service that receives one incoming webhook and copies it to multiple destinations.

To forward the PayPal IPN, you'll send PayPal payloads (the raw data PayPal transmits for each transaction) to your ChartMogul webhook URL using an HTTP POST request (a standard way to submit data over the web).

What Is a Webhook

A webhook is an automatic HTTP request that sends data from one service to another the moment an event happens — in this case, PayPal sends payment data to ChartMogul in real time.

How to find your ChartMogul webhook URL

  1. Go to :settings~gray: Settings > Sources.
  2. Find your PayPal source and click the :settings~gray: Settings icon.
  3. Copy your webhook URL from the Enable Instant Payment Notifications in PayPal section.

How to Forward PayPal Data to ChartMogul

  1. Choose a relay service: Pick a service that can forward your PayPal IPN payload from your server to ChartMogul.
  2. Save your PayPal Client ID first: Before you start forwarding, save your PayPal Client ID in ChartMogul. ChartMogul uses it to pull additional customer details from your PayPal account. The IPN must match the Client ID you've saved.
  3. Match accounts: The IPN must come from the same PayPal account tied to the Client ID in ChartMogul. If you saved a Production Client ID, send webhooks from your Production PayPal account — not the Sandbox account.
  4. Send the payload unchanged: ChartMogul requires the original PayPal payload delivered via HTTP POST. Forward it exactly as PayPal sent it to your server, encoded in UTF-8.

You can also use an IPN redirect plugin to forward the payload.

How do I check that it's working?

Use either of these checks to confirm your PayPal IPN is working:

  • Go to :settings~gray: Settings > Sources, select your PayPal source, and check that customers appear in the table.
  • Go to Customers and filter by your PayPal source.

Still need help? Contact Us Contact Us