I am using Laravel 5.1 and Guzzlehttp 6.1 to make post request to clevertap.
$client = new \GuzzleHttp\Client(['headers' => ['X-CleverTap-Account-Id' => '**********','X-CleverTap-Passcode'=>'*************8']]);
$result = $client->request('POST','https://api.clevertap.com/1/upload',["d"=>[
"identity"=>"1189549",
"ts"=>1419421212,
"type"=>"profile",
"profileData"=>[
"Name"=>"Jack Montana",
"Email"=>"[email protected]",
"Phone"=>"+14155551234",
"Gender"=>"M",
"Employed"=>"Y",
"Education"=>"Graduate",
"Married"=>"Y",
"Age"=>28,
"Customer Type"=>"Platinum",
]]]);
I am getting following Error.
Client error:
POST https://api.clevertap.com/1/upload
resulted in a400 Bad Request
response: { "status" : "fail" , "error" : "Payload is mandatory"}
Just like you sent the ID/Token in the header, it is mandatory to send the payload inside the body of the HTTP request.
Something like this:
This should return a 200 OK and do the necessary updates.