Paypal Express V2

The PayPal Express v2 integration offers an accelerated checkout process that enhances the user experience. By enabling customers to swiftly complete transactions using their PayPal accounts, this integration helps reduce cart abandonment and speeds up the payment process.

With streamlined authentication and approval steps, PayPal Express v2 ensures a secure, efficient, and user-friendly checkout for your e-commerce platform. In addition to the standard checkout, you also have the option to use the JavaScript SDK to render PayPal buttons and respond to specific PayPal events.

Express vs StandarD

We offer the freedom to implement the payment options on several pages:

on the product page
Your customers can directly pay on your product page.

on the shopping cart page
Your customers can chose to pay on your shopping cart page

Regular on the checkout page

as a regular checkout on the payment solution page.

The PayPal Express v2 handles the first two cases, Product page and Shopping Cart page. For more information about the Regular Checkout please use our PayPal v2 implementation guide. 

Javascript SDK and API Requests

There are two options for rendering the PayPal button. Merchants can choose between a dynamic PayPal button or the standard PayPal JavaScript SDK to render the buttons and respond to key events such as onApprove, onError, onCancel, and onShippingChange.

The JavaScript Button Renderer provides a straightforward and efficient way to integrate the PayPal button into your website, enhancing both functionality and user experience. For detailed information about the JavaScript SDK, please refer to our Implementation Guide and the PayPal JavaScript SDK page.

Before making specific API requests for PayPal v2, you should become familiar with the general Payone Server API interface definition, as described in the Channel Server API - Platform - PAYONE documentation. In this section, we will outline the request chain and specific considerations for PayPal Checkout v2 integration.

PayPal Express Integrations

POST Request - genericpayment – add_paydata[action] = setexpresscheckout

For PayPal Express v2, the 'genericpayment' request type is mandatory. The initial 'genericpayment' request generates a unique workorder ID from the PAYONE platform, which is included in the response. This ID is essential for all subsequent requests related to the PayPal Express Checkout.

Process Description:

  • First of all you have to use the request “genericpayment”
  • The parameter “add_paydata[action]=setexpresscheckout” and add_paydata[payment_action]=CAPTURE or AUTHORIZE
  • With “setexpresscheckout” you initiate the transaction at PayPal and get an unique “workorderid” from the PAYONE platform
  • 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
  • To charge the customers PayPal account you have to do a request “preauthorization/capture” or an “authorization” with the unique “workorderid”
  • After completing step 4 you will get the “txid” which is used for further steps like “capture”, “debit” or “refund”

When the shipping address differs from the address received in the 'genericpayment[action]=getexpresscheckoutdetails' response, it is mandatory to provide the updated shipping address in the 'authorization' or 'preauthorization' request. Failure to do so will result in the loss of PayPal seller protection. The 'genericpayment[action]=getexpresscheckoutdetails' call only provides the customer's shipping address from PayPal. Additionally, use this shipping address as the billing address, but allow customers the option to change the billing address during checkout. If you want to enable multi-partial capture, you must set 'settleaccount' to 'yes' or 'auto' to allow for subsequent captures. Avoid setting 'settleaccount' to '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: PAL

PAL: PayPal v2

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" when not using the javascript SKD implementation for button rendering

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" when not using the javascript SKD implementation for button rendering

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
Format Text

Set to "setexpresscheckout"

add_paydata[payment_action]
required
Fixed Value: CAPTURE OR AUTHORIZE

Is either Capture (for Authorization call) or Authorize (for preauthorization call)

add_paydata[request_billing_address]
optional
AN..255

Set this parameter to '1' if you wish to receive the customer's billing address. Do not include this parameter if you do not want the billing address.

Please note that your PayPal account must be activated by PayPal to receive the billing address. For further details, consult your PayPal Customer Success Manager (CSM).

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 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 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. Value negative for refund like -1500 for refund of 15 EUR

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)
Array elements [n] starting with [1]; serially numbered; max [400]

VAT rate (% or bp)

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

