> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chargefy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create an Invoice Preview

> Pré-visualiza a invoice de uma alteração de assinatura.

Cria uma preview de invoice para uma alteração de assinatura. Use o mesmo
payload de `items` que seria enviado no update da subscription.

<ParamField body="subscription" type="string" required>
  Subscription que será alterada (`sub_*`).
</ParamField>

<ParamField body="subscription_details.items" type="array" required>
  Alterações nos itens da assinatura. Use `id` para atualizar um item,
  `deleted: true` para remover, ou omita `id` para adicionar um novo item.
</ParamField>

<ParamField body="subscription_details.proration_behavior" type="string">
  `create_prorations`, `always_invoice` ou `none`. Padrão:
  `create_prorations`.
</ParamField>

<ParamField body="subscription_details.proration_date" type="string">
  Timestamp ISO 8601 usado para calcular a parte restante do ciclo.
</ParamField>

<RequestExample>
  ```bash cURL theme={}
  curl -X POST "https://api.chargefy.io/v1/invoice-previews" \
    -H "Authorization: Bearer {{API_KEY}}" \
    -H "Content-Type: application/json" \
    -d '{
      "subscription": "sub_123",
      "subscription_details": {
        "items": [
          {
            "id": "si_123",
            "price": "price_pro"
          }
        ]
      }
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json Response 200 theme={}
  {
    "object": "invoice_preview",
    "amount_credit_balance_applied": 0,
    "amount_discount": 0,
    "amount_due": 5000,
    "amount_subtotal": 5000,
    "amount_tax": 0,
    "amount_total": 5000,
    "currency": "brl",
    "customer": "cus_123",
    "ending_balance": 0,
    "line_items": [
      {
        "object": "invoice_preview_line_item",
        "amount_discount": 0,
        "amount_subtotal": -5000,
        "amount_tax": 0,
        "amount_total": -5000,
        "currency": "brl",
        "description": "Unused time on previous price",
        "discountable": false,
        "metadata": {},
        "period_end": "2026-06-01T00:00:00Z",
        "period_start": "2026-05-16T00:00:00Z",
        "price": "price_basic",
        "price_data": null,
        "product": "prod_123",
        "proration": true,
        "proration_details": {
          "credited_items": null
        },
        "quantity": 1,
        "recurring_interval": "month",
        "recurring_interval_count": 1,
        "subscription_item": "si_123",
        "unit_amount": -5000
      },
      {
        "object": "invoice_preview_line_item",
        "amount_discount": 0,
        "amount_subtotal": 10000,
        "amount_tax": 0,
        "amount_total": 10000,
        "currency": "brl",
        "description": "Remaining time on new price",
        "discountable": false,
        "metadata": {},
        "period_end": "2026-06-01T00:00:00Z",
        "period_start": "2026-05-16T00:00:00Z",
        "price": "price_pro",
        "price_data": null,
        "product": "prod_123",
        "proration": true,
        "proration_details": {
          "credited_items": null
        },
        "quantity": 1,
        "recurring_interval": "month",
        "recurring_interval_count": 1,
        "subscription_item": "si_123",
        "unit_amount": 10000
      }
    ],
    "livemode": true,
    "starting_balance": 0,
    "subscription": "sub_123"
  }
  ```
</ResponseExample>
