Chilkat Online Tools

DataFlex / ShipEngine Walkthrough / Validate when creating a shipment

Back to Collection Items

Use ChilkatAx-9.5.0-win32.pkg

Procedure Test
    Handle hoHttp
    Boolean iSuccess
    Variant vJson
    Handle hoJson
    Variant vResp
    Handle hoResp
    Variant vSbResponseBody
    Handle hoSbResponseBody
    Handle hoJResp
    Integer iRespStatusCode
    String sStatus
    String sName
    String sPhone
    String sCompany_name
    String sAddress_line1
    String sAddress_line2
    String sAddress_line3
    String sCity_locality
    String sState_province
    String sPostal_code
    String sCountry_code
    String sAddress_residential_indicator
    String sMatched_addressName
    String sMatched_addressPhone
    String sMatched_addressCompany_name
    String sMatched_addressAddress_line1
    String sMatched_addressAddress_line2
    String sMatched_addressAddress_line3
    String sMatched_addressCity_locality
    String sMatched_addressState_province
    String sMatched_addressPostal_code
    String sMatched_addressCountry_code
    String sMatched_addressAddress_residential_indicator
    String sShipment_id
    String sCarrier_id
    String sService_code
    String sExternal_shipment_id
    String sShip_date
    String sCreated_at
    String sModified_at
    String sShipment_status
    String sShip_toName
    String sShip_toPhone
    String sShip_toCompany_name
    String sShip_toAddress_line1
    String sShip_toAddress_line2
    String sShip_toAddress_line3
    String sShip_toCity_locality
    String sShip_toState_province
    String sShip_toPostal_code
    String sShip_toCountry_code
    String sShip_toAddress_residential_indicator
    String sShip_fromName
    String sShip_fromPhone
    String sShip_fromCompany_name
    String sShip_fromAddress_line1
    String sShip_fromAddress_line2
    String sShip_fromAddress_line3
    String sShip_fromCity_locality
    String sShip_fromState_province
    String sShip_fromPostal_code
    String sShip_fromCountry_code
    String sShip_fromAddress_residential_indicator
    String sWarehouse_id
    String sReturn_toName
    String sReturn_toPhone
    String sReturn_toCompany_name
    String sReturn_toAddress_line1
    String sReturn_toAddress_line2
    String sReturn_toAddress_line3
    String sReturn_toCity_locality
    String sReturn_toState_province
    String sReturn_toPostal_code
    String sReturn_toCountry_code
    String sReturn_toAddress_residential_indicator
    String sConfirmation
    String sCustoms
    String sExternal_order_id
    String sOrder_source_code
    String sBill_to_account
    String sBill_to_country_code
    String sBill_to_party
    String sBill_to_postal_code
    Boolean iContains_alcohol
    Boolean iDelivered_duty_paid
    Boolean iNon_machinable
    Boolean iSaturday_delivery
    Boolean iDry_ice
    String sDry_ice_weight
    String sFreight_class
    String sCustom_field1
    String sCustom_field2
    String sCustom_field3
    String sInsurance_provider
    Integer iValue
    String sUnit
    Integer j
    Integer iCount_j
    String sPackage_code
    Integer iWeightValue
    String sWeightUnit
    String sDimensionsUnit
    Integer iLength
    Integer iWidth
    Integer iHeight
    String sV_Currency
    Integer iAmount
    String sReference1
    String sReference2
    String sReference3
    String sExternal_package_id
    Boolean iHas_errors
    Integer i
    Integer iCount_i
    String sTemp1
    Boolean bTemp1

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

    Get Create (RefClass(cComChilkatHttp)) To hoHttp
    If (Not(IsComObjectCreated(hoHttp))) Begin
        Send CreateComObject of hoHttp
    End

    // Use this online tool to generate code from sample JSON: Generate Code to Create JSON

    // The following JSON is sent in the request body.

    // {
    //   "shipments": [
    //     {
    //       "validate_address": "validate_and_clean",
    //       "service_code": "usps_priority_mail",
    //       "ship_from": {
    //         "name": "John Doe",
    //         "company_name": "Example Corp.",
    //         "address_line1": "4009 Marathon Blvd",
    //         "city_locality": "Austin",
    //         "state_province": "TX",
    //         "postal_code": "78756",
    //         "country_code": "US",
    //         "phone": "512-555-5555"
    //       },
    //       "ship_to": {
    //         "name": "Amanda Miller",
    //         "address_line1": "525 Winchester",
    //         "postal_code": "95128",
    //         "country_code": "US"
    //       },
    //       "packages": [
    //         {
    //           "weight": {
    //             "value": 17,
    //             "unit": "pound"
    //           },
    //           "dimensions": {
    //             "length": 36,
    //             "width": 12,
    //             "height": 24,
    //             "unit": "inch"
    //           }
    //         }
    //       ]
    //     }
    //   ]
    // }

    Get Create (RefClass(cComChilkatJsonObject)) To hoJson
    If (Not(IsComObjectCreated(hoJson))) Begin
        Send CreateComObject of hoJson
    End
    Get ComUpdateString Of hoJson "shipments[0].validate_address" "validate_and_clean" To iSuccess
    Get ComUpdateString Of hoJson "shipments[0].service_code" "usps_priority_mail" To iSuccess
    Get ComUpdateString Of hoJson "shipments[0].ship_from.name" "John Doe" To iSuccess
    Get ComUpdateString Of hoJson "shipments[0].ship_from.company_name" "Example Corp." To iSuccess
    Get ComUpdateString Of hoJson "shipments[0].ship_from.address_line1" "4009 Marathon Blvd" To iSuccess
    Get ComUpdateString Of hoJson "shipments[0].ship_from.city_locality" "Austin" To iSuccess
    Get ComUpdateString Of hoJson "shipments[0].ship_from.state_province" "TX" To iSuccess
    Get ComUpdateString Of hoJson "shipments[0].ship_from.postal_code" "78756" To iSuccess
    Get ComUpdateString Of hoJson "shipments[0].ship_from.country_code" "US" To iSuccess
    Get ComUpdateString Of hoJson "shipments[0].ship_from.phone" "512-555-5555" To iSuccess
    Get ComUpdateString Of hoJson "shipments[0].ship_to.name" "Amanda Miller" To iSuccess
    Get ComUpdateString Of hoJson "shipments[0].ship_to.address_line1" "525 Winchester" To iSuccess
    Get ComUpdateString Of hoJson "shipments[0].ship_to.postal_code" "95128" To iSuccess
    Get ComUpdateString Of hoJson "shipments[0].ship_to.country_code" "US" To iSuccess
    Get ComUpdateInt Of hoJson "shipments[0].packages[0].weight.value" 17 To iSuccess
    Get ComUpdateString Of hoJson "shipments[0].packages[0].weight.unit" "pound" To iSuccess
    Get ComUpdateInt Of hoJson "shipments[0].packages[0].dimensions.length" 36 To iSuccess
    Get ComUpdateInt Of hoJson "shipments[0].packages[0].dimensions.width" 12 To iSuccess
    Get ComUpdateInt Of hoJson "shipments[0].packages[0].dimensions.height" 24 To iSuccess
    Get ComUpdateString Of hoJson "shipments[0].packages[0].dimensions.unit" "inch" To iSuccess

    Send ComSetRequestHeader To hoHttp "API-Key" "{{API_KEY}}"
    Send ComSetRequestHeader To hoHttp "Content-Type" "application/json"

    Get pvComObject of hoJson to vJson
    Get ComPostJson3 Of hoHttp "https://api.shipengine.com/v1/shipments" "application/json" vJson To vResp
    If (IsComObject(vResp)) Begin
        Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
        Set pvComObject Of hoResp To vResp
    End
    Get ComLastMethodSuccess Of hoHttp To bTemp1
    If (bTemp1 = False) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponseBody
    If (Not(IsComObjectCreated(hoSbResponseBody))) Begin
        Send CreateComObject of hoSbResponseBody
    End
    Get pvComObject of hoSbResponseBody to vSbResponseBody
    Get ComGetBodySb Of hoResp vSbResponseBody To iSuccess

    Get Create (RefClass(cComChilkatJsonObject)) To hoJResp
    If (Not(IsComObjectCreated(hoJResp))) Begin
        Send CreateComObject of hoJResp
    End
    Get pvComObject of hoSbResponseBody to vSbResponseBody
    Get ComLoadSb Of hoJResp vSbResponseBody To iSuccess
    Set ComEmitCompact Of hoJResp To False

    Showln "Response Body:"
    Get ComEmit Of hoJResp To sTemp1
    Showln sTemp1

    Get ComStatusCode Of hoResp To iRespStatusCode
    Showln "Response Status Code = " iRespStatusCode
    If (iRespStatusCode >= 400) Begin
        Showln "Response Header:"
        Get ComHeader Of hoResp To sTemp1
        Showln sTemp1
        Showln "Failed."
        Send Destroy of hoResp
        Procedure_Return
    End

    Send Destroy of hoResp

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

    // {
    //   "has_errors": false,
    //   "shipments": [
    //     {
    //       "errors": [
    //       ],
    //       "address_validation": {
    //         "status": "verified",
    //         "original_address": {
    //           "name": "Amanda Miller",
    //           "phone": null,
    //           "company_name": null,
    //           "address_line1": "525 Winchester",
    //           "address_line2": null,
    //           "address_line3": null,
    //           "city_locality": null,
    //           "state_province": null,
    //           "postal_code": "95128",
    //           "country_code": "US",
    //           "address_residential_indicator": "unknown"
    //         },
    //         "matched_address": {
    //           "name": "AMANDA MILLER",
    //           "phone": null,
    //           "company_name": null,
    //           "address_line1": "525 S WINCHESTER BLVD",
    //           "address_line2": "",
    //           "address_line3": null,
    //           "city_locality": "SAN JOSE",
    //           "state_province": "CA",
    //           "postal_code": "95128-2537",
    //           "country_code": "US",
    //           "address_residential_indicator": "no"
    //         },
    //         "messages": [
    //         ]
    //       },
    //       "shipment_id": "se-4159801",
    //       "carrier_id": "se-121861",
    //       "service_code": "usps_priority_mail",
    //       "external_shipment_id": null,
    //       "ship_date": "2019-09-18T00:00:00Z",
    //       "created_at": "2019-09-18T16:01:54.9171198Z",
    //       "modified_at": "2019-09-18T16:01:54.9171198Z",
    //       "shipment_status": "pending",
    //       "ship_to": {
    //         "name": "AMANDA MILLER",
    //         "phone": null,
    //         "company_name": null,
    //         "address_line1": "525 S WINCHESTER BLVD",
    //         "address_line2": "",
    //         "address_line3": null,
    //         "city_locality": "SAN JOSE",
    //         "state_province": "CA",
    //         "postal_code": "95128-2537",
    //         "country_code": "US",
    //         "address_residential_indicator": "no"
    //       },
    //       "ship_from": {
    //         "name": "John Doe",
    //         "phone": "512-555-5555",
    //         "company_name": "Example Corp.",
    //         "address_line1": "4009 Marathon Blvd",
    //         "address_line2": null,
    //         "address_line3": null,
    //         "city_locality": "Austin",
    //         "state_province": "TX",
    //         "postal_code": "78756",
    //         "country_code": "US",
    //         "address_residential_indicator": "unknown"
    //       },
    //       "warehouse_id": null,
    //       "return_to": {
    //         "name": "John Doe",
    //         "phone": "512-555-5555",
    //         "company_name": "Example Corp.",
    //         "address_line1": "4009 Marathon Blvd",
    //         "address_line2": null,
    //         "address_line3": null,
    //         "city_locality": "Austin",
    //         "state_province": "TX",
    //         "postal_code": "78756",
    //         "country_code": "US",
    //         "address_residential_indicator": "unknown"
    //       },
    //       "confirmation": "none",
    //       "customs": null,
    //       "external_order_id": null,
    //       "order_source_code": null,
    //       "advanced_options": {
    //         "bill_to_account": null,
    //         "bill_to_country_code": null,
    //         "bill_to_party": null,
    //         "bill_to_postal_code": null,
    //         "contains_alcohol": false,
    //         "delivered_duty_paid": false,
    //         "non_machinable": false,
    //         "saturday_delivery": false,
    //         "dry_ice": false,
    //         "dry_ice_weight": null,
    //         "freight_class": null,
    //         "custom_field1": null,
    //         "custom_field2": null,
    //         "custom_field3": null
    //       },
    //       "insurance_provider": "none",
    //       "tags": [
    //       ],
    //       "packages": [
    //         {
    //           "package_code": "package",
    //           "weight": {
    //             "value": 17,
    //             "unit": "pound"
    //           },
    //           "dimensions": {
    //             "unit": "inch",
    //             "length": 36,
    //             "width": 12,
    //             "height": 24
    //           },
    //           "insured_value": {
    //             "currency": "usd",
    //             "amount": 0
    //           },
    //           "label_messages": {
    //             "reference1": null,
    //             "reference2": null,
    //             "reference3": null
    //           },
    //           "external_package_id": null
    //         }
    //       ],
    //       "total_weight": {
    //         "value": 17,
    //         "unit": "pound"
    //       },
    //       "items": [
    //       ]
    //     }
    //   ]
    // }

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

    Get ComBoolOf Of hoJResp "has_errors" To iHas_errors
    Move 0 To i
    Get ComSizeOfArray Of hoJResp "shipments" To iCount_i
    While (i < iCount_i)
        Set ComI Of hoJResp To i
        Get ComStringOf Of hoJResp "shipments[i].address_validation.status" To sStatus
        Get ComStringOf Of hoJResp "shipments[i].address_validation.original_address.name" To sName
        Get ComStringOf Of hoJResp "shipments[i].address_validation.original_address.phone" To sPhone
        Get ComStringOf Of hoJResp "shipments[i].address_validation.original_address.company_name" To sCompany_name
        Get ComStringOf Of hoJResp "shipments[i].address_validation.original_address.address_line1" To sAddress_line1
        Get ComStringOf Of hoJResp "shipments[i].address_validation.original_address.address_line2" To sAddress_line2
        Get ComStringOf Of hoJResp "shipments[i].address_validation.original_address.address_line3" To sAddress_line3
        Get ComStringOf Of hoJResp "shipments[i].address_validation.original_address.city_locality" To sCity_locality
        Get ComStringOf Of hoJResp "shipments[i].address_validation.original_address.state_province" To sState_province
        Get ComStringOf Of hoJResp "shipments[i].address_validation.original_address.postal_code" To sPostal_code
        Get ComStringOf Of hoJResp "shipments[i].address_validation.original_address.country_code" To sCountry_code
        Get ComStringOf Of hoJResp "shipments[i].address_validation.original_address.address_residential_indicator" To sAddress_residential_indicator
        Get ComStringOf Of hoJResp "shipments[i].address_validation.matched_address.name" To sMatched_addressName
        Get ComStringOf Of hoJResp "shipments[i].address_validation.matched_address.phone" To sMatched_addressPhone
        Get ComStringOf Of hoJResp "shipments[i].address_validation.matched_address.company_name" To sMatched_addressCompany_name
        Get ComStringOf Of hoJResp "shipments[i].address_validation.matched_address.address_line1" To sMatched_addressAddress_line1
        Get ComStringOf Of hoJResp "shipments[i].address_validation.matched_address.address_line2" To sMatched_addressAddress_line2
        Get ComStringOf Of hoJResp "shipments[i].address_validation.matched_address.address_line3" To sMatched_addressAddress_line3
        Get ComStringOf Of hoJResp "shipments[i].address_validation.matched_address.city_locality" To sMatched_addressCity_locality
        Get ComStringOf Of hoJResp "shipments[i].address_validation.matched_address.state_province" To sMatched_addressState_province
        Get ComStringOf Of hoJResp "shipments[i].address_validation.matched_address.postal_code" To sMatched_addressPostal_code
        Get ComStringOf Of hoJResp "shipments[i].address_validation.matched_address.country_code" To sMatched_addressCountry_code
        Get ComStringOf Of hoJResp "shipments[i].address_validation.matched_address.address_residential_indicator" To sMatched_addressAddress_residential_indicator
        Get ComStringOf Of hoJResp "shipments[i].shipment_id" To sShipment_id
        Get ComStringOf Of hoJResp "shipments[i].carrier_id" To sCarrier_id
        Get ComStringOf Of hoJResp "shipments[i].service_code" To sService_code
        Get ComStringOf Of hoJResp "shipments[i].external_shipment_id" To sExternal_shipment_id
        Get ComStringOf Of hoJResp "shipments[i].ship_date" To sShip_date
        Get ComStringOf Of hoJResp "shipments[i].created_at" To sCreated_at
        Get ComStringOf Of hoJResp "shipments[i].modified_at" To sModified_at
        Get ComStringOf Of hoJResp "shipments[i].shipment_status" To sShipment_status
        Get ComStringOf Of hoJResp "shipments[i].ship_to.name" To sShip_toName
        Get ComStringOf Of hoJResp "shipments[i].ship_to.phone" To sShip_toPhone
        Get ComStringOf Of hoJResp "shipments[i].ship_to.company_name" To sShip_toCompany_name
        Get ComStringOf Of hoJResp "shipments[i].ship_to.address_line1" To sShip_toAddress_line1
        Get ComStringOf Of hoJResp "shipments[i].ship_to.address_line2" To sShip_toAddress_line2
        Get ComStringOf Of hoJResp "shipments[i].ship_to.address_line3" To sShip_toAddress_line3
        Get ComStringOf Of hoJResp "shipments[i].ship_to.city_locality" To sShip_toCity_locality
        Get ComStringOf Of hoJResp "shipments[i].ship_to.state_province" To sShip_toState_province
        Get ComStringOf Of hoJResp "shipments[i].ship_to.postal_code" To sShip_toPostal_code
        Get ComStringOf Of hoJResp "shipments[i].ship_to.country_code" To sShip_toCountry_code
        Get ComStringOf Of hoJResp "shipments[i].ship_to.address_residential_indicator" To sShip_toAddress_residential_indicator
        Get ComStringOf Of hoJResp "shipments[i].ship_from.name" To sShip_fromName
        Get ComStringOf Of hoJResp "shipments[i].ship_from.phone" To sShip_fromPhone
        Get ComStringOf Of hoJResp "shipments[i].ship_from.company_name" To sShip_fromCompany_name
        Get ComStringOf Of hoJResp "shipments[i].ship_from.address_line1" To sShip_fromAddress_line1
        Get ComStringOf Of hoJResp "shipments[i].ship_from.address_line2" To sShip_fromAddress_line2
        Get ComStringOf Of hoJResp "shipments[i].ship_from.address_line3" To sShip_fromAddress_line3
        Get ComStringOf Of hoJResp "shipments[i].ship_from.city_locality" To sShip_fromCity_locality
        Get ComStringOf Of hoJResp "shipments[i].ship_from.state_province" To sShip_fromState_province
        Get ComStringOf Of hoJResp "shipments[i].ship_from.postal_code" To sShip_fromPostal_code
        Get ComStringOf Of hoJResp "shipments[i].ship_from.country_code" To sShip_fromCountry_code
        Get ComStringOf Of hoJResp "shipments[i].ship_from.address_residential_indicator" To sShip_fromAddress_residential_indicator
        Get ComStringOf Of hoJResp "shipments[i].warehouse_id" To sWarehouse_id
        Get ComStringOf Of hoJResp "shipments[i].return_to.name" To sReturn_toName
        Get ComStringOf Of hoJResp "shipments[i].return_to.phone" To sReturn_toPhone
        Get ComStringOf Of hoJResp "shipments[i].return_to.company_name" To sReturn_toCompany_name
        Get ComStringOf Of hoJResp "shipments[i].return_to.address_line1" To sReturn_toAddress_line1
        Get ComStringOf Of hoJResp "shipments[i].return_to.address_line2" To sReturn_toAddress_line2
        Get ComStringOf Of hoJResp "shipments[i].return_to.address_line3" To sReturn_toAddress_line3
        Get ComStringOf Of hoJResp "shipments[i].return_to.city_locality" To sReturn_toCity_locality
        Get ComStringOf Of hoJResp "shipments[i].return_to.state_province" To sReturn_toState_province
        Get ComStringOf Of hoJResp "shipments[i].return_to.postal_code" To sReturn_toPostal_code
        Get ComStringOf Of hoJResp "shipments[i].return_to.country_code" To sReturn_toCountry_code
        Get ComStringOf Of hoJResp "shipments[i].return_to.address_residential_indicator" To sReturn_toAddress_residential_indicator
        Get ComStringOf Of hoJResp "shipments[i].confirmation" To sConfirmation
        Get ComStringOf Of hoJResp "shipments[i].customs" To sCustoms
        Get ComStringOf Of hoJResp "shipments[i].external_order_id" To sExternal_order_id
        Get ComStringOf Of hoJResp "shipments[i].order_source_code" To sOrder_source_code
        Get ComStringOf Of hoJResp "shipments[i].advanced_options.bill_to_account" To sBill_to_account
        Get ComStringOf Of hoJResp "shipments[i].advanced_options.bill_to_country_code" To sBill_to_country_code
        Get ComStringOf Of hoJResp "shipments[i].advanced_options.bill_to_party" To sBill_to_party
        Get ComStringOf Of hoJResp "shipments[i].advanced_options.bill_to_postal_code" To sBill_to_postal_code
        Get ComBoolOf Of hoJResp "shipments[i].advanced_options.contains_alcohol" To iContains_alcohol
        Get ComBoolOf Of hoJResp "shipments[i].advanced_options.delivered_duty_paid" To iDelivered_duty_paid
        Get ComBoolOf Of hoJResp "shipments[i].advanced_options.non_machinable" To iNon_machinable
        Get ComBoolOf Of hoJResp "shipments[i].advanced_options.saturday_delivery" To iSaturday_delivery
        Get ComBoolOf Of hoJResp "shipments[i].advanced_options.dry_ice" To iDry_ice
        Get ComStringOf Of hoJResp "shipments[i].advanced_options.dry_ice_weight" To sDry_ice_weight
        Get ComStringOf Of hoJResp "shipments[i].advanced_options.freight_class" To sFreight_class
        Get ComStringOf Of hoJResp "shipments[i].advanced_options.custom_field1" To sCustom_field1
        Get ComStringOf Of hoJResp "shipments[i].advanced_options.custom_field2" To sCustom_field2
        Get ComStringOf Of hoJResp "shipments[i].advanced_options.custom_field3" To sCustom_field3
        Get ComStringOf Of hoJResp "shipments[i].insurance_provider" To sInsurance_provider
        Get ComIntOf Of hoJResp "shipments[i].total_weight.value" To iValue
        Get ComStringOf Of hoJResp "shipments[i].total_weight.unit" To sUnit
        Move 0 To j
        Get ComSizeOfArray Of hoJResp "shipments[i].errors" To iCount_j
        While (j < iCount_j)
            Set ComJ Of hoJResp To j
            Move (j + 1) To j
        Loop

        Move 0 To j
        Get ComSizeOfArray Of hoJResp "shipments[i].address_validation.messages" To iCount_j
        While (j < iCount_j)
            Set ComJ Of hoJResp To j
            Move (j + 1) To j
        Loop

        Move 0 To j
        Get ComSizeOfArray Of hoJResp "shipments[i].tags" To iCount_j
        While (j < iCount_j)
            Set ComJ Of hoJResp To j
            Move (j + 1) To j
        Loop

        Move 0 To j
        Get ComSizeOfArray Of hoJResp "shipments[i].packages" To iCount_j
        While (j < iCount_j)
            Set ComJ Of hoJResp To j
            Get ComStringOf Of hoJResp "shipments[i].packages[j].package_code" To sPackage_code
            Get ComIntOf Of hoJResp "shipments[i].packages[j].weight.value" To iWeightValue
            Get ComStringOf Of hoJResp "shipments[i].packages[j].weight.unit" To sWeightUnit
            Get ComStringOf Of hoJResp "shipments[i].packages[j].dimensions.unit" To sDimensionsUnit
            Get ComIntOf Of hoJResp "shipments[i].packages[j].dimensions.length" To iLength
            Get ComIntOf Of hoJResp "shipments[i].packages[j].dimensions.width" To iWidth
            Get ComIntOf Of hoJResp "shipments[i].packages[j].dimensions.height" To iHeight
            Get ComStringOf Of hoJResp "shipments[i].packages[j].insured_value.currency" To sV_Currency
            Get ComIntOf Of hoJResp "shipments[i].packages[j].insured_value.amount" To iAmount
            Get ComStringOf Of hoJResp "shipments[i].packages[j].label_messages.reference1" To sReference1
            Get ComStringOf Of hoJResp "shipments[i].packages[j].label_messages.reference2" To sReference2
            Get ComStringOf Of hoJResp "shipments[i].packages[j].label_messages.reference3" To sReference3
            Get ComStringOf Of hoJResp "shipments[i].packages[j].external_package_id" To sExternal_package_id
            Move (j + 1) To j
        Loop

        Move 0 To j
        Get ComSizeOfArray Of hoJResp "shipments[i].items" To iCount_j
        While (j < iCount_j)
            Set ComJ Of hoJResp To j
            Move (j + 1) To j
        Loop

        Move (i + 1) To i
    Loop



