Pacejet

Webhooks

Subscriptions


Version 2.1 adds the Subscription endpoint which is part of the Webhooks feature. The feature helps create a more dynamic, coordinated messaging between Pacejet and ERP, WMS and Ecommerce systems. External systems can subscribe to Pacejet events via Webhooks and are then notified as events occur rather than spending time requesting the event when needed.


What Is a Webhook?

A Webhook is a way for an application (like Pacejet) to provide other applications (like an ERP) with real-time information — meaning you get data immediately. With typical APIs, your ERP will POLL other applications for data on a very frequent basis — even when the application has no information to share. This requires more resources and processing time. Webhooks, however, are more efficient for both the ERP and for Pacejet.

Advantages:

  • No polling is required from the ERP, so resources are tapped only when they are needed

  • Faster response times

  • Better user experience


Who Should Use Webhooks and Why?


Who should Use Webhooks

Why

Any Company That Wants Save Money

It’s all about the transactions…

Many ERPs charge by the number of digital transactions made between the ERP and other systems. For those companies whose ERP charges by transaction, anytime their ERP POLLS another system through its API, they are charged for the transaction. Other types of data exchanges are also considered transactions, too. And having the ability to eliminate polling could drastically reduce cost. Pacejet’s Webhooks eliminate polling and drive down cost because there are fewer transactions that happen between Pacejet and the ERP.

Any Company That Wants To Reduce the Data Load On Their ERP

Think of polling like that telemarketer that keeps calling your cell phone…

You don’t want or need to hear from him, but he keeps calling just in case you want to talk with him. Polling works the same way in an ERP (and all other systems), it uses the API to reach out and communicate with other systems even if those other systems don’t want or need to hear from the ERP. Pacejet’s Webhooks take the “Don’t call me. I’ll call you,” approach, and they will communicate with the ERP only when needed — thus reducing the data that your ERP has to process.

Any Company That Has Time Sensitive Shipping Requirements

For customers who request tracking numbers…

If your company has very tight shipping requirements, you won’t need to wait for your ERP to POLL your shipping platform to retrieve tracking numbers and other shipping information. Webhooks alert the ERP as soon as the information is available so you can inform customers of their shipment status.


Types of Webhooks


Webhook

What it does

quoteconfirms.update

After a quote occurs, it will send info on that quote.

shipmentconfirms.update

After a shipment occurs, it will send info on that shipment to whatever the URL it is set too.

voidconfirms.update

After a void occurs, it will post a void after a void has been done on a shipment.

loadstatus.update

After a transaction occurs with a given load, it will trigger this Webhook and return a status.

shipmentstatus.update

After a shipment status occurs, this Webhook will send a shipment status when the shipment is delivered.

Which API Verbs Do We Support?

Pacejet supports the following verbs:

Verb

Function

GET

A GET retrieves information from the ERP but does not modify any of its resources.

POST

A POST sends data to the ERP to create or update its resources.

PUT

The PUT method completely replaces whatever currently exists at the target URL with something else. With this method, you can create a new resource or overwrite an existing one if you know the exact Request-URI.

DELETE

The DELETE method completely deletes a given set of data on an ERP.


More information on each of the commands is provided below.


Get

The GET verb has three different options to retrieve Webhooks: SubscriptionID from the APIEventSubscription table, the event name, or with the event name and the operation being performed on it.


mceclip0.png
Post

A POST requests that the resource at the URI does something with the provided entity. Often POST is used to create a new entity, but it can also be used to update an entity.

What is an entity? An entity is any singular, identifiable and separate data object. It can refer to individuals, organizations, systems, or even distinct system components that are considered significant in and of themselves.

mceclip1.png

Put

The PUT is similar to POST, except the SubscriptionID from the APIEventSubscription table is needed.

mceclip2.png

Delete

Delete also needs the SubscriptionID.

mceclip3.png

There is also an option to enable authentication between Pacejet and external systems using the following fields: CallbackAuthenticationType, CallBackUsername, and CallBackPassword.


Data When Pacejet Calls a Customer Endpoint

Below is an example of what data appears when Pacejet calls a customer endpoint.

{“EventType”:”shipmentconfirms.update”,”ExternalTransactionID”:””,”LicenseID”:”a4c947bc-2efd—650b-bcb1-b86d54e1778d”,”Location”:”QAtestRom”,”TransactionID”:”D002389”}


How To Make a Webhook Subscription Through the API

Pacejet provides a way to subscribe to a Webhook with line code instead of using the GUI. Below are the directions.

  1. Select Tools at the top of the screen. Then select API, Samples.
    mceclip5.png

  2. Select Version 2.1 or higher from the Version dropdown menu at the top left of your screen.
    mceclip7.png

  3. Click Subscription from the column at the left of your screen.
    The API Samples appear on your screen.
    mceclip8.png

  4. Select the desired verb from the top of the screen: GET, POST, PUT, or DELETE.
    mceclip10.png

  5. Enter the desired Subscription code at the lower left of your screen. Below is an example of a Webhook subscription.

  6. Click Run It.


{
  "LicenseID": "a51660b1-7b85-3acb-e47f-507510fef11e",
  "Event": "shipmentconfirms.update",
  "CallbackURL": "https://call.me/incoming/data",
  "CallbackMethod": "POST",
  "CallbackContentType": "application/json",
  "CallbackAuthenticationType": "Basic",
  "CallbackUsername": "myusername",
  "CallbackPassword": "mypassword"
}


Manually Setting Up Webhooks in Pacejet

  1. From the Tools menu, click API.

  2. Select Webhooks.

  3. Then select Subscriptions.
    mceclip12.png

  4. Click Add.
    mceclip13.png

  5. Select the desired Event and Method.
    mceclip14.png


  1. Enter the desired URL and click Done.
    mceclip15.png


Field

Definition

Event

The list of events your Webhook can subscribe to.

Method

The method in which Pacejet will interact with the ERP.

  • Get – retrieves information from the ERP, but does not modify any of its resources.

  • Post – sends data to the ERP to create or update its resources.

Content Type

The content type (JSON or XML) is the type of content used for the Webhook (usually JSON).

URL

This is the base URL (universal resource locator) for the ERP.

Authentication

There are two types of authentication: Basic and Token.

  • Basic authentication is done by passing a username and password to the ERP through the URL.

  • Token authentication is a more secure way to authenticate users who attempt to log in to an ERP using a security token provided by Pacejet.


You return to the Webhook Event Subscriptions page.

mceclip16.png

Making Subscriptions Inactive:

Pacejet enables you to make subscriptions inactive so you don’t have to delete the subscription entirely. See the example below.

1. Select the desired event

mceclip1.png


2. Select Inactive from the Status Dropdown menu.

mceclip0.png

3. Click Done.