curl --request POST \
--url https://api.nuvia.ai/v1/inboxes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"number": "<string>",
"webhook_url": "<string>",
"default_agent": "<string>",
"test_mode": {
"enabled": true,
"test_numbers": [
"<string>"
]
},
"coexistence_enabled": "<unknown>",
"process_unsupported_messages": true,
"disable_inbound_ai": true,
"pdf_local_text_extraction": true,
"default_owner": "<string>"
}
'import requests
url = "https://api.nuvia.ai/v1/inboxes"
payload = {
"name": "<string>",
"number": "<string>",
"webhook_url": "<string>",
"default_agent": "<string>",
"test_mode": {
"enabled": True,
"test_numbers": ["<string>"]
},
"coexistence_enabled": "<unknown>",
"process_unsupported_messages": True,
"disable_inbound_ai": True,
"pdf_local_text_extraction": True,
"default_owner": "<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({
name: '<string>',
number: '<string>',
webhook_url: '<string>',
default_agent: '<string>',
test_mode: {enabled: true, test_numbers: ['<string>']},
coexistence_enabled: '<unknown>',
process_unsupported_messages: true,
disable_inbound_ai: true,
pdf_local_text_extraction: true,
default_owner: '<string>'
})
};
fetch('https://api.nuvia.ai/v1/inboxes', 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/inboxes",
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([
'name' => '<string>',
'number' => '<string>',
'webhook_url' => '<string>',
'default_agent' => '<string>',
'test_mode' => [
'enabled' => true,
'test_numbers' => [
'<string>'
]
],
'coexistence_enabled' => '<unknown>',
'process_unsupported_messages' => true,
'disable_inbound_ai' => true,
'pdf_local_text_extraction' => true,
'default_owner' => '<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/inboxes"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"number\": \"<string>\",\n \"webhook_url\": \"<string>\",\n \"default_agent\": \"<string>\",\n \"test_mode\": {\n \"enabled\": true,\n \"test_numbers\": [\n \"<string>\"\n ]\n },\n \"coexistence_enabled\": \"<unknown>\",\n \"process_unsupported_messages\": true,\n \"disable_inbound_ai\": true,\n \"pdf_local_text_extraction\": true,\n \"default_owner\": \"<string>\"\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/inboxes")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"number\": \"<string>\",\n \"webhook_url\": \"<string>\",\n \"default_agent\": \"<string>\",\n \"test_mode\": {\n \"enabled\": true,\n \"test_numbers\": [\n \"<string>\"\n ]\n },\n \"coexistence_enabled\": \"<unknown>\",\n \"process_unsupported_messages\": true,\n \"disable_inbound_ai\": true,\n \"pdf_local_text_extraction\": true,\n \"default_owner\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nuvia.ai/v1/inboxes")
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 \"name\": \"<string>\",\n \"number\": \"<string>\",\n \"webhook_url\": \"<string>\",\n \"default_agent\": \"<string>\",\n \"test_mode\": {\n \"enabled\": true,\n \"test_numbers\": [\n \"<string>\"\n ]\n },\n \"coexistence_enabled\": \"<unknown>\",\n \"process_unsupported_messages\": true,\n \"disable_inbound_ai\": true,\n \"pdf_local_text_extraction\": true,\n \"default_owner\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"name": "<string>",
"number": "<string>",
"company": "<unknown>",
"channel": "<string>",
"status": "ACTIVE",
"_id": "<string>",
"webhook_url": "<string>",
"test_mode": {
"enabled": true,
"test_numbers": [
"<string>"
]
},
"default_agent": "<unknown>",
"api_wap_config": {
"phone_number_id": "<string>",
"business_id": "<string>",
"business_token": "<string>",
"waba_id": "<string>"
},
"evolution_api_config": {
"base_url": "<string>",
"api_key": "<string>",
"instance_name": "<string>"
},
"linkedin_config": {
"account_id": "<string>",
"provider": "<string>",
"display_name": "<string>",
"profile_url": "<string>",
"public_identifier": "<string>"
},
"general_config": {
"include_operator_name_on_message": true
},
"coexistence_enabled": true,
"process_unsupported_messages": true,
"disable_inbound_ai": true,
"pdf_local_text_extraction": true,
"default_owner": "<string>",
"createdAt": "<unknown>",
"updatedAt": "<unknown>"
}Criar inbox
Cria um novo inbox (canal de atendimento) para receber e enviar mensagens. Suporta múltiplos canais: WhatsApp Business API, Evolution API, etc.
curl --request POST \
--url https://api.nuvia.ai/v1/inboxes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"number": "<string>",
"webhook_url": "<string>",
"default_agent": "<string>",
"test_mode": {
"enabled": true,
"test_numbers": [
"<string>"
]
},
"coexistence_enabled": "<unknown>",
"process_unsupported_messages": true,
"disable_inbound_ai": true,
"pdf_local_text_extraction": true,
"default_owner": "<string>"
}
'import requests
url = "https://api.nuvia.ai/v1/inboxes"
payload = {
"name": "<string>",
"number": "<string>",
"webhook_url": "<string>",
"default_agent": "<string>",
"test_mode": {
"enabled": True,
"test_numbers": ["<string>"]
},
"coexistence_enabled": "<unknown>",
"process_unsupported_messages": True,
"disable_inbound_ai": True,
"pdf_local_text_extraction": True,
"default_owner": "<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({
name: '<string>',
number: '<string>',
webhook_url: '<string>',
default_agent: '<string>',
test_mode: {enabled: true, test_numbers: ['<string>']},
coexistence_enabled: '<unknown>',
process_unsupported_messages: true,
disable_inbound_ai: true,
pdf_local_text_extraction: true,
default_owner: '<string>'
})
};
fetch('https://api.nuvia.ai/v1/inboxes', 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/inboxes",
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([
'name' => '<string>',
'number' => '<string>',
'webhook_url' => '<string>',
'default_agent' => '<string>',
'test_mode' => [
'enabled' => true,
'test_numbers' => [
'<string>'
]
],
'coexistence_enabled' => '<unknown>',
'process_unsupported_messages' => true,
'disable_inbound_ai' => true,
'pdf_local_text_extraction' => true,
'default_owner' => '<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/inboxes"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"number\": \"<string>\",\n \"webhook_url\": \"<string>\",\n \"default_agent\": \"<string>\",\n \"test_mode\": {\n \"enabled\": true,\n \"test_numbers\": [\n \"<string>\"\n ]\n },\n \"coexistence_enabled\": \"<unknown>\",\n \"process_unsupported_messages\": true,\n \"disable_inbound_ai\": true,\n \"pdf_local_text_extraction\": true,\n \"default_owner\": \"<string>\"\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/inboxes")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"number\": \"<string>\",\n \"webhook_url\": \"<string>\",\n \"default_agent\": \"<string>\",\n \"test_mode\": {\n \"enabled\": true,\n \"test_numbers\": [\n \"<string>\"\n ]\n },\n \"coexistence_enabled\": \"<unknown>\",\n \"process_unsupported_messages\": true,\n \"disable_inbound_ai\": true,\n \"pdf_local_text_extraction\": true,\n \"default_owner\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nuvia.ai/v1/inboxes")
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 \"name\": \"<string>\",\n \"number\": \"<string>\",\n \"webhook_url\": \"<string>\",\n \"default_agent\": \"<string>\",\n \"test_mode\": {\n \"enabled\": true,\n \"test_numbers\": [\n \"<string>\"\n ]\n },\n \"coexistence_enabled\": \"<unknown>\",\n \"process_unsupported_messages\": true,\n \"disable_inbound_ai\": true,\n \"pdf_local_text_extraction\": true,\n \"default_owner\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"name": "<string>",
"number": "<string>",
"company": "<unknown>",
"channel": "<string>",
"status": "ACTIVE",
"_id": "<string>",
"webhook_url": "<string>",
"test_mode": {
"enabled": true,
"test_numbers": [
"<string>"
]
},
"default_agent": "<unknown>",
"api_wap_config": {
"phone_number_id": "<string>",
"business_id": "<string>",
"business_token": "<string>",
"waba_id": "<string>"
},
"evolution_api_config": {
"base_url": "<string>",
"api_key": "<string>",
"instance_name": "<string>"
},
"linkedin_config": {
"account_id": "<string>",
"provider": "<string>",
"display_name": "<string>",
"profile_url": "<string>",
"public_identifier": "<string>"
},
"general_config": {
"include_operator_name_on_message": true
},
"coexistence_enabled": true,
"process_unsupported_messages": true,
"disable_inbound_ai": true,
"pdf_local_text_extraction": true,
"default_owner": "<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
Nome do inbox
1Número de telefone do inbox (formato internacional)
1^\+.*URL do webhook para notificações
1ID do agente padrão para novas conversas
Canal de comunicação (WAP_AUTO_CLOSER, etc)
WAP_AUTO_CLOSER, WEB_V2, EVOLUTION_API, LINKEDIN, EMAIL Configurações da API do WhatsApp Business
Show child attributes
Show child attributes
Configurações da Evolution API
Show child attributes
Show child attributes
Configurações de modo de teste
Show child attributes
Show child attributes
Configurações gerais do inbox
Show child attributes
Show child attributes
Campo somente leitura, sincronizado automaticamente a partir da Meta.
Permite que mensagens UNSUPPORTED da Meta sigam o fluxo normal do agent em vez de serem puladas. Default false.
Opt-in. Quando true, a IA não atende inbound orgânico (novas conversas nascem para atendimento humano); a IA segue atendendo leads de campanha. Default false (aplicado via Mongoose schema).
Opt-in do modo híbrido de leitura de PDF. Quando true, o texto é extraído localmente e a IA recebe o TEXTO em vez da imagem (ela segue no circuito, só reorganiza): sem limite de tamanho e sem tokens de visão. Cai de volta no caminho de visão quando a leitura local não serve (PDF escaneado, não-PDF, ilegível). Default false.
Opt-in. ID do usuário dono padrão de qualquer conversa nova deste inbox (dono explícito do caller tem precedência). Null/ausente = sem dono padrão.
Resposta
Inbox criado com sucesso
Nome do inbox
Número de telefone do inbox
Empresa proprietária do inbox
Canal de comunicação (WAP_AUTO_CLOSER, etc)
Status do inbox (ACTIVE, DELETED)
ACTIVE, DELETED ID do inbox
URL do webhook para notificações
Configurações de modo de teste
Show child attributes
Show child attributes
Agente padrão para novas conversas
Configurações da API do WhatsApp Business (apenas para canal)
Show child attributes
Show child attributes
Configurações da Evolution API
Show child attributes
Show child attributes
Configurações do LinkedIn (Unipile)
Show child attributes
Show child attributes
Configurações gerais do inbox
Show child attributes
Show child attributes
Habilita ingestao de smb_message_echoes (WhatsApp Coexistence).
Permite que mensagens UNSUPPORTED da Meta sigam o fluxo normal do agent.
Opt-in. Quando true, a IA não atende inbound orgânico (novas conversas para atendimento humano); a IA segue atendendo leads de campanha.
Opt-in do modo híbrido de leitura de PDF. Quando true, o texto é extraído localmente e a IA recebe o TEXTO em vez da imagem (ela segue no circuito, só reorganiza): sem limite de tamanho e sem tokens de visão. Cai de volta no caminho de visão quando a leitura local não serve (PDF escaneado, não-PDF, ilegível). Default false.
ID do usuário dono padrão das conversas novas deste inbox (opt-in). Null = sem dono padrão.
Data de criação do inbox
Data de atualização do inbox