Introducción
callback_url en todas las peticiones.
El Credit Check permite validar la solvencia de un cliente (residencial o empresa) antes de iniciar un contrato. Debido a que esta validación puede consultar servicios externos, se realiza en segundo plano para garantizar la estabilidad de la API.
El Flujo Asíncrono
Solicitud (Request)
Envías un POST a /creditcheck con los datos del cliente y tu URL de callback.
POST /creditcheck
{
"company_name": "Juan Pérez",
"identificador": "12345678Z",
"tipo_identificador": "NIF",
"postal_code": "28001",
"callback_url": "https://tu-sistema.com/webhooks/scoring",
"referencia_externa": "SOLICITUD-99"
}
Respuesta Inmediata
La API responde con un 202 y un ID de seguimiento.
HTTP 202 Accepted
{
"message": "Request is being processed asynchronously",
"request_id": 1542
}
Recibo del Resultado (Callback)
Una vez completado el análisis, nuestro sistema llamará a tu URL de callback.
Ejemplos por Tipo de Cliente
🏠 Cliente Residencial (NIF/NIE)
{
"company_name": "Nombre Apellido",
"identificador": "12345678Z",
"tipo_identificador": "NIF",
"autonomo": false,
"postal_code": "28001",
"callback_url": "https://tu-api.com/callback"
}
🏢 Cliente Empresa (CIF)
{
"company_name": "EMPRESA SL",
"identificador": "B12345678",
"tipo_identificador": "CIF",
"autonomo": false,
"postal_code": "08001",
"callback_url": "https://tu-api.com/callback"
}
Cómo montar tu Endpoint de Callback
Tu sistema debe estar preparado para recibir una petición POST con el resultado. Todas las llamadas van firmadas con HMAC-SHA256 (ver Guía de Seguridad).
Estructura del Resultado Recibido
El cuerpo del POST enviado a tu callback_url incluirá el resultado detallado de la
operación, incluyendo la referencia_externa para que puedas identificar la solicitud en
tu sistema, los datos técnicos del suministro (SIPS) si están disponibles, y metadatos de
firma para verificación automática.
POST https://tu-api.com/callback
{
"request_id": 1542,
"referencia_externa": "SOLICITUD-99",
"credit_result": {
"raw": {
"code": "1008",
"sips": {
"CUPS": "ES0021000005451399XXXX",
"ConsumoAnualKwh": 10672470,
"CNAE": "9820",
"TarifaATR": "018",
"POT1": 5196,
"POT2": 5196,
"POT3": 0,
"POT4": 0,
"POT5": 0,
"POT6": 0,
"CP_PS": "28861",
"Provincia_PS": "28",
"CAE_P1": 1768590,
"CAE_P2": 2103130,
"CAE_P3": 6800750,
"CAE_EST": false,
"Periodos": 13,
"TipoAutoconsumo": "41"
},
"error": "Experian error: Formato incorrecto del DNI/NIF/CIF en la trama de entrada"
},
"status_code": 500,
"result_operation": "ERROR(Experian error: Formato incorrecto del DNI/NIF/CIF en la trama de entrada)",
"_callback_signature": {
"version": "v1",
"algorithm": "HS256",
"signature": "F9qDjHkLt5lO_JjiPvbP7_eJZeb_KTjTki5gDDNMrEM",
"timestamp": "1772552356"
}
}
X-Signature como el nodo _callback_signature del body para realizar esta
validación.
Ejemplo de Implementación (Python/Flask)
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/webhooks/scoring', methods=['POST'])
def handle_scoring_callback():
data = request.json
# IMPORTANTE: Validar la firma HMAC antes de procesar
# (ver pestaña de Seguridad)
request_id = data.get('request_id')
referencia = data.get('referencia_externa')
resultado = data.get('credit_result', {}).get('result_operation') # Aprobado, Rechazado, Revisión Manual
print(f"Resultado para request {request_id} (Ref: {referencia}): {resultado}")
return jsonify({"status": "received"}), 200
Posibles Resultados (nodo result_operation)
A continuación se detallan los posibles valores que puede recibir el nodo
result_operation en la respuesta del callback_url:
| Resultado | Descripción |
|---|---|
| Aprobado | El cliente es apto para contratación inmediata. |
| Rechazado | El riesgo es demasiado elevado. No se puede proceder. |
| Revisión Manual | Se requiere revisión por parte de un agente de riesgos de Imagina Energía. |
| ERROR(detalles) | Se produjo un error técnico durante la validación (ej: error de formato en Experian). |