Shipping API PHP library (USPS, FedEx, UPS and more)
robin-shippo Merge pull request #57 from Weebly/master
Add support for OAuth Bearer tokens
Latest commit e4b577a Mar 2, 2018

README.md

Shippo PHP API wrapper

Build Status

Shippo is a shipping API that connects you with multiple shipping carriers (such as USPS, UPS, DHL, Canada Post, Australia Post, UberRUSH and many others) through one interface.

Print a shipping label in 10 mins using our default USPS and DHL Express accounts. No need to register for a carrier account to get started.

Requirements

  • PHP 5.6 or later.

  • Shippo account - free to sign up, free to use the API. Only pay to print a live label, test labels are free.

Installation

Installing using Composer

  • Get Composer

  • Create/append the following to your composer.json file

      {
        "require": {
          "shippo/shippo-php": "1.*"
        }
      }
    
  • Install via:

      composer.phar install
    
  • To use the bindings, either user Composer's autoload:

      require_once('vendor/autoload.php');
    

    Or manually:

      require_once('/path/to/vendor/shippo/shippo-php/lib/Shippo.php');
    

Installing using Laravel

In Laravel you can install the library as normal. Then within you app/Providers/AppServiceProvider.php file's boot() method add the following:

\Shippo::setApiKey(env('SHIPPO_API_KEY'));

To take advantage of configuration caching, you can set a config parameter in config/services.php and retrieve your API key through the configuration.

\Shippo::setApiKey($this->app['config']['services.shippo.key']);

From here you can use the Shippo library anywhere in your application without setting the key when accessing it.

Testing

After installing the dependencies above, the test suite may be run:

    ./vendor/bin/phpunit

You may also run individual tests:

    ./vendor/bin/phpunit AddressTest.php

Getting Started

Simple usage looks like:

    // Replace <API-KEY> with your Shippo API Key
    Shippo::setApiKey("<API-KEY>");
    $address = Shippo_Address::
        create(
            array(
                 'object_purpose' => 'QUOTE',
                 'name' => 'John Smith',
                 'company' => 'Initech',
                 'street1' => '6512 Greene Rd.',
                 'city' => 'Woodridge',
                 'state' => 'IL',
                 'zip' => '60517',
                 'country' => 'US',
                 'phone' => '773 353 2345',
                 'email' => 'jmercouris@iit.com',
                 'metadata' => 'Customer ID 23424'
            ));
            
        var_dump($address);

We've created a number of examples to cover the most common use cases. You can find the sample code files in the examples folder. Some of the use cases we covered include:

Documentation

Please see https://goshippo.com/docs for up-to-date documentation.

About Shippo

Connect with multiple different carriers, get discounted shipping labels, track parcels, and much more with just one integration. You can use your own carrier accounts or take advantage of our discounted rates with the USPS and DHL Express. Using Shippo makes it easy to deal with multiple carrier integrations, rate shopping, tracking and other parts of the shipping workflow. We provide the API and dashboard for all your shipping needs.

Supported Features

The Shippo API provides in depth support of carrier and shipping functionalities. Here are just some of the features we support through the API:

Supported Features

The Shippo API provides in depth support of carrier and shipping functionalities. Here are just some of the features we support through the API:

  • Shipping rates & labels - Docs
  • Tracking for any shipment with just the tracking number - Docs
  • Batch label generation - Docs
  • Multi-piece shipments - Docs
  • Manifests and SCAN forms - Docs
  • Customs declaration and commercial invoicing - Docs
  • Address verification - Docs
  • Consolidator support including:
    • DHL eCommerce
    • UPS Mail Innovations
    • FedEx Smartpost
  • Additional services: cash-on-delivery, certified mail, delivery confirmation, and more - Docs