Recursos Extras — Cobrança Recorrente (Assinaturas)
Confira alguns recursos extras para Assinaturas
Dê autonomia aos assinantes permitindo configurar a assinatura do jeito que eles quiserem.
Alterar Data de Cobrança
Permita que o usuário altere a data de cobrança de sua assinatura. Para isso:
- Utilize o endpoint Editar Assinatura — 
PUT/v1/subscriptions/{id} - Informe o parâmetro 
expires_atno body da requisição para a data escolhida - No URL (path) substitua 
{id}pelo ID da Assinatura - Faça a requisição
 
Requisição exemplo
curl --request PUT \
     --url 'https://api.iugu.com/v1/subscriptions/B3F2FE4AA10A433ABB5A1B11C5882C00?api_token=your_api_token' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "expires_at": "2024-09-25"
}
'Importante ⚠️
O expires_at será a data da expiração e também da próxima cobrança.
Adicionar/remover itens
Permita que o usuário adicione ou remova itens de sua assinatura. Para isso:
Adicionar ➕
- Utilize o endpoint Editar Assinatura — 
PUT/v1/subscriptions/{id}. - No body da requisição, informe o objeto 
subitemse os parâmetros:descriptionprice_centsquantity
 - No URL (path) substitua 
{id}pelo ID da Assinatura. - Faça a requisição
 
Requisição exemplo
{
  "subitems": [
    {
      "description": "Nome do Item",
      "price_cents": "200",
      "quantity": "1",
      "recurrent": false
    }
  ]
}
Será criado um itemQuando este objeto é utilizado, é retornado o id deste item. Guarde-o para removê-lo.
Remover ❌
- Ainda no mesmo endpoint.
 - No body da requisição, informe o objeto 
subiteme os parâmetros:id_destroy
 - No URL (path) substitua 
{id}pelo ID da Assinatura. - Faça a requisição
 
Requisição exemplo
{
  "subitems": [
    {
      "id": "5E252FE207F14F4E9AF333694252B2B3",
      "_destroy": true
    }
  ]
}Adicionar/alterar/remover Método de Pagamento
Permita o usuário editar seus métodos de pagamento de sua assinatura. Antes, certifique-se de seguir as etapas de Tokenização de Cartão de Crédito.
Após isso, continue com estas:
Adicionar ➕
- Utilize o endpoint Criar Forma de Pagamento — 
POST/v1/customers/{customer_id}/payment_methods - No body da requisição, além dos parâmetro 
descriptionetoken, certifique-se de enviarset_as_default: true 
Este cartão será definido como padrão e, os próximos ciclos, serão cobrados nele.
Alterar 📝
- Utilize o mesmo endpoint e certifique-se de enviar 
set_as_default: true. 
Então, este assumirá as próximas cobranças.
Remover ❌
- Utilize o endpoint Remover Forma de Pagamento — 
DELETE/v1/customers/{customer_id}/payment_methods 
O método será deletado e, se o usuário quiser utilizá-lo novamente, deverá inserir os dados do cartão novamente.
Suspender Assinatura quando fatura é expirada
Quando o usuário está com uma Assinatura ativa, recebe uma fatura, não paga e ela é expirada (status expired), há a opção de suspendê-la por inadimplência.
Para isso, durante a Criação da Assinatura, informe o parâmetro suspend_on_invoice_expired: true.
Reativar Assinatura
Não é possível pagar uma Fatura expirada, então, para o cliente reativar seu acesso, siga as etapas a seguir:
- Utilize o endpoint Ativar Assinatura — 
POST/v1/subscriptions/{id}/activate. - No URL (path) substitua 
{id}pelo ID da Assinatura. - Será gerada uma Fatura e o Cliente deverá pagá-la.
 - Após o pagamento a assinatura é reativada.
 
Desativar lembrete por e-mail sobre vencimento de fatura
Por padrão, são enviados e-mails de lembrete no e-mail do cliente avisando-o sobre o vencimento da fatura. Para desativá-lo, siga esses passos:
- Utilize o endpoint Editar Assinatura — 
PUT/v1/subscriptions/{id}. - No URL (path) substitua 
{id}pelo ID da Assinatura. - E, no body da requisição, informe o parâmetro 
ignore_due_email:true. 
Assinatura por Créditos
Há modelos de negócios que utilizam créditos (moedas/coins). Para essas assinaturas, durante a criação da Assinatura, no body, informe os parâmetros a seguir:
| Parâmetro | Descrição | 
|---|---|
| credits_based | Define se é uma Assinatura baseada em Créditos. | 
| price_cents | Valor da Assinatura. | 
| credits_cycle | Quantidade de créditos que serão adicionados a cada ciclo. | 
| credits_min | Valor mínimo para recarga (cobrança) automática dos créditos. | 
{
  "credits_based": true,
  "price_cents": 3000,
  "credits_cycle": 300,
  "credits_min": 5
}Updated 4 days ago
