Requests

Pay

The default action for PayPal is Pay. This action has no required input. Optional input includes the PayPal account e-mail address of the consumer, a PayPal page style and/or a Billing Agreement Description. Upon receiving the request, the consumer will be redirected to PayPal for verification and confirmation of the payment and/or billing agreement. A successful payment will include the PayPal account status of the consumer (e.g. verified or unverified), the notetext (if entered by the consumer at PayPal under ‘note to seller’), his e-mail address used as PayPal account, and the country of the consumer.

Base JSON request

Use the base request as instructed on this page

Pay request


Service specific parameters

ParameterTypeRequiredRecommendedDescription
BuyerEmailStringNoN/AE-mail address the consumer uses for his PayPal account.
ProductNameStringNoN/AIn the Paypal payment pages, an overview is shown containing the payment details. If no productname is provided the description is shown there as productname. If a productname is provided, the Productname is shown with the description as a product description.
BillingAgreementDescriptionStringNoN/AA description used for a billing agreement. Provide this if performing recurrent billing. If not provided, the transaction description is used for both the initial payment and the billing agreement. Make sure the description is an accurate depiction of the subscription or service (e.g. ‘2 Year subscription for 24 issues of Magazine X’). This can be 127 characters max.
PageStyleStringNoN/AThe page style as defined in the merchant PayPal account.
startrecurrentbooleanNoN/ASet startrecurrent to true to start the first transaction in a series of recurrent transactions. This will require the consumer to accept a billing agreement when performing the initial transaction. Please note: This is a basic request variable, not a service specific variable.
PayPalOrderIdStringNoN/APayPal Order ID, required for the implementation of the Express Checkout functionality. Also see Client SDK - PayPal Express Checkout

Example request

{
  "Currency": "EUR",
  "AmountDebit": 10.00,
  "Invoice": "testinvoice 123",
  "Services": {
    "ServiceList": [
      {
        "Name": "paypal",
        "Action": "Pay",
        "Parameters": [
          {
            "Name": "PayPalOrderId",
            "Value": "XXXXXX"
          }
        ]
      }
    ]
  }
}
 

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.



Example response

{
  "Key": "2D04704995B74D679AACC59F87XXXXXX",
  "Status": {
    "Code": {
      "Code": 791,
      "Description": "Pending processing"
    },
    "SubCode": {
      "Code": "S002",
      "Description": "An additional action is required: PayPal ExpressCheckout"
    },
    "DateTime": "2017-03-28T15:58:56"
  },
  "RequiredAction": {
    "RedirectURL": "https://testcheckout.buckaroo.nl/html/redirect.ashx?r=D3490B0DF2454F46A1D0E80065XXXXXX",
    "RequestedInformation": null,
    "PayRemainderDetails": null,
    "Name": "Redirect",
    "TypeDeprecated": 0
  },
  "Services": [
    {
      "Name": "paypal",
      "Action": null,
      "Parameters": [
        {
          "Name": "orderId",
          "Value": "3C786053MK04XXXXX"
        }
      ]
    }
  ],
  "Services": null,
  "CustomParameters": null,
  "AdditionalParameters": null,
  "RequestErrors": null,
  "Invoice": "testinvoice 123",
  "ServiceCode": "paypal",
  "IsTest": true,
  "Currency": "EUR",
  "AmountDebit": 10.0,
  "TransactionType": "V010",
  "MutationType": 2,
  "RelatedTransactions": null,
  "ConsumerMessage": null,
  "Order": null,
  "IssuingCountry": null,
  "StartRecurrent": false,
  "Recurring": false,
  "CustomerName": null,
  "PayerHash": null,
  "PaymentKey": "9E66009180A245F99987E4972AXXXXXX"
}

Pay push

Parameters

Service specific parameters

ParameterTypeRequiredRecommendedDescription
payerStatusStringN/AN/AThe account status of the consumers PayPal account. Can be ‘Verified’ or ‘Unverified’
noteTextStringN/AN/AThe text a consumer can optionally enter at the PayPal payment page during the acceptance of the payment.
payerEmailStringN/AN/AThe email address of the PayPal account of the consumer.
payerCountryStringN/AN/AThe countrycode of the consumer (2-letter ISO country code, e.g. NL)
payerfirstnameStringN/AN/AThe first name of the PayPal account of the consumer.
payerlastnameStringN/AN/AThe last name of the PayPal account of the consumer.
payertransactionidStringN/AN/AThe unique number given by PayPal.

Example push

{
  "Transaction": {
    "Key": "2D04704995B74D679AACC59F87XXXXXX",
    "Invoice": "testinvoice 123",
    "ServiceCode": "paypal",
    "Status": {
      "Code": {
        "Code": 190,
        "Description": "Success"
      },
      "SubCode": {
        "Code": "P904",
        "Description": "The PayPal payment has been completed."
      },
      "DateTime": "2017-03-28T16:00:04"
    },
    "IsTest": true,
    "Order": null,
    "Currency": "EUR",
    "AmountDebit": 10,
    "TransactionType": "V010",
    "Services": [
      {
        "Name": "paypal",
        "Action": null,
        "Parameters": [
          {
            "Name": "payerEmail",
            "Value": "[email protected]"
          },
          {
            "Name": "payerCountry",
            "Value": "NL"
          },
          {
            "Name": "payerStatus",
            "Value": "unverified"
          },
          {
            "Name": "payerFirstname",
            "Value": "John"
          },
          {
            "Name": "payerLastname",
            "Value": "Smith"
          },
          {
            "Name": "paypalTransactionID",
            "Value": "7BS177612A528273"
          }
        ],
        "VersionAsProperty": 1
      }
    ],
    "CustomParameters": null,
    "AdditionalParameters": null,
    "MutationType": 2,
    "RelatedTransactions": null,
    "IsCancelable": false,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": false,
    "CustomerName": "John Smith",
    "PayerHash": null,
    "PaymentKey": "9E66009180A245F99987E4972AXXXXXX"
  }
}

paypalTransactionID is preserved for backwards compatibility. Its value depends on the transaction type it appears on: the PayPal Authorization ID on Authorize transactions, the PayPal Capture ID on Capture transactions, and the PayPal Refund ID on Refund transactions. New integrations should prefer the type-specific fields paypalAuthorizeId, paypalCaptureId and paypalRefundId.

Authorize

The Authorize action reserves funds on the buyer's PayPal account without moving them. The reserved amount stays valid for up to 29 days; during that window the merchant can capture the funds (in one full capture, one partial capture, or several partial captures that add up to the authorized amount) or release them by sending a CancelAuthorize.


Authorize request

An Authorize request is similar to a Pay request. The difference is the action name. For Express Checkout / SDK flow, include PayPalOrderId.

Parameters

ParameterTypeRequiredDescription
BuyerEmailStringNoE-mail address the consumer uses for his PayPal account.
ProductNameStringNoDisplay name shown on PayPal payment pages alongside the description.
BillingAgreementDescriptionStringNoA description used for a billing agreement (127 characters max).
PageStyleStringNoThe page style as defined in the merchant PayPal account.
PayPalOrderIdStringNoPayPal Order ID. Required for the Express Checkout (SDK) flow; omit it for the standard redirect flow. See the Client SDK.

