EXCLUSIVO UISA

📡 API de Visitas UISA

Documentação completa — todos os dados coletados pelos promotores exclusivos UISA

Endpoint

A API retorna todos os dados das visitas dos promotores exclusivos UISA (Itamarati), incluindo check-in, check-out, pesquisa de share, fotos de abastecimento, rupturas, datas críticas, estoque, preços, pontos extras e concorrência.

URL do Endpoint
https://base44.app/api/apps/691c8b90f6d2322375e88c7f/functions/exportUisaVisitsAPI

Método: GET — todos os parâmetros são opcionais e passados como query string.

Filtros Disponíveis (Query Params)

datestring (YYYY-MM-DD)
Filtra visitas de uma data específica. Ex: 2026-06-25
start_datestring (YYYY-MM-DD)
Data inicial do período (use com end_date). Ex: 2026-06-01
end_datestring (YYYY-MM-DD)
Data final do período. Ex: 2026-06-30
promoter_emailstring
Email exato do promotor. Ex: nilsonlisboa1278@gmail.com
promoter_idstring
ID do promotor na API Icatu (campo promoter_id do AppUser). Ex: 11342
promoter_namestring
Busca parcial pelo nome do promotor (case-insensitive). Ex: nilson
store_codestring
Código da loja. Ex: 9569

Exemplos de Consulta

Todas as visitas de hoje:

https://base44.app/api/apps/691c8b90f6d2322375e88c7f/functions/exportUisaVisitsAPI?date=2026-06-25

Visitas de um período:

https://base44.app/api/apps/691c8b90f6d2322375e88c7f/functions/exportUisaVisitsAPI?start_date=2026-06-01&end_date=2026-06-30

Por ID do promotor:

https://base44.app/api/apps/691c8b90f6d2322375e88c7f/functions/exportUisaVisitsAPI?promoter_id=11342

Por nome do promotor (busca parcial):

https://base44.app/api/apps/691c8b90f6d2322375e88c7f/functions/exportUisaVisitsAPI?promoter_name=nilson

Por loja específica:

https://base44.app/api/apps/691c8b90f6d2322375e88c7f/functions/exportUisaVisitsAPI?store_code=9569

Combinação de filtros:

https://base44.app/api/apps/691c8b90f6d2322375e88c7f/functions/exportUisaVisitsAPI?start_date=2026-06-01&end_date=2026-06-30&promoter_id=11342

Estrutura da Resposta

A resposta é um JSON com a seguinte estrutura raiz:

{
  "success": true,
  "total_visits": 645,
  "total_promoters": 20,
  "filters_applied": { ... },
  "data": [ ...array de visitas... ]
}

Identificação da Visita

visit_idstring
ID único da visita no banco de dados
visit_datestring (YYYY-MM-DD)
Data da visita
statusenum
Status: 'em_andamento' ou 'finalizada'
checkin_timestring (ISO 8601)
Data e hora do check-in
checkout_timestring (ISO 8601)
Data e hora do check-out (null se em andamento)

Promotor (identificado por ID e nome completo)

promotor_idstring
ID do promotor na API Icatu (campo promoter_id). Fallback para ID interno se não houver.
promotor_cpfstring
CPF do promotor (apenas números)
promotor_namestring
Nome completo do promotor
promotor_emailstring
Email do promotor

Loja

store_codestring
Código da loja no ERP/Sankhya
store_namestring
Nome fantasia da loja
store_citystring
Cidade da loja
store_ufstring
UF (estado) da loja
store_redestring
Rede da loja (ex: Carrefour, Sonda)
store_cnpjstring
CNPJ da loja
store_enderecostring
Endereço completo formatado
loja_idstring
ID interno da loja no banco

Check-in

checkin.data_horastring (ISO 8601)
Data e hora do check-in
checkin.latitudenumber
Latitude do GPS no momento do check-in
checkin.longitudenumber
Longitude do GPS no momento do check-in
checkin.fotosarray
Fotos do check-in com tags (loja, endereço, data, categoria, promotor)

Fotos de Abastecimento

fotos_abastecimento.pre_abastecimentoarray
Fotos do estado da gôndola antes do abastecimento
fotos_abastecimento.abastecimentoarray
Fotos do estado da gôndola após o abastecimento

Cada foto é um objeto com: url, tag_loja, tag_endereco, tag_data, tag_categoria, tag_promotor, e stamp_text (legenda formatada para impressão).

Avarias (array)

