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

Endereço e ambientes

Como montar a URL base da API legada, como a plataforma identifica a loja de cada requisição e quais famílias de rotas existem.

A Venddor é uma plataforma multi-loja. Cada loja (o termo técnico é tenant) tem o seu próprio catálogo, os seus próprios clientes e pedidos e o seu próprio banco de dados. Não existe uma "API global" que enxergue todas as lojas: cada chamada que você faz opera uma loja, e a primeira coisa que a plataforma faz ao receber a requisição é descobrir qual.

Pontos-chave
  • A URL base é o endereço da própria loja: https://<loja>.io.venddor.com.br, ou o domínio próprio que a loja configurou.
  • Na grande maioria dos casos o endereço basta. O cabeçalho X-Tenant-ID existe para escolher a loja explicitamente (testes, ambientes sem domínio por loja).
  • Um token Bearer fica preso a uma loja: usado em outra, a resposta é 403.
  • Loja inexistente ou desativada responde 404; loja suspensa responde 503.
  • O caminho não diferencia maiúsculas de minúsculas: /api/v1.0/Orders e /api/v1.0/orders são a mesma rota.

Loja e tenant

Pense em cada loja como uma instalação independente da plataforma. O que você cria numa loja (produto, cliente, pedido) não existe nas outras, e os ids de uma loja não significam nada em outra. Se a sua empresa tem três lojas, você terá três URLs base e três credenciais.

Dentro de uma loja podem existir vários sellers (lojistas): empresas que vendem pelo mesmo site, num modelo de marketplace. A API enxerga todos eles; veja Pedidos para o efeito disso nos pedidos.

Endereço base

Use o endereço público da loja, sempre com https:

Tipo de endereçoExemploQuando
Subdomínio da plataformahttps://minhaloja.io.venddor.com.brTodas as lojas têm um. O trecho antes de .io.venddor.com.br é o identificador (slug) da loja.
Domínio própriohttps://www.minhaloja.com.brQuando a loja configurou um domínio. A API responde no mesmo domínio da vitrine.

Nos exemplos desta documentação, $BASE_URL é esse endereço, sem barra no final, $EMAIL é o e-mail do usuário de integração e $API_KEY é a chave de API dele.

bash
export BASE_URL="https://minhaloja.io.venddor.com.br"

Como a plataforma descobre a loja

A cada requisição, a plataforma resolve a loja nesta ordem:

  1. Cabeçalho X-Tenant-ID, se vier na requisição. Ele tem prioridade sobre qualquer outra coisa. O valor é o identificador (slug) da loja, por exemplo minhaloja.
  2. O host da requisição (Host, ou X-Forwarded-Host quando há um proxy na frente): o subdomínio da plataforma ou um domínio próprio cadastrado.

Se nenhum dos dois identificar uma loja, a resposta é 404:

json
{ "error": "tenant not found", "message": "could not resolve storefront from request" }

Se o identificador existe mas a loja não, ou foi desativada:

json
{ "error": "tenant not found", "message": "storefront does not exist or is disabled" }
Quando usar o X-Tenant-ID

Se você chama a loja pelo endereço dela, não precisa do cabeçalho. Use-o quando várias lojas respondem pelo mesmo endereço de entrada (um ambiente de homologação, por exemplo) ou quando o seu sistema fala com várias lojas pelo mesmo host. Mesmo que você escolha outra loja, um token Bearer só vale na loja que o emitiu.

Token e loja

O token emitido por auth_tokens contém a loja. Usado em outra loja, é recusado:

json
{ "status": 403, "message": "Token not valid for this storefront" }

A chave de API, por sua vez, pertence a um usuário, e o usuário pertence a uma loja: o par e-mail:chave só autentica na loja onde o usuário existe.

Estados da loja

RespostaCorpoSignificado
404tenant_not_foundA loja foi cancelada ou excluída.
503tenant_suspendedA loja está suspensa. Aguarde ou fale com a Venddor.
503tenant_maintenanceA loja está em modo de manutenção. Vale para as rotas públicas da vitrine; o painel e as rotas administrativas continuam no ar.
404storefront_disabledA vitrine pública foi despublicada. As rotas administrativas continuam funcionando.

Famílias de rotas

A mesma loja responde por várias famílias de rotas. Este guia rápido usa as duas primeiras.

PrefixoQuem usaCredencial
/api/v1.0/...Sistemas escritos para a Venddor 1.0: ERP, PDV, BI, middleware.Basic e-mail:chave_de_api, ou Bearer.
/api/... (sem v1.0)As mesmas rotas, sem o prefixo de versão, usadas por apps e conectores antigos. Os ids saem em formato decimal.Igual à anterior.
/api/admin/...Apps de terceiros com acesso restrito.Bearer com token de app (vat_...).
/api/4.0/...O aplicativo móvel da loja.Veja API 4.0.
Maiúsculas e minúsculas

Nestas rotas o caminho não diferencia maiúsculas de minúsculas, mas escreva em minúsculas, como nos exemplos, para manter o código previsível.

Ambientes

Todas as páginas desta documentação usam o ambiente de produção. Se você precisa de um ambiente de homologação para testar a integração antes de ligá-la na loja real, peça à Venddor: ele tem o mesmo contrato, o mesmo código e um endereço próprio. Nunca teste escrita (criar cliente, criar pedido) numa loja de produção com dados de verdade.

Duas lições práticas:

  • Ids não são portáveis entre ambientes. O id de um produto em homologação não existe em produção, mesmo que a loja seja uma cópia.
  • Credenciais também não. A chave de API de homologação não funciona em produção, e vice-versa.

Cabeçalhos de resposta úteis

Toda resposta traz X-Request-Id, um identificador único da requisição. Guarde-o nos seus logs e informe-o ao suporte quando abrir um chamado: é o que permite localizar a chamada do outro lado.

Veja também

Autenticação
Como obter e usar a credencial.
Convenções
Formatos de dados e paginação.
Erros
O que cada código de erro significa.
Anterior
Primeiros passos
Próxima
Autenticação
Nesta página
  • Loja e tenant
  • Endereço base
  • Como a plataforma descobre a loja
  • Token e loja
  • Estados da loja
  • Famílias de rotas
  • Ambientes
  • Cabeçalhos de resposta úteis
  • Veja também