send_invoice: no próximo ciclo a Chargefy gera uma fatura em aberto
(cobrável) e a assinatura continua ativa. O cartão pode ser coletado depois.
A importação é acionada quando você envia
backdate_start_date no
POST /v1/subscriptions, sempre com proration_behavior: "none". Isso é o que
diz à Chargefy: “não cobre o período atual, só assuma daqui pra frente”.As três formas de importar
| O estado da assinatura na origem | Campo que você envia | Como ela nasce na Chargefy |
|---|---|---|
| Ativa | billing_cycle_anchor (próxima cobrança) | active |
| Em período de teste | trial_end (fim do trial) | trialing |
| Já cancelada (histórico) | canceled_at (data do cancelamento) | canceled (registro inerte) |
Passo a passo
Crie os customers
Cada assinatura precisa de um customer. Se você ainda não trouxe seus
clientes, crie-os primeiro. Guarde o id do seu sistema em
metadata para
correlacionar depois.Crie os produtos e preços
A assinatura aponta para um
price recorrente. Cadastre seus preços uma vez
(ou envie price_data inline no item, se preferir não manter um catálogo).Importe cada assinatura
Envie a assinatura com as datas reais do seu sistema. Use o id da
assinatura na origem como A resposta volta com a assinatura já
Idempotency-Key: assim, se você rodar a
migração de novo, a mesma assinatura nunca é duplicada.active, latest_invoice em null
(nenhuma cobrança foi feita) e o período preservado.Para os outros estados, troque billing_cycle_anchor pelo campo
correspondente:Deixe a Chargefy assumir no próximo ciclo
Nada é cobrado no momento da importação. Na data que você informou como
âncora (
billing_cycle_anchor, ou o fim do trial), a Chargefy gera a primeira
fatura do novo ciclo automaticamente:- Sem cartão (
send_invoice): a fatura nasce em aberto e cobrável. A assinatura continuaactive. Envie o link de pagamento ao cliente ou colete um cartão antes da próxima cobrança. - Com cartão (
charge_automatically): a Chargefy cobra automaticamente.
canceled são apenas histórico: não geram
cobrança, job nem webhook.De-para das datas
| No seu sistema atual | Campo no import | Vira na Chargefy |
|---|---|---|
| Início do período atual (já pago) | backdate_start_date | current_period_start, start_date |
| Próxima cobrança | billing_cycle_anchor | current_period_end, next_billing_at |
| Fim do trial (se em trial) | trial_end | current_period_end |
| Data do cancelamento (se cancelada) | canceled_at | canceled_at, ended_at |
| Id da assinatura na origem | Idempotency-Key + metadata.external_id | idempotência + correlação |
Regras de validação
O import recusa datas incoerentes com um erro400 claro, sem criar nada:
| Regra | Motivo |
|---|---|
backdate_start_date deve estar no passado | É quando o período atual começou. |
billing_cycle_anchor deve estar no futuro | É a próxima cobrança. |
trial_end deve estar no futuro | O trial ainda está rodando. |
canceled_at deve estar no passado | A assinatura já foi cancelada. |
proration_behavior deve ser none | Confirma que o período atual não é cobrado de novo. |
Boas práticas
- Use o id da assinatura na origem como
Idempotency-Key. Migração em lote pode ser repetida sem medo de duplicar. Veja requisições idempotentes. - Guarde o id de origem também em
metadata.external_idpara correlacionar seus registros depois da migração. - Migre com folga: evite importar muito perto da data da próxima cobrança, para ter tempo de coletar o cartão antes do primeiro ciclo na Chargefy.
Próximos passos
Criar assinatura
Contrato completo do
POST /v1/subscriptions, incluindo os campos de import.Requisições idempotentes
Como o header
Idempotency-Key torna a migração em lote segura.Criar customer
Traga seus clientes antes de importar as assinaturas.
Criar preço
Cadastre os preços recorrentes que as assinaturas vão usar.

