Skip to main content

Documentation

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

This option is currently not available for hosted pages.

How

The procedure is made up of the following steps:

  1. Use payment method that supports an external 3DS provider.

  2. 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": "xid",
                        "type": "String",
                        "regex": "",
                        "description": "3D Secure XID, Base64 encoded.Required for VISA 1.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
                    },
                    {
                        "name": "tavv",
                        "type": "String",
                        "regex": "",
                        "description": "Token Authentication Verification Value represented as a 20-byte value that is base64 encoded.",
                        "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).

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

    • tavv - Token Authentication Verification Value represented as a 20-byte value that is base64 encoded.

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.