Payment links

Uma página de pagamento reutilizável e de preço fixo no aliquot.cc. Cada pagamento iniciado nela cria uma nova fatura.

Última atualização 27 de out. de 2026

Um payment link é uma página pública com um título, um preço em USD e os pares de rede e token que você aceita. Compartilhe a URL dele em qualquer lugar. Cada vez que um comprador inicia um pagamento, o Aliquot cria uma nova fatura em AWAITING_SELECTION e envia o comprador para o hosted checkout dessa fatura, onde ele escolhe um dos pares aceitos.

Use um payment link quando o preço é fixo e você não precisa criar uma fatura por pedido a partir do seu servidor. Use faturas quando precisar de splits, do seu próprio ID de pedido ou de um valor por comprador.

POST /api/v1/crypto/payment-links — permissão crypto-links:create. Sem Idempotency-Key.

curl -X POST https://api.aliquot.cc/api/v1/crypto/payment-links \
  -H "Authorization: Bearer $ALIQUOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Halden Grotesk — Desktop license",
    "description": "Five desktop seats, OTF and TTF.",
    "amount": "49.00",
    "accepted_pairs": [
      { "network": "POLYGON_AMOY", "token": "USDC" },
      { "network": "BASE_SEPOLIA", "token": "USDC" }
    ],
    "merchant": "halden_type",
    "redirect_url": "https://shop.example.com/thanks"
  }'
CampoTipoObrigatórioDescrição
titlestringSim1–200 caracteres.
amountstringSimPreço em USD, no máximo duas casas decimais, mínimo "1.00".
accepted_pairsarraySim1–8 pares { "network", "token" }, sem duplicados, todos em redes do Sandbox (mode: "test" na API) ou todos em redes Live. Isso decide o ambiente do link, que não pode mudar depois.
descriptionstring ou nullNãoAté 2000 caracteres.
merchantstringNãoReferência da conta MERCHANT que vende. Se omitido, a sua conta platform. Não pode ser alterado depois.
fee_payerstring ou nullNãoCUSTOMER ou MERCHANT. null ou omitido: o padrão da organização (CUSTOMER) no momento de cada checkout.
markup_percentnumber ou nullNão0–20, no máximo duas casas decimais. null ou omitido: o padrão da organização (0) no momento de cada checkout.
fulfillment_typestringNãoNONE (padrão), SECRET_TEXT, REDIRECT, FILE_DOWNLOAD ou WEBHOOK_ONLY. Veja Entrega.
fulfillment_payloadstring ou nullPara SECRET_TEXT, REDIRECT, FILE_DOWNLOADAté 4000 caracteres. Para REDIRECT e FILE_DOWNLOAD, uma URL http ou https; qualquer outra coisa é um 422 neste campo.
redirect_urlstring ou nullNãoCopiado para cada fatura que o link cria.
activebooleanNãoPadrão true.

Um link do Sandbox usa as redes de teste; um link cujos pares são todos de redes Live recebe pagamentos reais.

Entrega

A entrega (fulfilment) é o que o comprador recebe no comprovante do checkout quando a fatura está PAID ou OVERPAID:

fulfillment_typeO comprovante mostra
NONENada.
SECRET_TEXTfulfillment_payload como texto, com um botão para copiar: uma chave de licença, um código de convite, instruções.
REDIRECTUm botão que abre fulfillment_payload, a URL de uma página de acesso.
FILE_DOWNLOADUm botão que abre fulfillment_payload, uma URL de download. O Aliquot não hospeda o arquivo.
WEBHOOK_ONLYNada. Você entrega a partir do seu handler de invoice.paid.
  • Nunca antes do pagamento. Em qualquer outro status, o fulfillment da visão pública é null; o payload não chega ao navegador.
  • Fixa por fatura. A entrega é copiada para a fatura quando o comprador inicia o checkout. Editar o link muda o que os checkouts seguintes entregam, nunca o comprovante de uma fatura que já existe.
  • Comprovante público. Qualquer pessoa com o ID da fatura pode abrir o comprovante, como o resto do checkout. Para algo que precisa ficar vinculado a um único comprador, use uma URL assinada que expire ou entregue a partir do seu webhook.
  • Sem retorno automático. Um comprovante com entrega não faz a contagem regressiva para redirect_url; o comprador recebe um botão para voltar.

