Introduction
Acquirers and connection
Pay-Jet Cockpit support many different credit card connections to various acquirers / processors with different protocols.
You can find an overview of all different credit card interfaces here: Payments by Credit Card.
Additional features (e.g. AVS (Address Verification Service), refund, 3-D Secure, ...) may depend on the specific integration and acquirer.
Integration with Pay-Jet Cockpit
In general we offer two different ways of integration:
Payment page (payssl.aspx) | Direct integration (direct.aspx) | |
---|---|---|
Credit card number (PAN) handling |
|
|
3-D Secure handling |
|
|
Additional data |
| |
Shop-/System integration |
|
|
Further actions |
| |
Conclusion | Recommended for standard integrations - due to easy integration and simplified compliance.
| Recommended if you need full control and you do not want a redirect of the consumer.
|
The documentation below is therefore always devided into two sections:
- integration via payment page (payment form)
- with common parameters to integrate Pay-Jet Cockpit payment form
- with parameters to customize the payment form
- with specific parameters for the desired acquirer / processor
- integration via Server-2-Server (direct) integration
- with common parameters to integrate Pay-Jet Cockpit payment form
- with specific parameters for the desired acquirer / processor
Implementation of 3-D Secure (2.x)
Common notes to 3-D Secure
3-D Secure is a process that authenticates the card holder to ensure that the consumer using the credit card data really is the card holder.
3-D Secure shall provide abuse of credit card data - specially in ecommerce environment.
3-D Secure 1.x has been implemented and asks the card holder typically for a password with each card usage.
3-D Secure 2.x has been implemented to:
- enable strong customer authentication (SCA) by authenticate the card holder with 2 independent factors of these 3 factors:
- something the card holder knows, e.g. a password
- something the card holder owns, e.g. a device (like phone to receive a token via SMS or using other OTP, token generator, ...)
- something the card holder is, e.g. biometrics (like finger print, face-id, ...)
- enable seemless authentication where the consumer is not authenticated and not asked to authenticate himself.
3-D Secure with Pay-Jet Cockpit
Prepare yourself / your integration to be 3-D Secure 2.x ready - here a short overview with some technical details.
3-D Secure 1.x | 3-D Secure 2.x | 3-D Secure 2.x Sample | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Depend on your integration: Payment Form ./. Server-2-Server | ||||||||||||
Payment Page / Payment Form | Your existing integration. | Just add API parameter "MsgVer=2.0", the rest is handled automatically by Pay-Jet Cockpit | Add parameter "MsgVer=2.0" to your existing API call to start Payment Form. | |||||||||
URL-processing | URLFailure and URLSuccess work with http-GET | URLFailure and URLSuccess work with http-POST (due to amount of data). So pls. prepare to handle both (GET + POST) | ||||||||||
Server-2-Server integration | Use KVP:
| e.g.:
card=ewogICAgInNlY3VyaXR5Q29kZSI6ICI1NjkiLAogICAgImV4cGlyeURhdGUiOiAiMjAyNTA4IiwKICAgICJjYXJkaG9sZGVyTmFtZSI6ICJXaWxsaWFtIFRob21hcyIsCiAgICAibnVtYmVyIjogIjQxMTExMTExMTExMTExMTEiLAogICAgImJyYW5kIjogIlZJU0EiCn0= | ||||||||||
For specific use cases, find other use cases here: 3DS 2.0 Merchant Use-Cases | ||||||||||||
Use case | 3-D Secure 1.x | 3-D Secure 2.x | 3-D Secure 2.x Sample | |||||||||
Recurring payments (initial) | Use parameter "RTF=I" you may receive TransactionID as Card scheme specific transaction ID | Change "RTF" to parameter "credentialOnFile"-JSON with "recurring" and "initial=true" you may receive schemeReferenceID as Card scheme specific transaction ID | e.g.: The JSON needs to be base64-encoded and then used as value for parameter credentialOnFile (pls. be aware to use the full base64-encoded string, including "=" at the end) credentialOnFile=ewogICAgInR5cGUiOiB7CiAgICAgICAgInJlY3VycmluZyI6IHsKICAgICAgICAgICAgInJlY3VycmluZ0ZyZXF1ZW5jeSI6IDMwLAogICAgICAgICAgICAicmVjdXJyaW5nU3RhcnREYXRlIjogIjIwMjEtMDktMTQiLAogICAgICAgICAgICAicmVjdXJyaW5nRXhwaXJ5RGF0ZSI6ICIyMDIyLTA5LTE0IgogICAgICAgIH0KICAgIH0sCiAgICAiaW5pdGlhbFBheW1lbnQiOiB0cnVlCn0= | |||||||||
Recurring payments (subsequent) | Use parameter "RTF=R" and send TransactionID as Card scheme specific transaction ID | Change "RTF" to parameter "credentialOnFile"-JSON with "recurring" and "initial=false" and send schemeReferenceID as Card scheme specific transaction ID | e.g. After base64-encoding: credentialOnFile=ewogICAgInR5cGUiOiB7CiAgICAgICAgInJlY3VycmluZyI6IHsKICAgICAgICAgICAgInJlY3VycmluZ0ZyZXF1ZW5jeSI6IDMwLAogICAgICAgICAgICAicmVjdXJyaW5nU3RhcnREYXRlIjogIjIwMjEtMDktMTQiLAogICAgICAgICAgICAicmVjdXJyaW5nRXhwaXJ5RGF0ZSI6ICIyMDIyLTA5LTE0IgogICAgICAgIH0KICAgIH0sCiAgICAiaW5pdGlhbFBheW1lbnQiOiBmYWxzZQp9 | |||||||||
Customer Initiated (initial) | Use parameter "RTF=E" you may receive TransactionID as Card scheme specific transaction ID | Change "RTF" to parameter "credentialOnFile"-JSON with "CIT" and "initial=true" you may receive schemeReferenceID as Card scheme specific transaction ID | e.g. After base64-encoding (again: don't miss "=" at the end; it has to be part of the value): credentialOnFile=ewogICAgInR5cGUiOiB7CiAgICAgICAgInVuc2NoZWR1bGVkIjogIkNJVCIKICAgIH0sCiAgICAiaW5pdGlhbFBheW1lbnQiOiB0cnVlCn0= | |||||||||
Merchant Initiated (subsequent) | Use parameter "RTF=M" and send TransactionID as Card scheme specific transaction ID | Change "RTF" to parameter "credentialOnFile"-JSON with "MIT" and "initial=false" and send schemeReferenceID as Card scheme specific transaction ID | e.g. After base64-encoding: credentialOnFile=ewogICAgInR5cGUiOiB7CiAgICAgICAgInVuc2NoZWR1bGVkIjogIk1JVCIKICAgIH0sCiAgICAiaW5pdGlhbFBheW1lbnQiOiBmYWxzZQp9 | |||||||||
Address Verification Service (AVS) (depending on acquirer / processor) | Use parameter
| Change address data to "address"-JSON | e.g. billingAddress=ewogICAgImNpdHkiOiAiTmV3IFlvcmsiLAogICAgImNvdW50cnkiOiB7CiAgICAgICAgImNvdW50cnlBMyI6ICJVU0EiCiAgICB9LAogICAgImFkZHJlc3NMaW5lMSI6IHsKICAgICAgICAic3RyZWV0IjogIlBhcmsgQXZlbnVlIiwKICAgICAgICAic3RyZWV0TnVtYmVyIjogIjI3MCIKICAgIH0sCiAgICAicG9zdGFsQ29kZSI6ICIxMDAxNy0yMDcwIiwKICAgICJzdGF0ZSI6ICJOWSIKfQ== | |||||||||
Apply for frictionless payment processing |
| Provide additional data as JSON-KVP: JSON Objects | e.g.: After base64-encoding (again: don't miss "=" at the end; it has to be part of the value): threeDSPolicy=ewogICAgImNoYWxsZW5nZVByZWZlcmVuY2UgIjogIm1hbmRhdGVDaGFsbGVuZ2UiCn0= |