Introduction

PayPal Holdings, Inc. is an American multinational financial technology company operating an online payments system in more than 200 markets around the world. The company acts as a payment processor for online vendors, auction sites and many other commercial users, for which it charges a fee.


It was established in 1998 and has its headquarters in San Jose, California, USA.

More information under: https://about.pypl.com/

Overview

Currently PayPal Express is using the NVP integrations. You can choose between Express Checkout Shortcut (ECS) or Express Checkout Mark (ECM) as integration options.

It is mandatory to send the shipping address in the “authorization” or “preauthorization” request. Otherwise you don’t have the PayPal sellers-protection. Use shipping address also as billing address. Your customer should have an option to change billing address while checking out. If you want to use multi partial capture, you need to set settleaccount to yes or auto, to be able to send another capture afterwards. Do not use settleaccount=no.

PAYONE platform must be allowed to use your PayPal-account.

Please find here how this is configured within PayPal administration:

How to Configure Your PayPal Account for Processing over the Payone Platform

Test Data

Test data is created individual in a Sandbox Account which is connected to your PayPal account.

Under https://developer.paypal.com you can login to the dashboard and create your own various Sandbox test accounts with different scenarios (buyer, seller, countries, currencies, account types, payment methods etc. ) 

You can now test payment through your e-commerce application (for example your shop). You will need to mark the "mode" parameter with the value "test" (mode=test). Use the buyer test account that you have just created as the test customer.

If you want to make End-to-End Tests with PayPal, you'll also need a Sandbox Merchant Account. Please contact our Merchant Service so we can store the Sandbox Merchant Account deails in your PAYONE Account.

Integrations

POST Request - genericpayment – add_paydata[action] = setexpresscheckout

For PayPal ECS the request type genericpayment is mandatory. With the first genericpayment the workorderid will be generated from the PAYONE platform and will be sent to you in the response. The ID is unique. The returned workorderid is mandatory for the following requests of PayPal Express Checkout.

Process Description:

  1. First of all you have to use the request “genericpayment” with “add_paydata[action]=setexpresscheckout”
  2. With “setexpresscheckout” you initiate the transaction at PayPal and get an unique “workorderid” from the PAYONE platform
  3. After the successful request you do another “genericpayment” request with “add_paydata[action]=getexpresscheckout details” to get the shipping and email address of the customer
  4. To charge the customers PayPal account you have to do a request “preauthorization/capture” or an “authorization” with the unique “workorderid”
  5. After completing step 4 you will get the “txid” which is used for further steps like “capture”, “debit” or “refund”

It is mandatory to send the shipping address in the “authorization” or “preauthorization” request if the data is different to the received shipping address from the “genericpayment[action]=getexpresscheckoutdetails”. Otherwise you don’t have the PayPal seller-protection. With “genericpayment[action]=getexpresscheckoutdetails” you only get the customer shipping address from PayPal. Use shipping address also as billing address. Your customer should have an option to change billing address while checking out. If you want to use multi partial capture, you need to set settleaccount to yes or auto, to be able to send another capture afterwards. Do not use settleaccount=no.

Account Parameters
request
required
Fixed Value: genericpayment
mid
required
your merchant ID, 5-digit numeric
aid
required
your subaccount ID, 5-digit numeric
portalId
required
your Portal ID, 7-digit numeric
key
required
your key value, alpha-numeric
Common Parameters
clearingtype
required
Fixed Value: wtl
wallettype
required
Fixed Value: PPE

PPE: PayPal

mode
required
Fixed Value: test/live

can be either test environment (test) or live environment (live)

reference
optional
Format CHAR(2..255)

a unique ID that will be displayed in your shop backend and for the customer

amount
required
Format NUMERIC(1..10)
Permitted values max. +/- 19 999 999 99

Specifies the total gross amount of a payment transaction.

Value is given in smallest currency unit, e.g. Cent of Euro.

The amount must be less than or equal to the amount of the corresponding booking.

currency
required
Format LIST

Permitted values ISO 4217 (currencies) 3-letter-codes

 

Samples EUR, USD, GBP

narrative_text
optional
Format CHAR(1..81)

