curl --request POST \
--url https://api.nuvia.ai/v1/messages/send-document \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"conversationId": "<string>",
"message": {
"content": "<string>",
"contentType": "DOCUMENT",
"attachment": "<string>",
"quoteSourceId": "<string>",
"contentAttributes": {
"inReplyToExternalId": "<string>"
}
}
}
'import requests
url = "https://api.nuvia.ai/v1/messages/send-document"
payload = {
"conversationId": "<string>",
"message": {
"content": "<string>",
"contentType": "DOCUMENT",
"attachment": "<string>",
"quoteSourceId": "<string>",
"contentAttributes": { "inReplyToExternalId": "<string>" }
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
conversationId: '<string>',
message: {
content: '<string>',
contentType: 'DOCUMENT',
attachment: '<string>',
quoteSourceId: '<string>',
contentAttributes: {inReplyToExternalId: '<string>'}
}
})
};
fetch('https://api.nuvia.ai/v1/messages/send-document', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.nuvia.ai/v1/messages/send-document",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'conversationId' => '<string>',
'message' => [
'content' => '<string>',
'contentType' => 'DOCUMENT',
'attachment' => '<string>',
'quoteSourceId' => '<string>',
'contentAttributes' => [
'inReplyToExternalId' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.nuvia.ai/v1/messages/send-document"
payload := strings.NewReader("{\n \"conversationId\": \"<string>\",\n \"message\": {\n \"content\": \"<string>\",\n \"contentType\": \"DOCUMENT\",\n \"attachment\": \"<string>\",\n \"quoteSourceId\": \"<string>\",\n \"contentAttributes\": {\n \"inReplyToExternalId\": \"<string>\"\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.nuvia.ai/v1/messages/send-document")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"conversationId\": \"<string>\",\n \"message\": {\n \"content\": \"<string>\",\n \"contentType\": \"DOCUMENT\",\n \"attachment\": \"<string>\",\n \"quoteSourceId\": \"<string>\",\n \"contentAttributes\": {\n \"inReplyToExternalId\": \"<string>\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nuvia.ai/v1/messages/send-document")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"conversationId\": \"<string>\",\n \"message\": {\n \"content\": \"<string>\",\n \"contentType\": \"DOCUMENT\",\n \"attachment\": \"<string>\",\n \"quoteSourceId\": \"<string>\",\n \"contentAttributes\": {\n \"inReplyToExternalId\": \"<string>\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"content": "<string>",
"content_type": "TEXT",
"message_type": "INCOMING",
"status": "SENT",
"conversation": "<unknown>",
"inbox": "<unknown>",
"contact": "<unknown>",
"company": "<unknown>",
"_id": "<string>",
"additional_attributes": "<unknown>",
"sender_type": "CONTACT",
"source_id": "<string>",
"user": "<unknown>",
"attachments": [
"<unknown>"
],
"errors": [
{
"code": "<string>",
"title": "<string>",
"message": "<string>"
}
],
"createdAt": "<unknown>",
"updatedAt": "<unknown>"
}Enviar documento
Envia uma mensagem com documento (PDF, DOC, XLS, etc) para uma conversa. Requer um attachment (anexo) previamente criado. Opcionalmente pode citar (responder) outra mensagem da mesma conversa com quoteSourceId — que é o id da mensagem NO CANAL (wamid na Meta, key.id na Evolution, message_id na Unipile), não o _id da Nuvia.
curl --request POST \
--url https://api.nuvia.ai/v1/messages/send-document \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"conversationId": "<string>",
"message": {
"content": "<string>",
"contentType": "DOCUMENT",
"attachment": "<string>",
"quoteSourceId": "<string>",
"contentAttributes": {
"inReplyToExternalId": "<string>"
}
}
}
'import requests
url = "https://api.nuvia.ai/v1/messages/send-document"
payload = {
"conversationId": "<string>",
"message": {
"content": "<string>",
"contentType": "DOCUMENT",
"attachment": "<string>",
"quoteSourceId": "<string>",
"contentAttributes": { "inReplyToExternalId": "<string>" }
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
conversationId: '<string>',
message: {
content: '<string>',
contentType: 'DOCUMENT',
attachment: '<string>',
quoteSourceId: '<string>',
contentAttributes: {inReplyToExternalId: '<string>'}
}
})
};
fetch('https://api.nuvia.ai/v1/messages/send-document', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.nuvia.ai/v1/messages/send-document",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'conversationId' => '<string>',
'message' => [
'content' => '<string>',
'contentType' => 'DOCUMENT',
'attachment' => '<string>',
'quoteSourceId' => '<string>',
'contentAttributes' => [
'inReplyToExternalId' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.nuvia.ai/v1/messages/send-document"
payload := strings.NewReader("{\n \"conversationId\": \"<string>\",\n \"message\": {\n \"content\": \"<string>\",\n \"contentType\": \"DOCUMENT\",\n \"attachment\": \"<string>\",\n \"quoteSourceId\": \"<string>\",\n \"contentAttributes\": {\n \"inReplyToExternalId\": \"<string>\"\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.nuvia.ai/v1/messages/send-document")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"conversationId\": \"<string>\",\n \"message\": {\n \"content\": \"<string>\",\n \"contentType\": \"DOCUMENT\",\n \"attachment\": \"<string>\",\n \"quoteSourceId\": \"<string>\",\n \"contentAttributes\": {\n \"inReplyToExternalId\": \"<string>\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nuvia.ai/v1/messages/send-document")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"conversationId\": \"<string>\",\n \"message\": {\n \"content\": \"<string>\",\n \"contentType\": \"DOCUMENT\",\n \"attachment\": \"<string>\",\n \"quoteSourceId\": \"<string>\",\n \"contentAttributes\": {\n \"inReplyToExternalId\": \"<string>\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"content": "<string>",
"content_type": "TEXT",
"message_type": "INCOMING",
"status": "SENT",
"conversation": "<unknown>",
"inbox": "<unknown>",
"contact": "<unknown>",
"company": "<unknown>",
"_id": "<string>",
"additional_attributes": "<unknown>",
"sender_type": "CONTACT",
"source_id": "<string>",
"user": "<unknown>",
"attachments": [
"<unknown>"
],
"errors": [
{
"code": "<string>",
"title": "<string>",
"message": "<string>"
}
],
"createdAt": "<unknown>",
"updatedAt": "<unknown>"
}Autorizações
Token JWT de autenticação
Cabeçalhos
Identificador da empresa-alvo. Obrigatório apenas para API Keys globais (type=global). Ignorado para API Keys de empresa e usuários humanos.
Corpo
Resposta
Documento enviado com sucesso
Conteúdo da mensagem
Tipo de conteúdo: TEXT, IMAGE, AUDIO, VIDEO, DOCUMENT, TEMPLATE, etc.
TEXT, CARDS, AUDIO, VIDEO, IMAGE, DOCUMENT, CONTACTS, LOCATION, TEMPLATE, STICKER, UNSUPPORTED Tipo de mensagem: INCOMING, OUTGOING, ACTIVITY
INCOMING, OUTGOING, ACTIVITY Status da mensagem: SENT, DELIVERED, READ, FAILED
SENT, DELIVERED, READ, FAILED Conversa associada à mensagem
Inbox da mensagem
Contato da mensagem
Empresa da mensagem
ID da mensagem
Atributos adicionais da mensagem
Tipo do remetente: CONTACT, USER, BOT, SYSTEM
CONTACT, USER, BOT, SYSTEM ID da mensagem na plataforma externa
Usuário que enviou a mensagem
Anexos da mensagem
Lista de erros associados à mensagem
Show child attributes
Show child attributes
Data de criação da mensagem
Data de atualização da mensagem