# Preview a credit note

Get a preview of a credit note without creating it.

## Prerequisites

Before you can run the following code snippet, you need to call these APIs with the provided parameters to set up the prerequisite API object(s).

1. createCustomer
POST /v1/customers {"name":"Jenny Rosen","email":"jennyrosen@example.com"}
2. createInvoice
POST /v1/invoices {"customer":"${node.prerequisites.createCustomer.createCustomer:id}"}

## Request

```curl
curl -G https://api.stripe.com/v1/credit_notes/preview \
  -u "<<YOUR_SECRET_KEY>>" \
  -d invoice={{INVOICE_ID}}
```

### Response

```json
{
  "id": "cn_1MxvRqLkdIwHu7ixY0xbUcxk",
  "object": "credit_note",
  "amount": 1099,
  "amount_shipping": 0,
  "created": 1681750958,
  "currency": "usd",
  "customer": "cus_NjLgPhUokHubJC",
  "customer_balance_transaction": null,
  "discount_amount": 0,
  "discount_amounts": [],
  "invoice": "in_1MxvRkLkdIwHu7ixABNtI99m",
  "lines": {
    "object": "list",
    "data": [
      {
        "id": "cnli_1MxvRqLkdIwHu7ixFpdhBFQf",
        "object": "credit_note_line_item",
        "amount": 1099,
        "description": "T-shirt",
        "discount_amount": 0,
        "discount_amounts": [],
        "invoice_line_item": "il_1MxvRlLkdIwHu7ixnkbntxUV",
        "livemode": false,
        "quantity": 1,
        "tax_rates": [],
        "taxes": [],
        "type": "invoice_line_item",
        "unit_amount": 1099,
        "unit_amount_decimal": "1099"
      }
    ],
    "has_more": false,
    "url": "/v1/credit_notes/cn_1MxvRqLkdIwHu7ixY0xbUcxk/lines"
  },
  "livemode": false,
  "memo": null,
  "metadata": {},
  "number": "C9E0C52C-0036-CN-01",
  "out_of_band_amount": null,
  "pdf": "https://pay.stripe.com/credit_notes/acct_1M2JTkLkdIwHu7ix/test_YWNjdF8xTTJKVGtMa2RJd0h1N2l4LF9Oak9FOUtQNFlPdk52UXhFd2Z4SU45alpEd21kd0Y4LDcyMjkxNzU50200cROQsSK2/pdf?s=ap",
  "pre_payment_amount": 1099,
  "post_payment_amount": 0,
  "reason": null,
  "refunds": [],
  "shipping_cost": null,
  "status": "issued",
  "subtotal": 1099,
  "subtotal_excluding_tax": 1099,
  "total": 1099,
  "total_excluding_tax": 1099,
  "total_taxes": [],
  "type": "pre_payment",
  "voided_at": null
}
```

## Returns

Returns a credit note object.

## Parameters

- `invoice` (string, required)
  ID of the invoice.

- `amount` (integer, required conditionally)
  The integer amount in the smallest currency unit representing the total amount of the credit note. One of `amount`, `lines`, or `shipping_cost` must be provided.

- `credit_amount` (integer, optional)
  The integer amount in the smallest currency unit representing the amount to credit the customer’s balance, which will be automatically applied to their next invoice.

- `effective_at` (timestamp, optional)
  The date when this credit note is in effect. Same as `created` unless overwritten. When defined, this value replaces the system-generated ‘Date of issue’ printed on the credit note PDF.

- `email_type` (enum, optional)
  Type of email to send to the customer, one of `credit_note` or `none` and the default is `credit_note`.
Possible enum values:
  - `credit_note`
    credit note email

  - `none`
    no email

- [`lines`](https://docs.stripe.com/api/credit_notes/preview.md?query=lines) (array of objects, required conditionally)
  Line items that make up the credit note. One of `amount`, `lines`, or `shipping_cost` must be provided.

- `memo` (string, optional)
  The credit note’s memo appears on the credit note PDF.

- `metadata` (map, optional)
  Set of [key-value pairs](https://docs.stripe.com/docs/api/metadata.md) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.

- `out_of_band_amount` (integer, optional)
  The integer amount in the smallest currency unit representing the amount that is credited outside of Stripe.

- `reason` (enum, optional)
  Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory`
Possible enum values:
  - `duplicate`
    Credit issued for a duplicate payment or charge

  - `fraudulent`
    Credit note issued for fraudulent activity

  - `order_change`
    Credit note issued for order change

  - `product_unsatisfactory`
    Credit note issued for unsatisfactory product

- `refund_amount` (integer, optional)
  The integer amount in the smallest currency unit representing the amount to refund. If set, a refund will be created for the charge associated with the invoice.

- [`refunds`](https://docs.stripe.com/api/credit_notes/preview.md?query=refunds) (array of objects, optional)
  Refunds to link to this credit note.

- [`shipping_cost`](https://docs.stripe.com/api/credit_notes/preview.md?query=shipping_cost) (object, required conditionally)
  When shipping_cost contains the shipping_rate from the invoice, the shipping_cost is included in the credit note. One of `amount`, `lines`, or `shipping_cost` must be provided.