Dynamic text element on account statements
(3 lines with 27 characters each) and credit card statements.

successurl
required
Format CHAR(2..255)

Scheme <scheme>://<host>/<path>
       <scheme>://<host>/<path>?<query>
       
scheme-pattern: [a-zA-Z]{1}[a-zA-Z0-9]{1,9}

URL for "payment successful"

errorurl
required
Format CHAR(2..255)

Scheme <scheme>://<host>/<path>
       <scheme>://<host>/<path>?<query>
       
scheme-pattern: [a-zA-Z]{1}[a-zA-Z0-9]{1,9}

URL for "faulty payment"

backurl
required
Format CHAR(2..255)

Scheme <scheme>://<host>/<path>
       <scheme>://<host>/<path>?<query>
       
scheme-pattern: [a-zA-Z]{1}[a-zA-Z0-9]{1,9}

URL for "Back" or "Cancel"

add_paydata PARAMETERs
add_paydata[action]
required
AN..255
Set to "setexpresscheckout"
add_paydata[request_billing_address]
optional
AN..255

Set to “1” if you want to receive customers billing address. Don’t send this parameter, if you don’t want to receive billing address.

Your PayPal account needs to be activated by PayPal in order to receive the billing address. Please consult your PayPal CSM for further details.

Response Parameters
Permitted Values
APPROVED
ERROR
Response Data (Redirect)
workorderid
Format CHAR(1..50)

The ID is unique. The returned workorderid is mandatory for the following requests of PayPal Express Checkout.

 

The workorderid is a technical id returned from the PAYONE platform to identify a workorder. A workorder is a part of a payment process (identified by a txid). The workorderid is used for the genericpayment request.

redirecturl
Redirect URL
add_paydata[token]
Express Checkout Token for use with “Magnes Library” (Fraud)

 ---

Response parameters (error)
Format NUMERIC(1..6)

In case of error the PAYONE Platform returns an error code for your internal usage.

Format CHAR(1..1024)

In case of error the PAYONE Platform returns an error message for your internal usage.

Host: api.pay1.de
Content-Type: application/x-www-form-urlencoded
Payload
                    
add_paydata[action]=setexpresscheckout request=genericpayment mid=14648 aid=52078 portalid=2037267 key=17031f73e2c6f9755788bddfff04169b encoding=UTF-8 clearingtype=wlt wallettype=PPE reference=abcdef123456 amount=3300 currency=EUR mode=test narrative_text=Test backurl=https://yourURL.dev/payone/cancel/ successurl=https://yourURL.dev/payone/paypal/returned/ errorurl=https://yourURL.dev/payone/cancel?error=1/
RESPONSE
                        
status=REDIRECT
workorderid=PP2AAD6FJJSCSRH7
redirecturl=https://www.sandbox.paypal.com/webscr?useraction=continue&cmd=_express-checkout&token=EC-4JX605066Y004080W
add_paydata[token]=EC-4JX605066Y004080W
POST Request - genericpayment – add_paydata[action] = getexpresscheckoutdetails

This call is used to gather the Information about the customer from PayPal. The received shipping address must be displayed in the shop in case of ECS although the value of shipping address will be sent to PayPal again with the last call. 

Account Parameters
request
required
Fixed Value: genericpayment
mid
required
your merchant ID, 5-digit numeric
aid
required
your subaccount ID, 5-digit numeric
portalId
required
your Portal ID, 7-digit numeric
key
required
your key value, alpha-numeric
common Parameters
clearingtype
required
Fixed Value wtl
wallettype
required
Fixed Value PPE

PPE: Paypal

mode
required
Fixed Value: test/live

PPE: Paypal

workorderid
required
Format CHAR(1..50)

With the first genericpayment the workorderid will be generated from the PAYONE platform and will be sent to you in the response. The ID is unique. The returned workorderid is mandatory for the following requests of PayPal Express Checkout.

reference
optional
Permitted Symbols [0-9][a-z][A-Z], .,-,_,/

Merchant reference number for the payment process (case insensitive)

amount
required
Format NUMERIC(1..10)
Permitted values max. +/- 19 999 999 99

