API
Paginação
Listas por cursor, do mais novo ao mais antigo.
Toda rota de lista (GET /v1/orders, GET /v1/customers…) devolve no máximo limit itens, do mais novo ao mais antigo:
{ "data": [ { "id": "ord_..." } ], "hasMore": true }| Parâmetro | Padrão | O que faz |
|---|---|---|
limit | 20 | Itens por página, de 1 a 100. |
startingAfter | Id do último item da página atual: traz a próxima página (itens mais antigos). | |
endingBefore | Id do primeiro item da página atual: traz a página anterior (itens mais novos). |
Use um dos dois cursores por vez: mandar os dois dá 400 invalid_cursor. Um limit fora de 1 a 100 (ou que não seja número inteiro) dá 422 validation_failed, sem ajuste automático. Enquanto hasMore for true, há mais páginas.
Filtros
Os filtros entram na mesma query string e se combinam com os cursores. Cada lista tem os seus, descritos na referência. Os de Listar pedidos:
| Parâmetro | O que filtra |
|---|---|
status | Um status exato: OPEN, PAID, PARTIALLY_REFUNDED, REFUNDED, EXPIRED, CANCELED. |
state | Grupo: paid (pago em algum momento), open (esperando pagamento), closed (expirado ou cancelado). |
createdFrom / createdTo | Criação, em ISO 8601 (from inclusivo, to exclusivo). |
paidFrom / paidTo | Pagamento, no mesmo formato. |
q | Busca por id do pedido, externalId, jogador, e-mail ou nome do comprador, ou nome do item. |
source | Origem: STOREFRONT, API, PAYMENT_LINK, PLUGIN, DISCORD, SUBSCRIPTION, MANUAL. |
method | Como foi pago: PIX, PIX_AUTOMATIC, CARD, BOLETO. |
customerId, paymentLinkId, subscriptionId | Pedidos daquele cliente, link ou assinatura. |
delivery | Entrega da compra pending (na fila) ou failed. |
dispute | open: com disputa aberta ou em análise. |
Para achar o pedido do seu sistema, use q=pedido_123 (o externalId).
let cursor;
do {
const url = new URL('https://api.rivoo.gg/v1/orders');
url.searchParams.set('limit', '100');
if (cursor) url.searchParams.set('startingAfter', cursor);
const page = await fetch(url, { headers: { Authorization: `Bearer ${process.env.RIVOO_API_KEY}` } }).then((r) => r.json());
for (const order of page.data) console.log(order.id, order.status);
cursor = page.hasMore ? page.data.at(-1).id : undefined;
} while (cursor);