Requests

Pay

The Pay action is the default action. The action is used to perform a single payment with a credit card.

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.

Base JSON request

📘

Note

Use the base request as instructed on this page.

Parameters

Basic Parameters:

  • Find basic parameters here.

Pay Request

Parameters

Service-specific parameters
ParameterTypeRequiredRecommendedDescription
ClientIPStringNoYesThe IP address of the client. It's recommended to send this in the request so it is possible to block a user based on their IP.

Example request

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

Pay Response

Parameters

Example response

{
    "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
}

Pay Push

Parameters

Service-specific parameters
ParameterTypeRequiredRecommendedDescription
CardNumberEndingStringN/AN/ALast 4 digits of the credit card number.
EnrolledStringN/AN/AThe enrolled status.

Example push

{
  "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

❗️

Important

Client-side encryption integrations are only supported when you are PCI SAQ-A EP compliant. More information can be found here: Self-Assessment Questionnaire A-EP and Attestation of Compliance.

For a regular Pay action, the consumer has to be redirected to our checkout to fill in their 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 consumer's card data on your webshop. All you have to do is encrypt the card data with our Client-Side Encryption SDK and call this action with the "EncryptedCardData" parameter. The value of this parameter is the result of the "encryptCardData" function in our CSE SDK.


PayEncrypted Request

Parameters

Service-specific parameters
ParameterTypeRequiredRecommendedDescription
EncryptedCardDataStringYesN/AThe 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": "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=="
          }
        ]
      }
    ]
  }
}

PayEncrypted Response

The response is the same as the Pay response.

Parameters

Example response

{
  "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"
}

PayEncrypted Push

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

Parameters

Service-specific parameters
ParameterTypeRequiredRecommendedDescription
ClientSideEncryptionVersionStringYesN/AThe Client-Side Encryption version that is used to encrypt the card data.

Example push

{
   "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 to have to fill in all 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 consumer's 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.

PayWithSecurityCode Request

Parameters

Service-Specific Parameters
ParameterTypeRequiredRecommendedDescription
EncryptedSecurityCodeStringYesYesThe value of this parameter is the result of the "encryptSecurityCode" function of our Client-Side Encryption SDK.
OriginalTransactionKeyStringYesTransaction key of the initial transaction from where the card data should be copied. Note: This is a basic parameter, not a service-specific parameter.

Example Request

{
  "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=="
          }
        ]
      }
    ]
  }
}

PayWithSecurityCode Response

The response is the same as the Pay response.

Parameters

Example Response

{
    "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"
}

PayWithSecurityCode Push

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

Parameters

Service-Specific Parameters
ParameterTypeRequiredRecommendedDescription
ClientSideEncryptionVersionStringN/AN/AThe Client-Side Encryption version that is used to encrypt the security code.

Example Push

