Payments - External 3DS Authentication

POST /payments/{payment_id}/3ds/authentication

Request example (cURL):

cURL
curl --request POST \
  --url https://sandbox.hyperswitch.io/payments/{payment_id}/3ds/authentication \
  --header 'Content-Type: application/json' \
  --header 'api-key: <api-key>' \
  --data '
{
  "client_secret": "<string>",
  "device_channel": "APP",
  "threeds_method_comp_ind": "Y",
  "sdk_information": {
    "sdk_app_id": "<string>",
    "sdk_enc_data": "<string>",
    "sdk_ephem_pub_key": {},
    "sdk_trans_id": "<string>",
    "sdk_reference_number": "<string>",
    "sdk_max_timeout": 1,
    "sdk_type": "01",
    "device_details": {
      "device_type": "<string>",
      "device_brand": "<string>",
      "device_os": "<string>",
      "device_display": "<string>"
    }
  }
}
'

Responses (example body):

Status codes: 200, 400


Authorizations

  • api-key (string) — header — required Publishable keys are a type of keys that can be public and have limited scope of usage.


Path Parameters

  • payment_id (string) — required The identifier for payment


Body (application/json)

  • client_secret (string) — required Client Secret

  • device_channel (enum) — required Device Channel indicating whether request is coming from App or Browser. Available options: APP, BRW

  • threeds_method_comp_ind (enum) — required Indicates if 3DS method data was successfully completed or not. Available options: Y, N, U

  • sdk_information (object) SDK Information if request is from SDK

    Showchild attributes (as present in the example):

    • sdk_app_id (string)

    • sdk_enc_data (string)

    • sdk_ephem_pub_key (object)

    • sdk_trans_id (string)

    • sdk_reference_number (string)

    • sdk_max_timeout (integer)

    • sdk_type (string)

    • device_details (object)

      • device_type (string)

      • device_brand (string)

      • device_os (string)

      • device_display (string)


Response (200, application/json) — Authentication created

  • trans_status (enum) — required Indicates the transaction status. Available options: Y, N, U, A, R, C, D, I

  • three_ds_requestor_url (string) — required Three DS Requestor URL

  • acs_url (string | null) Access Server URL to be used for challenge submission

  • challenge_request (string | null) Challenge request which should be sent to acs_url

  • challenge_request_key (string | null) Challenge request key which should be set as form field name for creq

  • acs_reference_number (string | null) Unique identifier assigned by the EMVCo (Europay, Mastercard and Visa)

  • acs_trans_id (string | null) Unique identifier assigned by the ACS to identify a single transaction

  • three_dsserver_trans_id (string | null) Unique identifier assigned by the 3DS Server to identify a single transaction

  • acs_signed_content (string | null) Contains the JWS object created by the ACS for the ARes (Authentication Response) message

  • three_ds_requestor_app_url (string | null) Merchant app declaring their URL within the CReq message so that the Authentication app can call the Merchant app after OOB authentication has occurred

  • error_message (string | null) Error message if any


Suggest edits: https://github.com/juspay/hyperswitch/edit/main/api-reference/v1/payments/payments--external-3ds-authentication.mdx

Raise issue: https://github.com/juspay/hyperswitch/issues/new?title=Issue%20on%20docs&body=Path:%20/v1/payments/payments--external-3ds-authentication

Related:

  • https://api-reference.hyperswitch.io/introduction

  • https://api-reference.hyperswitch.io/locker-api-reference/overview

  • https://api-reference.hyperswitch.io/intelligent-router-api-reference/overview