Chilkat Online Tools

delphiDll / GP-API Collection / AUT_1.1 3DS2 Initiate

Back to Collection Items

var
http: HCkHttp;
success: Boolean;
json: HCkJsonObject;
resp: HCkHttpResponse;

begin
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

http := CkHttp_Create();

// Use this online tool to generate code from sample JSON: Generate Code to Create JSON

// The following JSON is sent in the request body.

// {
//   "three_ds": {
//     "source": "BROWSER",
//     "preference": "NO_PREFERENCE"
//   },
//   "account_name": "{{acc_name}}",
//   "channel": "CNP",
//   "amount": "5",
//   "currency": "EUR",
//   "country": "US",
//   "method_url_completion_status": "YES",
//   "payment_method": {
//     "id": "{{pmt_id}}"
//   },
//   "order": {
//     "time_created_reference": "2019-04-26T10:19:32.552327Z",
//     "amount": "1001",
//     "currency": "EUR",
//     "reference": "3400dd37-101d-4940-be15-3c963b6109b3",
//     "address_match_indicator": "false",
//     "shipping_address": {
//       "line1": "Apartment 852",
//       "line2": "Complex 741",
//       "line3": "House 963",
//       "city": "Chicago",
//       "postal_code": "50001",
//       "state": "IL",
//       "country": "840"
//     },
//     "gift_card_count": "01",
//     "gift_card_currency": "EUR",
//     "gift_card_amount": "25000",
//     "delivery_email": "james.mason@example.com",
//     "delivery_timeframe": "ELECTRONIC_DELIVERY",
//     "shipping_method": "ANOTHER_VERIFIED_ADDRESS",
//     "shipping_name_matches_cardholder_name": "true",
//     "preorder_indicator": "MERCHANDISE_AVAILABLE",
//     "preorder_availability_date:": "2019-04-18",
//     "reorder_indicator": "FIRST_TIME_ORDER",
//     "transaction_type": "GOODS_SERVICE_PURCHASE"
//   },
//   "payer": {
//     "reference": "6dcb24f5-74a0-4da3-98da-4f0aa0e88db3",
//     "account_age": "LESS_THAN_THIRTY_DAYS",
//     "account_creation_date": "2019-01-10",
//     "account_change_date": "2019-01-28",
//     "account_change_indicator": "THIS_TRANSACTION",
//     "account_password_change_date": "2019-01-15",
//     "account_password_change_indicator": "LESS_THAN_THIRTY_DAYS",
//     "home_phone": {
//       "country_code": "44",
//       "subscriber_number": "123456789"
//     },
//     "work_phone": {
//       "country_code": "44",
//       "subscriber_number": "1801555888"
//     },
//     "payment_account_creation_date": "2019-01-01",
//     "payment_account_age_indicator": "LESS_THAN_THIRTY_DAYS",
//     "suspicious_account_activity": "NO_SUSPICIOUS_ACTIVITY",
//     "purchases_last_6months_count": "03",
//     "transactions_last_24hours_count": "01",
//     "transaction_last_year_count": "05",
//     "provision_attempt_last_24hours_count": "01",
//     "shipping_address_time_created_reference": "2019-01-28",
//     "shipping_address_creation_indicator": "THIS_TRANSACTION"
//   },
//   "payer_prior_three_ds_authentication_data": {
//     "authentication_method": "FRICTIONLESS_AUTHENTICATION",
//     "acs_transaction_reference": "26c3f619-39a4-4040-bf1f-6fd433e6d615",
//     "authentication_timestamp": "2020-07-28T10:26:49.712Z",
//     "authentication_data": "secret123"
//   },
//   "recurring_authorization_data": {
//     "max_number_of_instalments": "05",
//     "frequency": "25",
//     "expiry_date": "2019-08-25"
//   },
//   "payer_login_data": {
//     "authentication_data": "secret123",
//     "authentication_timestamp": "2020-07-28T10:26:49.712Z",
//     "authentication_type": "MERCHANT_SYSTEM_AUTHENTICATION"
//   },
//   "browser_data": {
//     "accept_header": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
//     "color_depth": "TWENTY_FOUR_BITS",
//     "ip": "123.123.123.123",
//     "java_enabled": "true",
//     "javascript_enabled": "true",
//     "language": "en-US",
//     "screen_height": "1080",
//     "screen_width": "1920",
//     "challenge_window_size": "FULL_SCREEN",
//     "timezone": "0",
//     "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"
//   },
//   "merchant_contact_url": "https://enp4qhvjseljg.x.pipedream.net/"
// }

