Implementation guide
Use cases
Use the V4.1/PCI/Charge/CreatePayment Web Service depending on the authentication protocol and the authentication result.
3D Secure v2 authentication
Test
Test the V4.1/PCI/Charge/CreatePayment Web Service using our playground.
Authentication details
Retrieve the following data:
Authentication protocol
name | Description |
---|---|
Name | Name of authentication protocol, with the THREEDS value |
Version | Version of the authentication protocol. Possible values:
|
Name of the Directory Server (DS) used during the authentication. Possible values:
| |
3DS preference transmitted to the DS if the cardholder authentication is successful, with the 'SUCCESS' or 'ATTEMPT’ status. |
- If the authentication status has the
SUCCESS
orATTEMPT
, retrieve this information:
</tbody>
name | Description |
---|---|
Name of the authentication protocol. Required value:
| |
Reference generated by the issuer to confirm the integrity of the transaction data. Depending on the Directory Server used,
E.g.: +kAr/o8S0DxgGYkz7QQHZCw8V5k= | |
E-commerce Indicator (ECI). Value returned by the ACS after authentication, depending on the authentication status and the card type. E.g.: 05 | |
dsTransID | Unique identifier of the transaction generated by the DS 3DS2. E.g.: d6706a0d-c48d-4cf4-a1d2-d4a401a3143e |
exemption | Exemption applied. Required for FRICTIONLESS, value of the 'authenticationType’ field. See:Reason for release and exemptions. E.g.: LOW_VALUE |
Merchant name used to authenticate the cardholder. | |
acsTransID | Unique identifier of the transaction generated by the ACS. E.g.: d727ebfe-de4c-4682-85fa-e60ca00a9cff |
Algorithm used to verify bearer authentication. Possible values:
| |
Authentication scoring. Ex: 31 |
- If the authentication status is failed with the following values:
DISABLED ENROLLED_UNAVAILABLE FAILED NOT_ENROLLED UNAVAILABLE
In this case, retrieve this information:
name | Description |
---|---|
Name of the authentication protocol. Required value: Challenge cancellation indicator received in the RReq message. Value returned by the DS if the authentication is cancelled. | |
The reason returned by the DS in case of authentication failure. | |
For the CB network
Request
Required fields
- Amount.
- Currency
Card data
- Payment method type:
CARDS
- Main card number: pan.
- Expiry month.
- Expiry year.
Authentication details
- For the protocol
- name:
THREEDS
- version number
- directoryServer : CB
- challengePreference: Ex: NO_CHALLENGE_REQUESTED in case of success during authentication (status
SUCCESS
orATTEMPT
).
- Test data
authValueAlgorithm : | 2 | authenticationType : | FRICTIONLESS |
authenticationValue : | +kAr/o8S0DxgGYkz7QQHZCw8V5k= | commerceIndicator : | 05 |
challengePreference : | NO_CHALLENGE_REQUESTED | dsTransID : | d6706a0d-c48d-4cf4-a1d2-d4a401a3143e |
exemption : | LOW_VALUE | acsTransID : | d727ebfe-de4c-4682-85fa-e60ca00a9cff |
requestorName : | DEMO STORE | dsScore : | 31 |
Sample query
{ "amount": "1230", "currency": "EUR", "paymentForms": [ { "paymentMethodType": "CARD", "pan": "4970110000001029", "expiryMonth": "03", "expiryYear": "27", "securityCode": "123" } ], "customer": { "email": "sample@example.com" }, "authenticationDetails":{ "protocol":{ "name":"THREEDS", "version":"2", "directoryServer":"CB", "challengePreference":"NO_CHALLENGE_REQUESTED" }, "status":"SUCCESS", "authenticationType":"FRICTIONLESS", "commerceIndicator":"05", "authenticationValue":"+kAr/o8S0DxgGYkz7QQHZCw8V5k=", "dsTransID":"d6706a0d-c48d-4cf4-a1d2-d4a401a3143e", "acsTransID":"d727ebfe-de4c-4682-85fa-e60ca00a9cff", "authValueAlgorithm":"2", "dsScore":"31", "exemption":"LOW_VALUE", "requestorName":"DEMO STORE" } }
For completeness and field descriptions, see the playground: V4.1/PCI/Charge/CreatePayment (menu on the left)
For VISA / Mastercard / AMEX network
Request
Required fields
- Amount.
- Currency
Card data
- Payment method type:
CARDS
- Main card number: pan.
- Expiry month.
- Expiry year.
Authentication details
- For the protocol
- name:
THREEDS
- version number
- directoryServer: the DS name. E.g.:
VISA
orMASTERCARD
orAMEX
- challengePreference: E.g.:
NO_CHALLENGE_REQUESTED
In case of successful authentication (statusSUCCESS
orATTEMPT
).
- Test data
authenticationType : | FRICTIONLESS | dsTransID : | d6706a0d-c48d-4cf4-a1d2-d4a401a3143e |
authenticationValue : | +kAr/o8S0DxgGYkz7QQHZCw8V5k= | commerceIndicator : | 05 |
challengePreference : | NO_CHALLENGE_REQUESTED | exemption : | LOW_VALUE |
Example of a request for VISA
{ "amount": "990", "currency": "EUR", "paymentForms": [ { "paymentMethodType": "CARD", "pan": "4970110000001029", "expiryMonth": "09", "expiryYear": "27", "securityCode": "123" } ], "customer": { "email": "sample@example.com" }, "authenticationDetails":{ "protocol":{ "name":"THREEDS", "version":"2.1.0", "directoryServer":"VISA", "challengePreference":"NO_CHALLENGE_REQUESTED" }, "status":"SUCCESS", "authenticationType":"FRICTIONLESS", "commerceIndicator":"05", "authenticationValue":"+kAr/o8S0DxgGYkz7QQHZCw8V5k=", "dsTransID":"d6706a0d-c48d-4cf4-a1d2-d4a401a3143e", "exemption":"OTHER_EXEMPTION", } }
For completeness and field descriptions, see the playground: V4.1/PCI/Charge/CreatePayment (menu on the left)
Disabled authentication.
The service allows you to create a payment when cardholder authentication has been voluntarily disabled.
In this case, the reason for this decision must be specified using the fieldexemption (See chapter Reason for walkout and exemptions ).
Required fields
- Amount.
- Currency
Card data
- Payment method type:
CARDS
- Main card number: pan.
- Expiry month.
- Expiry year.
Authentication details
- Status:
DISABLED
- Exemption: See: Reason for release and exemptions.
Sample query
{ "amount": "1230", "currency": "EUR", "paymentForms": [ { "paymentMethodType": "CARD", "pan": "4970100000000022", "expiryMonth": "09", "expiryYear": "27", "securityCode": "123" } ], "customer": { "email": "sample@example.com" }, "authenticationDetails":{ "status":"DISABLED", "exemption":"OTHER_EXEMPTION" } }
For completeness and field descriptions, see the playground: V4.1/PCI/Charge/CreatePayment (menu on the left)