Crear una persona automáticamente con enriquecimiento
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>",
"externalId": "<string>",
"isClient": true,
"riskMatrixId": [
"<string>"
],
"riskMatrixIds": [
"<string>"
],
"skipRulesExecution": true,
"status": "<string>",
"operationalHours": {},
"depth": 123,
"autoExecuteIntegrations": {},
"autoExecuteIntegrationsShareholders": {},
"customData": {},
"attributes": {}
}
'import requests
url = "http://api.gu1.ai/entities/automatic"
payload = {
"taxId": "<string>",
"country": "<string>",
"type": "<string>",
"externalId": "<string>",
"isClient": True,
"riskMatrixId": ["<string>"],
"riskMatrixIds": ["<string>"],
"skipRulesExecution": True,
"status": "<string>",
"operationalHours": {},
"depth": 123,
"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>',
externalId: '<string>',
isClient: true,
riskMatrixId: ['<string>'],
riskMatrixIds: ['<string>'],
skipRulesExecution: true,
status: '<string>',
operationalHours: {},
depth: 123,
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>',
'externalId' => '<string>',
'isClient' => true,
'riskMatrixId' => [
'<string>'
],
'riskMatrixIds' => [
'<string>'
],
'skipRulesExecution' => true,
'status' => '<string>',
'operationalHours' => [
],
'depth' => 123,
'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 \"externalId\": \"<string>\",\n \"isClient\": true,\n \"riskMatrixId\": [\n \"<string>\"\n ],\n \"riskMatrixIds\": [\n \"<string>\"\n ],\n \"skipRulesExecution\": true,\n \"status\": \"<string>\",\n \"operationalHours\": {},\n \"depth\": 123,\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 \"externalId\": \"<string>\",\n \"isClient\": true,\n \"riskMatrixId\": [\n \"<string>\"\n ],\n \"riskMatrixIds\": [\n \"<string>\"\n ],\n \"skipRulesExecution\": true,\n \"status\": \"<string>\",\n \"operationalHours\": {},\n \"depth\": 123,\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 \"externalId\": \"<string>\",\n \"isClient\": true,\n \"riskMatrixId\": [\n \"<string>\"\n ],\n \"riskMatrixIds\": [\n \"<string>\"\n ],\n \"skipRulesExecution\": true,\n \"status\": \"<string>\",\n \"operationalHours\": {},\n \"depth\": 123,\n \"autoExecuteIntegrations\": {},\n \"autoExecuteIntegrationsShareholders\": {},\n \"customData\": {},\n \"attributes\": {}\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {},
"rulesResult": {},
"rulesExecutionSummary": {}
}Referencia API
Crear una persona automáticamente con enriquecimiento
Crear automáticamente persona con datos enriquecidos de registros — para entidades de persona en la plataforma KYC y análisis de riesgo gu1.
POST
/
entities
/
automatic
Crear una persona automáticamente con enriquecimiento
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>",
"externalId": "<string>",
"isClient": true,
"riskMatrixId": [
"<string>"
],
"riskMatrixIds": [
"<string>"
],
"skipRulesExecution": true,
"status": "<string>",
"operationalHours": {},
"depth": 123,
"autoExecuteIntegrations": {},
"autoExecuteIntegrationsShareholders": {},
"customData": {},
"attributes": {}
}
'import requests
url = "http://api.gu1.ai/entities/automatic"
payload = {
"taxId": "<string>",
"country": "<string>",
"type": "<string>",
"externalId": "<string>",
"isClient": True,
"riskMatrixId": ["<string>"],
"riskMatrixIds": ["<string>"],
"skipRulesExecution": True,
"status": "<string>",
"operationalHours": {},
"depth": 123,
"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>',
externalId: '<string>',
isClient: true,
riskMatrixId: ['<string>'],
riskMatrixIds: ['<string>'],
skipRulesExecution: true,
status: '<string>',
operationalHours: {},
depth: 123,
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>',
'externalId' => '<string>',
'isClient' => true,
'riskMatrixId' => [
'<string>'
],
'riskMatrixIds' => [
'<string>'
],
'skipRulesExecution' => true,
'status' => '<string>',
'operationalHours' => [
],
'depth' => 123,
'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 \"externalId\": \"<string>\",\n \"isClient\": true,\n \"riskMatrixId\": [\n \"<string>\"\n ],\n \"riskMatrixIds\": [\n \"<string>\"\n ],\n \"skipRulesExecution\": true,\n \"status\": \"<string>\",\n \"operationalHours\": {},\n \"depth\": 123,\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 \"externalId\": \"<string>\",\n \"isClient\": true,\n \"riskMatrixId\": [\n \"<string>\"\n ],\n \"riskMatrixIds\": [\n \"<string>\"\n ],\n \"skipRulesExecution\": true,\n \"status\": \"<string>\",\n \"operationalHours\": {},\n \"depth\": 123,\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 \"externalId\": \"<string>\",\n \"isClient\": true,\n \"riskMatrixId\": [\n \"<string>\"\n ],\n \"riskMatrixIds\": [\n \"<string>\"\n ],\n \"skipRulesExecution\": true,\n \"status\": \"<string>\",\n \"operationalHours\": {},\n \"depth\": 123,\n \"autoExecuteIntegrations\": {},\n \"autoExecuteIntegrationsShareholders\": {},\n \"customData\": {},\n \"attributes\": {}\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {},
"rulesResult": {},
"rulesExecutionSummary": {}
}Resumen
El endpoint de creación automática de persona te permite crear personas proporcionando información mínima (ID fiscal y país). El sistema automáticamente:- Obtiene datos de la persona de registros oficiales
- Enriquece la persona con información adicional
- Ejecuta enriquecimientos automáticamente
Endpoint
POST http://api.gu1.ai/entities/automatic
Autenticación
Requiere una clave API válida en el encabezado Authorization:Authorization: Bearer YOUR_API_KEY
Cuerpo de la Solicitud
string
required
Número de identificación fiscal de la persona (ej., CPF para Brasil, CURP para México, CUIT para Argentina)
📋 Ver Formatos de Tax ID por País para formatos aceptados y reglas de validación para cada país.
string
required
Código de país ISO 3166-1 alpha-2 (ej., “BR”, “MX”, “AR”, “CL”)
string
required
Debe establecerse en
personstring
Tu identificador único para esta persona (opcional, se generará automáticamente si no se proporciona)
boolean
default:"false"
Marca esta persona como cliente para fines de seguimiento
string | string[]
Uno o más UUIDs de matrices de riesgo (legacy: un solo UUID). Tras la creación se ejecutan reglas activas de esas matrices (salvo
skipRulesExecution: true).string[]
Preferido para varias matrices: lista ordenada de UUIDs. Tiene precedencia sobre
riskMatrixId cuando viene informada y no vacía.boolean
default:"false"
Omitir la ejecución automática de reglas después de crear la persona
string
default:"under_review"
Estado inicial. Default
under_review. Opcional: not_started, active, inactive, blocked, under_review, pending_verification, awaiting_information, suspended, expired, deleted, rejected. Ver Descripción general — Estados.object | null
Horario operativo opcional de la entidad principal (
timezone + weekly). Se persiste en creación automática igual que en creación manual de entidades. No se aplica a accionistas/relaciones creadas por depth.number
default:"0"
Profundidad de extracción de relaciones (0-5). Controla cuántos niveles de relaciones se obtienen y crean automáticamente.
0: Sin relaciones (solo entidad principal)1: Solo relaciones directas2: Relaciones + sus relaciones3-5: Niveles adicionales (usar con precaución - puede crear muchas entidades)
object
Configurar la ejecución automática de integraciones para la entidad de persona principal. Ver Referencia de Códigos de Proveedor para códigos disponibles.Tipo: Ejemplo:
object (opcional)Propiedades:executeAllActiveEnrichments(boolean, opcional, predeterminado:false) - Ejecutar todas las integraciones de enriquecimiento activasenrichments(array, opcional, predeterminado:[]) - Array de códigos específicos de proveedor de enriquecimiento a ejecutarenrichmentGroupRefs(array de strings, opcional) - Slugs de grupos de enriquecimiento del Marketplace (solo enriquecimientos). ConexecuteAllActiveEnrichments: false, se resuelven los grupos y se fusionan conenrichmentsexplícitos. ConexecuteAllActiveEnrichments: true, los refs de grupo no se usan; losenrichmentsexplícitos pueden seguir añadiendo códigos tras el conjunto activo.
{
executeAllActiveEnrichments?: boolean; // predeterminado: false
enrichments?: ValidProviderCodesEnum[]; // predeterminado: []
enrichmentGroupRefs?: string[];
}
{
"executeAllActiveEnrichments": false,
"enrichments": ["br_bdc_basic_data_enrichment"],
"enrichmentGroupRefs": ["my_marketplace_group_slug"],
}
object
Configurar la ejecución automática de integraciones para relaciones descubiertas. Útil al usar Ejemplo:
depth > 0. Ver Referencia de Códigos de Proveedor para códigos disponibles.Tipo: object (opcional)Propiedades:executeAllActiveEnrichments(boolean, opcional, predeterminado:false) - Ejecutar todos los enriquecimientos activos en entidades relacionadasenrichments(object, opcional) - Enriquecimientos específicos por tipo de entidadcompany(array, predeterminado:[]) - Enriquecimientos para relaciones de empresaperson(array, predeterminado:[]) - Enriquecimientos para relaciones de persona
enrichmentGroupRefs(array de strings, opcional) - Mismos slugs que en el objeto principal; conexecuteAllActiveEnrichments: falsese aplican tanto acompanycomo aperson. ConexecuteAllActiveEnrichments: trueen este objeto, los refs de grupo no se usan; losenrichmentsexplícitos por tipo pueden seguir añadiendo códigos tras el activo de cada lado.
{
executeAllActiveEnrichments?: boolean;
enrichments?: {
company?: ValidProviderCodesEnum[];
person?: ValidProviderCodesEnum[];
};
enrichmentGroupRefs?: string[];
}
{
"enrichments": {
"person": ["br_cpfcnpj_complete_person_enrichment"],
"company": ["br_cpfcnpj_complete_company_enrichment"]
},
"enrichmentGroupRefs": ["related_entities_group_slug"]
}
Códigos de Enrichment Obligatorios por País
Al usar códigos de enrichment específicos (no
executeAllActiveEnrichments: true), ciertos enrichments son obligatorios para que la creación automática funcione. Sin ellos, el sistema no puede obtener los datos básicos de la persona de los registros oficiales y la solicitud fallará.Brasil (BR)
| Escenario | Código(s) de Enrichment Obligatorio(s) | Descripción |
|---|---|---|
| Entidad principal | br_bdc_basic_data_enrichment | Obtiene datos de la persona vía BDC/CPF (nombre completo, fecha de nacimiento, dirección, etc.) |
Relacionados (depth > 0) | br_bdc_related_companies_enrichment Y br_bdc_related_persons_enrichment | Ambos obligatorios en autoExecuteIntegrations.enrichments. Obtiene empresas y personas relacionadas con el individuo |
Los enrichments de relaciones deben incluirse en el array
autoExecuteIntegrations.enrichments de la entidad principal (no en autoExecuteIntegrationsShareholders), porque el sistema necesita ejecutarlos sobre la persona principal para descubrir las relaciones. El campo autoExecuteIntegrationsShareholders controla qué enrichments ejecutar sobre cada entidad relacionada después de ser creada.Argentina (AR)
| Escenario | Código de Enrichment Obligatorio | Descripción |
|---|---|---|
| Entidad principal | ar_nosis_extended_verification_enrichment | Obtiene datos de la persona de Nosis |
Argentina no soporta la creación automática de relaciones aún. El parámetro
depth debe ser 0.object
Opcional — Datos del cliente para la persona principal que no deben ser reemplazados por enrichments. Detalle completo (tabla root vs
entityData): Creación automática de entidades.Campos: name, email, phone, birthDate → entityData.person.dateOfBirth, address → entityData.person.address, gender (enum: M | F | male | female | other | unknown — usar other para no binario; ver Crear entidad).Ejemplo:{
"taxId": "23450679909",
"country": "AR",
"type": "person",
"customData": {
"name": "LEDESMA BRUNO EZEQUIEL",
"email": "cliente@empresa.com",
"phone": "+541112345678",
"birthDate": "1990-05-15",
"address": "Av. Corrientes 1234, CABA"
}
}
object
Opcional - Atributos personalizados como pares clave-valor para la entidad creada.Se aplican solo a la entidad principal (la persona creada), no a relaciones/accionistas. Útil para segmentos de negocio, etiquetas, IDs internos o cualquier metadato que quieras asociar desde el momento de la creación.Estructura: objeto con claves string y valores de cualquier tipo (string, number, boolean, array, etc.).Ejemplo:
{
"businessSegments": ["retail", "fintech"],
"source": "onboarding_web",
"tags": ["vip", "high_volume"]
}
Respuesta
boolean
Indica si la persona fue creada exitosamente
object
Información completa sobre la creación:
entity(object) - La persona creada con todos los datossummary(object) - Resumen de creaciónerrors(object, opcional) - Detalles de cualquier error
object
Resultado de la ejecución de reglas (solo presente cuando se ejecutaron reglas, p. ej. cuando skipRulesExecution es
false y hay matriz configurada vía riskMatrixId o riskMatrixIds), o null. Cuando está presente, incluye:- success (boolean) - Si las reglas se ejecutaron correctamente
- rulesTriggered (number) - Número de reglas disparadas
- alerts (array) - Alertas generadas por las reglas
- riskScore (number) - Puntuación de riesgo final
- decision (string) - Decisión final (APPROVE, REJECT, HOLD, REVIEW_REQUIRED)
- rulesExecutionSummary (object) - Presente cuando se ejecutaron reglas. Ver abajo la estructura.
object
En la raíz de la respuesta (igual que la API de transacciones). Mismo valor que
rulesResult.rulesExecutionSummary. Solo presente cuando se ejecutaron reglas (p. ej. skipRulesExecution es false y se ejecutó la matriz de riesgo). Resumen de qué reglas hicieron match (hit) vs no (no hit), acciones ejecutadas y puntuación total. Omitido cuando las reglas no se ejecutaron. Estructura completa y ejemplo: Resumen de Ejecución de Reglas.- rulesHit (array) - Reglas cuyas condiciones se cumplieron. Cada ítem: name, description, score, priority, category, status (p. ej.
active,shadow), conditions (array de{ field, value, operator? }), actions (alerts, suggestion, status, assignedUser). - rulesNoHit (array) - Reglas evaluadas pero cuyas condiciones no se cumplieron. Misma estructura que rulesHit (incluye acciones configuradas, no ejecutadas).
- actionsExecuted (object) - Acciones ejecutadas agregadas de todas las reglas que hicieron hit: alerts, suggestion (
BLOCK|SUSPEND|FLAG, mayor peso), status (estado aplicado a la entidad, si hay), assignedUser ({ userId }, si hay), customKeys (array de strings, opcional) — claves de acciones personalizadas de las reglas que hicieron match; para integraciones/workflows. - totalScore (number) - Suma del score de todas las reglas que hicieron hit y no están en estado
shadow.
Ejemplos
Crear Persona con Todas las Integraciones Activas
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",
"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: '123.456.789-00',
country: 'BR',
type: 'person',
isClient: true,
autoExecuteIntegrations: {
executeAllActiveEnrichments: true,
}
})
});
const data = await response.json();
console.log('Person created:', data.data.entity);
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',
'isClient': True,
'autoExecuteIntegrations': {
'executeAllActiveEnrichments': True,
}
}
)
data = response.json()
print('Person created:', data['data']['entity'])
Crear Persona con Integraciones 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",
"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',
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',
'autoExecuteIntegrations': {
'enrichments': ['br_bdc_basic_data_enrichment']
}
}
)
data = response.json()
Ejemplo de Respuesta
{
"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",
"nationality": "BR"
}
},
"createdAt": "2024-12-23T10:30:00.000Z",
"updatedAt": "2024-12-23T10:30:00.000Z"
},
"summary": {
"entitiesCreated": 1,
"relationshipsCreated": 0,
"errorsCount": 0
}
},
"rulesResult": null
}
Respuestas de Error
400 Bad Request - Tax ID Inválido
{
"success": false,
"error": "Invalid CPF format for Brazil"
}
404 Not Found - Persona No Encontrada en Registro
{
"success": false,
"error": "Entity not found in official registry",
"details": {
"taxId": "123.456.789-00",
"country": "BR",
"registry": "Receita Federal"
}
}
409 Conflict - Persona Ya Existe
{
"success": false,
"error": "Entity with this tax ID already exists",
"details": {
"existingEntityId": "uuid",
"taxId": "123.456.789-00"
}
}
Mejores Prácticas
- Manejo de errores: Siempre verifica el campo
successen la respuesta - Límite de tasa: Ten en cuenta los límites de tasa al crear múltiples personas
- Selección de integración: Elige integraciones específicas para un mejor control sobre costo y rendimiento
Próximos Pasos
- Obtener Persona - Recuperar detalles de persona
- Crear Persona Manualmente - Crear personas con tus propios datos
- Crear Validación KYC - Iniciar verificación de identidad
Was this page helpful?