Skip to main content
POST
http://api.gu1.ai
/
integration-execution
/
marketplace
/
enrichment-by-external-id
Ejecutar Enriquecimiento por ID Externo
curl --request POST \
  --url http://api.gu1.ai/integration-execution/marketplace/enrichment-by-external-id \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "externalId": "<string>",
  "integrationCodes": [
    "<string>"
  ],
  "parameters": {}
}
'
{
  "success": true,
  "entityId": "<string>",
  "externalId": "<string>",
  "results": [
    {}
  ],
  "totalCostCents": 123,
  "totalExecutionTime": 123
}

Descripción General

Ejecuta una o más integraciones de enriquecimiento del marketplace en una entidad específica usando su identificador externo. Este endpoint primero busca la entidad por su externalId, luego ejecuta los enriquecimientos. Es idéntico al endpoint por ID pero más conveniente cuando usa sus propios identificadores de entidad.

Endpoint

POST http://api.gu1.ai/integration-execution/marketplace/enrichment-by-external-id

Autenticación

Requiere una clave API válida en el encabezado de autorización:
Authorization: Bearer YOUR_API_KEY

Cuerpo de la Solicitud

externalId
string
required
Su identificador externo para la entidad (por ejemplo, su ID de cliente, ID de usuario, etc.)
integrationCodes
array<string>
required
Array de códigos de integración de enriquecimiento a ejecutar. Ver Códigos de Proveedores de Integración para enriquecimientos disponibles. Se requiere al menos un código de integración.
parameters
object
Parámetros adicionales opcionales para pasar a las integraciones

Respuesta

success
boolean
Si la operación de enriquecimiento en lote se completó exitosamente
entityId
string
El UUID interno resuelto de la entidad enriquecida
externalId
string
El ID externo que se usó para buscar la entidad
results
array
Array de resultados de enriquecimiento, uno por cada código de integraciónCada resultado contiene:
  • success (boolean) - Si este enriquecimiento específico tuvo éxito
  • enrichmentId (string) - UUID del registro de ejecución del enriquecimiento
  • integrationCode (string) - El código de integración que fue ejecutado
  • integrationName (string) - Nombre legible de la integración
  • result (object) - Datos de enriquecimiento (solo si fue exitoso)
    • fieldsEnriched (array) - Lista de campos de entidad que fueron enriquecidos
    • dataQuality (object) - Métricas de calidad
      • completeness (number) - Puntuación de completitud de datos (0-1)
      • confidence (number) - Puntuación de confianza (0-1)
    • summary (string) - Resumen legible
    • enrichmentData (object) - Los datos de enriquecimiento reales
  • executionTime (number) - Tiempo de ejecución en milisegundos
  • costCents (number) - Costo de este enriquecimiento en centavos
  • error (object) - Detalles del error (solo si falló)
    • code (string) - Código de error
    • message (string) - Mensaje de error
totalCostCents
number
Costo total de todos los enriquecimientos en centavos
totalExecutionTime
number
Tiempo total de ejecución para todos los enriquecimientos en milisegundos

Ejemplos

Ejecutar un Solo Enriquecimiento

curl -X POST http://api.gu1.ai/integration-execution/marketplace/enrichment \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "externalId": "customer_12345",
    "integrationCodes": ["ar_repet_enrichment"]
  }'

Ejecutar Múltiples Enriquecimientos (Lote)

curl -X POST http://api.gu1.ai/integration-execution/marketplace/enrichment \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "externalId": "customer_12345",
    "integrationCodes": [
      "ar_repet_enrichment",
      "ar_bcra_enrichment",
      "ar_nosis_enrichment"
    ]
  }'

Ejemplo de Respuesta - Enriquecimiento Exitoso

{
  "success": true,
  "entityId": "550e8400-e29b-41d4-a716-446655440000",
  "externalId": "customer_12345",
  "results": [
    {
      "success": true,
      "enrichmentId": "enr_abc123def456",
      "integrationCode": "ar_repet_enrichment",
      "integrationName": "Argentina REPET Person Data",
      "result": {
        "fieldsEnriched": [
          "name",
          "taxId",
          "address",
          "legalStatus"
        ],
        "dataQuality": {
          "completeness": 0.95,
          "confidence": 0.92
        },
        "summary": "Successfully enriched person data from REPET",
        "enrichmentData": {
          "name": "María González",
          "taxId": "20-12345678-9",
          "address": {
            "street": "Av. Corrientes 1234",
            "city": "Buenos Aires",
            "province": "CABA",
            "country": "AR"
          },
          "legalStatus": "active"
        }
      },
      "executionTime": 1250,
      "costCents": 50
    }
  ],
  "totalCostCents": 50,
  "totalExecutionTime": 1250
}

Ejemplo de Respuesta - Lote con Resultados Mixtos