Example request (redirect flow)

{
    "Currency": "EUR",
    "AmountDebit": 10.00,
    "Invoice": "testinvoice 123",
    "Services": {
      "ServiceList": [
        {
          "Name": "paypal",
          "Action": "Authorize"
        }
      ]
    }
  }

Example request (Express Checkout / SDK flow)

{
    "Currency": "EUR",
    "AmountDebit": 10.00,
    "Invoice": "testinvoice 123",
    "Services": {
      "ServiceList": [
        {
          "Name": "paypal",
          "Action": "Authorize",
          "Parameters": [
            {
              "Name": "PayPalOrderId",
              "Value": "3C786053MK04XXXXX"
            }
          ]
        }
      ]
    }
  }

Authorize Response

Example response (redirect flow — buyer must still approve at PayPal)

{
    "Key": "8E04704995B74D679AACC59F87XXXXXX",
    "Status": {
      "Code": {
        "Code": 791,
        "Description": "Pending processing"
      },
      "SubCode": {
        "Code": "S002",
        "Description": "An additional action is required: PayPal ExpressCheckout"
      },
      "DateTime": "2026-05-22T15:58:56"
    },
    "RequiredAction": {
      "RedirectURL": "https://testcheckout.buckaroo.nl/html/redirect.ashx?r=D3490B0DF2454F46A1D0E80065XXXXXX",
      "RequestedInformation": null,
      "PayRemainderDetails": null,
      "Name": "Redirect",
      "TypeDeprecated": 0
    },
    "Services": [
      {
        "Name": "paypal",
        "Action": null,
        "Parameters": [
          {
            "Name": "orderId",
            "Value": "3C786053MK04XXXXX"
          }
        ]
      }
    ],
    "CustomParameters": null,
    "AdditionalParameters": null,
    "RequestErrors": null,
    "Invoice": "testinvoice 123",
    "ServiceCode": "paypal",
    "IsTest": true,
    "Currency": "EUR",
    "AmountDebit": 10.0,
    "TransactionType": "I154",
    "MutationType": 2,
    "RelatedTransactions": null,
    "ConsumerMessage": null,
    "Order": null,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": false,
    "CustomerName": null,
    "PayerHash": null,
    "PaymentKey": "9E66009180A245F99987E4972AXXXXXX"
  }

Example response (Express Checkout / SDK flow — buyer already approved)

{
    "Key": "8E04704995B74D679AACC59F87XXXXXX",
    "Status": {
      "Code": {
        "Code": 190,
        "Description": "Success"
      },
      "SubCode": null,
      "DateTime": "2026-05-22T15:58:56"
    },
    "RequiredAction": null,
    "Services": [
      {
        "Name": "paypal",
        "Action": null,
        "Parameters": [
          { "Name": "orderId",             "Value": "3C786053MK04XXXXX"   },
          { "Name": "intent",              "Value": "Authorize"           },
          { "Name": "paypalAuthorizeId",   "Value": "5O190127TN364715T"   },
          { "Name": "paypalTransactionID", "Value": "5O190127TN364715T"   },
          { "Name": "payerEmail",          "Value": "[email protected]" },
          { "Name": "payerFirstname",      "Value": "John"                },
          { "Name": "payerLastname",       "Value": "Smith"               },
          { "Name": "CustomerName",        "Value": "John Smith"          },
          { "Name": "payerCountry",        "Value": "NL"                  },
          { "Name": "address_line_1",      "Value": "1 Main St"           },
          { "Name": "address_line_2",      "Value": "Apt 2"               },
          { "Name": "admin_area_2",        "Value": "Amsterdam"           },
          { "Name": "postal_code",         "Value": "1011AA"              },
          { "Name": "VersionAsProperty",   "Value": "2"                   }
        ]
      }
    ],
    "CustomParameters": null,
    "AdditionalParameters": null,
    "RequestErrors": null,
    "Invoice": "testinvoice 123",
    "ServiceCode": "paypal",
    "IsTest": true,
    "Currency": "EUR",
    "AmountDebit": 10.0,
    "TransactionType": "I154",
    "MutationType": 3,
    "RelatedTransactions": null,
    "ConsumerMessage": null,
    "Order": null,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": false,
    "CustomerName": "John Smith",
    "PayerHash": null,
    "PaymentKey": null
  }

Authorize Push

Example push

{
    "Transaction": {
      "Key": "8E04704995B74D679AACC59F87XXXXXX",
      "Invoice": "testinvoice 123",
      "ServiceCode": "paypal",
      "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": 10.0,
      "TransactionType": "I154",
      "Services": [
        {
          "Name": "paypal",
          "Action": null,
          "Parameters": [
            { "Name": "orderId",             "Value": "3C786053MK04XXXXX"   },
            { "Name": "intent",              "Value": "Authorize"           },
            { "Name": "paypalAuthorizeId",   "Value": "5O190127TN364715T"   },
            { "Name": "paypalTransactionID", "Value": "5O190127TN364715T"   },
            { "Name": "payerEmail",          "Value": "[email protected]" },
            { "Name": "payerCountry",        "Value": "NL"                  },
            { "Name": "payerFirstname",      "Value": "John"                },
            { "Name": "payerLastname",       "Value": "Smith"               },
            { "Name": "CustomerName",        "Value": "John Smith"          },
            { "Name": "address_line_1",      "Value": "1 Main St"           },
            { "Name": "admin_area_2",        "Value": "Amsterdam"           },
            { "Name": "postal_code",         "Value": "1011AA"              },
            { "Name": "VersionAsProperty",   "Value": "2"                   }
          ]
        }
      ],
      "CustomParameters": null,
      "AdditionalParameters": null,
      "MutationType": 2,
      "RelatedTransactions": null,
      "IsCancelable": true,
      "IssuingCountry": null,
      "StartRecurrent": false,
      "Recurring": false,
      "CustomerName": "John Smith",
      "PayerHash": null,
      "PaymentKey": "9E66009180A245F99987E4972AXXXXXX"
    }
  }

Parameters

ParameterTypeDescription
orderIdStringPayPal Order ID. Set on the Authorize and inherited onto Capture transactions. Not present on CancelAuthorize or Refund.
intentString"Authorize" for transactions created via this action. Used by Buckaroo to route the confirm flow.
paypalAuthorizeIdStringPayPal Authorization ID. Use this value when reconciling against PayPal.
paypalTransactionIDStringMirrors paypalAuthorizeId on Authorize transactions. Kept for backwards compatibility with existing integrations.
payerEmailStringE-mail address of the PayPal account that approved the authorization.
payerFirstnameStringFirst name of the buyer as returned by PayPal.
payerLastnameStringLast name of the buyer as returned by PayPal.
payerCountryStringISO country code of the buyer's PayPal account.
CustomerNameStringConcatenation of payerFirstname and payerLastname, as it appears in Plaza.
address_line_1StringFirst line of the buyer's shipping address (only present when PayPal returns one).
address_line_2StringSecond line of the buyer's shipping address (only present when PayPal returns one).
admin_area_1StringRegion/state of the buyer's shipping address (only present when PayPal returns one).
admin_area_2StringCity or locality of the buyer's shipping address (only present when PayPal returns one).
postal_codeStringPostal code of the buyer's shipping address (only present when PayPal returns one).

