Creates a new contact for a specific account. In this example, the account is Fourth Coffee, where the accountid = b6a19cdd-88df-e311-b8e5-6c3be5a8b200. Success is indicated by a 204 response status code with an empty response body.
curl -X POST https://my-dynamics-domain.api.crm.dynamics.com/api/data/v9.0/contacts \
-H "Accept: application/json" \
-H "Content-Type: application/json; charset=utf-8" \
-H "OData-MaxVersion: 4.0" \
-H "OData-Version: 4.0" \
-H "Authorization: Bearer DYNAMICS_CRM_ACCESS_TOKEN" \
-d '{
"fullname": "Gabby Cannata",
"firstname": "Gabby",
"lastname": "Cannata",
"emailaddress1": "gabby@fourthcoffee.com",
"address1_line1": "Carrera 1c No 10-01",
"address1_city": "Bogota",
"address1_country": "Colombia",
"telephone1": "408-233-1939",
"jobtitle": "Purchasing Assistant",
"parentcustomerid_account@odata.bind": "/accounts(b6a19cdd-88df-e311-b8e5-6c3be5a8b200)"
}'
var
rest: TChilkatRest;
success: Integer;
bTls: Integer;
port: Integer;
bAutoReconnect: Integer;
json: TChilkatJsonObject;
sbRequestBody: TChilkatStringBuilder;
sbResponseBody: TChilkatStringBuilder;
respStatusCode: Integer;
begin
rest := TChilkatRest.Create(Self);
// URL: https://my-dynamics-domain.api.crm.dynamics.com/api/data/v9.0/contacts
bTls := 1;
port := 443;
bAutoReconnect := 1;
success := rest.Connect('my-dynamics-domain.api.crm.dynamics.com',port,bTls,bAutoReconnect);
if (success <> 1) then
begin
Memo1.Lines.Add('ConnectFailReason: ' + IntToStr(rest.ConnectFailReason));
Memo1.Lines.Add(rest.LastErrorText);
Exit;
end;
json := TChilkatJsonObject.Create(Self);
json.UpdateString('fullname','Gabby Cannata');
json.UpdateString('firstname','Gabby');
json.UpdateString('lastname','Cannata');
json.UpdateString('emailaddress1','gabby@fourthcoffee.com');
json.UpdateString('address1_line1','Carrera 1c No 10-01');
json.UpdateString('address1_city','Bogota');
json.UpdateString('address1_country','Colombia');
json.UpdateString('telephone1','408-233-1939');
json.UpdateString('jobtitle','Purchasing Assistant');
json.UpdateString('"parentcustomerid_account@odata.bind"','/accounts(b6a19cdd-88df-e311-b8e5-6c3be5a8b200)');
rest.AddHeader('Content-Type','application/json; charset=utf-8');
rest.AddHeader('OData-Version','4.0');
rest.AddHeader('Accept','application/json');
rest.AddHeader('OData-MaxVersion','4.0');
rest.AddHeader('Authorization','Bearer DYNAMICS_CRM_ACCESS_TOKEN');
sbRequestBody := TChilkatStringBuilder.Create(Self);
json.EmitSb(sbRequestBody.ControlInterface);
sbResponseBody := TChilkatStringBuilder.Create(Self);
success := rest.FullRequestSb('POST','/api/data/v9.0/contacts',sbRequestBody.ControlInterface,sbResponseBody.ControlInterface);
if (success <> 1) then
begin
Memo1.Lines.Add(rest.LastErrorText);
Exit;
end;
respStatusCode := rest.ResponseStatusCode;
if (respStatusCode >= 400) then
begin
Memo1.Lines.Add('Response Status Code = ' + IntToStr(respStatusCode));
Memo1.Lines.Add('Response Header:');
Memo1.Lines.Add(rest.ResponseHeader);
Memo1.Lines.Add('Response Body:');
Memo1.Lines.Add(sbResponseBody.GetAsString());
Exit;
end;