Sample code for 30+ languages & platforms
B4X

Shippo Validate Existing Address

See more Shippo Examples

Demonstrates how to validate an existing address.

Chilkat B4X Downloads

B4X
Dim success As Boolean = False

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

Dim http As ChilkatHttp
http.Initialize("http")

'  Implements the following CURL command:

'  curl https://api.goshippo.com/addresses/e9dabe9669334b84baad3a08646b2202/validate/ \
'      -H "Authorization: ShippoToken <API_TOKEN>"

http.SetRequestHeader("Authorization", "ShippoToken <API_TOKEN>")

Dim sbResponseBody As ChilkatStringBuilder
sbResponseBody.Initialize
success = http.QuickGetSb("https://api.goshippo.com/addresses/e9dabe9669334b84baad3a08646b2202/validate/", sbResponseBody)
If success = False Then
    Log(http.LastErrorText)
    Return
End If


Dim jResp As ChilkatJsonObject
jResp.Initialize
jResp.LoadSb(sbResponseBody)
jResp.EmitCompact = False

Log("Response Body:")
Log(jResp.Emit)

Dim respStatusCode As Int = http.LastStatus
Log("Response Status Code = " & respStatusCode)
If respStatusCode >= 400 Then
    Log("Response Header:")
    Log(http.LastHeader)
    Log("Failed.")
    Return
End If


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

'  {
'    "object_created": "2015-03-30T23:47:11.574Z",
'    "object_updated": "2015-03-30T23:47:11.596Z",
'    "object_id": "67183b2e81e9421f894bfbcdc4236b16",
'    "is_complete": false,
'    "validation_results": {
'      "is_valid": false,
'      "messages": [
'        {
'          "source": "USPS",
'          "code": "Address Not Found",
'          "type": "address_error",
'          "text": "The address as submitted could not be found. Please check for excessive abbreviations in the street address line or in the City name."
'        }
'      ]
'    },
'    "object_owner": "shippotle@goshippo.com",
'    "name": "Shawn Ippotle",
'    "company": "Shippo",
'    "street_no": "",
'    "street1": "215 HIPPO ST.",
'    "street2": "",
'    "city": "SAN FRANCISCO",
'    "state": "CA",
'    "zip": "94107",
'    "country": "US",
'    "phone": ""
'  }

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



Dim source As String
Dim code As String
Dim v_type As String
Dim text As String

Dim object_created As String = jResp.StringOf("object_created")
Dim object_updated As String = jResp.StringOf("object_updated")
Dim object_id As String = jResp.StringOf("object_id")
Dim is_complete As Boolean = jResp.BoolOf("is_complete")
Dim validation_resultsIs_valid As Boolean = jResp.BoolOf("validation_results.is_valid")
Dim object_owner As String = jResp.StringOf("object_owner")
Dim name As String = jResp.StringOf("name")
Dim company As String = jResp.StringOf("company")
Dim street_no As String = jResp.StringOf("street_no")
Dim street1 As String = jResp.StringOf("street1")
Dim street2 As String = jResp.StringOf("street2")
Dim city As String = jResp.StringOf("city")
Dim state As String = jResp.StringOf("state")
Dim zip As String = jResp.StringOf("zip")
Dim country As String = jResp.StringOf("country")
Dim phone As String = jResp.StringOf("phone")
Dim i As Int = 0
Dim count_i As Int = jResp.SizeOfArray("validation_results.messages")
Do While i < count_i
    jResp.I = i
    source = jResp.StringOf("validation_results.messages[i].source")
    code = jResp.StringOf("validation_results.messages[i].code")
    v_type = jResp.StringOf("validation_results.messages[i].type")
    text = jResp.StringOf("validation_results.messages[i].text")
    i = i + 1
Loop