Official Voucherify SDK for .NET Framework
Frameworks supported | Dependencies | Setup | Callback or Async? | Unity | Xamarin | Contributing | Changelog
API: Vouchers | Campaigns | Distributions | Validations | Redemptions | Customers | Consents | Products | Products | Products | Promotions | Segments | Validation Rules
Build & Pack: sh ./run-build.sh
Tests: sh ./run-tests.sh
- Visual Studio
nuget install xunit.runner.console -Version 2.2.0 -OutputDirectory testrunner
nuget restore ./src/Tests/Voucherify.Tests.csproj
msbuild /p:"Configuration=Release" ./src/Tests/Voucherify.Tests.csproj
mono ./testrunner/xunit.runner.console.2.2.0/tools/xunit.console.exe ./src/Tests/bin/Release/netcoreapp2.0/Voucherify.Tests.dll
nuget restore ./src/Voucherify/Voucherify.csproj
msbuild /p:"Configuration=Release" ./src/Voucherify/Voucherify.csproj
nuget pack ./src/Voucherify/Voucherify.nuspec
nuget restore ./src/Voucherify/Voucherify.Client.csproj
msbuild /p:"Configuration=Release" ./src/Voucherify/Voucherify.Client.csproj
nuget pack ./src/Voucherify/Voucherify.Client.nuspec
msbuild /p:"Configuration=Release" ./src/Examples/Examples.Voucherify.net45/Examples.Voucherify.net45.csproj
mono ./src/Examples/Examples.Voucherify.net45/bin/Release/Examples.Voucherify.net45.exe <api_key> <api_token> <voucher_code>
- .NET 2.0 (Server, Client)
- .NET 3.5 (Server, Client)
- .NET 4.0 (Server, Client)
- .NET 4.5 (Server, Client)
- .NET 6.0 (Server, Client)
- .NET Standard 2.0 (Client, Server) - for Unity, Xamarin, etc.
Due to security resons old versions of TLS (1.0 and 1.1) will be deprecated soon and our api will not accept any calls using those layers. Thus, we decided to switch .NET SDK to use TLS 1.2 already. The following articles will help you setup your environemnt:
- .NET Framework 2.0: Support for TLS System Default Versions included in the .NET Framework 2.0 SP2
- .NET Framework 3.5: Support for TLS System Default Versions included in the .NET Framework 3.5.1
- Json.NET - 9.0.1 or later
The DLLs included in the package may not be the latest version. We recommend using NuGet to obtain the latest version of the packages:
Install-Package Newtonsoft.Json
Install-Package Voucherify
Or simple use libraries from lib/{target-framework}
folder:
Voucherify.dll
- Server Side Library
Log-in to Voucherify web interface and obtain your Server Side Keys from Configuration:
var api = new Voucherify.Api(
"<app_id>",
"<token>")
.WithSSL();
You can also specify the API verison if needed:
var api = new Voucherify.Api(
"<app_id>",
"<token>")
.WithSSL()
.WithVersion(Voucherify.Core.ApiVerions.v2018_08_01);
Optionally, you can specify API Endpoint if you want to use Voucherify running in a specific region.
var api = new Voucherify.Api(
"<app_id>",
"<token>")
.WithSSL()
.WithHost("<region>.api.voucherify.io");
Install-Package Voucherify.Client
Or simple use libraries from lib/{target-framework}
folder:
Voucherify.Client.dll
- Client Side Library
Log-in to Voucherify web interface and obtain your Client Side Keys from Configuration:
var api = new Voucherify.Client.Api(
"<client_app_id>",
"<client_token>",
"<origin>")
.WithSSL();
Optionally, you can specify API Endpoint if you want to use Voucherify running in a specific region.
var api = new Voucherify.Client.Api(
"<client_app_id>",
"<client_token>",
"<origin>")
.WithSSL()
.WithHost("<region>.api.voucherify.io");
api.Vouchers.Get("<your-voucher-code>", (response) =>
{
if (response.Exception != null)
{
Console.WriteLine("Exception: {0}", response.Exception);
}
else
{
Console.WriteLine("Voucher: {0}", response.Result);
}
});
try
{
Voucher newVoucher = new Voucher()
{
Discount = Discount.WithAmountOff(10),
Type = VoucherType.DiscountVoucher
};
Voucher voucher = await api.Vouchers.CreateVoucher(newVoucher);
Console.WriteLine("Voucher: {0}", voucher);
}
catch (VoucherifyClientException exception)
{
Console.WriteLine("Exception: {0}", exception);
}
This SDK is fully consistent with restufl API Voucherify provides. Detalied description and example responses you will find at official docs. Method headers point to more detalied params description you can use.
Methods are provided within Api.Vouchers.*
namespace.
- Create Voucher
- Get Voucher
- Update Voucher
- Delete Voucher
- List Vouchers
- Enable Voucher
- Disable Voucher
- Import Vouchers
- Add Gift Balance
public async Task<DataModel.Voucher> Create(DataModel.Contexts.VoucherCreate voucher)
public async Task<DataModel.Voucher> Create(string code, DataModel.Contexts.VoucherCreate voucher)
public void Create(DataModel.Contexts.VoucherCreate voucher, Action<ApiResponse<DataModel.Voucher>> callback)
public void Create(string code, DataModel.Contexts.VoucherCreate voucher, Action<ApiResponse<DataModel.Voucher>> callback)
Check voucher object.
public async Task<DataModel.Voucher> Get(string code)
public void Get(string code, Action<ApiResponse<DataModel.Voucher>> callback)
public async Task<DataModel.Voucher> Update(string code, DataModel.Contexts.VoucherUpdate voucher)
public void Update(string code, DataModel.Contexts.VoucherUpdate voucher, Action<ApiResponse<DataModel.Voucher>> callback)
public async Task Delete(string code)
public async Task Delete(string code, Core.DataModel.ForcedOperation query query)
public void Delete(string code, Action<ApiResponse> callback)
public void Delete(string code, Core.DataModel.ForcedOperation query query, Action<ApiResponse> callback)
public async Task<IList<DataModel.Voucher>> List(DataModel.Queries.VouchersFilter filter)
public void List(DataModel.Queries.VouchersFilter filter, Action<ApiResponse<IList<DataModel.Voucher>>> callback)
public async Task<DataModel.Voucher> Enable(string code)
public void Enable(string code, Action<ApiResponse<DataModel.Voucher>> callback)
public async Task<DataModel.Voucher> Disable(string code)
public void Disable(string code, Action<ApiResponse<DataModel.Voucher>> callback)
public async Task<Core.DataModel.Empty> Import(List<DataModel.Contexts.VoucherImport> vouchers)
public void Import(List<DataModel.Contexts.VoucherImport> vouchers, Action<ApiResponse<Core.DataModel.Empty>> callback)
public async Task<DataModel.Balance> AddGiftBalance(string code, DataModel.Contexts.VoucherAddGiftBalance balance)
public void AddGiftBalance(string code, DataModel.Contexts.VoucherAddGiftBalance balance, Action<ApiResponse<DataModel.Balance>> callback)
Methods are provided within Api.Campaigns.*
namespace.
- Create Campaign
- Get Campaign
- Update Campaign
- Delete Campaign
- List Campaigns
- Add Voucher to Campaign
- Import Vouchers to Campaign
public async Task<DataModel.Campaign> Create(DataModel.Contexts.CampaignCreate campaign)
public void Create(DataModel.Contexts.CampaignCreate campaign, Action<ApiResponse<DataModel.Campaign>> callback)
public async Task<DataModel.Campaign> Get(string name)
public void Get(string name, Action<ApiResponse<DataModel.Campaign>> callback)
public async Task<DataModel.Campaign> Update(string name, DataModel.Contexts.CampaignUpdate campaign)
public void Update(string name, DataModel.Contexts.CampaignUpdate campaign, Action<ApiResponse<DataModel.Campaign>> callback)
public async Task Delete(string name)
public async Task Delete(string name, Core.DataModel.ForcedOperation query query)
public void Delete(string name, Action<ApiResponse> callback)
public void Delete(string name, Core.DataModel.ForcedOperation query query, Action<ApiResponse> callback)
public async Task<DataModel.CampaignList> List(DataModel.Queries.CampaignFilter filter)
public void List(DataModel.Queries.CampaignFilter filter, Action<ApiResponse<DataModel.CampaignList>> callback)
public async Task<DataModel.Voucher> AddVoucher(string name, DataModel.Contexts.CampaignAddVoucher addVoucherContext)
public void AddVoucher(string name, DataModel.Contexts.CampaignAddVoucher addVoucherContext, Action<ApiResponse<DataModel.Voucher>> callback)
public async Task<Core.DataModel.Empty> ImportVouchers(string name, List<DataModel.Contexts.CampaignVoucherImport> addVoucherContext)
public void ImportVouchers(string name, List<DataModel.Contexts.CampaignVoucherImport> addVoucherContext, Action<ApiResponse<Core.DataModel.Empty>> callback)
Methods are provided within Api.Distributions.*
namespace.
public async Task<DataModel.PublicationSingle> Publish(DataModel.Contexts.VoucherPublishSingle context)
public void Publish(DataModel.Contexts.VoucherPublishSingle context, Action<ApiResponse<DataModel.PublicatioSingle>> callback)
public async Task<DataModel.Publication> CreatePublication(DataModel.Contexts.VoucherPublish context)
public void CreatePublication(DataModel.Contexts.VoucherPublish context, Action<ApiResponse<DataModel.Publication>> callback)
Methods are provided within Api.Validations.*
namespace.
public async Task<DataModel.Validation> ValidateVoucher(string code, DataModel.Contexts.Validation context)
public void ValidateVoucher(string code, DataModel.Contexts.Validation context, Action<ApiResponse<DataModel.Validation>> callback)
public async Task<DataModel.Validation> ValidatePromotion(DataModel.Contexts.Validation context)
public void ValidatePromotion(DataModel.Contexts.Validation context, Action<ApiResponse<DataModel.Validation>> callback)
public async Task<DataModel.Validation> Validate(string code, DataModel.Contexts.Validation context)
public void Validate(string code, DataModel.Contexts.Validation context, Action<ApiResponse<DataModel.Validation>> callback)
public async Task<DataModel.StackableValidation> Validate(DataModel.Contexts.StackableValidation context)
public void Validate(DataModel.Contexts.StackableValidation context, Action<ApiResponse<DataModel.StackableValidation>> callback)
Methods are provided within Api.Redemptions.*
namespace.
- Redeem Voucher
- Redeem Promotion
- Redeem
- Get Redemption
- List Redemptions
- Get Voucher's Redemptions
- Rollback Redemption
- Redeem Stackable
public async Task<DataModel.Redemption> RedeemVoucher(string code, DataModel.Queries.RedemptionRedeem query, DataModel.Contexts.RedemptionRedeem context)
public void RedeemVoucher(string code, DataModel.Queries.RedemptionRedeem query, DataModel.Contexts.RedemptionRedeem context, Action<ApiResponse<DataModel.Redemption>> callback)
public async Task<DataModel.Redemption> RedeemPromotion(string promotionId, DataModel.Contexts.RedemptionRedeem context)
public void RedeemPromotion(string promotionId, DataModel.Contexts.RedemptionRedeem context, Action<ApiResponse<DataModel.Redemption>> callback)
public async Task<DataModel.Redemption> Redeem(string code, DataModel.Contexts.RedemptionRedeem context)
public void Redeem(string code, DataModel.Queries.RedemptionRedeem query, DataModel.Contexts.RedemptionRedeem context, Action<ApiResponse<DataModel.Results.RedemptionRedeem>> callback)
public async Task<DataModel.Redemption> Get(string redemptionId)
public void Get(string redemptionId, Action<ApiResponse<DataModel.Redemption>> callback)
public async Task<DataModel.RedemptionList> List(DataModel.Queries.RedemptionsFilter filter)
public void List(DataModel.Queries.RedemptionsFilter filter, Action<ApiResponse<DataModel.RedemptionList>> callback)
public async Task<DataModel.VoucherRedemption> GetForVoucher(string code)
public void GetForVoucher(string code, Action<ApiResponse<DataModel.VoucherRedemption>> callback)
public async Task<DataModel.Results.RedemptionRollback> Rollback(string redemptionId, DataModel.Queries.RedemptionRollback query, DataModel.Contexts.RedemptionRollback context)
public void Rollback(string redemptionId, DataModel.Queries.RedemptionRollback query, DataModel.Contexts.RedemptionRollback context, Action<ApiResponse<DataModel.Results.RedemptionRollback>> callback)
Check redemption rollback object.
public async Task<DataModel.StackableRedemption> Redeem(DataModel.Contexts.StackableRedemptionRedeem context)
public void Redeem(DataModel.Contexts.StackableRedemptionRedeem context, Action<ApiResponse<DataModel.StackableRedemption>> callback)
Methods are provided within Api.Customers.*
namespace.
public async Task<DataModel.Customer> Create(DataModel.Contexts.CustomerCreate customer)
public void Create(DataModel.Contexts.CustomerCreate customer, Action<ApiResponse<DataModel.Customer>> callback)
Check customer object.
public async Task<DataModel.Customer> Get(string customerId)
public void Get(string customerId, Action<ApiResponse<DataModel.Customer>> callback)
public async Task<DataModel.Customer> Update(string customerId, DataModel.Contexts.CustomerUpdate customer)
public void Update(string customerId, DataModel.Contexts.CustomerUpdate customer, Action<ApiResponse<DataModel.Customer>> callback)
public async Task Delete(string customerId)
public void Delete(string customerId, Action<ApiResponse> callback)
public async Task<DataModel.CustomerList> List(DataModel.Queries.CustomerFilter filter)
public void List(DataModel.Queries.CustomerFilter filter, Action<ApiResponse<DataModel.CustomerList>> callback)
public async Task<Core.DataModel.Empty> UpdateConsents(string customerId, DataModel.Contexts.CustomerConsentUpdate update)
public void UpdateConsents(string customerId, DataModel.Contexts.CustomerConsentUpdate update, Action<ApiResponse<Core.DataModel.Empty>> callback)
Methods are provided within Api.Consents.*
namespace.
public async Task<DataModel.ConsentAndGroupList> List()
public void List(Action<ApiResponse<DataModel.ConsentAndGroupList>> callback)
Methods are provided within Api.Products.*
namespace.
- Create Product
- Get Product
- Update Product
- Delete Product
- List Products
- Create SKU
- Get SKU
- Update SKU
- Delete SKU
- List all product SKUs
public async Task<DataModel.Product> Create(DataModel.Contexts.ProductCreate product)
public void Create(DataModel.Contexts.ProductCreate product, Action<ApiResponse<DataModel.Product>> callback)
Check product object.
public async Task<DataModel.Product> Get(string productId)
public void Get(string productId, Action<ApiResponse<DataModel.Product>> callback)
public async Task<DataModel.Product> Update(string productId, DataModel.Contexts.ProductUpdate product)
public void Update(string productId, DataModel.Contexts.ProductUpdate product, Action<ApiResponse<DataModel.Product>> callback)
public async Task Delete(string productId)
public async Task Delete(string productId, Core.DataModel.ForcedOperation query)
public void Delete(string productId, Action<ApiResponse> callback)
public void Delete(string productId, Core.DataModel.ForcedOperation query, Action<ApiResponse> callback)
public async Task<DataModel.ProductList> List()
public void List(Action<ApiResponse<DataModel.ProductList>> callback)
public async Task<DataModel.Sku> CreateSku(string productId, DataModel.Contexts.SkuCreate sku)
public void CreateSku(string productId, DataModel.Contexts.SkuCreate sku, Action<ApiResponse<DataModel.Sku>> callback)
Check SKU object.
public async Task<DataModel.Sku> GetSku(string productId, string skuId)
public void GetSku(string productId, string skuId, Action<ApiResponse<DataModel.Sku>> callback)
public async Task<DataModel.Sku> UpdateSku(string productId, string skuId, DataModel.Contexts.SkuUpdate sku)
public void UpdateSku(string productId, string skuId, DataModel.Contexts.SkuUpdate sku, Action<ApiResponse<DataModel.Sku>> callback)
public async Task DeleteSku(string productId, string skuId)
public async Task DeleteSku(string productId, string skuId, Core.DataModel.ForcedOperation query)
public void DeleteSku(string productId, string skuId, Action<ApiResponse> callback)
public void DeleteSku(string productId, string skuId, Core.DataModel.ForcedOperation query, Action<ApiResponse> callback)
public async Task<DataModel.ProductSkus> ListSkus(string productId)
public void ListSkus(string productId, Action<ApiResponse<DataModel.ProductSkus>> callback)
Methods are provided within Api.Events.*
namespace.
public async Task<DataModel.Event> Create(DataModel.Contexts.EventCreate eventObject)
public void Create(DataModel.Contexts.EventCreate eventObject, Action<ApiResponse<DataModel.Event>> callback)
Methods are provided within Api.Orders.*
namespace.
public async Task<DataModel.Order> Create(DataModel.Contexts.OrderCreate order)
public void Create(DataModel.Contexts.OrderCreate order, Action<ApiResponse<DataModel.Order>> callback)
public async Task<DataModel.Order> Get(string orderId)
public void Get(string orderId, Action<ApiResponse<DataModel.Order>> callback)
public async Task<DataModel.Order> Update(string orderId, DataModel.Contexts.OrderUpdate order)
public void Update(string orderId, DataModel.Contexts.OrderUpdate order, Action<ApiResponse<DataModel.Order>> callback)
public async Task<DataModel.OrderList> List(DataModel.Queries.OrderFilter filter)
public void List(DataModel.Queries.OrderFilter filter, Action<ApiResponse<DataModel.OrderList>> callback)
Methods are provided within Api.Promotions.*
namespace.
- Get Promotion Tier
- List For Campaign
- Create Campaing
- Add Tier To Campaign
- Update Promotion Tier
- Delete Promotion Tier
public async Task<DataModel.PromotionTier> Get(string promotionTierId)
public void Get(string promotionTierId, Action<ApiResponse<DataModel.PromotionTier>> callback)
public async Task<DataModel.PromotionTierList> ListForCampaign(string campaign)
public void ListForCampaign(string campaign, Action<ApiResponse<DataModel.PromotionTierList>> callback)
public async Task<DataModel.Campaign> CreateCampaign(DataModel.Contexts.CampaignPromotionCreate promotionCampaign)
public void CreateCampaign(DataModel.Contexts.CampaignPromotionCreate promotionCampaign, Action<ApiResponse<DataModel.Campaign>> callback)
public async Task<DataModel.PromotionTier> AddTierToCampaign(string campaignId, DataModel.Contexts.PromotionTierCreate promotionTier)
public void AddTierToCampaign(string campaignId, DataModel.Contexts.PromotionTierCreate promotionTier, Action<ApiResponse<DataModel.PromotionTier>> callback)
public async Task<DataModel.PromotionTier> Update(string promotionTierId, DataModel.Contexts.PromotionTierUpdate promotionTier)
public void Update(string promotionTierId, DataModel.Contexts.PromotionTierUpdate promotionTier, Action<ApiResponse<DataModel.PromotionTier>> callback)
public async Task Delete(string promotionTierId)
public void Delete(string promotionTierId, Action<ApiResponse> callback)
Methods are provided within Api.Segments.*
namespace.
public async Task<DataModel.Segment> Get(string segmentId)
public void Get(string segmentId, Action<ApiResponse<DataModel.Segment>> callback)
public async Task<DataModel.Segment> Create(DataModel.Contexts.SegmentCreate voucher)
public void Create(DataModel.Contexts.SegmentCreate voucher, Action<ApiResponse<DataModel.Segment>> callback)
public async Task Delete(string segmentId)
public void Delete(string segmentId, Action<ApiResponse> callback)
Methods are provided within Api.ValidationRules.*
namespace.
- Create Validation Rule
- Get Validation Rule
- Update Validation Rule
- Delete Validation Rule
- Create Validation Rule Assignment
- [Delete Validation Rule Assignment]](#delete-validation-rule-assignment)
- List Validation Rules
- [List Validation Rule Assignments]](#list-validation-rule-assignments)
public async Task<DataModel.BusinessValidationRule> Create(DataModel.Contexts.BusinessValidationRuleCreate validationRule)
public void Create(DataModel.Contexts.BusinessValidationRuleCreate validationRule, Action<ApiResponse<DataModel.BusinessValidationRule>> callback)
public async Task<DataModel.BusinessValidationRule> Get(string validationRuleId)
public void Get(string validationRuleId, Action<ApiResponse<DataModel.BusinessValidationRule>> callback)
public async Task<DataModel.BusinessValidationRule> Update(string validationRuleId, DataModel.Contexts.BusinessValidationRuleUpdate validationRule)
public void Update(string validationRuleId, DataModel.Contexts.BusinessValidationRuleUpdate validationRule, Action<ApiResponse<DataModel.BusinessValidationRule>> callback)
public async Task Delete(string validationRuleId)
public void Delete(string validationRuleId, Action<ApiResponse> callback)
public async Task<DataModel.BusinessValidationRuleAssignment> CreateAssignment(string validationRuleId, DataModel.Contexts.BusinessValidationRuleAssignmentCreate validationRule)
public void CreateAssignment(string validationRuleId, DataModel.Contexts.BusinessValidationRuleAssignmentCreate validationRule, Action<ApiResponse<DataModel.BusinessValidationRuleAssignment>> callback)
public async Task DeleteAssignment(string validationRuleId, string assignmentId)
public void DeleteAssignment(string validationRuleId, string assignmentId, Action<ApiResponse> callback)
public async Task<DataModel.BusinessValidationRuleList> List(DataModel.Queries.BusinessValidationRuleFilter filter)
public void List(DataModel.Queries.BusinessValidationRuleFilter filter, Action<ApiResponse<DataModel.BusinessValidationRuleList>> callback)
public async Task<DataModel.BusinessValidationRuleAssignmentList> ListAssignments(string validationRuleId, DataModel.Queries.BusinessValidationRuleAssignmentFilter filter)
public void ListAssignments(string validationRuleId, DataModel.Queries.BusinessValidationRuleAssignmentFilter filter, Action<ApiResponse<DataModel.BusinessValidationRuleAssignmentList>> callback)
Bug reports and pull requests are welcome through GitHub Issues.
- 2023-10-23 -
7.19.0
- Added dediceted library for dotNet 6.0. Bump up Newtonsoft.Json to 13.0.3. Fixed add tiers method type. - 2023-02-02 -
7.18.1
- Added missing mapping for Error property - 2023-01-31 -
7.18.0
- Addedactive
in Campaign, extended Exception model - 2023-01-26 -
7.17.0
- Addedreferral
in CustomEvent - 2022-12-16 -
7.16.0
- Added Metadata in ValidationVoucher - 2022-12-14 -
7.15.0
- Init Metadata in Redeemable - 2022-12-13 -
7.14.0
- Added Metadata to ValidationPromotion result - 2022-11-14 -
7.13.0
- Added NullValueHandling.Ignore for all context payloads. - 2022-11-07 -
7.12.0
- Added new fields for Order and Order Item - 2022-10-24 -
7.11.0
- Introduced support for Stackable API. - 2022-05-18 -
7.10.0
- Introduced CustomerSimple model and apply it in Redemption and VoucherRedemption. - 2022-03-09 -
7.9.0
- Fixed datetime serialization to ISO format. - 2021-09-21 -
7.8.0
- Added FIXED discount type and new effects. Extended ValidationError. - 2021-08-21 -
7.7.5
- Added missing DeleteSession method in Voucher's endpoints - 2021-08-21 -
7.7.4
- Added missing properties for ValidationSession - 2021-04-20 -
7.7.3
- Changed accessors for VoucherSubject. - 2021-04-20 -
7.7.2
- Added ApplicableTo and Error to BusinessValidationRule objects. - 2021-04-16 -
7.7.1
- Fixed circural dependency for ToSting methods. - 2021-04-06 -
7.7.0
- Reorganized Redemption result classes. - 2021-04-06 -
7.6.0
- Reorganized Validation result classes. - 2021-03-16 -
7.5.2
- Fixed API Endpoint for Clinet side methods - 2020-12-16 -
7.5.1
- Fixed mapping amount_limit for percent discount - 2020-11-19 -
7.5.0
- Added CampaignType for CampaignCreate, Changed existing CampaignType to CampaignExtensionType as it was not correct - 2020-10-29 -
7.4.0
- Throw ArgumentNullException when url parameter is not defined. - 2020-10-19 -
7.3.0
- Addcampaign
andcampaign_id
in Voucher validation response. Addis_referral_code
in voucher model. - 2020-09-17 -
7.2.1
- Fixed returning ProductSKuList in async implementation. - 2020-09-15 -
7.2.0
- Added Support for Consents. Drop deprecated API Versions. Changed Amounts from int to long. - 2020-08-12 -
7.1.0
- Added Barcode property for VoucherAssets. Introduced ValidationError and BusinessValidationRuleError to support custom error messages. - 2019-06-19 -
7.0.0
- Api class improvements, split Endpoint into Host, BasePath and Port
- 2019-06-10 -
6.4.3
- AddedAssignments
property at Voucher and Campaign level - 2019-05-09 -
6.4.2
- ChangeAddress
properties accessors from private to public - 2019-02-06 -
6.4.1
- Addedamount
in Redemption anddiscount_amount
in Order - 2019-02-03 -
6.4.0
- Replaced ApplicableProductList and ApplicableProduct. Added listing Promotion Tiers method. - 2019-01-29 -
6.3.0
- Reorganized Delete methods with force option for: Voucher, Campaign, Product and Sku - 2019-01-28 -
6.2.0
- Added ApplicableTo property to Validation class - 2019-01-25 -
6.1.0
- Extended OrderItem OrderItemProduct OrderItemSKU. Improved QuerySerializer - 2018-12-27 -
6.0.1
- Added CreatedAt and UpdatedAt property to VoucherFilter - 2018-12-20 -
6.0.0
- Replaced Voucher Validation Rules with Business Validation Rules. Added API Verions v2018-08-01.
- 2018-11-15 -
5.0.1
- Fixed QuerySerializer for Array objects. Added RelatedObject to OrderItem and dedicated method for setting SourceId. - 2018-11-09 -
5.0.0
- Introduced support for TLS 1.2. Added missing CreatePublication endpoint in Distributions namespace. Added Support for .Net Standard 2.0 and dropped for Unity and PLC as Standard version should be used instead. Moved solution to VS2017 and use new type of projects.
- 2018-08-01 -
4.3.2
- Added Price to Product - 2018-02-05 -
4.3.1
- Fixed Segments API endpoints. Fixed Library versioning. - 2018-02-04 -
4.3.0
- Added support for Api Versions. Added support for Orders, Events, Promotions, Segments and Validation Rules. - 2017-11-22 -
4.2.0
- Added 'ApplicableTo' property to Voucher. - 2017-10-24 -
4.1.2
- Added 'key' property to VoucherifyClientException. Removed private setters for Order and Customer entities. - 2017-08-30 -
4.1.1
- Added .ConfigureAwait(false) to all awaitable calls to prevent deadlocks when using the ASP.NET. - 2016-12-19 -
4.1.0
- Added missing methods. Created two additional namespaces: Validations and Distributions. Support for gift.balance (for Gift Vouchers). - 2016-11-17 -
4.0.2
- Fixed issue with InnerException serialization - 2016-11-17 -
4.0.1
- Remove dependencies for Portable library to allow use it in Xamarin Applications. - 2016-11-16 -
4.0.0
- Define separated libraries: Voucherify (server side methods) and Voucherify.Client (client side methods). Define Voucherify.Core. Define Voucherify.DataModel. Client Supported Apis: Vouchers, Redemptions. Server Supported Apis: Vouchers, Redemptions, Campaigns, Customers, Products.
- 2016-11-02 -
3.1.0
- Added Validate method for Vouchers. Fixed issue with DiscountType mapping. - 2016-09-13 -
3.0.0
- Removed dependencies to RSP.Promise and RestSharp, stick to base libraries only.
- 2016-09-06 -
2.2.0
- Added Portable Class Library (portable45-net45+win8+wp8+wpa81). Added Order Items. Improved Error Handling. - 2016-08-17 -
2.1.0
- Fixed Request Header for .Net 3.5+ and empty metadata issue. - 2016-07-21 -
2.0.0
- Fixed Data Conversion Problems. Added Update method for Vouchers, Added Code Pattern for Voucher creation.
- 2016-07-11 -
1.1.3
- Fixed DLLs - 2016-07-11 -
1.1.2
- Fixed package dependencies for .Net Framework 3.5+. - 2016-07-11 -
1.1.1
- Fixed package dependencies. - 2016-07-11 -
1.1.0
- Added support for .Net Framework 2.0 with classic callback approach. Get rid of DataContract attribute.
- 2016-07-03 -
1.0.0
- Replace async/await with RSG.Promise library. Use RestSharp instead of HttpClient. - 2016-07-03 -
0.2.0
- Introduced support for .Net Framework 3.5. - 2016-06-26 -
0.1.0
- Initial version of SDK that supports Vouchers, Redemption and Customer endpoints. - 2016-07-11 -
1.1.1
- Fixed package dependencies. - 2016-07-11 -
1.1.0
- Added support for .Net Framework 2.0 with classic callback approach. Get rid of DataContract attribute. - 2016-07-03 -
1.0.0
- Replace async/await with RSG.Promise library. Use RestSharp instead of HttpClient. - 2016-07-03 -
0.2.0
- Introduced support for .Net Framework 3.5. - 2016-06-26 -
0.1.0
- Initial version of SDK that supports Vouchers, Redemption and Customer endpoints.