AppifySheets.Immutable.BankIntegrationTypes
1.0.1
dotnet add package AppifySheets.Immutable.BankIntegrationTypes --version 1.0.1
NuGet\Install-Package AppifySheets.Immutable.BankIntegrationTypes -Version 1.0.1
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="AppifySheets.Immutable.BankIntegrationTypes" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AppifySheets.Immutable.BankIntegrationTypes" Version="1.0.1" />
<PackageReference Include="AppifySheets.Immutable.BankIntegrationTypes" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add AppifySheets.Immutable.BankIntegrationTypes --version 1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: AppifySheets.Immutable.BankIntegrationTypes, 1.0.1"
#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.
#:package AppifySheets.Immutable.BankIntegrationTypes@1.0.1
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=AppifySheets.Immutable.BankIntegrationTypes&version=1.0.1
#tool nuget:?package=AppifySheets.Immutable.BankIntegrationTypes&version=1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
TBC Bank IntegrationService Standard+ C#/net8 Client
Why - official implementation is error-prone, easy-to-mess-up and requires a lot of manual fixing
Current library attempts to wrap soap calls in immutable, type-safe way
You will require 4 things from the TBC Bank - 1) .pfx
certificate, 2) Username
, 3) Password
and 4) certificate_password
Service Documentation by the TBC Bank is here - https://developers.tbcbank.ge/docs/dbi-overview
Following services are implemented:
Usage
See the Demo
var credentials = new TBCApiCredentials("Username", "Password"); // Obtain API Credentials & Certificate with password from the Bank/Banker
var tbcApiCredentialsWithCertificate = new TBCApiCredentialsWithCertificate(credentials, "TBCIntegrationService.pfx", "certificate_password");
var tbcSoapCaller = new TBCSoapCaller(tbcApiCredentialsWithCertificate);
var accountMovements =
await GetAccountMovementsHelper.GetAccountMovement(new Period(new DateTime(2023, 9, 1), new DateTime(2023, 9, 26)), tbcSoapCaller);
var checkStatus = await tbcSoapCaller.GetDeserialized(new GetPaymentOrderStatusRequestIo(1632027071));
var ownAccountGEL = BankAccountWithCurrencyV.Create(new BankAccountV("GE31TB7467936080100003"), CurrencyV.GEL).Value;
var ownAccountUSD = BankAccountWithCurrencyV.Create(new BankAccountV("GE47TB7467936170100001"), CurrencyV.USD).Value;
var transferTypeRecordSpecific = new TransferTypeRecordSpecific
{
DocumentNumber = 123,
Amount = 0.01m,
BeneficiaryName = "TEST",
SenderAccountWithCurrency = ownAccountGEL,
Description = "TEST"
};
var withinBankGel2 = await tbcSoapCaller.GetDeserialized(new ImportSinglePaymentOrdersRequestIo(
new TransferWithinBankPaymentOrderIo
{
RecipientAccountWithCurrency = BankAccountWithCurrencyV.Create(new BankAccountV("GE86TB1144836120100002"), CurrencyV.GEL).Value,
TransferTypeRecordSpecific = transferTypeRecordSpecific
}));
var withinBankCurrency = await tbcSoapCaller.GetDeserialized(new ImportSinglePaymentOrdersRequestIo(
new TransferWithinBankPaymentOrderIo
{
TransferTypeRecordSpecific = transferTypeRecordSpecific with
{
SenderAccountWithCurrency = ownAccountUSD
},
RecipientAccountWithCurrency = BankAccountWithCurrencyV.Create(new BankAccountV("GE86TB1144836120100002"), CurrencyV.USD).Value,
}));
var toAnotherBankGel = await tbcSoapCaller.GetDeserialized(
new ImportSinglePaymentOrdersRequestIo(
new TransferToOtherBankNationalCurrencyPaymentOrderIo(
BankAccountWithCurrencyV.Create(new BankAccountV("GE33BG0000000263255500"), CurrencyV.GEL).Value, "123123123")
{
TransferTypeRecordSpecific = transferTypeRecordSpecific
}));
var toAnotherBankCurrencyGood = await tbcSoapCaller.GetDeserialized(
new ImportSinglePaymentOrdersRequestIo(
new TransferToOtherBankForeignCurrencyPaymentOrderIo("test", "test", "SHA", "TEST",
BankAccountWithCurrencyV.Create(new BankAccountV("GE33BG0000000263255500"), CurrencyV.USD).Value)
{
TransferTypeRecordSpecific = transferTypeRecordSpecific with { SenderAccountWithCurrency = ownAccountUSD }
}));
var toAnotherBankCurrencyBad = await tbcSoapCaller.GetDeserialized(
new ImportSinglePaymentOrdersRequestIo(
new TransferToOtherBankForeignCurrencyPaymentOrderIo("test", "test", "SHA", "TEST",
BankAccountWithCurrencyV.Create(new BankAccountV("GE33BG0000000263255500"), CurrencyV.USD).Value)
{
TransferTypeRecordSpecific = transferTypeRecordSpecific with { SenderAccountWithCurrency = ownAccountUSD }
}));
var toChina = await tbcSoapCaller.GetDeserialized(
new ImportSinglePaymentOrdersRequestIo(
new TransferToOtherBankForeignCurrencyPaymentOrderIo( "China",
// "ICBKCNBJSZN", "INDUSTRIAL AND COMMERCIAL BANK OF CHINA SHENZHEN BRANCH", "SHA", "Invoice(LZSK202311028)",
"ICBKCNBJSZN", "INDUSTRIAL AND COMMERCIAL BANK OF CHINA SHENZHEN BRANCH", "SHA",
BankAccountWithCurrencyV.Create(new BankAccountV("4000109819100186641"), CurrencyV.USD).Value)
{
TransferTypeRecordSpecific = transferTypeRecordSpecific with
{
SenderAccountWithCurrency = ownAccountUSD,
BeneficiaryName = "Shenzhen Shinekoo Supply Chain Co.,Ltd"
}
}));
var toTreasury = await tbcSoapCaller.GetDeserialized(
new ImportSinglePaymentOrdersRequestIo(
new TreasuryTransferPaymentOrderIo(101001000)
{ TransferTypeRecordSpecific = transferTypeRecordSpecific }));
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- CSharpFunctionalExtensions (>= 3.6.0)
- JetBrains.Annotations (>= 2025.2.0)
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.0.1 | 139 | 8/4/2025 |