Sessões de fluxo
Consulta as sessões (conversas em andamento ou encerradas dentro de um fluxo), suas variações e roda uma mensagem de teste.
Cada cliente que entra num fluxo ganha uma sessão, que guarda em que bloco ele está e o que já respondeu. Uma sessão ativa vence depois de um tempo sem uso (expires_at).
Listar sessões
Uma sessão é uma conversa de um cliente dentro de um fluxo. A lista mostra quem está no meio do fluxo, quem terminou, quem desistiu e onde houve erro. Do mais novo ao mais antigo.
/api/v1/admin/whatsapp/flow-sessionsAdminLista as sessões de fluxo
Parâmetros de consulta
vendor_iduuidflow_iduuidstatestringactivecompletedabandonederroredphone_numberstringlimitintegerpadrão: 50offsetintegerpadrão: 0Exemplo de requisição (Listar sessões)
curl "$BASE_URL/api/v1/admin/whatsapp/flow-sessions?state=active&limit=20" \
-H "Authorization: Bearer $TOKEN"Resposta (Listar sessões)
{
"sessions": [
{
"id": "0b7d3c1e-5a42-4d8f-9e61-3c2a7f4b8d10",
"vendor_id": "9d9d9d56-eb43-4719-889d-055632f7c7da",
"flow_id": "fa4b0c91-2883-43c6-94ef-86e5b540a2aa",
"thread_id": "5b1f0c7e-2a3d-4c88-9e41-0a7d6b3c9f22",
"phone_number": "5511999990000",
"current_block_id": "b8c1057a-d5b6-448f-af73-31734882b110",
"state": "active",
"session_data": {
"cart_id": "c-123"
},
"last_block_entered_at": "2026-10-11T14:40:00Z",
"last_interaction_at": "2026-10-11T14:40:00Z",
"started_at": "2026-10-11T14:39:50Z",
"expires_at": "2026-10-12T14:39:50Z",
"created_at": "2026-10-11T14:39:50Z",
"updated_at": "2026-10-11T14:40:00Z"
}
],
"limit": 20,
"offset": 0
}Campos da resposta
sessionsarraySessões da página.
iduuidvendor_iduuidflow_iduuidthread_iduuidphone_numberstring+sim-... numa simulação).current_block_iduuidstatestringactivecompletedabandonederroredsession_dataobjecterror_messagestringstate é errored.last_block_entered_atstringlast_interaction_atstringstarted_atstringexpires_atstringcompleted_atstringcreated_atstringupdated_atstringlimitintegeroffsetintegerErros (Listar sessões)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |
| 500 | Falha ao consultar (inclusive vendor_id ou flow_id que não é UUID). | {"error":"Failed to list flow sessions: ..."} |
Ver uma sessão
Devolve uma sessão pelo id, com as variáveis guardadas até agora.
/api/v1/admin/whatsapp/flow-sessions/{id}AdminLê uma sessão de fluxo
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição (Ver uma sessão)
curl "$BASE_URL/api/v1/admin/whatsapp/flow-sessions/0b7d3c1e-5a42-4d8f-9e61-3c2a7f4b8d10" \
-H "Authorization: Bearer $TOKEN"Resposta (Ver uma sessão)
{
"id": "0b7d3c1e-5a42-4d8f-9e61-3c2a7f4b8d10",
"vendor_id": "9d9d9d56-eb43-4719-889d-055632f7c7da",
"flow_id": "fa4b0c91-2883-43c6-94ef-86e5b540a2aa",
"thread_id": "5b1f0c7e-2a3d-4c88-9e41-0a7d6b3c9f22",
"phone_number": "5511999990000",
"current_block_id": "b8c1057a-d5b6-448f-af73-31734882b110",
"state": "active",
"session_data": {
"cart_id": "c-123"
},
"last_block_entered_at": "2026-10-11T14:40:00Z",
"last_interaction_at": "2026-10-11T14:40:00Z",
"started_at": "2026-10-11T14:39:50Z",
"expires_at": "2026-10-12T14:39:50Z",
"created_at": "2026-10-11T14:39:50Z",
"updated_at": "2026-10-11T14:40:00Z"
}Campos da resposta
iduuidvendor_iduuidflow_iduuidthread_iduuidphone_numberstring+sim-... numa simulação).current_block_iduuidstatestringactivecompletedabandonederroredsession_dataobjecterror_messagestringstate é errored.last_block_entered_atstringlast_interaction_atstringstarted_atstringexpires_atstringcompleted_atstringcreated_atstringupdated_atstringErros (Ver uma sessão)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |
| 404 | Sessão não encontrada. | {"error":"Flow session not found"} |
| 500 | O id não é um UUID válido (a plataforma devolve 500 em vez de 400). | {"error":"Failed to load flow session: whatsapp/flow_session: get by id: pq: invalid input syntax for type uuid: \"xyz\" (22P02)"} |
Variações escolhidas na sessão
Quando o cliente monta uma compra com tamanho e cor dentro do fluxo, cada escolha fica registrada como uma variação da sessão. Esta rota lista essas escolhas.
/api/v1/admin/whatsapp/flow-sessions/{id}/variantsAdminLista as variações escolhidas numa sessão
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição (Listar variações)
curl "$BASE_URL/api/v1/admin/whatsapp/flow-sessions/0b7d3c1e-5a42-4d8f-9e61-3c2a7f4b8d10/variants" \
-H "Authorization: Bearer $TOKEN"Resposta (Listar variações)
{
"session_id": "0b7d3c1e-5a42-4d8f-9e61-3c2a7f4b8d10",
"variants": [
{
"id": "7d6e5f4a-3b2c-4a19-8e07-6f5d4c3b2a10",
"flow_session_id": "0b7d3c1e-5a42-4d8f-9e61-3c2a7f4b8d10",
"product_id": "22fbd12a-1b6e-41ea-a84f-4d9cf06c8766",
"variant_id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"selected_variants": {
"Tamanho": "M",
"Cor": "Azul"
},
"combination_hash": "m-azul",
"quantity": 2,
"price_centavos": 19990,
"complete": true,
"created_at": "2026-10-11T14:41:00Z",
"updated_at": "2026-10-11T14:41:30Z"
}
]
}Campos da resposta
session_iduuidvariantsarrayVariações, na ordem em que o cliente escolheu.
iduuidflow_session_iduuidproduct_iduuidvariant_iduuidselected_variantsobjectcombination_hashstringquantityintegerprice_centavosinteger19990 = R$ 199,90). Ausente quando não definido.completebooleantrue quando todos os atributos foram escolhidos.created_atstringupdated_atstringErros (Listar variações)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |
| 500 | O id não é um UUID válido. | {"error":"Failed to list variants: ..."} |
Rodar uma mensagem numa sessão
Alimenta uma sessão existente com uma mensagem de texto e devolve a resposta e as ações que o bot geraria. É o botão "testar" do editor de fluxos.
/api/v1/admin/whatsapp/flow-sessions/{id}/test-runAdminRoda uma mensagem de teste numa sessão
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
inbound_textstringExemplo de requisição (Rodar uma mensagem)
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/flow-sessions/0b7d3c1e-5a42-4d8f-9e61-3c2a7f4b8d10/test-run" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"inbound_text": "1"
}'Resposta (Rodar uma mensagem)
{
"session_id": "0b7d3c1e-5a42-4d8f-9e61-3c2a7f4b8d10",
"reply_text": "Ótimo! Veja nossos produtos.",
"actions": [
{
"kind": "send_text",
"body": "Ótimo! Veja nossos produtos."
},
{
"kind": "wait_for_input"
}
]
}Campos da resposta
session_iduuidreply_textstringactionsarraykind (send_text, send_media, send_cta_url, send_buttons, send_list, wait_for_input, complete, handoff_to_human) e, conforme o tipo, body, media_url, content_type, buttons ou items.Erros (Rodar uma mensagem)
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON, sessão inexistente ou terminada, ou erro do bloco atual. | {"error":"..."} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |