Skip to content

Releases: EasyPost/easypost-csharp

v4.4.0

23 Feb 01:06
d62bb01
Compare
Choose a tag to compare
  • Added new beta RateService, accessible via myClient.Beta.Rate
  • Added RetrieveStatelessRate function under beta RateService to pull stateless rates when shipment data is provided
  • Added GetLowestStatelessRate function under Utilities.Rate to filter the lowest stateless rate
  • Added new GetLowest instance functions, callable on List<Rate>, List<Smartrate> and List<StatelessRate>, to
    filter the lowest rate
  • Deprecated rate and smartrate filtering methods in ShipmentService, RateService and Calculation.Rates namespaces, moved to Utilities.Rate namespace
  • Fixes Strong-Name signing that was unintentionally removed in v4.1.0 (this package is now strong-name signed once again)

v4.3.0

18 Jan 18:10
9461127
Compare
Choose a tag to compare
  • Added payload functions RetrieveAllPayloadsForEvent and RetrievePayloadForEvent methods, accessible via myClient.Event service.
  • Added function to retrieve all pickups via myClient.Pickup.All()

v4.2.0

11 Jan 17:25
d170f85
Compare
Choose a tag to compare
  • Added new beta billing functionality for referral customer users, accessible via myClient.Beta.Referral service
    • AddPaymentMethod to add an existing Stripe bank account or credit card to your EasyPost account
    • RefundByAmount refunds you wallet balance by a specified amount
    • RefundByPaymentLog refunds you wallet balance by a specified payment log
  • Added new DeliveryMaxDatetime Shipment option

v4.1.0

07 Dec 18:12
a6b3c75
Compare
Choose a tag to compare
  • Routes requests for creating a carrier account with a custom workflow (eg: FedEx, UPS) to the correct endpoint when using the Create function
  • Constants are now stored in EasyPost.Constants instead of EasyPost.Exceptions.Constants
  • Fixed a typo in /charges endpoint that was causing bank and credit card charge requests to fail

v4.0.2

01 Nov 17:03
8db53e7
Compare
Choose a tag to compare
  • Fix bug where the temporary internal API key switch when adding a credit card to a referral user was not reverted after the request.
    • After adding a credit card to a referral user, the existing Client would be misconfigured for following requests.

v4.0.1

24 Oct 19:44
6b64d76
Compare
Choose a tag to compare
  • myInsurance.Refresh() function HTTP method fixed from PATCH to GET
    • This function has been marked as obsolete and will be removed in a future release
  • Fix return type of order.Buy() when passing in a rate. Function will now return the updated order.
  • Fix bug where request time limits were not being copied to a cloned Client.
  • Fix bug where hashcode of any EasyPostObject or subtype was not consistent.
    • Hashcode and equality now consider properties of the object, including Client. Different properties and/or different Clients will result in different hashcodes and objects will not be considered equal.
  • Fix bug where the wrong SmartrateAccuracy would be chosen
    • Percentile75 might accidentally have been chosen rather than Percentile85 due to a bug in the SmartrateAccuracy enum ID.
  • Fix bug where some embedded elements (e.g. customs items) were not being created if included during a larger creation request (e.g. customs info create).
  • Prevent users from attempting to buy a shipment with a null rate, avoiding a NullReferenceException.

v4.0.0

12 Oct 20:37
74120e5
Compare
Choose a tag to compare