sku_eanstring
Código EAN do produto (13 dígitos)
sku_idstring
ID do SKU na API Icatu
sku_nomestring
Nome do produto
quantidadenumber
Quantidade de unidades avariadas
umenum
Unidade de medida: unidade, caixa, kilograma, fardo, placa
tipo_avariaenum
Tipo: vencido, proximo_vencimento, embalagem_amassada, embalagem_estourada, produto_molhado, contaminado, outro
data_validadestring (date)
Data de validade do produto avariado
indicio_em_outras_marcasboolean
Se há indícios de avaria em produtos concorrentes
observacaostring
Observação textual
urls_fotosarray
URLs das fotos da avaria
fotosarray
Fotos com metadados e tags

Caixas Abertas / Abastecimento (array)

qtd_caixas_abertasnumber
Quantidade de caixas abertas na gôndola
qtd_caixas_fechadasnumber
Quantidade de caixas fechadas no estoque
fez_triagemboolean
Se foi feita triagem de produtos
motivo_triagemstring
Motivo da triagem (se aplicável)
foto_triagem_urlstring
URL da foto da triagem
foto_triagemobject
Foto da triagem com tags
produtos_abastecidosarray
Lista de SKUs abastecidos (JSON parseado)
observacaostring
Observação textual

Datas Críticas (array)

sku_eanstring
Código EAN do produto
sku_idstring
ID do SKU na API Icatu
sku_nomestring
Nome do produto
quantidadenumber
Quantidade de unidades próximas ao vencimento
umenum
Unidade de medida
data_validadestring (date)
Data de validade crítica
lotestring
Lote do produto
retirado_da_gondolaboolean
Se o produto foi retirado da gôndola
qual_providenciastring
Descrição da providência tomada
urls_fotosarray
URLs das fotos
fotosarray
Fotos com metadados e tags

Estoque (array)

sku_eanstring
Código EAN do produto
sku_idstring
ID do SKU na API Icatu
sku_nomestring
Nome do produto
quantidadenumber
Quantidade em estoque
umenum
Unidade de medida
lotestring
Lote do produto
data_validadestring (date)
Data de validade
tipo_estoqueenum
Tipo: 'fisico' ou 'sistema'
em_rupturaboolean
Se o produto está em ruptura (sem estoque)
motivo_rupturastring
Motivo da ruptura (se aplicável)
observacao_rupturastring
Observação sobre a ruptura
foto_ruptura_urlstring
URL da foto da ruptura
foto_rupturaobject
Foto da ruptura com tags

Pontos Extras (array)

sku_eanstring
Código EAN do produto
sku_idstring
ID do SKU na API Icatu
sku_nomestring
Nome do produto
tipo_pontoenum
Tipo: ilha, ponta_gondola, checkout, display_chao, orelha, hortifruti, padaria, refrigerados, biscoitos, outro
motivostring
Motivo do ponto extra
quantidadenumber
Quantidade total no ponto extra
dias_exposicaonumber
Dias de exposição
data_validadestring (date)
Data de validade
material_utilizadoenum
Material: banner, clip_strip, cubo, display, faixa_gondola, nao_se_aplica
localizacaostring
Localização dentro da loja
ponto_mistoboolean
Se é um ponto misto (com outras marcas)
urls_fotosarray
URLs das fotos
fotosarray
Fotos com metadados e tags

Preços de Frente (array)

sku_eanstring
Código EAN do produto
sku_idstring
ID do SKU na API Icatu
sku_nomestring
Nome do produto
preco_varejonumber
Preço praticado na gôndola
preco_sugeridonumber
Preço sugerido pela marca
em_promocaoboolean
Se o produto está em promoção
descricao_promocaostring
Descrição da promoção
diferenca_pctnumber
Diferença percentual entre preço e sugerido
conformeboolean
Se o preço está conforme o sugerido
foto_urlstring
URL da foto do preço
fotoobject
Foto do preço com tags

Rupturas (array)

sku_eanstring
Código EAN do produto em ruptura
sku_idstring
ID do SKU na API Icatu
sku_nomestring
Nome do produto
motivo_rupturaenum
Motivo: sku_descontinuado, nao_chegou_loja, pedido_nao_realizado, sku_cd_nao_cadastrado
observacaostring
Observação textual
urls_fotosarray
URLs das fotos
fotosarray
Fotos com metadados e tags

Pesquisa de Share (array) — 5 categorias de açúcar

A pesquisa de share é dividida em 5 categorias: Açúcar Cristal, Refinado, Triturado, Demerara e Mascavo. Cada categoria contém as marcas encontradas na gôndola e suas frentes (espaços).

