Pay

This action is used to perform a single payment with the Bancontact card.

Base JSON request

πŸ“˜

Note

Use the base request as instructed on this page.

Pay Request

Parameters

Service-specific parameters

ParameterTypeRequiredRecommendedDescription
SaveTokenStringNoN/ASaveToken is the parameter used to indicate if a token is to be created, that can be used for Wallet Initiated Payments in the future.

Basic Parameters:

  • Find basic parameters here.

Example request

{
  "Currency": "EUR",
  "AmountDebit": 10.00,
  "Invoice": "testinvoice 123",
  "ClientIP": {
      "Type": 0,
      "Address": "0.0.0.0"
   },
  "Services": {
    "ServiceList": [
      {
        "Name": "bancontactmrcash",
        "Action": "Pay",
        "Parameters": [
          {
            "Name": "savetoken",
            "Value": "true"
          }
        ]
      }
    ]
  }
}

 

Pay 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 redirect URL. The response does not contain service-specific variables.

Parameters

Example response

{
    "Key": "0EF39AA94BD64FF38F1540DEB6XXXXXX",
    "Status": {
        "Code": {
            "Code": 790,
            "Description": "Pending input"
        },
        "SubCode": null,
        "DateTime": "2017-03-30T12:50:36"
    },
    "RequiredAction": {
        "RedirectURL": "https://testcheckout.buckaroo.nl/html/redirect.ashx?r=77C66A69FF4240DBB497CA73E5XXXXXX",
        "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
}

Pay Push

Parameters

Service-specific parameters

ParameterTypeRequiredDescription
CardNumberEndingStringN/ALast 4 digits of the card number.
CardExpirationDateStringN/ACard expiration date.
MaskedCardNumberStringN/AMasked card number.
CustomerIBANStringN/AThe customer's IBAN
CustomerBICStringN/AThe BIC code belonging to the customer's IBAN.
InputTypeStringN/AThe way the transaction was paid. Possible values are: "Manual" for a regular payment; "QrCode" for a mobile payment paid by scanning the QR-code; "UrlIntent" for a mobile payment paid by clicking on the payment button on a mobile device.

Example push

{
  "Transaction": {
    "Key": "0EF39AA94BD64FF38F1540DEB6XXXXXX",
    "Invoice": "testinvoice 123",
    "ServiceCode": "bancontactmrcash",
    "Status": {
      "Code": {
        "Code": 190,
        "Description": "Success"
      },
      "SubCode": {
        "Code": "S990",
        "Description": "The request was successful."
      },
      "DateTime": "2017-03-30T12:51:10"
    },
    "IsTest": true,
    "Order": null,
    "Currency": "EUR",
    "AmountDebit": 10,
    "TransactionType": "C090",
    "Services": [
      {
        "Name": "bancontactmrcash",
        "Action": null,
        "Parameters": [
          {
            "Name": "CardNumberEnding",
            "Value": "5015"
          },
          {
            "Name": "CardExpirationDate",
            "Value": "2017-03"
          },
          {
            "Name": "MaskedCreditcardNumber",
            "Value": "670342*******5015"
          },
          {
            "Name": "CustomerIban",
            "Value": "BE68xxxxxxxxx034"
          },
          {
            "Name": "CustomerBic",
            "Value": "BANKBEBB"
          },
          {
            "Name": "InputType",
            "Value": "Manual"
          }
        ],
        "VersionAsProperty": 1
      }
    ],
    "CustomParameters": null,
    "AdditionalParameters": null,
    "MutationType": 1,
    "RelatedTransactions": null,
    "IsCancelable": false,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": false,
    "CustomerName": "T. Tester",
    "PayerHash": "null",
    "PaymentKey": "3055B6E1FA6C493881CDFCC05DXXXXXX"
  }
}

Refund

Parameters

ParameterTypeRequiredDescription
OriginalTransactionKeyStringYesTransaction key of the payment that needs to be refunded. Please note: This is a basic request variable, not a service specific variable.

Refund request

{
  "Currency": "EUR",
  "AmountCredit": 1.00,
  "Invoice": "testinvoice 123",
  "OriginalTransactionKey": "0EF39AA94BD64FF38F1540DEB6XXXXXX",
  "Services": {
    "ServiceList": [
      {
        "Name": "bancontactmrcash",
        "Action": "Refund"
      }
    ]
  }
}

Refund response

{
    "Key": "6C1012FAF0444C1C8283404DA7XXXXXX",
    "Status": {
        "Code": {
            "Code": 190,
            "Description": "Success"
        },
        "SubCode": {
            "Code": "S990",
            "Description": "The request was successful."
        },
        "DateTime": "2017-03-30T12:54:58"
    },
    "RequiredAction": null,
    "Services": null,
    "CustomParameters": null,
    "AdditionalParameters": null,
    "RequestErrors": null,
    "Invoice": "testinvoice 123",
    "ServiceCode": "bancontactmrcash",
    "IsTest": true,
    "Currency": "EUR",
    "AmountCredit": 1,
    "TransactionType": "C092",
    "MutationType": 1,
    "RelatedTransactions": [
        {
            "RelationType": "refund",
            "RelatedTransactionKey": "0EF39AA94BD64FF38F1540DEB6XXXXXX"
        }
    ],
    "ConsumerMessage": null,
    "Order": null,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": false,
    "CustomerName": null,
    "PayerHash": null,
    "PaymentKey": "0650B22A3CC44E60AF1D67D9BEXXXXXX"
}

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.

Base JSON request

Use the base request as instructed on this page

PayEncrypted Request

The request is much like the Pay request, except for the EncryptedCardData parameter.

Parameters

Service-specific parameters

ParameterTypeRequiredRecommended
EncryptedCardDataStringYesThe value of this parameter is the result of the "encryptCardData"-function of our Client Side Encryption SDK.

Example request

{
  "Currency": "EUR",
  "AmountDebit": 0.01,
  "Invoice": "BancontactPayEncryptedTest123",
  "Description": "Bancontact PayEncrypted Test 123",
    "Services": {
    "ServiceList": [
      {
        "Name": "bancontactmrcash",
        "Action": "PayEncrypted",
        "Version": 0,
        "Parameters": [
          {
            "Name": "EncryptedCardData",
            "GroupType": "",
            "GroupID": "",
            "Value": "001SlXfd8MbiTd/JFwCiGVs3f6o4x6xt0aN29NzOSNZHPKlVsz/EWeQmyhb1gGZ86VY88DP7gfDV+UyjcPfpVfHZd7u+WkO71hnV2QfYILCBNqE1aiPv2GQVGdaGbuoQloKu1o3o3I1UDmVxivXTMQX76ovot89geA6hqbtakmpmvxeiwwea3l4htNoX1IlD1hfYkDDl9rzSu5ypcjvVs6aRGXK5iMHnyrmEsEnfdj/Q5XWbsD5xAm4u3y6J8d4UP7LB31VLECzZUTiJOtKKcCQlT01YThIkQlj8PWBBMtt4H52VN3IH2+wPYtR8HiOZzcA2HA7UxozogIpS53tIURj/g=="
          }
        ]
      }
    ]
  }
}

PayEncrypted Response

The response is the same as the Pay response.

Example response

PayEncrypted Push

The push is almost the same as the Pay push, except for the ClientSideEncryptionVersion parameter.

Service-specific parameters

ParameterTypeRequiredDescription
ClientSideEncryptionVersionStringN/AThe Client Side Encryption version that is used to encrypt the card data.

Example push

{
   "Transaction":{
      "Key":"AF4BB6D14C364404ADF925958FXXXXXX",
      "Invoice":"BancontactPayEncryptedTest123",
      "ServiceCode":null,
      "Status":{
         "Code":{
            "Code":190,
            "Description":"Success"
         },
         "SubCode":{
            "Code":"S990",
            "Description":"The request was successful."
         },
         "DateTime":"2018-10-20T05:15:10"
      },
      "IsTest":false,
      "Order":null,
      "Currency":"EUR",
      "AmountDebit":0.01,
      "TransactionType":"C090",
      "Services":[
         {
            "Name":"BancontactMrCash",
            "Action":null,
            "Parameters":[
               {
                  "Name":"ClientSideEncryptionVersion",
                  "Value":"1"
               }
            ]
         },
         {
            "Name":"bancontactmrcash",
            "Action":null,
            "Parameters":[
               {
                  "Name":"CardNumberEnding",
                  "Value":"5015"
               },
               {
                  "Name":"CardExpirationDate",
                  "Value":"2023-10"
               },
               {
                  "Name":"MaskedCreditcardNumber",
                  "Value":"670342*******5015"
               },
               {
                  "Name":"Enrolled",
                  "Value":"Y"
               }
            ],
            "VersionAsProperty":1
         }
      ],
      "CustomParameters":null,
      "AdditionalParameters":null,
      "MutationType":1,
      "RelatedTransactions":null,
      "IsCancelable":false,
      "IssuingCountry":null,
      "StartRecurrent":false,
      "Recurring":false,
      "CustomerName":"Automated Encryptietest",
      "PayerHash":null,
      "PaymentKey":"98944CC3B3FA4ACD9A837D3A22XXXXXX"
   }
}

CompletePayment

When you want to use both the QR-Code and the Client Side Encryption on your own webshop checkout, you have to use the CompletePayment DataRequest to complete the already created payment.

Note that the ReturnUrl of the original transaction is used to redirect the consumer.

Base JSON request

Use the base request as instructed on this page

CompletePayment Request

Service-specific parameters

ParameterTypeRequiredRecommendedDescription
OriginalTransactionKeyStringYesTransaction key of the payment that needs to be completed. Please note: This is a basic request variable, not a service specific variable.
EncryptedCardDataStringYesThe value of this parameter is the result of the "encryptCardData"-function of our Client Side Encryption SDK.

Example request

{
  "OriginalTransactionKey": "AF4BB6D14C364404ADF925958FXXXXXX",
  "Services": {
    "ServiceList": [
      {
        "Name": "bancontactmrcash",
        "Action": "CompletePayment",
        "Parameters": [
          {
            "Name": "EncryptedCardData",
            "Value": "001SlXfd8MbiTd/JFwCiGVs3f6o4x6xt0aN29NzOSNZHPKlVsz/EWeQmyhb1gGZ86VY88DP7gfDV+UyjcPfpVfHZd7u+WkO71hnV2QfYILCBNqE1aiPv2GQVGdaGbuoQloKu1o3o3I1UDmVxivXTMQX76ovot89geA6hqbtakmpmvxeiwwea3l4htNoX1IlD1hfYkDDl9rzSu5ypcjvVs6aRGXK5iMHnyrmEsEnfdj/Q5XWbsD5xAm4u3y6J8d4UP7LB31VLECzZUTiJOtKKcCQlT01YThIkQlj8PWBBMtt4H52VN3IH2+wPYtR8HiOZzcA2HA7UxozogIpS53tIURj/g=="
          }
        ]
      }
    ]
  }
}

CompletePayment Response

The response is also much like the PayEncrypted response.

Example response



{
  "Key": "0FDA1EC644FA4E948ADEF63694XXXXXX",
  "Status": {
    "Code": {
      "Code": 791,
      "Description": "Pending processing"
    },
    "SubCode": {
      "Code": "S002",
      "Description": "An additional action is required: 3-D Secure"
    },
    "DateTime": "2018-12-04T15:53:49"
  },
  "RequiredAction": {
    "RedirectURL": "https://checkout.buckaroo.nl/html/redirect.ashx?r=0D7D9B311EC3410CB20D7F89C0XXXXXX",
    "RequestedInformation": null,
    "Name": "Redirect",
    "TypeDeprecated": 0
  },
  "Services": null,
  "CustomParameters": null,
  "AdditionalParameters": null,
  "RequestErrors": null,
  "ServiceCode": "bancontactmrcash",
  "IsTest": false,
  "ConsumerMessage": null
}

PayRecurring

PayRecurring is a Wallet Initiated Payment. PayRecurring should only be used if the consumer is not present. If the consumer is present, the action PayOneClick should be used instead.

Parameters

Example request

{
  "Currency": "EUR",
  "AmountDebit": 10.00,
  "Invoice": "testinvoice 123",
  "OriginalTransactionKey": "91D08EC01F414926A4CA29C059XXXXXX",
  "ClientIP": {
      "Type": 0,
      "Address": "0.0.0.0"
   },
  "Services": {
    "ServiceList": [
      {
        "Name": "bancontactmrcash",
        "Action": "PayRecurring"
      }
    ]
  }
}

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

Example response

{
  "Key": "CA9A4CB1C1F1430AAC71D63562XXXXXX",
  "Status": {
    "Code": {
      "Code": 190,
      "Description": "Success"
    },
    "SubCode": {
      "Code": "S990",
      "Description": "The request was successful."
    },
    "DateTime": "2020-06-03T14:42:43"
  },
  "RequiredAction": null,
  "Services": null,
  "CustomParameters": null,
  "AdditionalParameters": null,
  "RequestErrors": null,
  "Invoice": "testinvoice 123",
  "ServiceCode": "bancontactmrcash",
  "IsTest": true,
  "Currency": "EUR",
  "AmountDebit": 10.0,
  "TransactionType": "C094",
  "MutationType": 1,
  "RelatedTransactions": null,
  "ConsumerMessage": null,
  "Order": null,
  "IssuingCountry": null,
  "StartRecurrent": false,
  "Recurring": false,
  "CustomerName": null,
  "PayerHash": null,
  "PaymentKey": "1E3F1CCEFE394410904AD41146XXXXXX"
}

PayRecurring Push

Parameters

Example push

{
   "Transaction":{
      "Key":"CA9A4CB1C1F1430AAC71D63562XXXXXX",
      "Invoice":"testinvoice 123",
      "ServiceCode":"bancontactmrcash",
      "Status":{
         "Code":{
            "Code":190,
            "Description":"Success"
         },
         "SubCode":{
            "Code":"S990",
            "Description":"The request was successful."
         },
         "DateTime":"2020-06-03T14:42:43"
      },
      "IsTest":true,
      "Order":null,
      "Currency":"EUR",
      "AmountDebit":10.0,
      "TransactionType":"C094",
      "Services":null,
      "CustomParameters":null,
      "AdditionalParameters":null,
      "MutationType":1,
      "RelatedTransactions":null,
      "IsCancelable":false,
      "IssuingCountry":null,
      "StartRecurrent":false,
      "Recurring":false,
      "CustomerName":null,
      "PayerHash":null,
      "PaymentKey":"1E3F1CCEFE394410904AD41146XXXXXX"
   }
}

PayOneClick

PayOneClick is a Wallet Initiated Payment. PayOneClick should only be used if the consumer is present. If the consumer is not present, the action PayRecurring should be used instead.

Parameters

PayOneClick Request

Example request

{
  "Currency": "EUR",
  "AmountDebit": 10.00,
  "Invoice": "testinvoice 123",
  "OriginalTransactionKey": "91D08EC01F414926A4CA29C059XXXXXX",
  "ClientIP": {
      "Type": 0,
      "Address": "0.0.0.0"
   },
  "Services": {
    "ServiceList": [
      {
        "Name": "bancontactmrcash",
        "Action": "PayOneClick"
      }
    ]
  }
}

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

Example response

{
  "Key": "CA9A4CB1C1F1430AAC71D63562XXXXXX",
  "Status": {
    "Code": {
      "Code": 190,
      "Description": "Success"
    },
    "SubCode": {
      "Code": "S990",
      "Description": "The request was successful."
    },
    "DateTime": "2020-06-03T14:42:43"
  },
  "RequiredAction": null,
  "Services": null,
  "CustomParameters": null,
  "AdditionalParameters": null,
  "RequestErrors": null,
  "Invoice": "testinvoice 123",
  "ServiceCode": "bancontactmrcash",
  "IsTest": true,
  "Currency": "EUR",
  "AmountDebit": 10.0,
  "TransactionType": "C094",
  "MutationType": 1,
  "RelatedTransactions": null,
  "ConsumerMessage": null,
  "Order": null,
  "IssuingCountry": null,
  "StartRecurrent": false,
  "Recurring": false,
  "CustomerName": null,
  "PayerHash": null,
  "PaymentKey": "1E3F1CCEFE394410904AD41146XXXXXX"
}

PayOneClick Push

Parameters

Example push

{
   "Transaction":{
      "Key":"CA9A4CB1C1F1430AAC71D63562XXXXXX",
      "Invoice":"testinvoice 123",
      "ServiceCode":"bancontactmrcash",
      "Status":{
         "Code":{
            "Code":190,
            "Description":"Success"
         },
         "SubCode":{
            "Code":"S990",
            "Description":"The request was successful."
         },
         "DateTime":"2020-06-03T14:42:43"
      },
      "IsTest":true,
      "Order":null,
      "Currency":"EUR",
      "AmountDebit":10.0,
      "TransactionType":"C093",
      "Services":null,
      "CustomParameters":null,
      "AdditionalParameters":null,
      "MutationType":1,
      "RelatedTransactions":null,
      "IsCancelable":false,
      "IssuingCountry":null,
      "StartRecurrent":false,
      "Recurring":false,
      "CustomerName":null,
      "PayerHash":null,
      "PaymentKey":"1E3F1CCEFE394410904AD41146XXXXXX"
   }
}

Authenticate

The Authenticate action can be used to Authorize a Bancontact transaction, and immediately cancel the authorization. This can be used to create a Token that can be used for future WIP transactions, or recurring SDD's.

Parameters

Service-specific parameters

ParameterTypeRequiredDescription
SaveTokenStringN/ASaveToken is the parameter used to indicate if a token is to be created, that can be used for Wallet Initiated Payments in the future.

Authenticate Request

{
  "Currency": "EUR",
  "AmountDebit": 0.02,
  "Description": "Bancontact Authenticate SaveToken",
  "Invoice": "Bancontact Authenticate SaveToken",
  "Services": {
    "ServiceList": [
      {
        "Name": "Ban

contactMrcash",
        "Action": "Authenticate",
        "Parameters": [
          {
            "Name": "savetoken",
            "Value": "false"
          }
        ]
      }
    ]
  }
}

Authenticate Response

Parameters

Basic parameters

Here you can find all basic parameters

{
    "Key": "FA398DEBE647465C858F153DXXXXXXXX",
    "Status": {
        "Code": {
            "Code": 790,
            "Description": "Pending input"
        },
        "SubCode": null,
        "DateTime": "2021-09-29T13:34:55"
    },
    "RequiredAction": {
        "RedirectURL": "https://checkout.buckaroo.nl/html/redirect.ashx?r=FDC95168D5914D94BD29D0E5XXXXXXXX",
        "RequestedInformation": null,
        "PayRemainderDetails": null,
        "Name": "Redirect",
        "TypeDeprecated": 0
    },
    "Services": null,
    "CustomParameters": null,
    "AdditionalParameters": null,
    "RequestErrors": null,
    "Invoice": "Bancontact Authenticate",
    "ServiceCode": null,
    "IsTest": false,
    "Currency": "EUR",
    "AmountDebit": 0.02,
    "TransactionType": null,
    "MutationType": 0,
    "RelatedTransactions": null,
    "ConsumerMessage": null,
    "Order": null,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": false,
    "CustomerName": null,
    "PayerHash": null,
    "PaymentKey": null
}

Authenticate Push

Parameters

{
   "Transaction":{
      "Key":"FA398DEBE647465C858F153DXXXXXXXX",
      "Invoice":"Bancontact Authenticate",
      "ServiceCode":"bancontactmrcash",
      "Status":{
         "Code":{
            "Code":190,
            "Description":"Success"
         },
         "SubCode":null,
         "DateTime":"2021-09-29T13:34:55"
      },
      "IsTest":false,
      "Order":null,
      "Currency":"EUR",
      "AmountDebit":0.02,
      "TransactionType":"I091",
      "Services":[
         {
            "Name":"bancontactmrcash",
            "Action":null,
            "Parameters":[
               {
                  "Name":"QrCodeData",
                  "Value":"BEP://1TMA.BUCKAROO.IO/V1/BEP$LYZ5MRI6RXF7XB7TXXXXXXXX"
               },
               {
                  "Name":"UrlIntentData",
                  "Value":"BEPGenApp://DoTx?TransId=1TMA.BUCKAROO.IO/V1/BEP$LYZ5MRI6RXF7XB7TXXXXXXXX"
               },
               {
                  "Name":"QrUrl",
                  "Value":"https://static.buckaroo.nl/qr/v1/QkVQOi8vMVRNQS5CVUNLQVJPTy5JTy9WMS9CRVAkTFlaNU1SSTZSWEY3WEI3VFZVXXXXXXXX"
               },
               {
                  "Name":"InputType",
                  "Value":"QrCode"
               },
               {
                  "Name":"CustomerIban",
                  "Value":"BE00000000000001"
               },
               {
                  "Name":"CustomerBic",
                  "Value":"KREDBEBB"
               }
            ],
            "VersionAsProperty":1
         }
      ],
      "CustomParameters":null,
      "AdditionalParameters":null,
      "MutationType":3,
      "RelatedTransactions":null,
      "IsCancelable":false,
      "IssuingCountry":null,
      "StartRecurrent":true,
      "Recurring":false,
      "CustomerName":"Customer Unknown",
      "PayerHash":null,
      "PaymentKey":null,
      "Description":"Bancontact Authenticate"
   }
}