Sample code for 30+ languages & platforms
Swift

Shippo Generate a Return Label

See more Shippo Examples

Demonstrates how to generate a pay-on-use return label.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

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

    let http = CkoHttp()!

    // Implements the following CURL command:

    // curl https://api.goshippo.com/shipments/ \
    //     -H "Authorization: ShippoToken <API_Token>" \
    //     -d address_from="d799c2679e644279b59fe661ac8fa488" \
    //     -d address_to="42236bcf36214f62bcc6d7f12f02a849" \
    //     -d parcels=["7df2ecf8b4224763ab7c71fae7ec8274"] \
    //     -d shipment_date="2013-12-03T12:00:00.000Z" \
    //     -d extra='{ "is_return": true}' \
    //     -d async=false

    let req = CkoHttpRequest()!
    req.httpVerb = "POST"
    req.path = "/shipments/"
    req.contentType = "application/x-www-form-urlencoded"
    req.addParam(name: "address_from", value: "d799c2679e644279b59fe661ac8fa488")
    req.addParam(name: "address_to", value: "42236bcf36214f62bcc6d7f12f02a849")
    req.addParam(name: "parcels", value: "[\"7df2ecf8b4224763ab7c71fae7ec8274\"]")
    req.addParam(name: "shipment_date", value: "2013-12-03T12:00:00.000Z")
    req.addParam(name: "extra", value: "'{ \"is_return\": true}'")
    req.addParam(name: "async", value: "false")

    req.addHeader(name: "Authorization", value: "ShippoToken <API_Token>")

    let resp = CkoHttpResponse()!
    success = http.httpReq(url: "https://api.goshippo.com/shipments/", request: req, response: resp)
    if success == false {
        print("\(http.lastErrorText!)")
        return
    }

    let sbResponseBody = CkoStringBuilder()!
    resp.getBodySb(sb: sbResponseBody)
    let jResp = CkoJsonObject()!
    jResp.loadSb(sb: sbResponseBody)
    jResp.emitCompact = false

    print("Response Body:")
    print("\(jResp.emit()!)")

    var respStatusCode: Int = resp.statusCode.intValue
    print("Response Status Code = \(respStatusCode)")
    if respStatusCode >= 400 {
        print("Response Header:")
        print("\(resp.header!)")
        print("Failed.")
        return
    }

    // Sample JSON response:
    // (Sample code for parsing the JSON response is shown below)

    // {}

    // Sample code for parsing the JSON response...
    // Use the following online tool to generate parsing code from sample JSON:
    // Generate Parsing Code from JSON


}