categoriastring
Nome da categoria (ex: 'Açúcar Cristal')
total_frentesnumber
Total de frentes na gôndola desta categoria
fotos_gondolaarray
Fotos da gôndola com tags
marcasarray
Array de marcas encontradas
marcas[].marcastring
Nome da marca (ex: ITAMARATI, UNIÃO, CARAVELAS)
marcas[].frentesnumber
Número de frentes (espaços na gôndola)
marcas[].share_pctnumber
Percentual de share da marca (frentes / total_frentes * 100)

Concorrência

concorrencia.tem_acao_concorrenciaboolean
Se há ação da concorrência no PDV (true/false/null se não respondido)
concorrencia.tipos_acaoarray
Tipos de ação da concorrência (ex: ['Ponto Extra', 'Degustação'])
concorrencia.descricaostring
Descrição detalhada da ação
concorrencia.foto_urlstring
URL da foto da ação
concorrencia.fotoobject
Foto com metadados e tags

Flags

share_completedboolean
Se a pesquisa de share foi concluída

Exemplo de Resposta (1 visita)

{
  "visit_id": "6a3d3f5772f5eee59f0509fb",
  "visit_date": "2026-06-25",
  "status": "em_andamento",
  "checkin_time": "2026-06-25T14:46:47.320Z",
  "checkout_time": null,
  "promotor_id": "11342",
  "promotor_cpf": "70790302268",
  "promotor_name": "NILSON PEREIRA LISBOA",
  "promotor_email": "nilsonlisboa1278@gmail.com",
  "store_code": "9569",
  "store_name": "LJ 286 ATACADAO JAPIIM",
  "store_city": "MANAUS",
  "store_uf": "AM",
  "store_rede": "",
  "store_cnpj": "75315333028623",
  "store_endereco": "AV RODRIGO OTAVIO, 900 - JAPIIM, MANAUS/AM",
  "loja_id": "698b43d619f8290b2c4c9b2f",
  "checkin": {
    "data_hora": "2026-06-25T14:46:47.320Z",
    "latitude": -3.1089078,
    "longitude": -59.9818986,
    "fotos": [{
      "url": "https://base44.app/.../ stamped.jpg",
      "tag_loja": "LJ 286 ATACADAO JAPIIM",
      "tag_endereco": "AV RODRIGO OTAVIO, 900 - JAPIIM, MANAUS/AM",
      "tag_data": "25/06/2026",
      "tag_categoria": "Check-in",
      "tag_promotor": "NILSON PEREIRA LISBOA",
      "stamp_text": "LJ 286 ATACADAO JAPIIM\nAV RODRIGO OTAVIO, 900...\n25/06/2026 | Check-in\nPromotor: NILSON PEREIRA LISBOA"
    }]
  },
  "fotos_abastecimento": {
    "pre_abastecimento": [ ...fotos... ],
    "abastecimento": [ ...fotos... ]
  },
  "avarias": [ ... ],
  "caixas_abertas": [ ... ],
  "datas_criticas": [ ... ],
  "estoque": [ ... ],
  "pontos_extras": [ ... ],
  "precos_frente": [ ... ],
  "rupturas": [ ... ],
  "pesquisa_share": [
    {
      "categoria": "Açúcar Cristal",
      "total_frentes": 20,
      "fotos_gondola": [ ...fotos... ],
      "marcas": [
        { "marca": "ITAMARATI", "frentes": 8, "share_pct": 40 },
        { "marca": "UNIÃO", "frentes": 5, "share_pct": 25 },
        { "marca": "CARAVELAS", "frentes": 7, "share_pct": 35 }
      ]
    },
    ...
  ],
  "concorrencia": {
    "tem_acao_concorrencia": true,
    "tipos_acao": ["Ponto Extra", "Degustação"],
    "descricao": "Concorrente X montou display...",
    "foto_url": "https://...",
    "foto": { ...com tags... }
  },
  "share_completed": true
}

Notas Importantes

  • A API retorna apenas visitas de promotores com role exclusivo_uisa ou treinamento_uisa.
  • O promotor_id é o ID do promotor na API Icatu (campo promoter_id do AppUser). Se o promotor não tiver esse campo, usa o ID interno do banco como fallback.
  • Todas as fotos incluem metadados de tags (loja, endereço, data, categoria, promotor) e um campo stamp_text com a legenda formatada para impressão.
  • Os campos sku_id e sku_nome são enriquecidos a partir da entidade SKU, quando disponível.
  • A pesquisa de share contém 5 categorias de açúcar: Cristal, Refinado, Triturado, Demerara e Mascavo — cada uma com suas marcas e frentes.
  • Visitas com status = "em_andamento" não têm checkout_time (será null).
  • Se nenhum filtro de data for fornecido, a API retorna TODAS as visitas UISA (pode ser lento se houver muitos dados).