Reserve
CancelReservation
UpdateReservation
ExtendReservation
AddShippingInfo
The test checkout of Buckaroo communicates with Klarna's Sandbox environment, allowing different supported scenarios to be tested.
Session: Buckaroo offers Klarna redirect to the hosted page, which renders local payment options and language based on API request information. (The hosted page can be offered in English content as well). The session expires in 4 hours, with still pending transactions being closed as failed.
Order: When a consumer completes steps on the hosted page, the redirect to your confirmation page is triggered, and the reservation is confirmed as valid.
Fulfillment: Updates may be required between order confirmation and delivery.
Cancel reservation if there is no intent to fulfill. (CancelReservation)
Cancel remaining reservation for partial deliveries. (CancelReservation)
Update shipping address if changed. (UpdateReservation)
Update order lines without increasing total amount. (UpdateReservation)
Extend reservation if delayed delivery. (ExtendReservation)
Full pay for all shipped products. (Pay)
Partial pay for part of the order. (Pay)
Share shuipment details for delivery. (AddShippinInfo)
Returns or compensation can be shared with Buckaroo as a refund.
The reserve action is the first step to process the payment of an order with Klarna. It will return a redirect URL to forward the consumer. It is important to handle the push sent by Buckaroo of the reservation that contains the Buckaroo Reserve Datarequest key. This will require handling the follow-up actions.
Check file “Minimal reserve request.json” for the minimal Json request.
Check file “Full reserve request.json” for the full Json request.
A successful request will return a requiredAction redirect URL to forward the consumer to the Hosted page of Klarna.
JSON
{
"Key": "49EF793FC7AC404EABC4F57A32F5F08D",
"Status": {
"Code": {
"Code": 791,
"Description": "Pending processing"
},
"SubCode": {
"Code": "S002",
"Description": "An additional action is required: Redirect to Klarna"
},
"DateTime": "2026-02-02T14:48:27"
},
"RequiredAction": {
"RedirectURL": "https://checkout.buckaroo.nl/html/redirect.ashx?r=3D349C783491413EBAF06660932EF0BF",
"RequestedInformation": null,
"Name": "Redirect",
"TypeDeprecated": 0
},
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"ServiceCode": "Klarna",
"IsTest": true,
"ConsumerMessage": null
}
JSON
{
"DataRequest": {
"Key": "34C088DBD9244F27B3C62C21C7D6D6C8",
"Invoice": "Ref.1 OrderID Reserve",
"ServiceCode": "Klarna",
"ActionCode": "Reserve",
"Status": {
"Code": {
"Code": 190,
"Description": "The request was successful."
},
"SubCode": null,
"DateTime": "2026-02-02T07:28:26"
},
"IsTest": true,
"Order": null,
"Currency": "EUR",
"AmountDebit": 0,
"Services": [
{
"Name": "Klarna",
"Action": null,
"Parameters": [
{
"Name": "DataRequestKey",
"Value": "1A582451AD6F4218BF719909170168A0"
}
],
"VersionAsProperty": 1
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"MutationType": 0,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": null,
"PayerHash": null,
"PaymentKey": null
}
}
The CancelReservation action can be used in two scenarios:
There has been no partial capture, a cancel will close the full order.
There has been a partial capture, a cancel will close the remaining amount and products still part of the reservation.
JSON
{
"Currency": "EUR",
"Services": {
"ServiceList": [
{
"Name": "Klarna",
"Action": "CancelReservation",
"Parameters": [
{
"Name": "DataRequestKey",
"Value": "1A582451AD6F4218BF719909170168A0"
}
]
}
]
}
}
Parameter Type OCM Description DataRequestKey string M Bukcaroo data request key
JSON
{
"Key": "D24D08A03A2944B9AD9F3723483C5161",
"Status": {
"Code": {
"Code": 190,
"Description": "Success"
},
"SubCode": {
"Code": "S990",
"Description": "The request was successful."
},
"DateTime": "2026-02-02T08:45:24"
},
"RequiredAction": null,
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"ServiceCode": "Klarna",
"IsTest": true,
"ConsumerMessage": null
}
Parameter Type OCM Description ServiceCode string M Service label is Klarna Code string M Contains the status of the CancelReservation not the Reservation IsTest boolean M If there are actual funds processed
JSON
{
"DataRequest": {
"Key": "446F21147A2F4415967A2CF393714141",
"Invoice": null,
"ServiceCode": "Klarna",
"ActionCode": "CancelReservation",
"Status": {
"Code": {
"Code": 190,
"Description": "The request was successful."
},
"SubCode": null,
"DateTime": "2026-02-02T08:54:17"
},
"IsTest": true,
"Order": null,
"Currency": "EUR",
"AmountDebit": 0,
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"MutationType": 0,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": null,
"PayerHash": null,
"PaymentKey": null
}
}
Parameter Type OCM Description ServiceCode string M Service label is Klarna Code string M Contains the status of the Cancellation not the Reservation IsTest boolean M If there are actual funds processed
The UpdateReservation action can be used in three scenarios:
The consumer wants to change the order with a total amount same or lower, update the order lines of the reservation.
The consumer wants to change the delivery address, update the Klarna shipping address of the reservation.
The consumer wants to update the order and shipping, all updates can be shared.
In case both the order details and the shipping address are updated, Buckaroo will first request the address change, followed by the order lines change.
JSON
{
"Currency": "EUR",
"Description": "Test Klarna UpdateReservation",
"Services": {
"ServiceList": [
{
"Name": "Klarna",
"Action": "UpdateReservation",
"Parameters": [
{
"Name": "DataRequestKey",
"Value": "654A417764214CFC9406CF086438DA77"
},
{
"Name": "ShippingFirstName",
"Value": "Testperson-nl"
},
{
"Name": "ShippingLastName",
"Value": "Approved"
},
{
"Name": "ShippingStreet",
"Value": "Jaherkade 3 D"
},
{
"Name": "ShippingPostalCode",
"Value": "2521VA"
},
{
"Name": "ShippingCity",
"Value": "Gravenhage"
},
{
"Name": "ShippingCountry",
"Value": "NL"
},
{
"Name": "ShippingPhoneNumber",
"Value": "0698765432"
},
{
"Name": "ShippingEmail",
"Value": "[email protected] "
}
]
}
]
}
}
JSON
{
"Currency": "EUR",
"Invoice": "Ref.1 OrderID updated",
"ClientIP": {
"Type": 0,
"Address": "0.0.0.0"
},
"Services": {
"ServiceList": [
{
"Name": "klarna",
"Action": "UpdateReservation",
"Parameters": [
{
"Name": "DataRequestKey",
"Value": "654A417764214CFC9406CF086438DA77"
},
{
"Name": "ArticleTitle",
"GroupType": "Article",
"GroupID": "1",
"Value": "Blue Toy Car"
},
{
"Name": "ArticleNumber",
"GroupType": "Article",
"GroupID": "1",
"Value": "12345"
},
{
"Name": "ArticleType",
"GroupType": "Article",
"GroupID": "1",
"Value": "General"
},
{
"Name": "ArticleQuantity",
"GroupType": "Article",
"GroupID": "1",
"Value": "1"
},
{
"Name": "ArticlePrice",
"GroupType": "Article",
"GroupID": "1",
"Value": "10.00"
},
{
"Name": "ArticleVat",
"GroupType": "Article",
"GroupID": "1",
"Value": "21"
},
{
"Name": "ArticleImageUrl",
"GroupType": "Article",
"GroupID": "1",
"Value": "https://apod.nasa.gov/apod/image/2210/ngc4631_sherick.jpg"
},
{
"Name": "ArticleProductUrl",
"GroupType": "Article",
"GroupID": "1",
"Value": "https://apod.nasa.gov/apod/astropix.html"
}
]
}
]
}
}
You can find the Full update request Json in the files coming along with this document.
File name: Full update reserve request
JSON
{
"Key": "354CEDA9094E4699931FAE6DB22485C0",
"Status": {
"Code": {
"Code": 190,
"Description": "Success"
},
"SubCode": {
"Code": "S990",
"Description": "The request was successful."
},
"DateTime": "2026-02-02T09:30:27"
},
"RequiredAction": null,
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"ServiceCode": "Klarna",
"IsTest": true,
"ConsumerMessage": null
}
Parameter Type OCM Description ServiceCode string M Service label is Klarna Code string M Contains the status of the UpdateReservation not the Reservation IsTest boolean M If there are actual funds processed
JSON
{
"DataRequest": {
"Key": "13F9A3BBE2B045D9B97FD51BE11A2F23",
"Invoice": null,
"ServiceCode": "Klarna",
"ActionCode": "UpdateReservation",
"Status": {
"Code": {
"Code": 190,
"Description": "The request was successful."
},
"SubCode": null,
"DateTime": "2023-03-27T09:29:37"
},
"IsTest": true,
"Order": null,
"Currency": "EUR",
"AmountDebit": 0,
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"MutationType": 0,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": null,
"PayerHash": null,
"PaymentKey": null
}
}
Parameter Type OCM Description ServiceCode string M Service label is Klarna Code string M Contains the status of the UpdateReservation not the Reservation IsTest boolean M If there are actual funds processed
If there is a need to extend the guarantee of Klarna on the reservation, this can be requested by extending the reservation.
JSON
{
"Description": "Test Klarna Extend reservation period",
"Services": {
"ServiceList": [
{
"Name": "Klarna",
"Action": "ExtendReservation",
"Parameters": [
{
"Name": "DataRequestKey",
"Value": "C9CDB227F75E43B8B6075CBF9C0A48FE"
}
]
}
]
}
}
Parameter Type OCM Description DataRequestKey string M Buckaroo datarequest key
JSON
{
"Key": "7848CD2D67DA45AA8EAA08BE0E96E99C",
"Status": {
"Code": {
"Code": 190,
"Description": "Success"
},
"SubCode": {
"Code": "S990",
"Description": "The request was successful."
},
"DateTime": "2026-02-02T10:07:45"
},
"RequiredAction": null,
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"ServiceCode": "Klarna",
"IsTest": true,
"ConsumerMessage": null
}
Parameter Type OCM Description ServiceCode string M Service label is Klarna Code string M Contains the status of the ExtendReservation not the Reservation IsTest boolean M If there are actual funds processed
JSON
{
"DataRequest": {
"Key": "7848CD2D67DA45AA8EAA08BE0E96E99C",
"Invoice": null,
"ServiceCode": "Klarna",
"ActionCode": "ExtendReservation",
"Status": {
"Code": {
"Code": 190,
"Description": "The request was successful."
},
"SubCode": null,
"DateTime": "2026-02-02T10:07:45"
},
"IsTest": true,
"Order": null,
"Currency": null,
"AmountDebit": 0,
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"MutationType": 0,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": null,
"PayerHash": null,
"PaymentKey": null
}
}
Parameter Type OCM Description ServiceCode string M Service label is Klarna Code string M Contains the status of the ExtendReservation not the Reservation IsTest boolean M If there are actual funds processed
A pay action should be communicated once the order is being delivered. There are 2 scenarios supported:
All products are shipped and a full pay is requested
Part of the order is shipped and a partial pay is requested
JSON
{
"Currency": "EUR",
"AmountDebit": 12.34,
"Services": {
"ServiceList": [
{
"Name": "Klarna",
"Action": "Pay",
"Parameters": [
{
"Name": "DataRequestKey",
"Value": "C9CDB227F75E43B8B6075CBF9C0A48FE "
}
]
}
]
}
}
JSON
{
"Currency": "EUR",
"AmountDebit": 10.00,
"Services": {
"ServiceList": [
{
"Name": "Klarna",
"Action": "Pay",
"Parameters": [
{
"Name": "DataRequestKey",
"Value": "C9CDB227F75E43B8B6075CBF9C0A48FE"
},
{
"Name": "ArticleNumber",
"GroupType": "Article",
"GroupID": "1",
"Value": "12345"
},
{
"Name": "ArticleQuantity",
"GroupType": "Article",
"GroupID": "1",
"Value": "1"
}
]
}
]
}
}
JSON
{
"Currency": "EUR",
"AmountDebit": 22.45,
"Services": {
"ServiceList": [
{
"Name": "Klarna",
"Action": "Pay",
"Parameters": [
{
"Name": "DataRequestKey",
"Value": "C9CDB227F75E43B8B6075CBF9C0A48FE"
},
{
"Name": "ShippingMethod",
"GroupType": "ShippingInfo",
"GroupID": "1",
"Value": "HOME"
},
{
"Name": "Company",
"GroupType": "ShippingInfo",
"GroupID": "1",
"Value": "DHL Express"
},
{
"Name": "TrackingNumber",
"GroupType": "ShippingInfo",
"GroupID": "1",
"Value": "AAAA1234567890"
}
]
}
]
}
}
Parameter Type OCM Description DataRequestKey string M Reserve datarequest key ArticleNumber string O Unique product number ArticleQuantity integer M Number of articles ShippingMethod string O Allowed values: PickUpStore, Home, BoxReg, BoxUnreg, PickUpPoint, Own, Postal, DHLPackstation, Digital, Undefined, PickUpWarehouse, ClickCollect, PalletDelivery Company string O Name of the shipping company TrackingNumber string O Unique tracking number
JSON
{
"Key": "0EABAA91DB7B47C6B5E6BC7AFB209162",
"Status": {
"Code": {
"Code": 190,
"Description": "Success"
},
"SubCode": {
"Code": "S990",
"Description": "The request was successful."
},
"DateTime": "2026-02-02T13:58:04"
},
"RequiredAction": null,
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"Invoice": "Klarna_Test_1770382683",
"ServiceCode": "klarna",
"IsTest": false,
"Currency": "EUR",
"AmountDebit": 10.29,
"TransactionType": "C339",
"MutationType": 1,
"RelatedTransactions": null,
"ConsumerMessage": null,
"Order": null,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": null,
"PayerHash": null,
"PaymentKey": "8C47A5A5CC3E4B46BB6C883ACADA6695"
}
Parameter Type OCM Description ServiceCode string M Service label is Klarna Code string M Contains the status of the Pay IsTest boolean M If there are actual funds processed
JSON
{
"Transaction": {
"Key": "058ABA06A4A24840AB6B77FA5689CAF2",
"Invoice": "Ref.1 OrderID Pay",
"ServiceCode": "Klarna",
"Status": {
"Code": {
"Code": 190,
"Description": "Success"
},
"SubCode": {
"Code": "S990",
"Description": "The request was successful."
},
"DateTime": "2026-02-02T13:46:17"
},
"IsTest": true,
"Order": null,
"Currency": "EUR",
"AmountDebit": 10.29,
"TransactionType": "C339",
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"MutationType": 1,
"RelatedTransactions": null,
"IsCancelable": false,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": null,
"PayerHash": null,
"PaymentKey": "D21F647EE3284E16AC1F3A5C99053CAE",
"Description": null
}
}
Parameter Type OCM Description ServiceCode string M Service label is Klarna Code string M Contains the status of the transaction IsTest boolean M If there are actual funds processed
Use the parameter AmountCredit to specify the refund amount and OriginalTransactionKey to refer to the payment transaction.
JSON
{
"Currency": "EUR",
"AmountCredit": 10.00,
"Invoice": "Ref.1 OrderID Refund",
"OriginalTransactionKey": "855CFD51867241FCAB5E23ADB49C1C3E",
"Services": {
"ServiceList": [
{
"Name": "Klarna",
"Action": "Refund",
"Parameters": [
{
"Name": "ArticleNumber",
"GroupType": "Article",
"GroupID": "1",
"Value": "12345"
},
{
"Name": "ArticleQuantity",
"GroupType": "Article",
"GroupID": "1",
"Value": "1"
}
]
}
]
}
}
JSON
{
"Currency": "EUR",
"AmountCredit": 12.45,
"Invoice": "Ref.1 OrderID Refund",
"OriginalTransactionKey": "3CB70527A86E4111BC72CC87A0D459DA",
"Services": {
"ServiceList": [
{
"Name": "Klarna",
"Action": "Refund"
}
]
}
}
Parameter Type OCM Description OriginalTransactionKey string M Buckaroo reference to the Capture at Klarna
JSON
{
"Key": "7F98D7EE65E844FAB7C67CDF15761B54",
"Status": {
"Code": {
"Code": 190,
"Description": "Success"
},
"SubCode": {
"Code": "S990",
"Description": "The request was successful."
},
"DateTime": "2026-02-06T14:12:01"
},
"RequiredAction": null,
"Services": [
{
"Name": "klarna",
"Action": null,
"Parameters": [
{
"Name": "Processed",
"Value": "Classic"
}
]
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"Invoice": "Klarna_Test_1770383519",
"ServiceCode": "klarna",
"IsTest": false,
"Currency": "EUR",
"AmountCredit": 10.29,
"TransactionType": "C340",
"MutationType": 1,
"RelatedTransactions": null,
"ConsumerMessage": null,
"Order": null,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": null,
"PayerHash": null,
"PaymentKey": "FD9934BF165142A6841701F05575B814"
}
JSON
{
"Transaction": {
"Key": "7F98D7EE65E844FAB7C67CDF15761B54",
"Invoice": "Ref.1 OrderID Refund",
"ServiceCode": "Klarna",
"Status": {
"Code": {
"Code": 190,
"Description": "Success"
},
"SubCode": {
"Code": "S990",
"Description": "The request was successful."
},
"DateTime": "2026-02-02T14:24:55"
},
"IsTest": true,
"Order": null,
"Currency": "EUR",
"AmountCredit": 1,
"TransactionType": "C340",
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"MutationType": 1,
"RelatedTransactions": [
{
"RelationType": "refund",
"RelatedTransactionKey": "0EABAA91DB7B47C6B5E6BC7AFB209162"
}
],
"IsCancelable": false,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": null,
"PayerHash": null,
"PaymentKey": " FD9934BF165142A6841701F05575B814",
"Description": null
}
}
Parameter Type OCM Description ServiceCode string M Service label is Klarna Code string M Contains the status of the transaction IsTest boolean M If there are actual funds processed RelatedTransactionKey string O Contains the Pay Transaction Key of Buckaroo
Parameter Type OCM Description locale string O Allowed Values nl-NL / en-NL / nl-BE / fr-BE / be-BE / en-BE / de-DE / en-DE / de-AT / en-AT / de-CH / fr-CH / it-CH / en-CH / sv-SE / en-SE / nb-NO / en-NO / da-DK / en-DK / fi-FI / sv-FI / en-FI / en-GB / en-IE / fr-FR / en-FR / it-IT / en-IT / es-ES / en-ES / pt-PT / en-PT / pl-PL / en-PL OperatingCountry string M Allowed values NL / BE / DE / AT / CH / DK / SE / NO / GB / FI / PL / IE / FR / IT / ES / PT ArticleTitle string M Name of article ArticleNumber string O Unique product number ArticleType string O Allowed values: physical / digital / shipping_fee / surcharge / discount / gift_card / store_credit ArticlePrice decimal M Price Including VAT ArticleQuantity integer M Number of articles ArticleVat decimal O VAT percentage ArticleImageUrl string O Url of Product image ArticleProductUrl string O Url of PDP BillingFirstName string O Customer first name BillingLastName string O Customer's last name BillingStreet string O Customer 1st line address BillingStreet2 string O Customer 2nd line address BillingPostalCode string O Customer postal code BillingCellPhoneNumber string O Customer phone number BillingCity string O Customer city BillingCountry string O Customer Country BillingEmail string O Customer email address Pno string O Customer birthdate format: DDMMYYYY or Customer PNO ShippingSameAsBilling boolean O Customer address and shipping address are the same, TRUE / FALSE ShippingCareOf string O Person/company receiving the shipment on behalf of the shipping recipient ShippingFirstName string O Delivery address first name. ShippingLastName string O Delivery address last name. ShippingStreet string O Delivery address 1st address line ShippingStreet2 string O Delivery address 2nd address line ShippingPostalCode string O Delivery address postal code ShippingCity string O Delivery address city ShippingCountry string O Delivery address country code. It should be the same as the Billing country. ShippingEmail string O Delivery address email address ShippingCellPhoneNumber string O Delivery address phone number ShippingCompany string O Delivery address company name ContentType string O Content type agreed with Klarna ex. "application/vnd.klarna.internal.emd-v2+json" Body string O Additional Parameters based on the agreed format with Klarna