Chilkat Online Tools

Objective-C / GP-API Collection / AUT_1.1 3DS2 Initiate

Back to Collection Items

#import <CkoHttp.h>
#import <CkoJsonObject.h>
#import <CkoHttpResponse.h>

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

CkoHttp *http = [[CkoHttp alloc] init];
BOOL success;

// 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/"
// }

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

// Adds the "Authorization: Bearer <access_token>" header.
http.AuthToken = @"<access_token>";
[http SetRequestHeader: @"X-GP-Version" value: @"{{version}}"];

CkoHttpResponse *resp = [http PostJson3: @"https://{{url}}/ucp/authentications/{{aut_id}}/initiate" contentType: @"application/json" json: json];
if (http.LastMethodSuccess == NO) {
    NSLog(@"%@",http.LastErrorText);
    return;
}

NSLog(@"%d",[resp.StatusCode intValue]);
NSLog(@"%@",resp.BodyStr);

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 redirect_url = jsonData.three_ds.redirect_url; ",
          "",
          "//console.log(pareq);",
          "pm.test(\"set  html\",function(){",
          "    var template='<!DOCTYPE html> <html> <head> <title>Sample 3DSecure Page</title> </head> <body><form action='+redirect_url+' method=\"POST\">  <input type=\"hidden\" name=\"challenge_value\" 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": [
  ]
}