Sample code for 30+ languages & platforms
Go

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

Go
    success := false

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    http := chilkat.NewHttp()

    // 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 := chilkat.NewJsonObject()
    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 := chilkat.NewHttpResponse()
    success = http.HttpJson("POST","https://api.goshippo.com/customs/declarations/",json,"application/json",resp)
    if success == false {
        fmt.Println(http.LastErrorText())
        http.DisposeHttp()
        json.DisposeJsonObject()
        resp.DisposeHttpResponse()
        return
    }

    sbResponseBody := chilkat.NewStringBuilder()
    resp.GetBodySb(sbResponseBody)
    jResp := chilkat.NewJsonObject()
    jResp.LoadSb(sbResponseBody)
    jResp.SetEmitCompact(false)

    fmt.Println("Response Body:")
    fmt.Println(*jResp.Emit())

    respStatusCode := resp.StatusCode()
    fmt.Println("Response Status Code = ", respStatusCode)
    if respStatusCode >= 400 {
        fmt.Println("Response Header:")
        fmt.Println(resp.Header())
        fmt.Println("Failed.")
        http.DisposeHttp()
        json.DisposeJsonObject()
        resp.DisposeHttpResponse()
        sbResponseBody.DisposeStringBuilder()
        jResp.DisposeJsonObject()
        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

    var strVal *string = new(string)

    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")
    for i < count_i {
        jResp.SetI(i)
        strVal = jResp.StringOf("items[i]")
        i = i + 1
    }


    http.DisposeHttp()
    json.DisposeJsonObject()
    resp.DisposeHttpResponse()
    sbResponseBody.DisposeStringBuilder()
    jResp.DisposeJsonObject()