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
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>
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:
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 LibraryLog-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 LibraryLog-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.
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.
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.
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.
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.
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.
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.
7.19.0
- Added dediceted library for dotNet 6.0. Bump up Newtonsoft.Json to 13.0.3. Fixed add tiers method type.7.18.1
- Added missing mapping for Error property7.18.0
- Added active
in Campaign, extended Exception model7.17.0
- Added referral
in CustomEvent7.16.0
- Added Metadata in ValidationVoucher7.15.0
- Init Metadata in Redeemable7.14.0
- Added Metadata to ValidationPromotion result7.13.0
- Added NullValueHandling.Ignore for all context payloads.7.12.0
- Added new fields for Order and Order Item7.11.0
- Introduced support for Stackable API.7.10.0
- Introduced CustomerSimple model and apply it in Redemption and VoucherRedemption.7.9.0
- Fixed datetime serialization to ISO format.7.8.0
- Added FIXED discount type and new effects. Extended ValidationError.7.7.5
- Added missing DeleteSession method in Voucher's endpoints7.7.4
- Added missing properties for ValidationSession7.7.3
- Changed accessors for VoucherSubject.7.7.2
- Added ApplicableTo and Error to BusinessValidationRule objects.7.7.1
- Fixed circural dependency for ToSting methods.7.7.0
- Reorganized Redemption result classes.7.6.0
- Reorganized Validation result classes.7.5.2
- Fixed API Endpoint for Clinet side methods7.5.1
- Fixed mapping amount_limit for percent discount7.5.0
- Added CampaignType for CampaignCreate, Changed existing CampaignType to CampaignExtensionType as it was not correct7.4.0
- Throw ArgumentNullException when url parameter is not defined.7.3.0
- Add campaign
and campaign_id
in Voucher validation response. Add is_referral_code
in voucher model.7.2.1
- Fixed returning ProductSKuList in async implementation.7.2.0
- Added Support for Consents. Drop deprecated API Versions. Changed Amounts from int to long.7.1.0
- Added Barcode property for VoucherAssets. Introduced ValidationError and BusinessValidationRuleError to support custom error messages.7.0.0
- Api class improvements, split Endpoint into Host, BasePath and Port6.4.3
- Added Assignments
property at Voucher and Campaign level6.4.2
- Change Address
properties accessors from private to public6.4.1
- Added amount
in Redemption and discount_amount
in Order6.4.0
- Replaced ApplicableProductList and ApplicableProduct. Added listing Promotion Tiers method.6.3.0
- Reorganized Delete methods with force option for: Voucher, Campaign, Product and Sku 6.2.0
- Added ApplicableTo property to Validation class6.1.0
- Extended OrderItem OrderItemProduct OrderItemSKU. Improved QuerySerializer6.0.1
- Added CreatedAt and UpdatedAt property to VoucherFilter6.0.0
- Replaced Voucher Validation Rules with Business Validation Rules. Added API Verions v2018-08-01.5.0.1
- Fixed QuerySerializer for Array objects. Added RelatedObject to OrderItem and dedicated method for setting SourceId.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.4.3.2
- Added Price to Product4.3.1
- Fixed Segments API endpoints. Fixed Library versioning.4.3.0
- Added support for Api Versions. Added support for Orders, Events, Promotions, Segments and Validation Rules.4.2.0
- Added 'ApplicableTo' property to Voucher.4.1.2
- Added 'key' property to VoucherifyClientException. Removed private setters for Order and Customer entities.4.1.1
- Added .ConfigureAwait(false) to all awaitable calls to prevent deadlocks when using the ASP.NET.4.1.0
- Added missing methods. Created two additional namespaces: Validations and Distributions. Support for gift.balance (for Gift Vouchers).4.0.2
- Fixed issue with InnerException serialization4.0.1
- Remove dependencies for Portable library to allow use it in Xamarin Applications.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.3.1.0
- Added Validate method for Vouchers. Fixed issue with DiscountType mapping.3.0.0
- Removed dependencies to RSP.Promise and RestSharp, stick to base libraries only.2.2.0
- Added Portable Class Library (portable45-net45+win8+wp8+wpa81). Added Order Items. Improved Error Handling.2.1.0
- Fixed Request Header for .Net 3.5+ and empty metadata issue.2.0.0
- Fixed Data Conversion Problems. Added Update method for Vouchers, Added Code Pattern for Voucher creation.1.1.3
- Fixed DLLs1.1.2
- Fixed package dependencies for .Net Framework 3.5+.1.1.1
- Fixed package dependencies.1.1.0
- Added support for .Net Framework 2.0 with classic callback approach. Get rid of DataContract attribute.1.0.0
- Replace async/await with RSG.Promise library. Use RestSharp instead of HttpClient.0.2.0
- Introduced support for .Net Framework 3.5.0.1.0
- Initial version of SDK that supports Vouchers, Redemption and Customer endpoints.1.1.1
- Fixed package dependencies.1.1.0
- Added support for .Net Framework 2.0 with classic callback approach. Get rid of DataContract attribute.1.0.0
- Replace async/await with RSG.Promise library. Use RestSharp instead of HttpClient.0.2.0
- Introduced support for .Net Framework 3.5.0.1.0
- Initial version of SDK that supports Vouchers, Redemption and Customer endpoints.