Enviar produtos e carrinho
Busca produtos do seller e envia ao cliente um cartão de produto, uma lista, o botão do catálogo ou o link do carrinho.
Um atendente vende melhor quando mostra o produto na própria conversa. Estas rotas encontram produtos do seller e os enviam como mensagens interativas do WhatsApp. Há dois caminhos: com um catálogo da Meta vinculado à loja, o cliente recebe os cartões nativos do WhatsApp; sem catálogo, ele recebe um botão que abre o produto ou a lista na mini-loja. O seller só consegue enviar produtos do próprio catálogo.
Buscar produtos
/api/v1/vendor/whatsapp-confluence/productsSellerBusca produtos do seller para enviar
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (lojista). Veja Tokens.Parâmetros de consulta
qstringsearch é aceito como apelido.per_pageintegerpadrão: 40pageintegerpadrão: 1Exemplo de requisição
curl "$BASE_URL/api/v1/vendor/whatsapp-confluence/products?q=cimento&per_page=10" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"products": [
{
"id": "5f6a7b8c-9d0e-4f1a-8b2c-3d4e5f6a7b8c",
"name": "Cimento CP II 50 kg",
"short_description": "Saco de 50 kg",
"image_url": "https://minhaloja.io.venddor.com.br/uploads/produtos/cimento.jpg",
"slug": "cimento-cp-ii-50kg",
"price_cents": 3290,
"available": true
}
]
}Campos da resposta
productsarrayProdutos encontrados. Lista vazia quando não há seller identificável.
iduuidproduct_id nos envios.namestringshort_descriptionstringdescriptionstringimage_urlstringslugstringurlstringprice_centsinteger3290 = R$ 32,90).list_price_centsintegerprice_redactedbooleantrue quando o preço está oculto até o login do cliente.availablebooleansale_unitstringkg, quando não é unidade.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"} |
| 502 | Falha ao consultar o catálogo. | {"error":"..."} |
Enviar um produto
/api/v1/vendor/whatsapp-confluence/threads/{id}/send-productSellerEnvia um cartão de produto
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (lojista). Veja Tokens.Content-Typestringobrigatórioapplication/json.Parâmetros de caminho
iduuidobrigatórioid de Listar conversas).Corpo da requisição
product_iduuidretailer_id.retailer_idstringwacoex- seguido do id do produto). Alternativa a product_id.Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/vendor/whatsapp-confluence/threads/7f0c2b1e-5a43-4d8e-9a67-3c1d2e4f5a60/send-product" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"product_id": "5f6a7b8c-9d0e-4f1a-8b2c-3d4e5f6a7b8c"
}'Resposta
{
"id": 28,
"thread_id": "7f0c2b1e-5a43-4d8e-9a67-3c1d2e4f5a60",
"wamid": "wamid.HBgNNTUxMTk4NzY1NDMyMRUCABIYFjNFQjA",
"direction": "O",
"origin": "A",
"msg_type": "interactive",
"body": "Produto: wacoex-5f6a7b8c-9d0e-4f1a-8b2c-3d4e5f6a7b8c",
"status": "S",
"meta_timestamp": "2026-10-10T14:35:00Z",
"created_at": "2026-10-10T14:35:00Z",
"interactive": {
"type": "product",
"action": {
"catalog_id": "catalog_demo_local",
"product_retailer_id": "wacoex-5f6a7b8c-9d0e-4f1a-8b2c-3d4e5f6a7b8c"
}
}
}Campos da resposta
idintegerthread_iduuidwamidstringdirectionstringIOI recebida do cliente, O enviada pela loja.originstringCABEHC cliente, A API ou atendente, B assistente, E eco do aplicativo WhatsApp Business, H histórico.msg_typestringtext, image, audio, voice, video, document, sticker, interactive, template, order e outros que a Meta enviar.bodystringmedia_idstringmedia_mimestringmedia_captionstringfilenamestringmedia_urlstringAuthorization. Aparece em mensagens com mídia que a conversa já listou.transcriptionstringinteractiveobjectorder_payloadobjectstatusstringQSDRFQ na fila, S enviada, D entregue, R lida, F falhou.errorstringstatus é F.meta_timestampstringcreated_atstringErros
| 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"} |
| 400 | Nem product_id nem retailer_id. | {"error":"retailer_id or product_id required"} |
| 404 | Conversa de outro seller. Um id desconhecido também dá 404 em algumas rotas, mas 200 ou 502 em outras quando não há escopo de seller (veja a visão geral da seção). | {"error":"thread not found"} |
| 502 | Produto fora do catálogo do seller (whatsappcoex: product not found), conta sem condições de envio, ou recusa da Meta. Também um id de conversa desconhecido quando não há escopo de seller (whatsappcoex: thread not found). | {"error":"whatsappcoex: product not found"} |
Enviar uma lista
/api/v1/vendor/whatsapp-confluence/threads/{id}/send-product-listSellerEnvia uma lista de produtos
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (lojista). Veja Tokens.Content-Typestringobrigatórioapplication/json.Parâmetros de caminho
iduuidobrigatórioid de Listar conversas).Corpo da requisição
titlestringProdutos.product_idsarrayobrigatórioExemplo de requisição
curl -X POST "$BASE_URL/api/v1/vendor/whatsapp-confluence/threads/7f0c2b1e-5a43-4d8e-9a67-3c1d2e4f5a60/send-product-list" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Para a sua obra",
"product_ids": [
"5f6a7b8c-9d0e-4f1a-8b2c-3d4e5f6a7b8c",
"6a7b8c9d-0e1f-4a2b-9c3d-4e5f6a7b8c9d"
]
}'Resposta
{
"id": 28,
"thread_id": "7f0c2b1e-5a43-4d8e-9a67-3c1d2e4f5a60",
"wamid": "wamid.HBgNNTUxMTk4NzY1NDMyMRUCABIYFjNFQjA",
"direction": "O",
"origin": "A",
"msg_type": "interactive",
"body": "Para a sua obra (2 produtos)",
"status": "S",
"meta_timestamp": "2026-10-10T14:35:00Z",
"created_at": "2026-10-10T14:35:00Z"
}Campos da resposta
idintegerthread_iduuidwamidstringdirectionstringIOI recebida do cliente, O enviada pela loja.originstringCABEHC cliente, A API ou atendente, B assistente, E eco do aplicativo WhatsApp Business, H histórico.msg_typestringtext, image, audio, voice, video, document, sticker, interactive, template, order e outros que a Meta enviar.bodystringmedia_idstringmedia_mimestringmedia_captionstringfilenamestringmedia_urlstringAuthorization. Aparece em mensagens com mídia que a conversa já listou.transcriptionstringinteractiveobjectorder_payloadobjectstatusstringQSDRFQ na fila, S enviada, D entregue, R lida, F falhou.errorstringstatus é F.meta_timestampstringcreated_atstringErros
| 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"} |
| 400 | product_ids ausente ou vazio. | {"error":"product_ids required"} |
| 404 | Conversa de outro seller. Um id desconhecido também dá 404 em algumas rotas, mas 200 ou 502 em outras quando não há escopo de seller (veja a visão geral da seção). | {"error":"thread not found"} |
| 502 | Algum produto não é do catálogo do seller, ou a Meta recusou. Também um id de conversa desconhecido quando não há escopo de seller (whatsappcoex: thread not found). | {"error":"whatsappcoex: product not found"} |
Enviar o catálogo
/api/v1/vendor/whatsapp-confluence/threads/{id}/send-catalogSellerEnvia o botão de ver o catálogo
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (lojista). Veja Tokens.Content-Typestringobrigatórioapplication/json.Parâmetros de caminho
iduuidobrigatórioid de Listar conversas).Corpo da requisição
bodystringConfira nosso catálogo.Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/vendor/whatsapp-confluence/threads/7f0c2b1e-5a43-4d8e-9a67-3c1d2e4f5a60/send-catalog" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"body": "Veja tudo o que temos para a sua obra"
}'Resposta
{
"id": 28,
"thread_id": "7f0c2b1e-5a43-4d8e-9a67-3c1d2e4f5a60",
"wamid": "wamid.HBgNNTUxMTk4NzY1NDMyMRUCABIYFjNFQjA",
"direction": "O",
"origin": "A",
"msg_type": "interactive",
"body": "Veja tudo o que temos para a sua obra",
"status": "S",
"meta_timestamp": "2026-10-10T14:35:00Z",
"created_at": "2026-10-10T14:35:00Z"
}Campos da resposta
idintegerthread_iduuidwamidstringdirectionstringIOI recebida do cliente, O enviada pela loja.originstringCABEHC cliente, A API ou atendente, B assistente, E eco do aplicativo WhatsApp Business, H histórico.msg_typestringtext, image, audio, voice, video, document, sticker, interactive, template, order e outros que a Meta enviar.bodystringmedia_idstringmedia_mimestringmedia_captionstringfilenamestringmedia_urlstringAuthorization. Aparece em mensagens com mídia que a conversa já listou.transcriptionstringinteractiveobjectorder_payloadobjectstatusstringQSDRFQ na fila, S enviada, D entregue, R lida, F falhou.errorstringstatus é F.meta_timestampstringcreated_atstringErros
| 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"} |
| 404 | Conversa de outro seller. Um id desconhecido também dá 404 em algumas rotas, mas 200 ou 502 em outras quando não há escopo de seller (veja a visão geral da seção). | {"error":"thread not found"} |
| 502 | A Meta recusou (por exemplo, a conta não tem catálogo vinculado) ou a conta não pode enviar. Também um id de conversa desconhecido quando não há escopo de seller (whatsappcoex: thread not found). | {"error":"..."} |
Enviar o link do carrinho
Envia um botão que abre a mini-loja já com o carrinho daquele telefone. É a forma de levar o cliente ao checkout sem digitar nada.
/api/v1/vendor/whatsapp-confluence/threads/{id}/send-cart-linkSellerEnvia o botão de abrir o carrinho
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (lojista). Veja Tokens.Parâmetros de caminho
iduuidobrigatórioid de Listar conversas).Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/vendor/whatsapp-confluence/threads/7f0c2b1e-5a43-4d8e-9a67-3c1d2e4f5a60/send-cart-link" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"message": {
"id": 28,
"thread_id": "7f0c2b1e-5a43-4d8e-9a67-3c1d2e4f5a60",
"wamid": "wamid.HBgNNTUxMTk4NzY1NDMyMRUCABIYFjNFQjA",
"direction": "O",
"origin": "A",
"msg_type": "interactive",
"body": "Montei um carrinho pra você, é só abrir e finalizar!",
"status": "S",
"meta_timestamp": "2026-10-10T14:35:00Z",
"created_at": "2026-10-10T14:35:00Z"
}
}Campos da resposta
messageobjectErros
| 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"} |
| 404 | Conversa de outro seller. Um id desconhecido também dá 404 em algumas rotas, mas 200 ou 502 em outras quando não há escopo de seller (veja a visão geral da seção). | {"error":"thread not found"} |
| 502 | Não foi possível gerar o link, ou a Meta recusou. Pode trazer message com status: F. | {"error":"whatsappcoex: cart link unavailable"} |