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 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. |
POST Request - Pre-/ Authorization
For PayPal as a standard payment method in your checkout:
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
|
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). |
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 "@" 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 |
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
|
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" |
it[n] optional
|
|
||||||||||
id[n] optional
|
Format CHAR(1..32)
Array elements [n] starting with [1]; serially numbered; max [400]
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 elements [n] starting with [1]; serially numbered; max [400]
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 elements [n] starting with [1]; serially numbered; max [400]
Required for physical goods in order to ensure PayPal seller protection Quantity of this item |
||||||||||
de[n] optional
|
Format CHAR(1..255)
Array elements [n] starting with [1]; serially numbered; max [400] 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] |
Permitted Values
APPROVED
ERROR
|
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 |
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=100
api_version=3.10
clearingtype=wlt
country=DE
currency=EUR
encoding=UTF-8
firstname=Test
key=19539eb4b369b29f314b51368076475a
lastname=Test
mid=14648
mode=test
portalid=2037267
reference=TESTPO-5694966661501
request=preauthorization
successurl=https://www.payone.com
wallettype=PPE
RESPONSE
status=REDIRECT
txid=1036710580
userid=696218018
redirecturl=https://www.sandbox.paypal.com/webscr?useraction=commit&cmd=_express-checkout&token=EC-4EH96765J9760104C
add_paydata[token]=EC-4EH96765J9760104C
POST Request - Capture
txid
required
|
Format NUMERIC(9..12)
The txid specifies the payment process within the PAYONE platform |
||||||
capturemode
required
|
Format LIST
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 |
Permitted Values
APPROVED
PENDING
ERROR
|
Format NUMERIC(9..12)
The txid specifies the payment process within the PAYONE platform |
|||||||
Format LIST
Provides information about whether a settlement of balances has been carried out. |
Format NUMERIC(9..12)
The txid specifies the payment process within the PAYONE platform |
|
Format NUMERIC(6..12)
PAYONE User ID, defined by PAYONE |
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
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
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) |
status |
Permitted Values
APPROVED
ERROR
|
txid |
Format NUMERIC(9..12)
The txid specifies the payment process within the PAYONE platform |
||||||
settleaccount |
Format LIST
Provides information about whether a settlement of balances has been carried out. |
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
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" |
Choose Pre-build payment solution |
Adding a new api user |
|
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) |
Select authorization as follows:
|
Enabling Digital GoodsIf you use PayPal's "Digital Goods" feature, please note:
|