Mini-loja
Aparência da mini-loja aberta por link dentro do WhatsApp e o endereço para compartilhá-la.
A mini-loja é uma página de compra leve, aberta a partir de um botão na conversa do WhatsApp (e também compartilhável como link). O cliente vê produtos, monta o carrinho e finaliza sem sair do contexto da conversa. Estas rotas controlam como ela se parece e dão o endereço público.
Ler a aparência
Devolve só o que a loja salvou, mais os valores do tema (brand_*) que a mini-loja usa quando um campo está vazio. Assim o editor mostra o que é escolha da loja e o que é herdado.
/api/v1/vendor/whatsapp-confluence/preview-settingsSellerRetorna a aparência salva da mini-loja
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (lojista). Veja Tokens.Exemplo de requisição
curl "$BASE_URL/api/v1/vendor/whatsapp-confluence/preview-settings" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"logo_media_id": "",
"header_color": "",
"accent_color": "",
"hero_media_id": "",
"hero_title": "Ofertas da semana",
"hero_subtitle": "Compre pelo WhatsApp em poucos toques",
"greeting_template": "",
"card_style": "C",
"updated_at": "2026-07-30T04:13:07Z",
"brand_logo_url": "/uploads/exemplo/theme/logo/logo.png",
"brand_header_color": "#2563eb",
"brand_accent_color": "#2563eb"
}Campos da resposta
logo_media_idstringhttp(s):// ou caminho /uploads/.... Vazio usa o logo do tema da loja.header_colorstring#RGB ou #RRGGBB. Vazio herda a cor do tema.accent_colorstringhero_media_idstringhero_titlestringhero_subtitlestringgreeting_templatestringcard_stylestringpadrão: CC.pinned_collectionsobjectfooter_infoobjectshow_store_address, text, hours_summary. Omitido se não definido.updated_atstringbrand_logo_urlstringlogo_media_id está vazio. Só aparece nesses casos.brand_header_colorstringheader_color está vazio.brand_accent_colorstringaccent_color está vazio.Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem token ou token inválido. | {"error":"missing authorization header"} |
| 403 | O usuário não é um seller, ou o seller ainda está em análise de cadastro. | {"error":"vendor_pending_review"} |
| 500 | Falha ao ler. | {"error":"..."} |
Gravar a aparência
Os campos de texto simples (logo, cores, título, subtítulo, saudação) são substituídos: o que faltar no corpo é limpo e volta a herdar do tema. Já pinned_collections e footer_info são preservados quando omitidos, e footer_info é mesclado chave a chave. A resposta é o registro salvo, no mesmo formato da leitura.
/api/v1/vendor/whatsapp-confluence/preview-settingsSellerGrava a aparência da mini-loja
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (lojista). Veja Tokens.Content-Typestringobrigatórioapplication/json.Corpo da requisição
logo_media_idstringhttp(s):// ou caminho /uploads/.... Vazio usa o logo do tema da loja.header_colorstring#RGB ou #RRGGBB. Vazio herda a cor do tema.accent_colorstringhero_media_idstringhero_titlestringhero_subtitlestringgreeting_templatestringcard_stylestringpadrão: CC.pinned_collectionsobjectfooter_infoobjectshow_store_address, text, hours_summary. Omitido se não definido.Exemplo de requisição
curl -X PUT "$BASE_URL/api/v1/vendor/whatsapp-confluence/preview-settings" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"logo_media_id": "",
"header_color": "#0b7a3b",
"accent_color": "#f59e0b",
"hero_media_id": "",
"hero_title": "Ofertas da semana",
"hero_subtitle": "Compre pelo WhatsApp em poucos toques",
"greeting_template": "",
"card_style": "C"
}'Resposta
{
"logo_media_id": "",
"header_color": "#0b7a3b",
"accent_color": "#f59e0b",
"hero_media_id": "",
"hero_title": "Ofertas da semana",
"hero_subtitle": "Compre pelo WhatsApp em poucos toques",
"greeting_template": "",
"card_style": "C",
"updated_at": "2026-10-11T12:00:00Z"
}Campos da resposta
logo_media_idstringhttp(s):// ou caminho /uploads/.... Vazio usa o logo do tema da loja.header_colorstring#RGB ou #RRGGBB. Vazio herda a cor do tema.accent_colorstringhero_media_idstringhero_titlestringhero_subtitlestringgreeting_templatestringcard_stylestringpadrão: CC.pinned_collectionsobjectfooter_infoobjectshow_store_address, text, hours_summary. Omitido se não definido.updated_atstringbrand_logo_urlstringlogo_media_id está vazio. Só aparece nesses casos.brand_header_colorstringheader_color está vazio.brand_accent_colorstringaccent_color está vazio.Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem token ou token inválido. | {"error":"missing authorization header"} |
| 403 | Falta o privilégio vendor_settings ou vendor_manage_whatsapp, ou o WhatsApp da loja não é deste seller. | {"error":"store_whatsapp_owner_required"} |
| 400 | Cor fora do formato #RGB ou #RRGGBB. | {"error":"invalid_color"} |
| 400 | Corpo que não é JSON. | {"error":"invalid body"} |
| 500 | Falha ao gravar. | {"error":"..."} |
Endereço da mini-loja
Devolve o endereço para divulgar a mini-loja (em materiais, redes sociais, QR code). É o endereço da loja mais o prefixo web_preview_base_path, /wa por padrão.
/api/v1/vendor/whatsapp-confluence/preview-linkSellerRetorna o link público da mini-loja
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (lojista). Veja Tokens.Exemplo de requisição
curl "$BASE_URL/api/v1/vendor/whatsapp-confluence/preview-link" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"url": "https://minhaloja.io.venddor.com.br/wa"
}Campos da resposta
urlstringErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem token ou token inválido. | {"error":"missing authorization header"} |
| 403 | O usuário não é um seller, ou o seller ainda está em análise de cadastro. | {"error":"vendor_pending_review"} |
| 500 | Não foi possível descobrir o endereço da loja. | {"error":"whatsappcoex: storefront base URL unavailable"} |