# Cobranças proporcionais

Gerencie cobranças proporcionais para assinaturas modificadas.

O aspecto mais complexo da alteração de assinaturas existentes são as cobranças proporcionais, em que o cliente paga uma porcentagem do custo da assinatura para refletir o uso parcial. Esta página explica como as cobranças proporcionais funcionam com assinaturas e como gerenciá-las para seus clientes.

## Como funcionam as cobranças proporcionais

Por exemplo, [atualizar ou voltar a uma versão anterior](https://docs.stripe.com/billing/subscriptions/change-price.md) de uma assinatura pode resultar em cobranças pro rata. Se um cliente atualizar de um plano mensal de 10 USD para uma opção de 20 USD, serão cobrados valores pro rata pelo tempo gasto em cada opção. Se a alteração ocorrer na metade do período de cobrança, o cliente recebe uma cobrança adicional de 5 USD: -5 USD pelo tempo não utilizado no preço inicial, e 10 USD pelo tempo restante no novo preço.

A cobrança proporcional garante uma cobrança precisa dos valores, mas pode resultar em valores de pagamento diferentes dos esperados. Cobranças proporcionais negativas não são reembolsadas automaticamente nem são cobradas imediatamente, embora essas ações possam ser realizadas manualmente.

Você pode [visualizar uma cobrança proporcional](https://docs.stripe.com/billing/subscriptions/prorations.md#preview-proration) para ver o valor antes de aplicar as mudanças. Para saber mais sobre [como funcionam as cobranças proporcionais de crédito](https://docs.stripe.com/billing/subscriptions/prorations.md#credit-prorations), leia nosso guia.

### Cobranças proporcionais e descontos

Todos os [itens da fatura](https://docs.stripe.com/api/invoiceitems/object.md#invoiceitem_object) que são pro rata (`prorations=true`) são definidas como`discountable=false`. Os descontos aplicados a uma fatura contendo pro rata são aplicados apenas a [itens da fatura](https://docs.stripe.com/api/invoiceitems/object.md#invoiceitem_object-discounts) e [itens de linha da fatura](https://docs.stripe.com/api/invoice-line-item/object.md#invoice_line_item_object-discounts) que não são pro rata. Descontos aplicados anteriormente à assinatura e que afetem o valor pro rata são refletidos no valor pro rata do item da fatura.

Opções não pro rata mostram ajustes de desconto em [discount_amounts](https://docs.stripe.com/api/invoice-line-item/object.md#invoice_line_item_object-discount_amounts).

#### Alterações de desconto e pro rata

Atualizar códigos promocionais, cupons ou descontos no nível da assinatura, por si só, não cria itens da fatura pro rata. Apenas alterações que afetam valores faturáveis para o ciclo de faturamento atual criam pro rata, como:

- Alterar o `preço` ou a `quantidade` de um item da assinatura
- Adicionar ou remover itens da assinatura
- Alterar âncoras do ciclo de faturamento ou o comportamento de pro rata

Quando você faz uma alteração que cria um pro rata, a Stripe calcula os valores de pro rata usando o estado atual de preços e descontos da assinatura no momento em que o pro rata é calculado. Se você modificar descontos como parte da mesma chamada da API que também aciona pro rata (por exemplo, alterar a quantidade de um item e modificar um desconto em uma única atualização), o débito ou crédito de pro rata será calculado usando os descontos modificados.

Por exemplo:

- **Atualizar apenas os metadados de um item da assinatura ou aplicar ou remover um desconto:** Não são criados itens da fatura pro rata, e nenhum débito ou crédito imediato de pro rata aparece na próxima fatura.
- **Atualizar a quantidade de um item da assinatura e remover um desconto na mesma chamada:** São criados itens da fatura pro rata para a alteração de quantidade, e os valores de pro rata refletem os preços após a alteração do desconto — o desconto modificado é usado no cálculo do pro rata.

Para obter mais informações sobre como os descontos funcionam nas assinaturas, incluindo como os cupons `duration=once` são consumidos e removidos de `subscription.discounts`, consulte [Cupons e códigos promocionais](https://docs.stripe.com/billing/subscriptions/coupons.md#coupon-duration).

### O que desencadeia cobranças proporcionais

Por padrão, os seguintes cenários resultam em uma cobrança proporcional:

| Atualização                                                                                                                                                                                                           | Descrição                                                                   |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| Alteração de [itens](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-items)                                                                                                                   | Adição de um novo item ou remoção de um item existente                      |
| Alteração de [price](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-items-price)                                                                                                             | Alteração para um preço com um custo base ou período de cobrança diferente  |
| Alteração da [quantity](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-items-quantity)                                                                                                       | Aumentar ou diminuir a quantidade em um item de assinatura                  |
| Adição do [trial_end](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-trial_end) ou[trial_from_plan](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-trial_from_plan) | Adicionar um período de avaliação a assinaturas ativas                      |
| Alteração de [billing_cycle_anchor](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-billing_cycle_anchor)                                                                                     | Redefinição do período de cobrança para uma nova data                       |
| Configurar [cancel_at](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-cancel_at)                                                                                                             | Cancelamento de uma assinatura no meio do período (não no final do período) |

### O que não aciona rateios

Muitas atualizações de assinatura não afetam o faturamento ou geram rateios. Faça essas atualizações a qualquer momento sem criar itens de fatura *pro rata*:

| Parâmetro                                                                                                                                                                                                                                               | Descrição                                                                     |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| **Configurações e atualizações de configuração**                                                                                                                                                                                                        |                                                                               |
| [automatic_tax](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-automatic_tax)                                                                                                                                                  | Ativar ou desativar o cálculo automático de impostos                          |
| [default_payment_method](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-default_payment_method)                                                                                                                                | Alterar a forma de pagamento padrão                                           |
| [default_source](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-default_source)                                                                                                                                                | Alterar a origem de pagamento padrão                                          |
| [payment_behavior](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-payment_behavior)                                                                                                                                            | Controle do comportamento da tentativa de pagamento                           |
| [collection_method](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-collection_method)                                                                                                                                          | Alterar entre cobrança automática e envio de fatura                           |
| [days_until_due](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-days_until_due)                                                                                                                                                | Atualizar a data de vencimento do pagamento para enviar assinaturas de fatura |
| [tax_filing_currency](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-tax_filing_currency)                                                                                                                                      | Alterar a moeda de declaração do imposto                                      |
| [retry_settings](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-retry_settings)                                                                                                                                                | Modificar o comportamento de repetição para pagamentos com falha              |
| [trial_settings](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-trial_settings)                                                                                                                                                | Atualizar as configurações de comportamento de término da avaliação           |
| [pay_immediately](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-pay_immediately)                                                                                                                                              | Controle o comportamento de pagamento imediato                                |
| [pending_invoice_item_interval](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-pending_invoice_item_interval)                                                                                                                  | Alterar a frequência com que os itens pendentes são faturados                 |
| [pause_collection](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-pause_collection)                                                                                                                                            | Pausar ou retomar cobrança de pagamento                                       |
| [proration_date](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-proration_date)                                                                                                                                                | Defina uma data pro rata específica (não cria rateios por si só)              |
| **Metadados e campos descritivos**                                                                                                                                                                                                                      |                                                                               |
| [metadata](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-metadata) e [items.metadata](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-items-metadata)                                                 | Atualizar metadados nos itens de assinatura/assinatura                        |
| [cancellation_details](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-cancellation_details)                                                                                                                                    | Adicionar comentários e comentários de cancelamento                           |
| **Atualizações que atuam como configurações para futuras alterações de faturamento sem rateio**                                                                                                                                                         |                                                                               |
| [discounts](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-discounts) e [items.discounts](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-items-discounts)                                             | Adicionar ou atualizar descontos (aplica-se a faturas futuras)                |
| [faturamento_thresholds](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-billing_thresholds) e[itens. faturamento_thresholds](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-items-billing_thresholds) | Atualizar limiares de faturamento em itens de assinatura/assinatura           |
| [cancel_at_period_end](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-cancel_at_period_end)                                                                                                                                    | Cancelar no final do período atual sem rateio                                 |
| [add_invoice_items](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-add_invoice_items)                                                                                                                                          | Adicionar cobranças únicas à próxima fatura                                   |

> Essas atualizações não geram itens de fatura pro rata com`proration_behavior=create_prorations` ou geram faturas com itens de fatura pro rata com `proration_behavior=always_invoice` porque não alteram o valor de faturamento para o período atual.

### Crie manualmente seus próprios rateios

Para calcular suas próprias cobranças proporcionais fora da Stripe e adicioná-las à assinatura, passe [add_invoice_items](https://docs.stripe.com/api/subscription_schedules/create.md#create_subscription_schedule-add_invoice_items) com um `unit_amount` negativo (igual ao valor proporcional calculado) a estes endpoints:

- [CreateSubscription](https://docs.stripe.com/api/subscriptions/create.md)
- [UpdateSubscription](https://docs.stripe.com/api/subscriptions/update.md)
- [CriarCronogramaAssinatura](https://docs.stripe.com/api/subscription_schedules/create.md)
- [AtualizarCronogramaAssinatura](https://docs.stripe.com/api/subscription_schedules/update.md)

### Quando são aplicadas cobranças proporcionais

Os pro ratas aplicam-se apenas a cobranças realizadas antes do período de cobrança. A [cobrança por uso](https://docs.stripe.com/billing/subscriptions/usage-based.md) não está sujeita a pro rata.

O valor proporcional é calculado assim que o API atualiza a assinatura. As datas de início e término do período de cobrança atual são usadas para calcular o custo da assinatura antes e depois da alteração.

### Cobranças proporcionais e faturas não pagas

A Stripe calcula os pro ratas com base no status da assinatura no momento da atualização, presumindo que todas as faturas anteriores da assinatura serão eventualmente pagas. Se um cliente alterar sua assinatura enquanto tiver uma fatura não paga referente ao período atual, ele poderá receber um crédito pelo tempo não utilizado no plano de maior valor, mesmo que ainda não tenha pago por esse tempo.

Para evitar cobranças por períodos não pagos, você pode desativar as cobranças proporcionais quando a última fatura da assinatura estiver em aberto. Ao atualizar a assinatura, defina [proration_behavior](https://docs.stripe.com/api/subscriptions/update.md?update_subscription-proration_behavior=#update_subscription-proration_behavior) como `none`. Selecione uma das seguintes abordagens:

1. **Para manter o período de cobrança original:** [crie uma fatura única](https://docs.stripe.com/api/invoices/create.md) manualmente para novas cobranças.
1. **Para cobrar imediatamente pelo novo plano e redefinir o período de cobrança:** Defina `billing_cycle_anchor` como `now`. Para obter mais detalhes, consulte [Redefinir o período de cobrança como a hora atual](https://docs.stripe.com/billing/subscriptions/billing-cycle.md#reset-the-billing-period-to-the-current-time).

Qualquer uma dessas abordagens pode levar a pagamentos em duplicidade caso o cliente acabe pagando a fatura antiga. Para evitar isso, [anule a fatura não paga](https://docs.stripe.com/api/invoices/void.md).

### Impostos e cobranças proporcionais

Para saber como funcionam impostos com cobranças proporcionais, consulte [Recolher impostos para pagamentos recorrentes](https://docs.stripe.com/billing/taxes/collect-taxes.md).

## Cobranças proporcionais de crédito

Os pro rata de crédito são emitidos quando os clientes fazem downgrade de suas assinaturas ou cancelam itens de assinatura antes do final do período de cobrança. A Stripe oferece duas abordagens para calcular os pro rata de crédito, dependendo se você definiu o [modo_de_faturamento](https://docs.stripe.com/billing/subscriptions/billing-mode.md#differences-between-classic-and-flexible-billing-mode) da sua assinatura como `classic` ou `flexible`.

### Lógica de cálculo sem cobranças proporcionais

No cenário a seguir, você atualiza uma assinatura mensal de 10 USD para 20 USD com o `proration_behavior` definido como `none` por 10 dias. Não há débito anterior para basear a assinatura. Posteriormente, você faz o downgrade da assinatura para 10 USD por mês com o `proration_behavior` definido como `always_invoice`.

Para configurar este cenário, primeiro [crie uma assinatura](https://docs.stripe.com/api/subscriptions/create.md) de 10 USD por mês em 1º de abril:

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "items[0][price]=price_10_monthly"
```

A resposta inclui a fatura criada para esta assinatura:

```json
{
  "id": "sub_123",
  "latest_invoice": {
    "id": "in_123",
    "total": 1000,
    "currency": "usd"
  }
}
```

Em seguida, em 11 de abril, você [atualiza a assinatura](https://docs.stripe.com/billing/subscriptions/change-price.md#changing) para 20 USD por mês sem criar pro rata:

```curl
curl https://api.stripe.com/v1/subscriptions/sub_123 \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "items[0][id]=sub_item_1" \
  -d "items[0][price]=price_20_monthly" \
  -d proration_behavior=none
```

A fatura mais recente permanece inalterada porque `proration_behavior` é `none`:

```json
{
  "id": "sub_123",
  "latest_invoice": {
    "id": "in_123"
  }
}
```

Por fim, em 21 de abril, você [faz downgrade da assinatura](https://docs.stripe.com/billing/subscriptions/change-price.md#changing) para 10 USD por mês e cria pro rata:

```curl
curl https://api.stripe.com/v1/subscriptions/sub_123 \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "items[0][id]=sub_item_1" \
  -d "items[0][price]=price_10_monthly" \
  -d proration_behavior=always_invoice
```

| **Clássico**                                                                                                                                                                                                                                                                                                                                                            | **Flexível**                                                                                                                                                                                                                                                                                                                                                                                                |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| A lógica de cálculo de rateio `billing_mode=classic` cria um pro rata de crédito com base no preço atual, mesmo que o cliente nunca tenha pago a taxa mensal de 20 USD. A fatura mais recente credita um terço do mês no valor de 20 USD (-), mesmo que o cliente nunca tenha pago o preço `price_20_monthly`. Ela também debita um terço do mês no valor de 10 USD (). | A lógica de cálculo habilitada com `billing_mode=flexible` cria um pro rata de crédito com base no último preço cobrado pelo item de assinatura. Nesse caso, a fatura mais recente credita um terço do mês pelo preço mensal de 10 USD cobrado em 1º de abril (3.33 USD) e debita um terço do mês pelo preço de 10 USD (3.33 USD). O crédito e o débito se cancelam, de modo que o total da fatura é 0 USD. |
| ```json
    # billing_mode = classic
    {
      "id": "sub_123",
      "latest_invoice": {
        "id": "in_456",
        "total": -334,
        "currency": "usd"
      }
    }
  ```                                                                                                                                                                                | ```json
    # billing_mode = flexible
    {
      "id": "sub_123",
      "latest_invoice": {
        "id": "in_456",
        "total": 0,
        "currency": "usd"
      }
    }
  ```                                                                                                                                                                                                                      |

### Lógica de cálculo para cupons aplicados a vários itens de assinatura

A Stripe pondera o cupom `amount_off` no rateio de crédito para evitar cobranças em excesso.

No seguinte cenário, um cupom de 5 USD é alocado de forma desigual a uma assinatura mensal de 25 USD para um item de 10 USD e um item de 20 USD.

Para configurar esse cenário, você cria uma assinatura com vários itens e um cupom em 1º de fevereiro:

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "items[0][price]=price_10_monthly" \
  -d "items[1][price]=price_20_monthly" \
  -d "discounts[0][coupon]=five_dollars_off"
```

O que retorna esta resposta:

```json
{
  "id": "sub_123",
  "latest_invoice": {
    "id": "in_123",
    "total": 2500,
    "currency": "usd",
    "lines": {
      "data": [
      {
        "id": "ili_1",
        "amount": 1000,
        "price": "price_10_monthly",
        "discount_amounts": [{
          "discount": "di_a",
          "amount": 166 }] },
      {
        "id": "ili_2",
        "amount": 2000,
        "price": "price_20_monthly",
        "discount_amounts": [{
          "discount": "di_a",
          "amount": 334
          }]
        }
    ] }
  }
}

```

Para cancelar o item de assinatura mensal de 10 USD:

```curl
curl https://api.stripe.com/v1/subscription_items/si_10_monthly \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d proration_behavior=create_prorations
```

Quando um item de assinatura é excluído, o `billing_mode` associado a essa assinatura afeta o modo como o rateio é calculado da seguinte forma:

| **Clássico**                                                                                                                                                                                                                                  | **Flexível**                                                                                                                                                                                                                                                    |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| O comportamento padrão distribui um cupom de 5 USD para cada item ( cada), cancelando o item mais barato (5 USD) e resultando em um reembolso de . A Stripe calcula o total com a fórmula `-0.5 x (10 USD price - 5 USD coupon) = -2.50 USD`. | O comportamento flexível reflete o desconto proporcional aplicado ao item cancelado, em vez de aplicar o valor total do desconto ao cálculo pro rata. A Stripe calcula o total usando a fórmula `-0.5 x (10 USD price - 1.66 USD discount amount) = -4.17 USD`. |
| ```json
    # billing_mode = classic
    {
      "id": "sub_123",
      "latest_invoice": {
        "id": "in_456",
        "total": -250,
        "currency": "usd"
      }
    }
  ```                                                      | ```json
    # billing_mode = flexible
    {
      "id": "sub_123",
      "latest_invoice": {
        "id": "in_789",
        "total": -417,
        "currency": "usd"
      }
    }
  ```                                                                       |

## Exibir uma cobrança proporcional

É possível [criar uma prévia da fatura](https://docs.stripe.com/api/invoices/create_preview.md) para visualizar alterações na assinatura. Esta chamada da API não modifica a assinatura. Em vez disso, ele retorna a *fatura* (Invoices are statements of amounts owed by a customer. They track the status of payments from draft through paid or otherwise finalized. Subscriptions automatically generate invoices, or you can manually create a one-off invoice) com base apenas nos parâmetros que você passar. Alterar `price` ou `quantity` resulta em cobrança proporcional. Este exemplo altera o `price` e define uma data para a cobrança proporcional.

#### Accounts v2

#### Ruby

```ruby

# Don't put any keys in code. See https://docs.stripe.com/keys-best-practices.
# Find your keys at https://dashboard.stripe.com/apikeys.
client = Stripe::StripeClient.new('<<YOUR_SECRET_KEY>>')

# Set proration date to this moment:
proration_date = Time.now.to_i

subscription = client.v1.subscriptions.retrieve('sub_49ty4767H20z6a')

# See what the next invoice would look like with a price switch
# and proration set:
items = [{
  id: subscription.items.data[0].id,
  price: 'price_CBb6IXqvTLXp3f', # Switch to new price
}]

invoice = client.v1.invoices.create_preview({
  customer_account: 'acct_4fdAW5ftNQow1a',
  subscription: 'sub_49ty4767H20z6a',
  subscription_details: {
    items: items,
    proration_date: proration_date,
  }
})
```

#### Customers v1

#### Ruby

```ruby

# Don't put any keys in code. See https://docs.stripe.com/keys-best-practices.
# Find your keys at https://dashboard.stripe.com/apikeys.
client = Stripe::StripeClient.new('<<YOUR_SECRET_KEY>>')

# Set proration date to this moment:
proration_date = Time.now.to_i

subscription = client.v1.subscriptions.retrieve('sub_49ty4767H20z6a')

# See what the next invoice would look like with a price switch
# and proration set:
items = [{
  id: subscription.items.data[0].id,
  price: 'price_CBb6IXqvTLXp3f', # Switch to new price
}]

invoice = client.v1.invoices.create_preview({
  customer: 'cus_4fdAW5ftNQow1a',
  subscription: 'sub_49ty4767H20z6a',
  subscription_details: {
    items: items,
    proration_date: proration_date,
  }
})
```

Você pode expandir a resposta de exemplo abaixo para ver:

- O crédito pelo tempo não utilizado no preço anterior nas linhas 36 a 38.
- O custo pelo tempo gasto no novo preço nas linhas 107 a 109.
- O novo subtotal e o total pela fatura nas linhas 276 a 279.

```json
{
  "id": "upcoming_in_1OujwkClCIKljWvsq5v2ICAN",
  "account_country": "US",
  "account_name": "Test account",
  "amount_due": 3627,
  "amount_paid": 0,
  "amount_remaining": 3627,
  "application_fee_amount": null,
  "attempt_count": 0,
  "attempted": false,
  "billing_reason": "upcoming",
  "charge": null,
  "collection_method": "charge_automatically",
  "created": 1599427688,
  "currency": "usd",
  "custom_fields": null,
  "customer": "cus_DGEhAXrZWrzdYs",
  "customer_address": null,
  "customer_email": "jenny.rosen@example.com",
  "customer_name": null,
  "customer_phone": null,
  "customer_shipping": null,
  "customer_tax_exempt": "none",
  "customer_tax_ids": [],
  "default_payment_method": null,
  "default_source": null,
  "default_tax_rates": [],
  "description": null,
  "discount": null,
  "discounts": [],
  "due_date": null,
  "ending_balance": 0,
  "footer": null,
  "lines": {
    "data": [
      {"amount": -166,
        "currency": "usd",
        "description": "Unused time on Silver plan after 01 Sep 2020",
        "discount_amounts": [],
        "discountable": false,
        "discounts": [],
        "id": "il_tmp1HMdV2AJVYItwOKqQi4H",
        "invoice_item": "ii_1HMdV2AJVYItwUH1Qi4H",
        "livemode": false,
        "metadata": {},
        "object": "line_item",
        "period": {
          "end": 1599427688,
          "start": 1598982148
        },
        "plan": {
          "active": true,
          "amount": 1000,
          "amount_decimal": "1000",
          "billing_scheme": "per_unit",
          "created": 1585856460,
          "currency": "usd",
          "id": "price_H1c8v1lifcd",
          "interval": "month",
          "interval_count": 1,
          "livemode": false,
          "metadata": {},
          "nickname": null,
          "object": "plan",
          "product": "prod_c7exjJHbC4",
          "tiers": null,
          "tiers_mode": null,
          "transform_usage": null,
          "trial_period_days": null,
          "usage_type": "licensed"
        },
        "price": {
          "active": true,
          "billing_scheme": "per_unit",
          "created": 1585856460,
          "currency": "usd",
          "id": "price_c8v1liEvrf",
          "livemode": false,
          "lookup_key": null,
          "metadata": {},
          "nickname": null,
          "object": "price",
          "product": "prod_c7exjJHbC4",
          "recurring": {
            "interval": "month",
            "interval_count": 1,
            "trial_period_days": null,
            "usage_type": "licensed"
          },
          "tiers_mode": null,
          "transform_quantity": null,
          "type": "recurring",
          "unit_amount": 1000,
          "unit_amount_decimal": "1000"
        },
        "proration": true,
        "quantity": 1,
        "subscription": "sub_H38lqYjDO0DSzl",
        "subscription_item": "si_H38lIMagWoFx0W",
        "tax_amounts": [],
        "tax_rates": [],
        "type": "invoiceitem"
      },
      {"amount": 541,
        "currency": "usd",
        "description": "Remaining time on Gold plan after 01 Sep 2020",
        "discount_amounts": [],
        "discountable": false,
        "discounts": [],
        "id": "il_tmp1HMdV2AJVYItwOKqDcgkmpzz",
        "invoice_item": "ii_1HMdV2AJVYItwOKqDcgkmpzz",
        "livemode": false,
        "metadata": {},
        "object": "line_item",
        "period": {
          "end": 1599427688,
          "start": 1598982148
        },
        "plan": {
          "active": true,
          "amount": 3252,
          "amount_decimal": "3252",
          "billing_scheme": "per_unit",
          "created": 1598473039,
          "currency": "usd",
          "id": "price_KV3bAJVYItwOKq16frkr",
          "interval": "month",
          "interval_count": 1,
          "livemode": false,
          "metadata": {},
          "nickname": null,
          "object": "plan",
          "product": "prod_JfJiw2l6ke",
          "tiers": null,
          "tiers_mode": null,
          "transform_usage": null,
          "trial_period_days": null,
          "usage_type": "licensed"
        },
        "price": {
          "active": true,
          "billing_scheme": "per_unit",
          "created": 1598473039,
          "currency": "usd",
          "id": "price_KV3bAJVYItwOKq16frkr",
          "livemode": false,
          "lookup_key": null,
          "metadata": {},
          "nickname": null,
          "object": "price",
          "product": "prod_JfJiw2l6ke",
          "recurring": {
            "interval": "month",
            "interval_count": 1,
            "trial_period_days": null,
            "usage_type": "licensed"
          },
          "tiers_mode": null,
          "transform_quantity": null,
          "type": "recurring",
          "unit_amount": 3252,
          "unit_amount_decimal": "3252"
        },
        "proration": true,
        "quantity": 1,
        "subscription": "sub_H38lqYjDO0DSzl",
        "subscription_item": "si_H38lIMagWoFx0W",
        "tax_amounts": [],
        "tax_rates": [],
        "type": "invoiceitem"
      },
      {
        "amount": 3252,
        "currency": "usd",
        "description": "1 \u00d7 Gold product (at $32.52 / month)",
        "discount_amounts": [],
        "discountable": true,
        "discounts": [],
        "id": "il_tmp_7fc9ba9b6aa9aa",
        "livemode": false,
        "metadata": {},
        "object": "line_item",
        "period": {
          "end": 1602019688,
          "start": 1599427688
        },
        "plan": {
          "active": true,
          "amount": 3252,
          "amount_decimal": "3252",
          "billing_scheme": "per_unit",
          "created": 1598473039,
          "currency": "usd",
          "id": "price_KV3bAJVYItwOKq16frkr",
          "interval": "month",
          "interval_count": 1,
          "livemode": false,
          "metadata": {},
          "nickname": null,
          "object": "plan",
          "product": "prod_JfJiw2l6ke",
          "tiers": null,
          "tiers_mode": null,
          "transform_usage": null,
          "trial_period_days": null,
          "usage_type": "licensed"
        },
        "price": {
          "active": true,
          "billing_scheme": "per_unit",
          "created": 1598473039,
          "currency": "usd",
          "id": "price_KV3bAJVYItwOKq16frkr",
          "livemode": false,
          "lookup_key": null,
          "metadata": {},
          "nickname": null,
          "object": "price",
          "product": "prod_JfJiw2l6ke",
          "recurring": {
            "interval": "month",
            "interval_count": 1,
            "trial_period_days": null,
            "usage_type": "licensed"
          },
          "tiers_mode": null,
          "transform_quantity": null,
          "type": "recurring",
          "unit_amount": 3252,
          "unit_amount_decimal": "3252"
        },
        "proration": false,
        "quantity": 1,
        "subscription": "sub_H38lqYjDO0DSzl",
        "subscription_item": "si_H38lIMagWoFx0W",
        "tax_amounts": [],
        "tax_rates": [],
        "type": "subscription"
      }
    ],
    "has_more": false,
    "object": "list",
    "total_count": 3,
    "url": "/v1/invoices/upcoming_in_1OujwkClCIKljWvsq5v2ICAN/lines"
  },
  "livemode": false,
  "metadata": {},
  "next_payment_attempt": 1599431288,
  "number": null,
  "object": "invoice",
  "paid": false,
  "payment_intent": null,
  "period_end": 1599427688,
  "period_start": 1596749288,
  "post_payment_credit_notes_amount": 0,
  "pre_payment_credit_notes_amount": 0,
  "receipt_number": null,
  "starting_balance": 0,
  "statement_descriptor": null,
  "status": "draft",
  "status_transitions": {
    "finalized_at": null,
    "marked_uncollectible_at": null,
    "paid_at": null,
    "voided_at": null
  },
  "subscription": "sub_8lqYjDO0DS",
  "subscription_details": {
    "proration_date": 1598982148
  },"subtotal": 3627,
  "tax": null,
  "tax_percent": null,
  "total": 3627,
  "total_discount_amounts": [],
  "total_tax_amounts": [],
  "transfer_data": null,
  "webhooks_delivered_at": null
}
```

Use essas informações para confirmar as alterações com o cliente antes de modificar a assinatura. Como o Stripe é rateado ao segundo, os valores rateados podem mudar entre o momento da visualização e o momento da atualização. Para evitar isso, passe o valor `subscription_details.proration_date` ao criar uma prévia. Ao atualizar a assinatura, passe a mesma data usando o parâmetro `proration_date` em uma assinatura para que o rateio seja calculado ao mesmo tempo.

#### Ruby

```ruby

# Don't put any keys in code. See https://docs.stripe.com/keys-best-practices.
# Find your keys at https://dashboard.stripe.com/apikeys.
client = Stripe::StripeClient.new('<<YOUR_SECRET_KEY>>')

subscription = client.v1.subscriptions.update(
  'sub_49ty4767H20z6a',
  {
    items: [
      {
        id: subscription.items.data[0].id,
        price: 'price_CBb6IXqvTLXp3f',
      },
    ],
    proration_date: proration_date,
  }
)
```

## Controlar o comportamento da cobrança proporcional

A cobrança proporcional é controlada pelo parâmetro [proration_behavior](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-proration_behavior), que tem três opções possíveis de parâmetros: `create_prorations`, `always_invoice` e `none`.

### Comportamento padrão

O parâmetro padrão para `proration_behavior` é `create_prorations`, que cria itens de fatura proporcionais quando for aplicável. Esses itens de cobrança proporcional só são faturados imediatamente em [determinadas condições](https://docs.stripe.com/billing/subscriptions/change-price.md#immediate-payment).

### Criar cobranças proporcionais imediatas

Para cobrar um cliente imediatamente por uma alteração em uma assinatura no mesmo período de cobrança, defina `proration_behavior` como `always_invoice` ao modificar a assinatura. Isso calcula o pro rata e gera uma fatura imediatamente.

### Desativar cobranças proporcionais

Para desativar as cobranças proporcionais por solicitação, defina o parâmetro `proration_behavior` como `none`. Nenhum parâmetro desativa todas as cobranças proporcionais futuras de uma assinatura. Para desativar as cobranças proporcionais indefinidamente, defina `proration_behavior` como `none` para cada solicitação que gerar cobranças proporcionais:

#### curl

```bash
curl https://api.stripe.com/v1/subscriptions/sub_49ty4767H20z6a \
  -u <<YOUR_SECRET_KEY>>: \
  -d "items[0][id]"="si_1AkFf6LlRB0eXbMtRFjYiJ0J" \
  -d "items[0][price]"="price_CBb6IXqvTLXp3f" \
  -d "proration_behavior"="none"
```

Quando as cobranças proporcionais são desativadas, os clientes são cobrados no valor total no novo preço quando a próxima fatura é gerada.