{
    "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

Refund Request

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.

Parameters

Service-Specific Parameters

ParameterTypeRequiredRecommendedDescription
OriginalTransactionKeyStringYesN/ATransaction key of the payment that needs to be refunded. Note: This is a basic parameter, not a service-specific parameter.

Example Request

{
  "Currency": "EUR",
  "AmountCredit": 1.00,
  "Invoice": "testinvoice 123",
  "OriginalTransactionKey": "13FAF43579D94F5FB8119A6819XXXXXX",
  "Services": {
    "ServiceList": [
      {
        "Name": "mastercard",
        "Action": "Refund"
      }
    ]
  }
}

Refund Response

Parameters

Example Response

{
    "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"
}

Refund Push

Parameters

Example Push

{
  "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 credit card. Referring to this authorization, it is then possible at a later time to perform one or more charges on the customer's credit card 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 the card. A recurrent payment is also possible on an authorisation. In that case, add the basic parameter StartRecurrent with the value "true" in your request.

Parameters

Service-Specific Parameters

ParameterTypeRequiredRecommendedDescription
ClientIPStringNoYesThe IP address of the client. It's recommended to send this in the request so it is possible to block a user based on their IP.

Example Request

{
  "Currency": "EUR",
  "AmountDebit": 10.00,
  "Invoice": "testinvoice 123",
  "ClientIP": {
    "Type": 0,
    "Address": "0.0.0.0"
  },
  "Services": {
    "ServiceList": [
      {
        "Name": "mastercard",
        "Action": "Authorize"
      }
    ]
  }
}

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

Parameters

Example Response

{
  "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
}

Authorize Push

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.

Parameters

Service-Specific Parameters
ParameterTypeRequiredRecommendedDescription
CardNumberEndingStringN/AN/ALast 4 digits of the credit card number.
AuthenticationStringN/AN/AAuthentication status
EnrolledStringN/AN/AThe enrolled status.
CardExpirationDateStringN/AN/AExpiration date of the used credit card.
MaskedCreditcardNumberStringN/AN/AThe credit card number (partially masked).

Example Push

{
  "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
  }
}

PreAuthorize

PreAuthorize is a Customer Initiated Transaction (CIT) action that places a hold (reservation) on the customer's card for the requested amount, without charging it. The reserved amount is charged later with a Capture call, or released with a CancelAuthorize call.

This action was introduced for in-app flows where the final amount is not known upfront (e.g. EV/fuel charging: reserve a maximum amount when the session starts, capture the actual amount when it ends).

PreAuthorize vs Authorize: both are CIT actions with the same request contract. The difference is that PreAuthorize is sent to the card schemes as a pre-authorization (an estimated-amount reservation with the expectation of a later capture for the final — possibly lower — amount), while Authorize is a final-amount authorization. The validity of the hold and the moment the unused reservation is released depend on the acquirer and card-scheme configuration. Use PreAuthorize whenever the capture amount may differ from the reserved amount.

The action is available on both the Visa and Mastercard services. The examples below use Mastercard; Visa works identically (only the transaction type differs — see the table below).

ActionVisaMastercard
PreAuthorizeI028I029
CaptureC800C805
CancelAuthorizeI801I806

Endpoint (test): https://testcheckout.buckaroo.nl/json/Transaction

Reserves the specified amount on the customer's card. The request contains no card parameters: the customer is redirected to the Buckaroo checkout page to enter the card details and complete 3-D Secure (the initial response is 790 Pending input with a RedirectURL). The resulting transaction key must be passed as OriginalTransactionKey in the follow-up Capture or CancelAuthorize call.

3-D Secure & SCA exemptions: as a CIT action, PreAuthorize uses the same SCA-exemption pipeline as Authorize: where a configured exemption applies (e.g. Trusted Beneficiary, TRA, Low Value) the frictionless path is attempted first, with a fallback to a 3-D Secure challenge when the issuer declines the exemption.

Note: PreAuthorize can also be combined with "StartRecurrent": "true" to mark the transaction as the start of a recurring payment series; subsequent PayRecurrent calls can then reference it with OriginalTransactionKey.

Example request

{
    "Currency": "EUR",
    "AmountDebit": 0.02,
    "Invoice": "Automatedtest_Mastercard_0001",
    "Description": "Automated test Mastercard",
    "ReturnURL": "https://www.buckaroo.nl",
    "ReturnURLCancel": "https://www.buckaroo.nl/annuleren",
    "ReturnURLError": "https://www.buckaroo.nl/mislukt",
    "ReturnURLReject": "https://www.buckaroo.nl/geweigerd",
    "Services": {
        "ServiceList": [
            {
                "Name": "Mastercard",
                "Action": "PreAuthorize",
                "Parameters": []
            }
        ]
    }
}

Example response

The initial response contains the redirect to the checkout page:

{
  "Key": "18212A9366664F29AA4CA1D97CXXXXXX",
  "Status": {
    "Code": {
      "Code": 790,
      "Description": "Pending input"
    },
    "SubCode": null,
    "DateTime": "2026-06-29T13:53:57"
  },
  "RequiredAction": {
    "RedirectURL": "https://testcheckout.buckaroo.nl/html/redirect.ashx?r=D7CC597FD86A472D9E70904CDBXXXXXX",
    "RequestedInformation": null,
    "PayRemainderDetails": null,
    "Name": "Redirect",
    "TypeDeprecated": 0
  },
  "Invoice": "Automatedtest_Mastercard_0001",
  "ServiceCode": "mastercard",
  "IsTest": true,
  "Currency": "EUR",
  "AmountDebit": 0.02,
  "StartRecurrent": false,
  "Recurring": false
}

After the customer enters the card details and completes 3-D Secure on the checkout page, the final status (e.g. 190 Success) is delivered via the push notification and the customer is returned to the ReturnURL.

PreAuthorize Push

Example push

{
  "Transaction": {
    "Key": "18212A9366664F29AA4CA1D97CXXXXXX",
    "Invoice": "Automatedtest_Mastercard_0001",
    "ServiceCode": "mastercard",
    "Status": {
      "Code": {
        "Code": 190,
        "Description": "Success"
      },
      "SubCode": null,
      "DateTime": "2026-06-29T13:55:49"
    },
    "IsTest": true,
    "Order": null,
    "Currency": "EUR",
    "AmountDebit": 0.02,
    "TransactionType": "I029",
    "Services": [
      {
        "Name": "mastercard",
        "Action": null,
        "Parameters": [
          {
            "Name": "CardNumberEnding",
            "Value": "0009"
          },
          {
            "Name": "CardExpirationDate",
            "Value": "2028-12"
          },
          {
            "Name": "MaskedCreditcardNumber",
            "Value": "513029******0009"
          },
          {
            "Name": "CVCResult",
            "Value": "C"
          },
          {
            "Name": "AVSResponse",
            "Value": "H"
          }
        ],
        "VersionAsProperty": 1
      }
    ],
    "MutationType": 3,
    "IsCancelable": true,
    "StartRecurrent": false,
    "Recurring": false,
    "CustomerName": "J. de Tester",
    "PayerHash": null,
    "PaymentKey": null,
    "Description": "Automated test Mastercard"
  }
}

Note: MutationType is 3 (Informational) — a pre-authorization reserves funds but does not move money, so no payment is created yet (PaymentKey is null). The transaction is cancelable as long as it has not been captured.

Capture

Charges (part of) a previously pre-authorized amount. The OriginalTransactionKey parameter is required and must contain the transaction key of the PreAuthorize transaction.

Partial capture is supported. Whether additional captures are allowed, and when the remaining reservation is released, depends on the underlying acquirer and card-scheme rules: via BAS/CCA only one capture is possible (a second capture returns "Not capturable"), while Worldpay allows multiple partial captures against the remaining reserved amount. Capturing more than the reserved amount is rejected ("Capture amount too large"). Cancel the remaining authorization with CancelAuthorize when no further capture is expected.

Example request

{
    "Currency": "EUR",
    "AmountDebit": 0.01,
    "Invoice": "Automatedtest_Mastercard_0001",
    "Description": "Mastercard Capture",
    "OriginalTransactionKey": "18212A9366664F29AA4CA1D97CXXXXXX",
    "Services": {
        "ServiceList": [
            {
                "Name": "Mastercard",
                "Action": "Capture"
            }
        ]
    }
}

Example response

{
  "Key": "99BC63BA36E3457BB9688AB68EXXXXXX",
  "Status": {
    "Code": {
      "Code": 190,
      "Description": "Success"
    },
    "SubCode": null,
    "DateTime": "2026-06-29T13:57:29"
  },
  "RequiredAction": null,
  "RelatedTransactions": [
    {
      "RelationType": "capture",
      "RelatedTransactionKey": "18212A9366664F29AA4CA1D97CXXXXXX"
    }
  ],
  "Services": [
    {
      "Name": "mastercard",
      "Action": null,
      "Parameters": [
        {
          "Name": "CardNumberEnding",
          "Value": "0009"
        },
        {
          "Name": "MaskedCreditcardNumber",
          "Value": "513029******0009"
        }
      ]
    }
  ],
  "Invoice": "Automatedtest_Mastercard_0001",
  "ServiceCode": "mastercard",
  "IsTest": true,
  "Currency": "EUR",
  "AmountDebit": 0.01,
  "TransactionType": "C805",
  "MutationType": 1,
  "StartRecurrent": false,
  "Recurring": false,
  "CustomerName": "J. de Tester",
  "Description": "Automated test Mastercard"
}

The Capture push follows the same structure as the PreAuthorize push, with the capture transaction type (C805 Mastercard / C800 Visa) and the capture's own transaction key.

CancelAuthorize

Releases the hold placed by a PreAuthorize transaction without charging the customer. The OriginalTransactionKey parameter is required.

Note: AmountCredit may be lower than the reserved amount (partial cancel), but only one CancelAuthorize is allowed per original transaction. A capture after a cancellation is rejected ("Capture not possible, authorization already cancelled").

Example request

{
    "Currency": "EUR",
    "AmountCredit": 0.01,
    "Invoice": "Visa_Cancel_Test",
    "Description": "Visa CancelAuthorize",
    "OriginalTransactionKey": "1137F3F3582C423FBBC996E15AXXXXXX",
    "Services": {
        "ServiceList": [
            {
                "Name": "Visa",
                "Action": "CancelAuthorize"
            }
        ]
    }
}

Example response

{
  "Key": "7CB73281776241C2B855304E42XXXXXX",
  "Status": {
    "Code": {
      "Code": 190,
      "Description": "Success"
    },
    "SubCode": null,
    "DateTime": "2026-06-30T11:38:12"
  },
  "RequiredAction": null,
  "RelatedTransactions": [
    {
      "RelationType": "cancel_authorize",
      "RelatedTransactionKey": "1137F3F3582C423FBBC996E15AXXXXXX"
    }
  ],
  "Invoice": "Visa_Cancel_Test",
  "ServiceCode": "visa",
  "IsTest": true,
  "Currency": "EUR",
  "AmountCredit": 0.01,
  "TransactionType": "I801",
  "MutationType": 3,
  "StartRecurrent": false,
  "Recurring": false,
  "Description": "Visa CancelAuthorize"
}

The CancelAuthorize push follows the same structure as the PreAuthorize push, with the cancel transaction type (I801 Visa / I806 Mastercard).

Status codes

CodeDescription
190Success — reservation placed / captured / released
490Failed — technical failure at the acquirer
690Rejected — rejected by the acquirer or card scheme
790Pending input — customer is being redirected (card entry / 3-D Secure)
791Pending processing — awaiting the acquirer's response

AuthorizeEncrypted

For a regular Authorize action, the consumer has to be redirected to our checkout to fill in their 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 consumer's card data on your webshop. All you have to do is encrypt the card data with our Client Side Encryption SDK and call this action with the "EncryptedCardData" parameter. The value of this parameter is the result of the "encryptCardData" function in our CSE SDK.

Authorize Request

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

Parameters

Service-Specific Parameters
ParameterTypeRequiredRecommendedDescription
EncryptedCardDataStringYesN/AThe value of this parameter is the result of the "encryptCardData" function of our CSE SDK

Example Request

{
  "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=="
          }
        ]
      }
    ]
  }
}