End_Procedure

Curl Command

curl -X POST
	-H "API-Key: {{API_KEY}}"
	-H "Content-Type: application/json"
	-d '{
	"shipments": [{
		"validate_address": "validate_and_clean",
		"service_code": "usps_priority_mail",
		"ship_from": {
			"name": "John Doe",
			"company_name": "Example Corp.",
			"address_line1": "4009 Marathon Blvd",
			"city_locality": "Austin",
			"state_province": "TX",
			"postal_code": "78756",
			"country_code": "US",
			"phone": "512-555-5555"
		},
		"ship_to": {
			"name": "Amanda Miller",
			"address_line1": "525 Winchester",
			"postal_code": "95128",
			"country_code": "US"
		},
		"packages": [
			{
				"weight": {
					"value": 17,
					"unit": "pound"
				},
				"dimensions": {
					"length": 36,
					"width": 12,
					"height": 24,
					"unit": "inch"
				}
			}
		]
	}]
}'
https://api.shipengine.com/v1/shipments

Postman Collection Item JSON

{
  "name": "Validate when creating a shipment",
  "event": [
    {
      "listen": "test",
      "script": {
        "exec": [
          "let response = pm.response.json();",
          "",
          "if (response.shipments.length > 0) {",
          "    pm.collectionVariables.set(\"shipment_id\", response.shipments[0].shipment_id);",
          "}"
        ],
        "type": "text/javascript"
      }
    }
  ],
  "request": {
    "method": "POST",
    "header": [
      {
        "key": "Content-Type",
        "name": "Content-Type",
        "type": "text",
        "value": "application/json"
      }
    ],
    "body": {
      "mode": "raw",
      "raw": "{\n\t\"shipments\": [{\n\t\t\"validate_address\": \"validate_and_clean\",\n\t\t\"service_code\": \"usps_priority_mail\",\n\t\t\"ship_from\": {\n\t\t\t\"name\": \"John Doe\",\n\t\t\t\"company_name\": \"Example Corp.\",\n\t\t\t\"address_line1\": \"4009 Marathon Blvd\",\n\t\t\t\"city_locality\": \"Austin\",\n\t\t\t\"state_province\": \"TX\",\n\t\t\t\"postal_code\": \"78756\",\n\t\t\t\"country_code\": \"US\",\n\t\t\t\"phone\": \"512-555-5555\"\n\t\t},\n\t\t\"ship_to\": {\n\t\t\t\"name\": \"Amanda Miller\",\n\t\t\t\"address_line1\": \"525 Winchester\",\n\t\t\t\"postal_code\": \"95128\",\n\t\t\t\"country_code\": \"US\"\n\t\t},\n\t\t\"packages\": [\n\t\t\t{\n\t\t\t\t\"weight\": {\n\t\t\t\t\t\"value\": 17,\n\t\t\t\t\t\"unit\": \"pound\"\n\t\t\t\t},\n\t\t\t\t\"dimensions\": {\n\t\t\t\t\t\"length\": 36,\n\t\t\t\t\t\"width\": 12,\n\t\t\t\t\t\"height\": 24,\n\t\t\t\t\t\"unit\": \"inch\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t}]\n}"
    },
    "url": {
      "raw": "https://api.shipengine.com/v1/shipments",
      "protocol": "https",
      "host": [
        "api",
        "shipengine",
        "com"
      ],
      "path": [
        "v1",
        "shipments"
      ]
    },
    "description": "You can validate the address at the same time as creating a shipment in ShipEngine by setting the `validate_address` field to either `validate_only` or `validate_and_clean`."
  },
  "response": [
    {
      "name": "Validate when creating a shipment",
      "originalRequest": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "name": "Content-Type",
            "type": "text",
            "value": "application/json"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n\t\"shipments\": [{\n\t\t\"validate_address\": \"validate_and_clean\",\n\t\t\"service_code\": \"usps_priority_mail\",\n\t\t\"ship_from\": {\n\t\t\t\"name\": \"John Doe\",\n\t\t\t\"company_name\": \"Example Corp.\",\n\t\t\t\"address_line1\": \"4009 Marathon Blvd\",\n\t\t\t\"city_locality\": \"Austin\",\n\t\t\t\"state_province\": \"TX\",\n\t\t\t\"postal_code\": \"78756\",\n\t\t\t\"country_code\": \"US\",\n\t\t\t\"phone\": \"512-555-5555\"\n\t\t},\n\t\t\"ship_to\": {\n\t\t\t\"name\": \"Amanda Miller\",\n\t\t\t\"address_line1\": \"525 Winchester\",\n\t\t\t\"postal_code\": \"95128\",\n\t\t\t\"country_code\": \"US\"\n\t\t},\n\t\t\"packages\": [\n\t\t\t{\n\t\t\t\t\"weight\": {\n\t\t\t\t\t\"value\": 17,\n\t\t\t\t\t\"unit\": \"pound\"\n\t\t\t\t},\n\t\t\t\t\"dimensions\": {\n\t\t\t\t\t\"length\": 36,\n\t\t\t\t\t\"width\": 12,\n\t\t\t\t\t\"height\": 24,\n\t\t\t\t\t\"unit\": \"inch\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t}]\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "https://api.shipengine.com/v1/shipments",
          "protocol": "https",
          "host": [
            "api",
            "shipengine",
            "com"
          ],
          "path": [
            "v1",
            "shipments"
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Date",
          "value": "Wed, 18 Sep 2019 16:01:54 GMT"
        },
        {
          "key": "Content-Type",
          "value": "application/json; charset=utf-8"
        },
        {
          "key": "Content-Length",
          "value": "4156"
        },
        {
          "key": "Connection",
          "value": "keep-alive"
        },
        {
          "key": "Access-Control-Allow-Origin",
          "value": "https://www.shipengine.com"
        },
        {
          "key": "Vary",
          "value": "Origin"
        },
        {
          "key": "x-shipengine-requestid",
          "value": "9b4734c7-f7d7-4ce9-8597-e9e6696d0053"
        }
      ],
      "cookie": [
      ],
      "body": "{\n    \"has_errors\": false,\n    \"shipments\": [\n        {\n            \"errors\": [],\n            \"address_validation\": {\n                \"status\": \"verified\",\n                \"original_address\": {\n                    \"name\": \"Amanda Miller\",\n                    \"phone\": null,\n                    \"company_name\": null,\n                    \"address_line1\": \"525 Winchester\",\n                    \"address_line2\": null,\n                    \"address_line3\": null,\n                    \"city_locality\": null,\n                    \"state_province\": null,\n                    \"postal_code\": \"95128\",\n                    \"country_code\": \"US\",\n                    \"address_residential_indicator\": \"unknown\"\n                },\n                \"matched_address\": {\n                    \"name\": \"AMANDA MILLER\",\n                    \"phone\": null,\n                    \"company_name\": null,\n                    \"address_line1\": \"525 S WINCHESTER BLVD\",\n                    \"address_line2\": \"\",\n                    \"address_line3\": null,\n                    \"city_locality\": \"SAN JOSE\",\n                    \"state_province\": \"CA\",\n                    \"postal_code\": \"95128-2537\",\n                    \"country_code\": \"US\",\n                    \"address_residential_indicator\": \"no\"\n                },\n                \"messages\": []\n            },\n            \"shipment_id\": \"se-4159801\",\n            \"carrier_id\": \"se-121861\",\n            \"service_code\": \"usps_priority_mail\",\n            \"external_shipment_id\": null,\n            \"ship_date\": \"2019-09-18T00:00:00Z\",\n            \"created_at\": \"2019-09-18T16:01:54.9171198Z\",\n            \"modified_at\": \"2019-09-18T16:01:54.9171198Z\",\n            \"shipment_status\": \"pending\",\n            \"ship_to\": {\n                \"name\": \"AMANDA MILLER\",\n                \"phone\": null,\n                \"company_name\": null,\n                \"address_line1\": \"525 S WINCHESTER BLVD\",\n                \"address_line2\": \"\",\n                \"address_line3\": null,\n                \"city_locality\": \"SAN JOSE\",\n                \"state_province\": \"CA\",\n                \"postal_code\": \"95128-2537\",\n                \"country_code\": \"US\",\n                \"address_residential_indicator\": \"no\"\n            },\n            \"ship_from\": {\n                \"name\": \"John Doe\",\n                \"phone\": \"512-555-5555\",\n                \"company_name\": \"Example Corp.\",\n                \"address_line1\": \"4009 Marathon Blvd\",\n                \"address_line2\": null,\n                \"address_line3\": null,\n                \"city_locality\": \"Austin\",\n                \"state_province\": \"TX\",\n                \"postal_code\": \"78756\",\n                \"country_code\": \"US\",\n                \"address_residential_indicator\": \"unknown\"\n            },\n            \"warehouse_id\": null,\n            \"return_to\": {\n                \"name\": \"John Doe\",\n                \"phone\": \"512-555-5555\",\n                \"company_name\": \"Example Corp.\",\n                \"address_line1\": \"4009 Marathon Blvd\",\n                \"address_line2\": null,\n                \"address_line3\": null,\n                \"city_locality\": \"Austin\",\n                \"state_province\": \"TX\",\n                \"postal_code\": \"78756\",\n                \"country_code\": \"US\",\n                \"address_residential_indicator\": \"unknown\"\n            },\n            \"confirmation\": \"none\",\n            \"customs\": null,\n            \"external_order_id\": null,\n            \"order_source_code\": null,\n            \"advanced_options\": {\n                \"bill_to_account\": null,\n                \"bill_to_country_code\": null,\n                \"bill_to_party\": null,\n                \"bill_to_postal_code\": null,\n                \"contains_alcohol\": false,\n                \"delivered_duty_paid\": false,\n                \"non_machinable\": false,\n                \"saturday_delivery\": false,\n                \"dry_ice\": false,\n                \"dry_ice_weight\": null,\n                \"freight_class\": null,\n                \"custom_field1\": null,\n                \"custom_field2\": null,\n                \"custom_field3\": null\n            },\n            \"insurance_provider\": \"none\",\n            \"tags\": [],\n            \"packages\": [\n                {\n                    \"package_code\": \"package\",\n                    \"weight\": {\n                        \"value\": 17,\n                        \"unit\": \"pound\"\n                    },\n                    \"dimensions\": {\n                        \"unit\": \"inch\",\n                        \"length\": 36,\n                        \"width\": 12,\n                        \"height\": 24\n                    },\n                    \"insured_value\": {\n                        \"currency\": \"usd\",\n                        \"amount\": 0\n                    },\n                    \"label_messages\": {\n                        \"reference1\": null,\n                        \"reference2\": null,\n                        \"reference3\": null\n                    },\n                    \"external_package_id\": null\n                }\n            ],\n            \"total_weight\": {\n                \"value\": 17,\n                \"unit\": \"pound\"\n            },\n            \"items\": []\n        }\n    ]\n}"
    }
  ]
}