# Definir quantidade de produtos ou assinaturas

Assine um cliente para vários produtos ou para várias quantidades de um único produto, todos faturados em uma única fatura.

Talvez você precise criar assinaturas para [vários produtos](https://docs.stripe.com/billing/subscriptions/quantities.md#multiple-product-sub) ou para [várias quantidades do mesmo produto](https://docs.stripe.com/billing/subscriptions/quantities.md#multiple-quantities-sub). Você também pode criar [várias assinaturas para pessoas físicas](https://docs.stripe.com/billing/subscriptions/quantities.md#multiple-subscriptions).

## Assinaturas com vários produtos

Se você oferece vários produtos ou deseja cobrar valores diferentes pelo mesmo produto, pode criar uma assinatura para vários produtos. Isso gera uma única *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) a cada período de cobrança, combinando todos os preços, e o cliente só precisa fazer um único pagamento.

### Criar uma assinatura de vários produtos

Crie assinaturas de vários produtos para um cliente usando o parâmetro [items](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-items). Informe `price` e `quantity` (quando o valor for diferente de 1) para cada produto:

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "customer={{CUSTOMER_ID}}" \
  -d "items[0][price]={{PRICE_ID}}" \
  -d "items[1][price]={{PRICE_ID}}" \
  -d "items[1][quantity]=2"
```

A resposta inclui uma lista de todos os itens, preços e quantidades de assinaturas:

```json
{
  "id": "sub_CZEpS1Zt9QLxdo",
  "object": "subscription",
  ...
  "items": {
    "object": "list",
    "data": [
      {
        "id": "si_H1yPnAVzP9vDRW",
        "object": "subscription_item",
        "billing_thresholds": null,
        "created": 1585939321,
        "metadata": {
        },
        "price": {
          "id": "price_H1c8v1liEvrfcd",
          "object": "price",
          "active": true,
          "billing_scheme": "per_unit",
          "created": 1585856460,
          "currency": "usd",
          "livemode": false,
          "lookup_key": null,
          "metadata": {
          },
          "nickname": null,
          "product": "prod_H1c7exjJHbC4sr",
          "recurring": {
            "interval": "month",
            "interval_count": 1,
            "trial_period_days": null,
            "usage_type": "licensed"
          },
          "tiers": null,
          "tiers_mode": null,
          "transform_quantity": null,
          "type": "recurring",
          "unit_amount": 1000,
          "unit_amount_decimal": "1000"
        },
        "quantity": 1,
        "subscription": "sub_H1yPRslJXa4TUt",
        "tax_rates": [
        ]
      },
      {
        "id": "si_H1yPu4fSjq3oqM",
        "object": "subscription_item",
        "billing_thresholds": null,
        "created": 1585939321,
        "metadata": {
        },
        "price": {
          "id": "price_H1yCssogQ6gtx1",
          "object": "price",
          "active": true,
          "billing_scheme": "per_unit",
          "created": 1585938535,
          "currency": "usd",
          "livemode": false,
          "lookup_key": null,
          "metadata": {
          },
          "nickname": null,
          "product": "prod_H1c7exjJHbC4sr",
          "recurring": {
            "interval": "month",
            "interval_count": 1,
            "trial_period_days": null,
            "usage_type": "licensed"
          },
          "tiers": null,
          "tiers_mode": null,
          "transform_quantity": null,
          "type": "recurring",
          "unit_amount": 2000,
          "unit_amount_decimal": "2000"
        },
        "quantity": 2,
        "subscription": "sub_H1yPRslJXa4TUt",
        "tax_rates": [
        ]
      }
    ]
  },
  ...
}
```

### Períodos de cobrança com vários preços

Assinaturas com tarifa fixa por intervalo são cobradas no início de cada [período de cobrança (ciclo)](https://docs.stripe.com/billing/subscriptions/billing-cycle.md). Com cada fatura, o cliente paga efetivamente pelo próximo intervalo de serviço. Com a [cobrança por uso](https://docs.stripe.com/products-prices/pricing-models.md#usage-based-pricing), o valor pago pelo cliente varia de acordo com o consumo durante o período de cobrança, de modo que o cliente paga pelo uso no final.

Quando uma assinatura combina uma tarifa fixa com cobrança por uso, o uso medido do período de cobrança anterior é cobrado juntamente com a tarifa fixa do novo período de cobrança no início de cada renovação. A cobrança por uso e a tarifa fixa são combinadas em uma única fatura.

O uso de vários produtos com uma assinatura resulta em uma única fatura e pagamento, o que significa que todos os preços desses produtos devem usar a mesma moeda.

Uma assinatura com modo de faturamento flexível aceita até 100&nbsp;itens de assinatura, enquanto uma assinatura com modo de faturamento clássico aceita até 20&nbsp;itens de assinatura.

Para lidar com vários produtos em uma assinatura que podem ter períodos de cobrança diferentes, você pode criar uma [assinatura de intervalo misto](https://docs.stripe.com/billing/subscriptions/mixed-interval.md) .

### Descontos, impostos e períodos de avaliação

Ao usar vários produtos, você também pode criar [descontos](https://docs.stripe.com/billing/subscriptions/coupons.md), cobrar [impostos](https://docs.stripe.com/billing/taxes/collect-taxes.md) e usar [períodos de avaliação](https://docs.stripe.com/billing/subscriptions/trials/free-trials.md) da mesma forma que faria com uma assinatura de um único produto.

Forneça esses argumentos quando você [criar](https://docs.stripe.com/api/subscriptions/create.md) ou [atualizar](https://docs.stripe.com/api/subscriptions/update.md) uma assinatura para aplicá-los à assinatura inteira ou forneça-os no nível do item para descontar apenas um item específico.

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "customer={{CUSTOMER_ID}}" \
  -d "discounts[0][coupon]={{COUPON_ID}}" \
  -d "default_tax_rates[0]=txr_1EO66sClCIKljWvs98IiVfHW" \
  -d trial_end=1610403705 \
  -d "items[0][price]={{PRICE_ID}}" \
  -d "items[1][price]={{PRICE_ID}}" \
  -d "items[1][quantity]=2"
```