AuthorizeRecurrent

PayPal on Buckaroo supports merchant-initiated (MIT) recurring authorizations. This allows a merchant to reserve funds on a customer's PayPal account for follow-up transactions without any customer interaction (no PayPal login, no redirect).

The flow consists of two parts:

  1. A first customer-initiated (CIT) Authorize with StartRecurrent=true. The customer logs in at PayPal and approves both the authorization and a billing agreement. This establishes the recurring series.
  2. Subsequent merchant-initiated (MIT) AuthorizeRecurrent calls that reference the first transaction via OriginalTransactionKey (a reference transaction). These are processed server-to-server without a redirect, completing within seconds. This follows the same CIT/MIT action pattern as Pay / PayRecurrent.

Each authorization (CIT or MIT) can then be settled with Capture or released with CancelAuthorize, exactly as described in the existing Authorize/Capture documentation.

Recurring authorization is supported on PayPal V2 only. Merchants on the legacy PayPal acquirer are unaffected.

Typical use case: a mobility/fuel app places a fixed authorization at the start of every session on the customer's stored PayPal account and captures the actual amount afterwards.


Starting the recurring series: Authorize with StartRecurrent (CIT)

The first transaction in the series is a regular Authorize with the basic request parameter StartRecurrent set to true. The customer is redirected to PayPal to log in and approve. On approval, PayPal creates a billing agreement which Buckaroo stores against the transaction.

Store the Key of this transaction. It is the OriginalTransactionKey (the "token") for all subsequent MIT authorizations in the series.

Please note: StartRecurrent is a basic request parameter, not a service-specific parameter.

Parameters

ParameterTypeRequiredDescription
StartRecurrentBooleanYes*Set to true to start the first transaction in a series of recurrent transactions. The customer accepts a billing agreement while approving this initial authorization. Basic request parameter, not service-specific. (*Required to start a recurring series.)
BuyerEmailStringNoE-mail address the consumer uses for his PayPal account.
ProductNameStringNoDisplay name shown on the PayPal payment pages.
BillingAgreementDescriptionStringNoDescription used for the billing agreement. Make sure it is an accurate depiction of the service (max 127 characters). If not provided, the transaction description is used.
PageStyleStringNoThe page style as defined in the merchant PayPal account.

Example request

{
  "Currency": "EUR",
  "AmountDebit": 10.00,
  "Invoice": "testinvoice 123",
  "StartRecurrent": true,
  "ReturnURL": "https://example.com/return",
  "ReturnURLCancel": "https://example.com/cancel",
  "PushURL": "https://example.com/push",
  "Services": {
    "ServiceList": [
      {
        "Name": "paypal",
        "Action": "Authorize"
      }
    ]
  }
}

Example response (customer must still approve at PayPal)

{
  "Key": "DD9EC655B5C8412EA37BBD67E0XXXXXX",
  "Status": {
    "Code": {
      "Code": 791,
      "Description": "Pending processing"
    },
    "SubCode": null,
    "DateTime": "2026-07-13T14:16:26"
  },
  "RequiredAction": {
    "RedirectURL": "https://testcheckout.buckaroo.nl/html/redirect.ashx?r=903DC5FF6BFB4D23A80FA5B3E8XXXXXX",
    "RequestedInformation": null,
    "PayRemainderDetails": null,
    "Name": "Redirect",
    "TypeDeprecated": 0
  },
  "Services": [
    {
      "Name": "paypal",
      "Action": null,
      "Parameters": [
        { "Name": "intent", "Value": "Authorize" }
      ]
    }
  ],
  "Invoice": "testinvoice 123",
  "ServiceCode": "paypal",
  "IsTest": true,
  "Currency": "EUR",
  "AmountDebit": 10.00,
  "TransactionType": "I154",
  "MutationType": 3,
  "StartRecurrent": true,
  "Recurring": false,
  "PaymentKey": null
}

Status flow: 790 (Pending input) -> 791 (Pending processing, redirect issued) -> 190 (Success, source: Confirm) once the customer approves at PayPal. Only intent=Authorize is returned at the redirect stage; after approval, the transaction carries the full authorization output parameters (intent, VersionAsProperty, paypalAuthorizeId, paypalTransactionID, payer details, CustomerName), delivered on the PushURL. The approval also places a real authorization for the CIT amount, which can be captured or cancelled like any other.

Store the Key of this transaction: it is the OriginalTransactionKey for all subsequent AuthorizeRecurrent transactions in the series.

Example push

{
  "Transaction": {
    "Key": "DD9EC655B5C8412EA37BBD67E0XXXXXX",
    "Invoice": "testinvoice 123",
    "ServiceCode": "paypal",
    "Status": {
      "Code": {
        "Code": 190,
        "Description": "Success"
      },
      "SubCode": null,
      "DateTime": "2026-07-13T14:17:07"
    },
    "IsTest": true,
    "Order": null,
    "Currency": "EUR",
    "AmountDebit": 10.00,
    "TransactionType": "I154",
    "Services": [
      {
        "Name": "paypal",
        "Action": null,
        "Parameters": [
          { "Name": "intent",              "Value": "Authorize"         },
          { "Name": "VersionAsProperty",   "Value": "2"                 },
          { "Name": "payerEmail",          "Value": "[email protected]" },
          { "Name": "payerCountry",        "Value": "NL"                },
          { "Name": "payerFirstname",      "Value": "John"              },
          { "Name": "payerLastname",       "Value": "Smith"             },
          { "Name": "paypalTransactionID", "Value": "67V38570BR921143N" },
          { "Name": "paypalAuthorizeId",   "Value": "1PH91131FE6753312" },
          { "Name": "CustomerName",        "Value": "John Smith"        }
        ]
      }
    ],
    "CustomParameters": null,
    "AdditionalParameters": null,
    "MutationType": 3,
    "RelatedTransactions": null,
    "IsCancelable": true,
    "IssuingCountry": null,
    "StartRecurrent": true,
    "Recurring": false,
    "CustomerName": "John Smith",
    "PayerHash": null,
    "PaymentKey": null
  }
}

Note StartRecurrent=true and MutationType 3 (Informational - an authorization does not move funds).


AuthorizeRecurrent request (MIT)

Once the series is established, follow-up authorizations are performed with the dedicated AuthorizeRecurrent action, referencing the initial transaction via OriginalTransactionKey. No customer interaction takes place: there is no redirect, and the transaction completes within seconds (final status via push).

The OriginalTransactionKey must always reference the initial CIT transaction (the one performed with StartRecurrent=true), never a previous MIT authorization.

Buckaroo performs the authorization against the stored PayPal billing agreement (a PayPal reference transaction).

Parameters

ParameterTypeRequiredDescription
OriginalTransactionKeyStringYesThe Key of the initial Authorize transaction that was performed with StartRecurrent=true (never a previous MIT authorization). 32-character hex string. Basic request parameter, not service-specific.
AmountDebitNumberYesAmount to authorize. Does not need to match the amount of the initial transaction.
CurrencyStringYesCurrency of the authorization. Does not need to match the initial transaction; must be supported by the merchant's PayPal account.
InvoiceStringYesMerchant invoice number. Use a unique value per authorization.