A visão pública (GET /api/v1/public/pay/{id} e o seu stream) a traz assim:

"fulfillment": { "type": "FILE_DOWNLOAD", "payload": "https://files.example.com/halden-grotesk.zip" }

Todos os webhooks invoice.* trazem payment_link_id, então seu handler de invoice.paid sabe de qual link o pagamento veio sem outra requisição.

201 Created devolve:

{
  "id": "plink_01JB7RZ4C2W8M6Q1N3H5T7V9XA",
  "slug": "k7m2q9x4hd",
  "url": "https://aliquot.cc/l/k7m2q9x4hd",
  "livemode": false,
  "title": "Halden Grotesk — Desktop license",
  "description": "Five desktop seats, OTF and TTF.",
  "amount": "49.00",
  "currency": "USD",
  "merchant": { "reference": "halden_type", "name": "Halden Type" },
  "accepted_pairs": [
    { "network": "POLYGON_AMOY", "token": "USDC" },
    { "network": "BASE_SEPOLIA", "token": "USDC" }
  ],
  "fee_payer": null,
  "markup_percent": null,
  "fulfillment_type": "NONE",
  "fulfillment_payload": null,
  "redirect_url": "https://shop.example.com/thanks",
  "active": true,
  "sales_count": 0,
  "created_at": "2026-10-27T14:00:00.000Z",
  "updated_at": "2026-10-27T14:00:00.000Z"
}

O Aliquot gera o slug; compartilhe a url. sales_count conta as faturas deste link que chegaram a PAID ou OVERPAID.

Listar, consultar e atualizar

EndpointPermissãoDescrição
GET /api/v1/crypto/payment-links?mode=testcrypto-links:readTodos os links de um ambiente, { "items": [...] }. mode tem como padrão o ambiente da sua key (live com uma key legada).
GET /api/v1/crypto/payment-links/{id}crypto-links:readUm link.
PATCH /api/v1/crypto/payment-links/{id}crypto-links:updateAltere qualquer um de title, description, amount, accepted_pairs, fee_payer, markup_percent, fulfillment_type, fulfillment_payload, redirect_url, active. Os campos que aceitam null são limpos com null. Novos accepted_pairs precisam permanecer no ambiente do link.

Não há exclusão. Para tirar um link do ar, defina "active": false: a página dele responde 404 e ele não cria novas faturas. As faturas que ele já criou não são afetadas. As alterações valem para os checkouts iniciados depois delas.

O que um checkout cria

Quando um comprador inicia um pagamento em https://aliquot.cc/l/{slug}, a nova fatura recebe:

  • o title, a description, o amount, o merchant e a redirect_url do link;
  • o fee_payer e o markup_percent do link, ou os padrões da organização quando eles são null;
  • nenhum splits, nenhum merchant_order_id, nenhum buyer_email e nenhum metadata;
  • payment_link_id com o id do link, e uma cópia da entrega do link;
  • o ambiente do link, e a janela de pagamento padrão da organização (30 minutos), que recomeça inteira quando o comprador escolhe um par.

Essas faturas se comportam como qualquer outra: aparecem em GET /api/v1/crypto/invoices e enviam os mesmos webhooks.

Endpoints públicos

A página do link usa dois endpoints sem autenticação, que você pode chamar para colocar um botão de pagamento na sua própria página:

EndpointDescrição
GET /api/v1/public/links/{slug}{ "slug", "livemode", "title", "description", "amount", "currency", "merchant_name", "platform_name", "allowed_pairs" }. 404 se o link não existe ou está inativo.
POST /api/v1/public/links/{slug}/checkoutCria a fatura e responde 201 com { "invoice_id", "pay_url" }. Envie o comprador para pay_url.

allowed_pairs lista os pares aceitos que podem receber pagamentos neste momento.