Cria um payment link — uma URL pública compartilhável. A cada clique de um comprador, uma novaDocumentation Index
Fetch the complete documentation index at: https://docs.chargefy.io/llms.txt
Use this file to discover all available pages before exploring further.
checkout.session é materializada, copiando os line_items e metadata do link. Use pra bio do Instagram, e-mail marketing, QR codes, “comprar agora” em landing page.
Autenticação
Aceita dois tipos de API key:| Token | Header | Comportamento |
|---|---|---|
Organization API key (write ou admin) | Authorization: Bearer ch_live_... | Cria pra própria org da key. Header Organization é proibido (400). |
Platform API key (platform_admin) | Authorization: Bearer ch_live_... + Organization: <organization_id> | Cria em nome da sub-org indicada. Sem Organization → 403. |
Organization deve ser uma sub-org ativa vinculada à platform; caso contrário retorna 403.
Corpo da Requisição
Itens do link. Cada item aponta pra um preço do catálogo (
price_id) ou descreve um preço inline (price_data) — exatamente um dos dois.Restrições de integridade aplicadas em todo o array:- todos os itens compartilham a mesma
currency; - ou todos são recorrentes, ou nenhum é (não pode misturar);
- quando
price_dataé usado, exatamente um entreproduct_ideproduct_datadeve acompanhá-lo.
Nome interno do link (visível só pra organização). Não aparece pro comprador.
Pra onde o comprador é redirecionado após pagamento aprovado.
Pra onde o comprador é redirecionado se cancelar/abandonar o checkout.
Se o comprador pode inserir cupom no checkout.
ID de um desconto a aplicar automaticamente em todas as sessões geradas.
Quando
true, endereço de cobrança é obrigatório no checkout.Quando
true, parcelas são oferecidas sem juros pro comprador.Objeto chave-valor livre. Cada session gerada do link recebe esse
metadata copiado. Em conflito com utm_* ou reference_id da URL do clique, o valor do link prevalece.Atalho — quando enviado (
month ou year), resolve pro plano recorrente seedado da org. Mutuamente exclusivo com billing_plan_id.Resposta
201 Created com o objeto canônico do payment link.
Identificador, prefixo
plink_.Org dona do link. Em chamadas de plataforma, é a sub-org indicada no header
Organization.Nome interno (visível só pra organização).
null se não enviado.URL pública pra compartilhar com compradores. Cada clique materializa uma
checkout.session.true enquanto o link aceita cliques. Vira false após arquivamento — cliques retornam 404, mas sessões já materializadas continuam vivas.true quando criado por chave ch_live_*; false por chave ch_test_*. JWT do dashboard sempre true.URL de sucesso configurada.
null se não enviado.URL de cancelamento configurada.
null se não enviado.Se cupons são permitidos no checkout.
ID do desconto auto-aplicado, ou
null.Se endereço de cobrança é obrigatório.
Se parcelas saem sem juros.
Metadata configurado.
ISO 8601.
ISO 8601 da última edição, ou
null se nunca editado.Itens fixados. Cada session gerada do link copia 1:1.
Cenários de line_items
Existem três formas válidas de descrever um item. Use a mais idiomática pro seu caso.
(a) Preço do catálogo
Caminho mais curto. Resolve produto, preço e (se for o caso) recorrência automaticamente a partir doprice_id.
cURL
price_id referencia um preço cujo type = recurring, as sessões geradas nascem em mode: subscription sem nenhum campo extra.
(b) Produto do catálogo + preço ad-hoc
Reusa nome/descrição/imagem do produto cadastrado, mas usa um valor único pra esse link. Útil pra promoção pontual sem criar preço novo no catálogo.cURL
recurring em price_data:
(c) Produto e preço ad-hoc
Nada vem do catálogo — útil pra integrações headless que não cadastram produto.cURL
Como plataforma (em nome de uma sub-org)
Adicione o headerOrganization apontando pra sub-org. O body é idêntico aos cenários acima.
cURL
Resposta de exemplo
Resposta do cenário (a):Erros comuns
| HTTP | Razão |
|---|---|
400 | line_items ausente, vazio ou item sem price_id nem price_data. |
400 | Item com price_id e price_data enviados juntos (envie exatamente um). |
400 | price_data enviado sem product_id nem product_data — ou com ambos. Envie exatamente um. |
400 | price_data.recurring.interval inválido (use day, week, month ou year). |
400 | Mistura de itens recorrentes e únicos no mesmo link. Ou todos são recorrentes, ou nenhum. |
400 | Currency divergente entre os items. |
400 | price_id / product_id não pertence à org alvo. |
400 | Header Organization enviado com chave de organização (chave já trava na própria org). |
403 | Token de plataforma sem header Organization. |
403 | Header Organization aponta pra org que não é sub-org ativa da plataforma. |
Webhooks
Cada criação dispara o eventopayment_link.created pra todos os endpoints de webhook ativos da org dona (e das plataformas-pai dela). Payload é o mesmo objeto retornado pelo POST, embrulhado em envelope Standard Webhooks ({ type, id, created_at, data }).
