## Update Order Shipping Information

### Overview

This endpoint is used to update the shipping information for a single existing order.

The endpoint does not update tracking information.

To use this endpoint, you must:

- Be authenticated.
- Have a valid ID of an existing order.

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

As soon as you do authentication and receive a valid token, it needs to be passed on the call when updating the order.

### Endpoint

An example of such an endpoint for XX server is:

[https://xx.api.sellercloud.com/rest/api/Orders/{orderID}/Shipping/Details](https://xx.api.sellercloud.com/rest/api/Orders/%7BorderID%7D/Shipping/Details)

For your server endpoint will be:

[https://{your_server_id}.sellercloud.com/rest/api/Orders/{orderID}/Shipping/Details](https://{your_server_id}.sellercloud.com/rest/api/Orders/%7BorderID%7D/Shipping/Details)

### Request

- **Method Type:** HttpPut
- **Authorization:** Use **Bearer Token** + token received from token authentication
- **Header info:** **Content-Type: application/json**
- **Parameters:** Valid Sellercloud Order ID of the existing unshipped sales order

#### Body data:

| **Parameter**                | **Data Type** | **Description**                                                                                                                                                                        | **Is Required** |  
|-------------------------------|----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------|  
| CustomerShippingFee           | decimal        | Customer Shipping Fee<br>Do not provide or set to “null” in the request if an update of this field is not needed.                                                                   | No             |  
| CustomerShippingDiscount      | decimal        | Customer Shipping Discount dollar amount.<br>Do not provide or set to “null” in the request if an update of this field is not needed.                                              | No             |  
| CustomerHandlingFee           | decimal        | Customer Handling Fee<br>Do not provide or set to “null” in the request if an update of this field is not needed.                                                                   | No             |  
| Carrier                       | string         | Carrier key<br>When provided for update, the Service has to be provided as well.<br>Do not provide or set to “null” in the request if an update of this field is not needed.       | No             |  
| Service                       | string         | Shipping service of the carrier<br>When provided for update, the Carrier has to be provided as well.<br>Do not provide or set to “null” in the request if an update of this field is not needed. | No             |  
| OtherService                  | string         | Other service name<br>When the Service is set to “Other,” then the Other Service Name must be provided.<br>Do not provide or set to “null” in the request if an update of this field is not needed. | No             |  
| AllowShippingEvenNotPaid     | boolean        | Controls whether the order can be shipped before payment is captured.<br>Do not provide or set to “null” in the request if an update of this field is not needed.                   | No             |  
| PromiseDate                   | datetime       | The Order’s Promise Date (Ship-By Date).<br>If the Order Source is Wholesale or Local Store, it can always be updated. For all other channels, the user must have the advanced [Permission](/content/help/omnichannel-ecommerce/employee-permissions-and-roles/#Employee_Permissions/index.html) “Edit Promise Date of Channel Orders” or the Client Admin role.<br>Do not provide or set to “null” in the request if an update of this field is not needed. | No             |

### Request Format

```
{
  "CustomerShippingFee": 0,
  "CustomerShippingDiscount": 0,
  "CustomerHandlingFee": 0,
  "Carrier": "string",
  "Service": "string",
  "OtherService": "string",
  "AllowShippingEvenNotPaid": true,
  "PromiseDate": "2024-10-29T09:39:24.935Z"
}
```

### Response

- If the user is authenticated and the request is successful, then the response will be **Status Code 200 => OK**
- If the user is not authenticated, then the response will be **Status Code 401 => Not Valid Token**
- In case of an error, the response will be **Status Code 500 => Internal Server Error**
- In case of an incorrect request, the response will be with status code **400 Bad Request**
