PHPackages                             dezlov/php-paypal-ipn - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. dezlov/php-paypal-ipn

ActiveLibrary[Payment Processing](/categories/payments)

dezlov/php-paypal-ipn
=====================

A class for handling Instant Payment Notifications (IPN) from PayPal.

v3.0.0(10y ago)99.1k↓50%1GPL-2.0+PHPPHP &gt;=5.3.0

Since Jun 22Pushed 10y ago5 watchersCompare

[ Source](https://github.com/dezlov/PHP-PayPal-IPN)[ Packagist](https://packagist.org/packages/dezlov/php-paypal-ipn)[ Docs](https://github.com/dezlov/PHP-PayPal-IPN)[ RSS](/packages/dezlov-php-paypal-ipn/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (4)Used By (0)

PHP-PayPal-IPN
==============

[](#php-paypal-ipn)

A PHP class for handling Instant Payment Notifications (IPN) from PayPal.

Features:

- Switch between live and sandbox by setting the `use_sandbox` property.
- Supports HTTPS (SSL) transactions by default (HTTP is discontinued by PayPal as of 2016).
- Supports both cURL and fsockopen network libraries by setting the `use_curl` property (cURL is recommended).
- Verifies an HTTP 200 response status code from the PayPal server.
- Get detailed plain text reports of the entire IPN using the `getTextReport()` method for use in emails and logs to administrators.
- Throws various exceptions to differentiate between common errors in code or server configuration versus invalid IPN responses.

Requirements:

- PHP 5.3.0 or newer.
- cURL extension (if `use_curl` property is enabled).

Documentation
-------------

[](#documentation)

The source code contains PHPDoc style comments which essentially provide a function reference.

Example scripts ranging from basic IPN verification to a complete order processing chain, and a sample report as returned by the `getTextReport()` method, can be found in the [Examples](examples/) folder.

This package is available via [Composer](https://getcomposer.org/) at [dezlov/php-paypal-ipn](https://packagist.org/packages/dezlov/php-paypal-ipn).

### Getting Started

[](#getting-started)

You should understand how the IPN process works conceptually and you should understand when and why you would be using IPN. Reading the [PayPal Instant Payment Notification Guide](https://developer.paypal.com/webapps/developer/docs/classic/products/instant-payment-notification/) is a good place to start.

You should also have a [PayPal Sandbox Account](https://developer.paypal.com) with a test buyer account and a test seller account. When logged into your sandbox account there is an IPN simulator under the "Test Tools" menu which you can use to test your IPN listener.

Once you have your sandbox account setup, you simply create a PHP script that will be your IPN listener. In that script, use the `IpnListener()` class as demonstrated in the [Examples](examples/).

Also consider reading this [in-depth tutorial](http://www.micahcarrick.com/paypal-ipn-with-php.html) about the IPN process and how to implementing an IPN listener script in PHP.

History
-------

[](#history)

Changes between versions are documented in the [CHANGELOG.md](CHANGELOG.md).

This library was forked from [WadeShuler/PHP-PayPal-IPN](https://github.com/WadeShuler/PHP-PayPal-IPN) which in turn was forked from [Quixotix/PHP-PayPal-IPN](https://github.com/Quixotix/PHP-PayPal-IPN).

Below is a brief summary of their differences and reasons for forking:

1. Quixotix's version is no longer maintained and contains various critical issues.
2. WadeShuler's version was meant to address all issues of the original version, however, several breaking changes have been made unnecessarily.
3. The goal of this version is to keep the library operational by fixing any issues, while trying to retain backward compatibility with the original version.

License
-------

[](#license)

This work is licensed under [GPL 2.0](http://choosealicense.com/licenses/gpl-2.0/).

Copyright notice from the original author: [LICENSE](LICENSE).

###  Health Score

35

—

LowBetter than 79% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity31

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 50% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~90 days

Total

3

Last Release

3797d ago

Major Versions

2.5.2 → v3.0.02015-12-18

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/7993917?v=4)[Denis Kozlov](/maintainers/dezlov)[@dezlov](https://github.com/dezlov)

---

Top Contributors

[![WadeShuler](https://avatars.githubusercontent.com/u/120594541?v=4)](https://github.com/WadeShuler "WadeShuler (37 commits)")[![dezlov](https://avatars.githubusercontent.com/u/7993917?v=4)](https://github.com/dezlov "dezlov (25 commits)")[![antriver](https://avatars.githubusercontent.com/u/251159?v=4)](https://github.com/antriver "antriver (8 commits)")[![SteveEdson](https://avatars.githubusercontent.com/u/1201960?v=4)](https://github.com/SteveEdson "SteveEdson (1 commits)")[![emerinohdz](https://avatars.githubusercontent.com/u/764807?v=4)](https://github.com/emerinohdz "emerinohdz (1 commits)")[![chutch1122](https://avatars.githubusercontent.com/u/3986362?v=4)](https://github.com/chutch1122 "chutch1122 (1 commits)")[![mike182uk](https://avatars.githubusercontent.com/u/991592?v=4)](https://github.com/mike182uk "mike182uk (1 commits)")

---

Tags

paypalpaypal-ipnphpphppaypalipn

### Embed Badge

![Health badge](/badges/dezlov-php-paypal-ipn/health.svg)

```
[![Health](https://phpackages.com/badges/dezlov-php-paypal-ipn/health.svg)](https://phpackages.com/packages/dezlov-php-paypal-ipn)
```

###  Alternatives

[mike182uk/paypal-ipn-listener

A PayPal IPN (Instant Payment Notification) listener for PHP

90555.4k6](/packages/mike182uk-paypal-ipn-listener)[logicalgrape/paypal-ipn-laravel

A PayPal IPN client for Laravel.

3416.2k](/packages/logicalgrape-paypal-ipn-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
