SEPA · Participación bancaria · Respuestas de la API
Comprobar la participación SEPA de un banco con la API de IBAN-Test
Utilice una respuesta de validación de IBAN para comprobar la participación de un banco en el débito directo principal SEPA, el débito directo corporativo, la transferencia bancaria y la transferencia bancaria en tiempo real. Considere cada procedimiento por separado y diferencie entre participación confirmada y desconocida.
Esta guía explica los campos de respuesta e incluye un ejemplo de Python para evaluar una respuesta en vivo o un archivo JSON guardado. Lo que se verifica es la participación bancaria, no la capacidad de una cuenta específica para realizar un pago.
Descargar ejemplo de respuesta SEPA
El paquete incluye sepa_check.py, sus asistentes API, datos de prueba JSON ilustrativos y pruebas fuera de línea. Se requiere Python versión 3.10 o superior; No hay dependencias de terceros.
Estado de las pruebas: La evaluación pasó siete pruebas locales sobre procedimientos independientes, datos faltantes, IBAN no válidos, errores técnicos y campos incorrectos. También se ejecutó el comando fuera de línea. Los datos de prueba no provienen de una consulta bancaria real; No se realizó una verificación de API en vivo autenticada para este ejemplo.
Qué significan los cuatro campos
La API IBAN-Test compara la participación con los registros de participantes del Consejo Europeo de Pagos. Los procedimientos describen diferentes servicios de pago; La confirmación de uno no confirma la participación en los demás. Las listas subyacentes se pueden encontrar en Registros de participantes del EPC.
| Campo de respuesta | Procedimiento | Distinción importante |
|---|---|---|
details.sepa.sddCore | Adeudo directo SEPA Core | La participación bancaria no prueba un mandato válido ni la capacidad de domiciliación bancaria de una cuenta específica. |
details.sepa.sddB2b | Adeudo directo SEPA B2B | Confirmar Core no implica participación en B2B. |
details.sepa.sct | Transferencia SEPA | Las transferencias estándar y las transferencias en tiempo real tienen resultados independientes. |
details.sepa.sctInst | Transferencia inmediata SEPA | La participación no demuestra la accesibilidad actual a través de RT1/TIPS ni garantiza la ejecución inmediata de una cuenta. |
1. Consulta el IBAN
Utilice el punto final de verificación IBAN normal. No se requiere ninguna llamada SEPA adicional para este proceso:
POST https://www.iban-test.eu/api/v2/iban/validate
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
{"iban":"DE89 3704 0044 0532 0130 00"}
El IBAN anterior es un ejemplo, no una instrucción de pago. Primero verifique el estado de HTTP y el resultado de la validación. Una respuesta utilizable para un IBAN válido incluye code: 2100 y error: false. Los campos SEPA estarán disponibles en details.sepa si la API los proporciona. Los puntos finales separados para la verificación BIC y la verificación de cuentas alemanas no proporcionan estos campos SEPA.
2. Distinguir entre “confirmado” y “desconocido”.
Cada procedimiento incluye status y reason:
confirmed: La API encontró una coincidencia inequívoca y actual en el registro de este esquema.unknown: La API no pudo confirmar la participación. Esto no significa que el banco no admita el esquema.
El siguiente extracto está destinado expresamente a fines ilustrativos. Muestra por qué cuatro columnas separadas son más útiles que un solo indicador "compatible con SEPA":
{
"sddCore": {"status": "confirmed", "reason": "matched"},
"sddB2b": {"status": "unknown", "reason": "no_match"},
"sct": {"status": "confirmed", "reason": "matched"},
"sctInst": {"status": "unknown", "reason": "stale_data"}
}
Core y SCT se confirman en los datos de esta prueba. B2B aún no está confirmado y el resultado de las transferencias en tiempo real se basa en datos desactualizados. Ninguno de estos valores desconocidos cambia el resultado de la verificación del IBAN original.
3. Ejecute el ejemplo sin conexión
Descomprime la descarga y ejecuta:
python3 sepa_check.py --response example-response.json
No se envía ninguna solicitud de red y no se requiere ningún token. El programa genera un resumen JSON que contiene iban_status, información bancaria y cuatro resultados de procedimientos separados. source: "offline_file" indica la fuente de entrada. El archivo proporcionado nombra un banco ficticio y no puede usarse como evidencia de una institución real.
Si faltan los campos SEPA en una respuesta guardada, el asistente devuelve unknown con missing_response_data. Este motivo es una marca local del ejemplo, no un código de motivo de la API IBAN-Test. Los valores de estado inesperados u objetos de procedimiento defectuosos detienen el programa en lugar de aceptarlos silenciosamente.
4. Verifique una respuesta en vivo
python3 sepa_check.py --iban "DE89 3704 0044 0532 0130 00"
El programa consultará su token sin mostrarlo. Alternativamente, implemente IBAN_TEST_API_TOKEN a través de la configuración secreta de su entorno de ejecución. Una ejecución en vivo ejecuta una solicitud de verificación de IBAN y cobra su cuota de API. El asistente utiliza un tiempo de espera, verifica TLS, no sigue redireccionamientos y no reintenta solicitudes automáticamente.
En Windows, use py -3 en lugar de python3 cuando corresponda. El comando termina con 0 si el IBAN es válido, aunque algún esquema sea desconocido; con 2 si el IBAN no supera la validación y con 1 si existe un error operativo o de entrada. Revise cada esquema por separado: el código 0 no significa que todos estén confirmados.
Comprender un resultado desconocido
| Razón de la API | Importancia para tu integración |
|---|---|
no_data, missing_bic | Los datos necesarios para la confirmación no estaban disponibles. |
ambiguous_bank, ambiguous_participant | No se pudo asignar claramente el banco o el participante del registro. |
no_match | No se encontró ninguna entrada de registro coincidente. No obtengan de esto una falta de apoyo general. |
not_current, stale_data | La entrada del registro o los datos disponibles no proporcionan evidencia de participación actual. |
lookup_error | No se pudo completar la consulta de participación. |
Guarde el estado y el motivo juntos. Para resultados desconocidos, muestre "No se pudo confirmar la participación" y maneje estos casos de acuerdo con el proceso de revisión de su solicitud. No marques automáticamente el IBAN como inválido ni afirmes que el banco no puede procesar este método de pago.
Separe los errores de API de los resultados de participación
Un error de autenticación HTTP, una cuota agotada o un error del servidor no son un resultado de participación bancaria unknown. El ejemplo se detiene antes de la evaluación del procedimiento si la solicitud ya falla. Del mismo modo, un IBAN con una suma de control no válida no da lugar a una decisión procesal. Esto significa que un servicio no disponible no se convierte en una declaración engañosa sobre las capacidades de un banco.
Ejecute las pruebas fuera de línea incluidas utilizando python3 -m unittest -v. Para listas de entrada más grandes, comience con Instrucciones CSV y Python y mantenga un par de estado-motivo separado para cada procedimiento a medida que expande la salida.
Referencia técnica: documentación de la API de IBAN-Test y códigos de motivo SEPA. La validación del IBAN y la participación bancaria confirmada no prueban la propiedad de la cuenta, su existencia, su mandato, los fondos disponibles o el éxito del pago.
