Como Pausar ou Cancelar Assinaturas de Clientes via API no 4Geeks Payments
Gerenciar o ciclo de vida do cliente de forma eficiente é crucial para empresas modernas de SaaS e baseadas em assinaturas. Embora o 4Geeks Console forneça uma interface intuitiva para gestão manual, a escalabilidade das operações muitas vezes exige controle programático. O 4Geeks Payments oferece uma API robusta que permite aos desenvolvedores pausar ou cancelar assinaturas automaticamente, integrando-se perfeitamente aos seus próprios portais de clientes ou ferramentas administrativas internas.
Este artigo orienta você pelas etapas técnicas para pausar ou cancelar assinaturas de clientes usando a API do 4Geeks Payments, garantindo que sua lógica de faturamento permaneça precisa e a experiência do seu cliente seja fluida.
Pré-requisitos¶
Antes de interagir com a API, certifique-se de ter o seguinte:
- Conta Ativa no 4Geeks Payments: Você deve ter o módulo 4Geeks Payments habilitado em sua conta.
- Credenciais de API: Sua API Key e Secret são necessários para a autenticação. Eles podem ser gerados na seção Developers do 4Geeks Console.
- ID da Assinatura: O identificador exclusivo (
subscription_id) da assinatura específica do cliente que você deseja modificar. - Cliente de API: Uma ferramenta como Postman, cURL ou sua linguagem de programação de preferência (Python, Node.js, etc.) para enviar solicitações HTTP.
Instruções Passo a Passo¶
Passo 1: Autenticar sua Solicitação¶
Todas as solicitações de API para o 4Geeks Payments devem ser autenticadas para garantir a segurança. Você se autenticará usando um Bearer Token no cabeçalho da sua solicitação.
- Localize suas credenciais de API na aba Settings > Developers do painel.
- Inclua o seguinte cabeçalho em sua solicitação HTTP:
Authorization: Bearer SUA_CHAVE_API
Passo 2: Recuperar o ID da Assinatura¶
Para modificar uma assinatura, primeiro você precisa identificá-la. Se você ainda não possui o ID armazenado em seu banco de dados, pode recuperá-lo listando as assinaturas de um cliente específico.
- Envie uma solicitação
GETpara o endpoint:https://api.4geeks.io/v1/subscriptions. - Filtre pelo e-mail do cliente ou pelo ID exclusivo do cliente.
- Na resposta JSON, copie a string
id(ex:sub_1a2b3c4d5e).
Passo 3: Pausar uma Assinatura¶
A pausa é ideal para suspensões temporárias em que você espera que o cliente retorne. Ela interrompe o ciclo de faturamento sem excluir o objeto de assinatura, permitindo uma reativação fácil.
- Endpoint: Prepare uma solicitação
POSTpara:https://api.4geeks.io/v1/subscriptions/{subscription_id}/pause - Parâmetros do Corpo (Opcional): Você pode especificar um parâmetro
resume_at(Unix timestamp) se desejar que a assinatura seja reativada automaticamente em uma data específica. - Executar: Envie a solicitação.
- Verificação: A API retornará o objeto de assinatura com o status
paused. Certifique-se de que seu sistema interno atualize o nível de acesso do usuário conforme necessário.
Passo 4: Cancelar uma Assinatura¶
O cancelamento encerra permanentemente o ciclo de faturamento. Dependendo da sua configuração, isso pode acontecer imediatamente ou ao final do período de faturamento atual.
- Endpoint: Prepare uma solicitação
DELETE(ouPOST, dependendo da configuração específica) para:https://api.4geeks.io/v1/subscriptions/{subscription_id}/cancel - Parâmetros do Corpo:
cancel_at_period_end(booleano): Defina comotruepara permitir que o cliente termine o mês que já pagou. Defina comofalsepara revogação imediata.
- Executar: Envie a solicitação.
- Verificação: A API retorna o objeto com o status
canceled(ouactivecom um timestampcancel_atse você optou por cancelar ao final do período).
Casos de Uso Comuns¶
Cenário 1: “Pausa Sazonal”¶
Situação: Você gerencia uma plataforma de educação usando o 4Geeks Payments e um aluno deseja congelar sua conta durante as férias de verão em vez de cancelar totalmente. Aplicação: Seu portal do aluno dispara o endpoint de Pausa (/pause) com uma data resume_at definida para 1º de setembro. Resultado: O faturamento para imediatamente. Em 1º de setembro, a API reativa automaticamente a assinatura e tenta realizar o pagamento, retendo o cliente sem intervenção manual.
Cenário 2: Gestão Automatizada de Evasão (Churn)¶
Situação: Um cliente clica em “Cancelar Conta” no painel do seu SaaS. Aplicação: Seu backend dispara o endpoint de Cancelamento (/cancel) com cancel_at_period_end: true. Resultado: O cliente mantém o acesso até que seu prazo pago expire. O 4Geeks Payments garante que nenhuma fatura futura seja gerada e o status da assinatura eventualmente transita para canceled automaticamente, mantendo seus registros financeiros precisos.
Solução de Problemas¶
Problema 1: Erro 401 Unauthorized¶
- Causa: Sua API Key está ausente, incorreta ou expirou.
- Solução: Verifique o cabeçalho
Authorization. Gere novas chaves no 4Geeks Console, se necessário.
Problema 2: 404 Not Found¶
- Causa: O
subscription_idfornecido não existe ou pertence a um ambiente diferente (ex: Sandbox vs. Produção). - Solução: Verifique se o ID corresponde ao ambiente que você está consultando. Certifique-se de não estar tentando acessar um ID Live no ambiente Sandbox.
Problema 3: Conflito de Status de Assinatura (409)¶
- Causa: Você está tentando pausar uma assinatura que já está cancelada, ou cancelar uma assinatura que já está pausada sem reativá-la primeiro.
- Solução: Sempre verifique o campo
statusdo objeto de assinatura via uma solicitaçãoGETantes de tentar uma mudança de estado para garantir que a ação seja válida.
Conclusão¶
Automatizar a gestão de assinaturas via API capacita sua empresa a lidar com bases de clientes crescentes com precisão. Ao integrar a lógica de pausa e cancelamento diretamente em suas aplicações, você reduz a carga de trabalho da equipe de suporte e oferece uma experiência mais fluida para seus usuários.
Para configurações mais avançadas, como lidar com o rateio (proration) durante cancelamentos ou configurar webhooks para mudanças de status, explore a Documentação para Desenvolvedores no 4Geeks Console.
- Ainda tem dúvidas? Pergunte na comunidade..
- Consulte el changelog.