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
                    
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="Yapily.Core.SDK" Version="2.0.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Yapily.Core.SDK" Version="2.0.4" />
                    
Directory.Packages.props
<PackageReference Include="Yapily.Core.SDK" />
                    
Project file
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 Yapily.Core.SDK --version 2.0.4
                    
#r "nuget: Yapily.Core.SDK, 2.0.4"
                    
#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 Yapily.Core.SDK@2.0.4
                    
#: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=Yapily.Core.SDK&version=2.0.4
                    
Install as a Cake Addin
#tool nuget:?package=Yapily.Core.SDK&version=2.0.4
                    
Install as a Cake Tool

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 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

    • 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.

Version Downloads Last Updated
2.0.4 245 10/21/2025
2.0.3 216 10/20/2025
2.0.2 208 10/15/2025