On this page
No Headings
Last updated: June 18, 2026
Important: NVP/SOAP is a legacy integration method. We accept new integrations and support existing integrations, but there are newer solutions. If you're starting an integration, we recommend our latest solutions.
You can use the IPN simulator tool to send test IPN messages from the PayPal sandbox to the URL at which your listener is running. The IPN simulator allows you to verify that your listener is receiving IPN messages and handling them correctly. IPN simulator notifications include a test_ipn variable, which is not found in live IPN messages, so the IPN test messages can be distinguished from the real IPN messages.
There are two basic requirements when using the IPN Simulator to send IPN messages from the PayPal sandbox:
https://ipnpb.sandbox.paypal.com/cgi-bin/webscr instead of the live URL at https://ipnpb.paypal.com/cgi-bin/webscr. This URL cannot be localhost. The sandbox notification URL does not have to be set up in your PayPal account profile but you must set up your live URL in your PayPal account profile.Note: To use the IPN simulator, you must be logged into the PayPal Developer site, and your listener must be running at your notification URL on your web server.
Important: Because the listener page does not have a user interface, and runs in the background on your web server, it is extremely important that you have already performed local development testing on your listener to verify that the backend processes are working properly. If there are errors in your backend code, it will be extremely hard to verify that the IPN message validation process is working.
Before testing with the IPN Simulator, we recommend you review the recommended verification procedures in IPN Testing.
To use the IPN simulator, follow these steps:
Go to the PayPal Developer) site and log in.
In the IPN handler URL text box, enter the URL of the listener to which you want to send a test IPN notification message.
From the Transaction type dropdown menu, select the type of transaction for which you want to send an IPN message.
This simulator opens an input form for the specified IPN message, with most fields populated with test data.
Note: For each type of IPN message, the simulator displays the most commonly used fields. To see all possible fields, click Show All Fields at the bottom of the form.
In the fields of the input form, enter the values that you want to send in your test IPN message.
Click Send IPN at the bottom of the form.
The simulator sends a single copy of the specified IPN message to the specified listener and displays the results at the top of the page.
The default messages sent by the IPN simulator are valid. If your IPN listener receives the test message, you know the listener is properly installed on your web server. If your listener responds correctly to such a message, your listener should next receive a VERIFIED response message. If you do not receive any message, or if you receive an INVALID message from PayPal after responding to the original test IPN message, see IPN Simulator troubleshooting.
The IPN Simulator itself will display an IPN sent successfully message, as long as the value set in the IPN handler URL field is a valid URL, even if there is no listener at the URL, or even if there is a listener there and it's not working correctly. So, the only way to verify if the IPN messages are being received and handled properly is to verify that your backend process received the message and processed it correctly. There are a few ways to determine if the messages are being received correctly. You can:
VERIFIED or INVALID, or you can create a database table specifically for testing to store that same data for verification.The last method in the preceding list allows you to confirm that you are receiving and validating the messages correctly, before invoking or testing any of the backend code. When using this method, after you get an email (or test database table) that shows the correct values are received and the HTTP Status is set to VERIFIED, then you can remove the part that sends the email (or populates the database) and allow your backend code to run, because you have confirmed that your IPN messages are being received properly.
There are a few cases where the simulator will return an HTTP status code, other than the 200 success code, such as:
We could not send an IPN due to an HTTP error: 404: Not Found.https://, the simulator displays: Please enter a valid URL.For all other cases, you can look up the message on the HTTP Status Codes page.
Note: Entering a URL that includes www.paypal.com will not work. This causes the simulator to return an HTTP status code in the 300 range.
These troubleshooting tips can be helpful in situations where the IPN simulator is displaying an IPN sent successfully message, but you are not able to validate that the message content was received and/or you are receiving an HTTP status of INVALID, rather than the expected VERIFIED status.
https://ipnpb.sandbox.paypal.com/cgi-bin/webscr, instead of the live URL https://ipnpb.paypal.com/cgi-bin/webscr.INVALID and you have confirmed that your listener code is set to post your response to the sandbox URL at https://ipnpb.sandbox.paypal.com/cgi-bin/webscr. In this case, the problem is most likely that your listener is not sending a properly formatted reply string to PayPal. That string needs to contain the unaltered message to send back to PayPal; the message must contain the same fields (in the same order) as the original message and be character encoded in the same way as the original message, and must be preceded with a cmd=_notify-validate variable.For further troubleshooting, see IPN Troubleshooting Tips