Guias
Acompanhar pagamentos
Como saber que o dinheiro chegou: status, consulta periódica e a prova na XRPL.
Ainda não há webhooks. Para saber que um link foi pago, consulte GET /invoices/{id}: cada consulta relê a XRPL, e a plataforma também confere tudo sozinha a cada 15 segundos.
Status de um link
| Status | O que significa |
|---|---|
open | Aguardando pagamento. |
paid | Pago direto na sua carteira. É definitivo. |
locked | Pago com escrow; o valor está travado na XRPL. |
releasing › released | Quem pagou liberou o escrow; o XRP está na sua carteira. |
refunding › refunded | O prazo do escrow passou sem liberação; o valor voltou para quem pagou. |
expired | Passou de expires_at sem pagamento. |
cancelled | Você cancelou antes do pagamento. |
Consultar até pagar
const API = "https://api.pineplechain.com/v1"
const headers = { "x-api-key": process.env.PINEPLECHAIN_API_KEY }
async function waitUntilPaid(id) {
for (;;) {
const link = await fetch(`${API}/invoices/${id}`, { headers }).then((r) => r.json())
if (link.status === "paid" || link.status === "released") return link // pago
if (["expired", "cancelled", "refunded"].includes(link.status)) throw new Error(link.status)
await new Promise((r) => setTimeout(r, 3000))
}
}Intervalo
Consultar a cada 3 a 5 segundos acompanha o ritmo da XRPL e fica bem abaixo do limite de 120 chamadas por minuto.A prova na XRPL
Quando o link é pago, o campo paid traz o hash da transação e o link do explorador. O valor em delivered é o que de fato chegou, conferido no ledger validado.
"paid": {
"tx_hash": "9C1F…E4A2",
"ledger_index": 91234567,
"payer": "rH4kPz…9tQe",
"delivered": { "value": "250", "asset": { "type": "XRP" } },
"at": "2026-10-30T14:02:11.000Z",
"explorer_url": "https://livenet.xrpl.org/transactions/9C1F…E4A2"
}