json := CkJsonObject_Create();
CkJsonObject_UpdateString(json,'three_ds.source','BROWSER');
CkJsonObject_UpdateString(json,'three_ds.preference','NO_PREFERENCE');
CkJsonObject_UpdateString(json,'account_name','{{acc_name}}');
CkJsonObject_UpdateString(json,'channel','CNP');
CkJsonObject_UpdateString(json,'amount','5');
CkJsonObject_UpdateString(json,'currency','EUR');
CkJsonObject_UpdateString(json,'country','US');
CkJsonObject_UpdateString(json,'method_url_completion_status','YES');
CkJsonObject_UpdateString(json,'payment_method.id','{{pmt_id}}');
CkJsonObject_UpdateString(json,'order.time_created_reference','2019-04-26T10:19:32.552327Z');
CkJsonObject_UpdateString(json,'order.amount','1001');
CkJsonObject_UpdateString(json,'order.currency','EUR');
CkJsonObject_UpdateString(json,'order.reference','3400dd37-101d-4940-be15-3c963b6109b3');
CkJsonObject_UpdateString(json,'order.address_match_indicator','false');
CkJsonObject_UpdateString(json,'order.shipping_address.line1','Apartment 852');
CkJsonObject_UpdateString(json,'order.shipping_address.line2','Complex 741');
CkJsonObject_UpdateString(json,'order.shipping_address.line3','House 963');
CkJsonObject_UpdateString(json,'order.shipping_address.city','Chicago');
CkJsonObject_UpdateString(json,'order.shipping_address.postal_code','50001');
CkJsonObject_UpdateString(json,'order.shipping_address.state','IL');
CkJsonObject_UpdateString(json,'order.shipping_address.country','840');
CkJsonObject_UpdateString(json,'order.gift_card_count','01');
CkJsonObject_UpdateString(json,'order.gift_card_currency','EUR');
CkJsonObject_UpdateString(json,'order.gift_card_amount','25000');
CkJsonObject_UpdateString(json,'order.delivery_email','james.mason@example.com');
CkJsonObject_UpdateString(json,'order.delivery_timeframe','ELECTRONIC_DELIVERY');
CkJsonObject_UpdateString(json,'order.shipping_method','ANOTHER_VERIFIED_ADDRESS');
CkJsonObject_UpdateString(json,'order.shipping_name_matches_cardholder_name','true');
CkJsonObject_UpdateString(json,'order.preorder_indicator','MERCHANDISE_AVAILABLE');
CkJsonObject_UpdateString(json,'order.preorder_availability_date:','2019-04-18');
CkJsonObject_UpdateString(json,'order.reorder_indicator','FIRST_TIME_ORDER');
CkJsonObject_UpdateString(json,'order.transaction_type','GOODS_SERVICE_PURCHASE');
CkJsonObject_UpdateString(json,'payer.reference','6dcb24f5-74a0-4da3-98da-4f0aa0e88db3');
CkJsonObject_UpdateString(json,'payer.account_age','LESS_THAN_THIRTY_DAYS');
CkJsonObject_UpdateString(json,'payer.account_creation_date','2019-01-10');
CkJsonObject_UpdateString(json,'payer.account_change_date','2019-01-28');
CkJsonObject_UpdateString(json,'payer.account_change_indicator','THIS_TRANSACTION');
CkJsonObject_UpdateString(json,'payer.account_password_change_date','2019-01-15');
CkJsonObject_UpdateString(json,'payer.account_password_change_indicator','LESS_THAN_THIRTY_DAYS');
CkJsonObject_UpdateString(json,'payer.home_phone.country_code','44');
CkJsonObject_UpdateString(json,'payer.home_phone.subscriber_number','123456789');
CkJsonObject_UpdateString(json,'payer.work_phone.country_code','44');
CkJsonObject_UpdateString(json,'payer.work_phone.subscriber_number','1801555888');
CkJsonObject_UpdateString(json,'payer.payment_account_creation_date','2019-01-01');
CkJsonObject_UpdateString(json,'payer.payment_account_age_indicator','LESS_THAN_THIRTY_DAYS');
CkJsonObject_UpdateString(json,'payer.suspicious_account_activity','NO_SUSPICIOUS_ACTIVITY');
CkJsonObject_UpdateString(json,'payer.purchases_last_6months_count','03');
CkJsonObject_UpdateString(json,'payer.transactions_last_24hours_count','01');
CkJsonObject_UpdateString(json,'payer.transaction_last_year_count','05');
CkJsonObject_UpdateString(json,'payer.provision_attempt_last_24hours_count','01');
CkJsonObject_UpdateString(json,'payer.shipping_address_time_created_reference','2019-01-28');
CkJsonObject_UpdateString(json,'payer.shipping_address_creation_indicator','THIS_TRANSACTION');
CkJsonObject_UpdateString(json,'payer_prior_three_ds_authentication_data.authentication_method','FRICTIONLESS_AUTHENTICATION');
CkJsonObject_UpdateString(json,'payer_prior_three_ds_authentication_data.acs_transaction_reference','26c3f619-39a4-4040-bf1f-6fd433e6d615');
CkJsonObject_UpdateString(json,'payer_prior_three_ds_authentication_data.authentication_timestamp','2020-07-28T10:26:49.712Z');
CkJsonObject_UpdateString(json,'payer_prior_three_ds_authentication_data.authentication_data','secret123');
CkJsonObject_UpdateString(json,'recurring_authorization_data.max_number_of_instalments','05');
CkJsonObject_UpdateString(json,'recurring_authorization_data.frequency','25');
CkJsonObject_UpdateString(json,'recurring_authorization_data.expiry_date','2019-08-25');
CkJsonObject_UpdateString(json,'payer_login_data.authentication_data','secret123');
CkJsonObject_UpdateString(json,'payer_login_data.authentication_timestamp','2020-07-28T10:26:49.712Z');
CkJsonObject_UpdateString(json,'payer_login_data.authentication_type','MERCHANT_SYSTEM_AUTHENTICATION');
CkJsonObject_UpdateString(json,'browser_data.accept_header','text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8');
CkJsonObject_UpdateString(json,'browser_data.color_depth','TWENTY_FOUR_BITS');
CkJsonObject_UpdateString(json,'browser_data.ip','123.123.123.123');
CkJsonObject_UpdateString(json,'browser_data.java_enabled','true');
CkJsonObject_UpdateString(json,'browser_data.javascript_enabled','true');
CkJsonObject_UpdateString(json,'browser_data.language','en-US');
CkJsonObject_UpdateString(json,'browser_data.screen_height','1080');
CkJsonObject_UpdateString(json,'browser_data.screen_width','1920');
CkJsonObject_UpdateString(json,'browser_data.challenge_window_size','FULL_SCREEN');
CkJsonObject_UpdateString(json,'browser_data.timezone','0');
CkJsonObject_UpdateString(json,'browser_data.user_agent','Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36');
CkJsonObject_UpdateString(json,'merchant_contact_url','https://enp4qhvjseljg.x.pipedream.net/');

