Aqui você encontra um modelo dos parâmetros do customer, que deverão ser encaminhados à Zenvia para o envio das comunicações com arquivo, em Base64. Customer é um objeto que representa o cliente dentro da plataforma.
Body de exemplo
{
"id":"111.111.111-11",
"name":"João da Silva",
"nickname":"JoaoSilva",
"personType":"natural",
"gender":"male",
"maritalStatus":"married",
"birthDate":"1980-07-15T03:00:00.000Z",
"emails":[
{
"address":"[email protected]",
"kind":"comercial"
}
],
"phones":[
{
"number":"5511999999999",
"kind":"cellphone"
}
],
"addresses":[
{
"street":"Rua João da Silva Filho Junior",
"number":"999",
"complement":"Complemento",
"neighborhood":"João da Silva Filho",
"city":"São Paulo",
"state":"SP",
"zipCode":"12345-000",
"country":{
"id":"76",
"name":"Brasil"
},
"kind":"residential",
"geocode":[1200, 92929]
}
],
"documents":{
"cpf":"111.111.111-11"
}
}
Atributos
| Campo | Descrição |
id |
Deve ser a chave única para identificação do customer e que será utilizada para updates futuros. Normalmente utilizado com dados de CPF ou CNPJ. Caso um mesmo customer seja informado com outro valor neste campo, o customer será DUPLICADO. Obrigatório |
name |
(nome) Obrigatório |
nickname |
(apelido) nome curto e fácil de recordar, pelo qual uma pessoa se identifica |
personType |
(Tipo pessoa). Dados suportados: natural/legal |
gender |
(Sexo) Dados suportados: male/female |
maritalStatus |
(Estado Civil) Dados suportados: married/divorced/widowed/single/clmarried/other |
birthDate |
(Data Aniversário) formato suportado: yyyy-MM-ddThh:mm:ss.dddZ |
emails |
Lista dos e-mails do customer ➢ address: deve estar como lower case. Obrigatório ➢ kind: deve seguir o modelo tipo de contato. Obrigatório |
emails.kind |
Identifica o tipo do e-mail. Os valores válidos são: ➢ residential ➢ comercial ➢ other |
emails.address |
É o endereço de e-mail do destinatário da comunicação. |
phones |
Lista dos telefones do customer ➢ number: deve estar no formato 551199999999. Obrigatório ➢ Kind: deve seguir o modelo tipo de contato. Obrigatório |
phones.kind |
Identifica o tipo do telefone. Os valores válidos são: ➢ residential ➢ comercial ➢ cellphone ➢ other |
phones.address |
É o número do telefone do destinatário. Para envio de comunicação esse número deve ser um celular. |
addresses |
Lista dos endereços do customer ➢ street, number, complement, neighborhood, city, devem estar previamente formatados corretamente. ➢ state: deve possuir o valor da UF. ➢ zipCode: deve estar no formato: 0000-000. ➢ country.id: deve estar de acordo com a ISO 3166-1. Deve-se utilizar números inteiros (sem zero à esquerda). Obrigatório ➢ country.name: nome do país. ➢ kind: deve seguir o modelo tipo de contato. Obrigatório ➢ geocode: deve ser latitude e longitude. |
addresses.street |
Descrição do endereço (rua, Av, etc) |
addresses.number |
Número do endereço |
addresses.complement |
Complemento do endereço |
addresses.neighborhood |
Bairro |
addresses.state |
Sigla do estado |
addresses.zipCode |
Número do CEP |
addresses.country.id |
Identificação do país de acordo com a ISO 3166-1. Deve-se utilizar números inteiros (sem zero à esquerda) |
addresses.country.name |
Nome do país |
addresses.kind |
Identifica o tipo do endereço. Os valores válidos são: ➢ residential ➢ comercial ➢ other |
addresses.geocode |
Informação de geolocalização do cliente |
documents |
Lista dos documentos do customer, formato suportado: {“chave”: “valor”} |
Campo files
O objetivo desse campo é informar para a plataforma como serão enviados os arquivos de uma determinada comunicação. Esse campo une informações dos campos Kit, Documents e Attachments.
...
"files": [
{
"type": "storage",
"mode": "Link",
"isMain": true,
"storagePath": "/meudiretorio",
"filename": "fatura_directone.pdf",
"description": "Boleto",
"correlationId": "46299F1DF4C9C9CCEDB4D49DAE6C254",
"dueDate": "1980-07-15T03:00:00.000Z",
"documentNumber": "122545455",
"tags": ["BOLETO", "1VIA"],
"base64File": {
"content": null,
"contentType": null
}
},
{
"type": "Base64",
"mode": "link",
"isMain": false,
"filename": " test.txt",
"description": "Carteirinha",
"correlationId": "46299F1DF4C9C9CCEDB4D49DAE6C254",
"base64File": {
"content": "VGhpcyBpcyB5b3VyIGF0dGFjaGVkIGZpbGUhISEK",
"contentType": "text/plain"
}
}
Atributos
| Campo | Descrição |
type |
Indica a localização do arquivo, ou seja, onde ele está armazenado. Seu objetivo é permitir que a plataforma consiga enviar arquivos armazenados em qualquer fonte externa, como por exemplo um storage do cliente. Nesta versão apenas os valores Storage, Base64 e External são suportados. O valor Storage indica para a plataforma que o arquivo está armazenado em nosso Storage Service, que é um serviço de gerenciamento de arquivos. O valor Base64 indica que será utilizado o arquivo enviado em formato Base64 na requisição. O valor External indica para a plataforma que não haverá armazenamento no nosso serviço de Storage, o cliente poderá enviar um link no novo campo adicionado no payload com o nome de “Link”. Esse campo é específico para tipo External. |
mode |
Indica a forma como o arquivo será disponibilizado dentro da comunicação. Attachment: o arquivo será anexado a comunicação caso o canal permita (e-mail, WhatsApp, RCS, etc). Link: O arquivo será enviado no corpo da comunicação como um URL. Info: Utilizando apenas para o serviço Customer. |
isMain |
Indica que o arquivo é o arquivo principal dentro do conjunto de arquivos enviados, caso exista mais de um. Essa informação é importante para que a plataforma consiga identificar qual dos arquivos deverá ser enviado como link quando utilizamos a variável ${link_documento} |
storagePath |
É o caminho onde o documento está armazenado no storage. Esse campo deve ser informado apenas para quando o tipo for ‘Storage’ (type = ‘Storage’) |
filename |
É o nome do arquivo. Esse nome será exibido no e-mail quando for um anexo ou será o nome que os navegadores utilizarão para salvá-lo em disco em caso de download. |
description |
É uma descrição para o arquivo. Será utilizada para a feature de loop de documentos. |
correlationId |
É uma chave de identificação única do arquivo e é utilizada para a realização do download. |
nodes |
Esse campo é opcional. Deve ser utilizado quando houver necessidade de especificar para qual nó de canal o arquivo deve ser tratado e enviado. Por exemplo: é possível parametrizar que um arquivo deve ser enviado para o canal de e-mail e outro para o canal de WhatsApp. |
nodes.name |
Indica em qual nó de canal o arquivo será disponibilizado. Exemplo: E-mail 2 (deve ser idêntico ao nome dado à comunicação dentro da jornada). Attachment: O arquivo será anexado a comunicação caso o canal permita (e-mail, WhatsApp, RCS, etc). Link: O arquivo será enviado no corpo da comunicação como um URL. |
Campo tipo Base64File
| Campo | Descrição |
content |
Arquivo em formato Base64. Obrigatório quando Type igual a base64. |
contentType |
ContentType do arquivo. Obrigatório quando Type igual a base64. |
Campo tipo Date
É importante que todos os campos do tipo date sejam enviados utilizando o formato ISO-86001.
O controle do fuso horário assim como o horário de verão é de responsabilidade de quem está chamando a API.
Exemplo: 1980-07-15T03:00:00.000Z
Campo tipo External
"files": [
{
"type": "External",
"mode": "Link",
"isMain": true,
"filename": "Zenvia-PDF-FAQ.pdf",
"description": "test External Certificate - 18/04",
"correlationId": "test External Certificate",
"dueDate": "2023-04-18T03:00:00Z",
"tags": [],
"link": https://www.zenvia.com/wp-content/uploads/2019/04/Zenvia-PDF-FAQ.pdf"
}
]
| Campo | Descrição |
Link |
É o campo do link que será enviado no disparo. Obrigatório quando o Type é External. Funcional para os “Mode”: Link, Attachment |