BuckarooSdk 1.5.6

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

Buckaroo .NET SDK

NuGet version NuGet downloads License: MIT

Official .NET SDK for the Buckaroo payment platform. It provides a strongly-typed, fluent wrapper around the Buckaroo JSON API so you can create transactions, add services, and handle status pushes without hand-rolling requests or signatures.

Requirements

  • .NET Standard 2.0 or higher — works with .NET 6/7/8+, .NET Core 2.0+, and .NET Framework 4.6.1+.
  • A Buckaroo account with a website key and secret key from the Buckaroo Payment Plaza.

The only runtime dependency is Newtonsoft.Json.

Installation

Install the BuckarooSdk package from NuGet.

.NET CLI

dotnet add package BuckarooSdk

Package Manager Console

Install-Package BuckarooSdk

PackageReference

<PackageReference Include="BuckarooSdk" Version="*" />

Getting started

Create a client

SdkClient is a lightweight factory — it holds no credentials. You pass your keys and choose the environment per request via Authenticate(...), so a single client instance can be reused across requests and is safe to register as a singleton.

using BuckarooSdk;

var client = new SdkClient();

Create a payment

The API is a fluent chain: CreateRequest → Authenticate → TransactionRequest → SetBasicFields → <payment method> → <action> → Execute. Here is a minimal iDEAL payment:

using System.Globalization;
using BuckarooSdk;
using BuckarooSdk.DataTypes.RequestBases;
using BuckarooSdk.Services.Ideal.TransactionRequest;

var client = new SdkClient();

var response = client.CreateRequest()
    .Authenticate(websiteKey, secretKey, isLive: false, new CultureInfo("nl-NL"))
    .TransactionRequest()
    .SetBasicFields(new TransactionBase
    {
        Currency = "EUR",
        AmountDebit = 10.00m,
        Invoice = "INV-0001",
        Description = "Order 0001",
        ReturnUrl = "https://your-shop.example/return",
        PushUrl = "https://your-shop.example/webhooks/buckaroo",
    })
    .Ideal()
    .Pay(new IdealPayRequest
    {
        Issuer = BuckarooSdk.Services.Ideal.Constants.Issuers.IngBank,
    })
    .Execute();

ReturnUrl and PushUrl are optional per transaction; when omitted, Buckaroo falls back to the URLs configured for your website key in the Payment Plaza.

Other payment methods are selected the same way — .Visa(), .MasterCard(), .Maestro(), .Bancontact(), .Paypal(), and so on — each exposing method-specific actions such as .Pay(...), .Refund(...), or .Authorize(...). See the BuckarooSdk/Services folder for the full list.

Handle the response

Execute() returns a RequestResponse. Check the status code against BuckarooSdk.Constants.Status, and for redirect-based methods like iDEAL send the shopper to the URL in RequiredAction:

using BuckarooSdk.Services.Ideal.TransactionRequest;

if (response.Status.Code.Code == BuckarooSdk.Constants.Status.PendingProcessing)
{
    // Redirect the shopper to their bank to complete the payment.
    var redirectUrl = response.RequiredAction.RedirectURL;
}

var transactionKey = response.Key;                              // reference for later lookups/pushes
var ideal = response.GetActionResponse<IdealPayResponse>();     // typed, method-specific fields

Common status codes (BuckarooSdk.Constants.Status): Success = 190, Failed = 490, Declined = 690, PendingInput = 790, PendingProcessing = 791, CanceledByUser = 890.

Async

Every action also has an awaitable variant — prefer it in async code. Execute() is just a blocking wrapper around ExecuteAsync():

var response = await client.CreateRequest()
    .Authenticate(websiteKey, secretKey, isLive: false, new CultureInfo("nl-NL"))
    .TransactionRequest()
    .SetBasicFields(/* ... */)
    .Ideal()
    .Pay(/* ... */)
    .ExecuteAsync();

Handle status pushes

Buckaroo confirms the final result of a transaction with a signed push to your PushUrl. Use the push handler to verify the signature and deserialize the payload — it throws AuthenticationException if the signature is invalid, so an unverified push never reaches your code:

using BuckarooSdk;
using BuckarooSdk.DataTypes.Push;

var pushHandler = client.GetPushHandler(secretKey);

// body: the raw request bytes; requestUri: the absolute URL Buckaroo posted to;
// authorizationHeader: the incoming "Authorization" header value.
Push push = pushHandler.DeserializePush(body, requestUri, authorizationHeader);

if (push.Status.Code.Code == BuckarooSdk.Constants.Status.Success)
{
    var transactionKey = push.Key;
    // Mark the order as paid.
}

Test vs live

The environment is chosen entirely by the isLive argument to Authenticate(...):

isLive Endpoint
false https://testcheckout.buckaroo.nl (test)
true https://checkout.buckaroo.nl (production)

Use your test website/secret keys against the test endpoint while integrating, then switch isLive to true with your live keys.

Documentation

Development

# Restore & build the library
dotnet build BuckarooSdk/BuckarooSdk.csproj -c Release

# Pack locally (matches what CI publishes)
dotnet pack BuckarooSdk/BuckarooSdk.csproj -c Release -p:Version=0.0.1-local -o ./artifacts

Tests. BuckarooSdk.Tests is a legacy .NET Framework 4.7.1 (packages.config) project, so it builds and runs on Windows via Visual Studio or msbuild + nuget restore — not under dotnet test on Linux/macOS. The tests read credentials from a local, git-ignored TestSettings class (via user secrets); supply your own website/secret keys to run them.

Contributions are welcome — please open an issue or pull request against buckaroo-it/BuckarooSdk_DotNet.

Releasing

Maintainers: see RELEASING.md for how to publish a new version to NuGet. Releases are published automatically via GitHub Actions using NuGet Trusted Publishing (OIDC) — no API key to manage.

Support

For questions about your account or the API, contact Buckaroo support at support@buckaroo.nl. For bugs or feature requests in this SDK, open an issue on GitHub.

License

Released under the MIT License.

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.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  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)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on BuckarooSdk:

Package Downloads
GeeksCoreLibrary.Modules.Payments.Buckaroo

Buckaroo plugin for the order process of the GeeksCoreLibrary.

Umbraco.Commerce.PaymentProviders.Buckaroo

Buckaroo payment provider for Umbraco Commerce

Vendr.Contrib.PaymentProviders.Buckaroo

Buckaroo payment provider for Vendr, the eCommerce package for Umbrao v8+

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.5.6 34 7/14/2026
1.5.5 35 7/14/2026
1.5.4 33,604 3/6/2025
1.5.3 83,661 7/23/2024
1.5.2 198 7/23/2024
1.5.1 210 7/23/2024
1.5.0 231 7/19/2024
1.4.1 265,149 10/25/2021
1.4.0 101,871 5/8/2020
1.3.4 1,440 2/11/2020
1.3.3 1,359 2/3/2020
1.3.2 1,329 1/30/2020
1.3.1 3,339 1/30/2020
1.3.0 1,386 1/24/2020
1.2.1 1,326 1/14/2020
1.2.0 1,335 1/7/2020
1.1.0 12,100 4/10/2019
1.0.2 1,832 1/15/2019
1.0.1 8,277 2/2/2018