# Add PO Shipping Information (Multiple Tracking Numbers)

### Overview

This endpoint can be used to update the shipping information and tracking numbers on a single existing Purchase Order. Note that it will only work if the Client Setting **Enable Multiple Tracking Numbers On PO** is enabled. When disabled, use the [Update PO Shipping Information (Single Tracking)](https://developer.sellercloud.com/dev-article/update-po-shipping-information-single-tracking/) endpoint instead.

To consume the endpoint, you must:

- Be an authenticated user.

For information on how you can authenticate, see [Authentication](https://developer.sellercloud.com/dev-article/authentication/).

After you authenticate and receive a valid token, you must pass it to service calls.

### Endpoint

An example of this endpoint for XX server is:

- https://XX.api.sellercloud.com/rest/api/PurchaseOrders/{id}/TrackingNumber/Multiple

For your server, the endpoint will be:

- https://{your_server_id}.api.sellercloud.com/rest/api/PurchaseOrders/{id}/TrackingNumber/Multiple

### Request

- Method Type: **HttpPost**
- Authorization: Use **Bearer Token** + token received from token authentication
- Header info: **Content-Type: application/json**

### Request Body

| **Parameter** | **Parameter Type** | **Data Type** | **Description** | **Required** |
| --- | --- | --- | --- | --- |
| id | path | Integer | ID of the targeted Purchase Order. | yes |
| TrackingNumbers | body | array | List of tracking numbers and shipping information to update. | yes |
| ShippedOn | body | DateTime | Date and time when the PO was shipped. You can only update this value if the PO Shipping status is not “None”. | yes |
| ShippingCarrier | body | String | Shipping Carrier Name. Possible values:<br>UPS<br>USPS<br>FedEx<br>DHL<br>Other | yes |
| OtherCarrier | body | String | This should be populated if you have provided “Other” in the “ShippingCarrier” parameter.<br>Set to null or omit in the request if update of this field is not needed. | no |
| TrackingNumber | body | String | Tracking Number. | yes |
| ShippingStatus | body | enum | The PO Shipping Status:<br>0 = None<br>1 = PartiallyShipped<br>2 = FullyShipped | yes |

The request body should be formatted as follows:

```
{
  "TrackingNumbers": [
    {
      "ShippedOn": "2024-11-22T16:10:40.088Z",
      "ShippingCarrier": "string",
      "OtherCarrier": "string",
      "TrackingNumber": "string",
      "ShippingStatus": 0
    }
  ]
}
```

### Response

- If the user is authenticated and the request is successful, the response is **Status Code 200 => OK**
- If the user is not authenticated, the response is **Status Code 401 => Invalid Token**
- In case of an error, the response is **Status Code 500 => Internal Server Error**
- In case of an incorrect request, the response is **Status Code 400 => Bad Request**
