API Calculate Shipping Rates

Real-time shipping rates from United States Postal Service, UPS and FedEx may be obtained through the PayTrace API at any time allowing your software to provide accurate real-time shipping rates.

Calculate Shipping Request

Required Name Value Pairs

UN, PSWD, TERMS, METHOD, SOURCEZIP, SOURCESTATE, SZIP, WEIGHT, SHIPPERS, SSTATE

Optional Name Value Pairs For Calculating Shipping Request

SCOUNTRY

Sample Calculate Shipping Request

‘format the request string to export all of the customer profiles for the demo account
strRequest = “UN~demo123|PSWD~demo123|TERMS~Y|METHOD~CalculateShipping|”
strRequest = strRequest & “SOURCEZIP~99201|SZIP~97201|WEIGHT~5.5|SOURCESTATE~WA|”
strRequest = strRequest & “SHIPPERS~UPS,USPS,FEDEX|SSTATE~OR|”

strResponse = SendPayTraceAPIRequest(strRequest) ‘defined in Referencing the API Page

Request Response

Returned Name Value Pairs

Responses elicited from a CalculateShipping request will always return either one or more error messages or one or more shipping records.

Example of Parsing a Calculate Shipping Response

‘declare tools to loop through the response and store the current name / value pair
Dim arrResponse() as String
Dim arrPair() as String
Dim Counter as Integer

Dim arrSUBResponse() as String
Dim arrSUBPair() as String
Dim SUBCounter as Integer

‘declare the tools to store the values of the appropriate responses
Dim strError As String
 ‘…declare all of the individual fields (i.e. SHIPPINGMETHOD, SHIPPINGRATE, etc) that you wish to catch.

‘check to make sure the response was not empty/invalid
if strResponse <> “” and inStr(strResponse,”|”) > 0 and inStr(strResponse,”~”) > 0 then
    arrResponse = split(strResponse, “|”) ‘split the response into an array of name/value pairs

    for Counter = 0 to uBound(arrResponse)-1
        arrPair = split(arrResponse(Counter), “~”)
        If UCase(arrPair(0)) = "ERROR" Then
            StrError = strError & arrPair(1)
        ElseIf UCase(arrPair(0)) = "SHIPPINGRECORD" Then
            arrSUBResponse = split(arrPair(1), “+”)
            for SUBCounter = 0 to uBound(arrSUBResponse)-1
                arrSUBPair = split(arrResponse(SUBCounter), “~”)
                If UCase(arrSUBPair (0)) = " SHIPPINGMETHOD" Then
                    Msgbox “Shipping Method = “ & arrSUBPair (1)
                ElseIf UCase(arrSUBPair (0)) = " SHIPPINGRATE" Then
                    Msgbox “Shipping Rate= “ & arrSUBPair (1)
                End If 
            next
        End If 
    next
Else 
    StrError = StrError  & “The response from the PayTrace API was invalid."
End if 

If StrError <> “” then
    MsgBox “Shipping rate was not successful per the following error: ” & StrError
Else
    MsgBox “Shipping Rate was successful”
End if