---
title: "Create order"
method: POST
path: "/{countryCode}/4.1/orders"
tags: ["Order API"]
---

# Create order

`POST /{countryCode}/4.1/orders`

Creates a new delivery order.  

To avoid creating duplicate orders, we recommend sending a `requested_tracking_number` so that the API can use it to generate the waybill tracking number.

For marketplace platforms, `marketplace` information is required. Using the provided `seller_id`, the API automatically creates a new Ninja Van shipper account for your marketplace seller, if the `seller_id` wasn't previously registered in Ninja Van's systems.

For corporate accounts, `corporate` information is required. The corporate branch account has to be created under the corporate HQ before an order creation request can be made. Using `branch_id` field, the API creates orders for the corporate branch identified by the given branch ID.

## Path parameters

- `countryCode` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM', required

## Headers

- `Authorization` string, required

## Request body

- NewOrderV41
  - `service_type` 'Parcel' | 'Marketplace' | 'Corporate' | 'International' | 'Bulky' | 'Document' | 'Return', required — Indicates the type of service. Used to inform Ninja Van on what jobs to schedule for this order.
  - `service_level` 'Standard' | 'Express' | 'Sameday' | 'Nextday', required — Shipment service level.
  - `requested_tracking_number` string — If your shipper account is a prefixless account, then `requested_tracking_number` is _required_. If your shipper account has a tracking number prefix configured, then the API concatenates your prefix with the `requested_tracking_number` to generate the waybill tracking number. If `requested_tracking_number` isn't provided, then the API automatically generates a random tracking number and concatenates your prefix with it to generate the waybill tracking number. A generic prefix is used for this request, if your account does not have a prefix _and_ if the `requested_tracking_number` is not provided. The total length of the generated `tracking_number` is further validated based on your shipper settings. The default length for `tracking_number` is around 18 characters. If the `requested_tracking_number` is too short, the API auto-pads the value with zeros (`0`). Check with us if you have any questions regarding your shipper account settings.
  - `reference` object — Reference information. This information returns to the shipper via webhooks, and can be used as query parameters when retrieving orders from our API.
    - `merchant_order_number` string — Identifier of the order in shipper's systems.
  - `from` NewSender, required
    - `name` string, required
    - `phone_number` string, required — Phone number of the contact. The API attempts to format the number based on the E.164 format, using the country code of the address provided. If it can be formatted, then the number is considered valid. The API only requires that either the `email` or `phone_number` is valid.
    - `email` string, email, required — Email address of the contact. Must be a valid email address format. The formal definitions are in RFC 5322 (sections 3.2.3 and 3.4.1) and RFC 5321, with a more readable form given in the informational RFC 3696 and the associated errata. The API only requires that either the `email` or `phone_number` is valid. If an email is provided, the API validates it and returns an error if the validation fails.
    - `address` union, required
      - object — Indonesia-specific address fields.
        - `kelurahan` string — For ID addresses.
        - `kecamatan` string — For ID addresses.
        - `city` string — For ID addresses.
        - `province` string — For ID addresses.
        - `postcode` string — Postal code for ID addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Myanmar-specific address fields.
        - `township` string — For MM addresses.
        - `district` string — For MM addresses.
        - `state` string — For MM addresses.
        - `postcode` string, required — Postal code for MM addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Malaysia-specific address fields.
        - `area` string — For MY addresses.
        - `city` string — For MY addresses.
        - `state` string — For MY addresses.
        - `postcode` string, required — Postal-code for MY addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Philippines-specific address fields.
        - `subdivision` string — For PH addresses.
        - `district` string — For PH addresses.
        - `city` string — For PH addresses.
        - `province` string — For PH addresses.
        - `postcode` string — Postal code for PH addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Singapore-specific address fields.
        - `postcode` string, required — Postal code for SG addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Thailand-specific address fields.
        - `sub_district` string — For TH addresses.
        - `district` string — For TH addresses.
        - `province` string — For TH addresses.
        - `postcode` string, required — Postal code for TH addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Vietnam-specific address fields.
        - `ward` string — For VN addresses. Here, enter the name of a ward in an urban district (such as "Phường Nguyễn Du" or "Phường 4"), or a provincial district-level sub-division (such as "Huyện Long Thành").
        - `district` string — For VN addresses. Here, enter the name of a provincial city (such as "Thành phố Biên Hòa"), or an urban district (such as "Quận Hai Bà Trưng" in Hanoi or "Quận 4" in Ho Chi Minh).
        - `city` string — For VN addresses. Here, enter the name of a municipality (such as "Thành phố Hà Nội" or "Thành phố Hồ Chí Minh") or a province (such as "Tỉnh Đồng Nai").
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
    - `collection_point` 'Ninja PUDO @ Orchard' | 'Ninja PUDO @ NUH' — This field is experimental.
  - `to` NewRecipient, required
    - `name` string, required
    - `phone_number` string, required — Phone number of the contact. The API attempts to format the number based on the E.164 format, using the country code of the address provided. If it can be formatted, then the number is considered valid. The API only requires that either the `email` or `phone_number` is valid.
    - `email` string, email, required — Email address of the contact. Must be a valid email address format. The formal definitions are in RFC 5322 (sections 3.2.3 and 3.4.1) and RFC 5321, with a more readable form given in the informational RFC 3696 and the associated errata. The API only requires that either the `email` or `phone_number` is valid. If an email is provided, the API validates it and returns an error if the validation fails.
    - `address` union, required
      - object — Indonesia-specific address fields.
        - `kelurahan` string — For ID addresses.
        - `kecamatan` string — For ID addresses.
        - `city` string — For ID addresses.
        - `province` string — For ID addresses.
        - `postcode` string — Postal code for ID addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Myanmar-specific address fields.
        - `township` string — For MM addresses.
        - `district` string — For MM addresses.
        - `state` string — For MM addresses.
        - `postcode` string, required — Postal code for MM addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Malaysia-specific address fields.
        - `area` string — For MY addresses.
        - `city` string — For MY addresses.
        - `state` string — For MY addresses.
        - `postcode` string, required — Postal-code for MY addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Philippines-specific address fields.
        - `subdivision` string — For PH addresses.
        - `district` string — For PH addresses.
        - `city` string — For PH addresses.
        - `province` string — For PH addresses.
        - `postcode` string — Postal code for PH addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Singapore-specific address fields.
        - `postcode` string, required — Postal code for SG addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Thailand-specific address fields.
        - `sub_district` string — For TH addresses.
        - `district` string — For TH addresses.
        - `province` string — For TH addresses.
        - `postcode` string, required — Postal code for TH addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Vietnam-specific address fields.
        - `ward` string — For VN addresses. Here, enter the name of a ward in an urban district (such as "Phường Nguyễn Du" or "Phường 4"), or a provincial district-level sub-division (such as "Huyện Long Thành").
        - `district` string — For VN addresses. Here, enter the name of a provincial city (such as "Thành phố Biên Hòa"), or an urban district (such as "Quận Hai Bà Trưng" in Hanoi or "Quận 4" in Ho Chi Minh).
        - `city` string — For VN addresses. Here, enter the name of a municipality (such as "Thành phố Hà Nội" or "Thành phố Hồ Chí Minh") or a province (such as "Tỉnh Đồng Nai").
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
    - `collection_point` 'Ninja PUDO @ Orchard' | 'Ninja PUDO @ NUH' — This field is experimental.
  - `parcel_job` ParcelJob, required
    - `delivery_start_date` string, required — Specifies the start date of the delivery period in the `yyyy-MM-dd` format. For example, for standard orders that take 3 days, if the `delivery_start_date` is on `2021-12-15`, the delivery will be attempted at any time from `2021-12-15` to `2021-12-17`. The API automatically adjust the date for blocked dates. Double check for the adjusted `delivery_start_date` in response. If an order is created before the cutoff time, the API defaults `delivery_start_date` to the same day, if that day is not a blocked date. Otherwise, `delivery_start_date` is defaulted to the next available date.
    - `delivery_timeslot` DeliveryTimeslotInfo, required — Delivery time slot information. The valid time slots are: * "09:00" to "12:00" * "09:00" to "18:00" * "09:00" to "22:00" * "12:00" to "15:00" * "15:00" to "18:00" * "18:00" to "22:00"
      - `start_time` string, required
      - `end_time` string, required
      - `timezone` 'Asia/Singapore' | 'Asia/Kuala_Lumpur' | 'Asia/Jakarta' | 'Asia/Jayapura' | 'Asia/Makassar' | 'Asia/Bangkok' | 'Asia/Manila' | 'Asia/Ho_Chi_Minh' | 'Asia/Yangon'
    - `delivery_instructions` string — Delivery instructions for the driver.
    - `items` Items[] — Number of items in the list cannot exceed 200.
      - `item_description` string, required — The description of the item.
      - `quantity` number — Total quantity of the item.
      - `is_dangerous_good` boolean — Declaration of dangerous goods for air freight.
    - `allow_self_collection` boolean — Indicates whether the customer is allowed to self-collect the parcels. *Required* if a valid delivery collection point (`to.collection_point`) is specified.
    - `allow_weekend_delivery` boolean — Specifies whether deliveries can be attempted on weekends.
    - `cash_on_delivery` number, double — Specifies the amount of cash to be collected from the recipient upon delivery.
    - `insured_value` number, double — Specifies the desired insured value of the parcel.
    - `dimensions` Dimension — Dimension information of parcels or objects.
      - `size` 'S' | 'M' | 'L' | 'XL' | 'XXL'
      - `weight` number, double — The weight of the parcel, in kilograms (k.g.).
      - `length` number, double — The length of the parcel, in centimeters (c.m.).
      - `width` number, double — The width of the parcel, in centimeters (c.m.).
      - `height` number, double — The height of the parcel, in centimeters (c.m.).
    - `is_pickup_required` boolean, required — Indicates whether a pickup reservation is required. If set to `true`, the system checks if a pickup reservation exists with the same: * `pickup_date` * Pickup address (inferred from the `parcel_job.pickup_address` or `from.address`) The system creates a new pickup reservation if none exists for the current pickup date and address. To update the pickup address for a specific `pickup_address_slot_id`, use one of these options: * Call Ninja Van's shipper support hotline. * Update the address tied to the `pickup_address_id` via the pickup reservation API. * Send a new order with an updated pickup address. * The pickup address specified in either the `from` or `pickup_address` field will be used to update the address tied to the `pickup_address_id`. * Existing pickup reservations tied to this `pickup_address_id`, that are already in progress, won't be modified in any way. * You account can be configured to _not_ update future pickup reservation addresses even if the address tied to the `pickup_address_id` has changed. To update the pickup time slot for a specific pickup reservation, use one of these options: * Call Ninja Van's shipper support hotline. * Send a new order with the same `pickup_address_id` and `pickup_date`, but with a different `pickup_timeslot`. For more details, refer to the notes for the `pickup_timeslot` and `pickup_address_id` fields. If you require a `Scheduled` pickup, then provide the following fields: * `pickup_date` * `pickup_timeslot` * `pickup_approximate_volume`