{
  "success": true,
  "entityId": "550e8400-e29b-41d4-a716-446655440000",
  "externalId": "customer_12345",
  "results": [
    {
      "success": true,
      "enrichmentId": "enr_abc123",
      "integrationCode": "ar_repet_enrichment",
      "integrationName": "Argentina REPET Person Data",
      "result": {
        "fieldsEnriched": ["name", "taxId"],
        "dataQuality": {
          "completeness": 0.85,
          "confidence": 0.90
        },
        "summary": "Data enriched successfully",
        "enrichmentData": {
          "name": "María González",
          "taxId": "20-12345678-9"
        }
      },
      "executionTime": 1200,
      "costCents": 50
    },
    {
      "success": false,
      "integrationCode": "ar_bcra_enrichment",
      "integrationName": "Argentina BCRA Financial Data",
      "executionTime": 800,
      "costCents": 0,
      "error": {
        "code": "NO_DATA_FOUND",
        "message": "No financial data found for this entity"
      }
    },
    {
      "success": true,
      "enrichmentId": "enr_xyz789",
      "integrationCode": "ar_nosis_enrichment",
      "integrationName": "Argentina Nosis Credit Report",
      "result": {
        "fieldsEnriched": ["creditScore", "riskLevel"],
        "dataQuality": {
          "completeness": 1.0,
          "confidence": 0.95
        },
        "summary": "Credit report retrieved",
        "enrichmentData": {
          "creditScore": 720,
          "riskLevel": "low"
        }
      },
      "executionTime": 1500,
      "costCents": 75
    }
  ],
  "totalCostCents": 125,
  "totalExecutionTime": 3500
}

Respuestas de Error

404 Entidad No Encontrada

{
  "success": false,
  "results": [],
  "totalCostCents": 0,
  "totalExecutionTime": 0,
  "error": {
    "code": "ENTITY_NOT_FOUND",
    "message": "Entity not found"
  }
}

401 No Autorizado

{
  "success": false,
  "error": {
    "code": "MISSING_ORGANIZATION",
    "message": "Organization ID is required"
  }
}

400 Solicitud Incorrecta

{
  "success": false,
  "results": [],
  "totalCostCents": 0,
  "totalExecutionTime": 0,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "At least one integration code is required"
  }
}

Casos de Uso

Enriquecimiento de Datos KYC

Enriquecer una entidad de persona con datos oficiales del gobierno:
const enrichmentResult = await fetch(
  'http://api.gu1.ai/integration-execution/marketplace/enrichment',
  {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      entityId: customerId,
      integrationCodes: [
        'ar_repet_enrichment',  // Official identity data
        'ar_renaper_enrichment' // National registry
      ]
    })
  }
).then(res => res.json());

if (enrichmentResult.success) {
  console.log('Customer data enriched');
  console.log('Total cost:', enrichmentResult.totalCostCents / 100, 'USD');

  // Check each enrichment result
  enrichmentResult.results.forEach(result => {
    if (result.success) {
      console.log(`✓ ${result.integrationName} completed`);
    } else {
      console.log(`✗ ${result.integrationName} failed: ${result.error?.message}`);
    }
  });
}

Debida Diligencia de Empresa

Recopilar datos completos de empresa desde múltiples fuentes:
enrichment_data = requests.post(
    'http://api.gu1.ai/integration-execution/marketplace/enrichment',
    headers={'Authorization': 'Bearer YOUR_API_KEY'},
    json={
        'entityId': company_id,
        'integrationCodes': [
            'ar_afip_enrichment',      # Tax authority data
            'ar_bcra_enrichment',      # Central bank data
            'ar_commercial_registry'    # Commercial registry
        ]
    }
).json()

# Process successful enrichments
successful = [r for r in enrichment_data['results'] if r['success']]
failed = [r for r in enrichment_data['results'] if not r['success']]

print(f"Completed: {len(successful)}/{len(enrichment_data['results'])}")
print(f"Total cost: ${enrichment_data['totalCostCents'] / 100:.2f}")

Notas Importantes

  • Ejecución en Lote: Múltiples enriquecimientos se ejecutan en paralelo para mejor rendimiento
  • Seguimiento de Costos: El costo de cada enriquecimiento se rastrea individualmente y se suma en totalCostCents
  • Éxito Parcial: El lote puede tener éxito incluso si algunos enriquecimientos individuales fallan
  • Auditoría Automática: Todos los enriquecimientos se registran automáticamente en el registro de auditoría
  • Activación de Reglas: Los enriquecimientos exitosos activan el motor de reglas con el evento enrichment_completed
  • Idempotencia: Ejecutar el mismo enriquecimiento múltiples veces puede devolver resultados en caché a menos que se use forceRefresh

Endpoints Relacionados