NAV
json xml php

SMS API REST

Introdução

O Webservice MAXXMOBI disponibiliza métodos para envio, recebimento e gerenciamento de SMS baseados nas tecnologias REST/JSON.
Esses métodos possibilitam grande agilidade na integração entre aplicações e a plataforma MAXXMOBI.

Principais vantagens do WebService MAXXMOBI:

• Permite às aplicações enviar e receber dados em formatos JSON. Cada aplicação pode ter a
sua própria “linguagem”, que é traduzida para uma linguagem universal, o formato JSON;
• Permite uma integração de sistemas completamente simples, segura, reutilizável e padronizada
A utilização do Webservice MAXXMOBI para integração de sistemas e envio de mensagens, é iniciado a partir da passagem de um Json a sua url correspondente.

Autenticação

Para autorizar, use este código:

{ 
"usuario":"root",
"senha":"root"
}

Para o serviço do SMS o Webservice MAXXMOBI utiliza-se usuário e senha para autenticação.
O parâmetro de autenticação tem que ser inserido acima de todos os métodos disponibilizados pela API.





ParâmetrosDescrição
Usuário Usuário de autenticação
Senha Senha do usuário

Parâmetros de entrada

Métodos de envio

Exemplo json de envio:(sem agendamento):
{
"usuario":"root",
"senha":"root",
"requisicao":[
{"idCliente":"fev01", "numero":"5571988888888","mensagem":"validando ws"},
{"idCliente":"fev02", "numero":"5571999999999","mensagem":"validando ws"}
]
}
 
Exemplo json de envio:(com agendamento):
{
"usuario":"root",
"senha":"root",
"requisicao":[
{"idCliente":"fev01", "numero":"5571988888888","mensagem":"validando ws"},
{"idCliente":"fev02", "numero":"5571999999999","mensagem":"validando ws"}
],
"agendamento":"01-01-2018 14:00:00"
}
Exemplos json objeto de resposta:
(Exemplo 1)
{
"status": 0,
"resposta": "OK",
"lote": 12345

}
(Exemplo 2)
{
"status": 99,
"resposta": "Usuario nao existe ou nao autorizado!"
"lote": 0
}

http://sms.maxx.mobi/ws/maxxmobi/envios/
O método para envio de uma ou mais mensagens SMS’s. O agendamento é realizado a partir do momento em que se coloca a data e o horário do mesmo. Caso isso não ocorra, a mensagem será enviada na mesma hora.








ParâmetrosDescriçãoTipo
Sms∗Lista para enviar um ou mais sms’sSms[]
idCliente Seu id definido. Isso é útil na necessidade manter o controle da mensagem enviada, desde que você pode definir diferentes ids para mensagens diferentes.
String
Numero∗ Número de telefone para o qual a mensagem será enviada. Exemplo: 5571991990000 Não é obrigatório o uso do código do pais.String
Mensagem∗
Mensagem de texto que vai ser enviada para o número de destino
String
agendamento A mensagem não será enviada antes desta data. Este campo segue o formato DD-MM-AAAA HH:MM:SS. Ex.: 01-01-2018 19:59:59String

Parâmetros de entrada





ParâmetrosDescriçãoTipo
statusId da resposta. IDs 0 e 99, sendo 0 para status positivos e 99 para errosint
respostaDescrição da resposta String
loteLote gerado para o envioint

O corpo de resposta conterá um objeto JSON com informações de rastreamento sobre a mensagem enviada:

Resposta do Status

Métodos de retorno

http://sms.maxx.mobi/ws/maxxmobi/retornos/




Exemplos de entrada (Json):
{
"usuario":"root",
"senha":"root",
"datainicio":"01-01-2018 00:00:00",
"dataFim":"31-01-2018 23:59:59"
}

Esse método retorna um JSON contendo o status do retorno e os SMSs respondidos num determinado período. Os parâmetros de entrada são:





ParâmetrosDescriçãoTipo
datainicioData e hora inicial para obter as respostas. Esse período
segue o formato DD-MM-AAAA HH:MM:SS
String
dataFimData e hora final para obter as respostas. Esse período
segue o formato DD-MM-AAAA HH:MM:SS
String

Parâmetros de entrada

Os parâmetros das respostas retornadas seguem o seguinte formato:
Json exemplos de retorno com dados:
{
"status": "OK",
"listaResposta": [
{
"id": 2553,
"mensagem": "resposta 01",
"seuId": fev01,
"data": "2018-01-31 17:55:58.0",
" numero": "5571988888888"
},
{
"id": 2554,
"mensagem": "resposta 02",
"seuId": fev02,
"data": "2018-01-31 17:56:04.0",
"numero": "5571999999999"
}
]
}
Json exemplos de retorno sem dados:
{
"status": "SEM DADOS",
"listaResposta": []
}








ParâmetrosDescrição
statusStatus do retorno, tipos de status “OK” quando existe respostas para esse filtro e “SEM DADOS” Quando não contem respostas
idId da resposta
numeroNúmero do cliente e respondeu
mensagemMensagem respondida
seuIdCaso tenha inserido o id para a mensagem enviada, ele retornará nesse
campo para facilitar uma associação
dataData e hora da resposta

Resposta do Status

Métodos de status

http://sms.maxx.mobi/ws/maxxmobi/status/

Parâmetros de entrada:
{
"usuario":"root",
"senha":"root",
"id":"fev01"
}

Exemplo de objeto de resposta:
{
"id": 548597,
"seuId": "fev01",
"numero": "5571981416558",
"dataEnvio": "2018-02-20 14:23:00.0",
"mensagem": "validando ws",
"status": "ENVIADO"
}
Exemplo de objeto de resposta de status não encontrado:
{
"id": 0,
"seuId": null,
"numero": null,
"dataEnvio": null,
"mensagem": null,
"status": null
}

Método para obter o status do SMS.




DocumentaçãoMAXXMOBI
idID que foi inserido na mensagem de envio

Parâmetros de entrada









ParâmetrosDescriçãoTipo
IDID gerado para o envioint
seuIdO seu id inserido na mensagemString
numeroNúmero de destino da mensagem consultadoString
dataEnvioData de envio da mensagemString
mensagemMensagem de texto que foi enviada ao destinatárioString
Status Status da mensagem. Esse status pode sofrer uma alteração depois de um tempo, que é quando a operadora nos devolve o status final da mensagem(essa alteração só ocorre uma vez).
Status:
PENDENTE: A aplicação ainda não pegou a mensagem.
ENVIADO: A mensagem foi enviada.
ERRO: Ocorreu alguém erro ao tentar enviar a mensagem.
NAO ENVIADO: A mensagem não foi enviada, por falta de crédito ou número invalido.
ENTREGUE: Confirmação de entrega ao destinatário
BLACKLIST: O número faz parte de uma blacklist
DUPLICADO: mensagens para destinatários iguais no mesmo envio.
String

Resposta do Status

Cancelar agendamento

http://sms.maxx.mobi/ws/maxxmobi/cancelarAgendamento/


Exemplos de entrada (Json):

{
"usuario":"root",
"senha":"root",
"id":"55"
}

Exemplo json objeto de resposta:
(Exemplo 1)
{
"status": 0,
"resposta": "OK"
}

(Exemplo 2)
{
"status": 99,
"resposta": "Nenhum lote encontrado"
}

Método para cancelar agendamento.




ParâmetrosDescrição
idID do lote

Parâmetros de entrada





ParâmetrosDescriçãoTipo
statusId da resposta. IDs 0 e 99, sendo 0 para status positivos e 99 para errosint
resposta Descrição da respostaString

Resposta do cancelamento do lote

Blacklist

Inserir

http://sms.maxx.mobi/ws/maxxmobi/inserir/blacklist/

Exemplos de entrada (Json):
{
"usuario":"root",
"senha":"root",
"destinatarios":[
{"numero":"5571999999999"},
{"numero":"5571999999999"}
]
}
Exemplo json objeto de resposta:
(Exemplo 1)
{
"status": 0,
"resposta": "OK"
}
(Exemplo 2)
{
"status": 99,
"resposta": "Não foi possível inserir os números na blacklist"
}

Método para inserir números em uma lista negra, para que os mesmos não recebam mais sms.





ParâmetrosDescriçãoTipo
destinatariosLista de destinatários para inserir na blacklistdestinatarios []
NumeroNúmero do destinatário a ser inserido na blacklistString

Parâmetros de entrada





ParâmetrosDescriçãoTipo
status*
Id da resposta. IDs 0 e 99, sendo 0 para status positivos e 99 para erros.
int
respostaDescrição da respostaString

Resposta da inserção da blacklist

Buscar

http://sms.maxx.mobi/ws/maxxmobi/blacklist/

Parâmetros de entrada (JSON):
{
"usuario":"root",
"senha":"root"
}
Json exemplos de blacklist com dados:
{
"status": "OK",
"destinatarios":[
{"numero":"5571999999999"},
{"numero":"5571999999999"}
]
}
Json exemplos de blacklist sem dados:
{
"status": "SEM DADOS",
"destinatarios ": []
}

Método para buscar números em uma lista negra.






ParâmetrosDescrição
statusStatus do retorno, tipos de status “OK” quando existe respostas para esse
filtro e “SEM DADOS” Quando não contem respostas.
DestinatáriosLista de destinatários para inserir na blacklist
NumeroNúmero do destinatário a ser inserido na blacklist

Resposta da busca

Excluir

http://sms.maxx.mobi/ws/maxxmobi/delete/blacklist/

