Skip to content

Latest commit

 

History

History
180 lines (132 loc) · 3.83 KB

nz-post-tracking-api-go.md

File metadata and controls

180 lines (132 loc) · 3.83 KB

NZ Post Tracking API - Go

Use Go to track NZ Post shipments with NZ Post Tracking API.

Features

  • Real-time NZ Post tracking.
  • Batch NZ Post tracking.
  • Other features to manage your NZ Post tracking.

Installation

Installation is easy:

$ go mod init github.com/my/repo
$ go get github.com/trackingmore-api/trackingmore-sdk-go

Quick Start

Get the API key:

To use this API, you need to generate your API key.

  • Click here to access TrackingMore admin.
  • Go to the "Developer" section.

  • Click "Generate API Key".

  • Give a name to your API key, and click "Save" .

Then, start to track your NZ Post shipments.

Usage

Create a tracking (Real-time tracking):

package main

import (
  "context"
  "fmt"
  "github.com/trackingmore-api/trackingmore-sdk-go"
)

func main() {
  key := "your api key"
  cli, err := trackingmore.NewClient(key)
  
  if err != nil {
    fmt.Println(err)
    return
  }
  
  params := trackingmore.CreateTrackingParams{
    TrackingNumber: "0301006785462006320995",
    CourierCode:    "new-zealand-post",
  }      

  result, err := cli.CreateTracking(context.Background(), params)
  if err != nil {
    fmt.Println(err)
    return
  }
  
  fmt.Println(result)
}

Create trackings (Max. 40 tracking numbers create in one call):

package main

import (
  "context"
  "fmt"
  "github.com/trackingmore-api/trackingmore-sdk-go"
)

func main() {
  key := "your api key"
  cli, err := trackingmore.NewClient(key)
  
  if err != nil {
    fmt.Println(err)
    return
  }
  
  params := []trackingmore.CreateTrackingParams{
      {
      TrackingNumber: "LK201223662AU",
      CourierCode:    "new-zealand-post",
      },
      {
      TrackingNumber: "LH290032509AU",
      CourierCode:    "new-zealand-post",
      },
  }   

  result, err := cli.BatchCreateTrackings(context.Background(), params)
  if err != nil {
    fmt.Println(err)
    return
  }
  
  fmt.Println(result)
}

Get status of the shipment:

package main

import (
  "context"
  "fmt"
  "github.com/trackingmore-api/trackingmore-sdk-go"
)

func main() {
  key := "your api key"
  cli, err := trackingmore.NewClient(key)
  
  if err != nil {
    fmt.Println(err)
    return
  }

  params := trackingmore.GetTrackingResultsParams{
    CreatedDateMin: "2023-08-23T06:00:00+00:00",
    CreatedDateMax: "2023-09-05T07:20:42+00:00",
  }  

  result, err := cli.GetTrackingResults(context.Background(), params)
  if err != nil {
    fmt.Println(err)
    return
  }
  
  fmt.Println(result)
}

Update a tracking by ID:

package main

import (
  "context"
  "fmt"
  "github.com/trackingmore-api/trackingmore-sdk-go"
)

func main() {
  key := "your api key"
  cli, err := trackingmore.NewClient(key)
  
  if err != nil {
    fmt.Println(err)
    return
  }

  params := trackingmore.UpdateTrackingParams{
    CustomerName: "New name",
    Note:         "New tests order note",
  }
  idString := "9a1339cb81ec08b52985867d176a0ba4"
  
  result, err := cli.UpdateTrackingByID(context.Background(), idString, params)
  if err != nil {
    fmt.Println(err)
    return
  }
  
  fmt.Println(result)
}