VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API legada/Referência completa

API v2

Visão geral da API /api/v2, uma superfície administrativa enxuta com envelope data/meta, usada por integrações que não precisam da API de administração completa.

A API v2 (/api/v2) é uma superfície REST de administração enxuta. Todas as respostas seguem o mesmo envelope, todos os erros seguem o mesmo formato e as listas aceitam os mesmos parâmetros de paginação e de projeção de campos. Integradores a usam para ler e manter cupons, devoluções, sellers (lojistas) e assinaturas de webhook sem aprender um contrato extenso.

Esta seção documenta quatro recursos da v2: cupons, devoluções, sellers e webhooks. A v2 tem outros recursos (produtos, pedidos, clientes), que não fazem parte desta seção.

Pontos-chave
  • Autenticação: Authorization: Bearer <JWT> de um usuário administrador (admin ou root_admin). Seller e cliente recebem 403.
  • Toda resposta de sucesso é { "data": ... }. Listas trazem também meta.pagination. Todo erro é { "error": { "code", "message", "details" } }.
  • Dinheiro é inteiro em centavos (4990 = R$ 49,90). Desconto percentual de cupom é em pontos-base (1000 = 10%).
  • Cupom tem id numérico. Seller, devolução e webhook têm id UUID.
  • Qualquer lista aceita ?fields=a,b para devolver só esses campos.

Como funciona

Uma chamada típica tem três passos: obter o token de administrador, chamar o recurso e tratar o envelope.

  1. Obtenha o token

    Autentique-se como administrador e guarde o token de acesso (JWT). Veja Autenticação. O login tem limite de requisições: reutilize o token.

  2. Escolha a loja

    Em produção a loja vem do domínio (https://minhaloja.io.venddor.com.br). Em ambientes de teste você também pode enviar o cabeçalho X-Tenant-ID.

  3. Chame o recurso

    Use os caminhos desta seção. Em listas, leia data (os itens) e meta.pagination (página atual e total).

Conceitos-chave

O envelope

Sucesso com um item:

json
{ "data": { "id": 79, "code": "TESTE10" } }

Sucesso com lista:

json
{
  "data": [ { "id": 79, "code": "TESTE10" } ],
  "meta": { "pagination": { "page": 1, "per_page": 20, "total": 38, "total_pages": 2 } }
}

Remoções (DELETE) respondem 204 sem corpo.

Paginação

ParâmetroPadrãoLimite
page1Valor menor que 1 vira 1.
per_page20De 1 a 100. Acima de 100 vira 100. Zero ou negativo vira 20.

Mais detalhes em Convenções.

Projeção de campos

?fields=id,code,is_active devolve só essas chaves de cada item. Nomes que não existem são ignorados. Não vale para a resposta de criação nem de edição.

Erros

Os erros desta superfície têm sempre code (para o seu código decidir), message (para uma pessoa ler, em inglês) e, às vezes, details.

StatuscodeQuando
400bad_requestCorpo inválido, campo obrigatório ausente, id mal formado.
404not_foundO recurso não existe.
409conflictDuplicidade (código de cupom, e-mail ou slug de seller).
422margin_floorO desconto levaria produtos abaixo da margem mínima da loja.
422refused_by_storeUma regra da própria loja recusou a alteração.
500internal_errorFalha inesperada. details traz uma descrição curta.

Falhas de autenticação e de permissão vêm de uma camada anterior e têm formato simples: {"error":"missing authorization header"} (401) e {"error":"insufficient permissions"} (403). Trate os dois formatos.

Um id numérico 0 ou negativo em qualquer parte do caminho responde 400 {"error":"invalid id parameter"} antes de chegar ao recurso.

Endpoints

MétodoCaminhoPara quêAuthPágina
GET/api/v2/couponsListar cupons com filtrosadminCupons: consulta
GET/api/v2/coupons/{id}Ler um cupomadminCupons: consulta
POST/api/v2/couponsCriar um cupomadminCupons: escrita
PUT/api/v2/coupons/{id}Alterar um cupomadminCupons: escrita
DELETE/api/v2/coupons/{id}Apagar um cupomadminCupons: escrita
GET/api/v2/returnsListar devoluçõesadminDevoluções
GET/api/v2/returns/{id}Ler uma devoluçãoadminDevoluções
POST/api/v2/returnsAbrir uma devolução pela equipeadminDevoluções
GET/api/v2/vendorsListar sellersadminSellers
GET/api/v2/vendors/{id}Ler um selleradminSellers
POST/api/v2/vendorsCadastrar um selleradminSellers
PUT/api/v2/vendors/{id}Alterar um selleradminSellers
GET/api/v2/webhooksListar assinaturas de webhookadminWebhooks
GET/api/v2/webhooks/{id}Ler uma assinaturaadminWebhooks
POST/api/v2/webhooksCriar uma assinaturaadminWebhooks
DELETE/api/v2/webhooks/{id}Remover uma assinaturaadminWebhooks

Erros comuns

  • Mandar o JWT de um seller ou de um cliente. A v2 só aceita administrador: o resultado é 403 {"error":"insufficient permissions"}.
  • Tratar value de cupom percentual como porcentagem. value: 10 é 0,10%, não 10%. Para 10% envie 1000.
  • Esperar data num erro de autenticação. O 401 e o 403 vêm no formato simples, sem o envelope error.code.
  • Usar um UUID no cupom. O id de cupom é um inteiro (79). Um texto qualquer responde 400 coupon id must be a positive integer.
  • Reenviar POST sem checar duplicidade. Cupom repetido responde 409; webhook criado duas vezes vira duas assinaturas e o evento chega duas vezes.
  • Guardar o segredo do webhook só depois. O segredo completo aparece uma única vez, na resposta da criação.

Próximos passos

Cupons
Listar, ler, criar e manter cupons.
Webhooks
Assinar eventos da loja.
Sellers
Cadastrar e manter lojistas.
Autenticação
Como obter e renovar o token.
Anterior
Estoque em massa
Próxima
Cupons: consulta
Nesta página
  • Como funciona
  • Conceitos-chave
  • O envelope
  • Paginação
  • Projeção de campos
  • Erros
  • Endpoints
  • Erros comuns
  • Próximos passos