Example request

{
  "Currency": "EUR",
  "AmountDebit": 10.00,
  "Invoice": "testinvoice 124",
  "OriginalTransactionKey": "8E04704995B74D679AACC59F87XXXXXX",
  "PushURL": "https://example.com/push",
  "Services": {
    "ServiceList": [
      {
        "Name": "paypal",
        "Action": "AuthorizeRecurrent"
      }
    ]
  }
}

AuthorizeRecurrent Response

Example response

{
  "Key": "C0542119C210451FB6A86B33BBXXXXXX",
  "Status": {
    "Code": {
      "Code": 190,
      "Description": "Success"
    },
    "SubCode": null,
    "DateTime": "2026-07-13T14:17:36"
  },
  "RequiredAction": null,
  "Services": [
    {
      "Name": "paypal",
      "Action": null,
      "Parameters": [
        { "Name": "intent",              "Value": "Authorize"            },
        { "Name": "VersionAsProperty",   "Value": "2"                    },
        { "Name": "payerEmail",          "Value": "[email protected]"    },
        { "Name": "payerCountry",        "Value": "NL"                   },
        { "Name": "payerFirstname",      "Value": "John"                 },
        { "Name": "payerLastname",       "Value": "Smith"                },
        { "Name": "paypalTransactionID", "Value": "84J11307EJ035661E"    },
        { "Name": "paypalAuthorizeId",   "Value": "1H402693GC198115F"    },
        { "Name": "CustomerName",        "Value": "John Smith"           }
      ]
    }
  ],
  "CustomParameters": null,
  "AdditionalParameters": null,
  "RequestErrors": null,
  "Invoice": "testinvoice 124",
  "ServiceCode": "paypal",
  "IsTest": true,
  "Currency": "EUR",
  "AmountDebit": 10.00,
  "TransactionType": "I064",
  "MutationType": 3,
  "RelatedTransactions": null,
  "ConsumerMessage": null,
  "Order": null,
  "IssuingCountry": null,
  "StartRecurrent": false,
  "Recurring": true,
  "CustomerName": "John Smith",
  "PayerHash": null,
  "PaymentKey": null
}

The transaction briefly reports 790 (Pending input) before reaching 190 (Success) - poll via push, not the initial HTTP response.

Response parameters (service-specific)

ParameterTypeDescription
VersionAsPropertyString"2" - transaction processed on PayPal V2.
intentString"Authorize". Tags the transaction as authorize-only so the approval webhook does not auto-capture it.
paypalAuthorizeIdStringPayPal Authorization ID. Use this value when reconciling with PayPal.
paypalTransactionIDStringPayPal transaction id of this authorization.
payerEmailStringE-mail address of the PayPal account.
payerCountryStringISO country code of the buyer's PayPal account.
payerFirstnameStringFirst name of the buyer as returned by PayPal.
payerLastnameStringLast name of the buyer as returned by PayPal.
CustomerNameStringConcatenation of payerFirstname and payerLastname, as shown in Plaza.
ProtectionEligibilityTypeStringPayPal seller protection status. Only present when PayPal returns it.
address_line_1/2, admin_area_1/2, postal_codeStringBuyer address details. Only present when PayPal returns them.

AuthorizeRecurrent Push

Example push

{
  "Transaction": {
    "Key": "C0542119C210451FB6A86B33BBXXXXXX",
    "Invoice": "testinvoice 124",
    "ServiceCode": "paypal",
    "Status": {
      "Code": {
        "Code": 190,
        "Description": "Success"
      },
      "SubCode": null,
      "DateTime": "2026-07-13T14:17:36"
    },
    "IsTest": true,
    "Order": null,
    "Currency": "EUR",
    "AmountDebit": 10.00,
    "TransactionType": "I064",
    "Services": [
      {
        "Name": "paypal",
        "Action": null,
        "Parameters": [
          { "Name": "intent",              "Value": "Authorize"         },
          { "Name": "VersionAsProperty",   "Value": "2"                 },
          { "Name": "payerEmail",          "Value": "[email protected]" },
          { "Name": "payerCountry",        "Value": "NL"                },
          { "Name": "payerFirstname",      "Value": "John"              },
          { "Name": "payerLastname",       "Value": "Smith"             },
          { "Name": "paypalTransactionID", "Value": "84J11307EJ035661E" },
          { "Name": "paypalAuthorizeId",   "Value": "1H402693GC198115F" },
          { "Name": "CustomerName",        "Value": "John Smith"        }
        ]
      }
    ],
    "CustomParameters": null,
    "AdditionalParameters": null,
    "MutationType": 3,
    "RelatedTransactions": null,
    "IsCancelable": true,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": true,
    "CustomerName": "John Smith",
    "PayerHash": null,
    "PaymentKey": null
  }
}

Note Recurring=true and MutationType 3 (Informational - an authorization does not move funds).

AuthorizeRecurrent has its own transaction type (I064, "PayPal AuthorizeRecurrent"), distinct from the CIT Authorize (I154). Its reversal type is I155 (CancelAuthorize), the same as for a regular Authorize.


Capture and CancelAuthorize

Authorizations created via the MIT flow behave exactly like regular PayPal V2 authorizations:

  • Capture: settle (part of) the authorization by sending a Capture with OriginalTransactionKey set to the Key of the Authorize or AuthorizeRecurrent transaction (i.e. the MIT authorize Key, not the key of the initial StartRecurrent transaction). Full, partial and multiple captures are supported up to the originally authorized amount.
  • CancelAuthorize: void the remaining uncaptured amount and release the reserved funds back to the buyer.

Capture request example

{
  "Currency": "EUR",
  "AmountDebit": 7.50,
  "Invoice": "testinvoice 124",
  "OriginalTransactionKey": "C0542119C210451FB6A86B33BBXXXXXX",
  "Services": {
    "ServiceList": [
      {
        "Name": "paypal",
        "Action": "Capture"
      }
    ]
  }
}

See the Capture and CancelAuthorize sections below for the full specifications, responses and pushes.


Notes and constraints

  • Recurring authorization is supported on PayPal V2 only. Merchants on the legacy PayPal acquirer continue to use Pay, Refund and PayRecurrent as before.
  • An authorization is valid for up to 29 days. Capture promptly and send CancelAuthorize when the funds are no longer needed.
  • The OriginalTransactionKey must reference a successful PayPal transaction performed with StartRecurrent=true. If the customer cancels the billing agreement at PayPal, subsequent AuthorizeRecurrent transactions will fail; start a new series with a new StartRecurrent transaction.
  • The amount and currency of an AuthorizeRecurrent do not need to match the initial transaction.
  • The PushURL is the source of truth for the final transaction status. Status 190 (Success) is the only success state. A failed AuthorizeRecurrent returns status 490; the reason is available in the ErrorResponseMessage output parameter.

Capture

Capture request

Required basic parameters