Specifies the total gross amount of a payment transaction.

Value is given in smallest currency unit, e.g. Cent of Euro.

The amount must be less than or equal to the amount of the corresponding booking.

currency
required
Format LIST

Permitted values ISO 4217 (currencies) 3-letter-codes

 

Samples EUR, USD, GBP

add_paydata Parameters
add_paydata[action]
required
AN..255
Set to "getexpresscheckoutdetails"
not add_paydata[payment_action]
optional
Fixed Value SALE

To initiate a "final sale" transaction (PaymentAction=Sale). By default - without this parameter - the transaction is initiated as an authorization, which is e.g. not suitable for some industries.

Response Parameters

Permitted Values

OK
ERROR
Response Data (OK)
 workorderid
Format CHAR(1..50)

The ID is unique. The returned workorderid is mandatory for the following requests of PayPal Express Checkout.

 

The workorderid is a technical id returned from the PAYONE platform to identify a workorder. A workorder is a part of a payment process (identified by a txid). The workorderid is used for the genericpayment request.

Format CHAR(1..50)   

Unique PayPal Customer Account identification number.

Permitted values verified
                 unverified   

PayPal payer status.

The criteria for a PayPal account to become "verified" varies from country to country, but usually depend on adding or confirming either a bank or a card. Before that is done an account is "unverified".

Format CHAR(1..50)
Format CHAR(1..50)
Format CHAR(1..50)
Format CHAR(1..50)
Format CHAR(1..50)
Format CHAR(1..50)
Format CHAR(1..50)
Format CHAR(1..50)
Format CHAR(1..50)
Format CHAR(1..50)
Format CHAR(1..50)   

Billing street

If add_paydata[request_billing_address] is set to “1” in “setexpresscheckout”-request, you’ll receive billing address parameters in “getexpresscheckoutdetails”-response

Format CHAR(1..50)   

Billing city

Format ISO 3166   

Billing country

Format CHAR(1..50)   

Billing zip

Format CHAR(1..50)   

Billing name (Paypal sends firstname and lastname separated by a space.)

Sample Value +49 1721234567   

Buyer's phone number

Response parameters (error)
Format NUMERIC(1..6)

In case of error the PAYONE Platform returns an error code for your internal usage.

Format CHAR(1..1024)

In case of error the PAYONE Platform returns an error message for your internal usage.

Host: api.pay1.de
Content-Type: application/x-www-form-urlencoded
Payload                    

add_paydata[action]=getexpresscheckoutdetails mid=14648 aid=52078 portalid=2037267 key=17031f73e2c6f9755788bddfff04169b workorderid=PP2AAD6FJJSCSRH7 clearingtype=wlt wallettype=PPE amount=3300 currency=EUR mode=test request=genericpayment
RESPONSE
status=OK workorderid=PP2AAD6FJJSCSRH7 add_paydata[shipping_street]=Muster Str. 1 add_paydata[zip]=10000 add_paydata[country]=DE add_paydata[payerstatus]=verified add_paydata[shipping_state]=Musterbundestaat add_paydata[telephonenumber]=012345678 add_paydata[city]=Musterstadt add_paydata[shipping_city]=Musterstadt add_paydata[countrycode]=DE add_paydata[payerid]=123456ABCDEFG add_paydata[lastname]=Karl Mustermann add_paydata[shipping_zip]=10000 add_paydata[street]=Muster Str. 1 add_paydata[shipping_firstname]=Karl add_paydata[shipping_country]=DE add_paydata[shipping_lastname]=Mustermann add_paydata[shipping_addressaddition]=DiesIstDerZusatz add_paydata[email]=km@patsy.dev
POST Request - Pre-/ Authorization

The default life time for the paydirekt checkout is 30 minutes. It is possible to set an expiry time for the checkout between 120 und 1800 seconds. Please contact the merchant service (Contact) if you want to limit the paydirekt checkout time.

Account Parameters
request
required
Fixed Value: preauthorisation/authorization
mid
required
your merchant ID, 5-digit numeric
aid
required
your subaccount ID, 5-digit numeric
portalId
required
your Portal ID, 7-digit numeric
key
required
your key value, alpha-numeric
common Parameters
clearingtype
required
Fixed Value: wtl
mode
required
Fixed Value: test/live

