PHP Extension
PHP Extension
Shippo Create Customs Declaration
See more Shippo Examples
Demonstrates how to create a customs declaration and send a POST request with the necessary information to the Customs Declarations endpoint.Chilkat PHP Extension Downloads
<?php
include("chilkat.php");
$success = false;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
$http = new CkHttp();
// Implements the following CURL command:
// curl https://api.goshippo.com/customs/declarations/ \
// -H "Authorization: ShippoToken <API_TOKEN>" \
// -H "Content-Type: application/json" \
// -d '{
// "contents_type": "MERCHANDISE",
// "non_delivery_option": "RETURN",
// "certify": true,
// "certify_signer": "Simon Kreuz",
// "incoterm": "DDU",
// "items": [{
// "description": "T-shirt",
// "quantity": 20,
// "net_weight": "5",
// "mass_unit": "lb",
// "value_amount": "200",
// "value_currency": "USD",
// "tariff_number": "",
// "origin_country": "US"
// }]
// }'
// Use this online tool to generate code from sample JSON:
// Generate Code to Create JSON
// The following JSON is sent in the request body.
// {
// "contents_type": "MERCHANDISE",
// "non_delivery_option": "RETURN",
// "certify": true,
// "certify_signer": "Simon Kreuz",
// "incoterm": "DDU",
// "items": [
// {
// "description": "T-shirt",
// "quantity": 20,
// "net_weight": "5",
// "mass_unit": "lb",
// "value_amount": "200",
// "value_currency": "USD",
// "tariff_number": "",
// "origin_country": "US"
// }
// ]
// }
$json = new CkJsonObject();
$json->UpdateString('contents_type','MERCHANDISE');
$json->UpdateString('non_delivery_option','RETURN');
$json->UpdateBool('certify',true);
$json->UpdateString('certify_signer','Simon Kreuz');
$json->UpdateString('incoterm','DDU');
$json->UpdateString('items[0].description','T-shirt');
$json->UpdateInt('items[0].quantity',20);
$json->UpdateString('items[0].net_weight','5');
$json->UpdateString('items[0].mass_unit','lb');
$json->UpdateString('items[0].value_amount','200');
$json->UpdateString('items[0].value_currency','USD');
$json->UpdateString('items[0].tariff_number','');
$json->UpdateString('items[0].origin_country','US');
$http->SetRequestHeader('Authorization','ShippoToken <API_TOKEN>');
$http->SetRequestHeader('Content-Type','application/json');
$resp = new CkHttpResponse();
$success = $http->HttpJson('POST','https://api.goshippo.com/customs/declarations/',$json,'application/json',$resp);
if ($success == false) {
print $http->lastErrorText() . "\n";
exit;
}
$sbResponseBody = new CkStringBuilder();
$resp->GetBodySb($sbResponseBody);
$jResp = new CkJsonObject();
$jResp->LoadSb($sbResponseBody);
$jResp->put_EmitCompact(false);
print 'Response Body:' . "\n";
print $jResp->emit() . "\n";
$respStatusCode = $resp->get_StatusCode();
print 'Response Status Code = ' . $respStatusCode . "\n";
if ($respStatusCode >= 400) {
print 'Response Header:' . "\n";
print $resp->header() . "\n";
print 'Failed.' . "\n";
exit;
}
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "object_created": "2019-07-04T16:00:29.043Z",
// "object_updated": "2019-07-04T16:00:29.043Z",
// "object_id": "4a1e6ab7b1ba49ed9bc6cb1a8798e0fd",
// "object_owner": "admin@chilkatsoft.com",
// "object_state": "VALID",
// "address_importer": null,
// "certify_signer": "Simon Kreuz",
// "certify": true,
// "items": [
// "4096c68693364b7ea0af72fb869ee861"
// ],
// "non_delivery_option": "RETURN",
// "contents_type": "MERCHANDISE",
// "contents_explanation": "",
// "exporter_reference": "",
// "importer_reference": "",
// "invoice": "",
// "commercial_invoice": false,
// "license": "",
// "certificate": "",
// "notes": "",
// "eel_pfc": "",
// "aes_itn": "",
// "disclaimer": "",
// "incoterm": "DDU",
// "metadata": "",
// "test": true,
// "duties_payor": null
// }
// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
$object_created = $jResp->stringOf('object_created');
$object_updated = $jResp->stringOf('object_updated');
$object_id = $jResp->stringOf('object_id');
$object_owner = $jResp->stringOf('object_owner');
$object_state = $jResp->stringOf('object_state');
$address_importer = $jResp->stringOf('address_importer');
$certify_signer = $jResp->stringOf('certify_signer');
$certify = $jResp->BoolOf('certify');
$non_delivery_option = $jResp->stringOf('non_delivery_option');
$contents_type = $jResp->stringOf('contents_type');
$contents_explanation = $jResp->stringOf('contents_explanation');
$exporter_reference = $jResp->stringOf('exporter_reference');
$importer_reference = $jResp->stringOf('importer_reference');
$invoice = $jResp->stringOf('invoice');
$commercial_invoice = $jResp->BoolOf('commercial_invoice');
$license = $jResp->stringOf('license');
$certificate = $jResp->stringOf('certificate');
$notes = $jResp->stringOf('notes');
$eel_pfc = $jResp->stringOf('eel_pfc');
$aes_itn = $jResp->stringOf('aes_itn');
$disclaimer = $jResp->stringOf('disclaimer');
$incoterm = $jResp->stringOf('incoterm');
$metadata = $jResp->stringOf('metadata');
$test = $jResp->BoolOf('test');
$duties_payor = $jResp->stringOf('duties_payor');
$i = 0;
$count_i = $jResp->SizeOfArray('items');
while ($i < $count_i) {
$jResp->put_I($i);
$strVal = $jResp->stringOf('items[i]');
$i = $i + 1;
}
?>