Authorize Response

The response is the same as the Authorize response.

Parameters

Service-Specific Parameters
ParameterTypeRequiredRecommendedDescription
EncryptedCardDataStringYesN/AThe value of this parameter is the result of the "encryptCardData" function of our CSE SDK

Example Response

{
  "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
}

Authorize Push

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

Parameters

Service-Specific Parameters
ParameterTypeRequiredRecommendedDescription
ClientSideEncryptionVersionStringYesN/AThe Client Side Encryption version that is used to encrypt the card data.

Example Push

{
  "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 to have to fill in all 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 and call this action with the "EncryptedSecurityCode" parameter. The value of this parameter is the result of the "encryptSecurityCode" function in our CSE SDK.

AuthorizeWithSecurityCode Request

The request is much like the Authorize request, except for the OriginalTransactionKey and EncryptedSecurityCode parameters.

Parameters

Service-Specific Parameters
ParameterTypeRequiredRecommendedDescription
EncryptedSecurityCodeStringYesN/AThe value of this parameter is the result of the "encryptSecurityCode" function of our CSE SDK.
OriginalTransactionKeyStringYesN/ATransaction key of the initial transaction from where the card data should be copied.

Example Request

{
  "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=="
          }
        ]
      }
    ]
  }
}

AuthorizeWithSecurityCode Response

