Create an address, but with a verification error and shows how to get the error response information.
curl -X POST https://api.easypost.com/v2/addresses \
-u EASYPOST_API_KEY: \
-d "verify[]=delivery" \
-d "address[street1]=UNDELIVERABLE ST" \
-d "address[city]=SAN FRANCISCO" \
-d "address[state]=CA" \
-d "address[zip]=94104" \
-d "address[country]=US" \
-d "address[company]=EasyPost" \
-d "address[phone]=415-123-4567"
var
rest: HCkRest;
success: Boolean;
bTls: Boolean;
port: Integer;
bAutoReconnect: Boolean;
strResponseBody: PWideChar;
jsonResponse: HCkJsonObject;
id: PWideChar;
object: PWideChar;
created_at: PWideChar;
updated_at: PWideChar;
name: Boolean;
company: PWideChar;
street1: PWideChar;
street2: Boolean;
city: PWideChar;
state: PWideChar;
zip: PWideChar;
country: PWideChar;
phone: PWideChar;
email: Boolean;
mode: PWideChar;
carrier_facility: Boolean;
residential: Boolean;
federal_tax_id: Boolean;
state_tax_id: Boolean;
verificationsDeliverySuccess: Boolean;
i: Integer;
count_i: Integer;
suggestion: Boolean;
code: PWideChar;
field: PWideChar;
message: PWideChar;
begin
rest := CkRest_Create();
// URL: https://api.easypost.com/v2/addresses
bTls := True;
port := 443;
bAutoReconnect := True;
success := CkRest_Connect(rest,'api.easypost.com',port,bTls,bAutoReconnect);
if (success <> True) then
begin
Memo1.Lines.Add('ConnectFailReason: ' + IntToStr(CkRest_getConnectFailReason(rest)));
Memo1.Lines.Add(CkRest__lastErrorText(rest));
Exit;
end;
CkRest_SetAuthBasic(rest,'EASYPOST_API_KEY','');
CkRest_AddQueryParam(rest,'verify[]','delivery');
CkRest_AddQueryParam(rest,'address[street1]','UNDELIVERABLE ST');
CkRest_AddQueryParam(rest,'address[city]','SAN FRANCISCO');
CkRest_AddQueryParam(rest,'address[state]','CA');
CkRest_AddQueryParam(rest,'address[zip]','94104');
CkRest_AddQueryParam(rest,'address[country]','US');
CkRest_AddQueryParam(rest,'address[company]','EasyPost');
CkRest_AddQueryParam(rest,'address[phone]','415-123-4567');
strResponseBody := CkRest__fullRequestFormUrlEncoded(rest,'POST','/v2/addresses');
if (CkRest_getLastMethodSuccess(rest) <> True) then
begin
Memo1.Lines.Add(CkRest__lastErrorText(rest));
Exit;
end;
jsonResponse := CkJsonObject_Create();
CkJsonObject_Load(jsonResponse,strResponseBody);
id := CkJsonObject__stringOf(jsonResponse,'id');
object := CkJsonObject__stringOf(jsonResponse,'object');
created_at := CkJsonObject__stringOf(jsonResponse,'created_at');
updated_at := CkJsonObject__stringOf(jsonResponse,'updated_at');
name := CkJsonObject_IsNullOf(jsonResponse,'name');
company := CkJsonObject__stringOf(jsonResponse,'company');
street1 := CkJsonObject__stringOf(jsonResponse,'street1');
street2 := CkJsonObject_IsNullOf(jsonResponse,'street2');
city := CkJsonObject__stringOf(jsonResponse,'city');
state := CkJsonObject__stringOf(jsonResponse,'state');
zip := CkJsonObject__stringOf(jsonResponse,'zip');
country := CkJsonObject__stringOf(jsonResponse,'country');
phone := CkJsonObject__stringOf(jsonResponse,'phone');
email := CkJsonObject_IsNullOf(jsonResponse,'email');
mode := CkJsonObject__stringOf(jsonResponse,'mode');
carrier_facility := CkJsonObject_IsNullOf(jsonResponse,'carrier_facility');
residential := CkJsonObject_BoolOf(jsonResponse,'residential');
federal_tax_id := CkJsonObject_IsNullOf(jsonResponse,'federal_tax_id');
state_tax_id := CkJsonObject_IsNullOf(jsonResponse,'state_tax_id');
verificationsDeliverySuccess := CkJsonObject_BoolOf(jsonResponse,'verifications.delivery.success');
i := 0;
count_i := CkJsonObject_SizeOfArray(jsonResponse,'verifications.delivery.errors');
while i < count_i do
begin
CkJsonObject_putI(jsonResponse,i);
suggestion := CkJsonObject_IsNullOf(jsonResponse,'verifications.delivery.errors[i].suggestion');
code := CkJsonObject__stringOf(jsonResponse,'verifications.delivery.errors[i].code');
field := CkJsonObject__stringOf(jsonResponse,'verifications.delivery.errors[i].field');
message := CkJsonObject__stringOf(jsonResponse,'verifications.delivery.errors[i].message');
i := i + 1;
end;
CkRest_Dispose(rest);
CkJsonObject_Dispose(jsonResponse);
{
"id": "adr_3618edae14874ff88d54ddfe94f21a41",
"object": "Address",
"created_at": "2017-05-08T19:43:41Z",
"updated_at": "2017-05-08T19:43:41Z",
"name": null,
"company": "EasyPost",
"street1": "UNDELIVERABLE ST",
"street2": null,
"city": "SAN FRANCISCO",
"state": "CA",
"zip": "94104",
"country": "US",
"phone": "4151234567",
"email": null,
"mode": "test",
"carrier_facility": null,
"residential": false,
"federal_tax_id": null,
"state_tax_id": null,
"verifications": {
"delivery": {
"success": false,
"errors": [
{
"suggestion": null,
"code": "E.ADDRESS.NOT_FOUND",
"field": "address",
"message": "Address not found"
},
{
"suggestion": null,
"code": "E.HOUSE_NUMBER.MISSING",
"field": "street1",
"message": "House number is missing"
}
],
"details": {}
}
}
}