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.
Criar um link
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"
}'| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
title | string | Sim | 1–200 caracteres. |
amount | string | Sim | Preço em USD, no máximo duas casas decimais, mínimo "1.00". |
accepted_pairs | array | Sim | 1–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. |
description | string ou null | Não | Até 2000 caracteres. |
merchant | string | Não | Referência da conta MERCHANT que vende. Se omitido, a sua conta platform. Não pode ser alterado depois. |
fee_payer | string ou null | Não | CUSTOMER ou MERCHANT. null ou omitido: o padrão da organização (CUSTOMER) no momento de cada checkout. |
markup_percent | number ou null | Não | 0–20, no máximo duas casas decimais. null ou omitido: o padrão da organização (0) no momento de cada checkout. |
fulfillment_type | string | Não | NONE (padrão), SECRET_TEXT, REDIRECT, FILE_DOWNLOAD ou WEBHOOK_ONLY. Veja Entrega. |
fulfillment_payload | string ou null | Para SECRET_TEXT, REDIRECT, FILE_DOWNLOAD | Até 4000 caracteres. Para REDIRECT e FILE_DOWNLOAD, uma URL http ou https; qualquer outra coisa é um 422 neste campo. |
redirect_url | string ou null | Não | Copiado para cada fatura que o link cria. |
active | boolean | Não | Padrã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_type | O comprovante mostra |
|---|---|
NONE | Nada. |
SECRET_TEXT | fulfillment_payload como texto, com um botão para copiar: uma chave de licença, um código de convite, instruções. |
REDIRECT | Um botão que abre fulfillment_payload, a URL de uma página de acesso. |
FILE_DOWNLOAD | Um botão que abre fulfillment_payload, uma URL de download. O Aliquot não hospeda o arquivo. |
WEBHOOK_ONLY | Nada. Você entrega a partir do seu handler de invoice.paid. |
- Nunca antes do pagamento. Em qualquer outro status, o
fulfillmentda 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.
O objeto link
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
| Endpoint | Permissão | Descrição |
|---|---|---|
GET /api/v1/crypto/payment-links?mode=test | crypto-links:read | Todos 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:read | Um link. |
PATCH /api/v1/crypto/payment-links/{id} | crypto-links:update | Altere 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, adescription, oamount, omerchante aredirect_urldo link; - o
fee_payere omarkup_percentdo link, ou os padrões da organização quando eles sãonull; - nenhum
splits, nenhummerchant_order_id, nenhumbuyer_emaile nenhummetadata; payment_link_idcom oiddo 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:
| Endpoint | Descriçã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}/checkout | Cria 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.