Listar Logísticas Reversas

GET com paginação por cursor. Devolve as LRs do time, mais recentes primeiro.

Endpoint

GET/api/public/logistica-reversa
Auth10/min por IP

Parâmetros de query

CampoTipoObrig.Descrição
limitnumbernãoQuantidade de itens por página. Mínimo 1, máximo 100, padrão 50.
cursorstringnãoID da última LR da página anterior (use o nextCursor retornado). Omita na primeira chamada.

Resposta de Sucesso (200)

{
  "ok": true,
  "items": [
    {
      "id": "lr_uuid_interno",
      "orderId": "ord_123456",
      "credentialId": "9a2c1f80-...-uuid",
      "tipo": "A",
      "servicoEnvio": "pac",
      "idCliente": "lr1a2b3c4d5e6f...",
      "numeroPedido": "1234567890",
      "numeroEtiqueta": "AA123456789BR",
      "lastStatusCode": "01",
      "lastStatusDescription": "Aguardando coleta",
      "prazoValidade": "2026-05-18",
      "valorDeclarado": "89.90",
      "createdAt": "2026-04-18T12:00:00.000Z",
      "updatedAt": "2026-04-18T12:00:00.000Z"
    }
  ],
  "nextCursor": "lr_uuid_interno_da_ultima"
}

Campos do item

CampoTipoObrig.Descrição
idstringnãoID interno da LR (use também em GET /[id]).
orderIdstring | nullnãoID do pedido associado. null para LR avulsa (criada sem pedido).
credentialIduuidnãoCredencial Correios usada na criação.
tipoenumnãoA | C | CA — tipo de coleta.
servicoEnvioenumnãopac | sedex.
idClientestringnãoID gerado para a SOAP dos Correios.
numeroPedidostringnãoNúmero devolvido pelos Correios.
numeroEtiquetastringnãoCódigo de rastreio gerado para a etiqueta reversa.
lastStatusCodestring | nullnãoÚltimo código de status sincronizado dos Correios.
lastStatusDescriptionstring | nullnãoDescrição associada ao último status.
prazoValidadestring(YYYY-MM-DD) | nullnãoData até a qual a etiqueta é válida.
valorDeclaradostring | nullnãoDecimal serializado como string (ex.: "89.90") para evitar perda de precisão.
createdAtstring(ISO)nãoData de criação no nosso banco.
updatedAtstring(ISO)nãoÚltima atualização.

Paginação

Quando há mais itens, a resposta inclui nextCursor. Reenvie esse valor na próxima chamada como query ?cursor=.... Quando nextCursor for null, você chegou ao fim.

LRs avulsas (criadas sem orderId) aparecem na listagem com orderId: null. O ID interno lr_avulso_* nunca é exposto.

Exemplos

cURL

curl -H "Authorization: Bearer sr_live_sua_chave_aqui" \
  "https://seurastreio.com.br/api/public/logistica-reversa?limit=20"

cURL — próxima página

curl -H "Authorization: Bearer sr_live_sua_chave_aqui" \
  "https://seurastreio.com.br/api/public/logistica-reversa?limit=20&cursor=lr_uuid_da_ultima"

JavaScript — paginação completa

async function listAll() {
  const all = [];
  let cursor;
  do {
    const url = new URL("https://seurastreio.com.br/api/public/logistica-reversa");
    url.searchParams.set("limit", "100");
    if (cursor) url.searchParams.set("cursor", cursor);

    const res = await fetch(url, {
      headers: { Authorization: "Bearer sr_live_sua_chave_aqui" },
    });
    const { items, nextCursor } = await res.json();
    all.push(...items);
    cursor = nextCursor;
  } while (cursor);
  return all;
}

Python

import requests

def list_all():
    items = []
    cursor = None
    while True:
        params = {"limit": 100}
        if cursor:
            params["cursor"] = cursor
        r = requests.get(
            "https://seurastreio.com.br/api/public/logistica-reversa",
            headers={"Authorization": "Bearer sr_live_sua_chave_aqui"},
            params=params,
        )
        data = r.json()
        items.extend(data["items"])
        cursor = data.get("nextCursor")
        if not cursor:
            break
    return items
Resposta cacheada por 15 segundos no servidor. Para detalhes completos (histórico, remetente snapshot, etc.) use GET /[id].