can be either test environment (test) or live environment (live)

reference
optional
Format CHAR(2..255)

a unique ID that will be displayed in your shop backend and for the customer

amount
required
Format NUMERIC(1..10)
Permitted values max. +/- 19 999 999 99

Specifies the total gross amount of a payment transaction.

Value is given in smallest currency unit, e.g. Cent of Euro.

The amount must be less than or equal to the amount of the corresponding booking.

currency
required
Format LIST

Permitted values ISO 4217 (currencies) 3-letter-codes

 

Samples EUR, USD, GBP

param
optional
Format CHAR(1..255)

Individual parameter (per payment process)

narrative_text
optional
Format CHAR(1..81)

Dynamic text element on account statements.

(3 lines with 27 characters each) and credit card statements.

customer_is_present
optional
   



Format LIST 
Permitted Values yes
                no

Indicates whether customer is “present” and can enter their data in the shop (=yes). Or customer is not present and can not enter any data (=no).

PERSONAL DATA Parameters
customerid
optional
Format CHAR(1..20)
Permitted Symbols [0-9, a-z, A-Z, .,-,_,/]

Merchant's customer ID, defined by you / merchant to refer to the customer record.

"customerid" can be used to identify a customer record.
If "customerid" is used then stored customer data are loaded automatically.
userid
optional
Format NUMERIC(6..12)

PAYONE User ID, defined by PAYONE

salutation
optional
Format CHAR(1..10)

The customer's salutation

title
optional
Format CHAR(1..20)
Samples Dr
        Prof.
        Dr.-Ing.

Title of the customer

firstname
optional
Format CHAR(1..50)

First name of customer; optional if company is used, i.e.: you may use

"company" or "lastname" or "firstname" plus "lastname"

lastname
required
Format CHAR(2..50)

Last name of customer; optional if company is used, i.e.: you may use

"company" or "lastname" or "firstname" plus "lastname"

company
optional
Format CHAR(2..50)

Comany name of customer; optional if company is used, i.e.: you may use

"company" or "lastname" or "firstname" plus "lastname"

street
optional
Format CHAR(1..50)

Street number and name (required: at least one character)

addressaddition
optional
Format CHAR(1..50)

Samples 7th floor
        c/o Maier

Specifies an additional address line for the invoice address of the customer.

zip
optional
Format CHAR(2..50)
Permitted Symbols [0-9][A-Z][a-z][_.-/ ]

Postcode

city
optional
Format CHAR(2..50)

City of customer

country
required
Fixed Value DE
email
optional
Format CHAR(5..254)

Mandatory if "add_paydata[shopping_cart_type]=DIGITAL"

Permitted Symbols RFC 5322

Special Remark email validation:

Max. length for email is 254 characters. Validation is set up in the following way:

Username = Max. 63 characters

Domain Name = Max. 63 characters
Domain Suffixes = Max. 4 suffixes with max. 124 characters 
Example: username[63]@domain_name[63].suffix[60].suffix[60].suffix[4]

"@" and "." is counted as a character as well; in case of a total of three suffixes, this would allow a total of 254 characters.

email-address of customer

telephonenumber
optional
Format CHAR(1..30)

Phone number of customer

birthday
optional
Format DATE(8), YYYYMMDD


Samples 20190101
                  19991231

Date of birth of customer

language
optional
Format LIST

Permitted values ISO 639-1 (Language)2-letter-codes

Language indicator (ISO 639) to specify the language that should be presented to the customer (e.g. for error messages, frontend display).

If the language is not transferred, the browser language will be used. For a non-supported language English will be used.

vatid
optional
Format CHAR(1..50)

VAT identification number. Used for b2b transactions to indicate VAT number of customer.

gender
optional
Format LIST

Permitted values

f

m
d

Gender of customer (female / male / diverse* )

* currently not in use

personalid
optional
Format CHAR(1..32)

Permitted Symbols [0-9][A-Z][a-z][+-./()]

