Skip to content

Releases: EasyPost/easypost-csharp

v4.0.0-rc1

26 Sep 22:33
c659c4c

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

Choose a tag to compare

  • Adds missing dropoff_max_datetime and pickup_max_datetime Shipment options

v3.6.0

22 Sep 00:32
7b64aac

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

v3.5.0

25 Aug 19:33
5b03c57

Choose a tag to compare

  • Adds ValidateWebhook function
  • Adds duty_payment shipment option
  • Moves EndShipper out of beta to the general namespace

v3.4.0

02 Aug 19:36
a3cfb63

Choose a tag to compare

  • Adds Carbon Offset support
    • Adds the ability to create a shipment with carbon offset
    • Adds the ability to buy a shipment with carbon offset
    • Adds the ability to one-call-buy a shipment with carbon offset
    • Adds the ability to re-rate a shipment with carbon offset
  • Removes the unusable carrier param from the verify function on an Address

v3.3.0

18 Jul 20:23
d23f78d

Choose a tag to compare

  • Adds ability to generate shipment forms via GenerateForm function

v3.2.0

11 Jul 22:18
6a1345a

Choose a tag to compare

  • Adds DeletePaymentMethod, FundWallet, and RetrievePaymentMethods functions
  • Adds billing_type attribute in CarrierAccount and Rate classes
  • Adds support for webhook secrets
  • Collect OS details in User-Agent header
  • Update functions now use patch instead of put under the hood to better match the API behavior and documentation. Behavior of these functions should remain the same

v2.8.3

01 Jul 17:44
1e9f1f2

Choose a tag to compare

  • Backport improved User-Agent to collect OS details.
  • Built for .NET Framework 3.5, .NET Core 2.0 and .NET 3.0. Users on .NET Framework 4.X should be able to use the .NET Framework 3.5 version.

v3.1.0

19 May 22:05
07df7d4

Choose a tag to compare

  • Adds the EndShipper class with the ability to create, retrieve, and update EndShipper objects
  • Requests will now fail fast with an error if an API key is not provided instead of making a live API call with no key.

v3.0.0

15 Apr 19:17
eef15b6

Choose a tag to compare

Upgrading major versions of this project? Refer to the Upgrade Guide.

Breaking Changes

  • Dropped explicit support for .NET Framework, replaced with .NET Standard 2.0
  • Upgrades RestSharp from v106 to v107
  • Project was built with C# 8.0
  • Project is now entirely asynchronous which will require the addition of async/await on function calls
  • Renames methods from List() to All() to make our library consistent (previously we had methods calling the /all endpoint with both names)
  • Removes the unusable Rating class
  • Removes shipment.GetRates() method since the shipment object already has rates. If you need to get new rates for a shipment, please use the shipment.RegenerateRates() method.
  • Must use verify and verify_strict parameters to verify addresses during creation, per our API docs; verification and strict_verification will no longer work
  • Clarify XList vs XCollection distinction:
    • ReportList, ScanFormList, ShipmentList and TrackerList renamed to ReportCollection, ScanFormCollection, ShipmentCollection and TrackerCollection to match the other names throughout the project
  • Functions previously called Destroy are now called Delete for consistency (eg: deleting a carrier account)

Features

  • Adds explicit support for .NET 5.0 & 6.0
  • Adds F# & Visual Basic compatibility
  • Adds RetrieveMe() which retrieves the authenticated user without the need to pass an ID
  • Adds missing billing_ref and dropoff_type Shipment options
  • Adds comprehensive test suite for .NET/.NET Core
  • Adds declaration attribute to CustomsInfo class
  • Adds missing id property to the Brand class
  • Adds option to pass in a custom HttpClient to the Client constructor (.NET/.NET Core only)
  • Adds CreateAndBuy function to the Batch class

Bug Fixes

  • Fixes bug where AddressCollection was storing Batch objects rather than Address objects
  • Fixes Address creation respecting verify and verify_strict parameters
  • Fixes a bug where Pickup error messages were not deserializing properly

closes #151 , #152, #190, #245

Full Changelog: v2.8.1...v3.0.0