The ID is unique, and the returned workorder ID is mandatory for subsequent requests related to PayPal Express Checkout.

The workorder ID is a technical identifier provided by the PAYONE platform to recognize a specific work order. A work order is a component of the payment process, identified by a transaction ID (txid). This workorder ID is utilized in the generic payment request.

redirecturl

Redirect URL

add_paydata[orderId]

The orderid can be used for multiple captures and Refunds, in order to connect a specific refund with a specific capture

add_paydata[workorderid]
Format CHAR(1..50)

The ID is unique, and the returned workorder ID is mandatory for subsequent requests related to PayPal Express Checkout.

The workorder ID is a technical identifier provided by the PAYONE platform to distinguish a specific work order. Each work order is part of the payment process and is identified by a transaction ID (txid). The workorder ID is used in the generic payment request.

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: 12345
portalid: 3456789,
key: XXXXXXXXXXXXXXXXX (your hashed key), 
clearingtype: wlt,
mode: test,
encoding: UTF-8,
request: genericpayment,
reference: your reference,
aid: 56789,
language: de,
wallettype: PAL,
add_paydata[action]: setexpresscheckout,
add_paydata[payment_action]: your Authorization method,
id[n]: 1001001,
id[n+1]: 1001002,
it[n]: goods,
it[n+1]: shipment,
no[n]: 1,
no[n+1]: 1,
pr[n]: 20000,
pr[n+1]: 500,
de[n]: Testartikel1,
de[n+1]: Transport,
va[n]: 19,
va[n+1]: 19,
amount: 20500,
currency: EUR          
RESPONSE
                            
status: REDIRECT,
workorderid: PP2AAD7F08FTA7M2,
redirecturl: https: //www.sandbox.paypal.com/checkoutnow?token,
add_paydata[orderId]: 4PA170957A305254Y,
add_paydata[workorderid]: PP2AAD7F08FTA7M2
POST Request - genericpayment – add_paydata[action] = getexpresscheckoutdetails

This call is used to retrieve customer information from PayPal. The received shipping address must be displayed in the shop for the ECS, even though the shipping address will be sent to PayPal again with the final 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 PAL

Pal: Paypal v2

mode
required
Fixed Value: test/live
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"

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 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 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. Value negative for refund like -1500 for refund of 15 EUR

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)
Array elements [n] starting with [1]; serially numbered; max [400]

VAT rate (% or bp)

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.

add_paydata[payerid]
Format CHAR(1..50)

Unique PayPal Customer Account identification number.

add_paydata[payerstatus]
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".

add_paydata[shipping_firstname]
Format CHAR(1..50)
add_paydata[shipping_lastname]
Format CHAR(1..50)
add_paydata[shipping_company]
Format CHAR(1..50)
add_paydata[shipping_street]
Format CHAR(1..50)
add_paydata[shipping_addressaddition]
Format CHAR(1..50)
add_paydata[shipping_zip]
Format CHAR(1..50)
add_paydata[shipping_city]
Format CHAR(1..50)
add_paydata[shipping_state]
Format CHAR(1..50)
add_paydata[shipping_country]
Format CHAR(1..50)
add_paydata[shipping_lastname]
Format CHAR(1..50)
add_paydata[street]
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

add_paydata[city]
Format CHAR(1..50)

Billing city

add_paydata[country]
Format ISO 3166

Billing country

add_paydata[zip]
Format CHAR(1..50)

Billing zip

add_paydata[lastname]
Format CHAR(1..50)

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

add_paydata[telephonenumber]
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                    

mid: 12345,
portalid: 3456789,
key: XXXXXXXXXXXXXXXXX (your hashed key),
clearingtype: wlt,
mode: test,
encoding: UTF-8,
request: genericpayment,
aid: 56789 (your Subaccount ID),
language: de,
wallettype: PAL,
add_paydata[action]: getexpresscheckoutdetails,
workorderid: PP2AAD7F08FTA7M2,
id[n]: 1001001,
id[n+1]: 1001002,
it[n]: goods,
it[n+1]: shipment,
no[n]: 1,
no[n+1]: 1,
pr[n]: 20000,
pr[n+1]: 500,
de[n]: Testartikel1,
de[n+1]: Transport,
va[n]: 19,
va[n+1]: 19,
amount: 20500,
currency: EUR            
RESPONSE

