Generate method
This API generates a tracking code, and a printable label for your package.
To generate a label you need to work through the following steps:
- Generate Label. A successful label generation response will return a 'Details URL' and a 'Print URL'.
- Poll the Details URL until the label has been successfully generated -or- wait for the label generation callback.
- Download the PDF of the Label from the Print URL.
Label generation can fail at 2 points:
- The Generate Label call: this service can return a non-200 response code indicating failure based on some basic checks such as field lengths and mandatory fields. The response will provide a set of error messages to indicate why failure has occurred.
- The second point of failure is once the generation request has been accepted and is indicated based on a query of the Details URL or the receipt of the webhook. In either case, this indicates a failure to generate the label based on more advanced and rigorous checking such as an invalid postcode for the destination country. These more advanced errors are reported with both an error code and message.
Try it here
API Details
URL | HTTP Request Types | Request Formats |
---|---|---|
https://api.nzpost.co.nz/labels/generate | POST | JSON |
Request Parameters
Parameter | Description | Required | Value | Maximum Length | Example |
---|---|---|---|---|---|
api_key | Your license key for the application. Please contact developer@nzpost.co.nz for a license key | Yes | String | c4f820f0420a012ea143000c290fbf99 | |
destination_contact_name | Named person to receive this package | Yes | String | 40 | Ben Smith |
destination_contact_phone | Contact phone number of the person receiving this package | No | String | 20 | 09 882 3478 |
destination_company | The name of the company receiving the package. | No | String | 40 | Ben's Bins |
destination_building | The building name | No | String | 40 | Majestic Centre |
destination_street | Street and and number | Yes | String | 40 | 135-139 Victoria St |
destination_locality | Typically the name of the suburb | No | String | 40 | Te Aro |
destination_city | The city name | Yes | String | 40 | Stratford |
destination_state | State or County of destination | No | String | 40 | NSW |
destination_country_code | Two-letter country code | Yes | String | NZ | |
destination_postal_code | Postal or Zip code of the destination | No | String | 20 | 6011 |
destination_vat_number | The VAT or GST number of the consignee | No | String | 14 | GB123123123123 |
destination_reference | Reference field for the receiver | No | String | Order #365 | |
destination_email | Contact email address of the receiver | No | String | 50 | jane.smith@zerocost.com |
destination_fax | Contact fax number of the receiver | No | String | 20 | 09 882 3478 |
sender_contact_name | Contact name of the person sending this package | Yes | String | 40 | John Smith |
sender_signature | Contact name of the person signing this package | No | String | John Smith | |
sender_contact_phone | Contact phone number of the person sending this package | No | String | 20 | 04 910 3101 |
sender_company | The name of the company sending the package. | No | String | 40 | Taranaki Recyclers Limited |
sender_building | The building name | No | String | 40 | Majestic Centre |
sender_street | Street and and number | Yes | String | 40 | 8a High St |
sender_locality | Typically the name of the suburb | No | String | 40 | Korokoro |
sender_city | The city name | Yes | String | 40 | Lower Hutt |
sender_state | State or County of sender | No | String | 40 | NSW |
sender_country_code | Two-letter country code (defaults to NZ if left blank) | No | String | NZ | |
sender_postal_code | Postal or Zip code of the sender | No | String | 20 | AL11XU |
sender_customs_code | Customs code of the sender | No | String | 15 | HGD34373 |
sender_reference | Reference code of the sender | No | String | 123/456 | |
sender_email | Contact email address of the sender | No | String | 50 | john.smith@zerocost.com |
service_code | The NetDespatch service code. Must supply either service_code or cms_code | Yes | String | 6 | PCM3C4 |
cms_codes | Codes that will be translated to a NetDespatch service code. Must supply either service_code or cms_code | No | String (of comma separated codes) | PCMXT25,TSSUPCNS | |
indicia_number | The NetDespatch Indicia number | No | String | 6 | 123456 |
user_reference_code | Sender's own unique identifier for this package. Must be unique, as used for duplicate identification. | Yes | String | 20 | PKG-23478236565 |
parcel_length | Length of the package, measured in mm | No | Integer | 600 | |
parcel_height | Height of the package, measured in mm | No | Integer | 300 | |
parcel_width | Width of the package, measured in mm | No | Integer | 300 | |
parcel_unit_description | Human readable description of the parcel contents | Yes | String | 35 | Eco-saver bulbs 23W |
parcel_unit_quantity | The quantity of units within the parcel | Yes | Integer | 50 | |
parcel_unit_value | The NZ dollar value of each item in the parcel | Yes | 4.90 | ||
parcel_unit_currency | The currency in which you are providing the parcel value (Defaults to NZD) | Yes | String | NZD | |
parcel_unit_weight | The weight in kilograms of each item in the parcel | Yes | 0.1 | ||
parcel_unit_hs_tariff | Harmonised system tariff code for parcel unit (not entire parcel) - Refer to https://hts.usitc.gov/ to find the tariff for your item | No | String | 121212 | |
parcel_unit_country_of_origin | The country where the goods were manufactured | No | String | Australia | |
insurance_required |
Is insurance required for this package? Answer one of:
|
Yes | Integer | 0 | |
documents |
Does this package contain only documents? Answer one of:
|
Yes | Integer | 1 | |
delivery_instructions | Delivery instructions for courier (30 chars max) | No | String | 255 | Leave on doorstep |
non_delivery_instruction |
Instructions in case of non-delivery. Answer one of:
|
Yes | String | NONE | |
export_type |
Type of Export. Answer one of:
|
Yes - International Shipments Only | String | Other | |
hs_tariff | The Harmonised System Tariff for your entire parcel. Refer to https://hts.usitc.gov/ to find the tariff for your item. | No | String | 12121212 | |
validate_only |
Validate all fields but do not create the label. Helpful for pre-validating API submissions. Answer one of:
|
No | Integer | 1 | |
skip_print | Skip downloading of the label PDF
|
No | Integer | 1 | |
batch_id | The id of a batch that the label belongs to | No | String | ||
collection_location_id | The id of a location where reciever will pick up parcel. Must be a 3rd party partner that allows collection. | No | String | ||
force_regenerate |
Should we force a label to be regenerated if one already exist? Answer one of:
|
Yes | Integer | 0 | |
prepaid |
Has the label been pre-paid? (only enabled for some licenses):
|
No | Integer | 0 | |
provided_tpid | TPID for charging if different to license TPID (only enabled for some licenses): | No | String | ||
provided_account_id | Alternate Account ID to the license RedClick Account ID (only enabled for some licenses): | No | String |
Types of Response
Response Type | Status Code |
---|---|
Success | 200 |
Invalid Request | 400 |
Unauthorised Request | 401 |
Response Elements
Element | Description | Value | Required | Example |
---|---|---|---|---|
success | Overall request success or failure flag | Boolean | Yes | true |
message | A message describing the outcome of the API call. | String | Yes | Success |
print_url | URL to retrieve the PDF label once it is ready. | String | No | https://api.nzpost.co.nz/labels/label/bcdfh47fdgsd534.pdf |
details_url | URL to return the status if the label job as it is created. | String | No | https://api.nzpost.co.nz/labels/label/bcdfh47fdgsd534.json |
label_uuid | The unique id of the generated label | String | No | bcdfh47fdgsd534 |
errors | Optional further error details. Usually related to specific field validation errors. | Hash | No | {destination_country_code: supplied country code is not recognised} |
Examples
Note: When an error occurs, the content type is set to application/json
.
Responses:
{ "success": true, "message": "Success", "print_url": "https://api.nzpost.co.nz/labels/label/bcdfh47fdgsd534.pdf", "details_url": "https://api.nzpost.co.nz/labels/label/bcdfh47fdgsd534.json", "label_uuid": "bcdfh47fdgsd534" } { "success": false, "message": "Validation errors", "errors": {"destination_country_code":"supplied country code is not recognised"} }
Callback Details
After a successful generate label request, a PDF containing the printable label and tracking code will be generated. When this is ready, a callback will be initiated by NZ Post. The callback uses the WebHook guidelines to deliver the required information.
If an error occurs during the label generation, the callback is also used to return the error details.
If you are unable to receive a WebHook callback, you can instead request the status of a label using the Label Details API call.
You specify the callback URL when you register for an API key. The following parameters are sent via an HTTP POST operation:
Request
Parameter | Name | Description | Example | Success/Error |
---|---|---|---|---|
label_uuid | Label UUID | The unique label identifier that was returned in the original response | bcdfh47fdgsd534 | Both |
status_code | Status Code | Was the label request process successfully, or was there an error? | OK or ERROR | Both |
user_reference_code | User reference code | Sender's own unique identifier for this package | PKG-23478236565 | Both |
tracking_code | Tracking Code | New code to use for tracking this package | RA123456789NZ | Success |
print_url | Print URL | URL to the printable label (in PDF format) | https://api.nzpost.co.nz/labels/label/bcdfh47fdgsd534.pdf | Success |
details_url | Details URL | URL to the download more details about the label (in JSON, XML or HTML format) | https://api.nzpost.co.nz/labels/label/bcdfh47fdgsd534.json | Success |
error_code | Error Code | A number to represent the kind of error that occurred | 1001 | Error |
error_reason | Error Reason | A human-readable message to describe the kind of error that occurred | Account ID not valid for this User | Error |
Response
The receiving server is expected to respond with a 200 (success) status code.