The response is almost the same as the Authorize response, except for the ClientSideEncryptionVersion parameter.

Parameters

Example Response

{
    "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
}

AuthorizeWithSecurityCode Push

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

Parameters

Service-Specific Parameters
ParameterTypeRequiredRecommendedDescription
ClientSideEncryptionVersionStringYesN/AThe Client Side Encryption version that is used to encrypt the security code.

Example Push

{
    "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 does not need to perform this charge. The maximum capture amount is the amount of the previously requested Authorize.

Parameters

Service-Specific Parameters

ParameterTypeRequiredDescription
OriginalTransactionKeyStringYesTransaction key of the initial payment.

Example Request

{
  "Currency": "EUR",
  "AmountDebit": 1.00,
  "Invoice": "testinvoice 123",
  "OriginalTransactionKey": "571457E371FB494FB0E67C99CFXXXXXX",
  "Services": {
    "ServiceList": [
      {
        "Name": "mastercard",
        "Action": "Capture"
      }
    ]
  }
}

Capture Response

Example Response

{
  "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"
}

Capture Push

Parameters

Example Push

{
  "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"
  }
}


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.

PayRecurrent Request

Parameters

Service-Specific Parameters

ParameterTypeRequiredDescription
OriginalTransactionKeyStringYesTransaction key of the initial payment.

