Releases: EasyPost/easypost-csharp
Releases · EasyPost/easypost-csharp
v4.4.0
- Added new beta
RateService
, accessible viamyClient.Beta.Rate
- Added
RetrieveStatelessRate
function under betaRateService
to pull stateless rates when shipment data is provided - Added
GetLowestStatelessRate
function underUtilities.Rate
to filter the lowest stateless rate - Added new
GetLowest
instance functions, callable onList<Rate>
,List<Smartrate>
andList<StatelessRate>
, to
filter the lowest rate - Deprecated rate and smartrate filtering methods in
ShipmentService
,RateService
andCalculation.Rates
namespaces, moved toUtilities.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
- Added payload functions
RetrieveAllPayloadsForEvent
andRetrievePayloadForEvent
methods, accessible viamyClient.Event
service. - 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.Referral
serviceAddPaymentMethod
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 log
- Added new
DeliveryMaxDatetime
Shipment 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
Create
function Constants
are now stored inEasyPost.Constants
instead ofEasyPost.Exceptions.Constants
- Fixed a typo in
/charges
endpoint 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 fromPATCH
toGET
- 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 chosenPercentile75
might accidentally have been chosen rather thanPercentile85
due to a bug in theSmartrateAccuracy
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 aNullReferenceException
.
v4.0.0
Breaking Changes & New Features
- Library is now thread-safe
- Initialize a
Client
object with an API key - Static methods (i.e.
create
,retrieve
, retrieveall
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()
)
- Initialize a
- All properties are now title-cased rather than snake-cased to match standard .NET naming conventions
- e.g.
myShipment.id
is nowmyShipment.Id
,myAddress.federal_tax_id
is nowmyAddress.FederalTaxId
,myTrackerCollection.has_more
is nowmyTrackerCollection.HasMore
- Some properties have been renamed to avoid naming conflicts:
Rate.rate
is nowRate.Price
Message.message
is nowMessage.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
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)
- 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.API
namespace
- Most EasyPost-related objects (i.e.
- 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)
- 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
RedirectError
exception - Any unknown 3xx status code will throw a
UnexpectedHttpError
exception - Any 1xx status code (known or unknown) will throw a
UnexpectedHttpError
exception
- 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
Client
object with an API key - Static methods (i.e.
create
,retrieve
, retrieveall
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()
)
- Initialize a
- All properties are now title-cased rather than snake-cased to match standard .NET naming conventions
- e.g.
myShipment.id
is nowmyShipment.Id
,myAddress.federal_tax_id
is nowmyAddress.FederalTaxId
,myTrackerCollection.has_more
is nowmyTrackerCollection.HasMore
- Some properties have been renamed to avoid naming conflicts:
Rate.rate
is nowRate.Price
Message.message
is nowMessage.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
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)
- All exceptions inherit from
- 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)
- Underlying
v3.6.1
- Adds missing
dropoff_max_datetime
andpickup_max_datetime
Shipment options
v3.6.0
- 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