PHPackages                             aftership/aftership-php-sdk - 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. [API Development](/categories/api)
4. /
5. aftership/aftership-php-sdk

AbandonedArchivedLibrary[API Development](/categories/api)

aftership/aftership-php-sdk
===========================

The PHP SDK of AfterShip API

6.0.0(2y ago)631.0M↓33%474MITPHPPHP &gt;=5.6.1

Since Aug 8Pushed 1y ago24 watchersCompare

[ Source](https://github.com/AfterShip/aftership-sdk-php)[ Packagist](https://packagist.org/packages/aftership/aftership-php-sdk)[ RSS](/packages/aftership-aftership-php-sdk/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (8)Dependencies (3)Versions (22)Used By (4)

Deprecation notice: New Version Available
=========================================

[](#deprecation-notice-new-version-available)

This version of the SDK has been deprecated and replaced with the newly reconstructed SDK.

For the latest API features and improved integration, please visit our updated repository at  and follow the provided instructions.

AfterShip API PHP SDK
=====================

[](#aftership-api-php-sdk)

[![Build Status](https://camo.githubusercontent.com/1dcb3be38f440f18b51fa4016d7dab2d31ee68200cf61ed3092b13fc78c85a55/68747470733a2f2f7472617669732d63692e6f72672f4166746572536869702f6166746572736869702d73646b2d7068702e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/AfterShip/aftership-sdk-php)[![Code Climate](https://camo.githubusercontent.com/4754474babc9a99e6e715d5635c049387b04d8a0ca2ba8a6e3ec185f203f9c2c/68747470733a2f2f636f6465636c696d6174652e636f6d2f6769746875622f4166746572536869702f6166746572736869702d73646b2d7068702f6261646765732f6770612e737667)](https://codeclimate.com/github/AfterShip/aftership-sdk-php)[![Issue Count](https://camo.githubusercontent.com/02f890a5c526a70a0b882ed7ce8dcb91b104176227f03a5297134d73e4a8302a/68747470733a2f2f636f6465636c696d6174652e636f6d2f6769746875622f4166746572536869702f6166746572736869702d73646b2d7068702f6261646765732f69737375655f636f756e742e737667)](https://codeclimate.com/github/AfterShip/aftership-sdk-php)[![Latest Stable Version](https://camo.githubusercontent.com/4da1f2a99739416fe5d8b42e92668840b07c3cd16c58981b4d72ef237be33d28/68747470733a2f2f706f7365722e707567782e6f72672f6166746572736869702f6166746572736869702d7068702d73646b2f762f737461626c65)](https://packagist.org/packages/aftership/aftership-php-sdk)[![Monthly Downloads](https://camo.githubusercontent.com/169cb34dfd63433e1cdcc1dc6117e108a664d8a49cd89fedcdeeea85a8047c72/68747470733a2f2f706f7365722e707567782e6f72672f6166746572736869702f6166746572736869702d7068702d73646b2f642f6d6f6e74686c79)](https://packagist.org/packages/aftership/aftership-php-sdk)[![License](https://camo.githubusercontent.com/3de45c1829647980b9d57e00b3f56f91fa3240a0646e44f23e1550502f38ea2e/68747470733a2f2f706f7365722e707567782e6f72672f6166746572736869702f6166746572736869702d7068702d73646b2f6c6963656e7365)](https://packagist.org/packages/aftership/aftership-php-sdk)

aftership-php is a PHP SDK (module) for [AfterShip API](https://www.aftership.com/docs/api/4/). Module provides clean and elegant way to access API endpoints.

Contact:

Index
-----

[](#index)

1. [Installation](https://github.com/AfterShip/aftership-sdk-php#installation)
2. [Testing](https://github.com/AfterShip/aftership-sdk-php#testing)
3. SDK
    1. [Couriers](https://github.com/AfterShip/aftership-sdk-php#couriers)
    2. [Trackings](https://github.com/AfterShip/aftership-sdk-php#trackings)
    3. [Last Check Point](https://github.com/AfterShip/aftership-sdk-php#last-check-point)
    4. [Notifications](https://github.com/AfterShip/aftership-sdk-php#notifications)
4. [Webhook](https://github.com/AfterShip/aftership-sdk-php#webhook)
5. [Contributors](https://github.com/AfterShip/aftership-sdk-php#contributors)

Installation
------------

[](#installation)

##### Option 1 (recommended): Download and Install Composer.

[](#option-1-recommended-download-and-install-composer-httpsgetcomposerorgdownload)

Run the following command to require AfterShip PHP SDK

```
composer require aftership/aftership-php-sdk

```

Use autoloader to import SDK files

```
require 'vendor/autoload.php';

$key = 'AFTERSHIP API KEY';

$couriers = new AfterShip\Couriers($key);
$trackings = new AfterShip\Trackings($key);
$last_check_point = new AfterShip\LastCheckPoint($key);
```

##### Option 2: Manual installation

[](#option-2-manual-installation)

1. Download or clone this repository to desired location
2. Reference files of this SDK in your project. Absolute path should be prefered.

```
require('/path/to/repository/src/AfterShipException.php');
require('/path/to/repository/src/BackwardCompatible.php');
require('/path/to/repository/src/Couriers.php');
require('/path/to/repository/src/LastCheckPoint.php');
require('/path/to/repository/src/Notifications.php');
require('/path/to/repository/src/Requestable.php');
require('/path/to/repository/src/Request.php');
require('/path/to/repository/src/Trackings.php');

$key = 'AFTERSHIP API KEY';

$couriers = new AfterShip\Couriers($key);
$trackings = new AfterShip\Trackings($key);
$notifications = new AfterShip\Notifications($key);
$last_check_point = new AfterShip\LastCheckPoint($key);
```

#### Please ensure you have installed the PHP extension CURL, you could run the following command to install it

[](#please-ensure-you-have-installed-the-php-extension-curl-you-could-run-the-following-command-to-install-it)

```
sudo apt-get install php5-curl

```

and restart the web server and PHP process.

Use signature headers

```
require 'vendor/autoload.php';

$api_key = 'AFTERSHIP API KEY';
$api_secret = 'Your api secret'; // if the encryption_method = RSA, the api_secret is PEM private key
$encryption_method = 'AES or RSA';
$encryption_password = 'PEM pass phrase';

$key = ['api_key' => $api_key, 'api_secret' => $api_secret, 'encryption_method' => $encryption_method, 'encryption_password' => $encryption_password]

$couriers = new AfterShip\Couriers($key);
$trackings = new AfterShip\Trackings($key);
$last_check_point = new AfterShip\LastCheckPoint($key);
```

Custom CURL opt

```
require 'vendor/autoload.php';

$api_key = 'AFTERSHIP API KEY';

$curl_opt = [CURLOPT_PROXY => 'http://example.com', 'CURLOPT_PROXYPORT' => '8080']

$couriers = new AfterShip\Couriers($key, null, $curl_opt);
$trackings = new AfterShip\Trackings($key, null, $curl_opt);
$last_check_point = new AfterShip\LastCheckPoint($key, null, $curl_opt);
```

Testing
-------

[](#testing)

1. Execute the file:

- If you are install manually, please execute 'test/testing.php' on your browser.
- If you are install by composer, please execute 'vendor/aftership/aftership-php-sdk/test/testing.php' on your browser.

2. Insert your AfterShip API Key. [How to generate AfterShip API Key](https://help.aftership.com/hc/en-us/articles/115008353227-How-to-generate-AfterShip-API-Key-)
3. Click the request all button or the button of the represented request.

Error handling
--------------

[](#error-handling)

Simply add a try-catch block

```
try {
  $couriers = new AfterShip\Couriers('AFTERSHIP_API_KEY');
  $response = $couriers->get();
}catch(\AfterShipException $e) {
    echo $e->getMessage();
}
```

Couriers
--------

[](#couriers)

##### Get your selected couriers list

[](#get-your-selected-couriers-list)

```
$couriers = new AfterShip\Couriers('AFTERSHIP_API_KEY');
$response = $couriers->get();
```

##### Get all our supported couriers list

[](#get-all-our-supported-couriers-list)

```
$couriers = new AfterShip\Couriers('AFTERSHIP_API_KEY');
$response = $couriers->all();
```

##### Detect courier by tracking number

[](#detect-courier-by-tracking-number)

```
$courier = new AfterShip\Couriers('AFTERSHIP_API_KEY');
$response = $courier->detect('1234567890Z');
```

Trackings
---------

[](#trackings)

##### Tracking additional\_fields

[](#tracking-additional_fields)

Couriers below need pass additional\_fields when create, update, or delete tracking

Courier SlugRequired Fieldsabcustom\[tracking\_postal\_code\]alliedexpress\[tracking\_postal\_code\]amazon-fba-us\[tracking\_key\]apc-overnight-connum\[tracking\_postal\_code\]ark-logistics\[tracking\_postal\_code\]arrowxl\[tracking\_postal\_code\]asm\[tracking\_postal\_code\]australia-post-sftp\[tracking\_account\_number\]b2ceurope\[tracking\_postal\_code &amp; tracking\_destination\_country\]bestwayparcel\[tracking\_key\]bluestar\[tracking\_postal\_code\]bpost\[tracking\_postal\_code\]brt-it-sender-ref\[tracking\_account\_number\]capital\[tracking\_account\_number\]chrobinson\[tracking\_key\]colis-prive\[tracking\_postal\_code\]courant-plus\[tracking\_account\_number\]deutsch-post\[tracking\_ship\_date\]dhl-reference\[tracking\_ship\_date\]dpd-fr-reference\[tracking\_account\_number\]dx\[tracking\_account\_number\]dynamic-logistics\[tracking\_account\_number\]endeavour-delivery\[tracking\_postal\_code\]eu-fleet-solutions\[tracking\_postal\_code\]geodis-espace\[tracking\_key\]gls-netherlands\[tracking\_postal\_code\]gls-spain\[tracking\_key\]interlink-express-reference\[tracking\_postal\_code\]international-seur-api\[tracking\_ship\_date\]mikropakket\[tracking\_postal\_code\]mikropakket-be\[tracking\_postal\_code\]mondialrelay\[tracking\_postal\_code\]nacex\[tracking\_account\_number\]nacex-spain\[tracking\_postal\_code\]newzealand-couriers\[tracking\_account\_number\]packs\[tracking\_postal\_code\]palletways\[tracking\_postal\_code\]panther-order-number\[tracking\_postal\_code\]panther-reference\[tracking\_account\_number\]paper-express\[tracking\_postal\_code\]parcelpoint\[tracking\_key\]planzer\[tracking\_postal\_code\]postnl\[tracking\_postal\_code\]postnl-3s\[tracking\_destination\_country &amp; tracking\_postal\_code\]relaiscolis\[tracking\_key\]star-track-courier\[tracking\_state\]tfm\[tracking\_postal\_code\]thedeliverygroup\[tracking\_postal\_code\]total-express\[tracking\_account\_number &amp; tracking\_key\]transmission-nl\[tracking\_postal\_code\]tuffnells\[tracking\_account\_number &amp; tracking\_postal\_code\]tuffnells-reference\[tracking\_postal\_code\]virtransport\[tracking\_account\_number\]xdp-uk\[tracking\_postal\_code\]xdp-uk-reference\[tracking\_postal\_code\]##### Create a new tracking

[](#create-a-new-tracking)

```
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$tracking_info = [
    'slug'    => 'dhl',
    'title'   => 'My Title',
];
$response = $trackings->create('RA123456789US', $tracking_info);
```

##### Create multiple trackings

[](#create-multiple-trackings)

(Will be available soon)

##### Delete a tracking by slug and tracking number

[](#delete-a-tracking-by-slug-and-tracking-number)

```
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->delete('dhl', 'RA123456789US');
```

##### Delete a tracking by slug and tracking number and additional\_fields

[](#delete-a-tracking-by-slug-and-tracking-number-and-additional_fields)

```
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->delete('abcustom', 'RA123456789US', ['tracking_postal_code' => '90199']);
```

##### Delete a tracking by tracking ID

[](#delete-a-tracking-by-tracking-id)

```
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->deleteById('53df4a90868a6df243b6efd8');
```

##### Get tracking results of multiple trackings

[](#get-tracking-results-of-multiple-trackings)

```
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$options = [
    'page'  => 1,
    'limit' => 10
];
$response = $trackings->all($options);
```

##### Get tracking results of a single tracking by slug and tracking number

[](#get-tracking-results-of-a-single-tracking-by-slug-and-tracking-number)

[https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking\_number](https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking_number)

```
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->get('dhl', 'RA123456789US', array('title','order_id'));
```

##### Get tracking results of a single tracking by slug and tracking number with custom display fields

[](#get-tracking-results-of-a-single-tracking-by-slug-and-tracking-number-with-custom-display-fields)

[https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking\_number](https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking_number)

```
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->get('dhl', 'RA123456789US', array('fields' => 'title,order_id'));
```

##### Get tracking results of a single tracking by slug and tracking number in custom language

[](#get-tracking-results-of-a-single-tracking-by-slug-and-tracking-number-in-custom-language)

[https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking\_number](https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking_number)

In case of `china-post` and `china-ems` it is possible to customize language of checkpoint messages.

```
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->get('dhl', 'RA123456789US', array('lang' => 'en'));
```

##### Get tracking results of a single tracking by tracking ID

[](#get-tracking-results-of-a-single-tracking-by-tracking-id)

[https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking\_number](https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking_number)

```
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->getById('53df4a90868a6df243b6efd8', array('title','order_id'));
```

##### Update a tracking by slug and tracking number

[](#update-a-tracking-by-slug-and-tracking-number)

[https://www.aftership.com/docs/api/4/trackings/put-trackings-slug-tracking\_number](https://www.aftership.com/docs/api/4/trackings/put-trackings-slug-tracking_number)

```
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$params = array(
    'smses'             => [],
    'emails'            => [],
    'title'             => '',
    'customer_name'     => '',
    'order_id'          => '',
    'order_id_path'     => '',
    'custom_fields'     => []
);
$response = $trackings->update('dhl', 'RA123456789US', $params);
```

##### Update a tracking by tracking ID

[](#update-a-tracking-by-tracking-id)

[https://www.aftership.com/docs/api/4/trackings/put-trackings-slug-tracking\_number](https://www.aftership.com/docs/api/4/trackings/put-trackings-slug-tracking_number)

```
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$params = array(
    'smses'             => [],
    'emails'            => [],
    'title'             => '',
    'customer_name'     => '',
    'order_id'          => '',
    'order_id_path'     => '',
    'custom_fields'     => []
);
$response = $trackings->updateById('53df4a90868a6df243b6efd8', $params);
```

##### Reactivate Tracking by slug and tracking number

[](#reactivate-tracking-by-slug-and-tracking-number)

[https://www.aftership.com/docs/api/4/trackings/post-trackings-slug-tracking\_number-retrack](https://www.aftership.com/docs/api/4/trackings/post-trackings-slug-tracking_number-retrack)

```
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->retrack('dhl','RA123456789US');
```

##### Reactivate Tracking by slug and tracking number and additional\_fields

[](#reactivate-tracking-by-slug-and-tracking-number-and-additional_fields)

[https://www.aftership.com/docs/api/4/trackings/post-trackings-slug-tracking\_number-retrack](https://www.aftership.com/docs/api/4/trackings/post-trackings-slug-tracking_number-retrack)

```
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->retrack('abcustom','RA123456789US', ['tracking_postal_code' => '90199']);
```

##### Reactivate Tracking by tracking ID

[](#reactivate-tracking-by-tracking-id)

[https://www.aftership.com/docs/api/4/trackings/post-trackings-slug-tracking\_number-retrack](https://www.aftership.com/docs/api/4/trackings/post-trackings-slug-tracking_number-retrack)

```
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->retrackById('53df4a90868a6df243b6efd8');
```

Last Check Point
----------------

[](#last-check-point)

##### Return the tracking information of the last checkpoint of a single tracking by slug and tracking number

[](#return-the-tracking-information-of-the-last-checkpoint-of-a-single-tracking-by-slug-and-tracking-number)

[https://www.aftership.com/docs/api/4/last\_checkpoint/get-last\_checkpoint-slug-tracking\_number](https://www.aftership.com/docs/api/4/last_checkpoint/get-last_checkpoint-slug-tracking_number)

```
$last_check_point = new AfterShip\LastCheckPoint('AFTERSHIP_API_KEY');
$response = $last_check_point->get('dhl','RA123456789US');
```

##### Return the tracking information of the last checkpoint of a single tracking by tracking ID

[](#return-the-tracking-information-of-the-last-checkpoint-of-a-single-tracking-by-tracking-id)

[https://www.aftership.com/docs/api/4/last\_checkpoint/get-last\_checkpoint-slug-tracking\_number](https://www.aftership.com/docs/api/4/last_checkpoint/get-last_checkpoint-slug-tracking_number)

```
$last_check_point = new AfterShip\LastCheckPoint('AFTERSHIP_API_KEY');
$response = $last_check_point->getById('53df4a90868a6df243b6efd8');
```

Notifications
-------------

[](#notifications)

##### Create a new notification by slug and tracking number

[](#create-a-new-notification-by-slug-and-tracking-number)

```
$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->create('ups', '1ZV90R483A33906706', [
                'emails' => ['youremail@yourdomain.com']
            ])
```

##### Create a new notification by slug and tracking number and additional\_fields

[](#create-a-new-notification-by-slug-and-tracking-number-and-additional_fields)

```
$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->create('abcustom', '1ZV90R483A33906706', [
                'emails' => ['youremail@yourdomain.com']
            ], ['tracking_postal_code' => '90199'])
```

##### Create a new notification by tracking ID

[](#create-a-new-notification-by-tracking-id)

```
$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->createById('53df4a90868a6df243b6efd8');
```

##### Delete a notification by slug and tracking number.

[](#delete-a-notification-by-slug-and-tracking-number)

```
$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->delete('ups', '1ZV90R483A33906706', [
                  'emails' => ['youremail@yourdomain.com']
              ]);
```

##### Delete a notification by slug and tracking number and additional\_fields.

[](#delete-a-notification-by-slug-and-tracking-number-and-additional_fields)

```
$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->delete('abcustom', '1ZV90R483A33906706', [
                  'emails' => ['youremail@yourdomain.com']
              ], ['tracking_postal_code' => '90199']);
```

##### Delete a notification by tracking ID.

[](#delete-a-notification-by-tracking-id)

```
$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->deleteById('53df4d66868a6df243b6f882'));
```

##### Get notification of a single tracking by slug and tracking number.

[](#get-notification-of-a-single-tracking-by-slug-and-tracking-number)

```
$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->get('dhl', '2254095771'));
```

##### Get notification of a single tracking by tracking ID

[](#get-notification-of-a-single-tracking-by-tracking-id)

```
$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->getById('53df4a90868a6df243b6efd8', ['fields' => 'customer_name']);
```

Webhook
-------

[](#webhook)

You could find the example code at [here](https://github.com/AfterShip/aftership-sdk-php/blob/master/examples/webhook.php)

Contributors
------------

[](#contributors)

These amazing people have contributed code to this project:

- Teddy Chan - [view contributions](https://github.com/AfterShip/aftership-php/commits?author=teddychan)
- Sunny Chow - [view contributions](https://github.com/AfterShip/aftership-php/commits?author=sunnychow)
- Abishek R Srikaanth - [view contributions](https://github.com/AfterShip/aftership-php/commits?author=abishekrsrikaanth)
- Luis Cordova - [view contributions](https://github.com/AfterShip/aftership-php/commits?author=cordoval)
- Russell Davies - [view contributions](https://github.com/AfterShip/aftership-php/commits?author=russelldavies)
- akovalyov - [view contributions](https://github.com/AfterShip/aftership-php/commits?author=akovalyov)
- Robert Basic - [view contributions](https://github.com/AfterShip/aftership-php/commits?author=robertbasic)
- Marek Narozniak - [view contributions](https://github.com/AfterShip/aftership-php/commits?author=marekyggdrasil)

###  Health Score

48

—

FairBetter than 93% of packages

Maintenance26

Infrequent updates — may be unmaintained

Popularity53

Moderate usage in the ecosystem

Community35

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~182 days

Recently: every ~262 days

Total

20

Last Release

885d ago

Major Versions

4.0.5 → 5.0.02016-01-20

5.3.0 → 6.0.02024-01-30

PHP version history (3 changes)4.0.0PHP &gt;=5.3.0

5.1.0PHP &gt;=5.4.0

5.2.0PHP &gt;=5.6.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/84eff618ecd245e9a99b395eeb81df23e16a044a95a85b1d02a0edec3f42b55a?d=identicon)[aftership](/maintainers/aftership)

---

Top Contributors

[![sunnychow](https://avatars.githubusercontent.com/u/6318765?v=4)](https://github.com/sunnychow "sunnychow (90 commits)")[![abishekrsrikaanth](https://avatars.githubusercontent.com/u/1639302?v=4)](https://github.com/abishekrsrikaanth "abishekrsrikaanth (40 commits)")[![hans-lizihan](https://avatars.githubusercontent.com/u/7879022?v=4)](https://github.com/hans-lizihan "hans-lizihan (25 commits)")[![Bossa573](https://avatars.githubusercontent.com/u/1013526?v=4)](https://github.com/Bossa573 "Bossa573 (11 commits)")[![teddychan](https://avatars.githubusercontent.com/u/1013507?v=4)](https://github.com/teddychan "teddychan (8 commits)")[![cordoval](https://avatars.githubusercontent.com/u/328359?v=4)](https://github.com/cordoval "cordoval (8 commits)")[![onnovos](https://avatars.githubusercontent.com/u/5764151?v=4)](https://github.com/onnovos "onnovos (6 commits)")[![marekyggdrasil](https://avatars.githubusercontent.com/u/8202674?v=4)](https://github.com/marekyggdrasil "marekyggdrasil (4 commits)")[![Beaelf](https://avatars.githubusercontent.com/u/27497831?v=4)](https://github.com/Beaelf "Beaelf (3 commits)")[![yangyao](https://avatars.githubusercontent.com/u/5866775?v=4)](https://github.com/yangyao "yangyao (2 commits)")[![adam0x01](https://avatars.githubusercontent.com/u/842218?v=4)](https://github.com/adam0x01 "adam0x01 (2 commits)")[![Metabor](https://avatars.githubusercontent.com/u/2135064?v=4)](https://github.com/Metabor "Metabor (2 commits)")[![panxl6](https://avatars.githubusercontent.com/u/7712043?v=4)](https://github.com/panxl6 "panxl6 (2 commits)")[![russelldavies](https://avatars.githubusercontent.com/u/120115?v=4)](https://github.com/russelldavies "russelldavies (2 commits)")[![ct0182](https://avatars.githubusercontent.com/u/41597998?v=4)](https://github.com/ct0182 "ct0182 (1 commits)")[![nortron](https://avatars.githubusercontent.com/u/1393314?v=4)](https://github.com/nortron "nortron (1 commits)")[![DaveLegg](https://avatars.githubusercontent.com/u/1929446?v=4)](https://github.com/DaveLegg "DaveLegg (1 commits)")[![Avanpourm](https://avatars.githubusercontent.com/u/6522051?v=4)](https://github.com/Avanpourm "Avanpourm (1 commits)")[![robertbasic](https://avatars.githubusercontent.com/u/166625?v=4)](https://github.com/robertbasic "robertbasic (1 commits)")[![akovalyov](https://avatars.githubusercontent.com/u/2339101?v=4)](https://github.com/akovalyov "akovalyov (1 commits)")

---

Tags

trackingshippinguspstrackaftershipdhlupsFedEx

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/aftership-aftership-php-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/aftership-aftership-php-sdk/health.svg)](https://phpackages.com/packages/aftership-aftership-php-sdk)
```

###  Alternatives

[shippo/shippo-php

A PHP library for connecting with multiple carriers (FedEx, UPS, USPS) using Shippo.

1681.9M2](/packages/shippo-shippo-php)[gabrielbull/ups-api

PHP UPS API

4572.4M11](/packages/gabrielbull-ups-api)[gavroche/ups-api

PHP UPS API

45813.4k](/packages/gavroche-ups-api)[sauladam/shipment-tracker

Parses tracking information for several carriers, like UPS, USPS, DHL and GLS by simply scraping the data. No need for any kind of API access.

9843.5k](/packages/sauladam-shipment-tracker)[pdt256/shipping

Shipping Rate API

1814.9k](/packages/pdt256-shipping)[ivanmitrikeski/laravel-shipping

Shipping package for Laravel. Supported providers: CanadaPost, USPS, UPS, FedEx and Purolator.

2321.2k4](/packages/ivanmitrikeski-laravel-shipping)

PHPackages © 2026

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