Sample code for 30+ languages & platforms
Java

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 Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Http;
import com.chilkatsoft.chilkat2.HttpResponse;
import com.chilkatsoft.chilkat2.JsonObject;
import com.chilkatsoft.chilkat2.StringBuilder;

public class ChilkatExample {

    public static void main(String[] args) {
        // This example assumes the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        Http http = new Http();

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

        JsonObject json = new JsonObject();
        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");

        HttpResponse resp = new HttpResponse();
        try {
            http.httpJson("POST", "https://api.goshippo.com/customs/declarations/", json, "application/json", resp);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        StringBuilder sbResponseBody = new StringBuilder();
        resp.getBodySb(sbResponseBody);
        JsonObject jResp = new JsonObject();
        jResp.loadSb(sbResponseBody);
        jResp.setEmitCompact(false);

        System.out.println("Response Body:");
        System.out.println(jResp.emit());

        int respStatusCode = resp.getStatusCode();
        System.out.println("Response Status Code = " + respStatusCode);
        if (respStatusCode >= 400) {
            System.out.println("Response Header:");
            System.out.println(resp.getHeader());
            System.out.println("Failed.");
            return;
        }

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

        String strVal = "";

        String object_created = jResp.stringOf("object_created");
        String object_updated = jResp.stringOf("object_updated");
        String object_id = jResp.stringOf("object_id");
        String object_owner = jResp.stringOf("object_owner");
        String object_state = jResp.stringOf("object_state");
        String address_importer = jResp.stringOf("address_importer");
        String certify_signer = jResp.stringOf("certify_signer");
        boolean certify = jResp.boolOf("certify");
        String non_delivery_option = jResp.stringOf("non_delivery_option");
        String contents_type = jResp.stringOf("contents_type");
        String contents_explanation = jResp.stringOf("contents_explanation");
        String exporter_reference = jResp.stringOf("exporter_reference");
        String importer_reference = jResp.stringOf("importer_reference");
        String invoice = jResp.stringOf("invoice");
        boolean commercial_invoice = jResp.boolOf("commercial_invoice");
        String license = jResp.stringOf("license");
        String certificate = jResp.stringOf("certificate");
        String notes = jResp.stringOf("notes");
        String eel_pfc = jResp.stringOf("eel_pfc");
        String aes_itn = jResp.stringOf("aes_itn");
        String disclaimer = jResp.stringOf("disclaimer");
        String incoterm = jResp.stringOf("incoterm");
        String metadata = jResp.stringOf("metadata");
        boolean test = jResp.boolOf("test");
        String duties_payor = jResp.stringOf("duties_payor");
        int i = 0;
        int count_i = jResp.sizeOfArray("items");
        while (i < count_i) {
            jResp.setI(i);
            strVal = jResp.stringOf("items[i]");
            i = i + 1;
        }
    }
}