General

PayPal is an online payment method available worldwide. PayPal offers a range of features for both merchant and buyer to make sure any payment is processed secure and with a number of optional buyer-seller protection options. Both buyer and merchant accounts can be assigned as verified by linking them to a credit card or bank account.

Buckaroo offers PayPal in a processing model. Processing means that Buckaroo will not handle the actual money. A merchant is required to create a PayPal account and will receive payments made with other PayPal accounts on his own PayPal account.

Payment flow

When the payment request is done, the consumer is redirected to the PayPal website where he will be asked to log in to his account (or create a new account). After he has logged in he will be asked to agree to the payment or, when starting a recurrent payment, to accept the billing agreement. After he accepts, he will be redirected back to the return url provided by the merchant, either in the transaction request or by setting a default redirect url in the Buckaroo Payment Plaza under website settings. The status of the payment can be either pending or successful, depending on a number of reasons (PayPal account status, PayPal fraud management filters, etc.).

A PayPal payment has a lifetime of 3 hours; this means that as soon as the consumer is redirected to PayPal, the payment must be completed within 3 hours or it will expire. In the event that the consumer irregularly ends the payment process (e.g. by closing the browser window before returning to the web shop), the payment status will be retrieved from PayPal at a regular interval and when it changes, the merchant web shop is updated via the transaction push. It is therefore recommended to enable the push response in the Payment Plaza when implementing PayPal.

PayPal account settings

To be able to use PayPal payments through the Buckaroo Gateway, it is necessary to have a PayPal Business account. You can either create a new account or use an existing account if you already have one you wish to use for this purpose.

After creating a PayPal account, a number of settings must be applied to allow Buckaroo to perform transactions on your behalf.

1. Log on to your PayPal account. 2. Open the main menu item “Profile” 3. Open under “Selling preferences” the link “API-access”. 4. On the page “API Access, open the link “Add or edit API permissions”. You can find the link within “Option 1” of “Setting up API permissions and credentials”. 5. Fill in the Third Party Permission Username: support_api1.buckaroo.nl and click “Lookup”. 6. Check the following permissions:

• Use Express Checkout to process payments • Issue a refund for a specific transaction • Authorize and capture your PayPal transactions • Obtain information about a single transaction • Search your transactions for items that match specific criteria and display the result. 7. If you plan to use recurrent billing, also check the following permissions: • Charge an existing customer based on a prior transaction. • Create and manage Recurring Payments. • Obtain authorization for pre-approved payments and initiate pre-approved transactions. 8. Then click on Add.

Buckaroo subscription settings

To be able to process PayPal payments on your behalf, you must provide Buckaroo with the e-mail address you use for your PayPal merchant account. All payments and refunds performed will be added to, or subtracted from, this PayPal account’s balance.

Testing

By default a basic test flow is supported this flow allows the merchant to create test payments and testrefunds without being redirected to the PayPal sandbox. For more extensive tests please follow the instructions below and use the PayPal sandbox environment.

Paypal provides a sandbox environment which can be used to test your Paypal implementation. The Buckaroo payment engine uses this sandbox environment for test transaction. This means that to be able to perform test transactions, has a Paypal Sandbox account. This can be created at: https://developer.paypal.com/

After creating the sandbox account, it is needed to create test paypal accounts for use in the sandbox. You will need at least one Business/Merchant Paypal account, and you need to configure this account in your Buckaroo Paypal subscription settings (Go to the payment plaza and then to Profile -> Subscriptions -> PayPal -> Credentials) under the "Paypal Sandbox emailaddress") You will also need to provide our sandbox username with the privileges as explained in section 1.3. However, you need to use the username "suppor_1282314318_biz_api1.buckaroo.nl" and you need to login on https://sandbox.paypal.com/ with your sandbox merchant account.

After this, you can also create one or more personal accounts. These can then be used perform test payments with then.

Styling

It is possible to pass a value for page style. Page style is a theme which can be created in a merchants PayPal account to have a custom layout for the PayPal payment pages. Multiple page styles can be defined, and if passed along with the request to Buckaroo, Buckaroo will pass it on to PayPal to offer the possibility for a transaction-specific style. For more information, go to ‘PayPal’s Custom Payment Pages: An Overview’ at https://www.paypal.com/us/cgi-bin/webscr?cmd=p/mer/cowp_summary-outside

Recurrent Billing

PayPal supports recurrent billing. This means it is possible to ask a consumer to accept a billing agreement the first time he performs a payment through PayPal for a certain service or subscription a merchant offers. The first payment will be done after the consumer accepts the agreement. Any following payment for the same subscription or service can be done through recurrent billing. The payment request for the recurrent payments can be sent to Buckaroo without the need for interaction with the consumer, making it ideal for regular subscription payments. The amount and description for the recurrent payments can be different from the initial amount, so when variable amounts are required (e.g. for billing of telephone calls or other variable usage) this is no problem.