ParameterTypeRequiredDescription
OriginalTransactionKeyStringYesThe Key of the Authorize transaction to capture against. Must be a 32-character hex string.
AmountDebitNumberYesAmount to capture. Must be greater than zero and not exceed the remaining authorized amount.
CurrencyStringYesCurrency of the capture transaction. Practically the same currency as the Authorize.
InvoiceStringYesMerchant invoice number. Can be the same as the Authorize or a new value chosen by the merchant.

Example request

{
    "Currency": "EUR",
    "AmountDebit": 10.00,
    "Invoice": "testinvoice 123",
    "OriginalTransactionKey": "8E04704995B74D679AACC59F87XXXXXX",
    "Services": {
      "ServiceList": [
        {
          "Name": "paypal",
          "Action": "Capture"
        }
      ]
    }
  }

Example Request: partial capture

{
    "Currency": "EUR",
    "AmountDebit": 4.00,
    "Invoice": "testinvoice 123",
    "OriginalTransactionKey": "8E04704995B74D679AACC59F87XXXXXX",
    "Services": {
      "ServiceList": [
        {
          "Name": "paypal",
          "Action": "Capture"
        }
      ]
    }
  }

Capture Response

Example response

{
    "Key": "C123FD5003FA407297A39C46D0XXXXXX",
    "Status": {
      "Code": {
        "Code": 190,
        "Description": "Success"
      },
      "SubCode": {
        "Code": "S001",
        "Description": "Transaction successfully processed"
      },
      "DateTime": "2026-05-22T17:12:11"
    },
    "RequiredAction": null,
    "Services": [
      {
        "Name": "paypal",
        "Action": null,
        "Parameters": [
          { "Name": "orderId",             "Value": "3C786053MK04XXXXX"   },
          { "Name": "paypalCaptureId",     "Value": "8XW27145C8910230F"   },
          { "Name": "paypalTransactionID", "Value": "8XW27145C8910230F"   },
          { "Name": "payerEmail",          "Value": "[email protected]" }
        ]
      }
    ],
    "CustomParameters": null,
    "AdditionalParameters": null,
    "RequestErrors": null,
    "Invoice": "testinvoice 123",
    "ServiceCode": "paypal",
    "IsTest": true,
    "Currency": "EUR",
    "AmountDebit": 10.0,
    "TransactionType": "V107",
    "MutationType": 2,
    "RelatedTransactions": [
      {
        "RelationType": "capture",
        "RelatedTransactionKey": "8E04704995B74D679AACC59F87XXXXXX"
      }
    ],
    "ConsumerMessage": null,
    "Order": null,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": false,
    "CustomerName": "John Smith",
    "PayerHash": null,
    "PaymentKey": "9E66009180A245F99987E4972AXXXXXX"
  }

Capture Push

Example push

{
    "Transaction": {
      "Key": "C123FD5003FA407297A39C46D0XXXXXX",
      "Invoice": "testinvoice 123",
      "ServiceCode": "paypal",
      "Status": {
        "Code": {
          "Code": 190,
          "Description": "Success"
        },
        "SubCode": {
          "Code": "P904",
          "Description": "The PayPal payment has been completed."
        },
        "DateTime": "2026-05-22T17:12:11"
      },
      "IsTest": true,
      "Order": null,
      "Currency": "EUR",
      "AmountDebit": 10.0,
      "TransactionType": "V107",
      "Services": [
        {
          "Name": "paypal",
          "Action": null,
          "Parameters": [
            { "Name": "orderId",             "Value": "3C786053MK04XXXXX"   },
            { "Name": "paypalCaptureId",     "Value": "8XW27145C8910230F"   },
            { "Name": "paypalTransactionID", "Value": "8XW27145C8910230F"   },
            { "Name": "payerEmail",          "Value": "[email protected]" },
            { "Name": "payerFirstname",      "Value": "John"                },
            { "Name": "payerLastname",       "Value": "Smith"               },
            { "Name": "payerCountry",        "Value": "NL"                  },
            { "Name": "address_line_1",      "Value": "1 Main St"           },
            { "Name": "admin_area_2",        "Value": "Amsterdam"           },
            { "Name": "postal_code",         "Value": "1011AA"              },
            { "Name": "VersionAsProperty",   "Value": "2"                   }
          ]
        }
      ],
      "CustomParameters": null,
      "AdditionalParameters": null,
      "MutationType": 2,
      "RelatedTransactions": [
        {
          "RelationType": "capture",
          "RelatedTransactionKey": "8E04704995B74D679AACC59F87XXXXXX"
        }
      ],
      "IsCancelable": false,
      "IssuingCountry": null,
      "StartRecurrent": false,
      "Recurring": false,
      "CustomerName": "John Smith",
      "PayerHash": null,
      "PaymentKey": "9E66009180A245F99987E4972AXXXXXX"
    }
  }

Parameters

ParameterTypeDescription
orderIdStringInherited from the Authorize. Identifies the PayPal Order this Capture belongs to.
paypalCaptureIdStringPayPal Capture ID. Use this value when reconciling against PayPal.
paypalTransactionIDStringMirrors paypalCaptureId on Capture transactions. Kept for backwards compatibility.
payerEmailStringE-mail address of the PayPal account that paid.
payerFirstnameStringFirst name of the buyer as returned by PayPal.
payerLastnameStringLast name of the buyer as returned by PayPal.
payerCountryStringISO country code of the buyer's PayPal account.
CustomerNameStringConcatenation of payerFirstname and payerLastname, as it appears in Plaza.
address_line_1StringFirst line of the buyer's shipping address (only present when PayPal returns one).
address_line_2StringSecond line of the buyer's shipping address (only present when PayPal returns one).
admin_area_1StringRegion/state of the buyer's shipping address (only present when PayPal returns one).
admin_area_2StringCity or locality of the buyer's shipping address (only present when PayPal returns one).
postal_codeStringPostal code of the buyer's shipping address (only present when PayPal returns one).

CancelAuthorize

The CancelAuthorize action voids an authorization, releasing the reserved funds back to the buyer. It can be sent on an authorization that is still fully open or one that has been partially captured; in the partial-capture case the remaining (uncaptured) amount is released. PayPal does not support partial voids - a single CancelAuthorize call always releases the entire remaining authorized amount. After cancellation the authorization can no longer be captured.

CancelAuthorize Request

Required basic parameters

ParameterTypeRequiredDescription
OriginalTransactionKeyStringYesThe Key of the Authorize transaction to void. Must be a 32-character hex string.
AmountCreditNumberNoIf supplied, must be equal to or less than the open (uncaptured) authorized amount; otherwise the request is rejected.

Example Request

{
    "OriginalTransactionKey": "8E04704995B74D679AACC59F87XXXXXX",
    "Services": {
      "ServiceList": [
        {
          "Name": "paypal",
          "Action": "CancelAuthorize"
        }
      ]
    }
  }

Example Request with AmountCredit

{
    "Currency": "EUR",
    "AmountCredit": 10.00,
    "OriginalTransactionKey": "8E04704995B74D679AACC59F87XXXXXX",
    "Services": {
      "ServiceList": [
        {
          "Name": "paypal",
          "Action": "CancelAuthorize"
        }
      ]
    }
  }

CancelAuthorize Response

Example Response (validation failure — AmountCredit too high)

