Criar uma entidade automaticamente com enriquecimento
curl --request POST \
--url http://api.gu1.ai/entities/automatic \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"taxId": "<string>",
"country": "<string>",
"type": "<string>",
"nationality": {},
"monitoring": {},
"externalId": "<string>",
"depth": 123,
"relationships": [
{}
],
"enrichDeclaredRelationships": true,
"registrationDate": {},
"runInBackground": true,
"workflowId": "<string>",
"isClient": true,
"riskMatrixId": [
"<string>"
],
"riskMatrixIds": [
"<string>"
],
"skipRulesExecution": true,
"status": "<string>",
"operationalHours": {},
"autoExecuteIntegrations": {},
"autoExecuteIntegrationsShareholders": {},
"customData": {},
"attributes": {}
}
'import requests
url = "http://api.gu1.ai/entities/automatic"
payload = {
"taxId": "<string>",
"country": "<string>",
"type": "<string>",
"nationality": {},
"monitoring": {},
"externalId": "<string>",
"depth": 123,
"relationships": [{}],
"enrichDeclaredRelationships": True,
"registrationDate": {},
"runInBackground": True,
"workflowId": "<string>",
"isClient": True,
"riskMatrixId": ["<string>"],
"riskMatrixIds": ["<string>"],
"skipRulesExecution": True,
"status": "<string>",
"operationalHours": {},
"autoExecuteIntegrations": {},
"autoExecuteIntegrationsShareholders": {},
"customData": {},
"attributes": {}
}
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({
taxId: '<string>',
country: '<string>',
type: '<string>',
nationality: {},
monitoring: {},
externalId: '<string>',
depth: 123,
relationships: [{}],
enrichDeclaredRelationships: true,
registrationDate: {},
runInBackground: true,
workflowId: '<string>',
isClient: true,
riskMatrixId: ['<string>'],
riskMatrixIds: ['<string>'],
skipRulesExecution: true,
status: '<string>',
operationalHours: {},
autoExecuteIntegrations: {},
autoExecuteIntegrationsShareholders: {},
customData: {},
attributes: {}
})
};
fetch('http://api.gu1.ai/entities/automatic', 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 => "http://api.gu1.ai/entities/automatic",
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([
'taxId' => '<string>',
'country' => '<string>',
'type' => '<string>',
'nationality' => [
],
'monitoring' => [
],
'externalId' => '<string>',
'depth' => 123,
'relationships' => [
[
]
],
'enrichDeclaredRelationships' => true,
'registrationDate' => [
],
'runInBackground' => true,
'workflowId' => '<string>',
'isClient' => true,
'riskMatrixId' => [
'<string>'
],
'riskMatrixIds' => [
'<string>'
],
'skipRulesExecution' => true,
'status' => '<string>',
'operationalHours' => [
],
'autoExecuteIntegrations' => [
],
'autoExecuteIntegrationsShareholders' => [
],
'customData' => [
],
'attributes' => [
]
]),
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 := "http://api.gu1.ai/entities/automatic"
payload := strings.NewReader("{\n \"taxId\": \"<string>\",\n \"country\": \"<string>\",\n \"type\": \"<string>\",\n \"nationality\": {},\n \"monitoring\": {},\n \"externalId\": \"<string>\",\n \"depth\": 123,\n \"relationships\": [\n {}\n ],\n \"enrichDeclaredRelationships\": true,\n \"registrationDate\": {},\n \"runInBackground\": true,\n \"workflowId\": \"<string>\",\n \"isClient\": true,\n \"riskMatrixId\": [\n \"<string>\"\n ],\n \"riskMatrixIds\": [\n \"<string>\"\n ],\n \"skipRulesExecution\": true,\n \"status\": \"<string>\",\n \"operationalHours\": {},\n \"autoExecuteIntegrations\": {},\n \"autoExecuteIntegrationsShareholders\": {},\n \"customData\": {},\n \"attributes\": {}\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("http://api.gu1.ai/entities/automatic")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"taxId\": \"<string>\",\n \"country\": \"<string>\",\n \"type\": \"<string>\",\n \"nationality\": {},\n \"monitoring\": {},\n \"externalId\": \"<string>\",\n \"depth\": 123,\n \"relationships\": [\n {}\n ],\n \"enrichDeclaredRelationships\": true,\n \"registrationDate\": {},\n \"runInBackground\": true,\n \"workflowId\": \"<string>\",\n \"isClient\": true,\n \"riskMatrixId\": [\n \"<string>\"\n ],\n \"riskMatrixIds\": [\n \"<string>\"\n ],\n \"skipRulesExecution\": true,\n \"status\": \"<string>\",\n \"operationalHours\": {},\n \"autoExecuteIntegrations\": {},\n \"autoExecuteIntegrationsShareholders\": {},\n \"customData\": {},\n \"attributes\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://api.gu1.ai/entities/automatic")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"taxId\": \"<string>\",\n \"country\": \"<string>\",\n \"type\": \"<string>\",\n \"nationality\": {},\n \"monitoring\": {},\n \"externalId\": \"<string>\",\n \"depth\": 123,\n \"relationships\": [\n {}\n ],\n \"enrichDeclaredRelationships\": true,\n \"registrationDate\": {},\n \"runInBackground\": true,\n \"workflowId\": \"<string>\",\n \"isClient\": true,\n \"riskMatrixId\": [\n \"<string>\"\n ],\n \"riskMatrixIds\": [\n \"<string>\"\n ],\n \"skipRulesExecution\": true,\n \"status\": \"<string>\",\n \"operationalHours\": {},\n \"autoExecuteIntegrations\": {},\n \"autoExecuteIntegrationsShareholders\": {},\n \"customData\": {},\n \"attributes\": {}\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {},
"rulesResult": {},
"rulesExecutionSummary": {}
}Referência API
Criar uma entidade automaticamente com enriquecimento
Cria automaticamente com dados enriquecidos de registros oficiais — no modelo universal de entidades gu1 para KYC, KYB e análise de risco.
POST
/
entities
/
automatic
Criar uma entidade automaticamente com enriquecimento
curl --request POST \
--url http://api.gu1.ai/entities/automatic \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"taxId": "<string>",
"country": "<string>",
"type": "<string>",
"nationality": {},
"monitoring": {},
"externalId": "<string>",
"depth": 123,
"relationships": [
{}
],
"enrichDeclaredRelationships": true,
"registrationDate": {},
"runInBackground": true,
"workflowId": "<string>",
"isClient": true,
"riskMatrixId": [
"<string>"
],
"riskMatrixIds": [
"<string>"
],
"skipRulesExecution": true,
"status": "<string>",
"operationalHours": {},
"autoExecuteIntegrations": {},
"autoExecuteIntegrationsShareholders": {},
"customData": {},
"attributes": {}
}
'import requests
url = "http://api.gu1.ai/entities/automatic"
payload = {
"taxId": "<string>",
"country": "<string>",
"type": "<string>",
"nationality": {},
"monitoring": {},
"externalId": "<string>",
"depth": 123,
"relationships": [{}],
"enrichDeclaredRelationships": True,
"registrationDate": {},
"runInBackground": True,
"workflowId": "<string>",
"isClient": True,
"riskMatrixId": ["<string>"],
"riskMatrixIds": ["<string>"],
"skipRulesExecution": True,
"status": "<string>",
"operationalHours": {},
"autoExecuteIntegrations": {},
"autoExecuteIntegrationsShareholders": {},
"customData": {},
"attributes": {}
}
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({
taxId: '<string>',
country: '<string>',
type: '<string>',
nationality: {},
monitoring: {},
externalId: '<string>',
depth: 123,
relationships: [{}],
enrichDeclaredRelationships: true,
registrationDate: {},
runInBackground: true,
workflowId: '<string>',
isClient: true,
riskMatrixId: ['<string>'],
riskMatrixIds: ['<string>'],
skipRulesExecution: true,
status: '<string>',
operationalHours: {},
autoExecuteIntegrations: {},
autoExecuteIntegrationsShareholders: {},
customData: {},
attributes: {}
})
};
fetch('http://api.gu1.ai/entities/automatic', 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 => "http://api.gu1.ai/entities/automatic",
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([
'taxId' => '<string>',
'country' => '<string>',
'type' => '<string>',
'nationality' => [
],
'monitoring' => [
],
'externalId' => '<string>',
'depth' => 123,
'relationships' => [
[
]
],
'enrichDeclaredRelationships' => true,
'registrationDate' => [
],
'runInBackground' => true,
'workflowId' => '<string>',
'isClient' => true,
'riskMatrixId' => [
'<string>'
],
'riskMatrixIds' => [
'<string>'
],
'skipRulesExecution' => true,
'status' => '<string>',
'operationalHours' => [
],
'autoExecuteIntegrations' => [
],
'autoExecuteIntegrationsShareholders' => [
],
'customData' => [
],
'attributes' => [
]
]),
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 := "http://api.gu1.ai/entities/automatic"
payload := strings.NewReader("{\n \"taxId\": \"<string>\",\n \"country\": \"<string>\",\n \"type\": \"<string>\",\n \"nationality\": {},\n \"monitoring\": {},\n \"externalId\": \"<string>\",\n \"depth\": 123,\n \"relationships\": [\n {}\n ],\n \"enrichDeclaredRelationships\": true,\n \"registrationDate\": {},\n \"runInBackground\": true,\n \"workflowId\": \"<string>\",\n \"isClient\": true,\n \"riskMatrixId\": [\n \"<string>\"\n ],\n \"riskMatrixIds\": [\n \"<string>\"\n ],\n \"skipRulesExecution\": true,\n \"status\": \"<string>\",\n \"operationalHours\": {},\n \"autoExecuteIntegrations\": {},\n \"autoExecuteIntegrationsShareholders\": {},\n \"customData\": {},\n \"attributes\": {}\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("http://api.gu1.ai/entities/automatic")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"taxId\": \"<string>\",\n \"country\": \"<string>\",\n \"type\": \"<string>\",\n \"nationality\": {},\n \"monitoring\": {},\n \"externalId\": \"<string>\",\n \"depth\": 123,\n \"relationships\": [\n {}\n ],\n \"enrichDeclaredRelationships\": true,\n \"registrationDate\": {},\n \"runInBackground\": true,\n \"workflowId\": \"<string>\",\n \"isClient\": true,\n \"riskMatrixId\": [\n \"<string>\"\n ],\n \"riskMatrixIds\": [\n \"<string>\"\n ],\n \"skipRulesExecution\": true,\n \"status\": \"<string>\",\n \"operationalHours\": {},\n \"autoExecuteIntegrations\": {},\n \"autoExecuteIntegrationsShareholders\": {},\n \"customData\": {},\n \"attributes\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://api.gu1.ai/entities/automatic")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"taxId\": \"<string>\",\n \"country\": \"<string>\",\n \"type\": \"<string>\",\n \"nationality\": {},\n \"monitoring\": {},\n \"externalId\": \"<string>\",\n \"depth\": 123,\n \"relationships\": [\n {}\n ],\n \"enrichDeclaredRelationships\": true,\n \"registrationDate\": {},\n \"runInBackground\": true,\n \"workflowId\": \"<string>\",\n \"isClient\": true,\n \"riskMatrixId\": [\n \"<string>\"\n ],\n \"riskMatrixIds\": [\n \"<string>\"\n ],\n \"skipRulesExecution\": true,\n \"status\": \"<string>\",\n \"operationalHours\": {},\n \"autoExecuteIntegrations\": {},\n \"autoExecuteIntegrationsShareholders\": {},\n \"customData\": {},\n \"attributes\": {}\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {},
"rulesResult": {},
"rulesExecutionSummary": {}
}Visão Geral
O endpoint de criação automática de entidades permite criar entidades fornecendo informações mínimas (ID fiscal e país). O sistema automaticamente:- Busca dados de empresa/pessoa de registros oficiais
- Enriquece a entidade com informações adicionais
- Cria entidades relacionadas (sócios, diretores) baseado na profundidade especificada
- Executa enriquecimentos automaticamente
Endpoint
POST http://api.gu1.ai/entities/automatic
Autenticação
Requer uma chave API válida no cabeçalho Authorization:Authorization: Bearer YOUR_API_KEY
Corpo da Requisição
string
required
Número de identificação fiscal da entidade (CNPJ/CPF para Brasil, CUIT/CUIL para Argentina, RUT para Chile).Em uma organização, um
taxId ativo (normalizado: apenas letras e dígitos) pode pertencer a apenas uma entidade — seja person ou company. Se o mesmo tipo já existe, a API o reutiliza (alreadyExisted). Se outro tipo já possui esse tax ID, a solicitação falha com 409 e código DUPLICATE_TAX_ID.Tipo: string (comprimento mínimo: 1)string
required
Código de país ISO 3166-1 alpha-2. A criação automática suporta apenas
BR, AR e CL. Qualquer outro país retorna erro informando que a criação automática não é suportada para ele — use Criar uma entidade.Tipo: string (comprimento: 2)string
required
Tipo de entidade a criar:
company- Entidade empresarialperson- Pessoa física
enum - 'company' | 'person'string | null
Opcional. ISO 3166-1 alpha-2 ou rótulo mapeável; gravado na linha da entidade principal (mesma validação que Criar entidade).
object
Opcional. Mesma semântica de Criar entidade, com dois mapas:
main: watchlist da entidade raiz quando enrichments rodam viaautoExecuteIntegrations.relationships: watchlist de sócios/relacionadas comdepth> 0 viaautoExecuteIntegrationsShareholders(porcompany/person).
global_gueno_sanctions_enrichment. Valor recomendado: { "watchlist": true } ou { "watchlist": true, "riskMatrixId": "<uuid>" | null } (boolean legacy também aceito).string
Seu identificador único para esta entidade no seu sistema. Opcional.Se omitido,
externalId é definido com o tax ID normalizado a partir do taxId obrigatório: apenas letras e dígitos, maiúsculas (sem pontos, traços ou espaços). Exemplo: 30-12345678-9 → 30123456789.A coluna taxId continua salva no formato de exibição do país. Mesmas regras de Criar uma entidade (pessoa ou empresa) quando há taxId.Tipo: string (opcional)number
default:"0"
Quantos níveis de sócios/relacionamentos criar automaticamente:
0- Criar apenas a entidade principal (sem relacionamentos)1- Criar sócios/diretores diretos2- Criar sócios e seus sócios- Máximo:
5
number (mín: 0, máx: 5, padrão: 0)Brasil +
depth > 0 falha a requisição inteira se faltarem os enrichments de descoberta. A API valida isso antes de criar a entidade principal: não cria a pessoa ou empresa e depois omite as relacionadas.- Pessoa:
br_bdc_related_companies_enrichmentebr_bdc_related_persons_enrichmentdevem estar no conjunto resolvido da entidade principal (autoExecuteIntegrations.enrichments, ou todos os enrichments habilitados do marketplace quandoexecuteAllActiveEnrichments: true). Ambos devem estar habilitados na organização.executeAllActiveEnrichments: truenão ignora isso se algum estiver desabilitado ou emexcludeEnrichments. - Empresa:
br_bdc_shareholders_enrichmentdeve estar nesse mesmo conjunto resolvido e habilitado.
depth: 0. autoExecuteIntegrationsShareholders só controla enrichments nos filhos depois que existem; não satisfaz esta verificação.array
Vínculos declarativos a entidades já existentes (
relatedEntityId / relatedTaxId / relatedExternalId + relationshipType + role). Independente do depth de enrichment. Máx. 10. Contraparte ausente → RELATED_ENTITY_NOT_FOUND e a entidade não é criada. Mesma semântica que Criar entidade.boolean
default:"false"
Com
true, depois de vincular as contrapartes de relationships, também executa os enrichments de autoExecuteIntegrationsShareholders nessas entidades existentes (por tipo da relacionada: listas company vs person). Independente de depth.Tipo: boolean (opcional, padrão: false)string | number
Data de registro opcional da entidade principal. String datetime ISO 8601 ou epoch em milissegundos.Tipo:
string (datetime ISO) | number (opcional)boolean
default:"false"
Com
true, a criação é enfileirada e a API responde imediatamente com 202 e data.status: "processing" mais um jobId; a conclusão é informada via Socket.IO (ver Eventos WebSocket). Com false (padrão), a requisição roda de forma síncrona e retorna o resultado completo.Tipo: boolean (opcional, padrão: false)string
UUID de uma automação com trigger
create_entity_flow (ou entity_created + fluxo automático). Quando enviado, a requisição passa a ser um fluxo de criação: autoExecuteIntegrations, autoExecuteIntegrationsShareholders e depth são ignorados, só essa automação roda (enrichments, matriz de risco, condições e ações ficam no workflow) e entity_created não é emitido. Se o id não for uma automação create_entity_flow habilitada, usa-se o fluxo do body.Tipo: string (uuid, opcional)boolean
default:"false"
Marcar esta entidade como cliente para fins de rastreamentoTipo:
boolean (padrão: false)string | string[]
Um ou mais UUIDs de matrizes de risco (legacy: um único UUID). Após a criação, regras ativas dessas matrizes são executadas (salvo
skipRulesExecution: true).Tipo: string | string[] | null (opcional)string[]
Preferido para várias matrizes: lista ordenada de UUIDs. Tem precedência sobre
riskMatrixId quando informado e não vazio.Tipo: string[] (opcional)boolean
default:"false"
Pular execução automática de regras após criação da entidadeTipo:
boolean (opcional, padrão: false)string
default:"under_review"
Status inicial para a entidade. Opções:
activeinactiveblockedunder_review(padrão)pending_verification- Aguardando conclusão de KYC/KYBawaiting_information- Aguardando dados do cliente (p. ex. documentos de onboarding pedidos por e-mail)suspendedexpireddeletedrejected
enum - 'active' | 'inactive' | 'blocked' | 'under_review' | 'pending_verification' | 'awaiting_information' | 'suspended' | 'expired' | 'deleted' | 'rejected' | 'not_started' (padrão: ‘under_review’)object | null
Horário operacional opcional da entidade principal (
timezone + weekly). Persistido na criação automática como na criação manual de entidades. Não se aplica a acionistas/relacionamentos criados por depth.object
Configurar execução automática de integrações para a entidade principal. Veja Referência de Códigos de Provedores para códigos disponíveis.Tipo: Exemplo:Não ative um fallback de catálogo no Marketplace (nem o liste aqui) se quiser usá-lo só quando o primário falhar. Veja Fallbacks do Marketplace.
object (opcional)Propriedades:executeAllActiveEnrichments(boolean, opcional, padrão:false) - Executar todas as integrações de enriquecimento ativasenrichments(array, opcional, padrão:[]) - Array de códigos específicos de provedores de enriquecimento para executarenrichmentGroupRefs(array de strings, opcional) — Slugs de grupos de enriquecimento do Marketplace (somente enriquecimentos). ComexecuteAllActiveEnrichments: false, os grupos são resolvidos e mesclados comenrichmentsexplícitos. ComexecuteAllActiveEnrichments: true, os refs de grupo são ignorados;enrichmentsexplícitos ainda podem acrescentar códigos após o conjunto ativo.excludeEnrichments(array, opcional, padrão:[]) — Códigos de provedor omitidos do conjunto final resolvido. Se o código é o de dados básicos que rodaria (primário habilitado ou substituto), essa criação não o executa e usa o próximo da cadeia que esteja habilitado e não excluído.
{
executeAllActiveEnrichments?: boolean; // padrão: false
enrichments?: ValidProviderCodesEnum[]; // padrão: []
enrichmentGroupRefs?: string[];
excludeEnrichments?: ValidProviderCodesEnum[]; // padrão: []
}
{
"executeAllActiveEnrichments": true,
"excludeEnrichments": ["br_bdc_shareholders_enrichment"],
"enrichmentGroupRefs": ["my_marketplace_group_slug"]
}
object
Configurar execução automática de integrações para sócios e entidades relacionadas criadas durante a travessia da hierarquia. Isso permite especificar diferentes integrações para empresas vs pessoas. Veja Referência de Códigos de Provedores para códigos disponíveis.Tipo: Exemplo:
object (opcional)Propriedades:executeAllActiveEnrichments(boolean, opcional, padrão:false) - Executar todas as integrações de enriquecimento ativas para todos os sóciosenrichments(object, opcional) - Códigos específicos de provedores de enriquecimento por tipo de entidade:company(array, opcional, padrão:[]) - Enriquecimentos para sócios empresasperson(array, opcional, padrão:[]) - Enriquecimentos para sócios pessoas
enrichmentGroupRefs(array de strings, opcional) — Mesmos slugs do objeto principal; comexecuteAllActiveEnrichments: falseaplicam-se acompanye aperson. ComexecuteAllActiveEnrichments: trueneste objeto, os refs de grupo são ignorados;enrichmentsexplícitos por tipo ainda podem acrescentar códigos após o ativo de cada lado.excludeEnrichments(array, opcional, padrão:[]) — Códigos omitidos nas listascompanyepersonapós o merge. Também pula os dados básicos dessas entidades relacionadas se o código excluído é o que rodaria.
{
executeAllActiveEnrichments?: boolean; // padrão: false
enrichments?: {
company?: ValidProviderCodesEnum[]; // padrão: []
person?: ValidProviderCodesEnum[]; // padrão: []
};
enrichmentGroupRefs?: string[];
excludeEnrichments?: ValidProviderCodesEnum[]; // padrão: []
}
{
"executeAllActiveEnrichments": true,
"excludeEnrichments": ["br_bdc_shareholders_enrichment"],
"enrichmentGroupRefs": ["shareholder_pipeline_group_slug"]
}
Códigos de Enrichment Obrigatórios por País
A criação automática precisa de pelo menos um enrichment de dados básicos habilitado no Marketplace para esse país e tipo (empresa ou pessoa). O primário canônico roda primeiro se estiver ativo e não estiver em
excludeEnrichments. Se estiver desligado ou excluído, roda o primeiro substituto da cadeia que esteja habilitado e não excluído. Se nenhum da cadeia ficar disponível, a requisição falha antes de criar a entidade.executeAllActiveEnrichments: true só inclui enrichments habilitados. Um substituto desligado não conta como fonte de dados básicos. Se o primário está ativo e falha, um substituto pode rodar com o card desligado quando o catálogo tem fallback_requires_activation: false. Isso não substitui a exigência de ter algum habilitado para começar.Se faltar a cadeia inteira, a resposta é HTTP 422 com Pessoa no Brasil usa a mesma frase com
success: false e error.code BASIC_DATA_ENRICHMENT_REQUIRED. O texto de error.message e de data.errors.creationFailed[].error é o mesmo do log da API (inglês, cortado em 500 caracteres). Não é a mensagem genérica de lookup (We could not complete the basic data lookup for this document.). O texto nomeia os códigos a ativar, na ordem da cadeia do catálogo.{
"success": false,
"error": {
"code": "BASIC_DATA_ENRICHMENT_REQUIRED",
"message": "Automatic creation requires at least one active basic-data enrichment for BR company. Activate one of: br_cpfcnpj_complete_company_enrichment, br_brasilapi_company_enrichment, br_cnpjws_company_enrichment, br_opencnpj_company_enrichment, br_bdc_basic_data_company_enrichment (marketplace)."
},
"data": {
"entity": null,
"errors": {
"creationFailed": [
{
"entityType": "company",
"level": 0,
"code": "BASIC_DATA_ENRICHMENT_REQUIRED",
"error": "Automatic creation requires at least one active basic-data enrichment for BR company. Activate one of: br_cpfcnpj_complete_company_enrichment, br_brasilapi_company_enrichment, br_cnpjws_company_enrichment, br_opencnpj_company_enrichment, br_bdc_basic_data_company_enrichment (marketplace)."
}
]
}
}
}
BR person e os códigos de pessoa da tabela abaixo. Argentina e Chile, igual, com a cadeia de cada um. A importação em massa no modo automatic grava esse mesmo texto no erro da linha.Brasil (BR)
Entidade Principal
| Tipo de Entidade | Primário (primeiro se estiver ativo) | Também vale, nesta ordem, se estiver habilitado |
|---|---|---|
| Company | br_cpfcnpj_complete_company_enrichment | br_brasilapi_company_enrichment, br_cnpjws_company_enrichment, br_opencnpj_company_enrichment, br_bdc_basic_data_company_enrichment |
| Person | br_bdc_basic_data_enrichment | br_cpfcnpj_complete_person_enrichment, br_cpfcnpj_complete_person_9_enrichment |
Sócios / Entidades Relacionadas (apenas quando depth > 0)
| Tipo da Entidade Principal | Código(s) de Enrichment Obrigatório(s) | Descrição |
|---|---|---|
| Company | br_bdc_shareholders_enrichment | Obrigatório para descobrir o QSA. Se faltar → a requisição inteira falha; a empresa não é criada. |
| Person | br_bdc_related_companies_enrichment E br_bdc_related_persons_enrichment | Ambos obrigatórios. Se faltar, estiver desabilitado ou excluído algum → a requisição inteira falha; a pessoa não é criada. |
Esses códigos devem estar no conjunto resolvido da entidade principal, não só em
autoExecuteIntegrationsShareholders. Faltar um enrichment de relacionadas (ou o de sócios em empresas) é falha dura, não criação parcial.A API executa esses enrichments na entidade principal para descobrir sócios ou pessoas/empresas relacionadas.
autoExecuteIntegrationsShareholders só controla o que roda em cada filho depois de criado.Argentina (AR)
Entidade Principal
| Tipo de Entidade | Primário (primeiro se estiver ativo) | Também vale se estiver habilitado |
|---|---|---|
| Company e Person | ar_nosis_extended_verification_enrichment | ar_arca_contribuyente_enrichment (só nesse sentido: ARCA não volta ao primário) |
Sócios / Entidades Relacionadas
Argentina não suporta criação automática de sócios/relacionamentos ainda. O parâmetro
depth deve ser 0. Se depth > 0 for fornecido, a requisição falhará com um erro.Chile (CL)
Entidade Principal
| Tipo de Entidade | Primário (único da cadeia) | Substitutos de catálogo |
|---|---|---|
| Company | cl_rutsinfo_info_company_enrichment | Nenhum. Se estiver desligado, a criação automática de empresa falha. |
| Person | cl_baseapi_basic_data_person_enrichment | Nenhum. Se estiver desligado, a criação automática de pessoa falha. |
Sócios / Entidades Relacionadas
Chile não suporta criação automática de sócios/relacionamentos ainda. O parâmetro
depth deve ser 0. Se depth > 0 for fornecido, a requisição falha.object
Opcional — Dados enviados pelo cliente para a entidade principal que não devem ser substituídos pelos enrichments do registro. Não se aplica a sócios nem entidades relacionadas (
Propriedades documentadas: Exemplo (empresa):
depth > 0).Após os enrichments, a API reaplica customData para preservar os valores (ex.: sincronização automática de nome).Persistência:Campo em customData | Coluna raiz (entities) | entityData | |
|---|---|---|---|
name | name | — | |
email | email | person.email / company.email | |
phone | phone | person.phone / company.phone | |
birthDate | — | Apenas person.dateOfBirth (pessoa) | |
address | — | person.address ou company.address | |
gender | — | person.gender | Opcional. Enum fechado: M, F, male, female, other, unknown. Use other para identidade não binária. Valores como X ou non_binary são rejeitados. Em AR, apenas M/F (ou male/female) se aplicam à derivação de CUIL e RENAPER. Ver Criar entidade — Person. |
name, email, phone, birthDate (pessoa), address (string ou objeto com fullAddress, street, city, …), gender (enum opcional — other para não binário).Chaves adicionais (somente API): qualquer outra chave em customData é aceita e gravada em entityData.person ou entityData.company (mesma proteção contra enrichments). Ex.: firstName, occupation, tradeName. O dashboard envia só os campos do formulário; integrações via API podem estender o objeto.Exemplo (pessoa):{
"taxId": "12345678901",
"country": "BR",
"type": "person",
"customData": {
"name": "MARIA SILVA",
"email": "cliente@empresa.com",
"phone": "+5511988888888",
"birthDate": "1990-05-15",
"address": "Rua Exemplo 100, São Paulo"
}
}
{
"taxId": "12345678000199",
"country": "BR",
"type": "company",
"customData": {
"name": "Acme Brasil Ltda (nome fantasia)",
"email": "contato@acme.com",
"phone": "+5511400000000",
"address": {
"fullAddress": "Av. Paulista 1000, São Paulo",
"city": "São Paulo"
}
}
}
object
Opcional - Atributos personalizados como pares chave-valor para a entidade criada.Aplicam-se apenas à entidade principal (pessoa ou empresa criada), não a acionistas/relacionamentos. Útil para segmentos de negócio, etiquetas, IDs internos ou qualquer metadado que queira associar no momento da criação.Estrutura: objeto com chaves string e valores de qualquer tipo (string, number, boolean, array, etc.).Exemplo:
{
"businessSegments": ["retail", "fintech"],
"source": "onboarding_web",
"tags": ["vip", "high_volume"]
}
Parâmetros de Query
boolean
default:"false"
Força o re-enriquecimento da entidade principal mesmo que já exista no sistema.Tipo: Nota de Custo: Pode incorrer em cobranças adicionais de provedores de dados terceirizados.
boolean (query string: "true" ou "false")Comportamento:- Quando
true: Força busca de dados atualizados de registros oficiais e provedores de enriquecimento - Quando
falseou omitido: Utiliza dados de enriquecimento em cache se disponíveis - Sobrescreve a configuração da organização
enrichmentsConfig.reEnrichExistingEntities
- Revisões periódicas de compliance exigindo informações atualizadas
- Re-validar dados da entidade após mudanças regulatórias
- Atualizar estrutura empresarial após mudanças corporativas conhecidas
- Atualização manual acionada por oficiais de compliance
POST http://api.gu1.ai/entities/automatic?refresh=true
boolean
default:"false"
Força o re-enriquecimento de TODOS os sócios e entidades relacionadas na estrutura corporativa.Tipo: Isso atualizará a empresa principal E todos os sócios até 3 níveis de profundidade.Nota de Performance:
boolean (query string: "true" ou "false")Comportamento:- Quando
true: Força busca de dados atualizados para a entidade principal E todos os sócios em todos os níveis (atédepth) - Quando
falseou omitido: Atualiza apenas a entidade principal serefresh=true, sócios usam dados em cache - Funciona em combinação com o parâmetro
depthpara determinar quão profundo atualizar - Sobrescreve configuração da organização para todas as entidades relacionadas
- Auditoria completa de estrutura corporativa
- Due diligence exigindo cadeia de propriedade atualizada
- Revisões anuais de compliance de toda a árvore corporativa
- Investigação de estruturas de propriedade complexas
POST http://api.gu1.ai/entities/automatic?reEnrichExistingChildEntities=true&depth=3
- Definir como
truecom valores altos dedepth(4-5) pode levar vários minutos - Pode resultar em custos significativos se a estrutura corporativa for complexa
- Considere usar seletivamente apenas para entidades de alto risco
- Use
refresh=truesozinho para atualizações de entidade única - Use
reEnrichExistingChildEntities=trueapenas quando precisar de validação completa da cadeia de propriedade
Resposta
Por padrão o endpoint executa sincronamente e retorna o resultado completo incluindo a entidade principal e todas as entidades relacionadas criadas. ComrunInBackground: true a resposta é 202 e o trabalho continua em segundo plano:
{
"success": true,
"data": { "status": "processing", "jobId": "...", "taxId": "...", "type": "company" }
}
boolean
Indica se a entidade foi criada com sucesso
object
Informações completas sobre a criação:
entity(object) - A entidade principal criada com todos os seus dadosshareholders(array) - Fichas filhas materializadas nessa corrida (só empresas). Cada item é{ id, name, taxId, type }. Percentual e papéis ficam no relacionamento; leia depois com Obter sócios materializados.relationships(array) - Array de entidades relacionadas criadas (para pessoas)summary(object):entitiesCreated(number) - Número total de entidades criadasrelationshipsCreated(number) - Número total de relacionamentos criadoserrorsCount(number) - Número de erros encontrados
errors(object, opcional) - Detalhes de quaisquer erros que ocorreram:creationFailed(array) - Criações de entidades que falharamenrichmentFailed(array) - Enrichments extras que falharam depois de persistir a entidade (entityId+failedProviders). Vazio quando os dados básicos falham e a entidade não é criada. Cada item defailedProviderstrazproviderCode,error(inglês) ecodeopcional. Se o request pediu um enrichment que a organização não tem habilitado,codeéINTEGRATION_NOT_ENABLED(tambémINTEGRATION_NOT_CONFIGURED,INTEGRATION_BLOCKED,INTEGRATION_GLOBALLY_DISABLED,CONTRACT_ACCESS_NOT_INCLUDED,INTEGRATION_NOT_FOUND). Esses códigos não são tentados de novo. O restante do request roda, esuccesscontinuatruese a entidade foi criada.enrichmentFailedDetails(array, aditivo) - Cada tentativa de dados básicos que falhou (primário + fallbacks do catálogo) quando a entidade não foi criada. Itens:providerCode(código marketplace),code(semântico, ex.DOCUMENT_RESTRICTED,UPSTREAM_CREDITS_ERROR),errorMessage(inglês). Também aninhado na linha decreationFailed[]correspondente.
Person <taxId> com attributes.isMinor: true. Novas tentativas, fallbacks e enrichments adicionais não serão executados; a análise de risco será executada normalmente. Esse comportamento fica desativado por padrão.object
Resultado da execução de regras (apenas presente quando as regras foram executadas, ex. quando skipRulesExecution é
false e há matriz configurada via riskMatrixId ou riskMatrixIds), ou null. Quando presente, inclui:- success (boolean) - Se as regras foram executadas com sucesso
- rulesTriggered (number) - Número de regras disparadas
- alerts (array) - Alertas gerados pelas regras
- riskScore (number) - Pontuação de risco final
- decision (string) - Decisão final (APPROVE, REJECT, HOLD, REVIEW_REQUIRED)
- rulesExecutionSummary (object) - Presente quando as regras foram executadas. Ver abaixo a estrutura.
object
Na raiz da resposta (igual à API de transações). Mesmo valor que
rulesResult.rulesExecutionSummary. Apenas presente quando as regras foram executadas (ex. skipRulesExecution é false e a matriz de risco foi executada). Resumo de quais regras deram match (hit) vs não (no hit), ações executadas e pontuação total. Omitido quando as regras não foram executadas. Estrutura completa e exemplo: Resumo de Execução de Regras.- rulesHit (array) - Regras cujas condições foram atendidas. Cada item: name, description, score, priority, category, status (ex.
active,shadow), conditions (array de{ field, value, operator? }), actions (alerts, suggestion, status, assignedUser). - rulesNoHit (array) - Regras avaliadas mas cujas condições não foram atendidas. Mesma estrutura que rulesHit (inclui ações configuradas, não executadas).
- actionsExecuted (object) - Ações executadas agregadas de todas as regras que deram hit: alerts (array de
{ name?, type?, severity?, description? }), suggestion (BLOCK|SUSPEND|FLAG, maior peso), status (status aplicado à entidade, se houver), assignedUser ({ userId }, se houver), customKeys (array de strings, opcional) — chaves de ações personalizadas das regras que deram match; para integrações/workflows. - totalScore (number) - Soma do score de todas as regras que deram hit e não estão em status
shadow.
Eventos WebSocket
O sistema emite eventos em tempo real durante o processo de criação:entity:creation-started
Emitido quando o processo de criação começa.
{
"taxId": "12.345.678/0001-90",
"type": "company",
"userId": "user_id"
}
entity:creation-completed
Emitido quando a entidade e todos os relacionamentos foram criados.
{
"success": true,
"mainEntity": {
"id": "uuid",
"name": "Nome da Empresa",
"taxId": "12.345.678/0001-90"
},
"stats": {
"totalEntitiesCreated": 15,
"companiesCreated": 8,
"peopleCreated": 7,
"relationshipsCreated": 14
}
}
entity:creation-failed
Emitido se o processo de criação falhar.
{
"success": false,
"error": "Mensagem de erro",
"taxId": "12.345.678/0001-90"
}
Monitoramento de sanções Gu1 na criação automática
NoPOST /entities/automatic:
| Campo | Aplica-se a |
|---|---|
monitoring.main | Entidade raiz (taxId do body) via autoExecuteIntegrations. |
monitoring.relationships | Sócios/relacionadas com depth > 0 via autoExecuteIntegrationsShareholders. |
global_gueno_sanctions_enrichment usa monitoramento no body. O código precisa estar no array de enrichments do nível e no mapa com watchlist ativo.
{
"taxId": "30-71000001-2",
"country": "AR",
"type": "company",
"depth": 1,
"monitoring": {
"main": {
"global_gueno_sanctions_enrichment": {
"watchlist": true
}
},
"relationships": {
"global_gueno_sanctions_enrichment": {
"watchlist": true,
"riskMatrixId": null
}
}
},
"autoExecuteIntegrations": {
"executeAllActiveEnrichments": false,
"enrichments": [
"ar_afip_registration_enrichment",
"global_gueno_sanctions_enrichment"
]
},
"autoExecuteIntegrationsShareholders": {
"executeAllActiveEnrichments": false,
"enrichments": {
"company": ["global_gueno_sanctions_enrichment"],
"person": ["global_gueno_sanctions_enrichment"]
}
}
}
ar_afip_registration_enrichment) ignoram monitoring.
Este payload ilustra apenas
monitoring e os códigos Gu1. Um pedido real ainda precisa dos enriquecimentos obrigatórios de registro para o country e type escolhidos (veja a secção de códigos obrigatórios por país acima); caso contrário, a criação automática falha.Exemplos
Criar Empresa com Sócios (Profundidade 1)
curl -X POST http://api.gu1.ai/entities/automatic \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"taxId": "12.345.678/0001-90",
"country": "BR",
"type": "company",
"depth": 1,
"isClient": true,
"autoExecuteIntegrations": {
"executeAllActiveEnrichments": true
}
}'
const response = await fetch('http://api.gu1.ai/entities/automatic', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
taxId: '12.345.678/0001-90',
country: 'BR',
type: 'company',
depth: 1,
isClient: true,
autoExecuteIntegrations: {
executeAllActiveEnrichments: true,
}
})
});
const data = await response.json();
console.log(data);
// Escutar eventos WebSocket
socket.on('entity:creation-completed', (result) => {
console.log('Entidade criada:', result.mainEntity);
console.log('Total de entidades criadas:', result.stats.totalEntitiesCreated);
});
import requests
response = requests.post(
'http://api.gu1.ai/entities/automatic',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'taxId': '12.345.678/0001-90',
'country': 'BR',
'type': 'company',
'depth': 1,
'isClient': True,
'autoExecuteIntegrations': {
'executeAllActiveEnrichments': True,
}
}
)
data = response.json()
print(data)
Criar Pessoa (KYC) com Integrações Específicas
curl -X POST http://api.gu1.ai/entities/automatic \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"taxId": "123.456.789-00",
"country": "BR",
"type": "person",
"externalId": "customer_12345",
"depth": 0,
"autoExecuteIntegrations": {
"enrichments": ["br_bdc_basic_data_enrichment"]
}
}'
const response = await fetch('http://api.gu1.ai/entities/automatic', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
taxId: '123.456.789-00',
country: 'BR',
type: 'person',
externalId: 'customer_12345',
depth: 0,
autoExecuteIntegrations: {
enrichments: ['br_bdc_basic_data_enrichment']
}
})
});
const data = await response.json();
import requests
response = requests.post(
'http://api.gu1.ai/entities/automatic',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'taxId': '123.456.789-00',
'country': 'BR',
'type': 'person',
'externalId': 'customer_12345',
'depth': 0,
'autoExecuteIntegrations': {
'enrichments': ['br_bdc_basic_data_enrichment']
}
}
)
data = response.json()
Criar Empresa Argentina (Sem Suporte a Sócios)
curl -X POST http://api.gu1.ai/entities/automatic \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"taxId": "30-12345678-9",
"country": "AR",
"type": "company",
"depth": 0,
"isClient": true,
"riskMatrixId": "risk_matrix_uuid",
"autoExecuteIntegrations": {
"enrichments": ["ar_nosis_extended_verification_enrichment"]
}
}'
Criar Empresa Brasileira com Sócios e Integrações Seletivas
curl -X POST http://api.gu1.ai/entities/automatic \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"taxId": "12.345.678/0001-90",
"country": "BR",
"type": "company",
"depth": 2,
"isClient": true,
"riskMatrixId": "risk_matrix_uuid",
"autoExecuteIntegrations": {
"enrichments": ["br_cpfcnpj_complete_company_enrichment", "br_bdc_shareholders_enrichment"],
"enrichmentGroupRefs": ["main_entity_group_slug"]
},
"autoExecuteIntegrationsShareholders": {
"enrichments": {
"company": ["br_cpfcnpj_complete_company_enrichment"],
"person": ["br_bdc_basic_data_enrichment"]
},
"enrichmentGroupRefs": ["child_entities_group_slug"]
}
}'
Exemplo de Resposta
Criação Bem-Sucedida de Empresa com Sócios
{
"success": true,
"data": {
"entity": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"organizationId": "org_uuid",
"type": "company",
"name": "Tech Solutions LTDA",
"taxId": "12345678000190",
"countryCode": "BR",
"status": "under_review",
"riskScore": null,
"entityData": {
"company": {
"legalName": "Tech Solutions LTDA",
"tradeName": "Tech Solutions",
"incorporationDate": "2020-01-15",
"cnae": "6202-3/00",
"cnaeDescription": "Desenvolvimento e licenciamento de programas de computador customizáveis",
"industry": "Desenvolvimento e licenciamento de programas de computador customizáveis"
}
},
"createdAt": "2024-12-23T10:30:00.000Z",
"updatedAt": "2024-12-23T10:30:00.000Z"
},
"shareholders": [
{
"id": "shareholder_1_uuid",
"name": "João Silva",
"taxId": "12345678900",
"type": "person"
},
{
"id": "shareholder_2_uuid",
"name": "Maria Santos",
"taxId": "98765432100",
"type": "person"
}
],
"summary": {
"entitiesCreated": 3,
"relationshipsCreated": 2,
"errorsCount": 0
}
},
"rulesResult": null
}
entityData.company.cnae e cnaeDescription contêm a
atividade econômica principal do resultado normalizado de dados básicos. industry
mantém a mesma descrição por compatibilidade com as fichas existentes.
Criação Bem-Sucedida de Pessoa
{
"success": true,
"data": {
"entity": {
"id": "person_uuid",
"organizationId": "org_uuid",
"type": "person",
"name": "João Silva",
"taxId": "12345678900",
"countryCode": "BR",
"status": "under_review",
"entityData": {
"person": {
"firstName": "João",
"lastName": "Silva",
"dateOfBirth": "1985-05-15"
}
},
"createdAt": "2024-12-23T10:30:00.000Z",
"updatedAt": "2024-12-23T10:30:00.000Z"
},
"relationships": [],
"summary": {
"entitiesCreated": 1,
"relationshipsCreated": 0,
"errorsCount": 0
}
},
"rulesResult": null
}
Respostas de Erro
400 Bad Request - ID Fiscal Inválido
{
"success": false,
"error": "Formato de CNPJ inválido para o Brasil"
}
404 Not Found - Entidade Não Encontrada no Registro
{
"success": false,
"error": "Entidade não encontrada no registro oficial",
"details": {
"taxId": "12.345.678/0001-90",
"country": "BR",
"registry": "Receita Federal"
}
}
409 Conflict - Entidade Já Existe
Retornado quando otaxId normalizado já é usado por uma entidade ativa de um tipo diferente na mesma organização (pessoa vs empresa). Matches do mesmo tipo são reutilizados em vez de falhar.
{
"success": false,
"error": {
"code": "DUPLICATE_TAX_ID",
"message": "This tax ID is already registered for a company in this organization (Entity ID: uuid).",
"details": {
"existingEntityId": "uuid",
"existingEntityType": "company"
}
}
}
500 Internal Server Error
{
"success": false,
"error": "Falha ao criar entidade automaticamente",
"details": {
"message": "Timeout da API externa"
}
}
Melhores Práticas
- Use profundidade com sabedoria: Valores de profundidade mais altos (3-5) podem criar muitas entidades e levar mais tempo para completar. Comece com profundidade 0-1 para testes.
-
Monitore eventos WebSocket: Embora a API retorne sincronamente, eventos WebSocket também são emitidos para atualizações de UI em tempo real (
entity:creation-started,entity:creation-completed,entity:creation-failed). - Lide com timeouts: Para hierarquias complexas com alta profundidade, a requisição pode levar vários minutos. Configure valores de timeout HTTP apropriados no seu cliente.
-
Tratamento de erros: Sempre verifique o campo
successe o objetoerrorsna resposta. Algumas entidades podem ser criadas com sucesso enquanto outras falham. - Limitação de taxa: Tenha cuidado com limites de taxa ao criar múltiplas entidades em rápida sucessão. O endpoint busca dados de APIs externas que podem ter seus próprios limites de taxa.
Endpoints Relacionados
- Criar Entidade Manualmente - Criar entidades com seus próprios dados
- Obter Entidade - Recuperar detalhes da entidade
- Listar Entidades - Consultar suas entidades
Was this page helpful?