# 3DS - Continue Authentication

**POST** `/dpm/security-gwproxy/v2/enrolments-continue`

Base URL: `https://api.pre.globalgetnet.com`

This endpoint generates the necessary payload for the customer to authenticate using their banking login. The response includes the required authentication details, which can be used to proceed with the transaction securely.

## Body

Content type: `application/json`

- `transaction_id` (string)
  Transaction identifier generated by the eCommerce platform
- `xid` (string)
  Field available from version 2.0 onwards. MPI identifier for each authenticated transaction. The field content can be a HEXA or Base64 value, according to the MPI used.

Example:

```json
{
  "transaction_id": "3729756321501820",
  "xid": "VDdnR0kyU1g4ZXlxMkhWTlp0VnA="
}
```

## Responses

### 200

OK

- `transaction_id` (string)
  Transaction identifier generated by the eCommerce platform
- `md` (string)
  ID defined by the merchant to identify the enrolment response
- `tx_id` (integer)
  Transaction ID used by the 3DS provider
- `xid` (string)
  Field available from version 2.0 onwards. MPI identifier for each authenticated transaction. The field content can be a HEXA or Base64 value, according to the MPI used.
- `status` ("Authenticated" | "Denied" | "Pending" | "Pending Challenge" | "Pending Enrolment Continue")
  Status of the transactions generated by the enrolment process
- `protocol` (string)
  Cancellation Protocol
- `operation` ("CREDIT" | "DEBIT")
  Card operation type
- `redirect_html_template` (string)
  HTML template for redirecting the customer to the card issuer's authentication flow
- `acs_redirect_form` (object)
  Object containing the details for the ACS redirect form
  - `action_url` (string)
    URL to which the form should be submitted
  - `method` (string)
    HTTP method to be used for the form submission
  - `creq` (string)
    Challenge Request message
  - `threeDSSessionData` (string)
    3DS Session Data
- `ds_trans_id` (string<uuid>)
  Unique directory server transaction ID. Applies only when the value of 'protocol' is '3DS2.2.0' and the card brand is Mastercard.
- `eci` (string)
  Code indicating whether the transaction was processed with Bearer Authentication.
  00, 01 and 02 for Mastercard and 05, 06 and 07 for Visa and other brands
- `cavv` (string)
  Unique token returned by the card issuer indicating that the transaction has been authenticated.

  The value is the Cardholder Authentication Verification Value (CAVV) for Visa cards and the Account Authentication Value (AAV) for Mastercard cards.

Example:

```json
{
  "transaction_id": "3729756321501820",
  "md": "NmQyZTQzODAtZDhhMy00Y2NiLTkxMzgtYzI4OTE4MjgxOGE0",
  "tx_id": 9349151,
  "xid": "VDdnR0kyU1g4ZXlxMkhWTlp0VnA=",
  "status": "Pending",
  "protocol": "202006302344230001",
  "operation": "CREDIT",
  "redirect_html_template": "<html class=\"no-js\" lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<META http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta charset=\"utf-8\">\n<title>3D Secure Processing</title>\n<link href=\"https://3ds2-mpi.test.modirum.com/mdpaympi/static/mpi.css\" rel=\"stylesheet\" type=\"text/css\">\n</head>\n<body>\n<div id=\"main\">\n<div id=\"content\">\n<div id=\"order\">\n<h2>3D Secure Processing</h2>\n<script src=\"https://3ds2-mpi.test.modirum.com/mdpaympi/static/red.js\" defer>/* needed for xsl to xhtml */</script>\n<div id=\"spinner\">\n<img src=\"https://3ds2-mpi.test.modirum.com/mdpaympi/static/preloader.gif\" alt=\"Please wait..\"></div>\n<img src=\"https://3ds2-mpi.test.modirum.com/mdpaympi/static/mc_idcheck_hrz_ltd_pos_103px.png\" alt=\"MasterCard ID Check\"><div id=\"formdiv\">\n<div>\n<form id=\"webform0\" name=\"red2ACSv1\" method=\"POST\" action=\"https://3ds-acs.test.modirum.com/mdpayacs/pareq\" accept_charset=\"UTF-8\">\n<input type=\"hidden\" name=\"PaReq\" value=\"eJxVUctuwjAQ/JWIe7GdBwK0WKJNpXIAUUop6s1ytiQiccB2Kvj72iEprU8zsw/vzsI214jpG8pGI4clGiMOGBTZbLDevE6ieMISNuCwnm/wzOEbtSlqxdmQDkMgPXV1WuZCWQ5Cnh8XKx63D0hHoUK9SDmjlAK5YVCiQp4+78IocmLLQNaNsvrK47Gr7Qk0uuS5tSczZaSspSjz2tiHL3HEoawrID4O5D7DuvHIuH6XIuO7NFMbery+s0P8uS8vy2P+sS1PdKfmMyA+AzJhkYc0ZCyk44DF0zCZshGQVgdR+UH4cr8K3N5u1k6Ak/9nfiPMB/4K4BzVqGS/TM8AL6daoctwBv5iyNBIHqVvAdsHWy2UEdI6a90MPgDkvtPTi3dZWu/nKB4lk2TMvNGt4rsXzrMwYbRt7wkQX0O6G5LuyA79O/4Pb++sPw==\"><input type=\"hidden\" name=\"MD\" value=\"eyJzZWxsZXJfaWQiOiIwNmYyNTZjOC0xYmJmLTQyYmYtOTNiNC1jZTIwNDFiZmI4N2EiLCJ0cmFuc2FjdGlvbl9pZCI6ImRjYjU4NzJlLWYxYjYtNDkyMi1hMGFlLWZiMGYyODg2MTM5YiIsImNvdW50cnkiOiJNWCIsInRlbmFudCI6InNhbnRhbmRlciJ9\"><input type=\"hidden\" name=\"TermUrl\" value=\"http://localhost:4000/api/modirum/token\"><input type=\"submit\" name=\"submitBtn\" value=\"Please click here to continue\">\n</form>\n</div>\n</div>\n<noscript>\n<div align=\"center\">\n<b>Javascript is turned off or not supported!</b>\n<br>\n</div>\n</noscript>\n</div>\n<div id=\"content-footer\"></div>\n</div>\n</div>\n</body>\n</html>\n",
  "acs_redirect_form": {
    "action_url": "https://test.getnet.com",
    "method": "POST",
    "creq": "ewogICAgImF",
    "threeDSSessionData": "NmQyZTQzODA"
  },
  "ds_trans_id": "6d2e4380-d8a3-4ccb-9138-c289182818a3",
  "eci": "07",
  "cavv": "2"
}
```