// Adds the "Authorization: Bearer <access_token>" header.
CkHttp_putAuthToken(http,'<access_token>');
CkHttp_SetRequestHeader(http,'X-GP-Version','{{version}}');

resp := CkHttp_PostJson3(http,'https://{{url}}/ucp/authentications/{{aut_id}}/initiate','application/json',json);
if (CkHttp_getLastMethodSuccess(http) = False) then
  begin
    Memo1.Lines.Add(CkHttp__lastErrorText(http));
    Exit;
  end;

Memo1.Lines.Add(IntToStr(CkHttpResponse_getStatusCode(resp)));
Memo1.Lines.Add(CkHttpResponse__bodyStr(resp));
CkHttpResponse_Dispose(resp);

CkHttp_Dispose(http);
CkJsonObject_Dispose(json);

Curl Command

curl -X POST
	-H "Authorization: Bearer <access_token>"
	-H "X-GP-Version: {{version}}"
	-d '{
    "three_ds": {
        "source": "BROWSER",
        "preference": "NO_PREFERENCE"
    },
    "account_name": "{{acc_name}}",
    "channel": "CNP",
    "amount": "5",
    "currency": "EUR",
    "country": "US",
    "method_url_completion_status": "YES",
    "payment_method": {
        "id": "{{pmt_id}}"
    },
    "order": {
        "time_created_reference": "2019-04-26T10:19:32.552327Z",
        "amount": "1001",
        "currency": "EUR",
        "reference": "3400dd37-101d-4940-be15-3c963b6109b3",
        "address_match_indicator": "false",
        "shipping_address": {
            "line1": "Apartment 852",
            "line2": "Complex 741",
            "line3": "House 963",
            "city": "Chicago",
            "postal_code": "50001",
            "state": "IL",
            "country": "840"
        },
        "gift_card_count": "01",
        "gift_card_currency": "EUR",
        "gift_card_amount": "25000",
        "delivery_email": "james.mason@example.com",
        "delivery_timeframe": "ELECTRONIC_DELIVERY",
        "shipping_method": "ANOTHER_VERIFIED_ADDRESS",
        "shipping_name_matches_cardholder_name": "true",
        "preorder_indicator": "MERCHANDISE_AVAILABLE",
        "preorder_availability_date:": "2019-04-18",
        "reorder_indicator": "FIRST_TIME_ORDER",
        "transaction_type": "GOODS_SERVICE_PURCHASE"
    },
    "payer": {
        "reference": "6dcb24f5-74a0-4da3-98da-4f0aa0e88db3",
        "account_age": "LESS_THAN_THIRTY_DAYS",
        "account_creation_date": "2019-01-10",
        "account_change_date": "2019-01-28",
        "account_change_indicator": "THIS_TRANSACTION",
        "account_password_change_date": "2019-01-15",
        "account_password_change_indicator": "LESS_THAN_THIRTY_DAYS",
        "home_phone": {
            "country_code": "44",
            "subscriber_number": "123456789"
        },
        "work_phone": {
            "country_code": "44",
            "subscriber_number": "1801555888"
        },
        "payment_account_creation_date": "2019-01-01",
        "payment_account_age_indicator": "LESS_THAN_THIRTY_DAYS",
        "suspicious_account_activity": "NO_SUSPICIOUS_ACTIVITY",
        "purchases_last_6months_count": "03",
        "transactions_last_24hours_count": "01",
        "transaction_last_year_count": "05",
        "provision_attempt_last_24hours_count": "01",
        "shipping_address_time_created_reference": "2019-01-28",
        "shipping_address_creation_indicator": "THIS_TRANSACTION"
    },
    "payer_prior_three_ds_authentication_data": {
        "authentication_method": "FRICTIONLESS_AUTHENTICATION",
        "acs_transaction_reference": "26c3f619-39a4-4040-bf1f-6fd433e6d615",
        "authentication_timestamp": "2020-07-28T10:26:49.712Z",
        "authentication_data": "secret123"
    },
    "recurring_authorization_data": {
        "max_number_of_instalments": "05",
        "frequency": "25",
        "expiry_date": "2019-08-25"
    },
    "payer_login_data": {
        "authentication_data": "secret123",
        "authentication_timestamp": "2020-07-28T10:26:49.712Z",
        "authentication_type": "MERCHANT_SYSTEM_AUTHENTICATION"
    },
    "browser_data": {
        "accept_header": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
        "color_depth": "TWENTY_FOUR_BITS",
        "ip": "123.123.123.123",
        "java_enabled": "true",
        "javascript_enabled": "true",
        "language": "en-US",
        "screen_height": "1080",
        "screen_width": "1920",
        "challenge_window_size": "FULL_SCREEN",
        "timezone": "0",
        "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"
    },
    "merchant_contact_url": "https://enp4qhvjseljg.x.pipedream.net/"
}'
https://{{url}}/ucp/authentications/{{aut_id}}/initiate