Breaking Changes & New Features

  • Library is now thread-safe
    • Initialize a Client object with an API key
    • Static methods (i.e. create, retrieve, retrieve all of a resource) exist in services, accessed via property of the client (e.g. myClient.Address.Create())
    • Instance methods (i.e. update, delete) accessed on instance of a resource (i.e. myShipment.Update())
  • All properties are now title-cased rather than snake-cased to match standard .NET naming conventions
    • e.g. myShipment.id is now myShipment.Id, myAddress.federal_tax_id is now myAddress.FederalTaxId, myTrackerCollection.has_more is now myTrackerCollection.HasMore
    • Some properties have been renamed to avoid naming conflicts:
      • Rate.rate is now Rate.Price
      • Message.message is now Message.Text
  • All properties are now nullable
    • Almost all properties will be assigned a value during JSON deserialization. This is mostly to address compiler warnings
    • Users can proceed with the assumption that any given property will not be null
  • Consistent exception handling
    • All exceptions inherit from EasyPostError
    • API-related and HTTP-related exceptions will throw an ApiError or inherited-type exception
    • API exception types can be retrieved by HTTP status code via the EasyPost.Exceptions.Constants class (i.e. to anticipate what error will be thrown for a 404, etc.)
    • Common exception messages and templates can be found in the EasyPost.Exceptions.Constants class (i.e. for log parsing)
  • Source code files have been organized
    • Most EasyPost-related objects (i.e. Shipment, Address, Tracker, etc.) are now in the EasyPost.Model.API namespace
  • Dependencies updated to latest versions, including RestSharp v108

Misc

  • Under the hood improvements:
    • Underlying Request-Client-ClientConfiguration relationship has been re-architected to allow for thread safety
    • Process of generating an API request has been standardized and simplified
    • Improved accessibility levels of internal functions, to prevent accidental use by end users
    • Files have been organized into a more logical structure
    • Methods and properties have been organized (e.g. methods ordered by CRUD, properties ordered alphabetically)
  • Improved API error parsing
    • API error message may be an array rather than a string. Arrays will be concatenated (by comma) and returned as a string.
  • Capture 1xx and 3xx HTTP status codes as errors
    • Any known 3xx status code from the EasyPost API will throw a RedirectError exception
    • Any unknown 3xx status code will throw a UnexpectedHttpError exception
    • Any 1xx status code (known or unknown) will throw a UnexpectedHttpError exception

v4.0.0-rc1

26 Sep 22:33
c659c4c
Compare
Choose a tag to compare
v4.0.0-rc1 Pre-release
Pre-release

Breaking Changes & New Features

  • Library is now thread-safe
    • Initialize a Client object with an API key
    • Static methods (i.e. create, retrieve, retrieve all of a resource) exist in services, accessed via property of the client (e.g. myClient.Address.Create())
    • Instance methods (i.e. update, delete) accessed on instance of a resource (i.e. myShipment.Update())
  • All properties are now title-cased rather than snake-cased to match standard .NET naming conventions
    • e.g. myShipment.id is now myShipment.Id, myAddress.federal_tax_id is now myAddress.FederalTaxId, myTrackerCollection.has_more is now myTrackerCollection.HasMore
    • Some properties have been renamed to avoid naming conflicts:
      • Rate.rate is now Rate.Price
      • Message.message is now Message.Text
  • All properties are now nullable
    • Almost all properties will be assigned a value during JSON deserialization. This is mostly to address compiler warnings
    • Users can proceed with the assumption that any given property will not be null
  • Consistent exception handling
    • All exceptions inherit from EasyPostError
    • API-related and HTTP-related exceptions will throw an ApiError or inherited-type exception
    • API exception types can be retrieved by HTTP status code via the EasyPost.Exceptions.Constants class (i.e. to anticipate what error will be thrown for a 404, etc.)
    • Common exception messages and templates can be found in the EasyPost.Exceptions.Constants class (i.e. for log parsing)
  • Dependencies updated to latest versions, including RestSharp v108

Misc

  • Under the hood improvements:
    • Underlying Request-Client-ClientConfiguration relationship has been re-architected to allow for thread safety
    • Process of generating an API request has been standardized and simplified
    • Improved accessibility levels of internal functions, to prevent accidental use by end users
    • Files have been organized into a more logical structure
    • Methods and properties have been organized (e.g. methods ordered by CRUD, properties ordered alphabetically)

v3.6.1

22 Sep 15:34
73729ba
Compare
Choose a tag to compare
  • Adds missing dropoff_max_datetime and pickup_max_datetime Shipment options

v3.6.0

22 Sep 00:32
7b64aac
Compare
Choose a tag to compare
  • Adds end_shipper_id shipment option
  • Adds support to pass an EndShipper ID when buying a shipment
  • Add Partner White Label support:
    • Create a referral customer
    • Update a referral customer's email address
    • List all referral customers
    • Add a credit card to a referral customer's account