Skip to main content
A Voop Catalog API usa API keys de longa duração com escopos explícitos por chave.

Formato

vpk_live_a1b2c3d4e5f67890a1b2c3d4e5f67890
^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 │   │              │
 │   │              └─ 32 hex chars (128 bits de entropia)
 │   └──────────────── ambiente (live | test)
 └──────────────────── prefixo Voop ("voop public key")
Os primeiros 8 caracteres do segredo (após vpk_<env>_) ficam visíveis no dashboard para identificação — ex: vpk_live_a1b2c3d4. O restante nunca é exibido novamente após a criação.

Como usar

Envie a chave no header Authorization em toda requisição:
curl -X POST https://api.voop.work/api/v1/catalog/items/upsert \
  -H "Authorization: Bearer vpk_live_a1b2c3d4e5f67890a1b2c3d4e5f67890" \
  -H "Content-Type: application/json" \
  -d '{ "externalSystem": "shopify", "externalId": "PROD-1", "sku": "ABC", "name": "X", "price": 99.9 }'
Para retro-compatibilidade, o header X-API-Key também é aceito — mas Authorization: Bearer é o padrão recomendado.

Escopos

Cada chave declara um conjunto de escopos no momento da criação. Sem o escopo certo, a request é rejeitada com 403 Forbidden.
EscopoPermite
catalog:readListar e buscar items, ler webhooks
catalog:writeUpsert e delete de items
stock:writeAjustes de estoque (Phase futura)
webhook:manageCriar, pausar, deletar webhooks
bulk_import:manageIniciar e gerenciar bulk imports
Princípio do menor privilégio: crie chaves separadas para cada workload. Por exemplo, uma chave catalog:write para o sync diário e outra catalog:read para health checks ou dashboards de BI.

Ambientes: live vs test

  • vpk_live_* — produção. Mudanças refletem no catálogo real.
  • vpk_test_* — sandbox. Útil para CI e desenvolvimento. Reservado; ativação por solicitação.

Rotação de chaves

  1. Crie uma nova chave no Developer Portal
  2. Atualize o sistema cliente para usar a nova chave
  3. Confirme que tudo continua funcionando
  4. Revogue a chave antiga (botão Revoke no portal)
Após revoke, a chave deixa de autenticar imediatamente (cache Redis tem TTL máximo de 120s).

Segurança

Trate API keys como senhas. Nunca commite em código-fonte. Use variáveis de ambiente ou um secret manager (HashiCorp Vault, AWS Secrets Manager, GCP Secret Manager, etc.).
A chave é armazenada no banco como SHA-256 hash — mesmo um vazamento do banco não revela o segredo cleartext. Mas se o segredo vazou em outro lugar (logs, repo público), revogue imediatamente.

Códigos de erro de auth

StatusCódigoCausa
401unauthorizedHeader ausente, chave inválida, chave revogada
403forbiddenChave válida mas sem o scope necessário
429too_many_requestsRate limit do tier excedido