NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #2629 most downloaded on Packagist
EasyPost Shipping API Client Library for PHP
Last release 29 days ago
08 Sep 2026
Release timing varies
gaps range from 2 weeks to 9 months
Nearly every release is documented
notes for 58 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
80 releases · first in 2013
Preserves caller-provided plain PHP objects in request params so (object) [] is sent as an empty JSON object ( {} ) instead of being stringified
(object) [] is sent as an empty JSON object ({}) instead of being stringifiedEmpty arrays and objects are no longer stripped when passed as params in the request
One column per quarter.
Uppercases all HTTP methods to correct a new Guzzle deprecation
__set and __unset of an EasyPostObjectAdds params to requestPin ensuring users can pass easypost_details to the call.
params to requestPin ensuring users can pass easypost_details to the call.Adds generic makeApiCall function
makeApiCall functionfedexRegistration.registerAddress
fedexRegistration.registerAddressfedexRegistration.requestPinfedexRegistration.validatePinfedexRegistration.submitInvoiceAdds the following functions usable by child and referral customer users (closes #375 ):
apiKey.createapiKey.deleteapiKey.enableapiKey.disabletracker.delete functioncustomerPortal.createAccountLink
embeddable.createSessioncustomerPortal.createAccountLinkAdds support for UspsShipAccount
UspsShipAccounttracker.retrieveBatch functionverify_carrier address paramAdds the following functions shipment.createAndBuyLuma shipment.buyLuma luma.getPromise
shipment.createAndBuyLumashipment.buyLumaluma.getPromiseAdds reference to claims
reference to claimsCorrects the endpoint used for creating/updating UPS accounts
Removes deprecated tracker.createList endpoint function as it is no longer available via API
See our Upgrade Guide for more details.
custom_headers property to webhook modelbetaReferralCustomer.createCreditCardClientSecretbetaReferralCustomer.createBankAccountClientSecretreferralCustomer.addCreditCardFromStripereferralCustomer.addBankAccountFromStripeTracker and TrackingDetail modelsAmazonShippingAccount to the correct endpointerrors property on an ApiException to allow for the alternative formatprettyPrint an error if it used the alternative formatparam references to property references on all error modelsAddressVerificationFieldError for the errors property on a Verification modelsuggestion property to FieldErrortracker.createList endpoint function as it is no longer available via APIuser.allApiKeys and user.apiKeys, use apiKey.all and apiKey.retrieveApiKeysForUser respectivelyFixes an issue with how query params were sent when using the addCreditCard function
addCreditCard functionFix parameters for retrieving next page of child users
Adds new Claim service for filing claims on EasyPost shipments and insurances
Claim service for filing claims on EasyPost shipments and insurancesAdds new shipment.recommendShipDate, smartrate.recommendShipDate, and smartrate.estimateDeliveryDate functions
shipment.recommendShipDate, smartrate.recommendShipDate, and smartrate.estimateDeliveryDate functionsUpsAccount, UpsMailInnovationsAccount, and UpsSurepostAccount create/update requests to the new /ups_oauth_registrations endpoint
2024-08-05, UPS accounts will require a new payload to register or update. See UPS OAuth 2.0 Update for more detailsFix payment method funding and deletion failures due to undetermined payment method type
refund function in Insurance service for requesting a refund for a standalone insuranceAdd allChildren and getNextPageOfChildren methods to user service
allChildren and getNextPageOfChildren methods to user serviceSee our Upgrade Guide for more details.
See our Upgrade Guide for more details.
EasyPostClient via the httpClient property to reduce memory consumption on consecutive requestswithCarbonOffset parameter from create, buy, and regenerateRates functions of the Shipment service as EasyPost now offers Carbon Neutral shipments by default for freeall calls wasn't passed along to getNextPage calls. Now, these are persisted via a _params key on response objects locallycreateAndBuy function from the Batch service. The proper usage is to create a batch first and buy it separatelyprimaryOrSecondary to priority to match the API name for the parameteruserId and email parameters in the updateEmail function of the ReferralCustomer service to match the rest of the library where IDs are always the first parameterFixes a bug that globally reset the timezone to UTC instead of setting the timezone per-request (closes #310)
Deprecates API key-related functions in the user service and introduces the replacement functions in the api_keys service
user service and introduces the replacement functions in the api_keys serviceFix endpoint for creating a FedEx Smartpost carrier account
Adds new RequestHook and ResponseHook events. (un)subscribe to them with the new subscribeToRequestHook, subscribeToResponseHook, unsubscribeFromReque
RequestHook and ResponseHook events. (un)subscribe to them with the new subscribeToRequestHook, subscribeToResponseHook, unsubscribeFromRequestHook, or unsubscribeFromResponseHook methods of an EasyPostClientBadRequestException classMigrates carrier metadata to GA (now available via client.carrierMetadata.retrieve)
client.carrierMetadata.retrieve)Adds retrieveEstimatedDeliveryDate function to the Shipment class
retrieveEstimatedDeliveryDate function to the Shipment classAdds beta retrieveCarrierMetadata function
retrieveCarrierMetadata functionAdd getNextPage function that retrieves the next page of results for a paginated collection
getNextPage function that retrieves the next page of results for a paginated collectionAdds missing status_detail property to Tracker
status_detail property to Trackerweight property on ParcelAdds beta retrieveStatelessRates function
retrieveStatelessRates functiongetLowestStatelessRate utilityForbiddenExceptionAdded function to retrieve all pickups via $client->pickup->all()
$client->pickup->all()retrievePayload and retrieveAllPayloads methods, accessible via $client->event service.Adds new beta billing functionality for referral customer users, accessible via the $client->betaReferralCustomer service
$client->betaReferralCustomer service
addPaymentMethod to add an existing Stripe bank account or credit card to your EasyPost accountrefundByAmount refunds you wallet balance by a specified amountrefundByPaymentLog refunds you wallet balance by a specified payment logSee our Upgrade Guide for more details.
See our Upgrade Guide for more details.
v6.0.0-rc1 belowVarious other bug fixes and improvements were made along with addressing deprecation warnings
EasyPostClient object which encapsulates the API key. All functions are called against this client allowing for thread-safety (eg: $client->shipment->create())
->save() instance methods are now update() static methodsServices for each EasyPost object. All the services are properties of an EasyPostClient. You can then call functions on a Service.ApiException or EasyPostExceptionmessage, errors, code, httpStatus and httpBody. This class extends the more generic EasyPostException which only contains a message, used for exceptions thrown directly from this libraryecode property of an ApiException is now just codetrue now return void as there is no response body from the API (eg: fundWallet, deletePaymentMethod, updateEmail, createList)Guzzle as the HTTP client for this library. This should provide a much more consistent experience, better encoding, and faster request times in some casesallApiKeys is no longer double wrapped with the mode of the API key (these are still accessible inside of each object)Requestor has moved to Http, constants from EasyPost now live in Constants, Error moved to Exceptionsmartrate are now smartRate and Smartrate are now SmartRate to match the documentation and API expectationsReferral is now ReferralCustomer to better match documentation and API expectationvalidateWebhook, getLowestSmartRate, and receiveEvent are now under EasyPost\Util\Util as they do not make any API calls and do not need the associated client object
receive function previously in the namespace of Event is now called receiveEvent since it has been relocated to the generic Util namespaceEasyPost\Util\InternalUtilEndShipper class has been removed, please use the generally available EndShipper classNothing published for this version
Adds carrier account creation routes requests correctly for carriers that require custom workflows
null when a list of child API keys cannot be returned (eg: when you call api_keys on a non-user object) it will return an empty list. The expected impact to end users is extremely lowAdds Partner White Label (Referral) Support
$endShipperId on the buy call of a ShipmentMoves EndShipper out of beta into the general library namespace
Removes some extra imports that no longer exist causing errors when importing this library. Adds a regression test to protect against this in the futu
Adds ability to create a shipment with carbon offset
validateWebhook function that returns your webhook or raises an error if there is a webhookSecret mismatchverify and verify_strict params on an Address creation call to be arrays since passing true as a boolean is also valid (passing an array will continue to work but is no longer required)Add ability to generate forms for shipments via generate_form() function
generate_form() functionAdds Billing::retrieve_payment_methods(), Billing::fund_wallet(), and Billing::delete_payment_method() functions
Billing::retrieve_payment_methods(), Billing::fund_wallet(), and Billing::delete_payment_method() functionsUser-Agent headerFixes a missing parameter bug by setting the beta parameter in the refresh function to false by default
beta parameter in the refresh function to false by defaultAdds the EndShipper Beta class with create, retrieve, all, and save functions
EndShipper Beta class with create, retrieve, all, and save functionsAdds present but unimported supplemental EasyPost object classes such as TrackingDetails to the lib (closes #164)
TrackingDetails to the lib (closes #164)Adds a lowest_rate() function to Orders and Pickups
lowest_rate() function to Orders and PickupsShipment::get_lowest_smartrate() and $shipment.lowest_smartrate() functionsparams from the Address->verify() method since it's non-static and unusedmessage check in Address::create_and_verifySee our Upgrade Guide for more details.
See our Upgrade Guide for more details.
5.3 to 7.3array() syntax to [] throughout the projectupdate_brand() method on the User objectcreate_list() Tracker and create_and_buy() Batch method's encodings to properly send through the parametersUser-Agent headerall() method on the Parcel objectall() method on the Order, CustomsInfo, and CustomsItem objectsget_rates() method on the Shipment object since a Shipment object already has rates. If you need new rates for a shipment, use the regenerate_rates() method insteadArrayAccess and Iterator methods (closes #124)Nothing published for this version
Further fixes JSON encoding by dropping null key/values, sending values as strings where necessary (returning to previous behavior), and removing the
array_filter from the previous releaseProperly handles empty lists and objects with JSON encoding (closes #114)
See our Upgrade Guide for more details.
See our Upgrade Guide for more details.
contact@easypost.com to support@easypost.comAdds SmartRate functionality to the Shipments object (available by calling get_smartrates() on a shipment)
SmartRate functionality to the Shipments object (available by calling get_smartrates() on a shipment)Fixed a bug that did not allow carrier accounts to be deleted
Added "Refund" and "Shipment Invoice" to the prefix and type lists
Version bump with updated author
Bumped version in package.json for Packagist
Added ability to set connection and response timeouts for all EasyPost actions (thanks mattjanssen!)
Renamed Object class EasyPostObject since Object is a keyword in PHP7.2
Object class EasyPostObject since Object is a keyword in PHP7.2Added get_rates method to Order objects
Fixed compatibility issues with older PHP versions and the Report class
Your coding agent can read these notes before it upgrades. Set up the MCP server →