Postman Collection Item JSON

{
  "name": "AUT_1.1 3DS2 Initiate",
  "event": [
    {
      "listen": "test",
      "script": {
        "exec": [
          "//Json Parse",
          "",
          "var jsonData = JSON.parse(responseBody);",
          "var creq = jsonData.three_ds.challenge_value; ",
          "var acs_challenge_request_url = jsonData.three_ds.acs_challenge_request_url; ",
          "",
          "//console.log(pareq);",
          "pm.test(\"set  html\",function(){",
          "    var template='<!DOCTYPE html> <html> <head> <title>Sample 3DSecure Page</title> </head> <body><form action='+acs_challenge_request_url+' method=\"POST\">  <input type=\"hidden\" name=\"creq\" value= '+creq+' /> <input type=\"submit\" value=\"Submit\"> </form> </body> </html>'     // save your html in the template and then     ",
          "    pm.visualizer.set(template);     // set that template to pm.visualizer",
          "})",
          ""
        ],
        "type": "text/javascript"
      }
    }
  ],
  "request": {
    "auth": {
      "type": "oauth2",
      "oauth2": [
        {
          "key": "accessToken",
          "value": "{{token}}",
          "type": "string"
        },
        {
          "key": "addTokenTo",
          "value": "header",
          "type": "string"
        }
      ]
    },
    "method": "POST",
    "header": [
      {
        "key": "X-GP-Version",
        "type": "text",
        "value": "{{version}}"
      }
    ],
    "body": {
      "mode": "raw",
      "raw": "{\n    \"three_ds\": {\n        \"source\": \"BROWSER\",\n        \"preference\": \"NO_PREFERENCE\"\n    },\n    \"account_name\": \"{{acc_name}}\",\n    \"channel\": \"CNP\",\n    \"amount\": \"5\",\n    \"currency\": \"EUR\",\n    \"country\": \"US\",\n    \"method_url_completion_status\": \"YES\",\n    \"payment_method\": {\n        \"id\": \"{{pmt_id}}\"\n    },\n    \"order\": {\n        \"time_created_reference\": \"2019-04-26T10:19:32.552327Z\",\n        \"amount\": \"1001\",\n        \"currency\": \"EUR\",\n        \"reference\": \"3400dd37-101d-4940-be15-3c963b6109b3\",\n        \"address_match_indicator\": \"false\",\n        \"shipping_address\": {\n            \"line1\": \"Apartment 852\",\n            \"line2\": \"Complex 741\",\n            \"line3\": \"House 963\",\n            \"city\": \"Chicago\",\n            \"postal_code\": \"50001\",\n            \"state\": \"IL\",\n            \"country\": \"840\"\n        },\n        \"gift_card_count\": \"01\",\n        \"gift_card_currency\": \"EUR\",\n        \"gift_card_amount\": \"25000\",\n        \"delivery_email\": \"james.mason@example.com\",\n        \"delivery_timeframe\": \"ELECTRONIC_DELIVERY\",\n        \"shipping_method\": \"ANOTHER_VERIFIED_ADDRESS\",\n        \"shipping_name_matches_cardholder_name\": \"true\",\n        \"preorder_indicator\": \"MERCHANDISE_AVAILABLE\",\n        \"preorder_availability_date:\": \"2019-04-18\",\n        \"reorder_indicator\": \"FIRST_TIME_ORDER\",\n        \"transaction_type\": \"GOODS_SERVICE_PURCHASE\"\n    },\n    \"payer\": {\n        \"reference\": \"6dcb24f5-74a0-4da3-98da-4f0aa0e88db3\",\n        \"account_age\": \"LESS_THAN_THIRTY_DAYS\",\n        \"account_creation_date\": \"2019-01-10\",\n        \"account_change_date\": \"2019-01-28\",\n        \"account_change_indicator\": \"THIS_TRANSACTION\",\n        \"account_password_change_date\": \"2019-01-15\",\n        \"account_password_change_indicator\": \"LESS_THAN_THIRTY_DAYS\",\n        \"home_phone\": {\n            \"country_code\": \"44\",\n            \"subscriber_number\": \"123456789\"\n        },\n        \"work_phone\": {\n            \"country_code\": \"44\",\n            \"subscriber_number\": \"1801555888\"\n        },\n        \"payment_account_creation_date\": \"2019-01-01\",\n        \"payment_account_age_indicator\": \"LESS_THAN_THIRTY_DAYS\",\n        \"suspicious_account_activity\": \"NO_SUSPICIOUS_ACTIVITY\",\n        \"purchases_last_6months_count\": \"03\",\n        \"transactions_last_24hours_count\": \"01\",\n        \"transaction_last_year_count\": \"05\",\n        \"provision_attempt_last_24hours_count\": \"01\",\n        \"shipping_address_time_created_reference\": \"2019-01-28\",\n        \"shipping_address_creation_indicator\": \"THIS_TRANSACTION\"\n    },\n    \"payer_prior_three_ds_authentication_data\": {\n        \"authentication_method\": \"FRICTIONLESS_AUTHENTICATION\",\n        \"acs_transaction_reference\": \"26c3f619-39a4-4040-bf1f-6fd433e6d615\",\n        \"authentication_timestamp\": \"2020-07-28T10:26:49.712Z\",\n        \"authentication_data\": \"secret123\"\n    },\n    \"recurring_authorization_data\": {\n        \"max_number_of_instalments\": \"05\",\n        \"frequency\": \"25\",\n        \"expiry_date\": \"2019-08-25\"\n    },\n    \"payer_login_data\": {\n        \"authentication_data\": \"secret123\",\n        \"authentication_timestamp\": \"2020-07-28T10:26:49.712Z\",\n        \"authentication_type\": \"MERCHANT_SYSTEM_AUTHENTICATION\"\n    },\n    \"browser_data\": {\n        \"accept_header\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\",\n        \"color_depth\": \"TWENTY_FOUR_BITS\",\n        \"ip\": \"123.123.123.123\",\n        \"java_enabled\": \"true\",\n        \"javascript_enabled\": \"true\",\n        \"language\": \"en-US\",\n        \"screen_height\": \"1080\",\n        \"screen_width\": \"1920\",\n        \"challenge_window_size\": \"FULL_SCREEN\",\n        \"timezone\": \"0\",\n        \"user_agent\": \"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36\"\n    },\n    \"merchant_contact_url\": \"https://enp4qhvjseljg.x.pipedream.net/\"\n}",
      "options": {
        "raw": {
          "language": "json"
        }
      }
    },
    "url": {
      "raw": "https://{{url}}/ucp/authentications/{{aut_id}}/initiate",
      "protocol": "https",
      "host": [
        "{{url}}"
      ],
      "path": [
        "ucp",
        "authentications",
        "{{aut_id}}",
        "initiate"
      ]
    },
    "description": "This request follows the 'Check Version' request in the 3DS2 flow. The merchant must submit data including the billing and shipping details of the payer, at least one phone number, the device data, transaction details, outcome from the ACS Method URL if it took place and a link to the merchant's About or Contact page.\r\n\r\nFor more information on the 3DS2 Initate step, please visit: https://developer.globalpay.com/api/3d-secure-two and https://developer.globalpay.com/api/authentications#/Initiate/initiate3DS"
  },
  "response": [
  ]
}