Skip to main content
POST
http://api.gu1.ai
/
integration-execution
/
marketplace
/
enrichment-by-external-id
Executar Enriquecimento 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
}

Visão Geral

Executa uma ou mais integrações de enriquecimento do marketplace em uma entidade específica usando seu identificador externo. Este endpoint primeiro busca a entidade pelo seu externalId, depois executa os enriquecimentos. É idêntico ao endpoint por ID, mas mais conveniente quando você usa seus próprios identificadores de entidade.

Endpoint

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

Autenticação

Requer uma chave API válida no cabeçalho de autorização:
Authorization: Bearer YOUR_API_KEY

Corpo da Solicitação

externalId
string
required
Seu identificador externo para a entidade (por exemplo, seu ID de cliente, ID de usuário, etc.)
integrationCodes
array<string>
required
Array de códigos de integração de enriquecimento a serem executados. Veja Códigos de Provedores de Integração para enriquecimentos disponíveis. Pelo menos um código de integração é obrigatório.
parameters
object
Parâmetros adicionais opcionais para passar às integrações

Resposta

success
boolean
Se a operação de enriquecimento em lote foi concluída com sucesso
entityId
string
O UUID interno resolvido da entidade enriquecida
externalId
string
O ID externo que foi usado para buscar a entidade
results
array
Array de resultados de enriquecimento, um para cada código de integraçãoCada resultado contém:
  • success (boolean) - Se este enriquecimento específico foi bem-sucedido
  • enrichmentId (string) - UUID do registro de execução do enriquecimento
  • integrationCode (string) - O código de integração que foi executado
  • integrationName (string) - Nome legível da integração
  • result (object) - Dados de enriquecimento (somente se bem-sucedido)
    • fieldsEnriched (array) - Lista de campos da entidade que foram enriquecidos
    • dataQuality (object) - Métricas de qualidade
      • completeness (number) - Pontuação de completude dos dados (0-1)
      • confidence (number) - Pontuação de confiança (0-1)
    • summary (string) - Resumo legível
    • enrichmentData (object) - Os dados de enriquecimento reais
  • executionTime (number) - Tempo de execução em milissegundos
  • costCents (number) - Custo deste enriquecimento em centavos
  • error (object) - Detalhes do erro (somente se falhou)
    • code (string) - Código de erro
    • message (string) - Mensagem de erro
totalCostCents
number
Custo total de todos os enriquecimentos em centavos
totalExecutionTime
number
Tempo total de execução para todos os enriquecimentos em milissegundos

Exemplos

Executar um Único Enriquecimento

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"]
  }'

Executar Múltiplos Enriquecimentos (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"
    ]
  }'

Exemplo de Resposta - Enriquecimento Bem-Sucedido

{
  "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
}

Exemplo de Resposta - Lote com Resultados Mistos

{
  "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
}

Respostas de Erro

404 Entidade Não Encontrada

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

401 Não Autorizado

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

400 Solicitação Incorreta

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

Casos de Uso

Enriquecimento de Dados KYC

Enriquecer uma entidade de pessoa com dados oficiais do governo:
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}`);
    }
  });
}

Devida Diligência de Empresa

Coletar dados completos da empresa de múltiplas fontes:
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

  • Execução em Lote: Múltiplos enriquecimentos são executados em paralelo para melhor desempenho
  • Rastreamento de Custos: O custo de cada enriquecimento é rastreado individualmente e somado em totalCostCents
  • Sucesso Parcial: O lote pode ter sucesso mesmo que alguns enriquecimentos individuais falhem
  • Auditoria Automática: Todos os enriquecimentos são automaticamente registrados no rastro de auditoria
  • Acionamento de Regras: Enriquecimentos bem-sucedidos acionam o mecanismo de regras com o evento enrichment_completed
  • Idempotência: Executar o mesmo enriquecimento várias vezes pode retornar resultados em cache, a menos que forceRefresh seja usado

Endpoints Relacionados