Yapily.Core.SDK
2.0.4
dotnet add package Yapily.Core.SDK --version 2.0.4
NuGet\Install-Package Yapily.Core.SDK -Version 2.0.4
<PackageReference Include="Yapily.Core.SDK" Version="2.0.4" />
<PackageVersion Include="Yapily.Core.SDK" Version="2.0.4" />
<PackageReference Include="Yapily.Core.SDK" />
paket add Yapily.Core.SDK --version 2.0.4
#r "nuget: Yapily.Core.SDK, 2.0.4"
#:package Yapily.Core.SDK@2.0.4
#addin nuget:?package=Yapily.Core.SDK&version=2.0.4
#tool nuget:?package=Yapily.Core.SDK&version=2.0.4
Yapily .NET SDK — Open Banking AIS Integration
A modern, lightweight, and developer-friendly C# SDK for connecting to European banks using the Yapily Open Banking API.
This SDK enables you to easily integrate Account Information Services (AIS) — such as fetching balances, accounts, and transactions — into your applications.
Built for ERP systems, fintech apps, and developers who need simple, secure, PSD2-compliant access to bank data.
Features
- Fully typed .NET 8 SDK
- Works with both Hosted Consent Pages and Embedded Authorisation
- Async API design with HttpClient
- Includes user, consent, account, balance & transaction endpoints
- Simple to integrate into any ERP / Fintech solution
- Lightweight, no external dependencies beyond System.Net.Http
Quick Start
1️ Install
dotnet add package Yapily.Net.SDK
### 2️ Initialize Client
When you start the console app, you’ll be prompted to enter your Yapily credentials:
```bash
Please enter App Key:
Please enter App Secret:
Please enter CALLBACK_URL (default: https://yourapi.com/api/yapily/callback):
3️ Create Yapily User
Each of your ERP users must be registered as a Yapily “Application User”.
var user = await userService.CreateUserAsync(erp_user_001);
Console.WriteLine($"Created Yapily User UUID: {user.Uuid}");
4️ Start Authorisation (Hosted Flow)
This will return a redirect URL for the user to connect their bank.
var auth = await accountService.CreateAccountAuthRequestAsync(
userUuid: user.Uuid,
institutionId: "abnamro-nl",
applicationUserId: "erp_user_001",
callbackUrl: CALLBACK_URL
);
Console.WriteLine($"Redirect user to: {auth.AuthorisationUrl}");
Once the user finishes connecting their bank, Yapily will redirect back to your callback:
GET /api/yapily/callback?consentId={consentId}
5️ Retrieve Bank Data
var consent = await consentService.GetConsentAsync(consentId);
var accounts = await accountService.GetAccountsAsync(consentId);
foreach (var acc in accounts)
{
Console.WriteLine($"{acc.Id}: {acc.Currency}");
}
var balance = await accountService.GetAccountBalancesAsync(consentId, accounts[0].Id);
Console.WriteLine($"Balance: {balance[0].Amount.Amount} {balance[0].Amount.Currency}");
var txs = await transactionService.GetTransactionsAsync(consentId, accounts[0].Id, DateTime.UtcNow.AddDays(-30), DateTime.UtcNow);
foreach (var tx in txs)
{
Console.WriteLine($"{tx.BookingDateTime:d} {tx.TransactionInformation} {tx.Amount.Amount}");
}
Example API Callback
[ApiController]
[Route("api/yapily")]
public class YapilyCallbackController : ControllerBase
{
[HttpGet("callback")]
public IActionResult Callback([FromQuery] string consentId)
{
Console.WriteLine($"Yapily consent received: {consentId}");
return Redirect($"/connected?consentId={consentId}");
}
}
Database Model Example
| Table | Columns | Purpose |
|---|---|---|
| YapilyUsers | Uuid, ApplicationUserId | Maps ERP user to Yapily user |
| YapilyConsents | ConsentId, UserUuid, Status, Expiry | Tracks consent lifecycle |
| YapilyAccounts | AccountId, IBAN, Currency, Balance | Stores user accounts |
| YapilyTransactions | TransactionId, Date, Amount, Description | Stores transactions |
Best Practices
- Use Yapily’s Hosted Consent Page for a simple UX
- Store and refresh consent tokens before expiry
- Cache institution lists to reduce API calls
- Handle rate limits and retries
- Use a background job to periodically sync transactions
Example Use Cases
- Accounting / ERP software (like Kapitaal ERP)
- Fintech dashboards
- Budgeting apps
- Credit assessment automation
- Bank statement importers
Tech Stack
- Language: C# (.NET 8)
- HTTP Client: System.Net.Http
- Auth: Basic Auth (App Key + Secret)
- Standards: PSD2, Open Banking AIS
Documentation
Contributing
Contributions are welcome!
Fork this repo, make your changes, and submit a pull request.
License
This project currently has no open-source license.
All rights reserved.
Developed by HM Asad, 2025.
Support This Project
If this SDK saves you time —
Give it a ⭐ on GitHub to help other developers discover it!
| 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. |
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.