status: OK,
workorderid: PP2AAD7F08FTA7M2,
add_paydata[shipping_street]: musterhausstrasse,
add_paydata[country]: DE,
add_paydata[firstname]: Maxime,
add_paydata[payerstatus]: VERIFIED,
add_paydata[shipping_city]: mysterystadt,
add_paydata[payerid]: BSY73QCQ42RNJ,
add_paydata[lastname]: Mus,
add_paydata[shipping_zip]: 01099,
add_paydata[shipping_firstname]: Maxime,
add_paydata[shipping_country]: DE,
add_paydata[email]: manuelles@buyerkonto.de,
add_paydata[shipping_lastname]: Mus,
add_paydata[shipping_addressaddition]: musterfirma        
POST Request - genericpayment – add_paydata[action] = update_order

This can be used, when through the SDK it is signaled, that the buyer has changed the shipping address on their PayPal site, so that the shipping costs have changed (delivery to the isles, or abroad). Only the parameter that needs to be changed, need to be sent

Account Parameters
request
required
Fixed Value: preauthorization / 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
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.

PERSONAL DATA Parameters
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

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.

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 BA
Wallet PARAMETERS
wallettype
required
Fixed Value PAL
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]
required

it[n] Comments
goods Goods
shipment Shipping Charges
handling Handling fee
voucher Voucher / discount
id[n]
required
Format CHAR(1..32)
Array elements [n] starting with [1]; serially numbered; max [400]
Permitted Symbols [0-9][a-z][A-Z], .,-,_,/

International Article Number (EAN bzw. GTIN)

Product number, SKU, etc. of this item

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

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

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

Quantity of this item

de[n]
required
<spFormat CHAR(1..255)
<spArray elements [n] starting with [1]; serially numbered; max [400]

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

va[n]
optional
Format NUMERIC(4)
Array elements [n] starting with [1]; serially numbered; max [400]

VAT rate (% or bp)

Paydata Parameters
add_paydata[payment_action]
required
Fixed Value:  Capture / Authorize

Is either Capture (for Authorization call) or Authorize (for preauthorization call)

add_paydata[action]
required
Fixed Value: update_order
add_paydata[request_id]
required
Format: (CHAR 1...255)

...sometext

Response Parameters
status
required
Permitted Values
OK
ERROR
Response Parameter (OK)
workorderid
Format AN(1..16)

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.

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
request: genericpayment,
mid: 18323,
aid: 18324,
portalid: 2013285,
key: 1856f15989f3df533f77f294a6871c2a,
add_paydata[payment_action]: your payment action
add_paydata[action]: update_order,
add_paydata[request_id]: 73851048-867f-4f1b-be4a-4daafa2ef999,
id[n]: 1001001,
id[n+1]: 1001002,
it[n]: goods,
it[n+1]: shipment,
no[n]: 1,
no[n+1]: 1,
pr[n]: 2000,
pr[n+1]: 500,
de[n]: Testartikel1,
de[n+1]: Transport,
successurl: https: //pay1-test.de/api_test.php?exit=success&txid=__txid__,
backurl: https: //pay1-test.de/api_test.php?exit=back,
errorurl: https: //pay1-test.de/api_test.php?exit=error&errorcode=__errorcode__,
encoding: UTF-8,
language: de,
email: email@email.com,
telephonenumber: 49123456789,
currency: EUR,
workorderid: PP2AAD7924U0PV3H,
clearingtype: wlt,
wallettype: PAL,
customerid: 13377331,
amount: 1100,
mode: test


RESPONSE
status=OK
workorderid: PP2AAD7924U0PV3H              
POST Request - Pre-/ Authorization
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
required (in CN)
Format LIST
Permitted values ISO 3166-2 States (regions)  2-letter-codes
Samples US Samples CA
AK AB
AL BC