Person specific numbers or characters, e.g. number of passport / ID card

ip
optional
Format CHAR(1..39)

Customer's IP-V4-address (123.123.123.123) or IP-V6-address

Delivery data Parameters
shipping_firstname
required
Format CHAR(1..50)

First name of delivery address

shipping_lastname
required
Format CHAR(1..50)

Surname of delivery address

shipping_company
optional
Format CHAR(2..50)

Company name of delivery address

shipping_street
optional
Format CHAR(2..50)

Street number and name of delivery address

shipping_zip
required
Format CHAR(2..50)

Postcode of delivery address

shipping_addressaddition
optional
Format CHAR(1..50)

Specifies an additional address line for the delivery address of the customer, e.g. "7th floor", "c/o Maier".

shipping_country
optional
Format LIST

Permitted values ISO 3166 2-letter-codes

 

Samples

DE
GB
US
 

Specifies country of address for the customer.

Some countries require additional information in parameter "state"

shipping_state
optional
Format LIST

Permitted values ISO 3166-2 States (regions)  2-letter-codes

Samples US Samples CA
AK BC
AB AR
AL
Wallet PARAMETERS
wallettype
required
Fixed Value PPE
successurl
required
Format CHAR(2..255)

Scheme <scheme>://<host>/<path>
       <scheme>://<host>/<path>?<query>
       
scheme-pattern: [a-zA-Z]{1}[a-zA-Z0-9]{1,9}

URL for "payment successful"

errorurl
required
Format CHAR(2..255)

Scheme <scheme>://<host>/<path>
       <scheme>://<host>/<path>?<query>
       
scheme-pattern: [a-zA-Z]{1}[a-zA-Z0-9]{1,9}

URL for "faulty payment"

backurl
required
Format CHAR(2..255)

Scheme <scheme>://<host>/<path>
       <scheme>://<host>/<path>?<query>
       
scheme-pattern: [a-zA-Z]{1}[a-zA-Z0-9]{1,9}

URL for "Back" or "Cancel"

Article Parameters
it[n]
optional
it[n] Comments
goods Goods
shipment Shipping Charges
handling Handling fee
voucher Voucher / discount

required for physical goods in order to ensure PayPal seller protection

id[n]
optional
Format CHAR(1..32)
Array Array elements [n] starting with [1]; serially numbered; max [400]Permitted Symbols [0-9][a-z][A-Z], .,-,_,/

required for physical goods in order to ensure PayPal seller protection

International Article Number (EAN bzw. GTIN)

Product number, SKU, etc. of this item

pr[n]
optional
Format NUMERIC(10) max. 19 999 999 99
Array Array elements [n] starting with [1]; serially numbered; max [400]Permitted

required for physical goods in order to ensure PayPal seller protection

Unit gross price of the item in smallest unit! e.g. cent

no[n]
optional
Format NUMERIC(6)
Array Array elements [n] starting with [1]; serially numbered; max [400]Permitted

required for physical goods in order to ensure PayPal seller protection

Quantity of this item

de[n]
optional
Format CHAR(1..255)
Array Array elements [n] starting with [1]; serially numbered; max [400]Permitted

required for physical goods in order to ensure PayPal seller protection

Description of this item. Will be printed on documents to customer.

va[n]
optional
Format NUMERIC(4)

VAT rate (% or bp)

Array elements [n] starting with [1]; serially numbered; max [400]

Response Parameters
Permitted Values
APPROVED
ERROR
Response Parameter (approved)
txid
Format NUMERIC(9..12)

The txid specifies the payment process within the PAYONE platform

Format NUMERIC(6..12)

PAYONE User ID, defined by PAYONE

Response Parameter (Error)
Format NUMERIC(1..6)

In case of error the PAYONE Platform returns an error code for your internal usage.

Format CHAR(1..1024)

In case of error the PAYONE Platform returns an error message for your internal usage.

Format CHAR(1..1024)

The customermessage is returned to your system in order to be displayed to the customer.