## Várias quantidades de uma assinatura

Muitas vezes, assinaturas com quantidades são descritas como “licenciamento por usuário” e seu custo aumenta linearmente: 10 utilizações custam 10 vezes o preço básico.

Por padrão, cada assinatura é para um produto, mas a Stripe permite que o cliente assine quantidades múltiplas de um item. Por exemplo, digamos que você administra uma empresa de hospedagem e seus clientes hospedam sites com um custo mensal de US$&nbsp;9,99 por site. A maioria dos clientes hospeda um único site e alguns hospedam vários. Você pode criar preços para um site (US$&nbsp;9,99), dois sites (US$&nbsp;19,98) e assim por diante, mas uma abordagem melhor é os clientes assinarem uma quantidade de sites pelo preço unitário de US$&nbsp;9,99.

As assinaturas têm dois tipos de cobrança por uso: licenciamento por consumo e por usuário. Você pode ativar esses modelos de cobrança definindo o valor do atributo `recurring[usage_type]` quando cria um preço. Somente é possível especificar uma quantidade em assinaturas criadas com `recurring[usage_type]` definido como `licensed`. Para cobrar preços específicos que variam dentro de um intervalo de cobrança, considere usar [cobrança por uso](https://docs.stripe.com/products-prices/pricing-models.md#usage-based-pricing) em vez de quantidades.

### Definir várias quantidades

Para definir a quantidade em uma assinatura, informe o valor de `quantity` ao [criar](https://docs.stripe.com/api.md#create_subscription) ou [atualizar](https://docs.stripe.com/api.md#update_subscription) a assinatura:

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "customer={{CUSTOMER_ID}}" \
  -d "items[0][price]={{PRICE_ID}}" \
  -d "items[0][quantity]=5"
```

Você pode cobrar quantidades múltiplas em uma *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), e elas são [cobradas proporcionalmente](https://docs.stripe.com/billing/subscriptions/prorations.md) quando a assinatura muda, inclusive quando as quantidades são alteradas.

### Cobrar valores diferentes com base na quantidade

Em alguns casos, pode ser necessário ajustar o custo por usuário de acordo com o número de usuários em uma assinatura. Por exemplo, você pode oferecer descontos de licenciamento por volume para assinaturas que excedam certos limites de quantidade. Para ajustar o preço por usuário, use [níveis](https://docs.stripe.com/products-prices/pricing-models.md#tiered-pricing).

### Transformação de quantidades

Pode ser necessário acompanhar o uso em uma unidade de consumo diferente da utilizada para o faturamento. Por exemplo, considere um pacote de software de produtividade que cobra US$&nbsp;10 por grupo de 5 usuários ou menos que usam o produto. Sem a transformação de quantidade, a `quantity` do item de assinatura deveria ser aumentada em 1 a cada 5 usuários.

| Número de usuários | Quantidade de itens de assinatura informada à Stripe | Total |
| --- | --- | --- |
| 1 | 1 | US$&nbsp;10 |
| 3 | 1 | US$&nbsp;10 |
| 5 | 1 | US$&nbsp;10 |
| 6 | 2 | US$&nbsp;20 |
| 7 | 2 | US$&nbsp;20 |

Com o parâmetro [transform_quantity](https://docs.stripe.com/api/prices/create.md#create_price-transform_quantity), você pode instruir a Stripe a transformar a quantidade antes de aplicar o custo por unidade. A assinatura a seguir permite informar naturalmente o número atual de usuários como a `quantity` do item da assinatura. O sistema de faturamento da Stripe divide a quantidade por 5 e arredonda para cima antes de calcular o custo por unidade.

```curl
curl https://api.stripe.com/v1/prices \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "nickname=Standard Cost Per 5 Users" \
  -d "transform_quantity[divide_by]=5" \
  -d "transform_quantity[round]=up" \
  -d unit_amount=1000 \
  -d currency=usd \
  -d "recurring[interval]=month" \
  -d "recurring[usage_type]=licensed" \
  -d product={{PRODUCTIVITY_SUITE_ID}}
```

Você só pode usar `transform_quantity` com [billing_scheme=per_unit](https://docs.stripe.com/api/prices/create.md#create_price-billing_scheme), pois é incompatível com preços escalonados.

#### Arredondamento

O exemplo anterior mostrou uma assinatura que cobra por 5 usuários com arredondamento para cima, ou seja, 6 dividido por 5 resulta em uma quantidade de 2. Se você não quiser cobrar por utilização parcial (por exemplo, cobrar por gigabyte completo consumido em um serviço de Internet de banda larga), pode definir `round` como `down`.

#### Uso medido

Você também pode aplicar `transform_quantity` em conjunto com a cobrança por uso. Essa transformação se aplica a preços com `recurring[usage_type]=metered` no final de um período de cobrança da mesma forma que se aplica a `quantity` para preços com `recurring[usage_type]=licensed`.

Um serviço de e-mail de marketing que cria um preço por consumo para cobrar US$&nbsp;0,10 por 1000 e-mails enviados pode ficar assim:

```curl
curl https://api.stripe.com/v1/prices \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "nickname=Metered Emails" \
  -d "transform_quantity[divide_by]=1000" \
  -d "transform_quantity[round]=down" \
  -d unit_amount=10 \
  -d currency=usd \
  -d "recurring[interval]=month" \
  -d "recurring[usage_type]=metered" \
  -d product={{MARKETING_EMAILS_ID}}
```

Com esta assinatura, o uso pode ser relatado por e-mail e você pode cobrar US$&nbsp;0,10 do cliente por 1.000 e-mails enviados.

## Várias assinaturas

Você pode criar simultaneamente várias assinaturas para um único cliente. Use esta funcionalidade quando quiser permitir que seus clientes assinem vários produtos com períodos de serviço separados. Cada assinatura tem seu próprio período de cobrança, fatura e cobrança separados, mesmo que os preços associados tenham o mesmo período de cobrança.

> Quando você cria várias assinaturas com o mesmo preço, cada assinatura é independente, incluindo seus pagamentos e períodos de cobrança. Se isso não é o que você deseja, crie uma única assinatura usando [várias quantidades](https://docs.stripe.com/billing/subscriptions/quantities.md#setting-quantities).

### Criar várias assinaturas para um só cliente

Crie várias assinaturas para um cliente usando a API [create subscription](https://docs.stripe.com/api.md#create_subscription):

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

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

Um cliente pode assinar vários produtos, ou até mesmo um único produto, várias vezes. Cada assinatura possui um ID exclusivo e seu status é gerenciado independentemente das outras assinaturas do cliente. Cada assinatura também tem seu próprio período de cobrança independente, com base no [ciclo de faturamento](https://docs.stripe.com/billing/subscriptions/billing-cycle.md) da assinatura.

Quando um cliente tem várias assinaturas, a propriedade `subscriptions` do objeto `Customer` fornece uma lista de cada assinatura:

```json
{
  "id": "cus_4fdAW5ftNQow1a",
  "object": "customer",
  "subscriptions": {
    "object": "list",
    "data": [
      {
        "id": "sub_9RRl3XywPg2P5H",
        "object": "subscription",
        ...
        "price": {
          "id": "price_CZB2krKbBDOkTS",
          "object": "price",
          "amount": 2995,
          ...
        }
      },
      {
        "id": "sub_9RRlIq2t9obFLI",
        "object": "subscription",
        ...
        "price": {
          "id": "price_CZB1AX3KOacNJw",
          "object": "price",
          "amount": 1295,
          ...
        }
      }
    ],
    ...
  },
  ...
}
```

## See also

- [Alterar assinaturas](https://docs.stripe.com/billing/subscriptions/change.md)
- [Usar períodos de avaliação](https://docs.stripe.com/billing/subscriptions/trials/free-trials.md)
- [API Subscriptions](https://docs.stripe.com/api.md#subscriptions)