## Response `200`

Order successfully created.

- object
  - `requested_tracking_number` string — The requested tracking number of the order.
  - `tracking_number` string, required
  - `service_type` 'Parcel' | 'Marketplace' | 'Corporate' | 'International' | 'Bulky' | 'Document' | 'Return' — Indicates the type of service. Used to inform Ninja Van on what jobs to schedule for this order.
  - `service_level` 'Standard' | 'Express' | 'Sameday' | 'Nextday' — Shipment service level.
  - `reference` object — Reference information.
    - `merchant_order_number` string — Identifier of the order in shipper's systems.
  - `from` NewSender
    - `name` string, required
    - `phone_number` string, required — Phone number of the contact. The API attempts to format the number based on the E.164 format, using the country code of the address provided. If it can be formatted, then the number is considered valid. The API only requires that either the `email` or `phone_number` is valid.
    - `email` string, email, required — Email address of the contact. Must be a valid email address format. The formal definitions are in RFC 5322 (sections 3.2.3 and 3.4.1) and RFC 5321, with a more readable form given in the informational RFC 3696 and the associated errata. The API only requires that either the `email` or `phone_number` is valid. If an email is provided, the API validates it and returns an error if the validation fails.
    - `address` union, required
      - object — Indonesia-specific address fields.
        - `kelurahan` string — For ID addresses.
        - `kecamatan` string — For ID addresses.
        - `city` string — For ID addresses.
        - `province` string — For ID addresses.
        - `postcode` string — Postal code for ID addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Myanmar-specific address fields.
        - `township` string — For MM addresses.
        - `district` string — For MM addresses.
        - `state` string — For MM addresses.
        - `postcode` string, required — Postal code for MM addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Malaysia-specific address fields.
        - `area` string — For MY addresses.
        - `city` string — For MY addresses.
        - `state` string — For MY addresses.
        - `postcode` string, required — Postal-code for MY addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Philippines-specific address fields.
        - `subdivision` string — For PH addresses.
        - `district` string — For PH addresses.
        - `city` string — For PH addresses.
        - `province` string — For PH addresses.
        - `postcode` string — Postal code for PH addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Singapore-specific address fields.
        - `postcode` string, required — Postal code for SG addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Thailand-specific address fields.
        - `sub_district` string — For TH addresses.
        - `district` string — For TH addresses.
        - `province` string — For TH addresses.
        - `postcode` string, required — Postal code for TH addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Vietnam-specific address fields.
        - `ward` string — For VN addresses. Here, enter the name of a ward in an urban district (such as "Phường Nguyễn Du" or "Phường 4"), or a provincial district-level sub-division (such as "Huyện Long Thành").
        - `district` string — For VN addresses. Here, enter the name of a provincial city (such as "Thành phố Biên Hòa"), or an urban district (such as "Quận Hai Bà Trưng" in Hanoi or "Quận 4" in Ho Chi Minh).
        - `city` string — For VN addresses. Here, enter the name of a municipality (such as "Thành phố Hà Nội" or "Thành phố Hồ Chí Minh") or a province (such as "Tỉnh Đồng Nai").
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
    - `collection_point` 'Ninja PUDO @ Orchard' | 'Ninja PUDO @ NUH' — This field is experimental.
  - `to` NewRecipient
    - `name` string, required
    - `phone_number` string, required — Phone number of the contact. The API attempts to format the number based on the E.164 format, using the country code of the address provided. If it can be formatted, then the number is considered valid. The API only requires that either the `email` or `phone_number` is valid.
    - `email` string, email, required — Email address of the contact. Must be a valid email address format. The formal definitions are in RFC 5322 (sections 3.2.3 and 3.4.1) and RFC 5321, with a more readable form given in the informational RFC 3696 and the associated errata. The API only requires that either the `email` or `phone_number` is valid. If an email is provided, the API validates it and returns an error if the validation fails.
    - `address` union, required
      - object — Indonesia-specific address fields.
        - `kelurahan` string — For ID addresses.
        - `kecamatan` string — For ID addresses.
        - `city` string — For ID addresses.
        - `province` string — For ID addresses.
        - `postcode` string — Postal code for ID addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Myanmar-specific address fields.
        - `township` string — For MM addresses.
        - `district` string — For MM addresses.
        - `state` string — For MM addresses.
        - `postcode` string, required — Postal code for MM addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Malaysia-specific address fields.
        - `area` string — For MY addresses.
        - `city` string — For MY addresses.
        - `state` string — For MY addresses.
        - `postcode` string, required — Postal-code for MY addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Philippines-specific address fields.
        - `subdivision` string — For PH addresses.
        - `district` string — For PH addresses.
        - `city` string — For PH addresses.
        - `province` string — For PH addresses.
        - `postcode` string — Postal code for PH addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Singapore-specific address fields.
        - `postcode` string, required — Postal code for SG addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Thailand-specific address fields.
        - `sub_district` string — For TH addresses.
        - `district` string — For TH addresses.
        - `province` string — For TH addresses.
        - `postcode` string, required — Postal code for TH addresses.
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
      - object — Vietnam-specific address fields.
        - `ward` string — For VN addresses. Here, enter the name of a ward in an urban district (such as "Phường Nguyễn Du" or "Phường 4"), or a provincial district-level sub-division (such as "Huyện Long Thành").
        - `district` string — For VN addresses. Here, enter the name of a provincial city (such as "Thành phố Biên Hòa"), or an urban district (such as "Quận Hai Bà Trưng" in Hanoi or "Quận 4" in Ho Chi Minh).
        - `city` string — For VN addresses. Here, enter the name of a municipality (such as "Thành phố Hà Nội" or "Thành phố Hồ Chí Minh") or a province (such as "Tỉnh Đồng Nai").
        - `country` 'SG' | 'MY' | 'TH' | 'ID' | 'VN' | 'PH' | 'MM'
        - `address1` string, required — If you are collecting granular address information, concatenate the building number, building name, and street information in this field.
        - `address2` string
        - `address_type` 'home' | 'office' — Indicates the type of address. The value must be either `home` or `office`.
        - `latitude` number, double
        - `longitude` number, double
    - `collection_point` 'Ninja PUDO @ Orchard' | 'Ninja PUDO @ NUH' — This field is experimental.
  - `parcel_job` ParcelJob
    - `delivery_start_date` string, required — Specifies the start date of the delivery period in the `yyyy-MM-dd` format. For example, for standard orders that take 3 days, if the `delivery_start_date` is on `2021-12-15`, the delivery will be attempted at any time from `2021-12-15` to `2021-12-17`. The API automatically adjust the date for blocked dates. Double check for the adjusted `delivery_start_date` in response. If an order is created before the cutoff time, the API defaults `delivery_start_date` to the same day, if that day is not a blocked date. Otherwise, `delivery_start_date` is defaulted to the next available date.
    - `delivery_timeslot` DeliveryTimeslotInfo, required — Delivery time slot information. The valid time slots are: * "09:00" to "12:00" * "09:00" to "18:00" * "09:00" to "22:00" * "12:00" to "15:00" * "15:00" to "18:00" * "18:00" to "22:00"
      - `start_time` string, required
      - `end_time` string, required
      - `timezone` 'Asia/Singapore' | 'Asia/Kuala_Lumpur' | 'Asia/Jakarta' | 'Asia/Jayapura' | 'Asia/Makassar' | 'Asia/Bangkok' | 'Asia/Manila' | 'Asia/Ho_Chi_Minh' | 'Asia/Yangon'
    - `delivery_instructions` string — Delivery instructions for the driver.
    - `items` Items[] — Number of items in the list cannot exceed 200.
      - `item_description` string, required — The description of the item.
      - `quantity` number — Total quantity of the item.
      - `is_dangerous_good` boolean — Declaration of dangerous goods for air freight.
    - `allow_self_collection` boolean — Indicates whether the customer is allowed to self-collect the parcels. *Required* if a valid delivery collection point (`to.collection_point`) is specified.
    - `allow_weekend_delivery` boolean — Specifies whether deliveries can be attempted on weekends.
    - `cash_on_delivery` number, double — Specifies the amount of cash to be collected from the recipient upon delivery.
    - `insured_value` number, double — Specifies the desired insured value of the parcel.
    - `dimensions` Dimension — Dimension information of parcels or objects.
      - `size` 'S' | 'M' | 'L' | 'XL' | 'XXL'
      - `weight` number, double — The weight of the parcel, in kilograms (k.g.).
      - `length` number, double — The length of the parcel, in centimeters (c.m.).
      - `width` number, double — The width of the parcel, in centimeters (c.m.).
      - `height` number, double — The height of the parcel, in centimeters (c.m.).
    - `is_pickup_required` boolean, required — Indicates whether a pickup reservation is required. If set to `true`, the system checks if a pickup reservation exists with the same: * `pickup_date` * Pickup address (inferred from the `parcel_job.pickup_address` or `from.address`) The system creates a new pickup reservation if none exists for the current pickup date and address. To update the pickup address for a specific `pickup_address_slot_id`, use one of these options: * Call Ninja Van's shipper support hotline. * Update the address tied to the `pickup_address_id` via the pickup reservation API. * Send a new order with an updated pickup address. * The pickup address specified in either the `from` or `pickup_address` field will be used to update the address tied to the `pickup_address_id`. * Existing pickup reservations tied to this `pickup_address_id`, that are already in progress, won't be modified in any way. * You account can be configured to _not_ update future pickup reservation addresses even if the address tied to the `pickup_address_id` has changed. To update the pickup time slot for a specific pickup reservation, use one of these options: * Call Ninja Van's shipper support hotline. * Send a new order with the same `pickup_address_id` and `pickup_date`, but with a different `pickup_timeslot`. For more details, refer to the notes for the `pickup_timeslot` and `pickup_address_id` fields. If you require a `Scheduled` pickup, then provide the following fields: * `pickup_date` * `pickup_timeslot` * `pickup_approximate_volume`

## Other responses

- `400` — Order wasn't created because of an issue with the request.
- `500` — Order wasn't created because of an issue with the server.

---

[API](https://skmtc.net/ninjavan/apis/ninja-van-api.md) · [All operations](https://skmtc.net/ninjavan/apis/ninja-van-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ninjavan/ninja-van-api/versions/9096adaf76a2/schema)
