
General
Each credit card has its own subscription. This means that there are multiple services supporting credit card payment, one for each type of credit card. However, since all these credit cards work in a similar way, all of them are described together on this page. When talking about generic credit card payment details, we will use credit card to reference to this. If something is specific to a single card, the card will be named specifically.
Using the credit card service a customer can pay using a credit card. The customer is presented with a screen in which the credit card information can be provided.
A credit card can be mpi-enabled; in this case the customer will be redirected to a URL where the customer can provide the 3D Secure info. After completing this, the payment will proceed. After finishing the payment, the customer will be redirected back to the web site of the merchant.
The merchant starts by sending the request for a credit card payment to a BPE transaction gateway. The gateway processes the request and sends a response to the merchant. The response will contain a redirect URL to which the customer must be redirected. Once the customer reaches this page, he can enter his/her credit card details. After these have been entered and verified and the card is not secured with a 3D Secure code, the payment is processed immediately, and the customer will be redirected back to the merchant website, along with the result. If the card is secured with a 3D Secure code, the customer is redirected to the 3D Secure page for its specific credit card, this is an external website of the card issuer. After completing the process at this page, the customer returns to the BPE transaction gateway, and the Payment Engine will process the credit card payment, after which the customer is also redirected back to the merchant website, along with the payment result. Additionally, the Payment Engine can also perform a Transaction Push, with the status of the payment.
For more information about 3D Secure, click here.
Servicecodes and Actions
The following cards are available (Card name and service code):
Credit cards
- MasterCard: mastercard
- Visa: visa
- American Express: amex
Debit cards
- VPay: vpay
- Maestro: maestro
- Visa Electron: visaelectron
- Carte Bleue: cartebleuevisa
- Carte Bancaire: cartebancaire
- Dankort: dankort
- Nexi: nexi
Below are the available actions. All of them can be send with channel 'Web', with one exception: if the creditcard acquirer is Worldline then you should use channel 'Backoffice' for the action "Capture'.
- Pay: Lets the customer perform the initial payment.
- PayRecurrent: Lets the merchant perform a repeated payment on the initial payment.
- Refund: Performs a refund on an earlier credit card payment.
- Authorize: Makes a reservation on a credit card, so that at a later moment the actual capture can be made without user interaction.
- Capture: Performs a payment, using an earlier Authorize.
Pay
The Pay action is the default action. The action is used to perform a single payment with a credit card.
Request
JSON gateway request
This action does not have service specific request variables. Advised is to use the basic parameter ClientIP so you have the option to block an IP-address if necessary in the future.
JSON
{
"Currency": "EUR",
"AmountDebit": 10.00,
"Invoice": "testinvoice 123",
"ClientIP": {
"Type": 0,
"Address": "0.0.0.0"
},
"Services": {
"ServiceList": [
{
"Name": "mastercard",
"Action": "Pay"
}
]
}
}
Response 200 Status: Ok 400 Status: Access denied 500 Status: Bad request
JSON gateway response
If the request has a valid structure and a valid signature, a transaction will be created in the Payment Engine and a response will be returned. In this case, an additional action is required before the transaction can be completed. The customer needs to be redirected to the payment environment through the returned redirectURL.
JSON
{
"Key": "13FAF43579D94F5FB8119A6819XXXXXX",
"Status": {
"Code": {
"Code": 790,
"Description": "Pending input"
},
"SubCode": null,
"DateTime": "2017-03-28T11:41:10"
},
"RequiredAction": {
"RedirectURL": "https://testcheckout.buckaroo.nl/html/redirect.ashx?r=AF51FAF1DECC422F936F06D565XXXXXX",
"RequestedInformation": null,
"PayRemainderDetails": null,
"Name": "Redirect",
"TypeDeprecated": 0
},
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"Invoice": "testinvoice 123",
"ServiceCode": null,
"IsTest": true,
"Currency": "EUR",
"AmountDebit": 10,
"TransactionType": null,
"MutationType": 0,
"RelatedTransactions": null,
"ConsumerMessage": null,
"Order": null,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": null,
"PayerHash": null,
"PaymentKey": null
}
Push
JSON push response
CardNumberEnding
string
|
Last 4 digits of the creditcard number. |
Enrolled
string
|
The enrolled status. |
Authentication
string
|
The authentication status. |
CardExpirationDate
string
|
Credit card expiration date. |
MaskedCardNumber
string
|
Masked card number. |
JSON
{
"Transaction": {
"Key": "13FAF43579D94F5FB8119A6819XXXXXX",
"Invoice": "testinvoice 123",
"ServiceCode": "mastercard",
"Status": {
"Code": {
"Code": 190,
"Description": "Success"
},
"SubCode": {
"Code": "S001",
"Description": "Transaction successfully processed"
},
"DateTime": "2017-03-28T11:42:41"
},
"IsTest": true,
"Order": null,
"Currency": "EUR",
"AmountDebit": 10,
"TransactionType": "V089",
"Services": [
{
"Name": "mastercard",
"Action": null,
"Parameters": [
{
"Name": "CardNumberEnding",
"Value": "0632"
},
{
"Name": "CardExpirationDate",
"Value": "2017-03"
},
{
"Name": "MaskedCreditcardNumber",
"Value": "513847******0632"
},
{
"Name": "Enrolled",
"Value": "Y"
},
{
"Name": "Authentication",
"Value": "Y"
}
],
"VersionAsProperty": 1
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"MutationType": 2,
"RelatedTransactions": null,
"IsCancelable": false,
"IssuingCountry": "FR",
"StartRecurrent": false,
"Recurring": false,
"CustomerName": "T. Tester",
"PayerHash": "974da7e5d169362946eae68e095bdf88e0dc5c8dd51c932ebf3f81ab9b35e699297c7582b9cd7cda3e63ba11cc116e73e46cf27e51df3ce195bfd402b271af22",
"PaymentKey": "8F813B002FDA4DF1A0314E2CFAXXXXXX"
}
}
PayEncrypted
For a regular Pay action, the consumer has to be redirected to our checkout to fill in its card data. With this action and our Client Side Encryption SDK we have introduced a way where this redirection is not necessary and you can ask for the consumers' card data on your own webshop. All you have to do is encrypt the card data with our Client Side Encryption SDK (for more info on our Client Side Encryption SDK, click here) and call this action with the "EncryptedCardData"-parameter. The value of this parameter is the result of the "encryptCardData"-function in our CSE SDK.
Request
The request is much like the Pay request, except for the OriginalTransactionKey and EncryptedCardData parameters.
EncryptedCardData
string
|
Required
The value of this parameter is the result of the "encryptCardData"-function of our Client Side Encryption SDK. |
JSON
{
"Currency": "EUR",
"AmountDebit": 0.01,
"Invoice": "PayEncryptedTest123",
"Description": "PayEncrypted Test 123",
"Services": {
"ServiceList": [
{
"Name": "Mastercard",
"Action": "PayEncrypted",
"Version": 0,
"Parameters": [
{
"Name": "EncryptedCardData",
"GroupType": "",
"GroupID": "",
"Value": "001u8gJNwngKubFCO6FmJod6aESlIFATkKYaj47KlgBp7f3NeVxUzChg1Aug7WD2vc5wut2KU9NPLUaO0tFmzhVLZoDWn7dX4AzGxSjPrsPmDMWYcEkIwMZfcyJqoRfFkF3j15mil3muXxhR1a609NfkTo11J3ENVsvU3k60z+x0jCw6NjzbrweVQhBRkrbs7TBJkS4tR38JiDsXyH2E1JmRHE+o2P9qz4at6w3zggmwImvjt5IIjEr6g8KfsIDXfv7YjEzhJ3P+7uuGoyG2WYm/Pr0+iEmTj5Q/ijkxu1+cDqv5eiB+80KgffPItUZDrnv9sKlVBAr+f53nm1G+Sxp0Q=="
}
]
}
]
}
}
Response 200 Status: Ok 400 Status: Access denied 500 Status: Bad request
The response is the same as the Pay response.
JSON
{
"Key": "051911FB5C0742FD8F5C1B93CFXXXXXX",
"Status": {
"Code": {
"Code": 791,
"Description": "Pending processing"
},
"SubCode": {
"Code": "S002",
"Description": "An additional action is required: RedirectToConsumerBank"
},
"DateTime": "2018-10-19T10:54:47"
},
"RequiredAction": {
"RedirectURL": "https://testcheckout.buckaroo.nl/html/redirect.ashx?r=5C927695D7EA4EBEB48CF34B65XXXXXX",
"RequestedInformation": null,
"PayRemainderDetails": null,
"Name": "Redirect",
"TypeDeprecated": 0
},
"Services": [
{
"Name": "mastercard",
"Action": null,
"Parameters": [
{
"Name": "CardNumberEnding",
"Value": "0000"
},
{
"Name": "CardExpirationDate",
"Value": "2019-04"
},
{
"Name": "MaskedCreditcardNumber",
"Value": "538686******0000"
},
{
"Name": "Enrolled",
"Value": "Y"
}
]
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"Invoice": "PayEncryptedTest123",
"ServiceCode": "mastercard",
"IsTest": true,
"Currency": "EUR",
"AmountDebit": 0.01,
"TransactionType": "C089",
"MutationType": 1,
"RelatedTransactions": null,
"ConsumerMessage": null,
"Order": null,
"IssuingCountry": "FR",
"StartRecurrent": false,
"Recurring": false,
"CustomerName": "Automated Encryptietest",
"PayerHash": "974da7e5d169362946eae68e095bdf88e0dc5c8dd51c932ebf3f81ab9b35e699297c7582b9cd7cda3e63ba11cc116e73e46cf27e51df3ce195bfd402b271af22",
"PaymentKey": "7B595AFEEA77431EA3F6D46E54XXXXXX"
}
Push
The push is almost the same as the Pay push, except for the ClientSideEncryptionVersion parameter.
ClientSideEncryptionVersion
string
|
The Client Side Encryption version that is used to encrypt the card data. |
JSON
{
"Transaction":{
"Key":"051911FB5C0742FD8F5C1B93CFXXXXXX",
"Invoice":"PayEncryptedTest123",
"ServiceCode":null,
"Status":{
"Code":{
"Code":190,
"Description":"Success"
},
"SubCode":{
"Code":"S990",
"Description":"The request was successful."
},
"DateTime":"2018-10-20T05:15:06"
},
"IsTest":true,
"Order":null,
"Currency":"EUR",
"AmountDebit":0.01,
"TransactionType":"C089",
"Services":[
{
"Name":"Mastercard",
"Action":null,
"Parameters":[
{
"Name":"ClientSideEncryptionVersion",
"Value":"1"
}
]
},
{
"Name":"mastercard",
"Action":null,
"Parameters":[
{
"Name":"CardNumberEnding",
"Value":"0000"
},
{
"Name":"CardExpirationDate",
"Value":"2019-04"
},
{
"Name":"MaskedCreditcardNumber",
"Value":"538686******0000"
},
{
"Name":"Enrolled",
"Value":"Y"
}
],
"VersionAsProperty":1
}
],
"CustomParameters":null,
"AdditionalParameters":null,
"MutationType":1,
"RelatedTransactions":null,
"IsCancelable":false,
"IssuingCountry":"FR",
"StartRecurrent":false,
"Recurring":false,
"CustomerName":"Automated Encryptietest",
"PayerHash":"974da7e5d169362946eae68e095bdf88e0dc5c8dd51c932ebf3f81ab9b35e699297c7582b9cd7cda3e63ba11cc116e73e46cf27e51df3ce195bfd402b271af22",
"PaymentKey":"7B595AFEEA77431EA3F6D46E54XXXXXX"
}
}
PayWithSecurityCode
When you want your returning customers not having to fill in al their card data again but still want to perform 3DS authentication, you can use this action. With this action and our Client Side Encryption SDK we have introduced a way where you only have to ask for the consumers' security code (CVC) on your webshop and send in the OriginalTransactionKey of the first transaction of this customer. All you have to do is encrypt the security code with our Client Side Encryption SDK (for more info on our Client Side Encryption SDK, click here) and call this action with the "EncryptedSecurityCode"-parameter. The value of this parameter is the result of the "encryptSecurityCode"-function in our CSE SDK.
Request
The request is much like the Pay request, except for the EncryptedSecurityCode parameter.
EncryptedSecurityCode
string
|
Required
The value of this parameter is the result of the "encryptSecurityCode"-function of our Client Side Encryption SDK. |
OriginalTransactionKey
string
|
Required
Transaction key of the initial transaction from where the card data should be copied. Please note: This is a basic parameter, not a service specific parameter. |
JSON
{
"Invoice": "PayWithSecurityCodeTest",
"Description": "PayWithSecurityCodeTest",
"Currency": "EUR",
"AmountDebit": 0.01,
"OriginalTransactionKey": "6C5DBB69E74644958F8C25199514DC6C",
"Services": {
"ServiceList": [
{
"Name": "mastercard",
"Action": "PayWithSecurityCode",
"Parameters": [
{
"Name": "EncryptedSecurityCode",
"Value": "001F3AJT7wkJa04zE8c78P7spOAgHSKH1YKgPlOwXhW049VfIXMwZO32RYna9xZRyUCtfODIoCL8GRQoaZbStlBT4rbF5e4PPvWFSKdvua4rq+GQDNAghfa+ZQz0BzBPfjS0WBdFape9n3zH2vC/0m+wI3QZiDpYYgyWC1/Y3udJDU7JRTVMq/BDHGet+IZ2CDnkeGl813kkYymzYon/QeuQRQ0Wsec5bmVQNYGx62fz70/vLgs0ffff+6DtZtnZWfByRkTwMNebJotlOsSkbhVR5FrHpAbNPCJI+LvJcJL7Eoo+ZuX5/LWGmsT6qnR/uLiIw1DI7mTKGy6/P7IljAE+g=="
}
]
}
]
}
}
Response 200 Status: Ok 400 Status: Access denied 500 Status: Bad request
The response is the same as the Pay response.
JSON
{
"Key": "FFCB3927675A4AD7912A5447E98F5F26",
"Status": {
"Code": {
"Code": 791,
"Description": "Pending processing"
},
"SubCode": {
"Code": "S002",
"Description": "An additional action is required: TestStatusRedirect"
},
"DateTime": "2020-03-23T16:19:18"
},
"RequiredAction": {
"RedirectURL": "https://testcheckout.buckaroo.nl/html/redirect.ashx?r=2EB891F035114226824BC56AFDB33B54",
"RequestedInformation": null,
"PayRemainderDetails": null,
"Name": "Redirect",
"TypeDeprecated": 0
},
"Services": [
{
"Name": "mastercard",
"Action": null,
"Parameters": [
{
"Name": "CardNumberEnding",
"Value": "0000"
},
{
"Name": "CardExpirationDate",
"Value": "2023-01"
},
{
"Name": "MaskedCreditcardNumber",
"Value": "538686******0000"
},
{
"Name": "ThreeDsVersion",
"Value": "1.0.2"
},
{
"Name": "Enrolled",
"Value": "N"
}
]
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"Invoice": "PayWithSecurityCodeTest",
"ServiceCode": "mastercard",
"IsTest": true,
"Currency": "EUR",
"AmountDebit": 0.01,
"TransactionType": "C876",
"MutationType": 1,
"RelatedTransactions": [
{
"RelationType": "copied_card_data",
"RelatedTransactionKey": "6C5DBB69E74644958F8C25199514DC6C"
}
],
"ConsumerMessage": null,
"Order": null,
"IssuingCountry": "NL",
"StartRecurrent": false,
"Recurring": false,
"CustomerName": "tes test",
"PayerHash": "4dc3aefaa23fd5d23986186f0b4dc8d25549ac4957338054080928de4d1f76e14c7a1477571ffe1952bc9bb7b63f731930599ae93f0c0d544714b4023eecf8a0",
"PaymentKey": "B2A282CE7C024F0F960EC54122840D12"
}
Push
The push is almost the same as the Pay push, except for the ClientSideEncryptionVersion parameter.
ClientSideEncryptionVersion
string
|
The Client Side Encryption version that is used to encrypt the security code. |
JSON
{
"Transaction":{
"Key":"FFCB3927675A4AD7912A5447E98F5F26",
"Invoice":"PayWithSecurityCodeTest",
"ServiceCode":"mastercard",
"Status":{
"Code":{
"Code":190,
"Description":"Success"
},
"SubCode":{
"Code":"S990",
"Description":"The request was successful."
},
"DateTime":"2020-03-23T16:21:37"
},
"IsTest":true,
"Order":null,
"Currency":"EUR",
"AmountDebit":0.01,
"TransactionType":"C876",
"Services":[
{
"Name":"Mastercard",
"Action":null,
"Parameters":[
{
"Name":"ClientSideEncryptionVersion",
"Value":"1"
}
]
},
{
"Name":"mastercard",
"Action":null,
"Parameters":[
{
"Name":"CardNumberEnding",
"Value":"0000"
},
{
"Name":"CardExpirationDate",
"Value":"2023-01"
},
{
"Name":"MaskedCreditcardNumber",
"Value":"538686******0000"
},
{
"Name":"ThreeDsVersion",
"Value":"1.0.2"
},
{
"Name":"Enrolled",
"Value":"N"
},
{
"Name":"Authentication",
"Value":"Y"
}
],
"VersionAsProperty":1
}
],
"CustomParameters":null,
"AdditionalParameters":null,
"MutationType":1,
"RelatedTransactions":[
{
"RelationType":"copied_card_data",
"RelatedTransactionKey":"6C5DBB69E74644958F8C25199514DC6C"
}
],
"IsCancelable":false,
"IssuingCountry":"NL",
"StartRecurrent":false,
"Recurring":false,
"CustomerName":"tes test",
"PayerHash":"4dc3aefaa23fd5d23986186f0b4dc8d25549ac4957338054080928de4d1f76e14c7a1477571ffe1952bc9bb7b63f731930599ae93f0c0d544714b4023eecf8a0",
"PaymentKey":"B2A282CE7C024F0F960EC54122840D12"
}
}
Refund
The Refund action can be used to perform a refund on an earlier credit card transaction. There is no customer interaction needed to do this.
Request
JSON gateway request
OriginalTransactionKey
string
|
Required
Transaction key of the payment that needs to be refunded. Please note: This is a basic parameter, not a service specific parameter. |
JSON
{
"Currency": "EUR",
"AmountCredit": 1.00,
"Invoice": "testinvoice 123",
"OriginalTransactionKey": "13FAF43579D94F5FB8119A6819XXXXXX",
"Services": {
"ServiceList": [
{
"Name": "mastercard",
"Action": "Refund"
}
]
}
}
Response 200 Status: Ok 400 Status: Access denied 500 Status: Bad request
JSON gateway response
This action does not have service specific response variables.
JSON
{
"Key": "7E1AD3268A4C49D496BEEFC300XXXXXX",
"Status": {
"Code": {
"Code": 190,
"Description": "Success"
},
"SubCode": {
"Code": "S001",
"Description": "Transaction successfully processed"
},
"DateTime": "2017-03-28T11:48:10"
},
"RequiredAction": null,
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"Invoice": "testinvoice 123",
"ServiceCode": "mastercard",
"IsTest": true,
"Currency": "EUR",
"AmountCredit": 1,
"TransactionType": "V197",
"MutationType": 2,
"RelatedTransactions": [
{
"RelationType": "refund",
"RelatedTransactionKey": "13FAF43579D94F5FB8119A6819XXXXXX"
}
],
"ConsumerMessage": null,
"Order": null,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": "T. Tester",
"PayerHash": null,
"PaymentKey": "A9025EE92CBC4CDD94F9C83F0FXXXXXX"
}
Push
JSON push response
This push contains no service specific response variables.
JSON
{
"Transaction": {
"Key": "7E1AD3268A4C49D496BEEFC300XXXXXX",
"Invoice": "testinvoice 123",
"ServiceCode": "mastercard",
"Status": {
"Code": {
"Code": 190,
"Description": "Success"
},
"SubCode": {
"Code": "S001",
"Description": "Transaction successfully processed"
},
"DateTime": "2017-03-28T11:48:10"
},
"IsTest": true,
"Order": null,
"Currency": "EUR",
"AmountCredit": 1,
"TransactionType": "V197",
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"MutationType": 2,
"RelatedTransactions": [
{
"RelationType": "refund",
"RelatedTransactionKey": "13FAF43579D94F5FB8119A6819XXXXXX"
}
],
"IsCancelable": false,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": "T. Tester",
"PayerHash": null,
"PaymentKey": "A9025EE92CBC4CDD94F9C83F0FXXXXXX"
}
}
Authorize
The Authorize action allows a merchant to make a reservation for a specific amount on a customer’s creditcard. Referring to this authorization, it is then possible at a later time to perform 1 or more charges on the customers creditcard for a total of up to the requested amount. Since an authorize makes a reservation on a credit card, it lowers the available spending limit on a credit card. A recurrent payment is also possible on an authorize. In that case, add the basic parameter StartRecurrent with value "true" in your request.
Request
JSON gateway request
This action does not have service specific response variables. Advised is to use the basic parameter ClientIP so you have the option to block an IP-address if necessary in the future.
JSON
{
"Currency": "EUR",
"AmountDebit": 10.00,
"Invoice": "testinvoice 123",
"ClientIP": {
"Type": 0,
"Address": "0.0.0.0"
},
"Services": {
"ServiceList": [
{
"Name": "mastercard",
"Action": "Authorize",
}
]
}
}
Response 200 Status: Ok 400 Status: Access denied 500 Status: Bad request
JSON gateway response
If the request has a valid structure and a valid signature, a transaction will be created in the Payment Engine and a response will be returned. In this case, an additional action is required before the transaction can be completed. The customer needs to be redirected to the payment environment through the returned redirectURL.
JSON
{
"Key": "571457E371FB494FB0E67C99CFXXXXXX",
"Status": {
"Code": {
"Code": 790,
"Description": "Pending input"
},
"SubCode": null,
"DateTime": "2017-03-28T11:50:19"
},
"RequiredAction": {
"RedirectURL": "https://testcheckout.buckaroo.nl/html/redirect.ashx?r=B3B96BC48B2C464D9027742FA0XXXXXX",
"RequestedInformation": null,
"PayRemainderDetails": null,
"Name": "Redirect",
"TypeDeprecated": 0
},
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"Invoice": "testinvoice 123",
"ServiceCode": null,
"IsTest": true,
"Currency": "EUR",
"AmountDebit": 10,
"TransactionType": null,
"MutationType": 0,
"RelatedTransactions": null,
"ConsumerMessage": null,
"Order": null,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": null,
"PayerHash": null,
"PaymentKey": null
}
Push
JSON push response
CardNumberEnding
string
|
Last 4 digits of the credit card number. |
Authentication
string
|
The authentication status. |
Enrolled
string
|
The enrolled status. |
CardExpirationDate
string
|
Expiration date of the used credit card. |
MaskedCreditcardNumber
string
|
The credit card number (partially masked). |
JSON
{
"Transaction": {
"Key": "571457E371FB494FB0E67C99CFXXXXXX",
"Invoice": "testinvoice 123",
"ServiceCode": "mastercard",
"Status": {
"Code": {
"Code": 190,
"Description": "Success"
},
"SubCode": null,
"DateTime": "2017-03-28T11:51:15"
},
"IsTest": true,
"Order": null,
"Currency": "EUR",
"AmountDebit": 10,
"TransactionType": "V088",
"Services": [
{
"Name": "mastercard",
"Action": null,
"Parameters": [
{
"Name": "CardNumberEnding",
"Value": "9097"
},
{
"Name": "CardExpirationDate",
"Value": "2017-03"
},
{
"Name": "MaskedCreditcardNumber",
"Value": "517043******9097"
},
{
"Name": "Enrolled",
"Value": "Y"
},
{
"Name": "Authentication",
"Value": "Y"
}
],
"VersionAsProperty": 1
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"MutationType": 3,
"RelatedTransactions": null,
"IsCancelable": true,
"IssuingCountry": "DK",
"StartRecurrent": false,
"Recurring": false,
"CustomerName": "T. Tester",
"PayerHash": null,
"PaymentKey": null
}
}
AuthorizeEncrypted
For a regular Authorize action, the consumer has to be redirected to our checkout to fill in its card data. With this action and our Client Side Encryption SDK we have introduced a way where this redirection is not necessary and you can ask for the consumers' card data on your own webshop. All you have to do is encrypt the card data with our Client Side Encryption SDK (for more info on our Client Side Encryption SDK, click here) and call this action with the "EncryptedCardData"-parameter. The value of this parameter is the result of the "encryptCardData"-function in our CSE SDK.
Request
The request is much like the Authorize request, except for the EncryptedCardData parameter.
EncryptedCardData
string
|
Required
The value of this parameter is the result of the "encryptCardData"-function of our Client Side Encryption SDK. |
JSON
{
"Currency": "EUR",
"AmountDebit": 0.01,
"Invoice": "AuthorizeEncryptedTest123",
"Description": "Authorize Encrypted Test 123",
"Services": {
"ServiceList": [
{
"Name": "Mastercard",
"Action": "AuthorizeEncrypted",
"Version": 0,
"Parameters": [
{
"Name": "EncryptedCardData",
"GroupType": "",
"GroupID": "",
"Value": "001u8gJNwngKubFCO6FmJod6aESlIFATkKYaj47KlgBp7f3NeVxUzChg1Aug7WD2vc5wut2KU9NPLUaO0tFmzhVLZoDWn7dX4AzGxSjPrsPmDMWYcEkIwMZfcyJqoRfFkF3j15mil3muXxhR1a609NfkTo11J3ENVsvU3k60z+x0jCw6NjzbrweVQhBRkrbs7TBJkS4tR38JiDsXyH2E1JmRHE+o2P9qz4at6w3zggmwImvjt5IIjEr6g8KfsIDXfv7YjEzhJ3P+7uuGoyG2WYm/Pr0+iEmTj5Q/ijkxu1+cDqv5eiB+80KgffPItUZDrnv9sKlVBAr+f53nm1G+Sxp0Q=="
}
]
}
]
}
}
Response 200 Status: Ok 400 Status: Access denied 500 Status: Bad request
The response is almost the same as the Authorize response, except for the ClientSideEncryptionVersion parameter.
ClientSideEncryptionVersion
string
|
The Client Side Encryption version that is used to encrypt the card data. |
JSON
{
"Key": "18733464547E465EB78A1B896DXXXXXX",
"Status": {
"Code": {
"Code": 791,
"Description": "Pending processing"
},
"SubCode": null,
"DateTime": "2018-10-19T10:54:47+02:00"
},
"RequiredAction": {
"RedirectURL": "https://testcheckout.buckaroo.nl/html/redirect.ashx?r=EB19D99034424813B2F5C10C92XXXXXX",
"RequestedInformation": null,
"PayRemainderDetails": null,
"Name": "Redirect",
"TypeDeprecated": 0
},
"Services": [
{
"Name": "Mastercard",
"Action": null,
"Parameters": [
{
"Name": "ClientSideEncryptionVersion",
"Value": "1"
}
]
},
{
"Name": "mastercard",
"Action": null,
"Parameters": [
{
"Name": "CardNumberEnding",
"Value": "0000"
},
{
"Name": "CardExpirationDate",
"Value": "2019-04"
},
{
"Name": "MaskedCreditcardNumber",
"Value": "538686******0000"
},
{
"Name": "Enrolled",
"Value": "Y"
}
]
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"Invoice": "AuthorizeEncryptedTest123",
"ServiceCode": "mastercard",
"IsTest": true,
"Currency": "EUR",
"AmountDebit": 0.01,
"TransactionType": "I088",
"MutationType": 3,
"RelatedTransactions": null,
"ConsumerMessage": null,
"Order": null,
"IssuingCountry": "FR",
"StartRecurrent": false,
"Recurring": false,
"CustomerName": "Automated Encryptietest",
"PayerHash": null,
"PaymentKey": null
}
Push
The push is almost the same as the Authorize push, except for the ClientSideEncryptionVersion parameter.
ClientSideEncryptionVersion
string
|
The Client Side Encryption version that is used to encrypt the card data. |
JSON
{
"Transaction":{
"Key":"18733464547E465EB78A1B896DXXXXXX",
"Invoice":"AuthorizeEncryptedTest123",
"ServiceCode":"mastercard",
"Status":{
"Code":{
"Code":791,
"Description":"Pending processing"
},
"SubCode":null,
"DateTime":"2018-10-19T10:54:47"
},
"IsTest":true,
"Order":null,
"Currency":"EUR",
"AmountDebit":0.01,
"TransactionType":"I088",
"Services":[
{
"Name":"Mastercard",
"Action":null,
"Parameters":[
{
"Name":"ClientSideEncryptionVersion",
"Value":"1"
}
]
},
{
"Name":"mastercard",
"Action":null,
"Parameters":[
{
"Name":"CardNumberEnding",
"Value":"0000"
},
{
"Name":"CardExpirationDate",
"Value":"2019-04"
},
{
"Name":"MaskedCreditcardNumber",
"Value":"538686******0000"
},
{
"Name":"Enrolled",
"Value":"Y"
}
],
"VersionAsProperty":1
}
],
"CustomParameters":null,
"AdditionalParameters":null,
"MutationType":3,
"RelatedTransactions":null,
"IsCancelable":false,
"IssuingCountry":"FR",
"StartRecurrent":false,
"Recurring":false,
"CustomerName":"Automated Encryptietest",
"PayerHash":null,
"PaymentKey":null
}
}
AuthorizeWithSecurityCode
When you want your returning customers not having to fill in al their card data again but still want to perform 3DS authentication, you can use this action. With this action and our Client Side Encryption SDK we have introduced a way where you only have to ask for the consumers' security code (CVC) on your webshop and send in the OriginalTransactionKey of the first transaction of this customer. All you have to do is encrypt the security code with our Client Side Encryption SDK (for more info on our Client Side Encryption SDK, click here) and call this action with the "EncryptedSecurityCode"-parameter. The value of this parameter is the result of the "encryptSecurityCode"-function in our CSE SDK.
Request
The request is much like the Authorize request, except for the OriginalTransactionKey and EncryptedSecurityCode parameters.
EncryptedSecurityCode
string
|
Required
The value of this parameter is the result of the "encryptSecurityCode"-function of our Client Side Encryption SDK. |
OriginalTransactionKey
string
|
Required
Transaction key of the initial transaction from where the card data should be copied. Please note: This is a basic parameter, not a service specific parameter. |
JSON
{
"Invoice": "AuthorizeWithSecurityCodeTest",
"Description": "AuthorizeWithSecurityCodeTest",
"Currency": "EUR",
"AmountDebit": 0.01,
"OriginalTransactionKey": "6C5DBB69E74644958F8C25199514DC6C",
"Services": {
"ServiceList": [
{
"Name": "mastercard",
"Action": "AuthorizeWithSecurityCode",
"Parameters": [
{
"Name": "EncryptedSecurityCode",
"Value": "001F3AJT7wkJa04zE8c78P7spOAgHSKH1YKgPlOwXhW049VfIXMwZO32RYna9xZRyUCtfODIoCL8GRQoaZbStlBT4rbF5e4PPvWFSKdvua4rq+GQDNAghfa+ZQz0BzBPfjS0WBdFape9n3zH2vC/0m+wI3QZiDpYYgyWC1/Y3udJDU7JRTVMq/BDHGet+IZ2CDnkeGl813kkYymzYon/QeuQRQ0Wsec5bmVQNYGx62fz70/vLgs0ffff+6DtZtnZWfByRkTwMNebJotlOsSkbhVR5FrHpAbNPCJI+LvJcJL7Eoo+ZuX5/LWGmsT6qnR/uLiIw1DI7mTKGy6/P7IljAE+g=="
}
]
}
]
}
}
Response 200 Status: Ok 400 Status: Access denied 500 Status: Bad request
The response is almost the same as the Authorize response, except for the ClientSideEncryptionVersion parameter.
JSON
{
"Key": "D7B87BBA4C044B2F9A74B5DEC0AAEF6B",
"Status": {
"Code": {
"Code": 791,
"Description": "Pending processing"
},
"SubCode": null,
"DateTime": "2020-03-23T16:24:38+01:00"
},
"RequiredAction": {
"RedirectURL": "https://testcheckout.buckaroo.nl/html/redirect.ashx?r=11403BFFBEE648EBB37480F83683E9A5",
"RequestedInformation": null,
"PayRemainderDetails": null,
"Name": "Redirect",
"TypeDeprecated": 0
},
"Services": [
{
"Name": "Mastercard",
"Action": null,
"Parameters": [
{
"Name": "ClientSideEncryptionVersion",
"Value": "1"
}
]
},
{
"Name": "mastercard",
"Action": null,
"Parameters": [
{
"Name": "CardNumberEnding",
"Value": "0000"
},
{
"Name": "CardExpirationDate",
"Value": "2023-01"
},
{
"Name": "MaskedCreditcardNumber",
"Value": "538686******0000"
},
{
"Name": "ThreeDsVersion",
"Value": "1.0.2"
},
{
"Name": "Enrolled",
"Value": "N"
}
]
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"Invoice": "AuthorizeWithSecurityCodeTest",
"ServiceCode": "mastercard",
"IsTest": true,
"Currency": "EUR",
"AmountDebit": 0.01,
"TransactionType": "I876",
"MutationType": 3,
"RelatedTransactions": [
{
"RelationType": "copied_card_data",
"RelatedTransactionKey": "6C5DBB69E74644958F8C25199514DC6C"
}
],
"ConsumerMessage": null,
"Order": null,
"IssuingCountry": "NL",
"StartRecurrent": false,
"Recurring": false,
"CustomerName": "tes test",
"PayerHash": null,
"PaymentKey": null
}
Push
The push is almost the same as the Authorize push, except for the ClientSideEncryptionVersion parameter.
ClientSideEncryptionVersion
string
|
The Client Side Encryption version that is used to encrypt the security code. |
JSON
{
"Transaction":{
"Key":"D7B87BBA4C044B2F9A74B5DEC0AAEF6B",
"Invoice":"AuthorizeWithSecurityCodeTest",
"ServiceCode":"mastercard",
"Status":{
"Code":{
"Code":190,
"Description":"Success"
},
"SubCode":null,
"DateTime":"2020-03-23T16:24:56"
},
"IsTest":true,
"Order":null,
"Currency":"EUR",
"AmountDebit":0.01,
"TransactionType":"I876",
"Services":[
{
"Name":"Mastercard",
"Action":null,
"Parameters":[
{
"Name":"ClientSideEncryptionVersion",
"Value":"1"
}
]
},
{
"Name":"mastercard",
"Action":null,
"Parameters":[
{
"Name":"CardNumberEnding",
"Value":"0000"
},
{
"Name":"CardExpirationDate",
"Value":"2023-01"
},
{
"Name":"MaskedCreditcardNumber",
"Value":"538686******0000"
},
{
"Name":"ThreeDsVersion",
"Value":"1.0.2"
},
{
"Name":"Enrolled",
"Value":"N"
},
{
"Name":"Authentication",
"Value":"Y"
}
],
"VersionAsProperty":1
}
],
"CustomParameters":null,
"AdditionalParameters":null,
"MutationType":3,
"RelatedTransactions":[
{
"RelationType":"copied_card_data",
"RelatedTransactionKey":"6C5DBB69E74644958F8C25199514DC6C"
}
],
"IsCancelable":false,
"IssuingCountry":"NL",
"StartRecurrent":false,
"Recurring":false,
"CustomerName":"tes test",
"PayerHash":null,
"PaymentKey":null
}
}
Capture
The Capture action allows the merchant to perform a charge on a previously created authorization. The customer is not needed to perform this charge. The maximum capture amount is the amount of the previously requested Authorize, minus any capture amounts previously requested on the same authorize.
Request
JSON gateway request
OriginalTransactionKey
string
|
Required
Transaction key of the initial payment. Please note: This is a basic parameter, not a service specific parameter. |
JSON
{
"Currency": "EUR",
"AmountDebit": 1.00,
"Invoice": "testinvoice 123",
"OriginalTransactionKey": "571457E371FB494FB0E67C99CFXXXXXX",
"Services": {
"ServiceList": [
{
"Name": "mastercard",
"Action": "Capture"
}
]
}
}
Response 200 Status: Ok 400 Status: Access denied 500 Status: Bad request
JSON gateway response
This action does not have service specific response variables.
JSON
{
"Key": "EA244C42EC0846E8BF2CD406BCXXXXXX",
"Status": {
"Code": {
"Code": 190,
"Description": "Success"
},
"SubCode": {
"Code": "S001",
"Description": "Transaction successfully processed"
},
"DateTime": "2017-05-31T12:40:03"
},
"RequiredAction": null,
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"Invoice": "testinvoice 123",
"ServiceCode": "mastercard",
"IsTest": true,
"Currency": "EUR",
"AmountDebit": 1.0,
"TransactionType": "V201",
"MutationType": 2,
"RelatedTransactions": null,
"ConsumerMessage": null,
"Order": null,
"IssuingCountry": "FR",
"StartRecurrent": false,
"Recurring": false,
"CustomerName": "T. Tester",
"PayerHash": null,
"PaymentKey": "FBCCF988EE3A455A9A07F1F5A1XXXXXX"
}
Push
JSON Push response
This action does not have service specific response variables.
JSON
{
"Transaction": {
"Key": "EA244C42EC0846E8BF2CD406BCXXXXXX",
"Invoice": "testinvoice 123",
"ServiceCode": "mastercard",
"Status": {
"Code": {
"Code": 190,
"Description": "Success"
},
"SubCode": {
"Code": "S001",
"Description": "Transaction successfully processed"
},
"DateTime": "2017-05-31T12:40:03"
},
"IsTest": true,
"Order": null,
"Currency": "EUR",
"AmountDebit": 1,
"TransactionType": "V201",
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"MutationType": 2,
"RelatedTransactions": null,
"IsCancelable": false,
"IssuingCountry": "FR",
"StartRecurrent": false,
"Recurring": false,
"CustomerName": "T. Tester",
"PayerHash": null,
"PaymentKey": "FBCCF988EE3A455A9A07F1F5A1XXXXXX"
}
}
SOAP
Payrecurrent
The PayRecurrent action is used to perform a repeated payment by credit card on an initial payment. For a recurrent payment, the customer isn’t needed, since the credit card details do not have to be entered again. In case the payment is processed by Worldline, the recurrent payment is also possible on an authorize. A PayRecurrent payment can only be performed based on a transaction having the parameter Startrecurrent set to True.
Request
JSON gateway request
OriginalTransactionKey
string
|
Required
Transaction key of the initial payment. Please note: This is a basic parameter, not a service specific parameter. |
JSON
{
"Currency": "EUR",
"AmountDebit": 10,
"Invoice": "testinvoice 123",
"OriginalTransactionKey": "80558FE1BE7F4B959E5C64907EXXXXXX",
"Services": {
"ServiceList": [
{
"Name": "mastercard",
"Action": "PayRecurrent"
}
]
}
}
Response 200 Status: Ok 400 Status: Access denied 500 Status: Bad request
JSON gateway response
CardNumberEnding
string
|
The last four digits of the used credit card number. |
CardExpirationDate
string
|
The expiration date of the used credit card. |
MaskedCreditcardNumber
string
|
The credit card number (partially masked). |
JSON
{
"Key": "5C7012EEF3E84CAEAA50DBBCEDXXXXXX",
"Status": {
"Code": {
"Code": 190,
"Description": "Success"
},
"SubCode": {
"Code": "S001",
"Description": "Transaction successfully processed"
},
"DateTime": "2017-06-01T08:26:40"
},
"RequiredAction": null,
"Services": [
{
"Name": "mastercard",
"Action": null,
"Parameters": [
{
"Name": "CardNumberEnding",
"Value": "9097"
},
{
"Name": "CardExpirationDate",
"Value": "2020-06"
},
{
"Name": "MaskedCreditcardNumber",
"Value": "517043******9097"
}
]
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"Invoice": "testinvoice 123",
"ServiceCode": "mastercard",
"IsTest": true,
"Currency": "EUR",
"AmountDebit": 10,
"TransactionType": "V043",
"MutationType": 2,
"RelatedTransactions": null,
"ConsumerMessage": null,
"Order": null,
"IssuingCountry": "DK",
"StartRecurrent": false,
"Recurring": true,
"CustomerName": "T. Tester",
"PayerHash": null,
"PaymentKey": "625B93474A34478698DEE551DFXXXXXX"
}
Push
JSON push response
CardNumberEnding
string
|
The last four digits of the used credit card number. |
CardExpirationDate
string
|
The expiration date of the used credit card. |
MaskedCreditcardNumber
string
|
The credit card number (partially masked). |
JSON
{
"Transaction": {
"Key": "5C7012EEF3E84CAEAA50DBBCEDXXXXXX",
"Invoice": "testinvoice 123",
"ServiceCode": "mastercard",
"Status": {
"Code": {
"Code": 190,
"Description": "Success"
},
"SubCode": {
"Code": "S001",
"Description": "Transaction successfully processed"
},
"DateTime": "2017-06-01T08:26:40"
},
"IsTest": true,
"Order": null,
"Currency": "EUR",
"AmountDebit": 10,
"TransactionType": "V043",
"Services": [
{
"Name": "mastercard",
"Action": null,
"Parameters": [
{
"Name": "CardNumberEnding",
"Value": "9097"
},
{
"Name": "CardExpirationDate",
"Value": "2020-06"
},
{
"Name": "MaskedCreditcardNumber",
"Value": "517043******9097"
}
],
"VersionAsProperty": 1
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"MutationType": 2,
"RelatedTransactions": null,
"IsCancelable": false,
"IssuingCountry": "DK",
"StartRecurrent": false,
"Recurring": true,
"CustomerName": "T. Tester",
"PayerHash": null,
"PaymentKey": "625B93474A34478698DEE551DFXXXXXX"
}
}