Obtener una entidad por ID
curl --request GET \
--url http://api.gu1.ai/entities/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "http://api.gu1.ai/entities/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('http://api.gu1.ai/entities/{id}', 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/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://api.gu1.ai/entities/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://api.gu1.ai/entities/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("http://api.gu1.ai/entities/{id}")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"externalId": "<string>",
"organizationId": "<string>",
"type": "<string>",
"name": "<string>",
"taxId": "<string>",
"countryCode": "<string>",
"nationality": {},
"riskScore": 123,
"riskFactors": [
{}
],
"status": "<string>",
"kycVerified": true,
"kycProvider": "<string>",
"kycData": {},
"entityData": {},
"attributes": {},
"currentEvaluation": {},
"createdAt": "<string>",
"updatedAt": "<string>",
"deletedAt": "<string>"
}Obtener una entidad por ID
Recuperar información detallada sobre una persona o empresa — en el modelo universal de entidades gu1 para KYC, KYB y análisis de riesgo.
GET
/
entities
/
{id}
Obtener una entidad por ID
curl --request GET \
--url http://api.gu1.ai/entities/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "http://api.gu1.ai/entities/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('http://api.gu1.ai/entities/{id}', 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/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://api.gu1.ai/entities/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://api.gu1.ai/entities/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("http://api.gu1.ai/entities/{id}")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"externalId": "<string>",
"organizationId": "<string>",
"type": "<string>",
"name": "<string>",
"taxId": "<string>",
"countryCode": "<string>",
"nationality": {},
"riskScore": 123,
"riskFactors": [
{}
],
"status": "<string>",
"kycVerified": true,
"kycProvider": "<string>",
"kycData": {},
"entityData": {},
"attributes": {},
"currentEvaluation": {},
"createdAt": "<string>",
"updatedAt": "<string>",
"deletedAt": "<string>"
}Descripción General
Recupera los detalles completos de una entidad específica por ID, incluyendo su estado de evaluación actual y evaluación de riesgo.Endpoint
GET http://api.gu1.ai/entities/{id}
Autenticación
Requiere una clave API válida en el encabezado de autorización:Authorization: Bearer YOUR_API_KEY
Parámetros de Ruta
string
required
El ID único de gu1 de la entidad a recuperar
Respuesta
Devuelve el objeto de entidad completo con los siguientes campos:string
ID interno de entidad de gu1
string
Su identificador externo para esta entidad
string
Su ID de organización
string
Tipo de entidad (person o company)
string
Nombre de visualización de la entidad
string
Número de identificación tributaria
string
Código de país ISO 3166-1 alfa-2
string | null
Nacionalidad en raíz (ISO 3166-1 alfa-2, denormalizada; puede ser
null en registros antiguos). Complementa entityData.person.nationality / entityData.company.nationality.number
Puntuación de riesgo calculada de 0 (riesgo bajo) a 100 (riesgo alto)
array
Array de factores de riesgo identificados que contribuyen a la puntuación de riesgo
string
Estado de la entidad:
active, inactive, not_started, under_review, pending_verification, awaiting_information, rejected, suspended, blocked, expired, deletedboolean
Si se ha completado la verificación KYC
string
Nombre del proveedor KYC utilizado (si aplica)
object
Datos de verificación KYC del proveedor
object
Estructura de datos de entidad específica del tipo
object
Atributos personalizados, almacenados tal cual. Los valores escalares/array quedan en la raíz (sin categoría); un objeto anidado agrupa sus claves internas bajo esa categoría (p. ej.
{ "contact": { "phone": "..." } }). La respuesta devuelve la misma forma que se escribió — el input anidado no se aplana. Reglas y webhooks leen la forma almacenada (attributes.phone o attributes.contact.phone).object
Últimos resultados de evaluación de IA (null si no existe evaluación)
id- ID de evaluaciónentityId- ID de entidadevaluationType- Tipo de evaluación realizadaresult- Resultado de la evaluaciónconfidence- Puntuación de confianza (0-1)evaluatedAt- Marca de tiempo de la evaluación
string
Marca de tiempo ISO 8601 de creación de la entidad
string
Marca de tiempo ISO 8601 de la última actualización
string
Marca de tiempo ISO 8601 de eliminación suave (null si no está eliminada)
Ejemplos
Obtener Entidad de Persona
curl -X GET http://api.gu1.ai/entities/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer YOUR_API_KEY"
const response = await fetch(
'http://api.gu1.ai/entities/550e8400-e29b-41d4-a716-446655440000',
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
}
);
const entity = await response.json();
console.log(entity);
import requests
response = requests.get(
'http://api.gu1.ai/entities/550e8400-e29b-41d4-a716-446655440000',
headers={
'Authorization': 'Bearer YOUR_API_KEY'
}
)
entity = response.json()
print(entity)
Ejemplo de Respuesta - Entidad de Persona
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"externalId": "customer_12345",
"organizationId": "8e2f89ab-c216-4eb4-90eb-ca5d44499aaa",
"type": "person",
"name": "María González",
"taxId": "20-12345678-9",
"countryCode": "AR",
"nationality": "AR",
"riskScore": 25,
"riskFactors": [
{
"factor": "new_customer",
"impact": 15,
"description": "Customer registered within last 30 days"
},
{
"factor": "high_income_occupation",
"impact": -10,
"description": "Professional occupation with verified income"
}
],
"status": "active",
"kycVerified": true,
"kycProvider": "gueno_ai",
"kycData": {
"verificationDate": "2024-10-03T14:30:00Z",
"documentsVerified": ["national_id", "proof_of_address"],
"livenessCheck": "passed",
"overallStatus": "approved"
},
"entityData": {
"person": {
"firstName": "María",
"lastName": "González",
"dateOfBirth": "1985-03-15",
"nationality": "AR",
"occupation": "Software Engineer",
"income": 85000
}
},
"attributes": {
"email": "maria.gonzalez@example.com",
"phone": "+54 11 1234-5678",
"customerSince": "2024-01-15",
"accountTier": "premium"
},
"currentEvaluation": {
"id": "eval_abc123",
"entityId": "550e8400-e29b-41d4-a716-446655440000",
"evaluationType": "risk_assessment",
"result": {
"overallRisk": "low",
"amlRisk": "low",
"fraudRisk": "low",
"complianceScore": 95,
"recommendation": "approve"
},
"confidence": 0.92,
"evaluatedAt": "2024-10-03T14:35:00Z"
},
"createdAt": "2024-10-03T14:30:00.000Z",
"updatedAt": "2024-10-03T14:35:00.000Z",
"deletedAt": null
}
Ejemplo de Respuesta - Entidad de Empresa
{
"id": "660e9511-f39c-52e5-b827-557766551111",
"externalId": "company_789",
"organizationId": "8e2f89ab-c216-4eb4-90eb-ca5d44499aaa",
"type": "company",
"name": "Tech Solutions S.A.",
"taxId": "12.345.678/0001-90",
"countryCode": "BR",
"nationality": "BR",
"riskScore": 35,
"riskFactors": [
{
"factor": "new_business",
"impact": 20,
"description": "Company incorporated less than 2 years ago"
},
{
"factor": "high_growth_industry",
"impact": 15,
"description": "Operating in high-growth tech sector"
}
],
"status": "active",
"kycVerified": true,
"kycProvider": "gueno_ai",
"kycData": {
"verificationDate": "2024-10-03T15:00:00Z",
"documentsVerified": ["articles_of_incorporation", "tax_registration", "beneficial_owners"],
"overallStatus": "approved"
},
"entityData": {
"company": {
"legalName": "Tech Solutions Sociedade Anônima",
"tradeName": "Tech Solutions",
"incorporationDate": "2020-06-15",
"industry": "Software Development",
"employeeCount": 50,
"revenue": 5000000
}
},
"attributes": {
"website": "https://techsolutions.com.br",
"registeredAddress": "Av. Paulista, 1000, São Paulo",
"partnershipTier": "gold",
"monthlyVolume": 250000
},
"currentEvaluation": {
"id": "eval_xyz789",
"entityId": "660e9511-f39c-52e5-b827-557766551111",
"evaluationType": "kyb_assessment",
"result": {
"overallRisk": "medium",
"financialRisk": "low",
"reputationalRisk": "low",
"complianceScore": 88,
"recommendation": "approve_with_monitoring"
},
"confidence": 0.87,
"evaluatedAt": "2024-10-03T15:05:00Z"
},
"createdAt": "2024-10-03T15:00:00.000Z",
"updatedAt": "2024-10-03T15:05:00.000Z",
"deletedAt": null
}
Ejemplo de Respuesta - Entidad de Transacción
{
"id": "770f0622-g40d-63f6-c938-668877662222",
"externalId": "txn_98765",
"organizationId": "8e2f89ab-c216-4eb4-90eb-ca5d44499aaa",
"type": "transaction",
"name": "Wire Transfer - $50,000",
"taxId": null,
"countryCode": "US",
"nationality": null,
"riskScore": 45,
"riskFactors": [
{
"factor": "high_value_transaction",
"impact": 30,
"description": "Transaction amount exceeds $10,000 threshold"
},
{
"factor": "wire_transfer",
"impact": 15,
"description": "Wire transfers carry higher fraud risk"
}
],
"status": "under_review",
"kycVerified": false,
"kycProvider": null,
"kycData": null,
"entityData": {
"transaction": {
"transactionId": "txn_98765",
"type": "wire_transfer",
"status": "completed",
"amount": 50000,
"currency": "USD",
"paymentMethod": "bank_transfer",
"originEntityId": "customer_12345",
"destinationEntityId": "merchant_456",
"transactedAt": "2024-10-03T14:30:00Z",
"riskScore": 45,
"flagged": true,
"category": "business_payment",
"description": "Payment for professional services"
}
},
"attributes": {
"ipAddress": "192.168.1.100",
"deviceId": "device_abc123",
"userAgent": "Mozilla/5.0...",
"referenceNumber": "REF-2024-10-03-001"
},
"currentEvaluation": {
"id": "eval_def456",
"entityId": "770f0622-g40d-63f6-c938-668877662222",
"evaluationType": "fraud_detection",
"result": {
"overallRisk": "medium",
"fraudProbability": 0.35,
"amlFlags": ["high_value", "cross_border"],
"recommendation": "manual_review"
},
"confidence": 0.78,
"evaluatedAt": "2024-10-03T14:32:00Z"
},
"createdAt": "2024-10-03T14:30:00.000Z",
"updatedAt": "2024-10-03T14:32:00.000Z",
"deletedAt": null
}
Respuestas de Error
404 No Encontrado
{
"error": "Entity not found"
}
401 No Autorizado
{
"error": "Invalid or missing API key"
}
500 Error Interno del Servidor
{
"error": "Failed to fetch entity"
}
Casos de Uso
Verificación de Estado KYC
Recuperar una entidad de cliente para verificar su estado KYC antes de aprobar una transacción:const entity = await fetch(`http://api.gu1.ai/entities/${customerId}`, {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
}).then(res => res.json());
if (entity.kycVerified && entity.status === 'active') {
// Proceder con la transacción
console.log('Cliente verificado, puntuación de riesgo:', entity.riskScore);
} else {
// Solicitar verificación adicional
console.log('Se requiere verificación KYC');
}
Monitoreo de Puntuación de Riesgo
Verificar la puntuación de riesgo actual y los factores para monitoreo continuo:entity = requests.get(
f'http://api.gu1.ai/entities/{entity_id}',
headers={'Authorization': 'Bearer YOUR_API_KEY'}
).json()
if entity['riskScore'] > 70:
# Alto riesgo - activar debida diligencia mejorada
print(f"Entidad de alto riesgo detectada: {entity['riskScore']}")
print("Factores de riesgo:", entity['riskFactors'])
elif entity['riskScore'] > 40:
# Riesgo medio - aplicar monitoreo adicional
print(f"Entidad de riesgo medio: {entity['riskScore']}")
Análisis de Resultados de Evaluación
Acceder a la última evaluación de IA para comprender los detalles de la evaluación:const entity = await fetch(`http://api.gu1.ai/entities/${entityId}`, {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
}).then(res => res.json());
if (entity.currentEvaluation) {
console.log('Confianza de la evaluación:', entity.currentEvaluation.confidence);
console.log('Recomendación:', entity.currentEvaluation.result.recommendation);
console.log('Evaluación de riesgo:', entity.currentEvaluation.result.overallRisk);
}
Próximos Pasos
- Actualizar Entidad - Modificar atributos de entidad
- Listar Entidades - Consultar múltiples entidades
- Solicitar Análisis de IA - Obtener evaluación de riesgo
- Ver Línea de Tiempo de Entidad - Ver historial de entidad
- Obtener enrichment normalizado - Dossier canónico de enrichments
- Obtener datos actuales de enrichment - Mapped/raw por código de integración
Was this page helpful?