- Adds
tracking_codes
as a parameter of theall
method on the TrackerService - Removes the deprecated
create_list
tracker endpoint function as it is no longer available via API
- Fix
get_next_page_of_children
function for User service with correct filter key
- Adds new
Claim
service for filing claims on EasyPost shipments and insurances
- Adds new
shipment.recommend_ship_date
,smartrate.recommend_ship_date
, andsmartrate.estimate_delivery_date
functions - Routes
UpsAccount
,UpsMailInnovationsAccount
, andUpsSurepostAccount
create/update requests to the new/ups_oauth_registrations
endpoint- Starting
2024-08-05
, UPS accounts will require a new payload to register or update. See UPS OAuth 2.0 Update for more details
- Starting
- Fix payment method funding and deletion failures due to undetermined payment method type
- Adds
refund
function in Insurance service for requesting a refund for a standalone insurance
- Adds
all_children
function to the User service for retrieving paginated lists of children - Adds
get_next_page_of_children
function to User service to get next paginated list of children
- Corrects the return type of
regenerate_rates
See our Upgrade Guide for more details.
- Removes
with_carbon_offset
parameter fromcreate
,buy
, andregenerate_rates
functions of the Shipment service as EasyPost now offers Carbon Neutral shipments by default for free - Removes the undocumented
create_and_buy
function from theBatch
service. The proper usage is to create a batch first and buy it separately - Removes the
beta_carrier_metadata
service as it is deprecated, please use thecarrier_metadata
GA service instead
- Fixes a bug where
get_next_page
functions threw an error, preventing users from retrieving the final page of results
- Add dedicated API Key-related service, available via the
api_keys
property of a client- NOTE: Please note the naming. The
api_key
property of a client is the currently-used API key string, while theapi_keys
property is the service for managing API keys.
- NOTE: Please note the naming. The
- Migrated API Key-related functionality to
api_keys
service, deprecated old methods inuser
service
- Fix endpoint for creating a FedEx Smartpost carrier account
- Adds new
RequestHook
andResponseHook
events. (un)subscribe to them with the newsubscribe_to_request_hook
,subscribe_to_response_hook
,unsubscribe_from_request_hook
, orunsubscribe_from_response_hook
methods of anEasyPostClient
- Maps 400 status codes to new
BadRequestError
class
See our Upgrade Guide for more details.
- New
EasyPostClient
object- Logic is grouped together in Services and each EasyPost object has a new model (eg:
client.shipment.create()
)
- Logic is grouped together in Services and each EasyPost object has a new model (eg:
- Error handling overhaul
- Introduces ~2 dozen new error types that extend from either
ApiError
orEasyPostError
- ApiErrors behave like the previous
Error
class did. They will include amessage
,http_status
, andhttp_body
. Additionally, a newcode
anderrors
keys are present and populate when available
- Introduces ~2 dozen new error types that extend from either
- Beta namespace changed from
easypost.beta.x
toclient.beta_x
- Empty API response functions return
None
instead ofTrue
- Corrected naming conventions
- References to
Referral
are nowReferralCustomer
andreferral_customer
to match the API and docs - References to
Smartrate
are nowSmartRate
andsmart_rate
to match the API and docs - References to
Scanform
are nowScanForm
andscan_form
primary_or_secondary
paramater name for billing functions is now calledpriority
to match the API and docs
- References to
- The
update_email
function of thereferral_customer
service had the parameter order switched soid
(previously calleduser_id
) is first which matches the rest of the library - Retrieving carrier metadata is now in GA
- Dropped Python 3.6 support
- Bumps all dependencies
- Adds
retrieve_estimated_delivery_date
function to the Shipment class
- Adds beta
retrieve_carrier_metadata
function - Improves error deserialization to handle bad format returned from the JSON
- Adds
get_next_page
function that retrieves the next page of results for a paginated collection
- Adds beta
retrieve_stateless_rates
function - Adds
get_lowest_stateless_rate
function to filter the lowest stateless rate
- Adds
all
function toPickup
to retrieve all pickups - Adds
retrieve_payload
andretrieve_all_payloads
functions toEvent
- Adds new beta billing functionality for ReferralCustomer users
add_payment_method
can add a pre-existing Stripe bank account or credit card to your EasyPost accountrefund_by_amount
refunds your wallet by a dollar amountrefund_by_payment_log
refunds you wallet by a PaymentLog ID
- Routes requests for creating a carrier account with a custom workflow (eg: FedEx, UPS) to the correct endpoint when using the
create
function
- Concatenates
error.message
if it incorrectly comes back from the API as a list
- Adds support to pass
end_shipper_id
on the buy call of a Shipment - Migrates the Partner White Label (Referral) functions from beta to the general library namespace and deprecates the beta functions
- Adds the
EndShipper
class withcreate
,retrieve
,all
, andsave
functions
- Adds Carbon Offset support
- Adds ability to create a shipment with carbon_offset
- Adds ability to buy a shipment with carbon_offset
- Adds ability to one-call-buy a shipment with carbon_offset
- Adds ability to rerate a shipment with carbon_offset
- Adds
validate_webhook
function that returns your webhook or raises an error if there is awebhook_secret
mismatch
- Adds ability to generate forms for shipments via
generate_form()
function
- Adds
Billing.retrieve_payment_methods()
,Billing.fund_wallet()
, andBilling.delete_payment_method()
functions - Removes the unusable
carrier
param fromAddress.verify()
along with the deadmessage
conditional check that was missed in v7.0.0 - Adds OS specific details to the user-agent header
- API keys are now required for every request and will fail fast if not present
- Swaps update functions to use
patch
instead ofput
behind the scenes to better match the API behavior and documentation. Behavior of these functions should be unchanged
- Fixes the inclusion of the new
beta
module
- Adds a
lowest_rate()
function to Orders and Pickups - Adds a
Shipment.get_lowest_smartrate()
function and ashipment.lowest_smartrate()
function - Adds beta Referral class for Partner White Label API with these new functions:
create()
,update_email()
,all()
, andadd_credit_card()
Upgrading major versions of this project? Refer to the Upgrade Guide.
- Bumps minimum Python version from 2.7 to 3.6
- Bumps all dependencies
- Removes
shipment.get_rates()
method since the shipment object already has rates. If you need to get new rates for a shipment, please use theshipment.regenerate_rates()
method. - Removes
track_with_code
in shipment class since it's no longer being used - Removes the unusable
carrier
param fromAddress.create_and_verify()
along with the deadmessage
conditional check - Must pass a list object to
shipment.lowest_rate()
rather than a comma-separated list
- Adds the
update_brand()
method to the User object - Adds Python version to user-agent header on requests
- Adds
retrieve_me()
convenience function that allow users to retrieve without specifying an ID.
- Broke out the entire project into separate modules based on object
- Removes
_max_timeout
and instead uses a flat 60-second timeout for requests - Added Makefile for much easier development management
- Added typehints throughout the project
- Consolidated all dependencies from various requirements files to
setup.py
- Added a comprehensive test suite that tests all interfaces of the project
- Documented each interface of the project via docstrings
Upgrading major versions of this project? Refer to the Upgrade Guide.
- JSON encodes POST bodies instead of form encoding them
- Adds support for
tax_identifiers
- Black formatting and iSort tools added to repo
- Bumps
requests
from v1 to v2 - Various refactor efforts and code cleanup
- Remove 2015-vintage experimental "
all_updated
" action from trackers - Correct references of
[email protected]
to[email protected]
- Clean up address verify property and some miscellaneous request logic
- Strips away the
result
key from SmartRate and simply returns an array of SmartRate objects
- fix: stops appending smartrates to Shipment object
- Adds
SmartRate
functionality to theShipments
object (available by callingget_smartrates()
on a shipment)
- Add
all
method for retrieving Events - [backwards-compatibility break] Remove
all
method for some un-supported types: CustomsItem, CustomsInfo, Pickup, and Order
- change tests to use vcrpy so they are more reliable
- add
original_exception
toeasypost.Error
in cases where we are re-raising an underlying error (e.g., an HTTP exception) - fix a bunch of flake8 warnings
- [potentially-breaking] soft-deprecate Python 3.3 and 3.4. these have been dropped by most of the libraries we use, so probably don't work anyway.
- Swap GET to POST on Refund method
- cleaned up how the
__version__
attribute is populated to no longer throw warnings (#95, #98, #104) - added some misding reports
- fix stale tests
- move testing infrastructure from travis-ci.org to travis-ci.com
- Fixed a bug that would not create reports properly
- Fixed stale unit tests
- Update some
setup.py
fields - Formally remove Python 2.6 support (which has been broken for several years)
- Fix broken pickup tests
- Fix broken reports tests
- Make tests run on Python 3.7
- Fix typo in
install_requires
causingsix
to not be installed by pip (gh-84 from @roehnan)
NOTE: This version was never released
- Update user tests
- Fix issue with responses that contain an
api_key
field (gh-67) - Fix tests to take into account new label fee
- Report.retrieve no longer requires a type to be passed
- Modernize tests; make tests able to run in parallel; etc.
- Clarify in README and
setup.py
the supported Python versions - Add top-level
timeout
variable for setting the HTTP timeout on requests
- Changed Report CRUD signatures. requires report type to be passed
- Added
get_rates
method to Order objects
- Fixed create for ScanForms
- Added basic CRUD methods for Webhook Objects
- Fixed Order test
- Added session pooling
- Added support for Report objects
- Added support for Insurance objects
- Added
to_json
method for EasyPost object. Thanks ThePsyjo!
- Remove
api_keys
from object dumps - Fixed address tests to keep them in line with the new API messages
- This was previously known as version 3.1.3
- Added a suite of unittest tests. Thanks wyounas!
- Added ability to interact with Users (create, retrieve and update)
- Add verifications to Address.create
- Added Blob.retrieve for fetching urls for blobs stored by EasyPost.
- Changed the interface on
Tracker.create_list
to return True rather than the Trackers themselves
- Minor bugfix
- Added a
Tracker.all_updated
method for retrieving a large number of Trackers by status ortracking_details
updated datetime
- Added a
Tracker.create_list
method for creating a large number of Trackers at once
- Fixed some examples and added some new ones, particularly dealing with Tracker.all
- Fixed bug where retrieving a shipment by tracking code or reference doesn't set the ID properly
- Added ability to interact with carrier accounts (full CRUD)
- Fixed bug with address verification url rendering
- Fix numerous bugs, including Python3 encoding
- Added python3 support
- Added tracker to shipment response
- Added tracker example
- Added Order support.
- Added Pickup cancellation method.
- Added Pickup resource for scheduling pickups.
- Added Event resource for webhook digestion.
- Added buy method to Batch.
- Bug Fix: UTF-8 input handled more gracefully.
- API Addition: Tracker resource added. Trackers can be used to register any tracking code with EasyPost webhooks.
- API Addition:
Shipment.track_with_code
returns tracking details for any tracking code.
- Bug fix:
address.create_and_verify
is now a classmethod.
- Added function to Address to all creating and verifying at the same time.
- Add label function to Shipment to request specific label
file_formats
(pdf, epl2, zpl). - Add insure function to Shipment. Add insurance to any shipment in one call!
- Fixed
shipment.get_rates
bug.