O
id identifica o customer.O e-mail é um dado de contato e pode aparecer em mais de um customer da mesma
organização. Ao criar um customer diretamente pela API, você decide quando
reutilizar um id que já conhece e quando criar outro cadastro.Como os recursos se relacionam
O
customer é o ponto de ancoragem. Métodos de pagamento salvos, assinaturas, invoices e pagamentos apontam para ele — por isso o cliente nunca some de verdade quando há histórico (veja Remover um cliente).
Anatomia do cliente
Este é o contrato público completo, retornado emcreate, get, update, itens de list e em data.object dos webhooks customer.*.
O schema público campo a campo está em Objeto customer.
O cliente não carrega
organization_id no payload — o escopo já vem da
autenticação. E não existe external_id: a correlação com o seu sistema é
via metadata (veja Correlação com o seu
sistema).Endereço de cobrança
billing_address é um objeto estruturado. Quando não-nulo, todas as chaves são retornadas — as faltantes vêm como null.
Como um cliente nasce
Há dois caminhos, e ambos chegam no mesmo objeto.1
Você cria pela API
POST /v1/customers com pelo menos email. Cada chamada de criação aceita
um novo customer, mesmo quando outro cadastro já usa o mesmo e-mail. Se
houver document, ele não pode pertencer a outro customer ativo da
organização.2
O checkout resolve sozinho no confirm
Quando o comprador confirma um checkout, a Chargefy mantém o customer fixado
na sessão. Sem customer fixado, procura primeiro um cadastro ativo com o
mesmo CPF/CNPJ e, depois, o cadastro ativo mais antigo com o mesmo e-mail,
sempre dentro da mesma organização e do mesmo ambiente. Só cria um novo
customer quando nenhum deles existe.
Para controlar sem ambiguidade qual histórico o checkout deve usar, crie a
sessão passando
customer. A busca por documento ou e-mail existe como
resolução do checkout hospedado; ela não transforma o e-mail em chave única da
API. Veja Checkout Sessions.Criar um cliente
Só oemail é obrigatório. Envie document quando precisar identificar o cliente por CPF ou CNPJ; esse campo é único por organização.
Repetir o e-mail não causa conflito. O
POST /v1/customers retorna 409 customer_document_exists somente quando o CPF/CNPJ informado já pertence a
outro customer ativo da organização.Documento (CPF/CNPJ)
document aceita apenas dígitos — máscara e pontuação são normalizadas. O document_type é opcional:
O documento é a chave soberana da identidade de pagamento. Cartões e
demais instrumentos salvos são organizados por essa identidade — documentos
diferentes resultam em identidades de pagamento diferentes, com instrumentos
salvos separados. Isso protege contra atrelar um cartão à pessoa errada. Por
isso o documento entra no fluxo de cobrança, e não apenas no cadastro do
cliente.
Atualizar um cliente
O update é merge: você envia só os campos que mudam, e os ausentes ficam como estão. É umPOST no próprio recurso (não há PUT/PATCH na API).
Correlação com o seu sistema
Não existe campoexternal_id no cliente. Para amarrar um customer ao ID do seu próprio sistema, use metadata — um objeto livre string → string que a Chargefy guarda e devolve em toda resposta e em todos os webhooks daquele cliente.
metadata é sempre opcional e nunca interpretado pela Chargefy — é só
armazenado e ecoado de volta. Use qualquer chave que faça sentido para você
(reference_id, internal_user_id, crm_account).Métodos de pagamento
Os métodos de pagamento salvos pertencem ao cliente, mas não vêm embutidos no objetocustomer. Eles são lidos por um endpoint próprio.
O cliente não expõe um campo de método de pagamento padrão. Para listar ou
inspecionar os cartões e demais instrumentos de um cliente, use o recurso
Métodos de pagamento.
Listar e filtrar
GET /v1/customers lista os clientes ativos da organização, do mais recente para o mais antigo, com paginação por cursor (starting_after, ending_before, limit). Há um filtro por email.
Remover um cliente
DELETE /v1/customers/{id} expressa “tirar de uso”. Internamente é um soft-delete: o registro permanece no banco para preservar o histórico financeiro (pagamentos, assinaturas, invoices), mas some de todos os caminhos de leitura — get, list e qualquer fluxo público.
O que o parceiro vê
O que o parceiro vê
A resposta é
{ "id": "cus_kmCDW4tZJsBZcEko", "object": "customer", "deleted": true }. Para quem consome a API, o cliente deixou de existir: consultá-lo depois retorna 404 e ele não aparece mais na listagem.O que acontece por baixo
O que acontece por baixo
O histórico associado (vendas, assinaturas, invoices) continua íntegro para auditoria e conciliação. O cliente apenas fica invisível na API; nenhum registro financeiro é apagado.
Depois da remoção, aquele
id deixa de estar disponível nos caminhos
públicos. Você pode criar outro customer com o mesmo e-mail, assim como já
pode fazer enquanto existem outros customers ativos com esse endereço.Webhooks
Mudanças no cliente disparam eventos no payload padrão. O payload sempre carrega ocustomer completo em data.object; eventos de update também trazem data.previous_attributes com os valores anteriores dos campos alterados.
Autenticação e escopos
As operações exigem escopo
read para GET e write para POST/DELETE.
Próximos passos
Objeto customer
Schema público completo e campos retornados.
Criar cliente (API)
Contrato do
POST /v1/customers.Métodos de pagamento
Cartões e instrumentos salvos do cliente.
Assinaturas
Como o cliente vira uma cobrança recorrente.