### 400

Bad Request

- `message` (string)
  Detailed error message.
- `name` (string)
  Name of the module or system in which the error occurred.
- `status_code` (integer<int32>)
  HTTP status code of the error.
- `details` (object[])
  Error details.
  - `status` (string)
    Error situation.
  - `error_code` (string)
    Error code.
  - `description` (string)
    Description of the error.
  - `description_detail` (string)
    Detailed description of the error.
  - `brand` (string)
    Brand.
  - `payment_id` (string)
    payment_id.
  - `seller_id` (string)
    seller_id.
  - `amount` (string)
    amount.
  - `currency` (string)
    currency.
  - `order_id` (string)
    order_id.
  - `credit_cancel` (object)
    credit_cancel.
    - `canceled_at` (string)
      canceledAt.
    - `message` (string)
      message.
  - `payment_tag` (string)
    payment_tag.
  - `status_code` (string)
    statusCode.
  - `message` (string)
    message.
  - `name` (string)
    name.
  - `acquirer_transaction_id` (string)
    acquirer_transaction_id.
  - `authorization_code` (string)
    authorization_code.
  - `transaction_id` (string)
    transaction_id.
  - `reason_code` (string)
    reason_code.
  - `reason_message` (string)
    reason_message.
  - `merchant_advice_code` (string)
    merchant_advice_code.
- `payments` (object[])
  Error details.
  - `status` (string)
    Error situation.
  - `error_code` (string)
    Error code.
  - `description` (string)
    Description of the error.
  - `description_detail` (string)
    Detailed description of the error.
  - `brand` (string)
    Brand.
  - `payment_id` (string)
    payment_id.
  - `seller_id` (string)
    seller_id.
  - `amount` (string)
    amount.
  - `currency` (string)
    currency.
  - `order_id` (string)
    order_id.
  - `credit_cancel` (object)
    credit_cancel.
    - `canceled_at` (string)
      canceledAt.
    - `message` (string)
      message.
  - `payment_tag` (string)
    payment_tag.
  - `status_code` (string)
    statusCode.
  - `message` (string)
    message.
  - `name` (string)
    name.
  - `acquirer_transaction_id` (string)
    acquirer_transaction_id.
  - `authorization_code` (string)
    authorization_code.
  - `transaction_id` (string)
    transaction_id.
  - `reason_code` (string)
    reason_code.
  - `reason_message` (string)
    reason_message.
  - `merchant_advice_code` (string)
    merchant_advice_code.
- `combined_id` (string)
  combinedId.
- `order_id` (string)
  orderId.
- `seller_id` (string)
  sellerId.

Example:

