Empresas (CRM)
O recurso Empresa (CRM) representa organizações registradas no módulo de CRM — pessoas jurídicas como clientes, fornecedores ou parceiros. Não confundir com a empresa do tenant (a conta Maestron), que é resolvida automaticamente a partir do token. Identificadores usam o prefixo comp_.
Cada empresa pode ter contatos e negócios vinculados. A resolução do tenant é descrita em Autenticação.
Modelo de dados
Seção intitulada “Modelo de dados”| Campo | Tipo | Descrição |
|---|---|---|
id | string | Identificador prefixado por comp_. |
name | string | Razão social ou nome fantasia da empresa. |
document | string | null | Documento fiscal (CNPJ). |
email | string | null | E-mail de contato principal. |
phone | string | null | Telefone de contato. |
website | string | null | URL do site. |
industry | string | null | Setor de atuação. |
size | string | null | Porte da empresa. Enum: micro, small, medium, large, enterprise. |
annual_revenue | integer | null | Faturamento anual em centavos. Ex.: R$ 1.500.000,00 vira 150000000. |
address | object | null | Endereço estruturado. |
tags | string[] | Lista de tags. |
owner_id | string | null | Usuário responsável (user_). |
created_at | string | Data de criação (ISO-8601). |
updated_at | string | Data da última atualização (ISO-8601). |
Listar empresas
Seção intitulada “Listar empresas”Listar empresas
Retorna a coleção paginada de empresas do CRM.
Parâmetros de query
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
page | integer | — | Página atual (padrão: 1). |
per_page | integer | — | Itens por página (padrão: 20, máx: 100). |
search | string | — | Busca textual por nome, documento ou e-mail. |
sort | string | — | Campo de ordenação (ex.: name, created_at). |
direction | string | — | Direção da ordenação: asc ou desc. |
size | string | — | Filtra pelo porte: micro, small, medium, large, enterprise. |
industry | string | — | Filtra pelo setor de atuação. |
owner_id | string | — | Filtra pelo usuário responsável. |
curl -X GET https://api.maestron.com.br/v1/crm/companies \
-H "Authorization: Bearer SEU_TOKEN" <?php
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://api.maestron.com.br/v1/crm/companies', [
'headers' => [
'Authorization' => 'Bearer SEU_TOKEN',
'Accept' => 'application/json',
],
]);
$data = json_decode($response->getBody(), true); import requests
headers = {"Authorization": "Bearer SEU_TOKEN"}
response = requests.get(
"https://api.maestron.com.br/v1/crm/companies",
headers=headers,
)
data = response.json() const response = await fetch("https://api.maestron.com.br/v1/crm/companies", {
method: "GET",
headers: {
"Authorization": "Bearer SEU_TOKEN",
},
});
const data = await response.json(); using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "SEU_TOKEN");
var response = await client.GetAsync("https://api.maestron.com.br/v1/crm/companies");
var data = await response.Content.ReadAsStringAsync(); GET /crm/companies HTTP/1.1
Host: api.maestron.com.br
Authorization: Bearer SEU_TOKEN Respostas
{
"message": "Empresas listadas.",
"data": [
{
"id": "comp_01J9Z3K8",
"name": "Acme Tecnologia Ltda",
"document": "12.345.678/0001-90",
"email": "contato@acme.com.br",
"phone": "+55 11 4000-0000",
"website": "https://acme.com.br",
"industry": "Tecnologia",
"size": "medium",
"annual_revenue": 150000000,
"address": {
"street": "Av. Paulista, 1000",
"city": "São Paulo",
"state": "SP",
"zip": "01310-100",
"country": "BR"
},
"tags": [
"parceiro",
"prioritário"
],
"owner_id": "user_01J9Z3K8",
"created_at": "2026-06-20T14:30:00Z",
"updated_at": "2026-06-20T14:30:00Z"
}
],
"meta": {
"current_page": 1,
"per_page": 20,
"total": 1,
"last_page": 1
}
} {
"message": "Não autenticado."
} Obter uma empresa
Seção intitulada “Obter uma empresa”Obter empresa
Retorna uma única empresa pelo identificador.
Parâmetros de caminho
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | string | Sim | Identificador da empresa (comp_). |
curl -X GET https://api.maestron.com.br/v1/crm/companies/{id} \
-H "Authorization: Bearer SEU_TOKEN" <?php
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://api.maestron.com.br/v1/crm/companies/{id}', [
'headers' => [
'Authorization' => 'Bearer SEU_TOKEN',
'Accept' => 'application/json',
],
]);
$data = json_decode($response->getBody(), true); import requests
headers = {"Authorization": "Bearer SEU_TOKEN"}
response = requests.get(
"https://api.maestron.com.br/v1/crm/companies/{id}",
headers=headers,
)
data = response.json() const response = await fetch("https://api.maestron.com.br/v1/crm/companies/{id}", {
method: "GET",
headers: {
"Authorization": "Bearer SEU_TOKEN",
},
});
const data = await response.json(); using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "SEU_TOKEN");
var response = await client.GetAsync("https://api.maestron.com.br/v1/crm/companies/{id}");
var data = await response.Content.ReadAsStringAsync(); GET /crm/companies/{id} HTTP/1.1
Host: api.maestron.com.br
Authorization: Bearer SEU_TOKEN Respostas
{
"message": "Empresa retornada.",
"data": {
"id": "comp_01J9Z3K8",
"name": "Acme Tecnologia Ltda",
"document": "12.345.678/0001-90",
"email": "contato@acme.com.br",
"phone": "+55 11 4000-0000",
"website": "https://acme.com.br",
"industry": "Tecnologia",
"size": "medium",
"annual_revenue": 150000000,
"address": {
"street": "Av. Paulista, 1000",
"city": "São Paulo",
"state": "SP",
"zip": "01310-100",
"country": "BR"
},
"tags": [
"parceiro",
"prioritário"
],
"owner_id": "user_01J9Z3K8",
"created_at": "2026-06-20T14:30:00Z",
"updated_at": "2026-06-20T14:30:00Z"
}
} {
"message": "Não autenticado."
} {
"message": "Empresa não encontrada."
} Criar empresa
Seção intitulada “Criar empresa”Criar empresa
Cria uma nova empresa no CRM.
Corpo (body)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Razão social ou nome fantasia. |
document | string | — | Documento fiscal (CNPJ). |
email | string | — | E-mail de contato principal. |
phone | string | — | Telefone de contato. |
website | string | — | URL do site. |
industry | string | — | Setor de atuação. |
size | string | — | Porte: micro, small, medium, large, enterprise. |
annual_revenue | integer | — | Faturamento anual em centavos. |
address | object | — | Endereço estruturado. |
tags | string[] | — | Lista de tags. |
owner_id | string | — | Usuário responsável (user_). |
curl -X POST https://api.maestron.com.br/v1/crm/companies \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Tecnologia Ltda",
"document": "12.345.678/0001-90",
"email": "contato@acme.com.br",
"phone": "+55 11 4000-0000",
"website": "https://acme.com.br",
"industry": "Tecnologia",
"size": "medium",
"annual_revenue": 150000000,
"address": {
"street": "Av. Paulista, 1000",
"city": "São Paulo",
"state": "SP",
"zip": "01310-100",
"country": "BR"
},
"tags": [
"parceiro",
"prioritário"
],
"owner_id": "user_01J9Z3K8"
}' <?php
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://api.maestron.com.br/v1/crm/companies', [
'headers' => [
'Authorization' => 'Bearer SEU_TOKEN',
'Accept' => 'application/json',
],
'json' => [
'name' => 'Acme Tecnologia Ltda',
'document' => '12.345.678/0001-90',
'email' => 'contato@acme.com.br',
'phone' => '+55 11 4000-0000',
'website' => 'https://acme.com.br',
'industry' => 'Tecnologia',
'size' => 'medium',
'annual_revenue' => 150000000,
'address' => [object Object],
'tags' => parceiro,prioritário,
'owner_id' => 'user_01J9Z3K8',
],
]);
$data = json_decode($response->getBody(), true); import requests
headers = {"Authorization": "Bearer SEU_TOKEN"}
payload = {
"name": "Acme Tecnologia Ltda",
"document": "12.345.678/0001-90",
"email": "contato@acme.com.br",
"phone": "+55 11 4000-0000",
"website": "https://acme.com.br",
"industry": "Tecnologia",
"size": "medium",
"annual_revenue": 150000000,
"address": [object Object],
"tags": parceiro,prioritário,
"owner_id": "user_01J9Z3K8",
}
response = requests.post(
"https://api.maestron.com.br/v1/crm/companies",
headers=headers,
json=payload,
)
data = response.json() const response = await fetch("https://api.maestron.com.br/v1/crm/companies", {
method: "POST",
headers: {
"Authorization": "Bearer SEU_TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Acme Tecnologia Ltda",
"document": "12.345.678/0001-90",
"email": "contato@acme.com.br",
"phone": "+55 11 4000-0000",
"website": "https://acme.com.br",
"industry": "Tecnologia",
"size": "medium",
"annual_revenue": 150000000,
"address": {
"street": "Av. Paulista, 1000",
"city": "São Paulo",
"state": "SP",
"zip": "01310-100",
"country": "BR"
},
"tags": [
"parceiro",
"prioritário"
],
"owner_id": "user_01J9Z3K8"
}),
});
const data = await response.json(); using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "SEU_TOKEN");
var payload = new StringContent(
"{\"name\":\"Acme Tecnologia Ltda\",\"document\":\"12.345.678/0001-90\",\"email\":\"contato@acme.com.br\",\"phone\":\"+55 11 4000-0000\",\"website\":\"https://acme.com.br\",\"industry\":\"Tecnologia\",\"size\":\"medium\",\"annual_revenue\":150000000,\"address\":{\"street\":\"Av. Paulista, 1000\",\"city\":\"São Paulo\",\"state\":\"SP\",\"zip\":\"01310-100\",\"country\":\"BR\"},\"tags\":[\"parceiro\",\"prioritário\"],\"owner_id\":\"user_01J9Z3K8\"}",
System.Text.Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://api.maestron.com.br/v1/crm/companies", payload);
var data = await response.Content.ReadAsStringAsync(); POST /crm/companies HTTP/1.1
Host: api.maestron.com.br
Authorization: Bearer SEU_TOKEN
Content-Type: application/json
{
"name": "Acme Tecnologia Ltda",
"document": "12.345.678/0001-90",
"email": "contato@acme.com.br",
"phone": "+55 11 4000-0000",
"website": "https://acme.com.br",
"industry": "Tecnologia",
"size": "medium",
"annual_revenue": 150000000,
"address": {
"street": "Av. Paulista, 1000",
"city": "São Paulo",
"state": "SP",
"zip": "01310-100",
"country": "BR"
},
"tags": [
"parceiro",
"prioritário"
],
"owner_id": "user_01J9Z3K8"
} Respostas
{
"message": "Empresa criada.",
"data": {
"id": "comp_01J9Z3K8",
"name": "Acme Tecnologia Ltda",
"document": "12.345.678/0001-90",
"email": "contato@acme.com.br",
"phone": "+55 11 4000-0000",
"website": "https://acme.com.br",
"industry": "Tecnologia",
"size": "medium",
"annual_revenue": 150000000,
"address": {
"street": "Av. Paulista, 1000",
"city": "São Paulo",
"state": "SP",
"zip": "01310-100",
"country": "BR"
},
"tags": [
"parceiro",
"prioritário"
],
"owner_id": "user_01J9Z3K8",
"created_at": "2026-06-20T14:30:00Z",
"updated_at": "2026-06-20T14:30:00Z"
}
} {
"message": "Não autenticado."
} {
"message": "Já existe uma empresa com este documento."
} {
"message": "Os dados fornecidos são inválidos.",
"errors": {
"name": [
"O campo nome é obrigatório."
],
"size": [
"O porte selecionado é inválido."
],
"annual_revenue": [
"O faturamento anual deve ser um inteiro em centavos."
]
}
} Atualizar empresa
Seção intitulada “Atualizar empresa”Atualizar empresa
Atualiza parcialmente uma empresa existente.
Parâmetros de caminho
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | string | Sim | Identificador da empresa (comp_). |
Corpo (body)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | — | Razão social ou nome fantasia. |
document | string | — | Documento fiscal (CNPJ). |
email | string | — | E-mail de contato principal. |
phone | string | — | Telefone de contato. |
website | string | — | URL do site. |
industry | string | — | Setor de atuação. |
size | string | — | Porte: micro, small, medium, large, enterprise. |
annual_revenue | integer | — | Faturamento anual em centavos. |
address | object | — | Endereço estruturado. |
tags | string[] | — | Lista de tags. |
owner_id | string | — | Usuário responsável (user_). |
curl -X PATCH https://api.maestron.com.br/v1/crm/companies/{id} \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Tecnologia S.A.",
"size": "large",
"annual_revenue": 500000000
}' <?php
$client = new \GuzzleHttp\Client();
$response = $client->request('PATCH', 'https://api.maestron.com.br/v1/crm/companies/{id}', [
'headers' => [
'Authorization' => 'Bearer SEU_TOKEN',
'Accept' => 'application/json',
],
'json' => [
'name' => 'Acme Tecnologia S.A.',
'size' => 'large',
'annual_revenue' => 500000000,
],
]);
$data = json_decode($response->getBody(), true); import requests
headers = {"Authorization": "Bearer SEU_TOKEN"}
payload = {
"name": "Acme Tecnologia S.A.",
"size": "large",
"annual_revenue": 500000000,
}
response = requests.patch(
"https://api.maestron.com.br/v1/crm/companies/{id}",
headers=headers,
json=payload,
)
data = response.json() const response = await fetch("https://api.maestron.com.br/v1/crm/companies/{id}", {
method: "PATCH",
headers: {
"Authorization": "Bearer SEU_TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Acme Tecnologia S.A.",
"size": "large",
"annual_revenue": 500000000
}),
});
const data = await response.json(); using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "SEU_TOKEN");
var payload = new StringContent(
"{\"name\":\"Acme Tecnologia S.A.\",\"size\":\"large\",\"annual_revenue\":500000000}",
System.Text.Encoding.UTF8, "application/json");
var response = await client.SendAsync(new HttpRequestMessage(
new HttpMethod("PATCH"), "https://api.maestron.com.br/v1/crm/companies/{id}") { Content = payload });
var data = await response.Content.ReadAsStringAsync(); PATCH /crm/companies/{id} HTTP/1.1
Host: api.maestron.com.br
Authorization: Bearer SEU_TOKEN
Content-Type: application/json
{
"name": "Acme Tecnologia S.A.",
"size": "large",
"annual_revenue": 500000000
} Respostas
{
"message": "Empresa atualizada.",
"data": {
"id": "comp_01J9Z3K8",
"name": "Acme Tecnologia S.A.",
"document": "12.345.678/0001-90",
"email": "contato@acme.com.br",
"phone": "+55 11 4000-0000",
"website": "https://acme.com.br",
"industry": "Tecnologia",
"size": "large",
"annual_revenue": 500000000,
"address": {
"street": "Av. Paulista, 1000",
"city": "São Paulo",
"state": "SP",
"zip": "01310-100",
"country": "BR"
},
"tags": [
"parceiro",
"prioritário"
],
"owner_id": "user_01J9Z3K8",
"created_at": "2026-06-20T14:30:00Z",
"updated_at": "2026-06-20T15:10:00Z"
}
} {
"message": "Não autenticado."
} {
"message": "Empresa não encontrada."
} {
"message": "Já existe uma empresa com este documento."
} {
"message": "Os dados fornecidos são inválidos.",
"errors": {
"size": [
"O porte selecionado é inválido."
]
}
} Remover empresa
Seção intitulada “Remover empresa”Remover empresa
Remove uma empresa do CRM.
Parâmetros de caminho
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | string | Sim | Identificador da empresa (comp_). |
curl -X DELETE https://api.maestron.com.br/v1/crm/companies/{id} \
-H "Authorization: Bearer SEU_TOKEN" <?php
$client = new \GuzzleHttp\Client();
$response = $client->request('DELETE', 'https://api.maestron.com.br/v1/crm/companies/{id}', [
'headers' => [
'Authorization' => 'Bearer SEU_TOKEN',
'Accept' => 'application/json',
],
]);
$data = json_decode($response->getBody(), true); import requests
headers = {"Authorization": "Bearer SEU_TOKEN"}
response = requests.delete(
"https://api.maestron.com.br/v1/crm/companies/{id}",
headers=headers,
)
data = response.json() const response = await fetch("https://api.maestron.com.br/v1/crm/companies/{id}", {
method: "DELETE",
headers: {
"Authorization": "Bearer SEU_TOKEN",
},
});
const data = await response.json(); using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "SEU_TOKEN");
var response = await client.DeleteAsync("https://api.maestron.com.br/v1/crm/companies/{id}");
var data = await response.Content.ReadAsStringAsync(); DELETE /crm/companies/{id} HTTP/1.1
Host: api.maestron.com.br
Authorization: Bearer SEU_TOKEN Respostas
{
"message": "Empresa removida."
} {
"message": "Não autenticado."
} {
"message": "Empresa não encontrada."
} {
"message": "Não é possível remover uma empresa com negócios vinculados."
} Sub-recursos
Seção intitulada “Sub-recursos”Listar contatos da empresa
Seção intitulada “Listar contatos da empresa”Listar contatos da empresa
Retorna a coleção paginada de contatos vinculados à empresa.
Parâmetros de caminho
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | string | Sim | Identificador da empresa (comp_). |
Parâmetros de query
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
page | integer | — | Página atual (padrão: 1). |
per_page | integer | — | Itens por página (padrão: 20, máx: 100). |
search | string | — | Busca textual por nome ou e-mail. |
curl -X GET https://api.maestron.com.br/v1/crm/companies/{id}/contacts \
-H "Authorization: Bearer SEU_TOKEN" <?php
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://api.maestron.com.br/v1/crm/companies/{id}/contacts', [
'headers' => [
'Authorization' => 'Bearer SEU_TOKEN',
'Accept' => 'application/json',
],
]);
$data = json_decode($response->getBody(), true); import requests
headers = {"Authorization": "Bearer SEU_TOKEN"}
response = requests.get(
"https://api.maestron.com.br/v1/crm/companies/{id}/contacts",
headers=headers,
)
data = response.json() const response = await fetch("https://api.maestron.com.br/v1/crm/companies/{id}/contacts", {
method: "GET",
headers: {
"Authorization": "Bearer SEU_TOKEN",
},
});
const data = await response.json(); using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "SEU_TOKEN");
var response = await client.GetAsync("https://api.maestron.com.br/v1/crm/companies/{id}/contacts");
var data = await response.Content.ReadAsStringAsync(); GET /crm/companies/{id}/contacts HTTP/1.1
Host: api.maestron.com.br
Authorization: Bearer SEU_TOKEN Respostas
{
"message": "Contatos listados.",
"data": [
{
"id": "cont_01J9Z3K8",
"name": "Maria Silva",
"email": "maria.silva@acme.com.br",
"phone": "+55 11 99999-0000",
"company_id": "comp_01J9Z3K8",
"tags": [
"decisor"
],
"created_at": "2026-06-20T14:30:00Z",
"updated_at": "2026-06-20T14:30:00Z"
}
],
"meta": {
"current_page": 1,
"per_page": 20,
"total": 1,
"last_page": 1
}
} {
"message": "Não autenticado."
} {
"message": "Empresa não encontrada."
} Listar negócios da empresa
Seção intitulada “Listar negócios da empresa”Listar negócios da empresa
Retorna a coleção paginada de negócios vinculados à empresa.
Parâmetros de caminho
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | string | Sim | Identificador da empresa (comp_). |
Parâmetros de query
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
page | integer | — | Página atual (padrão: 1). |
per_page | integer | — | Itens por página (padrão: 20, máx: 100). |
search | string | — | Busca textual pelo título do negócio. |
curl -X GET https://api.maestron.com.br/v1/crm/companies/{id}/deals \
-H "Authorization: Bearer SEU_TOKEN" <?php
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://api.maestron.com.br/v1/crm/companies/{id}/deals', [
'headers' => [
'Authorization' => 'Bearer SEU_TOKEN',
'Accept' => 'application/json',
],
]);
$data = json_decode($response->getBody(), true); import requests
headers = {"Authorization": "Bearer SEU_TOKEN"}
response = requests.get(
"https://api.maestron.com.br/v1/crm/companies/{id}/deals",
headers=headers,
)
data = response.json() const response = await fetch("https://api.maestron.com.br/v1/crm/companies/{id}/deals", {
method: "GET",
headers: {
"Authorization": "Bearer SEU_TOKEN",
},
});
const data = await response.json(); using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "SEU_TOKEN");
var response = await client.GetAsync("https://api.maestron.com.br/v1/crm/companies/{id}/deals");
var data = await response.Content.ReadAsStringAsync(); GET /crm/companies/{id}/deals HTTP/1.1
Host: api.maestron.com.br
Authorization: Bearer SEU_TOKEN Respostas
{
"message": "Negócios listados.",
"data": [
{
"id": "deal_01J9Z3K8",
"title": "Contrato anual de licenças",
"value": 12000000,
"company_id": "comp_01J9Z3K8",
"contact_id": "cont_01J9Z3K8",
"pipeline_id": "pipe_01J9Z3K8",
"stage_id": "stg_01J9Z3K8",
"status": "open",
"owner_id": "user_01J9Z3K8",
"created_at": "2026-06-20T14:30:00Z",
"updated_at": "2026-06-20T14:30:00Z"
}
],
"meta": {
"current_page": 1,
"per_page": 20,
"total": 1,
"last_page": 1
}
} {
"message": "Não autenticado."
} {
"message": "Empresa não encontrada."
} Para o detalhamento de cada código de status, consulte Erros. Os limites de requisição estão descritos em Rate limiting.