Best Practices

The following are recommended best practices. If you encounter a problem with the Shipping APIs, please see Troubleshooting.


Developer Accounts

Use a distribution list as the email address for the developer account

The email address used to sign up for a Pitney Bowes developer account cannot be changed. Therefore, when signing up for a developer account, use a distribution list that is monitored by multiple people. Do not use an email address that is specific to one person.

Important

Do not use an open, public mailbox, such as Mailinator.

Third-party integrators should not own developer accounts

If you are a third-party integrator contracting to create custom API integrations for individual clients, then the client must be the owner of the Pitney Bowes developer account.

This does not apply if you are part of an organization that provides a shipping software platform as part of a product offering. If your organization provides a shipping software platform as a product offering, you are encouraged to create a developer account with Pitney Bowes.

Note

This applies specifically to third-party integrators who are contracting to create custom API integrations for individual clients. This does not apply to organizations that provide a shipping platform as part of a product offering.


API Calls

Integrate to both PB Expedited and PB Standard

When integrating to the Pitney Bowes Carrier Service, integrate to both PB Expedited and the PB Standard, to provide shippers a range of options and provide the opportunity to redistribute volume during peak periods. Configure API calls for Expedited Delivery, Standard Delivery, Expedited Returns, and Standard Returns. For details, see the Pitney Bowes page.

Use an OAuth token for its full 10 hours

Once generated, the OAuth token is valid for 10 hours. Reuse the token for its full 10 hours to reduce the number of API calls your application makes. Do not recreate the OAuth token for every transaction.

Validate addresses prior to shipping

Run the Address Validation API during upstream operations, such as during order entry. If an address fails, run the Suggest Addresses API to get the correct address before printing the label.

Do not pass fields without values

When issuing an API request, do not pass empty fields and do not pass NULL values. In your request, pass only those fields for which there is a value to be entered. If an optional parameter has no value, exclude the parameter from the request. Do not pass the parameter as empty or NULL.

Call the APIs from your web servers

Call the APIs from your web servers. Do not call the APIs from your clients’ browsers. Do not call the APIs from client-side applications.


Testing and Optimization

Test on Sandbox before deploying to Production

To see how your application will run on production, test it first on the Sandbox environment. Sandbox uses the same hardware and code as the Production environment and is intended specifically to show you how your application will run on Production.

Contact Support before running performance or load tests

If you plan to run performance or load tests, first contact the Client Support team at ClientSupportTechServices@pb.com with the dates and times, to avoid your tests being blacklisted.

Note

Do not run performance or load tests without first contacting Support.

Optimize parameters if you use multithreading

The PB Shipping APIs are designed to support both single and multithreaded applications. If you use multithreading, optimize the following on Sandbox before deploying to Production:

  • Number of threads

  • Number of sockets per process

  • Memory

  • Multithreading vs. Multiprocessing

Important

Response times for multithreaded calls on Sandbox might differ from response times for multithreaded calls on Production. Sandbox is not configured as a performance environment.

Contact us if you will regularly exceed 100 TPS for label operations

If you will use multithreading or high-volume batch processing for printing labels, please note that Pitney Bowes has safeguards in place to make sure that runaway applications and other high-volume activities don’t jeopardize the platform for other users. As a result, before deploying any high-volume processes that might regularly exceed 100 TPS for label-printing operations, please contact the Client Support team at ClientSupportTechServices@pb.com so we can work with you to optimize your throughput on the platform.


Network

Keep the connection open during periods of high volume

If you print multiple labels in a short period of time, leave the connection to Pitney Bowes open instead of opening it separately for each label request.

Configure your network with failover options

As with any network application, prepare for network and server failures by configuring your network to automatically transfer workload to secondary components should the primary components become unavailable.