SDK's en libraries
Bouw je eigen betaalflow met onze open source SDK’s voor PHP, .NET, Node.js en Python, of met onze Laravel Wrapper. Verwerk betalingen, terugbetalingen en statusupdates met een paar regels code.
Voor developers
Onze SDK’s regelen de communicatie met Buckaroo voor je. Zo ziet een complete betaalflow eruit, in vijf stappen. Kies je taal en bekijk de code per stap.
Met je Store key en Secret key, in test- of livemodus.
use Buckaroo\BuckarooClient;
$buckaroo = new BuckarooClient(
'STORE_KEY',
'SECRET_KEY',
'test' // of 'live'
);
Controleer of een PUSH-bericht echt van Buckaroo komt.
use Buckaroo\Handlers\Reply\ReplyHandler;
$reply = new ReplyHandler(
$buckaroo->client()->config(),
$_POST
);
if ($reply->validate()->isValid()) {
// Bestelling op betaald zetten
}
// Voorbeeld-response
// brq_statuscode = 190 (geslaagd)
// brq_invoicenumber = INV-1001
Kies de betaalmethode en geef het bedrag mee.
$response = $buckaroo->method('ideal')->pay([
'invoice' => 'INV-1001',
'amountDebit' => 10.10,
'returnURL' => 'https://example.com/return',
]);
if ($response->hasRedirect()) {
// Stuur de klant naar de betaalpagina
header('Location: ' . $response->getRedirectUrl());
}
// Voorbeeld-response
// getStatusCode() → 791 (in behandeling)
// getTransactionKey() → 'D3A9C5E2F1B84C6A9E7F0B1C2D3E4F5A'
Vraag de actuele status van de transactie op.
$transaction = $buckaroo->transaction($transactionKey);
$status = $transaction->status();
// Voorbeeld-response
// getStatusCode() → 190 (geslaagd)
// isSuccess() → true
Betaal het volledige bedrag of een deel terug.
$response = $buckaroo->method('ideal')->refund([
'invoice' => 'INV-1001',
'originalTransactionKey' => $transactionKey,
'amountCredit' => 10.10,
]);
// Voorbeeld-response
// getStatusCode() → 190 (terugbetaald)
Met je Store key en Secret key, in test- of livemodus.
using BuckarooSdk;
using System.Globalization;
var client = new SdkClient();
// Sleutels en test- of livemodus geef je per request mee
var culture = new CultureInfo("nl-NL");
var isLive = false; // of true
Controleer of een PUSH-bericht echt van Buckaroo komt.
var pushHandler = client.GetPushHandler(secretKey);
// Gooit een AuthenticationException bij een ongeldige handtekening
Push push = pushHandler.DeserializePush(
body, requestUri, authorizationHeader);
if (push.Status.Code.Code == Constants.Status.Success)
{
// Bestelling op betaald zetten
}
// Voorbeeld-response
// push.Status.Code.Code → 190 (geslaagd)
// push.Key → "D3A9C5E2F1B84C6A9E7F0B1C2D3E4F5A"
Kies de betaalmethode en geef het bedrag mee.
var response = client.CreateRequest()
.Authenticate(storeKey, secretKey, isLive, culture)
.TransactionRequest()
.SetBasicFields(new TransactionBase
{
Currency = "EUR",
AmountDebit = 10.10m,
Invoice = "INV-1001",
ReturnUrl = "https://example.com/return",
})
.Ideal()
.Pay(new IdealPayRequest())
.Execute();
// Voorbeeld-response
// response.Status.Code.Code → 791 (in behandeling)
// response.RequiredAction.RedirectURL → "https://checkout.buckaroo.nl/..."
Vraag de actuele status van de transactie op.
var status = client.CreateRequest()
.Authenticate(storeKey, secretKey, isLive, culture)
.TransactionStatusRequest()
.Status(transactionKey)
.GetSingleStatus();
// Voorbeeld-response
// status.Status.Code.Code → 190 (geslaagd)
Betaal het volledige bedrag of een deel terug.
var refund = client.CreateRequest()
.Authenticate(storeKey, secretKey, isLive, culture)
.TransactionRequest()
.SetBasicFields(new TransactionBase
{
Currency = "EUR",
AmountCredit = 10.10m,
Invoice = "INV-1001",
OriginalTransactionKey = transactionKey,
})
.Ideal()
.Refund(new IdealRefundRequest())
.Execute();
// Voorbeeld-response
// refund.Status.Code.Code → 190 (terugbetaald)
Met je Store key en Secret key, in test- of livemodus.
import Buckaroo from '@buckaroo/buckaroo_sdk';
const buckaroo = Buckaroo.InitializeClient(
{ websiteKey: 'STORE_KEY', secretKey: 'SECRET_KEY' },
{ mode: 'TEST', currency: 'EUR' } // of 'LIVE'
);
Controleer of een PUSH-bericht echt van Buckaroo komt.
import { ReplyHandler } from '@buckaroo/buckaroo_sdk';
// rawBody: de ruwe request body als string
const reply = new ReplyHandler(buckaroo.credentials, rawBody)
.validate();
if (reply.isValid()) {
const push = reply.data();
// Bestelling op betaald zetten
}
// Voorbeeld-response
// push.brq_statuscode → '190' (geslaagd)
// push.brq_invoicenumber → 'INV-1001'
Kies de betaalmethode en geef het bedrag mee.
const payment = await buckaroo
.method('ideal')
.pay({
invoice: 'INV-1001',
amountDebit: 10.10,
returnURL: 'https://example.com/return',
})
.request();
// Voorbeeld-response
// payment.getStatusCode() → 791 (in behandeling)
// payment.getRedirectUrl() → 'https://checkout.buckaroo.nl/...'
// payment.getTransactionKey() → 'D3A9C5E2F1B84C6A9E7F0B1C2D3E4F5A'
Vraag de actuele status van de transactie op.
const transaction = buckaroo.transaction(transactionKey);
const status = await transaction.status();
// Voorbeeld-response
// status.getStatusCode() → 190 (geslaagd)
// status.isSuccess() → true
Betaal het volledige bedrag of een deel terug.
const refund = await buckaroo
.method('ideal')
.refund({
invoice: 'INV-1001',
originalTransactionKey: transactionKey,
amountCredit: 10.10,
})
.request();
// Voorbeeld-response
// refund.getStatusCode() → 190 (terugbetaald)
Met je Store key en Secret key, in test- of livemodus.
from buckaroo import BuckarooClient
from buckaroo.services.payment_service import PaymentService
client = BuckarooClient("STORE_KEY", "SECRET_KEY", mode="test") # of "live"
payments = PaymentService(client)
Controleer of een PUSH-bericht echt van Buckaroo komt.
from buckaroo.services.reply import HttpPost
# Form-encoded PUSH-bericht van Buckaroo
if HttpPost("SECRET_KEY").validate(request.form):
# Bestelling op betaald zetten
...
# Voorbeeld-response
# brq_statuscode = "190" (geslaagd)
# brq_invoicenumber = "INV-1001"
Kies de betaalmethode en geef het bedrag mee.
response = (
payments.create_payment("ideal")
.currency("EUR")
.amount(10.10)
.invoice("INV-1001")
.return_url("https://example.com/return")
.pay()
)
# Voorbeeld-response
# response.status.code.code → 791 (in behandeling)
# response.get_redirect_url() → "https://checkout.buckaroo.nl/..."
Vraag de actuele status van de transactie op.
status = client.http_client.get(
f"/json/Transaction/Status/{transaction_key}"
)
# Voorbeeld-response
# status.get_status_code() → 190 (geslaagd)
Betaal het volledige bedrag of een deel terug.
response = (
payments.create_payment("ideal")
.currency("EUR")
.amount(10.10)
.invoice("INV-1001")
.refund(original_transaction_key=transaction_key)
)
# Voorbeeld-response
# response.status.code.code → 190 (terugbetaald)
Met je Store key en Secret key, in test- of livemodus.
# .env
BPE_WEBSITE_KEY=your_store_key
BPE_SECRET_KEY=your_secret_key
BPE_MODE=test # of live
// De wrapper maakt de client aan bij het opstarten van de app
Controleer of een PUSH-bericht echt van Buckaroo komt.
use Buckaroo\Laravel\Facades\Buckaroo;
// De wrapper registreert POST /buckaroo/push en valideert elke push
if (Buckaroo::api()->validateBody($request->all())) {
// Bestelling op betaald zetten
}
// Voorbeeld-response
// brq_statuscode = 190 (geslaagd)
// brq_invoicenumber = INV-1001
Kies de betaalmethode en geef het bedrag mee.
use Buckaroo\Laravel\Facades\Buckaroo;
$response = Buckaroo::api()->method('ideal')->pay([
'currency' => 'EUR',
'amountDebit' => 10.10,
'invoice' => 'INV-1001',
]);
// Stuur de klant naar de betaalpagina
return redirect($response->getRedirectUrl());
// Voorbeeld-response
// getStatusCode() → 791 (in behandeling)
Vraag de actuele status van de transactie op.
$status = Buckaroo::api()
->transaction($transactionKey)
->status();
// Voorbeeld-response
// getStatusCode() → 190 (geslaagd)
Betaal het volledige bedrag of een deel terug.
$response = Buckaroo::api()->method('ideal')->refund([
'invoice' => 'INV-1001',
'originalTransactionKey' => $transactionKey,
'amountCredit' => 10.10,
]);
// Voorbeeld-response
// getStatusCode() → 190 (terugbetaald)
Van Wero en Bancontact tot creditcards, Klarna en wallets: met de SDK’s spreek je elke methode op dezelfde manier aan.
![]()
Zet de client in testmodus en probeer alles uit in de testomgeving, zonder echte betalingen.
Betaal klanten volledig of gedeeltelijk terug en vraag de status van elke transactie op.
1
Installeer de SDK voor jouw taal met Composer, NuGet, npm of pip.
2
Maak de client aan met je Store key en Secret key. Die vind je in de Buckaroo omgeving.
3
Bouw en test je betaalflow in testmodus. Werkt alles? Zet de client dan op live.
Voor de SDK’s zelf betaal je niets. Voor transacties gelden de tarieven uit je Buckaroo-contract.
De actuele vereisten staan in de README van elke SDK op GitHub.
Log in op je Buckaroo omgeving. Daar vind je onder Instellingen → API Keys de gegevens voor je client.
Maak de client aan in testmodus. Alle transacties gaan dan naar de testomgeving van Buckaroo, dus er wordt geen geld afgeschreven.
Alle betaalmethoden van Buckaroo. Een methode moet wel actief zijn in je Buckaroo-account. Per methode vind je de details in de documentatie.
Buckaroo stuurt een PUSH-bericht naar je server zodra de status verandert. Je kunt de status van een transactie ook zelf opvragen met de SDK.
Ja. Met de SDK’s betaal je een betaling volledig of gedeeltelijk terug op basis van de oorspronkelijke transactie.
In de README en de voorbeelden van elke SDK op GitHub.
Maak een issue aan in de repository van de SDK op GitHub. Pull requests zijn ook welkom.
Neem contact op met onze technische support. Zij denken graag met je mee over je integratie.
In de documentatie vind je alle antwoorden, of stel je vraag aan onze technische support.
Onze specialisten staan klaar om al je vragen te beantwoorden. Vul het formulier in, dan nemen we zo spoedig mogelijk contact met je op.