Skip to main content

Validate and generate the control digit of a CLABE in Mexico

Project description

CLABE

test codecov PyPI Downloads

Librería para validar y calcular un número CLABE basado en https://es.wikipedia.org/wiki/CLABE

Requerimientos

Python 3.8 o superior.

Instalación

Se puede instalar desde Pypi usando

pip install clabe

Pruebas

Para ejecutar las pruebas

$ make test

Uso básico

Como tipo personalizado en un modelo de Pydantic

from pydantic import BaseModel, ValidationError

from clabe import Clabe


class Account(BaseModel):
    id: str
    clabe: Clabe


account = Account(id='123', clabe='723010123456789019')
print(account)
"""
id='123' clabe='723010123456789019'
"""

try:
    account = Account(id='321', clabe='000000000000000011')
except ValidationError as exc:
    print(exc)
"""
1 validation error for Account
clabe
  código de banco no es válido [type=clabe.bank_code, input_value='000000000000000011', input_type=str]
"""

Obtener el dígito de control de un número CLABE

import clabe
clabe.compute_control_digit('00200000000000000')

Para validar si un número CLABE es válido

import clabe
clabe.validate_clabe('002000000000000008')

Para obtener el banco a partir de 3 dígitos

import clabe
clabe.get_bank_name('002')

Para generar nuevo válido CLABES

import clabe
clabe.generate_new_clabes(10, '002123456')

Agregar un nuevo banco

A partir de la versión 2.0.0, el paquete ha sido actualizado para utilizar Pydantic v2, lo que implica que las versiones anteriores ya no recibirán soporte ni actualizaciones.

No obstante, en versiones anteriores hemos agregado una función que permite añadir bancos adicionales a la lista sin necesidad de crear un PR. Esto es útil para quienes aún utilicen versiones anteriores. Sin embargo, a partir de la versión 2, continuaremos manteniendo y actualizando la lista oficial de bancos mediante PRs en el repositorio.

Cómo agregar un banco

Para agregar un banco, llama a la función add_bank pasando el código de Banxico y el nombre del banco como parámetros.

import clabe
clabe.add_bank('12345', 'New Bank')

Cómo eliminar un banco

De manera similar, puedes eliminar un banco llamando a la función remove_bank con el código del banco que deseas eliminar.

import clabe
clabe.remove_bank('12345')

Nota: Aunque estas funciones están disponibles para un uso más flexible, recomendamos utilizar siempre la lista oficial de bancos actualizada en la versión 2+.

Mantener actualizada la lista de participantes

Para mantener sincronizada la lista de participantes del SPEI con la información oficial de Banxico, este repositorio incluye un script que compara automáticamente los datos locales con la lista actualizada de instituciones financieras.

Verificar cambios en la lista de participantes

El script compare_banks.py detecta:

  • Nuevos participantes: Instituciones que aparecen en Banxico pero no están en el paquete
  • Bajas de participantes: Instituciones que ya no aparecen en la lista oficial de Banxico
  • Cambios de nombre: Participantes que mantienen el mismo código pero han cambiado su nombre

Para ejecutar la verificación:

export PYTHONPATH=$(pwd)
python scripts/compare_banks.py

Interpretar los resultados

El script mostrará un reporte con las diferencias encontradas:

  • ADDITIONS: Nuevos participantes que deben agregarse al archivo clabe/banks.py
  • REMOVALS: Participantes que deben eliminarse por ya no estar activos
  • CHANGES: Cambios de nombre que requieren actualización

Si no hay diferencias, el script confirmará que los datos están sincronizados.

Actualizar la lista de participantes

Una vez identificados los cambios, actualiza manualmente el archivo clabe/banks.py y crea un pull request para mantener la lista actualizada.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clabe-2.1.10.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clabe-2.1.10-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file clabe-2.1.10.tar.gz.

File metadata

  • Download URL: clabe-2.1.10.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for clabe-2.1.10.tar.gz
Algorithm Hash digest
SHA256 99d3a3b0436cbf9ff0051933a4d94f6d242abf58b2f33136b5da2961a4a2457c
MD5 810c52989f54803ee5d14d3e07198daf
BLAKE2b-256 69e4dfa7689105c577a99f9b337181a151f511e2ef8910d41e608dd4046696dc

See more details on using hashes here.

File details

Details for the file clabe-2.1.10-py3-none-any.whl.

File metadata

  • Download URL: clabe-2.1.10-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for clabe-2.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 0611b054eaccb6f3ac4d5c7995621ee99d1149336bfbb85d724efd75b0196fb1
MD5 5bf83035077d1856cd898430c1be11bf
BLAKE2b-256 01a47d7120b1df0a097789f1ccb035a24d9fb8fb4f303870c4daf9b0ac1ee773

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page