Rally Partner API v1

21 endpoints REST · Auth Bearer · Rate limit 60 req/min · v1 estável desde 2026-04-24.

Sobre a Partner API

A Partner API v1 é o canal oficial pra integrações externas — apps mobile, dashboards de BI, automações no-code (Zapier, n8n, Make), serviços de contabilidade, etc. Você lê dados (anúncios, pedidos, estoque) e dispara ações controladas (notificações pro lojista). Tudo escopado pelo token: vendedor só vê seus próprios dados; fornecedor (drop) só vê os vendedores vinculados.

Base URL: https://api.rallydevendas.com.br/v1/partner
Em dev/teste use https://painel.rallydevendas.com.br/v1/partner (CORS aberto pra dashboards).

Autenticação

Bearer token pessoal (PAT) gerado pelo lojista em /painel/parceiro/hub → "Gerar token". O token começa com ptk_ seguido de 48 caracteres hex.

curl https://api.rallydevendas.com.br/v1/partner/health \
  -H "Authorization: Bearer ptk_AbCdEf1234567890abcdef1234567890abcdef1234567890"
Segurança: nunca commitar o token no repo. Use variáveis de ambiente. Token revogado em /painel/parceiro/hub a qualquer momento.

Rate limit

EndpointLimiteJanela
Default (GET)601 min / token
POST mutativos201 min / token
/orders/remind-all15 min / token

Headers de resposta:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 1715923200

Endpoints Lojista (10)

MétodoRotaO que faz
GET/healthPing + identifica o usuário do token
GET/storesLista contas ML conectadas
GET/stores/{ml_id}/metricsMétricas agregadas (vendas, reputação, anúncios ativos)
GET/orders?status=paid&limit=50Lista pedidos (paginação + filtros)
GET/productsCatálogo interno do lojista
GET/announcementsAnúncios publicados nas contas ML
GET/stockSaldo de estoque + movimentações
GET/notificationsHistórico de notificações enviadas
POST/notifyDispara notificação pro lojista (Telegram/Email/Push)
GET/usageConsumo da API no mês

Exemplo — listar pedidos pagos

curl "https://api.rallydevendas.com.br/v1/partner/orders?status=paid&limit=20" \
  -H "Authorization: Bearer ptk_..."

# Response 200
{
  "data": [
    {
      "order_id": "20000123456789",
      "ml_id": "MLB123...",
      "status": "paid",
      "total_amount": 199.90,
      "buyer_nickname": "JOAO123",
      "date_created": "2026-05-16T14:32:00",
      "shipping": {
        "id": "412345678",
        "status": "ready_to_ship",
        "logistic_type": "drop_off"
      }
    }
  ],
  "pagination": { "total": 156, "limit": 20, "offset": 0 }
}

Exemplo — disparar notificação

curl -X POST https://api.rallydevendas.com.br/v1/partner/notify \
  -H "Authorization: Bearer ptk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "telegram",
    "event": "custom",
    "title": "Backup concluído",
    "body": "Snapshot de pedidos exportado pra S3."
  }'

Endpoints Fornecedor (Drop) (11)

Requer token de usuário com role drop + vínculo ativo com pelo menos 1 vendedor.

MétodoRotaO que faz
GET/drop/healthPing + lista vendedores vinculados
GET/drop/catalog/auditAuditoria de SKU/EAN sem match nos seus catálogos
GET/drop/catalog/productsLista seus produtos disponíveis pros vendedores
POST/drop/catalog/linksVincula MLB do vendedor a produto seu (manual)
POST/drop/catalog/links/bulkVínculo em lote (CSV up to 500)
POST/drop/catalog/links/unlinkRemove vínculo
GET/drop/ordersPedidos drop vinculados aos seus produtos
POST/drop/orders/remindLembra vendedor de pagar pedido drop específico
POST/drop/orders/remind-allLembra todos vendedores com pedidos atrasados (1x/5min)
GET/drop/ml/label?ship_id=X&seller_id=YProxy etiqueta ML (valida vínculo)
GET/drop/ml/invoice?order_id=X&seller_id=YProxy NF-e ML do pedido

Códigos de erro

HTTPSignificadoComo agir
200OK
400Body inválidoVerifique payload contra spec
401Token ausente/inválidoConfirme header Authorization: Bearer
403Sem permissão (role ou binding)Verifique role do user dono do token + vínculos ativos
404Recurso não existeID errado OU não pertence ao escopo do token
429Rate limitAguarde X-RateLimit-Reset
500Erro RallyReporte com x-request-id da response

Webhooks roadmap

Webhooks pra parceiros estão no roadmap Q3 2026. Por enquanto, integre via polling dos endpoints /orders e /notifications com cache local e If-Modified-Since.

SDKs

Não temos SDK oficial — a API é REST puro JSON, qualquer cliente HTTP serve. Exemplos community em PHP, Python e Node em github.com/andrehocsis/rally-partner-examples (em construção).

Modelo de auth + retry (qualquer linguagem)

// Pseudocódigo
GET https://api.rallydevendas.com.br/v1/partner/orders?status=paid
Headers:
  Authorization: Bearer ptk_xxxxxxxxxxxxxxxxxxxx
  Accept: application/json

Em caso de 429:
  Espere até X-RateLimit-Reset (epoch segundos)
  Tente de novo (máx 3x)

Em caso de 5xx:
  Backoff exponencial 1s, 2s, 4s
  Após 3 tentativas, log + alerta

Suporte

Dúvidas técnicas: dev@rallydevendas.com.br
Status da API: rallydevendas.com.br/status
Changelog: DOCUMENTACAO/API/03_ENDPOINTS.md

v1.0 — última atualização 2026-05-17 · Termos de uso da API