Example Request

{
   "Currency": "EUR",
   "AmountDebit": 10,
   "Invoice": "testinvoice 123",
   "OriginalTransactionKey": "80558FE1BE7F4B959E5C64907EXXXXXX",
   "Services": {
      "ServiceList": [
         {
            "Name": "mastercard",
            "Action": "PayRecurrent"
         }
      ]
   }
}

PayRecurrent Response

Parameters

Service-Specific Parameters

ParameterTypeRequiredDescription
CardNumberEndingStringYesThe last four digits of the used credit card.
CardExpirationDateStringNoThe expiration date of the used credit card.
MaskedCreditcardNumberStringNoThe credit card number (partially masked).

Example Response

{
   "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"
}

PayRecurrent Push

Parameters

Service-Specific Parameters

ParameterTypeRequiredDescription
CardNumberEndingStringYesThe last four digits of the used credit card.
CardExpirationDateStringNoThe expiration date of the used credit card.
MaskedCreditcardNumberStringNoThe credit card number (partially masked).

Example Push

{
   "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"
   }
}

PreAuthorizeRecurrent

Before you can send a PreAuthorizeRecurrent you must have an initial customer-initiated PreAuthorize transaction (CIT) on the card, sent with the basic parameter StartRecurrent set to true. This first transaction authenticates the shopper (3-D Secure), registers the card, starts the recurring mandate, and stores the scheme (network) transaction reference that every later MIT replays.

Initial registering request (once, per card)

{
  "Currency": "EUR",
  "AmountDebit": 0.10,
  "Invoice": "registration 123",
  "StartRecurrent": true,
  "Services": {
    "ServiceList": [
      {
        "Name": "mastercard",
        "Action": "PreAuthorize"
      }
    ]
  }
}

Keep the Key returned by this transaction — that value is the OriginalTransactionKey you pass to every subsequent PreAuthorizeRecurrent.

Note: if the original transaction did not store a valid scheme reference, a PreAuthorizeRecurrent is rejected with the message "Your token is invalid. Please initiate a new reference transaction." In that case, register the card again with a new StartRecurrent = true transaction.

The PreAuthorizeRecurrent action reserves (holds) an amount on a previously registered card as a Merchant-Initiated Transaction. No 3-D Secure is performed and the shopper does not need to be present. The reserved amount is captured later with a Capture, up to the reserved amount.

No card number, expiry, CVC or token is sent — the credentials are loaded from the original transaction referenced by OriginalTransactionKey. The service Name ("visa" / "mastercard") must match the original transaction's service.

Required basic parameters

ParameterTypeRequiredDescription
OriginalTransactionKeyStringYesTransaction key of the initial (StartRecurrent) transaction that registered the card.
AmountDebitNumberYesAmount to reserve. Captured later, in full or in part, with Capture.
CurrencyStringYesCurrency of the reservation.
InvoiceStringYesMerchant invoice number for this reservation.

Example request (Mastercard)

{
  "Currency": "EUR",
  "AmountDebit": 50.00,
  "Invoice": "fuel 456",
  "OriginalTransactionKey": "80558FE1BE7F4B959E5C64907EXXXXXX",
  "Services": {
    "ServiceList": [
      {
        "Name": "mastercard",
        "Action": "PreAuthorizeRecurrent"
      }
    ]
  }
}

Example request (Visa)

{
  "Currency": "EUR",
  "AmountDebit": 50.00,
  "Invoice": "fuel 456",
  "OriginalTransactionKey": "80558FE1BE7F4B959E5C64907EXXXXXX",
  "Services": {
    "ServiceList": [
      {
        "Name": "visa",
        "Action": "PreAuthorizeRecurrent"
      }
    ]
  }
}

Example response (Mastercard — funds reserved)

