# Resend an order

> For the complete machine-readable documentation index, see [llms.txt](https://apidocs.chargebee.com/llms.txt).


[Idempotency Supported](/docs/api/idempotency)

Resend an existing order. This will help in resending an existing order in full or partial. Upto 5 resend operations are allowed per . When resent fully, the original order is canceled.

## Sample Request

### Default

#### cURL

```bash
curl  https://{site}.chargebee.com/api/v2/orders/1/resend \
     -u {site_api_key}:\
     -d shipping_date=1517675618 \
     -d resend_reason="Damaged"
```

#### .NET

```dotnet
using ChargeBee.Api;
using ChargeBee.Models;

ApiConfig.Configure("{site}","{site_api_key}");
EntityResult result = Order.Resend("1")
		.ShippingDate(1517675618)
		.ResendReason("Damaged")
		.Request();

Order order = result.Order;
```

#### Go

```go
package main
import (
    "fmt"
    "github.com/chargebee/chargebee-go/v3"
    orderAction "github.com/chargebee/chargebee-go/v3/actions/order"
    "github.com/chargebee/chargebee-go/v3/models/order"
)
func main() {
    chargebee.Configure("{site_api_key}","{site}");
    res,err := orderAction.Resend("1", &order.ResendRequestParams{
        ShippingDate : chargebee.Int64(1517675618),
        ResendReason : "Damaged",
    }).Request()
    if err != nil {
        fmt.Println(err)
    } else {
        Order := res.Order
    }
}
```

#### Go

```go
package main

import (
  "fmt"
  "github.com/chargebee/chargebee-go/v4"
)

func main() {
  config := &chargebee.ClientConfig{
    SiteName: "{site}",
    ApiKey: "{site_api_key}",
  }    
  client := chargebee.NewClient(config)
  req := &chargebee.OrderResendRequest{
    ShippingDate : chargebee.Int64(1517675618),
    ResendReason : "Damaged",
}
  res, err := client.Order.Resend("1", req)
      if err != nil {
        fmt.Println(err)
    } else {
        Order := res.Order
    }
}
```

#### Java

```java
import com.chargebee.*;
import com.chargebee.ListResult;
import com.chargebee.models.*;
import com.chargebee.models.enums.*;
import java.io.IOException;
import java.sql.Timestamp;

public class Sample {

    public static void main(String args[]) throws IOException, Exception {
        Environment.configure("{site}", "{site_api_key}");
        Result result = Order.resend("1")
            .shippingDate(new Timestamp(1517675618L * 1000))
            .resendReason("Damaged")
            .request();

        Order order = result.order();
    }
}
```

#### Java

```java
import com.chargebee.v4.client.ChargebeeClient;
import com.chargebee.v4.models.order.Order;
import com.chargebee.v4.models.order.params.OrderResendParams;
import com.chargebee.v4.models.order.responses.OrderResendResponse;
import java.sql.Timestamp;

public class OrderResend {

    public static void main(String[] args) {
        ChargebeeClient client = ChargebeeClient.builder()
            .apiKey("{site_api_key}")
            .siteName("{site}")
            .build();

        OrderResendParams params = OrderResendParams.builder()
            .shippingDate(new Timestamp(1517675618L * 1000))
            .resendReason("Damaged")
            .build();

        OrderResendResponse response = client
            .orders()
            .resend("1", params);

        Order order = response.getOrder();
    }
}
```

#### Node.js

```node
import Chargebee from "chargebee";

const chargebee = new Chargebee({
    site: "{site}",
    apiKey: "{site_api_key}",
});

try {
    const result = await chargebee.order.resend("1", {
        shipping_date: 1517675618,
        resend_reason: "Damaged"
    });

    console.log(result);
    const order = result.order;
} catch (err) {
    console.log(err);
}
```

#### PHP

```php
<?php

require __DIR__ . '/vendor/autoload.php';

use Chargebee\ChargebeeClient;

$chargebee = new ChargebeeClient(options: [
    "site" => "{site}",
    "apiKey" => "{site_api_key}",
]);
$result = $chargebee->order()->resend("1", [
    "shipping_date" => 1517675618,
    "resend_reason" => "Damaged"
]);
$order = $result->order;
```

#### Python

```python
from chargebee import Chargebee

cb_client = Chargebee(api_key="{site_api_key}", site="{site}")
response = cb_client.Order.resend("1",
    cb_client.Order.ResendParams(
        shipping_date=1517675618,
        resend_reason="Damaged"
    )
)
order = response.order
```

#### Ruby

```ruby
require 'chargebee'

ChargeBee.configure(:site => "{site}",
  :api_key => "{site_api_key}")

result = ChargeBee::Order.resend("1",{
  :shipping_date => 1517675618,
  :resend_reason => "Damaged"
})

order = result.order
```

### Resend Order With Order Line Items

#### cURL

```bash
curl  https://{site}.chargebee.com/api/v2/orders/1/resend \
     -X POST  \
     -u {site_api_key}:\
     -d shipping_date=1517675620 \
     -d resend_reason="Damaged" \
     -d "order_line_items[id][0]"="o_li__test__5SK1MsCBSJFzUUE39" \
     -d "order_line_items[fulfillment_quantity][0]"=1
```

#### .NET

```dotnet
using ChargeBee.Api;
using ChargeBee.Models;

ApiConfig.Configure("{site}","{site_api_key}");
EntityResult result = Order.Resend("1")
		.ShippingDate(1517675620)
		.ResendReason("Damaged")
		.OrderLineItemId(0, "o_li__test__5SK1MsCBSJFzUUE39")
		.OrderLineItemFulfillmentQuantity(0, 1)
		.Request();

Order order = result.Order;
```

#### Go

```go
package main
import (
    "fmt"
    "github.com/chargebee/chargebee-go/v3"
    orderAction "github.com/chargebee/chargebee-go/v3/actions/order"
    "github.com/chargebee/chargebee-go/v3/models/order"
)
func main() {
    chargebee.Configure("{site_api_key}","{site}");
    res,err := orderAction.Resend("1", &order.ResendRequestParams{
        OrderLineItems : []*order.ResendOrderLineItemParams{
            {
                Id : "o_li__test__5SK1MsCBSJFzUUE39",
                FulfillmentQuantity : chargebee.Int32(1),
            },
        },
        ShippingDate : chargebee.Int64(1517675620),
        ResendReason : "Damaged",
    }).Request()
    if err != nil {
        fmt.Println(err)
    } else {
        Order := res.Order
    }
}
```

#### Go

```go
package main

import (
  "fmt"
  "github.com/chargebee/chargebee-go/v4"
)

func main() {
  config := &chargebee.ClientConfig{
    SiteName: "{site}",
    ApiKey: "{site_api_key}",
  }    
  client := chargebee.NewClient(config)
  req := &chargebee.OrderResendRequest{
    OrderLineItems : []*chargebee.OrderResendOrderLineItem{
        {
            Id : "o_li__test__5SK1MsCBSJFzUUE39",
            FulfillmentQuantity : chargebee.Int32(1),
        },
    },
    ShippingDate : chargebee.Int64(1517675620),
    ResendReason : "Damaged",
}
  res, err := client.Order.Resend("1", req)
      if err != nil {
        fmt.Println(err)
    } else {
        Order := res.Order
    }
}
```

#### Java

```java
import com.chargebee.*;
import com.chargebee.ListResult;
import com.chargebee.models.*;
import com.chargebee.models.enums.*;
import java.io.IOException;
import java.sql.Timestamp;

public class Sample {

    public static void main(String args[]) throws IOException, Exception {
        Environment.configure("{site}", "{site_api_key}");
        Result result = Order.resend("1")
            .shippingDate(new Timestamp(1517675620L * 1000))
            .resendReason("Damaged")
            .orderLineItemId(0, "o_li__test__5SK1MsCBSJFzUUE39")
            .orderLineItemFulfillmentQuantity(0, 1)
            .request();

        Order order = result.order();
    }
}
```

#### Java

```java
import com.chargebee.v4.client.ChargebeeClient;
import com.chargebee.v4.models.order.Order;
import com.chargebee.v4.models.order.params.OrderResendParams;
import com.chargebee.v4.models.order.responses.OrderResendResponse;
import java.sql.Timestamp;
import java.util.List;

public class OrderResend {

    public static void main(String[] args) {
        ChargebeeClient client = ChargebeeClient.builder()
            .apiKey("{site_api_key}")
            .siteName("{site}")
            .build();

        OrderResendParams.OrderLineItemsParams orderLineItem0 =
            OrderResendParams.OrderLineItemsParams.builder()
                .id("o_li__test__5SK1MsCBSJFzUUE39")
                .fulfillmentQuantity(1)
                .build();

        List<OrderResendParams.OrderLineItemsParams> orderLineItemsList =
            List.of(orderLineItem0);

        OrderResendParams params = OrderResendParams.builder()
            .shippingDate(new Timestamp(1517675620L * 1000))
            .resendReason("Damaged")
            .orderLineItems(orderLineItemsList)
            .build();

        OrderResendResponse response = client
            .orders()
            .resend("1", params);

        Order order = response.getOrder();
    }
}
```

#### Node.js

```node
import Chargebee from "chargebee";

const chargebee = new Chargebee({
    site: "{site}",
    apiKey: "{site_api_key}",
});

try {
    const result = await chargebee.order.resend("1", {
        order_line_items: [
            {
                id: "o_li__test__5SK1MsCBSJFzUUE39",
                fulfillment_quantity: 1
            }
        ],
        shipping_date: 1517675620,
        resend_reason: "Damaged"
    });

    console.log(result);
    const order = result.order;
} catch (err) {
    console.log(err);
}
```

#### PHP

```php
<?php

require __DIR__ . '/vendor/autoload.php';

use Chargebee\ChargebeeClient;

$chargebee = new ChargebeeClient(options: [
    "site" => "{site}",
    "apiKey" => "{site_api_key}",
]);
$result = $chargebee->order()->resend("1", [
    "order_line_items" => [
        [
            "id" => "o_li__test__5SK1MsCBSJFzUUE39",
            "fulfillment_quantity" => 1
        ]
    ],
    "shipping_date" => 1517675620,
    "resend_reason" => "Damaged"
]);
$order = $result->order;
```

#### Python

```python
from chargebee import Chargebee

cb_client = Chargebee(api_key="{site_api_key}", site="{site}")
response = cb_client.Order.resend("1",
    cb_client.Order.ResendParams(
        order_line_items=[
            cb_client.Order.ResendOrderLineItemParams(
              id="o_li__test__5SK1MsCBSJFzUUE39",
              fulfillment_quantity=1
            )
        ],
        shipping_date=1517675620,
        resend_reason="Damaged"
    )
)
order = response.order
```

#### Ruby

```ruby
require 'chargebee'

ChargeBee.configure(:site => "{site}",
  :api_key => "{site_api_key}")

result = ChargeBee::Order.resend("1",{
  :shipping_date => 1517675620,
  :resend_reason => "Damaged",
  :order_line_items => [
    {
      :id => "o_li__test__5SK1MsCBSJFzUUE39",
      :fulfillment_quantity => 1
    }
  ]
})

order = result.order
```

## Sample Response

```json
{
  "order": {
    "amount_adjusted": 0,
    "amount_paid": 0,
    "base_currency_code": "USD",
    "created_at": 1517675018,
    "created_by": "Manually generated by user",
    "currency_code": "USD",
    "customer_id": "__test__sZEDgk7tSJFzTSYZ",
    "deleted": false,
    "discount": 40000,
    "document_number": "2",
    "exchange_rate": 1,
    "id": "2",
    "invoice_id": "__demo_inv__1",
    "is_gifted": false,
    "is_resent": true,
    "line_item_discounts": [
      {
        "discount_amount": 40000,
        "discount_type": "custom_discount",
        "line_item_id": "li___test__sZEDgk7tSJFzTUsb",
        "object": "line_item_discount"
      },
      {..}
    ],
    "linked_credit_notes": {},
    "object": "order",
    "order_date": 1517675018,
    "order_line_items": [
      {
        "amount": 40000,
        "amount_adjusted": 0,
        "amount_paid": 0,
        "description": "MB1S1P",
        "discount_amount": 40000,
        "entity_id": "MB1S1P",
        "entity_type": "plan",
        "fulfillment_amount": 0,
        "fulfillment_quantity": 1,
        "id": "o_li__test__sZEDgk7tSJFzU5to",
        "invoice_id": "__demo_inv__1",
        "invoice_line_item_id": "li___test__sZEDgk7tSJFzTUsb",
        "is_shippable": true,
        "item_level_discount_amount": 0,
        "object": "order_line_item",
        "refundable_credits": 0,
        "refundable_credits_issued": 0,
        "status": "queued",
        "tax_amount": 0,
        "unit_price": 40000
      },
      {..}
    ],
    "order_type": "system_generated",
    "original_order_id": 464000000004,
    "price_type": "tax_exclusive",
    "refundable_credits": 0,
    "refundable_credits_issued": 0,
    "resend_reason": "Damaged",
    "resource_version": 1517675019129,
    "rounding_adjustement": 0,
    "shipping_date": 1517675618,
    "status": "queued",
    "sub_total": 0,
    "subscription_id": "__test__sZEDgk7tSJFzTSYZ",
    "tax": 0,
    "total": 0,
    "updated_at": 1517675019
  }
}
```

## URL Format

**POST** https://[site].chargebee.com/api/v2/orders/{order-id}/resend

## Input Parameters

- `shipping_date` (optional, timestamp(UTC) in seconds)
  The date on which the order should be shipped to the customer.

- `resend_reason` (optional, string, max chars=100)
  Reason code for resending the order. Must be one from a list of reason codes set in the Chargebee app in **Settings > Configure Chargebee > Reason Codes > Orders > Order Resend**. Must be passed if set as mandatory in the app. The codes are case-sensitive.

- `order_line_items` (optional, array)
  Parameters for order\_line\_items
  - `id` (optional, string, max chars=40)
    The identifier for the order line item.
  - `fulfillment_quantity` (optional, integer)
    The quantity that is going to get fulfilled for this order

## Returns

- `order` (Order object)
  Resource object representing order
