# Create a refundable credit note

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


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

This API is used to create a refundable credit note for the order

## Sample Request

#### cURL

```bash
curl  https://{site}.chargebee.com/api/v2/orders/1/create_refundable_credit_note \
     -u {site_api_key}:\
     -d "credit_note[reason_code]"="PRODUCT_UNSATISFACTORY" \
     -d "credit_note[total]"=100
```

#### .NET

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

ApiConfig.Configure("{site}","{site_api_key}");
EntityResult result = Order.CreateRefundableCreditNote("1")
		.CreditNoteReasonCode(CreditNote.ReasonCodeEnum.ProductUnsatisfactory)
		.CreditNoteTotal(100)
		.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"
    creditNoteEnum "github.com/chargebee/chargebee-go/v3/models/creditnote/enum"
)
func main() {
    chargebee.Configure("{site_api_key}","{site}");
    res,err := orderAction.CreateRefundableCreditNote("1", &order.CreateRefundableCreditNoteRequestParams{
        CreditNote : &order.CreateRefundableCreditNoteCreditNoteParams{
            ReasonCode : creditNoteEnum.ReasonCodeProductUnsatisfactory,
            Total : chargebee.Int64(100),
        },
    }).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.OrderCreateRefundableCreditNoteRequest{
    CreditNote : &chargebee.OrderCreateRefundableCreditNoteCreditNote{
        ReasonCode : chargebee.CreditNoteReasonCodeProductUnsatisfactory,
        Total : chargebee.Int64(100),
    },
}
  res, err := client.Order.CreateRefundableCreditNote("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;

public class Sample {

    public static void main(String args[]) throws IOException, Exception {
        Environment.configure("{site}", "{site_api_key}");
        Result result = Order.createRefundableCreditNote("1")
            .creditNoteReasonCode(CreditNote.ReasonCode.PRODUCT_UNSATISFACTORY)
            .creditNoteTotal(100L)
            .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.OrderCreateRefundableCreditNoteParams;
import com.chargebee.v4.models.order.responses.OrderCreateRefundableCreditNoteResponse;

public class OrderCreateRefundableCreditNote {

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

        OrderCreateRefundableCreditNoteParams.CreditNoteParams creditNoteParams =
            OrderCreateRefundableCreditNoteParams.CreditNoteParams.builder()
                .reasonCode(OrderCreateRefundableCreditNoteParams.CreditNoteParams.ReasonCode.PRODUCT_UNSATISFACTORY)
                .total(100L)
                .build();

        OrderCreateRefundableCreditNoteParams params = OrderCreateRefundableCreditNoteParams.builder()
            .creditNote(creditNoteParams)
            .build();

        OrderCreateRefundableCreditNoteResponse response = client
            .orders()
            .createRefundableCreditNote("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.createRefundableCreditNote("1", {
        credit_note: {
            reason_code: "product_unsatisfactory",
            total: 100
        }
    });

    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()->createRefundableCreditNote("1", [
    "credit_note" => [
        "reason_code" => "product_unsatisfactory",
        "total" => 100
    ]
]);
$order = $result->order;
```

#### Python

```python
import chargebee
from chargebee import Chargebee

cb_client = Chargebee(api_key="{site_api_key}", site="{site}")
response = cb_client.Order.create_refundable_credit_note("1",
    cb_client.Order.CreateRefundableCreditNoteParams(
        credit_note=cb_client.Order.CreateRefundableCreditNoteCreditNoteParams(
            reason_code=chargebee.CreditNote.ReasonCode.PRODUCT_UNSATISFACTORY,
            total=100
        )
    )
)
order = response.order
```

#### Ruby

```ruby
require 'chargebee'

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

result = ChargeBee::Order.create_refundable_credit_note("1",{
  :credit_note => {
    :reason_code => "PRODUCT_UNSATISFACTORY",
    :total => 100
  }
})

order = result.order
```

## Sample Response

```json
{
  "order": {
    "amount_adjusted": 0,
    "amount_paid": 40000,
    "base_currency_code": "USD",
    "created_at": 1517505903,
    "created_by": "Auto generated by system",
    "currency_code": "USD",
    "customer_id": "__test__KyVnHhSBWlpZx2nQ",
    "deleted": false,
    "discount": 0,
    "document_number": "1",
    "exchange_rate": 1,
    "id": "1",
    "invoice_id": "__demo_inv__1",
    "is_gifted": false,
    "linked_credit_notes": [
      {
        "amount": 100,
        "id": "__demo_cn__1",
        "object": "order_line_item_linked_credit",
        "status": "refund_due",
        "type": "refundable"
      },
      {..}
    ],
    "object": "order",
    "order_date": 1517505902,
    "order_line_items": [
      {
        "amount": 40000,
        "amount_adjusted": 0,
        "amount_paid": 40000,
        "description": "MB1S1P",
        "discount_amount": 0,
        "entity_id": "MB1S1P",
        "entity_type": "plan",
        "fulfillment_amount": 40000,
        "fulfillment_quantity": 1,
        "id": "o_li__test__KyVnGlSBWlpkB272",
        "invoice_id": "__demo_inv__1",
        "invoice_line_item_id": "li___test__KyVnHhSBWlpbC2nS",
        "is_shippable": true,
        "item_level_discount_amount": 0,
        "object": "order_line_item",
        "refundable_credits": 39900,
        "refundable_credits_issued": 100,
        "status": "queued",
        "tax_amount": 0,
        "unit_price": 40000
      },
      {..}
    ],
    "order_type": "system_generated",
    "paid_on": 1517505902,
    "payment_status": "paid",
    "price_type": "tax_exclusive",
    "refundable_credits": 39900,
    "refundable_credits_issued": 100,
    "resource_version": 1517678701000,
    "rounding_adjustement": 0,
    "shipping_date": 1517505902,
    "status": "queued",
    "sub_total": 40000,
    "subscription_id": "__test__KyVnHhSBWlpZx2nQ",
    "tax": 0,
    "total": 40000,
    "updated_at": 1517678701
  }
}
```

## URL Format

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

## Input Parameters

- `customer_notes` (optional, string, max chars=2000)
  The Customer Notes to be filled in the Credit Notes created to capture this refund detail.

- `comment` (optional, string, max chars=300)
  Comment, if any, on the refund.

- `credit_note` (optional, enumerated string)
  Parameters for credit\_note
  - `reason_code` (required, enumerated string)
    The reason for issuing this Credit Note. The following reason codes are supported now\[Deprecated; use the [create\_reason\_code](/docs/api/credit_notes/credit_note-object#create_reason_code) parameter instead\]
    Possible enum values:
      - `write_off`
        This reason will be set automatically for the Credit Notes created during invoice [Write Off](https://www.chargebee.com/docs/invoice-operations.html#write-off) operation.
      - `subscription_change`
        This reason will be set automatically for Credit Notes created during Change Subscription operation when [proration](https://www.chargebee.com/docs/proration.html) is enabled
      - `subscription_cancellation`
        This reason will be set automatically for Credit Notes created during cancel subscription operation
      - `subscription_pause`
        This reason will be automatically set to credit notes created during pause/resume subscription operation.
      - `chargeback`
        Can be set when you are recording your customer Chargebacks
      - `product_unsatisfactory`
        Product Unsatisfactory
      - `service_unsatisfactory`
        Service Unsatisfactory
      - `order_change`
        Order Change
      - `order_cancellation`
        Order Cancellation
      - `waiver`
        Waiver
      - `other`
        Can be set when none of the above reason codes are applicable
      - `fraudulent`
        FRAUDULENT
  - `total` (required, in cents, default=0, min=0)
    Credit Note amount in cents.

## Returns

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