Helix.BankOfGeorgia.IpayClient 1.6.0

dotnet add package Helix.BankOfGeorgia.IpayClient --version 1.6.0
NuGet\Install-Package Helix.BankOfGeorgia.IpayClient -Version 1.6.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Helix.BankOfGeorgia.IpayClient" Version="1.6.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Helix.BankOfGeorgia.IpayClient --version 1.6.0
#r "nuget: Helix.BankOfGeorgia.IpayClient, 1.6.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Helix.BankOfGeorgia.IpayClient as a Cake Addin
#addin nuget:?package=Helix.BankOfGeorgia.IpayClient&version=1.6.0

// Install Helix.BankOfGeorgia.IpayClient as a Cake Tool
#tool nuget:?package=Helix.BankOfGeorgia.IpayClient&version=1.6.0

Bank of Georgia iPay Card Payments Gateway Client (.NET Library)


Helix.BankOfGeorgia.IpayClient is a .NET client library for using Bank of Georgia iPay Visa, Master Card and Americal Express payments gateway.

Official API reference can be found here:

How To Use

See ASP.NET Core integration guide below

Define options

var clientOptions = new BankOfGeorgiaIpayClientOptions()
    ClientId = "your-ipay-client-id",
    SecretKey = "your-ipay-client-secret",

Create client

var client = new BankOfGeorgiaIpayClient(clientOptions);

Integrating with ASP.NET Core

To integrate the client with ASP.NET Core dependency injection pipeline, use the following steps:

  1. Add an entry in your appSettings.json file and specify your iPay ClientId and SecretKey):

       //...other options
       "iPay": {
          "ClientId": "your-ipay-client-id",
          "SecretKey": "your-ipay-client-secret",
       //...other options

    If you want to play with the DEMO mode, you can use the following configuration parameters:

       //...other options
       "iPay": {
          "ClientId": "1006",
          "SecretKey": "581ba5eeadd657c8ccddc74c839bd3ad",
          "BaseUrl": "https://dev.ipay.ge/opay/api/v1"
       //...other options

    ⚠️ BaseUrl is NOT required for production use. If you leave this parameter empty or remove it completely, the default production URL will be used: https://ipay.ge/opay/api/v1

  2. Call AddBankOfGeorgiaIpay in ConfigureServices method of Startup.cs and specify the configuration parameter name containing the options array (for this example we called the entry iPay):


    Make sure you have access to Configuration. If you are missing configuration, you can inject it in your Startup):

    public class Startup
        public IConfiguration Configuration { get; }
        public Startup(IConfiguration configuration)
            Configuration = configuration;
  3. Inject IBankOfGeorgiaIpayClient and use in your code:

    public class HomeController : Controller
        private readonly IBankOfGeorgiaIpayClient _iPayClient;
        public HomeController(IBankOfGeorgiaIpayClient iPayClient)
            _iPayClient = iPayClient;


No manual authentication is required. Access token will be requested when needed and when it expires automatically.

  • MakeOrderAsync
    Place an one-time order

    This method encapsulates a /api/v1/checkout/orders endpoint and simplifies the request model.

  • MakeRecurringOrderAsync
    Place an order for a recurring payments without user's interraction. You need to create an initial order to use recurring payments, where the user will enter their credit card details for the Bank to remember. You will need an ID of an existing order to perform additional reocurring orders.

    If you don't want to charge the user for the first time and want the Bank to remember the card details for future use, you will still have to create an initial order for the minimum amount of 0.10 GEL and then you refund it.

    This method encapsulates a /api/v1/checkout/payment/subscription.

  • MakeRecurringOrderAsync There are two ways the transaction can be processed, called the capture_method:
    - MANUAL
    See this for more details https://api.bog.ge/docs/en/ipay/create-order
    If the transaction was created using MANUAL capture method, it needs to be confirmed by calling this method.

    This method encapsulates a /api/v1/checkout/payment/{order_id}/pre-auth/completion.

  • RefundAsync Refund the transaction fully or partially

    This method encapsulates a /api/v1/checkout/refund.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.6.0 321 1/30/2023
1.5.0 403 9/9/2022
1.4.0 378 8/30/2022
1.3.0 430 8/30/2022
1.2.0 440 3/28/2022
1.1.0 402 3/28/2022
1.0.0 395 3/22/2022
1.0.0-alpha 146 3/14/2022

- Fixed an issue with null reference on HTTP request
- Fixed an issue with null reference on HTTP request
- Downgrade dependent packaged to .NET 5
- Method responses not contain the actual request information that is submitted to iPay (RequestURL, RequestMethod, RawRequestPayload)
- Added 'BindProperty' attributed to callback methods to be used in MVC controller action parameters
- Upgrade dependent packaged to .NET 6
- Added demo endpoint support
- Cleanups and package reference fixes
- Hello, world!