Creating a Card Payment with an External 3DS Provider
Create a card payment using an external 3DS provider.
When you create a payment, you can use an external 3DS provider instead of the default 3DS provider that is integrated into the payment workflow.
Note
To enable the use of an external 3DS provider, contact Rapyd support.
This option is currently not available for hosted pages.
How
The procedure is made up of the following steps:
Use payment method that supports an external 3DS provider.
Create a payment with the external 3DS provider fields.
Use Payment Method that Supports an External 3DS Provider
Find the payment method's required fields as described in Get Payment Method Required Fields, with the following setting:
payment method
- Specify a payment method. In this example,is_visa_card
(Iceland Visa card) is specified.
Get Payment Method Required Fields request
JSON
curl -X get https://sandboxapi.rapyd.net/v1/payment_methods/is_visa_card/required_fields -H 'access_key: your-access-key-here' -H 'Content-Type: application/json' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here'
Response - partial
JSON
"data": { "type": "is_visa_card", "fields": [ // . . .], "payment_method_options": [ { "name": "3d_required", "type": "boolean", "regex": "", "description": "Allows the client to determine whether the customer is required to complete 3DS authentication for the transaction", "is_required": false, "is_updatable": false }, { "name": "3d_version", "type": "String", "regex": "(1.0.2|2.1.0|2.2.0)", "description": "3D Secure version of the transaction.", "is_required": false, "is_updatable": false }, { "name": "cavv", "type": "String", "regex": "", "description": "Cardholder Authentication Verification Value represented as a 20-byte value that is base64 encoded.", "is_required": false, "is_updatable": false }, { "name": "eci", "type": "String", "regex": "(01|02|05|06|07|08)", "description": "Electronic Commerce Indicator (ECI) from MPI Plugin(3-D Secure 1.0) or 3DS Server(3-D Secure 2.0).", "is_required": false, "is_updatable": false }, { "name": "ds_trans_id", "type": "String", "regex": "", "description": "The Directory Server (DS) Transaction ID. Required Mastercard 2.0.", "is_required": false, "is_updatable": false } ], "payment_options": [ // . . .], }
For full code examples, see Get Payment Method Required Fields.
The response shows:
The
payment_method_options
object includes these external 3DS provider fields:3d_required
- Allows the client to determine whether the customer is required to complete 3DS authentication for the transaction.3d_version
- 3D Secure version of the transaction.cavv
- Cardholder Authentication Verification Value represented as a 20-byte value that is base64 encoded.eci
- Electronic Commerce Indicator (ECI) from MPI Plugin(3-D Secure 1.0) or 3DS Server (3-D Secure 2.0).ds_trans_id
- The Directory Server (DS) Transaction ID. Required for MasterCard 2.0.
Create a Payment with the External 3DS provider fields
Prerequisites
An external 3DS provider for retrieving the required data for the payment_method_options
fields that are listed in the previous step.
How
Create a payment with the following settings:
payment_method_options
- Specify an object that contains all the required fields for the external 3DS provider.
Create Payment request - partial
JSON
}, "payment_method_options": { "3d_version": "2.2.0", "cavv": "BwABBYcyOCdlg0QChDI4EHUURgE", "eci": "05", "ds_trans_id": "1b20b229-8676-5812-8000-000000617fbb" } // . . . }
For a full code example, see Payment with external 3DS provider on Create Payment.
Note
When testing the feature, use a newly generated UUID for ds_trans_id
.