Skip to main content

Cliente para enviar reportes a la CNBV.

Project description

siti-python

release test

Cliente para enviar reportes a la CNBV por medio de la plataforma SITI Documentación: https://sitiapiqa.cnbv.gob.mx/devportal/apis/

La manera sugerida para llenar reportes es por medio de diccionarios con el formato del modelo:

Desde diccionarios

from siti.resources.ifpe import Reporte111

dict_111 = {
    'identificador_reporte': {
        'inicio_periodo': dt.date(2019, 1, 1),
        'fin_periodo': dt.date(2019, 1, 31),
        'clave_institucion': '065000',
        'reporte': '111',
    },
    'informacion_financiera': [
        {
            'concepto': '100000000000',
            'moneda': '2',
            'dato': 334422.0434,
        },
    ]
}

r111 = Reporte111(**dict_111)

In [1]: r111
Out[1]: 
    Reporte111(
        folio=None,
        identificador_reporte=IdentificadorReporte(
            inicio_periodo=datetime.date(2019, 1, 1),
            fin_periodo=datetime.date(2019, 1, 31),
            clave_institucion='065000',
            reporte='111'
        ),
        informacion_financiera=[
            InformacionFinanciera(
                concepto='100000000000',
                moneda='2',
                dato=334422.0434
            )
        ]
    )

Donde r111 será el reporte construido con el modelo, y se realizarán las validaciones propias de ese reporte.

Desde dataframe

De igual manera se puede construir el objto con la utilización de un dataframe de Pandas con un formato que siga las columnas del modelo que se quiere construir. Para obtener las columnas del modelo se puede mandar a llamar el método .columns()

In [13]: Reporte111.columns()
Out[13]: 
{
    'inicio_periodo': str,
    'fin_periodo': str,
    'clave_institucion': str,
    'reporte': str,
    'concepto': str,
    'moneda': str,
    'dato': float
}

Se puede construir un dataframe con esta información y posteriormente mandar a llamar el método .from_dataframe(name, df), dónde name es el nombre del archivo que tiene que cumplir con el formato CLAVEINSTITUCION_REPORTE_FECHAINICIO_FECHAFINAL ejemplo: 065014_2610_20210831_20210831 para obtener los datos del campo identificador_reporte.

import pandas as pd

name = '065014_2610_20210831_20210831.csv'
columns = Reporte111.columns()
df = pd.read_csv(name, dtype=columns)
r111 = Reporte111.from_dataframe(name, df)

In [1]: r111
Out[1]: 
    Reporte111(
        folio=None,
        identificador_reporte=IdentificadorReporte(
            inicio_periodo=datetime.date(2019, 1, 1),
            fin_periodo=datetime.date(2019, 1, 31),
            clave_institucion='065000',
            reporte='111'
        ),
        informacion_financiera=[
            InformacionFinanciera(
                concepto='100000000000',
                moneda='2',
                dato=334422.0434
            )
        ]
    )

Enviar

Al mandar a llamar cualquiera de los métodos de enviar (send, resend, update), el cliente automáticamente convertirá el objeto al formato solicitado por la CNBV. Este formato se puede obtener llamando el método .dict(to_camel_case=True).

Estos métodos regresarán un folio, el cual es importante almacenar para poder realizar el seguimiento del envío

In [1]: r111.dict(to_camel_case=True)
Out[1]: 
{
    'identificadorReporte': {
        'inicioPeriodo': '20190101',
        'finPeriodo': '20190131',
        'claveInstitucion': '065000',
        'reporte': '111'
    },
    'informacionFinanciera': [
        {
            'concepto': '100000000000',
            'moneda': '2',
            'dato': 334422.0434
        }
    ]
}

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

aiositi-mex-0.0.1.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

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

aiositi_mex-0.0.1-py3-none-any.whl (32.3 kB view details)

Uploaded Python 3

File details

Details for the file aiositi-mex-0.0.1.tar.gz.

File metadata

  • Download URL: aiositi-mex-0.0.1.tar.gz
  • Upload date:
  • Size: 18.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for aiositi-mex-0.0.1.tar.gz
Algorithm Hash digest
SHA256 59af708d70ad0c1e3647076a0034a96b33c3f89bc4b7b4f02cdaaa3f8634159c
MD5 bc7837619bb7f2191e4a50fcaefe291a
BLAKE2b-256 c7095cde6850d21e02f5b98e2f58887d8c52f84ee61c81572900956e1040a0a4

See more details on using hashes here.

File details

Details for the file aiositi_mex-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: aiositi_mex-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 32.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for aiositi_mex-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 63d48622fdbcb580d18b794a33d89573761e01ec1e9cad38f6584d72b3e4b633
MD5 0869154f98f2fd24bc756255bc64118c
BLAKE2b-256 fa683c61ae58d4dcba25d27c8f9c2e6a4491a36eb55346feb7921a2e120990a8

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