(Language selection is based on the end customer's language, parameter "language")

Host: api.pay1.de
Content-Type: application/x-www-form-urlencoded
Payload    

aid=52078
amount=3800
backurl=https://magento2-2462-fc95b7fe12da4f8e9bfc3213bcf861a3.patsy.dev/payone/onepage/cancel/
city=Berlin
clearingtype=wlt
country=DE
currency=EUR
de[1]=Endeavor Daytrip Backpack
de[2]=Aufschlag Versandkosten
email=frank@patsy.dev
encoding=UTF-8
errorurl=https://magento2-2462-fc95b7fe12da4f8e9bfc3213bcf861a3.patsy.dev/payone/onepage/cancel?error=1/
firstname=Frank
id[1]=24-WB06
id[2]=delivery
integrator_name=Magento2
integrator_version=2.4.6-p2
ip=89.245.17.33
it[1]=goods
it[2]=shipment
key=17031f73e2c6f9755788bddfff04169b
language=de
lastname=Payonetester
mid=14648
mode=test
no[1]=1
no[2]=1
portalid=2037267
pr[1]=3300
pr[2]=500
reference=1233500801000000025
request=authorization
shipping_city=Berlin
shipping_country=DE
shipping_firstname=Frank
shipping_lastname=Payonetester
shipping_street=Badensche Str. 24
shipping_zip=10715
solution_name=fatchip
solution_version=3.8.1
street=Badensche Str. 24
successurl=https://magento2-2462-fc95b7fe12da4f8e9bfc3213bcf861a3.patsy.dev/payone/paypal/returned/
va[1]=0
va[2]=0
wallettype=PPE
workorderid=PP2AAD6FJJSCSRH7
zip=10715
RESPONSE
                        
status=APPROVED
txid=987654321
userid=123456789
POST Request - Capture
common Parameters
txid
required
Format NUMERIC(9..12)

The txid specifies the payment process within the PAYONE platform

capturemode
required
Format LIST
Value Comment
completed Set with last capture; i.e.: Delivery completed.
No further capture is allowed.
notcompleted Set with partial deliveries (last delivery with "completed")
Another capture is expected to complete the transaction.

Specifies whether this capture is the last one or whether there will be another one in future.

sequencenumber
optional
Format NUMERIC(1..3)

Permitted values 0..127

Sequence number for this transaction within the payment process (1..n), e.g. PreAuthorization: 0, 1. Capture: 1, 2. Capture: 2

Required for multi partial capture (starting with the 2nd capture)

amount
required
Format NUMERIC(1..10)

Permitted values max. +/- 19 999 999 99

Specifies the total gross amount of a payment transaction.

Value is given in smallest currency unit, e.g. Cent of Euro; Pence of Pound sterling; Öre of Swedish krona.

The amount must be less than or equal to the amount of the corresponding booking.

currency
required
Fixed Value EUR
narrative_text
optional
Format CHAR(1..81)

Dynamic text element on account statements
(3 lines with 27 characters each) and credit card statements.

Response Parameters
Permitted Values
APPROVED
PENDING
ERROR
Response Parameter (approved)
Format NUMERIC(9..12)

The txid specifies the payment process within the PAYONE platform

Format LIST 
Value Comment
yes Settlement of outstanding balances has been carried out.
no Settlement of outstanding balances has not been carried out.

Provides information about whether a settlement of balances has been carried out.

 ---

Response parameters (pending)
Format NUMERIC(9..12)

The txid specifies the payment process within the PAYONE platform

Format NUMERIC(6..12)

PAYONE User ID, defined by PAYONE

 ---

Response parameters (error)
Format NUMERIC(1..6)

In case of error the PAYONE Platform returns an error code for your internal usage.

Format CHAR(1..1024)

In case of error the PAYONE Platform returns an error message for your internal usage.

Host: api.pay1.de
Content-Type: application/x-www-form-urlencoded
Payload
mid=23456 portalid=12345123 key=abcdefghijklmn123456789 api_version=3.10 mode=test request=capture encoding=UTF-8 txid=345678901 amount=300 currency=EUR
RESPONSE
status=APPROVED txid=345678901 settleaccount=no
POST Request - Debit
Common Parameters
txid
required
Format NUMERIC(9..12)

The txid specifies the payment process within the PAYONE platform

sequencenumber
required
Format NUMERIC(1..3)

Permitted values 0..127

Sequence number for this transaction within the payment process (1..n), e.g. PreAuthorization: 0, 1. Capture: 1, 2. Capture: 2

Required for multi partial capture (starting with the 2nd capture)

amount
required
Format NUMERIC(1..10)

Permitted values max. +/- 19 999 999 99

Specifies the total gross amount of a payment transaction.

Value is given in smallest currency unit, e.g. Cent of Euro; Pence of Pound sterling; Öre of Swedish krona.

The amount must be less than or equal to the amount of the corresponding booking.

currency
required
Fixed Value EUR
narrative_text
optional
Format CHAR(1..81)

Dynamic text element on account statements

(3 lines with 27 characters each) and credit card statements.

clearingtype
optional
Fixed Value wlt
use_customerdata
optional
Format LIST
Value Comment
yes Uses current account details from debtor's master data (default)
no Uses the last known account details in the payment process
 

Use account details from debtor's master data

transaction_param
optional
Format CHAR(1..50)
Permitted Symbols [0-9][A-Z][a-z][.-_/]

Optional parameter for merchant information (per payment request)

Response Parameters
status
Permitted Values
APPROVED
ERROR
Response Parameter (approved)
txid
Format NUMERIC(9..12)

The txid specifies the payment process within the PAYONE platform

settleaccount
Format LIST 
Value Comment
yes Settlement of outstanding balances has been carried out.
no Settlement of outstanding balances has not been carried out.

Provides information about whether a settlement of balances has been carried out.

Response Parameter (error)
errorcode
Format NUMERIC(1..6)

In case of error the PAYONE Platform returns an error code for your internal usage.

errormessage
Format CHAR(1..1024)

In case of error the PAYONE Platform returns an error message for your internal usage.

customermessage
Format CHAR(1..1024)

The customermessage is returned to your system in order to be displayed to the customer.

(Language selection is based on the end customer's language, parameter "language")

Host: api.pay1.de
Content-Type: application/x-www-form-urlencoded
Payload                  
mid=23456 portalid=12345123 key=abcdefghijklmn123456789 api_version=3.10 mode=test request=capture encoding=UTF-8 txid=345678901 sequencenumber=1 amount=1000 currency=EUR
RESPONSE
status=APPROVED txid=345678901 settleaccount=no
POST Request - Pre-/ Authorization -BA

PayPal Billing Agreement

Billing Agreements allow you to charge a customer's PayPal account without the customer being present in the future. For this to work, a customer has to first agree to the Billing Agreement during an initial redirect.

Note the additional text of the Billing Agreement.

 ---

These are the required steps to set up a Billing Agreement. They are independent from a payment transaction:

  1. Send a request “preauthorization” with an amount € 0,01 and the additional parameters recurrence=recurring OR oneclick and customer_is_present=yes("yes", because the customer has to confirm the billing agreement once).
  2. PAYONE PayPal Connector will initiate a billing agreement at PayPal which can be referenced with further requests.
  3. To initiate a recurring payment the following requests of type “authorization” will refer either to merchants customerid or PAYONE userid together with the parameter recurring=recurring/oneclick (see below) and customer_is_present=no.
  4. The PayPal billing agreement will be automatically referenced by the PAYONE platform with using merchantid or userid

 ---

There is no request „capture“ required or expected to capture the amount of € 0,01. This request would be denied in this special use case

Request "preauthorization"

  1. "preauthorization" is used to get a billing agreement from the customer (see above)
    This amount does not need to be captured.
  2. "authorization" / "preauthorization" can then be used without customer presence by using
    • parameter "customer_is_present=no"
    • and parameter "recurrence=oneclick"
    • or Customer needs to enter payment details during the first oneclick-payment.The next payments will be processed using the stored payment details.

    Approval by PayPal for the Billing Agreement is required

  3. "recurrence=recurring"
    • Used for recurring payments, e.g. for abonnement/contract, access
Host: api.pay1.de
Content-Type: application/x-www-form-urlencoded
Payload
                    
aid=12345
mid=23456
portalid=12345123
key=abcdefghijklmn123456789
api_version=3.10
request=preauthorization
amount=1
mode=test
clearingtype=wlt
wallettype=PPE
currency=EUR
country=DE
street=Any street 1
city=Yourtown
zip=12345
email=installer@myemail.com
firstname=Bill
lastname=Agreement
recurrence=recurring
customer_is_present=yes
RESPONSE
status=REDIRECT
add_paydata[token]=EC-xxxxxxxxxxxx
redirecturl=https://www.sandbox.paypal.com/webscr?useraction=commit&cmd=_express-checkout&token=EC-xxxxxxxxxxxx
txid=123456789
userid=987654321
Host: api.pay1.de
Content-Type: application/x-www-form-urlencoded
Payload
                    
aid=12345
mid=23456
portalid=12345123
key=abcdefghijklmn123456789
api_version=3.10
request=authorization
amount=2500
mode=test
clearingtype=wlt
wallettype=PPE
currency=EUR
country=DE
recurrence=recurring
customer_is_present=no
userid=987654321 (the same as before)
RESPONSE
status=APPROVED
txid=234567890
userid=987654321

FraudNet Library

Use of Magnes Library

To use Magnes Library support with express checkout, please start the process with a generic payment request with action “setexpresscheckout” as described above. Part of the response will be the add_paydata[token] that contains the PayPal express checkout token, you need to initialise the magnes library.

In addition to the use of magnes library in express echeckout context, you can also acquire the express checkout token while using the “normal” PayPal checkout. In this case, you can send an authorization or preauthorization to our server api and the response will contain the token inside the parameter add_paydata[token]. Please use this token like in the PayPal express checkout to initialise the magnes library and send data to PayPal.

After initialization the magnes library will automatically send the risk payload to PayPal. For further details please read the magnes library documentation provided by PayPal.

The express checkout uses the complete process including generic payment requests. If you don’t want to use the complete express checkout experience, the process will start with the “place order” button.

Request "preauthorization" / "authorization"
add_paydata[risk_session_correlation_id]
required

This id is generated through FraudNet Library.

Please use this parameter to send the value PayPal for fraud prevention purposes.

Sequence Diagrams

Sale ECS

Order & Delivery ECS

Granting PAYONE access to your PayPal account

You need to authorise PAYONE to manage your PayPal account before PAYONE can process PayPal payments for you. To do so, please follow the instructions below.

In your PayPal account, click on „Profile" and then on „Account Settings"

Under "API Access" click on API Access - "Update"
 

PP-account-api-access

Choose Pre-build payment solution
 

PP-account-api-prebuild

Adding a new api user
 

PP-account-api-prebuild-add

For live Business Accounts: technik_api1.payone.de

For sandbox Business Accounts: api_1217604614_biz_api1.payone.de

If you want to use your own sandbox business account, please contact our support and tell us the corresponding email address of your sandbox business account. We'll need this to link payments made through our platform to your sandbox business account.

Enter API Username and search with button „Lookup"
 

Activate the necessary permissions (see screenshot – Add new third party permissions) 
 

pp-api-grant3rdparty.png


Select authorization as follows:


  • Using express purchase processing for payments
  • Issue a refund for specific transactions
  • Process your customers credit or debit card payments
  • Obtain information about a single transaction
  • Search your transactions for items that match specific criteria and display the results
  • Authorize and capture your PayPal transactions
  • Charge an existing customer based on a prior transaction
  • Obtain authorization for pre-approved payments and initiate pre-approved transactions
  • Accept or deny pending transactions
  • Issue a refund or any prior transaction

Enabling Digital Goods

If you use PayPal's "Digital Goods" feature, please note:


  • "Digital Goods" must enabled separately by PayPal. Please contact your PayPal customer service advisor to have the feature enabled.
  • Separate PAYONE configuration and activation is also required; please contact your customer advisor in the Merchant Service to arrange this.
  • Transfer of the configuration is mandatory for a Digital Goods retailer using PayPal.
  • The necessary data will only be transferred to PayPal if the parameter is activated