{
    "Key": "B11FD5003FA407297A39C46D0XXXXXX",
    "Status": {
      "Code": {
        "Code": 491,
        "Description": "Validation failure"
      },
      "SubCode": {
        "Code": "S008",
        "Description": "The creditamount should be equal or less than the open capture amount (10.00)"
      },
      "DateTime": "2026-05-22T17:29:55"
    },
    "RequiredAction": null,
    "Services": [],
    "CustomParameters": null,
    "AdditionalParameters": null,
    "RequestErrors": null,
    "Invoice": "testinvoice 123",
    "ServiceCode": "paypal",
    "IsTest": true,
    "Currency": "EUR",
    "AmountCredit": 25.0,
    "TransactionType": "I155",
    "MutationType": 2,
    "RelatedTransactions": null,
    "ConsumerMessage": null,
    "Order": null,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": false,
    "CustomerName": "John Smith",
    "PayerHash": null,
    "PaymentKey": "9E66009180A245F99987E4972AXXXXXX"
  }

Example response (success)

{
    "Key": "A99FD5003FA407297A39C46D0XXXXXX",
    "Status": {
      "Code": {
        "Code": 190,
        "Description": "Success"
      },
      "SubCode": {
        "Code": "S001",
        "Description": "Transaction successfully processed"
      },
      "DateTime": "2026-05-22T17:30:00"
    },
    "RequiredAction": null,
    "Services": [
      {
        "Name": "paypal",
        "Action": null,
        "Parameters": []
      }
    ],
    "CustomParameters": null,
    "AdditionalParameters": null,
    "RequestErrors": null,
    "Invoice": "testinvoice 123",
    "ServiceCode": "paypal",
    "IsTest": true,
    "Currency": "EUR",
    "AmountCredit": 10.0,
    "TransactionType": "I155",
    "MutationType": 2,
    "RelatedTransactions": [
      {
        "RelationType": "CancelAuthorize",
        "RelatedTransactionKey": "8E04704995B74D679AACC59F87XXXXXX"
      }
    ],
    "ConsumerMessage": null,
    "Order": null,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": false,
    "CustomerName": "John Smith",
    "PayerHash": null,
    "PaymentKey": "9E66009180A245F99987E4972AXXXXXX"
  }

CancelAuthorize Push

Example push

{
    "Transaction": {
      "Key": "A99FD5003FA407297A39C46D0XXXXXX",
      "Invoice": "testinvoice 123",
      "ServiceCode": "paypal",
      "Status": {
        "Code": {
          "Code": 190,
          "Description": "Success"
        },
        "SubCode": {
          "Code": "S001",
          "Description": "Transaction successfully processed"
        },
        "DateTime": "2026-05-22T17:30:00"
      },
      "IsTest": true,
      "Order": null,
      "Currency": "EUR",
      "AmountCredit": 10.0,
      "TransactionType": "I155",
      "Services": [
        {
          "Name": "paypal",
          "Action": null,
          "Parameters": []
        }
      ],
      "CustomParameters": null,
      "AdditionalParameters": null,
      "MutationType": 2,
      "RelatedTransactions": [
        {
          "RelationType": "CancelAuthorize",
          "RelatedTransactionKey": "8E04704995B74D679AACC59F87XXXXXX"
        }
      ],
      "IsCancelable": false,
      "IssuingCountry": null,
      "StartRecurrent": false,
      "Recurring": false,
      "CustomerName": "John Smith",
      "PayerHash": null,
      "PaymentKey": "9E66009180A245F99987E4972AXXXXXX"
    }
  }

Parameters

CancelAuthorize transactions do not carry service-specific output parameters. The voided Authorize is identifiable via the RelatedTransactions block on the response and the push (RelationType "CancelAuthorize" pointing at the original Authorize Key)

Refund

To refund a successful PayPal transaction, use the action Refund. A refund is then performed through PayPal which transfers the amount of the original transaction to the consumers PayPal account.

For the Authorize/Capture flow, the OriginalTransactionKey must refer to the Capture transaction, not the Authorize transaction. Pay-flow refunds continue to refer to the Pay transaction.

Refund request

Parameters

Service specific parameters

ParameterTypeRequiredRecommendedDescription
originaltransactionStringYesN/ATransaction key of the original transaction that needs to be refunded. Please note: This is a basic request variable, not a service specific variable. This is a 32-character hex string.

Example request

{
  "Currency": "EUR",
  "AmountCredit": 1.00,
  "Invoice": "testinvoice 123",
  "OriginalTransactionKey": "2D04704995B74D679AACC59F87XXXXXX",
  "Services": {
    "ServiceList": [
      {
        "Name": "paypal",
        "Action": "Refund"
      }
   
 ]
  }
}

Example request: refund of a Capture

{
    "Currency": "EUR",
    "AmountCredit": 4.00,
    "Invoice": "testinvoice 123",
    "OriginalTransactionKey": "C123FD5003FA407297A39C46D0XXXXXX",
    "Services": {
      "ServiceList": [
        {
          "Name": "paypal",
          "Action": "Refund"
        }
      ]
    }
  }

Refund response

Parameters

Basic parameters
Here you can find all basic parameters Basic Parameters

Example response

{
    "Key": "R55FD5003FA407297A39C46D0XXXXXX",
    "Status": {
      "Code": {
        "Code": 190,
        "Description": "Success"
      },
      "SubCode": {
        "Code": "S001",
        "Description": "Transaction successfully processed"
      },
      "DateTime": "2026-05-22T18:01:42"
    },
    "RequiredAction": null,
    "Services": [
      {
        "Name": "paypal",
        "Action": null,
        "Parameters": [
          { "Name": "paypalRefundId",      "Value": "1JU88361CS616080B" },
          { "Name": "paypalTransactionID", "Value": "1JU88361CS616080B" }
        ]
      }
    ],
    "CustomParameters": null,
    "AdditionalParameters": null,
    "RequestErrors": null,
    "Invoice": "testinvoice 123",
    "ServiceCode": "paypal",
    "IsTest": true,
    "Currency": "EUR",
    "AmountCredit": 4.0,
    "TransactionType": "V110",
    "MutationType": 2,
    "RelatedTransactions": [
      {
        "RelationType": "refund",
        "RelatedTransactionKey": "C123FD5003FA407297A39C46D0XXXXXX"
      }
    ],
    "ConsumerMessage": null,
    "Order": null,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": false,
    "CustomerName": "John Smith",
    "PayerHash": null,
    "PaymentKey": "9E66009180A245F99987E4972AXXXXXX"
  }

Refund push

Example push

{
    "Transaction": {
      "Key": "R55FD5003FA407297A39C46D0XXXXXX",
      "Invoice": "testinvoice 123",
      "ServiceCode": "paypal",
      "Status": {
        "Code": {
          "Code": 190,
          "Description": "Success"
        },
        "SubCode": {
          "Code": "S001",
          "Description": "Transaction successfully processed"
        },
        "DateTime": "2026-05-22T18:01:42"
      },
      "IsTest": true,
      "Order": null,
      "Currency": "EUR",
      "AmountCredit": 4.0,
      "TransactionType": "V110",
      "Services": [
        {
          "Name": "paypal",
          "Action": null,
          "Parameters": [
            { "Name": "paypalRefundId",      "Value": "1JU88361CS616080B" },
            { "Name": "paypalTransactionID", "Value": "1JU88361CS616080B" },
            { "Name": "VersionAsProperty",   "Value": "2"                 }
          ]
        }
      ],
      "CustomParameters": null,
      "AdditionalParameters": null,
      "MutationType": 2,
      "RelatedTransactions": [
        {
          "RelationType": "refund",
          "RelatedTransactionKey": "C123FD5003FA407297A39C46D0XXXXXX"
        }
      ],
      "IsCancelable": false,
      "IssuingCountry": null,
      "StartRecurrent": false,
      "Recurring": false,
      "CustomerName": "John Smith",
      "PayerHash": null,
      "PaymentKey": "9E66009180A245F99987E4972AXXXXXX"
    }
  }

Parameters

ParameterTypeDescription
paypalRefundIdStringPayPal Refund ID for the issued refund.
paypalTransactionIDStringMirrors paypalRefundId on refund transactions. Kept for backwards compatibility.

PayRecurrent

To perform a recurrent PayPal transaction, use the action PayRecurrent. A payment is then performed through PayPal. To be able to perform a successful recurrent payment, a successful initial payment must be available, that has been performed through the ‘Pay’ action, using option ‘startrecurrent’ and optionally supplying a billing agreement description.

PayRecurrent request

Parameters

Service specific parameters

ParameterTypeRequiredRecommendedDescription
originaltransactionStringYesN/AThe key of the transaction that needs to be used to perform a new transaction.

Example request

{
  "Currency": "EUR",
  "AmountDebit": 10.00,
  "Invoice": "testinvoice 123",
  "OriginalTransactionKey": "C32C0B52E1FE4A37835FFB1716XXXXXX",
  "Services": {
    "ServiceList": [
      {
        "Name": "paypal",
        "Action": "PayRecurrent"
      }
    ]
  }
}

PayRecurrent response

Parameters

Service specific parameters

ParameterTypeRequiredRecommendedDescription
payerStatusStringN/AN/AThe account status of the consumers PayPal account. Can be ‘Verified’ or ‘Unverified’
payerEmailStringN/AN/AThe email address of the PayPal account of the consumer.
payerCountryStringN/AN/AThe countrycode of the consumer (2-letter ISO country code, e.g. NL)
payerfirstnameStringN/AN/AThe first name of the PayPal account of the consumer.
payerlastnameStringN/AN/AThe last name of the PayPal account of the consumer.
payertransactionidStringN/AN/AThe unique number given by PayPal.

Example response

{
  "Key": "CC4307C1575D43598577231F14XXXXXX",
  "Status": {
    "Code": {
      "Code": 190,
      "Description": "Success"
    },
    "SubCode": {
      "Code": "P910",
      "Description": "The PayPal referencetransaction is completed."
    },
    "DateTime": "2017-03-30T11:51:03"
  },
  "RequiredAction": null,
  "Services": [
    {
      "Name": "paypal",
      "Action": null,
      "Parameters": [
        {
          "Name": "payerEmail",
          "Value": "[email protected]"
        },
        {
          "Name": "payerCountry",
          "Value": "NL"
        },
        {
          "Name": "payerStatus",
          "Value": "unverified"
        },
        {
          "Name": "payerFirstname",
          "Value": "John"
        },
        {
          "Name": "payerLastname",
          "Value": "Smith"
        }
      ]
    }
  ],
  "CustomParameters": null,
  "AdditionalParameters": null,
  "RequestErrors": null,
  "Invoice": "testinvoice 1223",
  "ServiceCode": "paypal",
  "IsTest": true,
  "Currency": "EUR",
  "AmountDebit": 10,
  "TransactionType": "V014",
  "MutationType": 2,
  "RelatedTransactions": null,
  "ConsumerMessage": null,
  "Order": null,
  "IssuingCountry": null,
  "StartRecurrent": false,
  "Recurring": true,
  "CustomerName": "John Smith",
  "PayerHash": null,
  "PaymentKey": "00BF3EBA21064B2485D44538F7XXXXXX"
}

PayRecurrent push

Parameters

Service specific parameters

ParameterTypeRequiredRecommendedDescription
payerStatusStringN/AN/AThe account status of the consumers PayPal account. Can be ‘Verified’ or ‘Unverified’
payerEmailStringN/AN/AThe email address of the PayPal account of the consumer.
payerCountryStringN/AN/AThe countrycode of the consumer (2-letter ISO country code, e.g. NL)
payerfirstnameStringN/AN/AThe first name of the PayPal account of the consumer.
payerlastnameStringN/AN/AThe last name of the PayPal account of the consumer.
payertransactionidStringN/AN/AThe unique number given by PayPal.

Example response

{
  "Transaction": {
    "Key": "CC4307C1575D43598577231F14XXXXXX",
    "Invoice": "testinvoice 1223",
    "ServiceCode": "paypal",
    "Status": {
      "Code": {
        "Code": 190,
        "Description": "Success"
      },
      "SubCode": {
        "Code": "P910",
        "Description": "The PayPal referencetransaction is completed."
      },
      "DateTime": "2017-03-30T11:51:03"
    },
    "IsTest": true,
    "Order": null,
    "Currency": "EUR",
    "AmountDebit": 10,
    "TransactionType": "V014",
    "Services": [
      {
        "Name": "paypal",
        "Action": null,
        "Parameters": [
          {
            "Name": "payerEmail",
            "Value": "[email protected]"
          },
          {
            "Name": "payerCountry",
            "Value": "NL"
          },
          {
            "Name": "payerStatus",
            "Value": "unverified"
          },
          {
            "Name": "payerFirstname",
            "Value": "John"
          },
          {
            "Name": "payerLastname",
            "Value": "Smith"
          }
        ],
        "VersionAsProperty": 1
      }
    ],
    "CustomParameters": null,
    "AdditionalParameters": null,
    "MutationType": 2,
    "RelatedTransactions": null,
    "IsCancelable": false,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": true,
    "CustomerName": "John Smith",
    "PayerHash": null,
    "PaymentKey": "00BF3EBA21064B2485D44538F7XXXXXX"
  }
}

ExtraInfo

The ExtraInfo can be sent to our API in addition to the Pay action. This action cannot be used as a standalone action.

Parameters

Service specific parameters

ParameterTypeRequiredRecommendedDescription
NameStringYesN/AThe name of the consumer. It can be 32 characters max.
Street1StringYesN/AThe first line of the shipping address (typically street and house number). It can be 100 characters max.
Street2StringYesN/AThe second line of the shipping address (optional). It can be 100 characters max.
CityNameStringYesN/ACity of the shipping address. It can be 40 characters max.
StateOrProvinceStringYesN/AState or province code of the shipping address. These can be found on the following PayPal page: https://developer.paypal.com/docs/api/reference/state-codes. Note that it is only required for the following countries: Argentina, Brazil, Canada, China, Indonesia, India, Japan, Mexico, Thailand, USA.
PostalCodeStringYesNoPostalCode / ZipCode of the shipping address. It can be 20 characters max.
CountryStringYesNoCountrycode of the shipping address (2 letter country code eg. NL or FR). These can be found on the following PayPal page:
https://developer.paypal.com/docs/api/reference/country-codes
NoShippingStringNoNoHow to handle the shipping address: 0: PayPal displays the shipping address on the PayPal pages 1: PayPal does not display shipping address fields whatsoever. 2: If you do not pass the shipping address, PayPal obtains it from the buyer’s account profile. (default, recommended when trying to obtain seller protection). This should be an integer.
AddressOverrideStringYesNoWhether or not the consumer is allowed to choose his shipping address in the Paypal pages. True: Shipping address sent by merchant overrides shipping address on file at PayPal False: Shipping address sent by merchant does not override shipping address on file at PayPal allowing the consumer to select a different address in the PayPal pages. If override=false, the address as selected by the consumer in the PayPal pages is returned as output parameters. This should be a boolean value.

