SafeWebhook/ Tools
Launch Workbench
Developer Utility

Instant Payment Notification (IPN) Simulator

Simulate and verify legacy IPN and URL-encoded webhook callbacks with zero registration

Direct Answer / Tool Overview

SafeWebhook supports raw `application/x-www-form-urlencoded` payloads used by legacy payment gateways (PayPal IPN, Authorize.Net, Worldpay). Inspect decoded key-value pairs and generate validation scripts.

Key Capabilities & Benefits

Full support for URL-encoded and multipart form data
Decodes txn_id, payment_status, mc_gross, and custom parameters
Generate IPN validation POST handshake scripts
100% private, browser-based inspection

How to Use: Step-by-Step Practical Guide

Follow these simple steps to configure and utilize this feature:

1
Set your payment gateway IPN URL to your SafeWebhook endpoint.
2
Execute a simulated transaction in sandbox mode.
3
SafeWebhook decodes the form parameters into a readable key-value table.
4
Use the Replay Drawer to send the IPN payload to your local receiver.

Code Configuration & Integration Recipe

cURL / JavaScript API
// Node.js PayPal IPN Validation Handshake
import fetch from 'node-fetch';

export async function validatePayPalIpn(rawBody) {
  const verifyBody = 'cmd=_notify-validate&' + rawBody;
  const res = await fetch('https://ipnpb.sandbox.paypal.com/cgi-bin/webscr', {
    method: 'POST',
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    body: verifyBody
  });
  const text = await res.text();
  return text === 'VERIFIED';
}

Frequently Asked Questions

Why do legacy payment gateways require an IPN validation handshake?

Legacy IPN systems do not sign payloads with HMAC headers; instead, the receiver must post the entire raw body back to the gateway to confirm authenticity.

Try Instant Payment Notification (IPN) Simulator on SafeWebhook

Start testing in your browser right now with zero signup.

Open Workbench →

Explore More Webhook Utilities