Exemplos de entrada (Json):
{
"usuario":"root",
"senha":"root"
"destinatarios":[
{"numero":"5571999999999"}
}
Exemplo json objeto de resposta:
(Exemplo 1)
{
"status": 0,
"resposta": "OK"
}
(Exemplo 2)
{
"status": 99,
"resposta": "Não foi possível remover os números da blacklist"
}

Método para apagar números em uma lista negra.





ParâmetrosDescriçãoTipo
statusId da resposta. IDs 0 e 99, sendo 0 para status positivos e 99 para erros.int
resposta Descrição da respostaString

Resposta do Status

Relatórios de chat

http://sms.maxx.mobi/ws/maxxmobi/chat/

Exemplos de entrada (Json):
{
"usuario":"root",
"senha":"root",
"datainicio":"01-01-2018 00:00:00",
"dataFim":"31-01-2018 23:59:59"
}

Json exemplos de retorno com dados:
{
"status":"OK",
"chats" : [
{"id": "500","mensagem":"confirma o envio?", "dataEnvio": "20-02-2018
14:35:00","numero":"719999999999", "resposta":"confirmado!", "dataResposta":"21-02-2018
12:00:00","numero":"719999999999"}
]
}

Json exemplos de retorno sem dados:
{
"status": "SEM DADOS",
"chats ": []
}

Método para buscar interação entre destinatários e remetentes.





ParâmetrosDescriçãoTipo
datainicioData e hora inicial para obter as mensagens do chat. Esse período segue o formato DD-MM-AAAA HH:MM:SSString
dataFimData e hora final para obter as mensagens do chat. Esse
período
segue o formato DD-MM-AAAA HH:MM:SS
String

Parâmetros de entrada










ParâmetrosDescrição
statusStatus do retorno, tipos de status “OK” quando existe respostas para esse filtro e “SEM DADOS” Quando não contem respostas.
idId da relação
mensagemMensagem que foi enviada ao destinatário
dataEnvioData de envio ao destinatário
NumeroNúmero do destinatário
respostaMensagem respondida pelo destinatário
dataRespostaData de resposta do destinatário ao remetente

Retorno das listas de chat

Gerenciar Grupo de contatos

Buscar grupos

http://sms.maxx.mobi/ws/maxxmobi/grupos/

Parâmetros de entrada (JSON):   
{
"usuario":"root",
"senha":"root"

}

Json exemplos de retorno com dados:
{
"status": "OK",
"grupos": [
{
"id": 001,
"nome": "Desenvolvimento"
},
{
"id": 002,
"nome": "maxxmobi"
}
]
}
Json exemplos de retorno sem dados:
{
"status": "SEM DADOS",
"grupos": [ ]
}

Métodos para consultar grupos.






ParâmetrosDescrição
statusStatus do retorno, tipos de status “OK” quando existe respostas para esse filtro e “SEM DADOS” Quando não contem respostas.
idId do grupo
nomeNome do grupo

Apagar grupos

http://sms.maxx.mobi/ws/maxxmobi/grupos/delete/

Exemplos de entrada (Json):
{
"usuario":"root",
"senha":"root",
"id":"55"
}
Exemplo json objeto de resposta:
(Exemplo 1)
{
"status": 0,
"resposta": "OK"
}
Exemplo json grupo não existente:
{
"status": 99,
"resposta": "grupo não existe!"
}

Métodos para apagar grupos




ParâmetrosDescrição
idId do grupo

Parâmetros de entrada





ParâmetrosDescriçãoTipo
statusId da resposta. IDs 0 e 99, sendo 0 para status positivos e 99 para errosint
respostaDescrição da respostaString

Resposta da exclusão do grupo:

Listar contatos do grupo

http://sms.maxx.mobi/ws/maxxmobi/grupos/contatos/


Exemplos de entrada (Json):
{
"usuario":"root",
"senha":"root",
"id":"55"
}
Json exemplos de retorno com dados:
{
"status": "OK",
"nome": "Desenvolvimento",
"contatos": [
{
"id": 907,
"nome": "João",
"numero": "7199999999999"
},
{
"id": 908,
"nome": "Pedro",
"numero": "7198888888888"
}
]
}
Json exemplos de retorno sem dados:
{
"status": "Grupo não existe!",
"nome": "",
"contatos": [ ]
}

Métodos para apagar grupos




ParâmetrosDescrição
Id∗ID do grupo

Parâmetros de entrada









ParâmetrosDescrição
status Status do retorno, tipos de status “OK” quando existe respostas para esse filtro e “SEM DADOS” Quando não contem respostas
nomeNome do grupo
contatosArray de contatos
idId do contato
nomeNome do contato
numeroNúmero do contato

Retorno da lista de contatos do grupo

Criar grupos com contatos

http://sms.maxx.mobi/ws/maxxmobi/criar/grupos/contatos/

Grupo sem contatos
{
"usuario":"maxx",
"senha":"5m52012",
"nome":"diretoria2"
}
Grupo com contatos
{
"usuario":"root",
"senha":"root",
"nome":"diretoria",
"contatos":[
{"nome":"diretor","numero":"71992000000"},
{"nome":"diretor2","numero":"71992000000"}
]
}
Exemplo json objeto de resposta:
(Exemplo 1)
{
"status": 0,
"resposta": "OK",
"id": 01
}
Exemplo json grupo não existente:
{
"status": 99,
"resposta": "erro na criação do grupo!",
"id": 0
}

Métodos para criar grupos com e sem contatos







ParâmetrosDescrição
nomeNome do grupo
contatosArray de contatos
nomeNome do contato
numeroNúmero de contato

Parâmetros de entrada






ParâmetrosDescriçãoTipo
statusstatus Id da resposta. IDs 0 e 99, sendo 0 para status positivos e 99 para errosint
respostaDescrição da respostaString
idId gerado na criaçãoint

Resposta da criação do grupo

Apagar contato

http://sms.maxx.mobi/ws/maxxmobi/contato/delete/

Exemplos de entrada (Json):
{
"usuario":"root",
"senha":"root",
"id":"55"
}
Exemplo json objeto de resposta:
(Exemplo 1)
{
"status": 0,
"resposta": "OK"
}
Exemplo json contato não existente:
{
"status": 99,
"resposta": "O contato não existe!"
}

Métodos para apagar contatos




ParâmetrosDescrição
Id∗ID do contato

Parâmetros de entrada





ParâmetrosDescriçãoTipo
status
Id da resposta. IDs 0 e 99, sendo 0 para status positivos e 99 para erros
int
resposta Descrição da respostaString

Retorno da exclusão do contato

Listar contatos

http://sms.maxx.mobi/ws/maxxmobi/contatos/

Parâmetros de entrada (JSON):
{
"usuario":"root",
"senha":"root"
}

Json exemplos de retorno com dados:
{
"status": "OK",
"contatos": [
{
"id": 907,
"nome": "João",
"numero": "7199999999999"
},
{
"id": 908,
"nome": "Pedro",
"numero": "7198888888888"
}
]
}
Json exemplos de retorno sem dados:
{
"status": "SEM DADOS",
"contatos": [ ]
}








ParâmetrosDescrição
statusStatus do retorno, tipos de status “OK” quando existe respostas para esse filtro e “SEM DADOS” Quando não contem respostas.
contatosArray de contatos
idId do contato
nomeNome do contato
numeroNúmero do contato

Retorno da lista de contatos

Relacionar grupo/contato

http://sms.maxx.mobi/ws/maxxmobi/relacionar/grupoContato/

 Parâmetros de entrada (JSON):
{
"usuario":"root",
"senha":"root",
"idGrupo":"55",
"idContato":"4666"
}
Exemplo json objeto de resposta:
(Exemplo 1)
{
"status": 0,
"resposta": "OK"
}
Exemplo de relacionamento mal sucedido:
{
"status": 99,
"resposta": " Um dos lados da relação não existe, verifique os IDS!"
}

Métodos para relacionar um contato ao um grupo





ParâmetrosDescrição
IdGrupo∗ID do grupo
idContato∗ID do contato

Parâmetros de entrada





ParâmetrosDescriçãoTipo
statusId da resposta. IDs 0 e 99, sendo 0 para status positivosint
respostaDescrição da respostaString

Retorno da relação grupo/contato

Criar contatos

http://sms.maxx.mobi/ws/maxxmobi/relacionar/grupoContato/

Parâmetros de entrada (JSON):
{
"usuario":"root",
"senha":"root",
"contatos":[
{"nome":"diretor","numero":"71992000000"},
{"nome":"diretor2","numero":"71992000000"}
]
}
Exemplo json objeto de resposta:
(Exemplo 1)
{
"status": 0,
"resposta": "OK"
}
Exemplo de erro ao criar contato:
{
"status": 99,
"resposta": " Erro ao criar contato"
}

Métodos para criar contatos






ParâmetrosDescrição
contatosArray de contatos
nomeNome do contato
numeroNúmero do contato

Parâmetros de entrada





ParâmetrosDescriçãoTipo
statusId da resposta. IDs 0 e 99, sendo 0 para status positivos e 99 para errosint
respostaDescrição da respostaString

Retorno da criação de contato

Atualizar contatos

http://sms.maxx.mobi/ws/maxxmobi/atualizar/contato/


Atualização de nome e número
{
"usuario":"root",
"senha":"root",
"id":"55",
"nome":"Joao",
"numero":"7599999999999"
}

Atualização somente do número
{
"usuario":"root",
"senha":"root",
"id":"55",
"numero":"7599999999999"
}
Atualização somente do nome
{
"usuario":"root",
"senha":"root",
"id":"55",
"nome":"Joao"
}
Exemplo json objeto de resposta:
(Exemplo 1)
{
"status": 0,
"resposta": "OK"
}
Exemplo de erro ao criar contato:
{
"status": 99,
"resposta": "Contato não existe!"
}

Métodos para atualizar contato






ParâmetrosDescrição
id∗ID do contato
nomeNovo nome do contato
numeroNovo número do contato

Parâmetros de entrada





ParâmetrosDescriçãoTipo
statusId da resposta. IDs 0 e 99, sendo 0 para status positivos e 99 para errosint
respostaDescrição da respostaString

Retorno da atualização de contato

Atualizar grupos

http://sms.maxx.mobi/ws/maxxmobi/atualizar/contato/

{
"usuario":"root",
"senha":"root",
"idGrupo":"55",
"nome":"Dev"
}

Exemplo json objeto de resposta:
(Exemplo 1)
{
"status": 0,
"resposta": "OK"
}
Exemplo de erro ao criar contato:
{
"status": 99,
"resposta": "Grupo não existe!"
}

Métodos para atualizar grupo





ParâmetrosDescrição
idGrupo∗ID do grupo
nomeNovo nome do grupo

Parâmetros de entrada





ParâmetrosDescriçãoTipo
status Id da resposta. IDs 0 e 99, sendo 0 para status positivos e 99 para errosint
respostaDescrição da respostaString

Retorno da lista de históricos

Excluir relacionamento Contato x Grupo

http://sms.maxx.mobi/ws/maxxmobi/excluir/relacionamento/grupoContato/

{
"usuario":"root",
"senha":"root",
"idGrupo":"55",
"idContato":"4666"
}


Exemplo json objeto de resposta:
(Exemplo 1)
{
"status": 0,
"resposta": "OK"
}
Exemplo de relacionamento mal sucedido:
{
"status": 99,
"resposta": " Um dos lados da relação não existe, verifique os IDS!"
}

Métodos para excluir o relacionamento entre um contato e grupo





ParâmetrosDescrição
IdGrupo∗ID do grupo
idContato∗ID do contato

Parâmetros de entrada





ParâmetrosDescriçãoTipo
statusstatus Id da resposta. IDs 0 e 99, sendo 0 para status positivos e 99 para errosint
respostaDescrição da respostaString

Retorno da relação grupo x contato

Auditorias de acesso

http://sms.maxx.mobi/ws/maxxmobi/auditoria/historicoAcesso/


{
"usuario":"root",
"senha":"root",
"datainicio":"01-01-2018 00:00:00",
"dataFim":"01-06-2018 23:59:59"

{

Json exemplos de retorno com dados:
"status": "OK",
"historicoAcessoWS": [
{
"dataHora": "05-01-2018 15:23:02",
"idUsuario": 1,
"nomeUsuario": "root",
"idDepartamento": 1,
"nomeDepartamento": "master",
"ip": "0:0:0:0:0:0:0:1 / 0:0:0:0:0:0:0:1 / Maxx"
},
{
"dataHora": "05-01-2018 15:33:49",
"idUsuario": 1,
"nomeUsuario": "root",
"idDepartamento": 1,
"nomeDepartamento": "master",
"ip": "0:0:0:0:0:0:0:1 / 0:0:0:0:0:0:0:1 / Maxx"
}
]
}
Json exemplos de retorno sem dados:
{
"status": "SEM DADOS",
"historicoAcessoWS ": [ ]
}
}

Métodos para auditar histórico de acesso a plataforma





ParâmetrosDescriçãoTipo
datainicioData e hora inicial para obter os dados. Esse período segue o formato DD-MM-AAAA HH:MM:SSString
dataFimData e hora final para obter as dados. Esse período
segue o formato DD-MM-AAAA HH:MM:SS
String

Parâmetros de entrada











ParâmetrosDescrição
statusStatus do retorno, tipos de status “OK” quando existe respostas para esse filtro e “SEM DADOS” Quando não contem respostas.
historicoAcessoWSArray de históricos
dataHoraData e hora do acesso
idUsuarioId do usuário
nomeUsuarioNome do usuário
idDepartamentoId do departamento
nomeDepartamentoNome do departamento
ipIp de acesso ou nome do host

Retorno da lista de históricos

Status do serviço

http://sms.maxx.mobi/ws/maxxmobi/statusservico/

 Exemplos de entrada
Chamada get a url do método.
Json de retorno online:
{
"status":"UP"
}
Json de retorno offline:
{
"status":"DOWN"
}

Método para verificar o status do serviço.

Envio via arquivo (SFTP)

Exemplos de arquivo:  

maxx01;71999999999;mensagem de teste
maxx02;71988888888;mensagem de teste
maxx03;71977777777;mensagem de teste
maxx04;71966666666;mensagem de teste

Método para envio de sms a partir de um arquivo .csv. O processo se inicia a partir da transferência de um arquivo .csv para um caminho fornecido pela MAXXMOBI.






ParâmetrosDescriçãoTipo
idClienteSeu id definido. Isso é útil na necessidade manter o controle da mensagem enviada, desde que você pode definir diferentes ids para mensagens diferentesString
Numero∗Número de telefone para o qual a mensagem será enviada.
Exemplo: 5571991990000
Não é obrigatório o uso do código do pais
String
Mensagem∗Mensagem de texto que vai ser enviada para o número de destinoString

Parâmetros de entrada

SMS API SOAP

Introdução

O Webservice MAXXMOBI disponibiliza uma interface para envio, recebimento e gerenciamento de SMS baseados nas tecnologias XML/SOAP. Essa interface possibilita grande agilidade na integração entre aplicações e a plataforma MAXXMOBI, com a segurança e confiabilidade de uma conexão criptografada.

A tecnologia dos webservices provê um formato destinado à execução de métodos remotos via HTTP, amplamente suportado pelas mais diversas plataformas e servidores de aplicação (PHP, .NET, JEE, etc.). Além disso, é possível executar as funções via URL por parâmetros via GET, ou via POST. Desta forma é possível que aplicações diferentes possam interagir com a plataforma MAXXMOBI, de forma simples e direta.

Principais vantagens do WebService MAXXMOBI:

• Permite às aplicações enviar e receber dados em formatos XML(soap). Cada aplicação pode ter a sua própria “linguagem”, que é traduzida para uma linguagem universal, o formato XML;

• Disponibiliza muito mais segurança no tráfego de mensagens via Internet, através de conexões seguras e publicação do serviço de forma simples e isoladas da base de dados;

• Permite uma integração de sistemas completamente simples, segura, reutilizável e padronizada.

Importação da interface

A utilização do Webservice MAXXMOBI para integração de sistemas e envio de mensagens, deve iniciar com a importação das interfaces disponíveis (contratos) no ambiente de desenvolvimento do cliente através da URL abaixo.

https://api.maxx.mobi/api/wsmaxxmobi?wsdl

Após a importação bem-sucedida das interfaces, o ambiente de desenvolvimento utilizado deve gerar automaticamente uma série de classes e métodos que farão a comunicação entre a aplicação cliente e a plataforma MAXXMOBI.

Autenticação

Exemplos do xml de autenticação:
<autenticacao>
<usuario>maxxmobi</usuario>
<senha>123456</senha>
<token>8f37bd20-3681-11e8-b467-0ed5f89f718b</token>
</autenticacao>
Xml de falha na autenticação:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Autorizacao falhou</faultstring>
<detail>
<ns1:AutorizacaoFault xmlns:ns1="http://wsmaxxmobi.mobi.maxx.com.br/"/>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>

Para o serviço do SMS o Webservice MAXXMOBI utiliza usuário, senha e token para autenticação.
O parâmetro de autenticação tem que ser inserido acima de todos os métodos disponibilizados pela API.






ParâmetrosDescrição
UsuárioUsuário de autenticação
senhaSenha do usuário
TokenUUID fornecido pela maxxmobi

Autenticação com êxito

Quando a autenticação é bem-sucedida o retorno será de acordo com o método utilizado.

Métodos de Envio


Exemplos do xml de envio: (sem agendamento)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsm="http://wsmaxxmobi.mobi.maxx.com.br/">
<soapenv:Header/>
<soapenv:Body>
<wsm:Envios>
<autenticacao>
<usuario>maxxmobi</usuario>
<senha>123456</senha>
<token>8f37bd20-3681-11e8-b467-0ed5f89f718b</token>
</autenticacao>
<mensagens>
<!--1 or more repetitions:-->
<sms>
<!--Optional:-->
<idCliente>maxx01</idCliente>
<numero>71991000000</numero>
<mensagem>Seja bem-vindo!</mensagem>
</sms>
<!--Optional:-->
<agendamento></agendamento>
</mensagens>
</wsm:Envios>
</soapenv:Body>
</soapenv:Envelope>
Exemplos do xml de envio: (com agendamento)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsm="http://wsmaxxmobi.mobi.maxx.com.br/">
<soapenv:Header/>
<soapenv:Body>
<wsm:Envios>
<autenticacao>
<usuario>maxxmobi</usuario>
<senha>123456</senha>
<token>8f37bd20-3681-11e8-b467-0ed5f89f718b</token>
</autenticacao>
<mensagens>
<!--1 or more repetitions:-->
<sms>
<!--Optional:-->
<idCliente>maxx01</idCliente>
<numero>71991000000</numero>
<mensagem>Seja bem-vindo!</mensagem>
</sms>
<!--Optional:-->
<agendamento>01-01-2018 19:59:59</agendamento>
</mensagens>
</wsm:Envios>
</soapenv:Body>
</soapenv:Envelope>
Exemplo XML objeto de resposta:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:EnviosResponse xmlns:ns2="http://wsmaxxmobi.mobi.maxx.com.br/">
<Resposta>
<status>0</status>
<resposta>OK</resposta>
</Resposta>
</ns2:EnviosResponse>
</soap:Body>
</soap:Envelope>

Web método para envio de uma ou mais mensagens SMS’s. O agendamento é realizado a partir do momento em que se coloca a data e o horário do mesmo. Caso isso não ocorra, a mensagem será enviada na mesma hora.








ParâmetrosDescriçãoTipo
Sms∗Lista para enviar um ou mais sms’s.Sms[]
idClienteSeu id definido. Isso é útil no caso de você querer manter o controle da mensagem enviada, desde que você pode definir diferentes ids para mensagens diferentes.String
Numero∗Número de telefone para o qual a mensagem será enviada. Exemplo: 5571991990000 Não é obrigatório o uso do código do pais.String
Mensagem∗Mensagem de texto que vai ser enviada para o número de destinoString
agendamentoA mensagem não será enviada antes desta data. Este campo segue o formato DD-MM-AAAA HH:MM:SS.Ex.: 01-01-2018 19:59:59String

Parâmetros de entrada

O corpo de resposta conterá um objeto XML com informações de rastreamento sobre a mensagem enviada:





ParâmetrosDescriçãoTipo
statusId da resposta. IDs 0 e 99, sendo 0 para status positivos e 99 para erros.int
respostaDescrição da respostaString

Resposta envio SMS

Métodos de retorno


Exemplos de entrada (XML):
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsm="http://wsmaxxmobi.mobi.maxx.com.br/">
<soapenv:Header/>
<soapenv:Body>
<wsm:Retornos>
<autenticacao>
<usuario>maxxmobi</usuario>
<senha>123456</senha>
<token>8f37bd20-3681-11e8-b467-0ed5f89f718b</token>
</autenticacao>
<Periodo>
<datainicio>01-01-2018 00:00:00</datainicio>
<dataFim>01-01-2018 23:59:59</dataFim>
</Periodo>
</wsm:Retornos>
</soapenv:Body>
</soapenv:Envelope>

XML exemplos de retorno com dados:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:RetornosResponse xmlns:ns2="http://wsmaxxmobi.mobi.maxx.com.br/">
<Retorno>
<status>OK</status>
<retornos>
<id>141</id>
<numero>5571981416558</numero>
<data>2018-03-23 18:25:42.0</data>
<mensagem>Ok</mensagem>
</retornos>
<retornos>
<id>212</id>
<numero>5571982576778</numero>
<data>2018-03-26 14:55:47.0</data>
<mensagem>Teste</mensagem>
</retornos>
<retornos>
<id>217</id>
<numero>5543999559111</numero>
<data>2018-03-26 16:01:42.0</data>
<mensagem>Ok</mensagem>
</retornos>
</Retorno>
</ns2:RetornosResponse>
</soap:Body>
</soap:Envelope>
XML exemplos de retorno sem dados:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:RetornosResponse xmlns:ns2="http://wsmaxxmobi.mobi.maxx.com.br/">
<Retorno>
<status>Sem dados</status>
</Retorno>
</ns2:RetornosResponse>
</soap:Body>
</soap:Envelope>

Esse método retorna um XML contendo o status do retorno e os SMSs respondidos num determinado período. Os parâmetros de entrada são:





ParâmetrosDescriçãoTipo
datainicioData e hora inicial para obter as respostas. Esse período segue o formato DD-MM-AAAA HH:MM:SS
String
dataFim
Data e hora final para obter as respostas. Esse período segue o formato DD-MM-AAAA HH:MM:SS
String

Parâmetros de entrada










ParâmetrosDescrição
statusStatus do retorno, tipos de status “OK” quando existe respostas para esse filtro e “SEM DADOS” Quando não contem respostas.
idId da resposta
numeroNúmero do cliente e respondeu
mensagemMensagem respondida
seuIdCaso você tenha inserido o id para a mensagem enviada, ele retornará nesse campo para facilitar uma associação.
dataData e hora da resposta.

Os parâmetros das respostas retornadas seguem o seguinte formato

Métodos de Status

Método para obter o status do SMS.

<soapenv:Envelope xmlns:soapenv="htt://schemas.xmlsoap.org/soap/envelope/" xmns:wsm="http://wsmaxxmobi.mobi.maxx.com.br/">
<soapenv:Header/>
<soapenv:Body>
<wsm:Status>
<autenticacao>
<usuario>maxxmobi</usuario>
<senha>123456</senha>
<token>8f37bd20-3681-11e8-b467-0ed5f89f718b</token>
</autenticacao>
<Status>
<id>fev01</id>
</Status>
</wsm:Status>
</soapenv:Body>
</soapenv:Envelope>
Exemplo de objeto de resposta:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:StatusResponse xmlns:ns2="http://wsmaxxmobi.mobi.maxx.com.br/">
<Informacaoes>
<id>14319</id>
<seuId>maxx0204</seuId>
<numero>71981416558</numero>
<dataEnvio>2018-04-02 00:24:00.0</dataEnvio>
<mensagem>validando envios</mensagem>
<status>ENVIADO</status>
</Informacaoes>
</ns2:StatusResponse>
</soap:Body>
</soap:Envelope>
Exemplo de objeto de resposta de status não encontrado:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:StatusResponse xmlns:ns2="http://wsmaxxmobi.mobi.maxx.com.br/">
<Informacaoes>
<id>0</id>
</Informacaoes>
</ns2:StatusResponse>
</soap:Body>
</soap:Envelope>



ParâmetrosDescrição
idID que foi inserido na mensagem de envio.

Parâmetros de entrada










ParâmetrosDescriçãoTipo
IDID gerado para o envioint
seuIdO seu id inserido na mensagemString
numeroNúmero de destino da mensagem consultadoString
dataEnvioData de envio da mensagemString
mensagemMensagem de texto que foi enviada ao destinatário.String
StatusStatus da mensagem. Esse status pode sofrer uma alteração depois de um tempo, que é quando a operadora nos devolve o status final da mensagem(essa alteração só ocorre uma vez). Status:
PENDENTE: A aplicação ainda não pegou a mensagem.
ENVIADO: A mensagem foi enviada.
ERRO: Ocorreu alguém erro ao tentar enviar a mensagem.
NAO ENVIADO: A mensagem não foi enviada, por falta de crédito ou número invalido.
String

Resposta do Status

E-MAIL MARKETING

Introdução

O Webservice da Plataforma de Email Marketing da MaxxMobi é uma API que permite aos usuários executarem muitas das funções da Plataforma, fazendo requisições usando XML.

Como XML é uma linguagem de uso geral, é possível integrar suas aplicações baseadas em Java com a base da aplicação da Plataforma de Email Marketing da MaxxMobi.

Tornando possível programar o seu sitema para atualizar automaticamente listas de contatos, criar listas, inserir e excluir contatos, enviar campanhas e muitas outras funções.

Este documento destina-se a explicar o propósito destas funções e prover exemplos para usá-las.

Requisitos

Para fazer uso dos exemplos do manual você precisará da versão do PHP 5.1.2 ou superior, porém como qualquer Webservice pode-se utilizar N linguagens de programação, pois os dados trafegados são em XML.

Submetendo uma requisição
Para possibilitar as requisições via XML, primeiro é preciso configurar a Conta de Usuário para essa função.

As requisições XML via POST, com os detalhes da licença gerada, devem ser enviadas para o “XML Path” que pode ser encontrado em “Contas de Usuário -> Editar Usuário”, na seção “Permissões de Usuários” da Plataforma Web de E-mail Marketing da MaxxMobi.

Certifique-se de que a opção “Habilitar o XML API” esteja marcada e salva. O caminho do XML é semelhante ao exemplo seguinte:

http://snwXX.maxx.mobi/xml.php
∗substitua xx pelo número do seu servidor

O “nome do usuário” e o “token do usuário” mencionados nos exemplos seguintes podem ser encontrados na próxima seção sob o título de “XML Username” e “XML Token”, respectivamente. Esta seção irá descrever as diferentes funções que podem ser utilizadas na Plataforma de Email Marketing da MaxxMobi.

Criando lista de contatos

Exemplo de Criação de Lista de Contatos (XML)
<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>lists</requesttype>
<requestmethod>createlists</requestmethod>
<details>
<name>Teste Insercao 2</name>
<ownername>Contato</ownername>
<owneremail>contato@hotmail.com</owneremail>
<bounceemail>contato@hotmail.com</bounceemail>
<replytoemail>contato@hotmail.com</replytoemail>
<format>b</format>
<notifyowner>1</notifyowner>
<ownerid>1</ownerid>
<createdate>2016-08-09</createdate>
</details>
</xmlrequest>
Exemplo de Requisição (PHP)
O código de exemplo abaixo é escrito em PHP e faz uso da funcionalidade CURL do PHP para inserir o
XML acima na aplicação.
<?php
date_default_timezone_set('America/Sao_Paulo');
$when = new DateTime("2016-08-09 10:06:00");
$xml = "<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>lists</requesttype>
<requestmethod>createlists</requestmethod>
<details>
<name>Teste Insercao 2</name>
<ownername>Contato</ownername>
<owneremail>contato@hotmail.com</owneremail>
<bounceemail>contato@hotmail.com</bounceemail>
<replytoemail>contato@hotmail.com</replytoemail>
<format>b</format>
<notifyowner>1</notifyowner>
<ownerid>1</ownerid>
<createdate>2016-08-09</createdate>
</details>
</xmlrequest>";
$ch = curl_init('https://snw00.maxx.mobi/xml.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$result = @curl_exec($ch);
var_dump($result);
if ($result === false) {
echo "Error performing request";
} else {
$xml_doc = simplexml_load_string($result);
echo 'O status é ', $xml_doc->status, '<br/>';
if ($xml_doc->status == 'SUCCESS') {
echo 'Data is ', $xml_doc->data, '<br/>';
} else {
echo 'Error is ', $xml_doc->errormessage, '<br/>';
}
}

Este exemplo irá criar uma lista de contatos, e retornará uma mensagem de erro ou sucesso da criação da lista.

xmlrequest∗

o username∗ – Conta de usuário.
o usertoken∗ – Token único atribuído à conta de usuário utilizada acima.
o requesttype∗ – O nome do arquivo API em questão.
o requestmethod ∗ – Nome da função a ser chamada.
o details ∗

name∗ – Nome da lista de e-mail.
ownername∗ – Nome do proprietário da lista.
owneremail∗ – E-mail do proprietário.
bounceemail∗ - E-mail a ser utilizado como Bounce.
replytoemail∗ - E-mail de resposta (Retorno).
format∗ – Formato que o contato poderá receber e-mail ∗ podendo ser “b” (HTML e Texto), “h” (HTML) e “t” (Texto).
notifyowner∗ – Notifica o contato proprietário toda vez que é adicionado ou excluído contatos na lista.
ownerid∗
createdate∗ – Data da criação da lista.

∗ campo obrigatório
∗ é recomendado deixar o campo format como b, pois tem contatos que bloqueiam o formato HTML ou Text.

Resposta Bem Sucedida
Após uma submissão válida da função “É o contato na lista”, a API XML retornará true se localizar o contato e irá retornar nada se não. O formato é o seguinte:
Response
o status – O valor do campo de status será “SUCCESS ID: ” mais id de todos que tiverem o mesmo nome da lista criada.
o data – Retornará “1” se o contato for localizado.
Resposta Sem Sucesso
Após o envio de uma resposta errada devido a um campo faltando ou um valor inválido, o a função falhará. Uma mensagem de status será retornada via XML no seguinte formato:
Response
o status – O valor do campo de status será “ERROR”.
o errormessage – Uma mensagem textual explicando o porque a requisição falhou dentre deles está o de lista já existente: Lista já existe com esse nome + “nome da lista”.

Adicionar contatos as listas

O exemplo de código a seguir executa uma inserção do usuário “email@domain.com” para a lista de e-mails com ID “1”, status definido como "confirmada", o formato definido para “'html” e com um campo personalizado definido como “John Smith”.
<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>subscribers</requesttype>
<requestmethod>AddSubscriberToList</requestmethod>
<details>
<emailt>
<emailaddress>email@domain.com</emailaddress>
<mailinglist>1</mailinglist>
<format>html</format>
<confirmed>yes</confirmed>
<customfields>
<item>
<fieldid>1</fieldid>
<value>John Smith</value>
</item>
</customfields>
</emailt>
</details>
</xmlrequest>
Exemplo de Requisição (PHP)
O código de exemplo abaixo é escrito em PHP e faz uso da funcionalidade CURL do PHP para inserir o
XML acima na aplicação.
<?php
$xml = '<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>subscribers</requesttype>
<requestmethod>AddSubscriberToList</requestmethod>
<details>
<emailt>
<emailaddress>email@domain.com</emailaddress>
<mailinglist>1</mailinglist>
<format>html</format>
<confirmed>yes</confirmed>
<customfields>
<item>
<fieldid>1</fieldid>
<value>John Smith</value>
</item>
</customfields>
<emailt>
</details>
E-mail Marketing - Documentação Técnica
Página 10 de 39
MaxxMobi www.maxxmobi.com.br
suporte@maxxmobi.com.br A cada dia mais maxx.
</xmlrequest>';
$ch = curl_init(‘https://snw00.maxx.mobi/xml.php’);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$result = @curl_exec($ch);
if($result === false) {
echo "Error performing request";
}
else {
$xml_doc = simplexml_load_string($result);
echo 'Status is ', $xml_doc->status, '<br/>';
if ($xml_doc->status == 'SUCCESS') {
echo 'Data is ', $xml_doc->data, '<br/>';
} else {
echo 'Error is ', $xml_doc->errormessage, '<br/>';
}
}
?>

Este exemplo de requisição irá adicionar contatos às listas já existentes. Adicionando detalhes personalizados a um contato e associados.

O método adicionar os contatos, checando duplicidade de registros, que está sendo inseridos e se o formato do e-mail do contato está correto.
xmlrequest ∗
o username ∗ – Conta de usuário.
o usertoken ∗ – Token único atribuído à conta de usuário utilizada acima.
o requesttype ∗ – O nome do arquivo API em questão.
o requestmethod ∗ – Nome da função a ser chamada.
o details ∗
o emailt ∗ – Cada bloco que for adicionado será um novo contato.
emailaddress ∗ – Endereço de e-mail do contato a ser adicionado.
mailinglistid ∗ – ID da lista que o contato está localizado.
confirmed – Configura o status de confirmação do contato para confirmado ou não (yes ou y ou true ou 1) (O padrão é “não”).
format – Formato das campanhas de e-mail que esse contato prefere receber (html ou h ou text ou t) (O padrão é “texto”).
Customfields ∗
Item ∗
o fieldid – ID do campo personalizado a ser adicionado.
o value– Valor a ser adicionado nesse campo personalizado.
∗ campo obrigatório
∗ Apesar do campo “Customfields” e “Item” serem obrigatórios os mesmo podem ficar vazios (sem dados) porém o mesmo deve estar no XML se não só será adicionado um contato.

Exemplo de Requisição (XML)

Resposta Bem Sucedida
Após a inserção válida, um contato será adicionado à lista de contatos e o número de ID de contatos retornado no seguinte formato:

Response
o status – O valor do campo status será “SUCCESS” para uma resposta bem sucedida.
o data – Números dos IDs dos contatos primeiro e e-mails já existentes na lista em seguida delimitando por um ponto e virgula, exemplo: Data is 1438,1439;test46@hotmail.com,test47@hotmail.com

Resposta Sem Sucesso
Após o envio de uma resposta errada devido a um campo faltando ou um valor inválido a requisição falhará. Uma mensagem de status será retornada via XML. Neste exemplo, será apresentada a seguinte mensagem de erro:
“O XML fornecido não é válido. Por favor, verifique seu documento XML e tente novamente.”
O formato é o seguinte:

Response
o status – O valor do campo de status será “ERROR”.
o errormessage – Uma mensagem textual explicando o porque a requisição falhou dentre deles está o de contato já existente: Contato existente: +

Resposta Quebrada
Este exemplo irá demonstrar uma mensagem de erro que é retornado quando uma requisição não é feita corretamente. Observe que a TAG details no exemplo não está fechada e nenhuma lista de ID é enviada para a função. A estrutura do documento XML para este exemplo é da seguinte forma:
xmlrequest ∗
o username ∗ – Conta do Usuário.
o usertoken ∗ – Token único atribuído à conta de usuário utilizada acima.
o requesttype ∗– O nome do arquivo API em questão.
o requestmethod ∗ – Nome da função a ser chamada.
o details ∗
∗ campo obrigatório

Adicionar contatos as listas sem filtro

Exemplo de Requisição (XML)
O exemplo de código a seguir executa uma inserção do usuário “email@domain.com” para a lista de e-mails com ID “1”, status definido como "confirmada" e o formato definido para “html”.
<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>subscribers</requesttype>
<requestmethod>AddSubscriberToList</requestmethod>
<details>
<emailt>
<emailaddress>email@domain.com</emailaddress>
<mailinglist>1</mailinglist>
<format>html</format>
<confirmed>yes</confirmed>
<customfields>
<item></item>
</customfields>
</emailt>
</details>
</xmlrequest>
Exemplo de Requisição (PHP)
O código de exemplo abaixo é escrito em PHP e faz uso da funcionalidade CURL do PHP para inserir o
XML acima na aplicação.
<?php
$xml = '<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>subscribers</requesttype>
<requestmethod>AddSubscriberToList</requestmethod>
<details>
<emailt>
<emailaddress>email@domain.com</emailaddress>
<mailinglist>1</mailinglist>
<format>html</format>
<confirmed>yes</confirmed>
<customfields>
<item></item>
</customfields>
<emailt>
</details>
</xmlrequest>';
$ch = curl_init(‘https://snw00.maxx.mobi/xml.php’);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$result = @curl_exec($ch);
if($result === false) {
echo "Error performing request";
}
else {
$xml_doc = simplexml_load_string($result);
echo 'Status is ', $xml_doc->status, '<br/>';
if ($xml_doc->status == 'SUCCESS') {
echo 'Data is ', $xml_doc->data, '<br/>';
} else {
echo 'Error is ', $xml_doc->errormessage, '<br/>';
}
}
?>

Com esta requisição será possível adicionar contatos às listas já existentes, de forma mais rápida.
O método adiciona contatos, sem checar duplicidade nos registros que estão sendo inserido e não verifica se o formato do e-mail, do contato, está correto.
Obs.: É preciso higienizar a base antes de adicionar os contatos, para postar sem duplicidades e com o e-mail no formato correto.
A estrutura do documento XML para a requisição é da seguinte forma:
xmlrequest ∗
o username ∗ – Conta de usuário.
o usertoken∗ – Token único atribuído à conta de usuário utilizada acima.
o requesttype ∗ – O nome do arquivo API em questão.
o requestmethod ∗ – Nome da função a ser chamada.
o details ∗
o emailt ∗ – Cada bloco que for adicionado será um novo contato.
emailaddress ∗ – Endereço de e-mail do contato a ser adicionado.
mailinglistid ∗ – ID da lista que o contato está localizado.
confirmed – Configura o status de confirmação do contato para confirmado ou não (yes ou y ou true ou 1) (O padrão é “não”).
format – Formato das campanhas de e-mail que esse contato prefere receber (html ou h ou text ou t) (O padrão é “texto”).
Customfields ∗
Item ∗
o fieldid – ID do campo personalizado a ser adicionado.
o value – Valor a ser adicionado nesse campo personalizado.
∗ campo obrigatório
∗ Apesar do campo “Customfields” e “Item” serem obrigatórios os mesmo podem ficar vazios (sem dados) porém o mesmo deve estar no XML se não só será adicionado um contato.

Resposta Bem Sucedida
Após a inserção válida, um contato será adicionado à lista de contatos e o número de ID de contatos retornado no seguinte formato:
Response
o status – O valor do campo status será “SUCCESS” para uma resposta bem sucedida.
o data – O valor do campo data será “Sucesso na inserção de dados.”

Resposta Sem Sucesso

Após o envio de uma resposta errada devido a um campo faltando ou um valor inválido a requisição falhará. Uma mensagem de status será retornada via XML. Neste exemplo, será apresentada a seguinte mensagem de erro:
“O XML fornecido não é válido. Por favor, verifique seu documento XML e tente novamente.”
O formato é o seguinte:
Response
o status – O valor do campo de status será “ERROR”.
o errormessage – Uma mensagem textual explicando o porquê a requisição falhou dentre deles está o de contato já existente: Contato existente: + “e-mail do contato”.
Resposta Quebrada

Este exemplo irá demonstrar uma mensagem de erro que é retornado quando uma requisição não é feita corretamente. Observe que a TAG details no exemplo não está fechada e nenhuma lista de ID é enviada para a função. A estrutura do documento XML para este exemplo é da seguinte forma:
xmlrequest ∗
o username ∗ – Conta do Usuário.
o usertoken ∗ – Token único atribuído à conta de usuário utilizada acima.
o requesttype ∗ – O nome do arquivo API em questão.
o requestmethod ∗ – Nome da função a ser chamada.
o details
∗ campo obrigatório

Verificar token válido

 Exemplo de Requisição (XML)
O exemplo de código a seguir executa uma verificação de autorização no usertoken para se certificar de que ele é um token válido.
<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>authentication</requesttype>
<requestmethod>xmlapitest</requestmethod>
<details>
</details>
</xmlrequest>

Exemplo de Requisição (PHP)
O código de exemplo abaixo é escrito em PHP e faz uso da funcionalidade CURL do PHP para inserir o
XML acima na aplicação.
<?php
$xml = '<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>authentication</requesttype>
<requestmethod>xmlapitest</requestmethod>
<details>
</details>
</xmlrequest>';

$ch = curl_init('http://www.yourdomain.com/Interspire Email Marketing/xml.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$result = @curl_exec($ch);
if($result === false) {
echo "Error performing request";
}
else {

$xml_doc = simplexml_load_string($result);
echo 'status is ', $xml_doc->status, '<br/>';
if ($xml_doc->status == 'SUCCESS') {
print_r($result);
} else {
echo 'Error is ', $xml_doc->errormessage, '<br/>';
}
}
?>

Este exemplo irá verificar e certificar se o token que está sendo utilizado é válido. Observe que a TAG details não é obrigatório.

xmlrequest ∗
o username ∗ – Nome do usuário usado para acessar o Interspire Email Marketing.
ousertoken ∗ – Token único atribuído à conta de usuário utilizada acima.
orequesttype ∗ – O nome do arquivo API em questão.
o requestmethod ∗ – Nome da função a ser chamada.
o details
∗ - campo obrigatório

Resposta Bem Sucedida
Após a submissão de uma requisição “check token” válida, a XML API retornará true. O formato é o seguinte:
Response
o status – O valor do campo de status será “SUCCESS” para uma resposta bem sucedida.
o data – Esse irá retornar “1” para uma autorização bem sucedida.

Resposta Sem Sucesso
Após o envio de uma resposta errada devido a um campo faltando ou um valor inválido, a verificação de token vai falhar. Uma mensagem de status será respondida via XML. Neste exemplo, será apresentada a seguinte mensagem de erro:
“Detalhes inválidos”
O formato é o seguinte:
• Response
o status – O valor do campo de status será “ERROR”.
o errormessage – Uma mensagem textual explicando o porque a requisição falhou.

Excluir contato

Exemplo de Requisição (XML)

A amostra de código a seguir irá apagar o endereço de e-mail listado na lista de contatos deste ID.
<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>subscribers</requesttype>
<requestmethod>DeleteSubscriber</requestmethod>
<details>
<emailaddress>email@domain.com</emailaddress>
<list>1</list>
</details>
</xmlrequest>
Exemplo de Requisição (PHP)
O código de exemplo abaixo é escrito em PHP e faz uso da funcionalidade CURL do PHP para inserir o
XML acima na aplicação.
<?php
$xml = '<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>subscribers</requesttype>
<requestmethod>DeleteSubscriber</requestmethod>
<details>
<emailaddress>email@domain.com</emailaddress>
<list>1</list>
</details>
</xmlrequest>';

$ch = curl_init(‘https://snw00.maxx.mobi/xml.php’);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$result = @curl_exec($ch);
if($result === false) {
echo "Error performing request";
}
else {
$xml_doc = simplexml_load_string($result);
echo 'status is ', $xml_doc->status, '<br/>';
if ($xml_doc->status == 'SUCCESS') {
print_r($result);
} else {
echo 'Error is ', $xml_doc->errormessage, '<br/>';
}
}
?>

Este exemplo irá excluir um contato de sua lista de contatos.
xmlrequest ∗
o username ∗ – Conta de Usuário.
o usertoken ∗ – Token único atribuído à conta de usuário utilizada acima.
o requesttype ∗ – O nome do arquivo API em questão.
o requestmethod ∗ – Nome da função a ser chamada.
o details ∗
list ∗ – O ID da Lista de Contato que deseja-se fazer a pesquisa.
emailaddress ∗ – O endereço de e-mail do contato que está tentando localizar.
∗ campo obrigatório

Resposta Bem Sucedida
Após uma submissão válida da função “Excluir Contato”, a XML API retornará um status de sucesso no seguinte formato:
Response
o status – O valor do campo de status será “SUCCESS” para uma resposta bem sucedida.
o data
item – O número de assinantes removidos corretamente.
Resposta Sem Sucesso
Após o envio de uma resposta errada devido a um campo faltando ou um valor inválido, a função “Excluir
Contato” irá falhar. Uma mensagem de status será retornada via XML no seguinte formato:
Response
o status – O valor do campo de status será “ERROR”.
o errormessage – Uma mensagem textual explicando o porque a requisição falhou.

Obter dados do campo personalizado

 Exemplo de Requisição (XML)
O exemplo de código a seguir mostrará alguma informação encontrada no campo personalizado para a lista com o ID igual a “1”.
<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>lists</requesttype>
<requestmethod>GetCustomFields</requestmethod>
<details>
<listids> 1 </listids>
</details>
</xmlrequest>
Exemplo de Requisição (PHP)
O código de exemplo abaixo é escrito em PHP e faz uso da funcionalidade CURL do PHP para inserir o
XML acima na aplicação.
<?php
$xml = '<xmlrequest>
<username>usario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>lists</requesttype>
<requestmethod>GetCustomFields</requestmethod>
<details>
<listids>
1
</listids>
</details>
</xmlrequest>
';
$ch = curl_init(‘https://snw00.maxx.mobi/xml.php’);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$result = @curl_exec($ch);
if($result === false) {
echo "Error performing request";
}
else {
$xml_doc = simplexml_load_string($result);
echo 'status is ', $xml_doc->status, '<br/>';
if ($xml_doc->status == 'SUCCESS') {
print_r($result);
} else {
echo 'Error is ', $xml_doc->errormessage, '<br/>';
}
}
?>

A estrutura do documento XML para obter os dados dos campos personalizados de um contato a de uma lista é a seguinte:
xmlrequest∗
o username ∗ – Conta de Usuário.
o usertoken ∗ – Token único atribuído à conta de usuário utilizada acima.
o requesttype ∗ – O nome do arquivo API em questão.
o requestmethod ∗ – Nome da função a ser chamada.
o details ∗
listids ∗ – Os IDs da Lista de Contato que os dados do campo personalizado está sendo requisitado.
∗ campo obrigatório

Resposta Bem Sucedida

Após uma submissão válida do método “Obter dados do campo personalizado”, será retornado um XML no seguinte formato:
Response
o status – O valor do campo de status será “SUCCESS” para uma resposta bem sucedida.
o data
o item
fieldid – O número ID do campo personalizado.
name – O nome do campo personalizado.
fieldtype – O tipo do campo (texto, número etc.).
defaultvalue – Se configurar um valor padrão, ele aparecerá aqui.
required – Se esse campo for requisitado, será preenchido (1 ou 0).
fieldsettings – Versão serializada das configurações do campo personalizado.

Resposta Sem Sucesso

Após o envio de uma resposta errada devido a um campo faltando ou um valor inválido, a função falhará. Uma mensagem de status será retornada via XML no seguinte formato:
Response
o status – O valor do campo de status será “ERROR”.
o errormessage – Uma mensagem textual explicando o porque a requisição falhou.

Obter listas

Exemplo de Requisição (XML)
O exemplo de código a seguir executa um pedido para retornar todas as listas de contatos.
<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>user</requesttype>
<requestmethod>GetLists</requestmethod>
<details>
</details>
</xmlrequest>
Exemplo de Requisição (PHP)
O código de exemplo abaixo é escrito em PHP e faz uso da funcionalidade CURL do PHP para inserir o
XML acima na aplicação.
<?php
$xml = '<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>user</requesttype>
<requestmethod>GetLists</requestmethod>
<details>
</details>
</xmlrequest>';

$ch = curl_init(‘https://snw00.maxx.mobi/xml.php’);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$result = @curl_exec($ch);
if($result === false) {
echo "Error performing request";
}
else {
$xml_doc = simplexml_load_string($result);
echo 'status is ', $xml_doc->status, '<br/>';

if ($xml_doc->status == 'SUCCESS') {
print_r($result);
} else {
echo 'Error is ', $xml_doc->errormessage, '<br/>';
}
}
?>

Este exemplo irá retornar uma lista de todas as listas de contatos e retornar um XML formatado com os dados encontrados. Observe que a TAG detail não é um campo obrigatório.
xmlrequest ∗
o username ∗ – Nome do usuário usado para acessar o Interspire Email Marketing.
o usertoken ∗ – Token único atribuído à conta de usuário utilizada acima.
o requesttype ∗ – O nome do arquivo API em questão.
o requestmethod ∗ – Nome da função a ser chamada.
o details ∗
∗ campo obrigatório

Resposta Bem Sucedida
Após uma submissão válida da função “Obter Listas”, a API XML irá retornar quaisquer dados encontrados na Lista de Contatos e será devolvido em XML formatado, no seguinte formato:
Response
o status – O valor do campo de status será “SUCCESS” para uma resposta bem sucedida.
o data
item
listid – O ID da lista.
name – O nome da lista.
subscribecount – Quantidade dos contatos assinados.
unsubscribecount – Quantidade dos contatos que não são mais assinados.
autorespondercount – Quantidade de auto respostas que estão ligadas a lista de contatos.

Response Sem Sucesso
Após o envio de uma resposta errada devido a um campo faltando ou um valor inválido, a função “Obter Listas” irá falhar. Uma mensagem de status será retornada via XML. Neste exemplo, aparecerá a seguinte mensagem de erro:

“DetalhesIinválidos”

O formato é o seguinte:
Response
o status – O valor do campo de status será “ERROR”.
o errormessage – Uma mensagem textual explicando o porque a requisição falhou.

Obter contatos

Exemplo de Requisição (XML)
O exemplo de código a seguir executa uma verificação na Lista de Contatos com ID “1” para todos os endereços de e-mail que conter a informação “@ yourdomain.com”.
<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>subscribers</requesttype>
<requestmethod>GetSubscribers</requestmethod>
<details>
<searchinfo>
<List>1</List>
<Email>@yourdomain.com</Email>
</searchinfo>
</details>
</xmlrequest>
Exemplo de Requisição (PHP)
O código de exemplo abaixo é escrito em PHP e faz uso da funcionalidade CURL do PHP para inserir o
XML acima na aplicação.
<?php
$xml = '<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>subscribers</requesttype>
<requestmethod>GetSubscribers</requestmethod>
<details>
<searchinfo>
<List>1</List>
<Email>@yourdomain.com</Email>
</searchinfo>
</details>
</xmlrequest>';

$ch = curl_init(‘https://snw00.maxx.mobi/xml.php’);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$result = @curl_exec($ch);
if($result === false) {
echo "Error performing request";
}
else {
$xml_doc = simplexml_load_string($result);
echo 'status is ', $xml_doc->status, '<br/>';
if ($xml_doc->status == 'SUCCESS') {
print_r($result);
} else {
echo 'Error is ', $xml_doc->errormessage, '<br/>';
}
}
?>

Este exemplo irá retornar a quantidade de contatos na lista em questão, bem como uma lista de todos os contatos que estão localizados nessa lista e retornará um XML formatado, com os dados encontrados formatados.
xmlrequest ∗
o username ∗ – Conta de Usuário.
o usertoken ∗ – Token único atribuído à conta de usuário utilizada acima.
o requesttype ∗ – O nome do arquivo API em questão.
o requestmethod ∗– Nome da função a ser chamada.
o details ∗
searchinfo
List ∗ – O ID da Lista de Contatos que deseja realizar a pesquisa.
Email ∗ – O endereço de e-mail do contato que está tentando localizar.
∗ campo obrigatório

Resposta Bem Sucedida
Após uma submissão válida da função “Obter Contatos”, a API XML retornará a quantidade de contatos na lista em questão, juntamente com uma lista dos endereços de e-mail de contato num XML formatado.
O formato é o seguinte:
Response
o status – O valor do campo de status será “SUCCESS” para uma resposta bem sucedida.
o data
count – Quantidade de assinantes
subscriberlist – Uma lista de endereços de e-mail dos assinantes.
Resposta Sem Sucesso
Após o envio de uma resposta errada devido a um campo faltando ou um valor inválido, a função “Obter
Contatos” irá falhar. Uma mensagem de status será retornada via XML no seguinte formato:
Response
o status – O valor do campo de status será “ERROR”.
o errormessage – Uma mensagem textual explicando o porque a requisição falhou.

É Contato na lista

Exemplo de Requisição (XML)
O exemplo de código a seguir executa uma verificação em uma lista de contatos para ver se um determinado contato é listado nele.
<xmlrequest>
<username>user</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>subscribers</requesttype>
<requestmethod>IsSubscriberOnList</requestmethod>
<details>
<Email>email@yourdomain.com</Email>
<List>1</List>
</details>
</xmlrequest>
Exemplo de Requisição (PHP)
O código de exemplo abaixo é escrito em PHP e faz uso da funcionalidade CURL do PHP para inserir o
XML acima na aplicação.
<?php
$xml = '<xmlrequest>
<username>user</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>subscribers</requesttype>
<requestmethod>IsSubscriberOnList</requestmethod>
<details>
<Email>email@yourdomain.com</Email>
<List>1</List>
</details>
</xmlrequest>';

$ch = curl_init(‘https://snw00.maxx.mobi/xml.php’);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$result = @curl_exec($ch);
if($result === false) {
echo "Error performing request";
}
else {
$xml_doc = simplexml_load_string($result);
echo 'status is ', $xml_doc->status, '<br/>';
if ($xml_doc->status == 'SUCCESS') {
print_r($result);
} else {
echo 'Error is ', $xml_doc->errormessage, '<br/>';
}
}
?>

Este exemplo irá verificar se um determinado contato está localizado em uma determinada lista de contatos.
xmlrequest ∗
o username ∗ – Conta de Usuário.
o usertoken ∗ – Token único atribuído à conta de usuário utilizada acima.
o requesttype ∗ – O nome do arquivo API em questão.
o requestmethod ∗ – Nome da função a ser chamada.
o details ∗
Email ∗ – Endereço de e-mail do contato que está sendo procurado.
List ∗ – O ID da lista de contato que quer procurar.
∗ campo obrigatório

Resposta Bem Sucedida
Após uma submissão válida da função “É o contato na lista”, a API XML retornará true se localizar o contato e irá retornar nada se não. O formato é o seguinte:
Response
o status – O valor do campo de status será “SUCCESS” para uma resposta bem sucedida.
o data – Retornará “1” se o contato for localizado.
Resposta Sem Sucesso
Após o envio de uma resposta errada devido a um campo faltando ou um valor inválido, o a função falhará. Uma mensagem de status será retornada via XML no seguinte formato:
Response
o status – O valor do campo de status será “ERROR”.
o errormessage – Uma mensagem textual explicando o porque a requisição falhou.

Criando campanhas

Exemplo de Criação de Campanha (XML)
O exemplo de código a seguir cria e enviar uma nova campanha de e-mail.
<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>newsletters</requesttype>
<requestmethod>createnewnewsletter</requestmethod>
<details>
<name>Teste 1</name>
<format>html</format>
<active>1</active>
<archive>1</archive>
<subject>Teste</subject>
<textbody>teste teste</textbody>
<htmlbody><![CDATA[<html><head></head><body>teste teste</body></html>]]></htmlbody>
<when>1470096602</when>
<approved>1</approved>
<lists>
<listid>1</listid>
<listid>5</listid>
</lists>
</details>
</xmlrequest>
Exemplo de Requisição (PHP)
O código de exemplo abaixo é escrito em PHP e faz uso da funcionalidade CURL do PHP para inserir o
XML acima na aplicação.
<?php
date_default_timezone_set('America/Sao_Paulo');
$when = new DateTime("2016-08-04 10:25:00");
$xml = "<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>newsletters</requesttype>
<requestmethod>createnewnewsletter</requestmethod>
<details>
<name>Teste 9</name>
<format>html</format>
<active>1</active>
<archive>1</archive>
<subject>Teste</subject>
<textbody>teste teste</textbody>
<htmlbody><![CDATA[<html><head></head><body>teste teste</body></html>]]></htmlbody>
<when>".$when->getTimestamp()."</when>
<approved>1</approved>
<lists>
<listid>1</listid>
<listid>5</listid>
</lists>
</details>
</xmlrequest>";
$ch = curl_init('https://snw00.maxx.mobi/xml.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$result = @curl_exec($ch);
var_dump($result);
//exit();
if ($result === false) {
echo "Error performing request";
} else {
$xml_doc = simplexml_load_string($result);
echo 'Status is ', $xml_doc->status, '<br/>';
if ($xml_doc->status == 'SUCCESS') {
echo 'Data is ', $xml_doc->data, '<br/>';
} else {
echo 'Error is ', $xml_doc->errormessage, '<br/>';
}
}

Este exemplo irá criar e enviar uma campanha de e-mail marketing, e retornará uma mensagem de erro ou sucesso da criação da campanha.
xmlrequest ∗
o username ∗ – Conta de Usuário.
o usertoken ∗ – Token único atribuído à conta de usuário utilizada acima.
o requesttype ∗ – O nome do arquivo API em questão.
o requestmethod ∗ – Nome da função a ser chamada.
o details ∗
name ∗ – Nome da Campanha de e-mail.
format ∗ – Formato do e-mail∗
active ∗ -

Resposta Bem Sucedida
Após uma submissão válida da função “É o contato na lista”, a API XML retornará true se localizar o contato e irá retornar nada se não. O formato é o seguinte:
Response
o status – O valor do campo de status será “SUCCESS” para uma resposta bem sucedida.
o data – Retornará “1” se o contato for localizado.
Resposta Sem Sucesso
Após o envio de uma resposta errada devido a um campo faltando ou um valor inválido, o a função falhará. Uma mensagem de status será retornada via XML no seguinte formato:
Response
o status – O valor do campo de status será “ERROR”.
o errormessage – Uma mensagem textual explicando o porquê a requisição falhou.

Buscar campanhas enviadas

Exemplo de Requisição de E-mails Abertos (XML)
O exemplo de código a seguir irá retornar as campanhas enviadas separadas por “;”, você pode buscar os resultados alterando o campo start, ele começa com o 0 igualmente um array, caso não retorne nada é porque não tem mais resultados após o número inserido no campo start.
<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>newsletters</requesttype>
<requestmethod>getnewslettersends</requestmethod>
<perpage>1</perpage>
<details>
<start>0</start>
</details>
</xmlrequest>
Exemplo de Requisição (PHP)
O código de exemplo abaixo é escrito em PHP e faz uso da funcionalidade CURL do PHP para inserir o
XML acima na aplicação.
<?php
date_default_timezone_set('America/Sao_Paulo');
$when = new DateTime("2016-08-05 15:56:00");
$xml = "<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>newsletters</requesttype>
<requestmethod>getnewslettersends</requestmethod>
<details>
<start>0</start>
</details>
</xmlrequest>";
$ch = curl_init('https://snw00.maxx.mobi/xml.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$result = @curl_exec($ch);
var_dump($result);
if ($result === false) {
echo "Error performing request";
} else {
$xml_doc = simplexml_load_string($result);
echo 'Status é: ', $xml_doc->status, '<br/>';
if ($xml_doc->status == 'SUCCESS') {
echo 'Dados: ', $xml_doc->data, '<br/>';
} else {
echo 'Erro: ', $xml_doc->errormessage, '<br/>';
}
}

Este exemplo irá retornar todas as campanhas enviadas.

Resposta Bem Sucedida
Após uma submissão válida da função, a API XML retornará true se o pedido for correto e irá retornar os dados: ID de envio, nome da campanha, inicio de envio, final de envio, quantitativo de contatos no envio, links clicados, quantidade de e-mails abertos, quantidade de pedido de remoção, quantidade de bounce leve e quantidade de bounce pesado, todos separados por virgula, o ponto e virgula é usado para separar resultados. O formato é o seguinte:

Response
o status – O valor do campo de status será “SUCCESS” para uma resposta bem sucedida.
o data – 1,TOTAL MENSAL,12-12-2016 15:56:01,12-12-2016 15:58:01,3,2,2,0,0,0;11,TOTAL MENSAL 2,12-12-2016 16:33:01,12-12-2016 16:41:01,3,0,2,0,0,0;2,TOTAL MENSAL 3,12-12-2016 16:46:02,12-12-2016 16:51:10,5153,297,551,1,24,232;3,GERAL 4,12-12-2016 21:38:01,12-12-2016 22:09:59,2350,129,269,0,14,146;4,TALENTO,23-01-2017 22:56:01,23-01-2017 22:57:02,2,0,0,0,2,0;5,TALENTO,23-01-2017 23:00:01,23-01-2017 23:01:02,3,0,0,0,3,0;6,TALENTO,24-01-2017 13:27:01,24-01-2017 13:28:01,4,12,19,0,3,0;7,TALENTO,24-01-2017 15:41:01,24-01-2017 15:43:02,4,33,111,0,3,0;8,TALENTO,24-01-2017 22:45:01,24-01-2017 22:49:01,4,17,23,0,3,0;9,CONFEITARIA CLASSICA,26-01-2017 22:36:01,26-01-2017 22:42:02,81,7,11,0,4,8;

Resposta Sem Sucesso
Após o envio de uma resposta errada devido a um campo faltando ou um valor inválido, a função falhará. Uma mensagem de status será retornada via XML no seguinte formato:

Response
o status – O valor do campo de status será “ERROR”.
o errormessage – Uma mensagem textual explicando o porquê a requisição falhou.

Buscar e-mails com erros

<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>newsletters</requesttype>
<requestmethod>getnewsletterbounce</requestmethod>
<details>
<start>0</start>
<stats>99</stats>
</details>
</xmlrequest>
Exemplo de Requisição (PHP)
O código de exemplo abaixo é escrito em PHP e faz uso da funcionalidade CURL do PHP para inserir o
XML acima na aplicação.
<?php
date_default_timezone_set('America/Sao_Paulo');
$when = new DateTime("2016-08-05 15:56:00");
$xml = "<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>newsletters</requesttype>
<requestmethod>getnewsletterbounce </requestmethod>
<details>
<start>0</start>
<stats>99</stats>
</details>
</xmlrequest>";
$ch = curl_init('https://snw00.maxx.mobi/xml.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$result = @curl_exec($ch);
var_dump($result);
if ($result === false) {
echo "Error performing request";
} else {
$xml_doc = simplexml_load_string($result);
echo 'Status é: ', $xml_doc->status, '<br/>';
if ($xml_doc->status == 'SUCCESS') {
echo 'Dados: ', $xml_doc->data, '<br/>';
} else {
echo 'Erro: ', $xml_doc->errormessage, '<br/>';
}
}

Este exemplo irá retornar todas os e-mails com erros.
Exemplo de Requisição de E-mails Abertos (XML)
O exemplo de código a seguir irá retornar as campanhas enviadas separadas por “;”, no campo stats deve ser inserido o ID da campanha enviada(pode ser visto no item 15), podemos buscar os resultados alterando o campo start, ele começa com o 0 igualmente um array, caso não retorne nada é porque não tem mais resultados após o número inserido no campo start.

Resposta Bem Sucedida
Após uma submissão válida da função, a API XML retornará true se o pedido for correto e irá retornar os dados: ID da lista, email, data da inserção no bounce, tipo do bounce e descrição do bounce, todos separados por virgula, o ponto e virgula é usado para separar resultados. O formato é o seguinte:
Response
o status – O valor do campo de status será “SUCCESS” para uma resposta bem sucedida.

o data – 99,email1@gmail.com,03-05-2018 14:38:36,hard,emaildoesntexist;100,email2@uol.com,03-05-2018 14:38:36,hard,emaildoesntexist;101,email3@hotmail.com,03-05-2018 14:38:40,soft,overquota;101,email1@yahoo.com,03-05-2018 14:38:49,soft,overquota;102,email1@maxxmobi.com.br,03-05-2018 14:38:49,soft,overquota;1111,email7@maxxmobi.com.br,03-05-2018 14:38:55,hard,emaildoesntexist;999,email1@maxxmobi.com.br,03-05-2018 14:39:50,hard,emaildoesntexist;163,email1@maxxmobi.com.br,05-05-2018 14:39:06,soft,remoteconfigerror;

Resposta Sem Sucesso
Após o envio de uma resposta errada devido a um campo faltando ou um valor inválido, a função falhará. Uma mensagem de status será retornada via XML no seguinte formato:
Response
o status – O valor do campo de status será “ERROR”.
o errormessage – Uma mensagem textual explicando o porquê a requisição falhou.

Buscar aberturas de e-mail

 Exemplo de Requisição de E-mails Abertos (XML)
O exemplo de código a seguir irá retornar as campanhas enviadas separadas por “;”, no campo stats deve ser inserido o ID da campanha enviada(pode ser visto no item 15), podemos buscar os resultados alterando o campo start, ele começa com o 0 igualmente um array, caso não retorne nada é porque não tem mais resultados após o número inserido no campo start.
<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>newsletters</requesttype>
<requestmethod>getnewsletteropens</requestmethod>
<details>
<start>0</start>
<stats>99</stats>
</details>
</xmlrequest>
Exemplo de Requisição (PHP)
O código de exemplo abaixo é escrito em PHP e faz uso da funcionalidade CURL do PHP para inserir o
XML acima na aplicação.
<?php
date_default_timezone_set('America/Sao_Paulo');
$when = new DateTime("2016-08-05 15:56:00");
$xml = "<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>newsletters</requesttype>
<requestmethod>getnewsletteropens</requestmethod>
<details>
<start>0</start>
<stats>99</stats>
</details>
</xmlrequest>";
$ch = curl_init('https://snw00.maxx.mobi/xml.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$result = @curl_exec($ch);
var_dump($result);

if ($result === false) {
echo "Error performing request";
} else {
$xml_doc = simplexml_load_string($result);
echo 'Status é: ', $xml_doc->status, '<br/>';
if ($xml_doc->status == 'SUCCESS') {
echo 'Dados: ', $xml_doc->data, '<br/>';
} else {
echo 'Erro: ', $xml_doc->errormessage, '<br/>';
}
}

Este exemplo irá retornar todas as aberturas de e-mails.

Resposta Bem Sucedida
Após uma submissão válida da função, a API XML retornará true se o pedido for correto e irá retornar os dados: ID da abertura, email, data e hora da abertura, IP de abertura e tipo da abertura, todos separados por virgula, o ponto e virgula é usado para separar resultados. O formato é o seguinte:

Response
o status – O valor do campo de status será “SUCCESS” para uma resposta bem sucedida.
o data – 999,email1@gmail.com,03-05-2018 14:35:22,66.102.8.16,h;777,email1@hotmail.com,03-05-2018 14:35:49,66.102.8.16,h;666,email1@uol.com,03-05-2018 14:35:51,66.102.8.18,h;555,email1@maxxmobi.com.br,03-05-2018 14:36:06,173.205.33.19,h;111,email1@maxx.mobi,03-05-2018 14:36:25,66.102.8.16,h;222,email1@net.com.br,03-05-2018 14:36:32,66.249.88.4,h;333,email2@net.com.br,03-05-2018 14:36:34,177.42.45.101,h;1112,email1s@net.com.br,03-05-2018 14:36:42,66.249.88.3,h;2633795,email1@maxxmobi.com.br,03-05-2018 14:37:01,66.102.8.20,h;2633836,email1@maxx.mobi,03-05-2018 14:38:30,179.184.9.203,h;

Resposta Sem Sucesso

Após o envio de uma resposta errada devido a um campo faltando ou um valor inválido, a função falhará. Uma mensagem de status será retornada via XML no seguinte formato:
Response
o status – O valor do campo de status será “ERROR”.
o errormessage – Uma mensagem textual explicando o porquê a requisição falhou.

Buscar e-mails que pediram remoção

Exemplo de Requisição de E-mails Abertos (XML)
O exemplo de código a seguir irá retornar as campanhas enviadas separadas por “;”, no campo stats deve ser inserido o ID da campanha enviada(pode ser visto no item 15), podemos buscar os resultados alterando o campo start, ele começa com o 0 igualmente um array, caso não retorne nada é porque não tem mais resultados após o número inserido no campo start.
<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>newsletters</requesttype>
<requestmethod>getnewsletterunsubscribe</requestmethod>
<details>
<start>0</start>
<stats>99</stats>
</details>
</xmlrequest>
Exemplo de Requisição (PHP)
O código de exemplo abaixo é escrito em PHP e faz uso da funcionalidade CURL do PHP para inserir o
XML acima na aplicação.
<?php
date_default_timezone_set('America/Sao_Paulo');
$when = new DateTime("2016-08-05 15:56:00");
$xml = "<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>newsletters</requesttype>
<requestmethod>getnewsletterunsubscribe</requestmethod>
<details>
<start>0</start>
<stats>99</stats>
</details>
</xmlrequest>";
$ch = curl_init('https://snw00.maxx.mobi/xml.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$result = @curl_exec($ch);
var_dump($result);

if ($result === false) {
echo "Error performing request";
} else {
$xml_doc = simplexml_load_string($result);
echo 'Status é: ', $xml_doc->status, '<br/>';
if ($xml_doc->status == 'SUCCESS') {
echo 'Dados: ', $xml_doc->data, '<br/>';
} else {
echo 'Erro: ', $xml_doc->errormessage, '<br/>';
}
}

Este exemplo irá retornar todos os pedidos de remoção.

Resposta Bem Sucedida

Após uma submissão válida da função, a API XML retornará true se o pedido for correto e irá retornar os dados: ID da lista, e-mail, data da inserção, IP do pedido de remoção, FBL(se ele marcou como SPAM),todos separados por virgula, o ponto e virgula é usado para separar resultados.

O formato é o seguinte:
Response
o status – O valor do campo de status será “SUCCESS” para uma resposta bem sucedida.
o data – 1,pepe@maxx.mobi,03-05-2018 14:43:00,70.42.131.106,0;2,nenem@maxx.mobi,03-05-2018 14:43:00,70.42.131.106,0;3,pepe1@maxx.mobi,
03-05-2018 14:43:00,70.42.131.106,0;4,nenem2@maxx.mobi,03-05-2018 14:43:00,70.42.131.106,0;
Resposta Sem Sucesso
Após o envio de uma resposta errada devido a um campo faltando ou um valor inválido, a função falhará. Uma mensagem de status será retornada via XML no seguinte formato:

Response
o status – O valor do campo de status será “ERROR”.
o errormessage – Uma mensagem textual explicando o porquê a requisição falhou.

Visualizar domínios com quantitativo

Exemplo de Requisição de Visualizar Domínios com quantitativo (XML)
O exemplo de código a seguir irá requisitar os domínios e seu quantitativo por domínio.
<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>newsletters</requesttype>
<requestmethod>getdomainnewsletterunsubscribe</requestmethod> E-mail Marketing
<details>
<jobid>138</jobid>
</details>
</xmlrequest>
Exemplo de Requisição (PHP)
O código de exemplo abaixo é escrito em PHP e faz uso da funcionalidade CURL do PHP para inserir o
XML acima na aplicação.
<?php
date_default_timezone_set('America/Sao_Paulo');
$when = new DateTime("2016-08-05 15:56:00");
$xml = <xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>newsletters</requesttype>
<requestmethod>getdomainnewsletterunsubscribe</requestmethod> E-mail Marketing
<details>
<jobid>138</jobid>
</details>
</xmlrequest>";
$ch = curl_init('https://snw00.maxx.mobi/xml.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$result = @curl_exec($ch);
var_dump($result);

if ($result === false) {
echo "Error performing request";
} else {
$xml_doc = simplexml_load_string($result);
echo 'Status é: ', $xml_doc->status, '<br/>';
if ($xml_doc->status == 'SUCCESS') {
echo 'Dados: ', $xml_doc->data, '<br/>';
} else {
echo 'Erro: ', $xml_doc->errormessage, '<br/>';
}
}

Este exemplo irá retornar os domínios e seu quantitativo por domínio.

Resposta Bem Sucedida
Após uma submissão válida da função “É o contato na lista”, a API XML retornará true se localizar o contato e irá retornar nada se não. O formato é o seguinte:
Response
o status – O valor do campo de status será “SUCCESS” para uma resposta bem sucedida.
o data – Retornará por exemplo “@gmail.com,200,@hotmail.com,300”.

Resposta Sem Sucesso
Após o envio de uma resposta errada devido a um campo faltando ou um valor inválido, o a função falhará. Uma mensagem de status será retornada via XML no seguinte formato:
Response
o status – O valor do campo de status será “ERROR”.
o errormessage – Uma mensagem textual explicando o porque a requisição falhou.

Visualizar campanhas por período

Exemplo de Requisição de Visualizar Domínios com quantitativo (XML)
O exemplo de código a seguir irá requisitar os domínios e seu quantitativo por domínio.
<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>newsletters</requesttype>
<requestmethod>getnewslettersdate</requestmethod>
<details>
<datei>2011-01-01</datei>
<datef>2011-01-01</datef>
</details>
</xmlrequest>

Exemplo de Requisição (PHP)
O código de exemplo abaixo é escrito em PHP e faz uso da funcionalidade CURL do PHP para inserir o
XML acima na aplicação.
<?php
date_default_timezone_set('America/Sao_Paulo');
$when = new DateTime("2016-08-05 15:56:00");
$xml = “<xmlrequest>
<username>usuario</username>
<usertoken>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</usertoken>
<requesttype>newsletters</requesttype>
<requestmethod>getnewslettersdate</requestmethod>
<details>
<datei>2011-01-01</datei>
<datef>2011-01-01</datef>
</details>
</xmlrequest>";
$ch = curl_init('https://snw00.maxx.mobi/xml.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$result = @curl_exec($ch);
var_dump($result);
if ($result === false) {
echo "Error performing request";
} else {
$xml_doc = simplexml_load_string($result);
echo 'Status é: ', $xml_doc->status, '<br/>';
if ($xml_doc->status == 'SUCCESS') {
echo 'Dados: ', $xml_doc->data, '<br/>';
} else {
echo 'Erro: ', $xml_doc->errormessage, '<br/>';
}

}

Este exemplo irá retornar as campanhas limitadas por período de início e termino.

Resposta Bem Sucedida
Após uma submissão válida da função “É o contato na lista”, a API XML retornará true se localizar o contato e irá retornar nada se não. O formato é o seguinte:
Response
o status – O valor do campo de status será “SUCCESS” para uma resposta bem sucedida.
o data – Retornará nome campanha, inicio da campanha, final da campanha, enviado, links clicados, e-mails abertos, e-mails abertos únicos, html open, html open único, text open, text open único, como pode-se ver no exemplo a seguir: “teste, 2011-01-01, 2011-01-01,3,1,2,2,2,2,0,0”.
Resposta Sem Sucesso
Após o envio de uma resposta errada devido a um campo faltando ou um valor inválido, o a função falhará. Uma mensagem de status será retornada via XML no seguinte formato:
Response
o status – O valor do campo de status será “ERROR”.
o errormessage – Uma mensagem textual explicando o porque a requisição falhou.

ERROS

Erro de código Significado
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
410 Gone
418 I’m a teapot
429 Too Many Requests
500 Internal Server Error
503 Service Unavailable

SUPORTE

Abertura de chamados Enviar um email para: suporte@maxxmobi.com.br
Telefone +55 (71) 3487-0202