Skip to main content
No padrão Open Delivery, o fluxo de catálogo é invertido em relação a uma API tradicional: você expõe os dados da loja no formato da spec Merchant e a DeliveryVip consome esse endpoint para importar.
O PDV avisa com merchantUpdate, a DeliveryVip busca o snapshot na getMerchantURL e o PDV acompanha pelo merchantStatusO PDV avisa com merchantUpdate, a DeliveryVip busca o snapshot na getMerchantURL e o PDV acompanha pelo merchantStatus

Importação do catálogo via merchantUpdate

Quem expõe o quê

O seu endpoint Merchant

A DeliveryVip faz um GET exatamente na getMerchantURL.baseURL informada no onboarding, sem acrescentar caminho. Se você informou uma apiKey, ela vai no header X-API-KEY.
A resposta é o snapshot completo da loja no formato da spec Merchant 1.0.0 do Open Delivery. Consulte a spec oficial para o schema; a DeliveryVip importa:
  • informações básicas e endereço da loja;
  • horários de funcionamento;
  • área de atendimento e preços de entrega;
  • catálogo: categorias, itens, grupos de opções e opções, com as imagens dos itens.
Regras da importação:
  • Snapshot completo. Itens, categorias e opções que vieram de uma importação anterior e não estão mais no snapshot são removidos da loja.
  • Tudo ou nada. Se qualquer etapa falhar, nada da importação é aplicado.
  • lastUpdate decide se há o que importar. Se o lastUpdate do snapshot não for mais recente que o da última importação bem-sucedida, nada é reimportado e o resultado é SUCCESS. Atualize o lastUpdate sempre que os dados mudarem.
  • Catálogo vazio falha. Um snapshot sem nenhum item termina em FAIL.
  • O snapshot é validado contra o schema da spec antes de qualquer gravação.

Re-sincronização (merchantUpdate)

Quando o catálogo, os horários ou qualquer dado da loja mudarem no seu sistema, avise a plataforma:
O corpo é opcional e define o que acontece:
string
AVAILABLE ou UNAVAILABLE.
string
MERCHANT, BASIC_INFO, SERVICE, MENU, CATEGORY, ITEM, ITEM_OFFER, OPTION_GROUP, OPTION ou AVAILABILITY. Exige updatedObjects não vazio.
object[]
Os objetos alterados, conforme a spec.
Fechar a loja
A resposta é 204 No Content. O processamento é assíncrono: o merchantUpdate apenas agenda a importação, e avisos repetidos em sequência são agrupados em uma só (janela de 10 segundos). Para saber como terminou, consulte o merchantStatus.
O onboarding não importa o catálogo sozinho. Depois de registrar a getMerchantURL, chame o merchantUpdate para a primeira importação.

Acompanhando o processamento (merchantStatus)

Consulte o resultado do último processamento dos dados de uma loja:
string
obrigatório
O merchantId informado no onboarding.
Resposta (200)
string
Quando a plataforma registrou o último processamento (UTC). Num PROCESSING, é o momento em que o aviso foi recebido.
string
SUCCESS, PROCESSING ou FAIL.
string
Código curto da falha, quando status é FAIL (ex.: fetch_failed, invalid_schema, empty_catalog). Omitido nos demais casos.
Respostas de erro:
  • 400 Bad Request: merchantId ausente.
  • 404 Not Found: loja desconhecida para este app, fora do alcance do token, ou ainda sem nenhum processamento registrado.
Como o token é vinculado a uma loja, ele só enxerga a própria loja: consultar o merchantId de outra loja retorna 404.

Erros comuns