Specifies state / region of country for the customer.
"state" is required for these countries: US, CA, CN, JP, MX, BR, AR, ID, TH, IN and must not be used for all other countries.

Wallet PARAMETERS
wallettype
required
Fixed Value PAL
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 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 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. Value negative for refund like -1500 for refund of 15 EUR

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)
Array elements [n] starting with [1]; serially numbered; max [400]

VAT rate (% or bp)

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    

mid: 12345
portalid: 3456789,
key: XXXXXXXXXXXXXXXXX (your hashed key),
clearingtype: wlt,
mode: test,
encoding: UTF-8,
request: authorization,
reference: your reference,
aid: 56789 (your Subaccount ID),
language: de,
wallettype: PAL,
workorderid: PP2AAD7F08FTA7M2,
id[n]: 1001001,
id[n+1]: 1001002,
it[n]: goods,
it[n+1]: shipment,
no[n]: 1,
no[n+1]: 1,
pr[n]: 20000,
pr[n+1]: 500,
de[n]: Testartikel1,
de[n+1]: Transport,
va[n]: 19,
va[n+1]: 19,
amount: 20500,
currency: EUR
firstname: Maxime,
lastname: Mus,
street: musterhausstrasse,
country: DE,
city: mysterystadt,
zip: 01099,
email: manuelles@buyerkonto.de,
shipping_firstname: Maxime,
shipping_lastname: Mus,
shipping_street: musterhausstrasse,
shipping_country: DE,
shipping_city: mysterystadt,
shipping_zip: 01099,
successurl: https://yourdomain.dev/api/payone/success.php,
errorurl: https://yourdomain.dev/api/payone/error-php,
backurl: https://yourdomain.dev/api/payone/error-php  
RESPONSE
                        
status=APPROVED
txid=1202850603
userid=27969548
POST Request - Capture
Account Parameters
request
required
Fixed Value: capture
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
txid
required
Format NUMERIC(9..12)

The txid specifies the payment process within the PAYONE platform

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

add_paydata[capture_id]
Format CHAR(16)

The capture ID can be used for multiple captures and refunds, to connect a specific refund to a specific capture

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

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

mid=23456 (your mid)
portalid=12345123 (your portalid) 
key=abcdefghijklmn123456789 (your hashed key) 
api_version=3.10
mode=test (set to „live“ for live-requests)
request=capture
encoding=UTF-8
id[n]: 1001001,
id[n+1]: 1001002,
it[n]: goods,
it[n+1]: shipment,
no[n]: 1,
no[n+1]: 1,
pr[n]: 20000,
pr[n+1]: 500,
de[n]: Testartikel1,
de[n+1]: Transport,
va[n]: 19,
va[n+1]: 19,
amount: 20500,
currency: EUR,
sequencenumber: 1,
settleaccount: auto,
txid: 1202830913
RESPONSE
status: APPROVED,
txid: 1202830913,
add_paydata[capture_id]: TX2AAD7XN4UFGG9X,
settleaccount: yes

POST Request - Debit
Account Parameters
request
required
Fixed Value: debit
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
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.

add_paydata[capture_id]
optional
Fixed Char(1..16)

The capture ID can be used for multiple captures and refunds, to connect a specific refund to a specific capture

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
Permitted Values
APPROVED
PENDING
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 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 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 (your mid)
portalid=12345123 (your portalid)
key=abcdefghijklmn123456789 (your hashed key)
api_version=3.10
mode=test (set to „live“ for live-requests)
request=capture
encoding=UTF-8
request: refund,
aid: 54321 (your aid),
sequencenumber: 2,
txid: 1202830913,
amount: -20500,
currency: EUR
RESPONSE
status: APPROVED,
txid: 1202830913

Sequence Diagrams

Javascript sDK - Preauthorization - Capture - Refund

 

Javascript sDK - Authorization - Refund