When using recurrent billing (known at PayPal as reference transactions) it is possible to pass an optional billing agreement description. This description will be used as the description the consumer sees in his PayPal account in his listing of billing agreements. In this list he can see all agreements he has accepted and he can stop the 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’). If the consumer agrees, the first payment is automatically charged from his account. If he doesn’t accept the agreement, no charge will be done. If the consumer cancels the agreement (which he can at any time) any subsequent recurrent transaction will be rejected by PayPal.

To be able to use recurrent billing, a merchant must request this feature to be enabled for his PayPal account by sending a request to PayPal asking for permission to use ‘reference transactions’. PayPal will decide if a merchant is allowed to perform reference transactions. Contact PayPal for details: To enable reference transactions for the Sandbox testing environment, go to https://www.paypal.com/mts and make a request through “Contact Technical Support”. Remember to include your test account email address (email_123456_biz@domain.nl) in the request. To have Reference Transactions Enabled for your live account you need to contact your Account Manager or PayPal Merchant Services. Go to the "Contact Us" link once you login to your PayPal Account.

Selling Protection

To be eligible for seller protection by PayPal one of the requirements is that a shipping address is provided by the merchant or selected by the consumer. The action ExtraInfo can be added to the transactionrequest as a supplementary action which allows you to add the required shipping address to the transaction. Together with this data you can also define that you want the address you supply to override the consumers address as on file at PayPal and whether or not to display the shipping address in the Paypal pages. If no override is demanded, the address the consumer chooses will be returned as output parameters, along with whether or not the address is confirmed by PayPal and whether or not you are eligible for any kind of protection and which type of protection.

For more info go to: https://www.paypal.com/nl/webapps/mpp/seller-protection (Dutch) https://www.paypal.com/uk/webapps/mpp/seller-protection (English, United Kingdom)

Allow duplicate invoicenumbers

For a standard Paypal configuration, Paypal will accept that a invoicenumber is only used ones. In this case a refund made from the Buckaroo Payment Plaza will get a different invoicenumber in the Paypal account. Due to this setting it can be difficult to match the original transaction to the refund in the Paypal reports. Paypal gives an option to accept the use of 1 invoicenumber being used multiple times. To use this option u need to do some settings in your Paypal account and in the Buckaroo account.

For more functional information about PayPal, click here.

Servicecode and actions

For PayPal, use the service code paypal.

The service supports the following actions: Pay, Refund, Payrecurrent, Extrainfo. All can be used with channel 'Web'.

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.

View in playground

Request


JSON gateway request

BuyerEmail

E-mail address the consumer uses for his PayPal account.

ProductName

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

BillingAgreementDescription

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

PageStyle

The page style as defined in the merchant PayPal account.

startrecurrent

Set 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. This type should be boolean.

JSON

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

Response


JSON gateway response

If the request has a valid structure and a valid signature, a transaction will be created in the Payment Engine and a response will be returned. In this case, an additional action is required before the transaction can be completed. The customer needs to be redirected to the payment environment through the returned redirect URL.

JSON

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

Push


JSON push response

payerStatus

The account status of the consumers PayPal account. Can be ‘Verified’ or ‘Unverified’

noteText

The text a consumer can optionally enter at the PayPal payment page during the acceptance of the payment.

payerEmail

The email address of the PayPal account of the consumer.

payerCountry

The countrycode of the consumer (2-letter ISO country code, e.g. NL)

payerfirstname

The firstname of the PayPal account of the consumer.

payerlastname

The lastname of the PayPal account of the consumer.

payertransactionid

The unique number given by PayPal.

JSON

copy
{
  "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": "johnsmith@gmail.com"
          },
          {
            "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"
  }
}

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.

View in playground

Request


JSON gateway request

originaltransaction
Required

Transaction 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-charcater hex string.

JSON

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

Response


JSON gateway response

This action does not have any response variables.

JSON

copy
{
    "Key": "1C23FD5003FA407297A39C46D0XXXXXX",
    "Status": {
        "Code": {
            "Code": 190,
            "Description": "Success"
        },
        "SubCode": {
            "Code": "S001",
            "Description": "Transaction successfully processed"
        },
        "DateTime": "2017-03-30T11:41:03"
    },
    "RequiredAction": null,
    "Services": null,
    "CustomParameters": null,
    "AdditionalParameters": null,
    "RequestErrors": null,
    "Invoice": "testinvoice 123",
    "ServiceCode": "paypal",
    "IsTest": true,
    "Currency": "EUR",
    "AmountCredit": 1,
    "TransactionType": "V110",
    "MutationType": 2,
    "RelatedTransactions": [
        {
            "RelationType": "refund",
            "RelatedTransactionKey": "2D04704995B74D679AACC59F87XXXXXX"
        }
    ],
    "ConsumerMessage": null,
    "Order": null,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": false,
    "CustomerName": "T. Tester",
    "PayerHash": null,
    "PaymentKey": "BFFB19D7C97E46C39A4583135BXXXXXX"
}

