Guia de Migração: Call4U → SMS Funnel
Este guia é para quem integrava com a API de parceiros do Call4U (https://api.call4u.com.br/parceiros/v1) e passou a operar no SMS Funnel. Para cada endpoint antigo, mostramos o equivalente de hoje, o que muda na requisição e como fica a resposta.
A URL de base de todos os endpoints é: https://web.smsfunnel.com.br/api/parceiros/v1
Autenticação: continua sendo Authorization: Bearer <token>, mas o token é o da sua conta SMS Funnel. O token do Call4U não funciona aqui. Os IDs também mudaram: contas, campanhas e sequências agora são UUID (ex.: 018f9c2a-7b31-7c4e-9a1d-2f3b4c5d6e7f), e não mais números inteiros.
Resumo da troca
GET /credits
GET /credits
GET /sent-calls?from_date=&to_date=
GET /call4u/sent-calls?start_date=&end_date=
GET /recharges?from_date=&to_date=
GET /recharges?from_date=&to_date=
GET /campaigns?from_date=&to_date=&page=&per_page=
GET /sms/campaigns + GET /sms/campaigns/{id}/sequences
GET /campaigns/{campaignRef}/calls?from_date=&to_date=&page=&per_page=
GET /sms/sequences/{sequence_id}/calls?page=&per_page=
Fluxo para consultar as ligações
1. GET /sms/campaigns → encontra a campanha ligada à sua lista (campaign_id)
2. GET /sms/campaigns/{campaign_id}/sequences → encontra a sequência com "type": "call" (sequence_id)
3. GET /sms/sequences/{sequence_id}/calls → desfecho de cada ligação (paginado)Os IDs dos passos 1 e 2 não mudam com o tempo: basta buscá-los uma vez e guardar.
Endpoints
GET /credits
Função: Consulta o saldo da conta. Substitui o GET /credits do Call4U. O saldo de ligação fica no bloco call.
Corpo de resposta — 200 OK:
GET /call4u/sent-calls
Função: Retorna a quantidade de ligações da conta no período. Substitui o GET /sent-calls do Call4U.
Parâmetros de query (opcionais):
Corpo de resposta — 200 OK:
Os parâmetros mudaram de nome: use start_date e end_date, e não mais from_date e to_date. Se enviar os nomes antigos, eles são ignorados e a resposta traz o total sem filtro de data.
GET /recharges
Função: Lista as recargas aprovadas da conta no período. Substitui o GET /recharges do Call4U.
Parâmetros de query (opcionais):
Sem datas, a consulta retorna os últimos 90 dias. O intervalo máximo entre as datas é de 90 dias.
Corpo de resposta — 200 OK:
O que mudou em relação ao Call4U:
Não há paginação. A lista do período vem inteira. Não envie
pagenemper_page: qualquer parâmetro além defrom_date,to_date,emaileuser_idretorna422.A resposta não tem mais
total,page,per_pageetotal_pages.servicepassa de"CALL"/"SMS"para"Ligação","SMS"ou"WhatsApp". Para ver só as recargas de ligação, filtre por"Ligação".Só aparecem recargas aprovadas. Recargas pendentes ou canceladas não são listadas.
GET /sms/campaigns
Função: Lista as suas campanhas. É o primeiro passo para encontrar a sequência de voz. Substitui a parte de "listar campanhas" do GET /campaigns do Call4U.
Parâmetros de query (opcionais):
Corpo de resposta — 200 OK:
GET /sms/campaigns/{campaign_id}/sequences
Função: Lista as sequências (passos) de uma campanha. A sequência de ligação é a que tem "type": "call". Guarde o id dela: é o sequence_id usado na consulta das ligações.
Corpo de resposta — 200 OK:
GET /sms/sequences/{sequence_id}/calls
Função: Lista as ligações de uma sequência de voz, com o desfecho de cada uma. Substitui o GET /campaigns/{campaignRef}/calls do Call4U.
Parâmetros de query (opcionais):
Corpo de resposta — 200 OK:
Paginação diferente do Call4U:
Não há
total,total_pagesnemlast_page. Avance incrementandopageaténext_page_urlvirnull.Sempre envie
per_page(estatus, se estiver filtrando) em todas as páginas. Onext_page_urldevolvido leva apenas opage. Se você seguir o link como está, a próxima página volta com o padrão de 50 itens.
Não há filtro por data (from_date/to_date). A consulta traz todas as ligações da sequência. Para recortar um período, filtre pelo sent_at do seu lado.
De → para dos campos da ligação
Call4U (/campaigns/{ref}/calls)
SMS Funnel (/sms/sequences/{id}/calls)
Observação
id
id
Agora é UUID
cliente_nome
name
numero
phone
status
status / status_label
status é um slug fixo. Veja a tabela de desfechos abaixo.
percentual_ouvido ("72.50%")
listened_percentage (72.5)
Agora é número, sem o %
duracao_segundos
call_duration_seconds
tentativa_atual
tries
tentativas_configuradas
max_attempts
data_ligacao
sent_at
data_hora
sent_at
Não há campo separado de data de criação
—
dtmf_response
Novo: tecla digitada
—
pabx_status
Novo: status bruto da central
—
answered_at
Novo: quando o resultado da ligação chegou
campaign_id, campaign_name
—
Use o sequence_id da consulta
Desfechos da ligação
status
status_label
Equivalente no Call4U
waiting
Aguardando
Pendente / Em andamento
no_answer
Recusada / Não Atendida
Não atendida / Recusada
answered_hangup
Atendida e Desligada
Atendida e desconectada (ouviu menos de 95% do áudio)
answered_listened
Escutou até o Fim
Atendida e ouviu até o final (95% ou mais do áudio)
answered_dtmf
Atendida com Digitação
Atendida com digitação
cancelled
Cancelado
Cancelada pelo usuário
error
Erro / Telefone inválido
Número inválido
Erros
401
Token ausente ou inválido
404
Campanha ou sequência não encontrada, ou não pertence à sua conta
409
INVALID_SEQUENCE_TYPE: a sequência consultada não é de ligação
422
Parâmetro inválido (data fora do formato, intervalo acima de 90 dias, campo não aceito)
429
Limite de requisições excedido
Formato do erro nos endpoints /sms/*:
Formato do erro em /recharges:
Last updated