Example request

{
  "Currency": "EUR",
  "AmountDebit": 10.00,
  "Invoice": "testinvoice 123a",
  "Services": {
    "ServiceList": [
      {
        "Name": "paypal",
        "Action": "Pay,ExtraInfo",
        "Parameters": [
          {
            "Name": "Name",
            "Value": "John Smith"
          },
          {
            "Name": "Street1",
            "Value": "Hoofstraat 90"
          },
          {
            "Name": "Street2",
            "Value": ""
          },
          {
            "Name": "CityName",
            "Value": "Heerenveen"
          },
          {
            "Name": "StateOrProvince",
            "Value": ""
          },
          {
            "Name": "PostalCode",
            "Value": "8441AB"
          },
          {
            "Name": "Country",
            "Value": "NL"
          },
          {
            "Name": "Phone",
            "Value": ""
          },
          {
            "Name": "NoShipping",
            "Value": ""
          },
          {
            "Name": "AddressOverride",
            "Value": "true"
          }
        ]
      }
    ]
  }
}

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

Parameters


Example response

{
  "Key": "1DD4EBFF828D462F8749B10A59XXXXXX",
  "Status": {
    "Code": {
      "Code": 791,
      "Description": "Pending processing"
    },
    "SubCode": {
      "Code": "S002",
      "Description": "An additional action is required: PayPal ExpressCheckout"
    },
    "DateTime": "2017-05-18T10:09:24"
  },
  "RequiredAction": {
    "RedirectURL": "https://testcheckout.buckaroo.nl/html/redirect.ashx?r=B2EE3176335A4C259CB051A543XXXXXX",
    "RequestedInformation": null,
    "PayRemainderDetails": null,
    "Name": "Redirect",
    "TypeDeprecated": 0
  },
  "Services": null,
  "CustomParameters": null,
  "AdditionalParameters": null,
  "RequestErrors": null,
  "Invoice": "testinvoice 123a",
  "ServiceCode": "paypal",
  "IsTest": true,
  "Currency": "EUR",
  "AmountDebit": 10.0,
  "TransactionType": "V010",
  "MutationType": 2,
  "RelatedTransactions": null,
  "ConsumerMessage": null,
  "Order": null,
  "IssuingCountry": null,
  "StartRecurrent": false,
  "Recurring": false,
  "CustomerName": null,
  "PayerHash": null,
  "PaymentKey": "3D1CC82B47B24598BFB510B1DEXXXXXX"
}

ExtraInfo push

Parameters

Service specific parameters

ParameterTypeRequiredRecommendedDescription
SelectedNameStringYesN/AThe name of the consumer. It can be 32 characters max.
SelectedStreet1StringYesN/AThe first line of the shipping address (typically street and house number). It can be 100 characters max.
SelectedStreet2StringYesN/AThe second line of the shipping address (optional). It can be 100 characters max.
SelectedCityNameStringYesN/ACity of the shipping address. It can be 40 characters max.
SelectedStateOrProvinceStringYesN/AState or province code of the shipping address. These can be found on the following PayPal page:
https://developer.paypal.com/docs/api/reference/state-codes. Note that it is only required for the following countries: Argentina, Brazil, Canada, China, Indonesia, India, Japan, Mexico, Thailand, USA.
SelectedPostalCodeStringYesNoPostalCode / ZipCode of the shipping address. It can be 20 characters max.
SelectedCountryStringYesNoCountrycode of the shipping address (2 letter country code eg. NL or FR). These can be found on the following PayPal page: https://developer.paypal.com/docs/api/reference/country-codes
AddressStatusStringN/AN/AThe status of the address, Can be either None, Confirmed or Unconfirmed.
ProtectionEligibilityStringN/AN/AWhether or not you are eligible for seller protection. Can be: Eligible – Merchant is protected by PayPal's Seller Protection Policy for Unauthorized Payments and Item Not Received. PartiallyEligible – Merchant is protected by PayPal's Seller Protection Policy for Item Not Received. Ineligible – Merchant is not protected under the Seller Protection Policy.
ProtectionEligibilityTypeStringN/AThe type of protection you are eligible to. Can be: Eligible – Merchant is protected by PayPal's Seller Protection Policy for both Unauthorized Payment and Item Not Received ItemNotReceivedEligible – Merchant is protected by PayPal's Seller Protection Policy for Item Not Received UnauthorizedPaymentEligible – Merchant is protected by PayPal's Seller Protection Policy for Unauthorized Payment Ineligible – Merchant is not protected under the Seller Protection Policy.

Example push

{
  "
Transaction": {
    "Key": "1DD4EBFF828D462F8749B10A59XXXXXX",
    "Invoice": "testinvoice 123a",
    "ServiceCode": "paypal",
    "Status": {
      "Code": {
        "Code": 190,
        "Description": "Success"
      },
      "SubCode": {
        "Code": "P904",
        "Description": "The PayPal payment has been completed."
      },
      "DateTime": "2017-05-18T10:16:39"
    },
    "IsTest": true,
    "Order": null,
    "Currency": "EUR",
    "AmountDebit": 10,
    "TransactionType": "V010",
    "Services": [
      {
        "Name": "paypal",
        "Action": null,
        "Parameters": [
          {
            "Name": "AddressStatus",
            "Value": "Confirmed"
          },
          {
            "Name": "payerEmail",
            "Value": "[email protected]"
          },
          {
            "Name": "payerCountry",
            "Value": "NL"
          },
          {
            "Name": "payerStatus",
            "Value": "unverified"
          },
          {
            "Name": "payerFirstname",
            "Value": "John"
          },
          {
            "Name": "payerLastname",
            "Value": "Tester"
          },
          {
            "Name": "ProtectionEligibility",
            "Value": "Eligible"
          },
          {
            "Name": "ProtectionEligibilityType",
            "Value": "ItemNotReceivedEligible,UnauthorizedPaymentEligible"
          },
          {
            "Name": "paypalTransactionID",
            "Value": "5XF2719921258562Y"
          }
        ],
        "VersionAsProperty": 1
      }
    ],
    "CustomParameters": null,
    "AdditionalParameters": null,
    "MutationType": 2,
    "RelatedTransactions": null,
    "IsCancelable": false,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": false,
    "CustomerName": "John Smith",
    "PayerHash": null,
    "PaymentKey": "3D1CC82B47B24598BFB510B1DEXXXXXX"
  }
}


Did this page help you?