{
  "Key": "5C7012EEF3E84CAEAA50DBBCEDXXXXXX",
  "Status": {
    "Code": {
      "Code": 190,
      "Description": "Success"
    },
    "SubCode": {
      "Code": "S001",
      "Description": "Transaction successfully processed"
    },
    "DateTime": "2026-05-22T15:58:56"
  },
  "RequiredAction": null,
  "Services": [
    {
      "Name": "mastercard",
      "Action": null,
      "Parameters": [
        { "Name": "CardNumberEnding", "Value": "1234" },
        { "Name": "MaskedCreditcardNumber", "Value": "************1234" },
        { "Name": "CardExpirationDate", "Value": "2028-05" }
      ]
    }
  ],
  "CustomParameters": null,
  "AdditionalParameters": null,
  "RequestErrors": null,
  "Invoice": "fuel 456",
  "ServiceCode": "mastercard",
  "IsTest": true,
  "Currency": "EUR",
  "AmountDebit": 50.0,
  "TransactionType": "I276",
  "MutationType": 1,
  "RelatedTransactions": [
    {
      "RelationType": "recurring",
      "RelatedTransactionKey": "80558FE1BE7F4B959E5C64907EXXXXXX"
    }
  ],
  "ConsumerMessage": null,
  "Order": null,
  "IssuingCountry": null,
  "StartRecurrent": false,
  "Recurring": true,
  "CustomerName": "John Smith",
  "PayerHash": null,
  "PaymentKey": null
}

Note: transaction type Mastercard PreAuthorizeRecurrent = I276, Visa PreAuthorizeRecurrent = I275. The Visa response is identical in shape with "ServiceCode": "visa" and "TransactionType": "I275".

PaymentKey is null: a PreAuthorizeRecurrent is a reservation (Transaction), not a Payment. "Recurring": true marks it as a merchant-initiated recurring charge.

PreAuthorizeRecurrent Push

Example push

{
  "Transaction": {
    "Key": "5C7012EEF3E84CAEAA50DBBCEDXXXXXX",
    "Invoice": "fuel 456",
    "ServiceCode": "mastercard",
    "Status": {
      "Code": {
        "Code": 190,
        "Description": "Success"
      },
      "SubCode": {
        "Code": "S001",
        "Description": "Transaction successfully processed"
      },
      "DateTime": "2026-05-22T16:00:04"
    },
    "IsTest": true,
    "Order": null,
    "Currency": "EUR",
    "AmountDebit": 50.0,
    "TransactionType": "I276",
    "Services": [
      {
        "Name": "mastercard",
        "Action": null,
        "Parameters": [
          { "Name": "CardNumberEnding", "Value": "1234" },
          { "Name": "MaskedCreditcardNumber", "Value": "************1234" },
          { "Name": "CardExpirationDate", "Value": "2028-05" }
        ]
      }
    ],
    "CustomParameters": null,
    "AdditionalParameters": null,
    "MutationType": 1,
    "RelatedTransactions": [
      {
        "RelationType": "recurring",
        "RelatedTransactionKey": "80558FE1BE7F4B959E5C64907EXXXXXX"
      }
    ],
    "IsCancelable": true,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": true,
    "CustomerName": "John Smith",
    "PayerHash": null,
    "PaymentKey": null
  }
}

Output parameters

ParameterTypeRequiredDescription
CardNumberEndingStringYesThe last four digits of the registered card.
MaskedCreditcardNumberStringNoThe card number, partially masked.
CardExpirationDateStringNoThe expiration date of the registered card ("yyyy-MM").

Capturing the reservation

A PreAuthorizeRecurrent only holds funds. To settle, send a normal Capture using the Key of the PreAuthorizeRecurrent transaction as the OriginalTransactionKey (NOT the key of the original registering transaction). Partial capture up to the reserved amount is supported.

{
  "Currency": "EUR",
  "AmountDebit": 42.75,
  "Invoice": "fuel 456",
  "OriginalTransactionKey": "5C7012EEF3E84CAEAA50DBBCEDXXXXXX",
  "Services": {
    "ServiceList": [
      {
        "Name": "mastercard",
        "Action": "Capture"
      }
    ]
  }
}

See the existing Capture section for the full Capture response and push payloads; Capture behaves the same whether the reservation came from Authorize or from PreAuthorizeRecurrent.


Did this page help you?