```json
{
  "message": "string",
  "name": "string",
  "status_code": 0,
  "details": [
    {
      "status": "string",
      "error_code": "string",
      "description": "string",
      "description_detail": "string",
      "brand": "string",
      "payment_id": "string",
      "seller_id": "string",
      "amount": "string",
      "currency": "string",
      "order_id": "string",
      "credit_cancel": {
        "canceled_at": "string",
        "message": "string"
      },
      "payment_tag": "string",
      "status_code": "string",
      "message": "string",
      "name": "string",
      "acquirer_transaction_id": "string",
      "authorization_code": "string",
      "transaction_id": "string",
      "reason_code": "string",
      "reason_message": "string",
      "merchant_advice_code": "string"
    }
  ],
  "payments": [
    {
      "status": "string",
      "error_code": "string",
      "description": "string",
      "description_detail": "string",
      "brand": "string",
      "payment_id": "string",
      "seller_id": "string",
      "amount": "string",
      "currency": "string",
      "order_id": "string",
      "credit_cancel": {
        "canceled_at": "string",
        "message": "string"
      },
      "payment_tag": "string",
      "status_code": "string",
      "message": "string",
      "name": "string",
      "acquirer_transaction_id": "string",
      "authorization_code": "string",
      "transaction_id": "string",
      "reason_code": "string",
      "reason_message": "string",
      "merchant_advice_code": "string"
    }
  ],
  "combined_id": "string",
  "order_id": "string",
  "seller_id": "string"
}
```

### 500

Internal Server Error

- `message` (string)
  Detailed error message.
- `name` (string)
  Name of the module or system in which the error occurred.
- `status_code` (integer<int32>)
  HTTP status code of the error.
- `details` (object[])
  Error details.
  - `status` (string)
    Error situation.
  - `error_code` (string)
    Error code.
  - `description` (string)
    Description of the error.
  - `description_detail` (string)
    Detailed description of the error.
  - `brand` (string)
    Brand.
  - `payment_id` (string)
    payment_id.
  - `seller_id` (string)
    seller_id.
  - `amount` (string)
    amount.
  - `currency` (string)
    currency.
  - `order_id` (string)
    order_id.
  - `credit_cancel` (object)
    credit_cancel.
    - `canceled_at` (string)
      canceledAt.
    - `message` (string)
      message.
  - `payment_tag` (string)
    payment_tag.
  - `status_code` (string)
    statusCode.
  - `message` (string)
    message.
  - `name` (string)
    name.
  - `acquirer_transaction_id` (string)
    acquirer_transaction_id.
  - `authorization_code` (string)
    authorization_code.
  - `transaction_id` (string)
    transaction_id.
  - `reason_code` (string)
    reason_code.
  - `reason_message` (string)
    reason_message.
  - `merchant_advice_code` (string)
    merchant_advice_code.
- `payments` (object[])
  Error details.
  - `status` (string)
    Error situation.
  - `error_code` (string)
    Error code.
  - `description` (string)
    Description of the error.
  - `description_detail` (string)
    Detailed description of the error.
  - `brand` (string)
    Brand.
  - `payment_id` (string)
    payment_id.
  - `seller_id` (string)
    seller_id.
  - `amount` (string)
    amount.
  - `currency` (string)
    currency.
  - `order_id` (string)
    order_id.
  - `credit_cancel` (object)
    credit_cancel.
    - `canceled_at` (string)
      canceledAt.
    - `message` (string)
      message.
  - `payment_tag` (string)
    payment_tag.
  - `status_code` (string)
    statusCode.
  - `message` (string)
    message.
  - `name` (string)
    name.
  - `acquirer_transaction_id` (string)
    acquirer_transaction_id.
  - `authorization_code` (string)
    authorization_code.
  - `transaction_id` (string)
    transaction_id.
  - `reason_code` (string)
    reason_code.
  - `reason_message` (string)
    reason_message.
  - `merchant_advice_code` (string)
    merchant_advice_code.
- `combined_id` (string)
  combinedId.
- `order_id` (string)
  orderId.
- `seller_id` (string)
  sellerId.

Example:

```json
{
  "message": "string",
  "name": "string",
  "status_code": 0,
  "details": [
    {
      "status": "string",
      "error_code": "string",
      "description": "string",
      "description_detail": "string",
      "brand": "string",
      "payment_id": "string",
      "seller_id": "string",
      "amount": "string",
      "currency": "string",
      "order_id": "string",
      "credit_cancel": {
        "canceled_at": "string",
        "message": "string"
      },
      "payment_tag": "string",
      "status_code": "string",
      "message": "string",
      "name": "string",
      "acquirer_transaction_id": "string",
      "authorization_code": "string",
      "transaction_id": "string",
      "reason_code": "string",
      "reason_message": "string",
      "merchant_advice_code": "string"
    }
  ],
  "payments": [
    {
      "status": "string",
      "error_code": "string",
      "description": "string",
      "description_detail": "string",
      "brand": "string",
      "payment_id": "string",
      "seller_id": "string",
      "amount": "string",
      "currency": "string",
      "order_id": "string",
      "credit_cancel": {
        "canceled_at": "string",
        "message": "string"
      },
      "payment_tag": "string",
      "status_code": "string",
      "message": "string",
      "name": "string",
      "acquirer_transaction_id": "string",
      "authorization_code": "string",
      "transaction_id": "string",
      "reason_code": "string",
      "reason_message": "string",
      "merchant_advice_code": "string"
    }
  ],
  "combined_id": "string",
  "order_id": "string",
  "seller_id": "string"
}
```