Releases: EasyPost/easypost-csharp
Releases · EasyPost/easypost-csharp
v4.4.0
- Added new beta RateService, accessible viamyClient.Beta.Rate
- Added RetrieveStatelessRatefunction under betaRateServiceto pull stateless rates when shipment data is provided
- Added GetLowestStatelessRatefunction underUtilities.Rateto filter the lowest stateless rate
- Added new GetLowestinstance functions, callable onList<Rate>,List<Smartrate>andList<StatelessRate>, to
 filter the lowest rate
- Deprecated rate and smartrate filtering methods in ShipmentService,RateServiceandCalculation.Ratesnamespaces, moved toUtilities.Ratenamespace
- Fixes Strong-Name signing that was unintentionally removed in v4.1.0 (this package is now strong-name signed once again)
v4.3.0
- Added payload functions RetrieveAllPayloadsForEventandRetrievePayloadForEventmethods, accessible viamyClient.Eventservice.
- Added function to retrieve all pickups via myClient.Pickup.All()
v4.2.0
- Added new beta billing functionality for referral customer users, accessible via myClient.Beta.Referralservice- AddPaymentMethodto add an existing Stripe bank account or credit card to your EasyPost account
- RefundByAmountrefunds you wallet balance by a specified amount
- RefundByPaymentLogrefunds you wallet balance by a specified payment log
 
- Added new DeliveryMaxDatetimeShipment option
v4.1.0
- Routes requests for creating a carrier account with a custom workflow (eg: FedEx, UPS) to the correct endpoint when using the Createfunction
- Constantsare now stored in- EasyPost.Constantsinstead of- EasyPost.Exceptions.Constants
- Fixed a typo in /chargesendpoint that was causing bank and credit card charge requests to fail
v4.0.2
- 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
- myInsurance.Refresh()function HTTP method fixed from- PATCHto- 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 EasyPostObjector 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 SmartrateAccuracywould be chosen- Percentile75might accidentally have been chosen rather than- Percentile85due to a bug in the- SmartrateAccuracyenum 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 nullrate, avoiding aNullReferenceException.
v4.0.0
Breaking Changes & New Features
- Library is now thread-safe
- Initialize a Clientobject with an API key
- Static methods (i.e. create,retrieve, retrieveallof 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())
 
- Initialize a 
- All properties are now title-cased rather than snake-cased to match standard .NET naming conventions
- e.g. myShipment.idis nowmyShipment.Id,myAddress.federal_tax_idis nowmyAddress.FederalTaxId,myTrackerCollection.has_moreis nowmyTrackerCollection.HasMore
- Some properties have been renamed to avoid naming conflicts:
- Rate.rateis now- Rate.Price
- Message.messageis now- Message.Text
 
 
- e.g. 
- 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 ApiErroror inherited-type exception
- API exception types can be retrieved by HTTP status code via the EasyPost.Exceptions.Constantsclass (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.Constantsclass (i.e. for log parsing)
 
- All exceptions inherit from 
- Source code files have been organized
- Most EasyPost-related objects (i.e. Shipment,Address,Tracker, etc.) are now in theEasyPost.Model.APInamespace
 
- Most EasyPost-related objects (i.e. 
- Dependencies updated to latest versions, including RestSharpv108
Misc
- Under the hood improvements:
- Underlying Request-Client-ClientConfigurationrelationship 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)
 
- Underlying 
- 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 RedirectErrorexception
- Any unknown 3xx status code will throw a UnexpectedHttpErrorexception
- Any 1xx status code (known or unknown) will throw a UnexpectedHttpErrorexception
 
- Any known 3xx status code from the EasyPost API will throw a 
v4.0.0-rc1
Breaking Changes & New Features
- Library is now thread-safe
- Initialize a Clientobject with an API key
- Static methods (i.e. create,retrieve, retrieveallof 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())
 
- Initialize a 
- All properties are now title-cased rather than snake-cased to match standard .NET naming conventions
- e.g. myShipment.idis nowmyShipment.Id,myAddress.federal_tax_idis nowmyAddress.FederalTaxId,myTrackerCollection.has_moreis nowmyTrackerCollection.HasMore
- Some properties have been renamed to avoid naming conflicts:
- Rate.rateis now- Rate.Price
- Message.messageis now- Message.Text
 
 
- e.g. 
- 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 ApiErroror inherited-type exception
- API exception types can be retrieved by HTTP status code via the EasyPost.Exceptions.Constantsclass (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.Constantsclass (i.e. for log parsing)
 
- All exceptions inherit from 
- Dependencies updated to latest versions, including RestSharpv108
Misc
- Under the hood improvements:
- Underlying Request-Client-ClientConfigurationrelationship 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)
 
- Underlying 
v3.6.1
- Adds missing dropoff_max_datetimeandpickup_max_datetimeShipment options
v3.6.0
- Adds end_shipper_idshipment 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