Skip to main content
Cria um payment link — uma URL pública compartilhável. A cada clique de um comprador, uma nova 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. line_items é obrigatório. O link é reutilizável e não expira: nasce com is_active: true e só sai do ar quando você desativar ou deletar. A experiência do checkout vem do Checkout Builder da organização, não do payload do link. Para cobrar uma invoice existente, não crie um payment link: compartilhe invoice.hosted_invoice_url, retornado pelos endpoints de invoices.

Autenticação

Aceita dois tipos de API key: O valor do header Organization deve ser uma organização conectada ativa vinculada à plataforma; caso contrário retorna 403.

Attributes

boolean
default:"false"
Quando true, o checkout das sessões geradas por este link mostra o campo de código de desconto e aceita o pré-preenchimento de código pela URL (?prefilled_promo_code=…). Veja Parâmetros de URL.
string
Pra onde o comprador é redirecionado se cancelar/abandonar o checkout.
string
ID de um desconto a aplicar automaticamente em todas as sessões geradas.
boolean
default:"false"
Quando true, o comprador cobre a taxa da organização: o total é acrescido do repasse para que a organização receba líquido o valor da venda. Vale para qualquer método escolhido pelo comprador, somente em cobrança avulsa: um link com item recorrente não aceita repasse e a criação retorna 400. Veja Repassar a tarifa de venda ao comprador.
string
Nome interno do link (visível só pra organização). Não aparece pro comprador.
array
required
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; os dois juntos ou nenhum retorna 400.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 entre product_id e product_data deve acompanhá-lo — os dois juntos ou nenhum retorna 400.
object
Objeto chave-valor livre. Cada session gerada do link recebe esse metadata copiado. Padrão: {}.
string
default:"always"
if_required deixa o comprador iniciar a assinatura sem informar forma de pagamento — use junto de subscription_data.trial_period_days para oferecer avaliação gratuita sem cartão. always sempre coleta. Só vale para link recorrente; em link avulso retorna 400.
object
Configuração da assinatura que o link vai criar. Copiada para cada session gerada. Só vale para link recorrente; em link avulso retorna 400.
string
Pra onde o comprador é redirecionado após pagamento aprovado.

Cenários de line_items

Existem três formas válidas de descrever um item. Use a mais idiomática pro seu caso. Caminho mais curto — e também o menor request válido: só line_items. Resolve produto, preço e (se for o caso) recorrência automaticamente a partir do price_id.
Quando o 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.
Pra que o link seja recorrente, adicione 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.
Os cenários acima cobrem só line_items. Um link de produção normalmente também define para onde o comprador volta, se repassa taxas e a chave de correlação com o seu sistema. Esses campos são opcionais.
discount_id aplica o desconto direto no checkout, sem o comprador digitar código. O desconto precisa estar ativo, dentro da validade e compatível com a moeda dos itens — caso contrário a criação falha com 400.

Como plataforma (em nome de uma organização conectada)

Adicione o header Organization apontando pra organização conectada. O body é idêntico aos cenários acima — só a chave (platform_admin) e o header Organization mudam.

O que a Chargefy resolve sozinha

  • url pública do link é gerada na criação — é só compartilhar. Cada clique materializa uma checkout.session nova copiando line_items e metadata.
  • is_active nasce true e o link não expira. Ele só para de aceitar cliques quando você desativa (update ou delete com histórico).
  • mode das sessões geradas é derivado dos itens: qualquer item recorrente → subscription; nenhum → payment.
  • Aparência e comportamento do checkout vêm da única configuração atual da organização e não são copiados para o link.

Resposta

200 OK com o objeto canônico do payment link.
string
Identificador, prefixo plink_.
string
Sempre payment_link.
string | null
URL de cancelamento configurada. null se não enviado.
string
ISO 8601.
string | null
ID do desconto auto-aplicado, ou null.
boolean
true quando o comprador cobre a taxa da organização.
boolean
true enquanto o link aceita cliques. Vira false quando desativado via update ou delete com histórico, e cliques retornam 404. Sessões já materializadas continuam vivas.
string
Nome interno (visível só pra organização). null se não enviado.
array
Itens fixados. Cada session gerada do link copia 1:1.
boolean
Indica se o link foi criado em modo live.
object
Metadata configurada.
string
always ou if_required. Cada session gerada nasce com esse valor.
object
Configuração da assinatura fixada no link. {} quando o link não é recorrente ou não configura nada.
string | null
URL de sucesso configurada. null se não enviado.
string | null
ISO 8601 da última edição, ou null se nunca editado.
string
URL pública pra compartilhar com compradores. Cada clique materializa uma checkout.session.

Erros comuns

Webhooks

Cada criação dispara o evento payment.link.created para todos os endpoints de webhook ativos da organização dona e das plataformas vinculadas a ela. Payload é o mesmo objeto retornado pelo POST em data.object, dentro do payload Standard Webhooks ({ id, object: "event", created_at, data: { object }, livemode, organization, type }).