Push


JSON push response

This action does not have any response variables.

JSON

copy
{
  "Transaction": {
    "Key": "1C23FD5003FA407297A39C46D0XXXXXX",
    "Invoice": "testinvoice 123",
    "ServiceCode": "paypal",
    "Status": {
      "Code": {
        "Code": 190,
        "Description": "Success"
      },
      "SubCode": {
        "Code": "S001",
        "Description": "Transaction successfully processed"
      },
      "DateTime": "2017-03-30T11:41:03"
    },
    "IsTest": true,
    "Order": null,
    "Currency": "EUR",
    "AmountCredit": 1,
    "TransactionType": "V110",
    "Services": null,
    "CustomParameters": null,
    "AdditionalParameters": null,
    "MutationType": 2,
    "RelatedTransactions": [
      {
        "RelationType": "refund",
        "RelatedTransactionKey": "2D04704995B74D679AACC59F87XXXXXX"
      }
    ],
    "IsCancelable": false,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": false,
    "CustomerName": "T. Tester",
    "PayerHash": null,
    "PaymentKey": "BFFB19D7C97E46C39A4583135BXXXXXX"
  }
}

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.

View in playground

Request


JSON gateway request

originaltransaction

Transaction key of the original transaction that needs to be refunded. Please note: This is a basic request variable, not a service specific variable.

JSON

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

Response


JSON gateway response

payerStatus

The account status of the consumers PayPal account. Can be ‘Verified’ or ‘Unverified’.

payerEmail

The e-mail address of the PayPal account of the consumer.

payerCountry

The country code of the consumer (2-letter ISO country code, e.g. NL)

payerfirstname

The first name of the PayPal account of the consumer.

payerlastname

The last name of the PayPal account of the consumer.

payertransactionid

The unique number given by PayPal.

JSON

copy
{
    "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": "johnsmith@gmail.com"
                },
                {
                    "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"
}

Push


JSON push response

payerStatus

The account status of the consumers PayPal account. Can be ‘Verified’ or ‘Unverified’.

payerEmail

The e-mail address of the PayPal account of the consumer.

payerCountry

The country code of the consumer (2-letter ISO country code, e.g. NL).

payerfirstname

The first name of the PayPal account of the consumer.

payerlastname

The last name of the PayPal account of the consumer.

payertransactionid

The unique number given by PayPal. String.

JSON

copy
{
  "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": "johnsmith@gmail.com"
          },
          {
            "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 action ExtraInfo can be added to the transactionrequest as a supplementary action which allows you to add the required shipping address to the transaction. Together with this data you can also define that you want the address you supply to override the consumers address as on file at PayPal and whether or not to display the shipping address in the Paypal pages.

View in playground

Request


JSON gateway request

Name
Required

The name of the consumer. It can be 32 characters max.

Street1
Required

The first line of the shipping address (typically street and house number). It can be 100 characters max.

Street2

The second line of the shipping address (optional). It can be 100 characters max.

CityName
Required

City of the shipping address. It can be 40 characters max.

StateOrProvince

State or province code of the shipping address. These can be found on the following PayPal page: https://developer.paypal.com/docs/classic/api/state_codes/. Note that it is only required for the following countries: Argentina, Brazil, Canada, China, Indonesia, India, Japan, Mexico, Thailand, USA.

PostalCode
Required

PostalCode / ZipCode of the shipping address. It can be 20 characters max.

Country
Required

Countrycode of the shipping address (2 letter country code eg. NL or FR).

Phone

Phone number of the consumer.

NoShipping

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

AddressOverride
Required

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

JSON

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

Response


JSON gateway response

If the request has a valid structure and a valid signature, a transaction will be created in the Payment Engine and a response will be returned. In this case, an additional action is required before the transaction can be completed. The customer needs to be redirected to the payment environment through the returned redirect URL.

JSON

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

Push


JSON push response

SelectedName

The name of the consumer.

SelectedStreet1

The first line of the shipping address (typically street and house number).

SelectedStreet2

The second line of the shipping address (optional).

SelectedCityName

City of the shipping address.

SelectedStateOrProvince

State of province of the shipping address.

SelectedPostalCode

Postal code / zip code of the shipping address.

SelectedCountry

Countrycode of the shipping address (2 letter country code eg. NL or FR).

AddressStatus

The status of the address, Can be either None, Confirmed or Unconfimed.

ProtectionEligibility

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

ProtectionEligibilityType

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

JSON

copy
{
  "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": "johnsmith@gmail.com"
          },
          {
            "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"
  }
}