Antes de empezar a tratar este tema, que es largo y complejo, tenemos que aclarar que hasta el momento de escribir estos artículos, todo lo relacionado con información bancaria y por lo tanto lo mencionado en esta entrega está marcado como OPCIONAL en la descripción del CFDI con complemento de Pagos.
Esto quiere decir que en este momento y hasta nuevo aviso del SAT, estamos en libertad de usar o no usar la información que presentamos a continuación dentro de nuestro REP, sin embargo, no dudamos que muy pronto, quizá cuando entre en vigor oficialmente el REP el día 1 de Septiembre, la información que en este momento está marcada como opcional se vuelva obligatoria, por lo tanto les recomendamos que por favor lean este artículo hasta el final, y después decidan si implementan esta parte o la dejan para un futuro.
En este artículo hablaremos de los SPEIs y la forma en que tenemos que reportarlos dentro del Recibo Electrónico de Pagos, y tiene su propio artículo porque es una labor muy detalla reportar un SPEI en un complemento de pagos.
Comencemos por hablar un poco del SPEI.
SPEI son la iniciales del Sistema de Pagos Electrónicos Interbancarios, es un estandar establecido por el Banco de México, (Banxico) para aplicar transferencias de fondos banco a banco el mismo día y en cuestión de minutos e incluso segundos.
Los SPEI son mas eficientes que un depósito en efectivo, mas seguros (ejem, ejem) y proveen de una forma mas rápida de intercambiar fondos entre bancos y cuenta habientes.
Básicamente en un SPEI, sale dinero de una cuenta del Banco A y se deposita en una cuenta del Banco B, el principio es muy simple, pero aquí es donde entra en acción la mano de hierro del SAT para controlar los SPEIs.
Para dar fe y legalidad de un SPEI, el SAT solicita al Banco A que elabore un CFDI de Egreso a favor del Banco B, con esta operación el SAT tiene certidumbre de que hay un traspaso de fondos entre los dos bancos, pero......
Si se tiene que emitir un CFDI de Egreso con el Banco A como emisor y el Banco B como receptor, este se convierte en un CFDI de Ingreso para el Banco B ¿ cierto ?, es correcto.
Si esta operación se quedara como la hemos descrito, entonces el Banco A tendría un montón de gastos y el Banco B un montón de ingresos, que a su vez se compensarían por los CFDIs de Egreso que el Banco B tiene que emitir a favor del Banco A, y así sucesivamente hasta el infinito.
Solo para darnos una idea de la cantidad de CFDIs que vinculan las operaciones SPEI y los estados de cuenta bancarios, debes saber que existe una empresa que es el mayor PAC privado de México, esta empresa se llama CeCoBan, S.A.de C.V. CeCoBan son las iniciales de Centro de Compensación Bancaría, y es lo que conocemos como "cámara de compensación", es una empresa cuyos socios son la mayoría de los bancos que operan en México y que se encarga de la compensación de fondos entre ellos.
Pues bien además de ser la "cámara de compensación", CeCoBan es el PAC que mas CFDIs ha timbrado desde que existe el modelo de Comprobante Fiscal Digital por Internet, hasta Marzo del 2018, CeCoBan llevaba emitidos mas de 4,000,000,000 (sí, leiste bien, no me sobraron ceros: cuatro mil millones de CFDIs).
CeCoBan, S.A. de C.V. es la empresa que timbra todos los CFDIs emitidos por concepto de SPEI para la mayoría de los bancos que operan en el país, excepto aquellos que son PACs por sí mismos como BBVA Bancomer, Banorte y BanBajio, que se timbran sus propios documentos.
Si quieres tener mas información con respecto a que PAC timbra mas y cual timbra menos, puedes descargar este documento que es la estadística de facturas timbradas por proveedor de certificación publicada por el SAT semestralmente.
Pero continuemos con el tema de los SPEIs, de los cuatro mil millones de CFDIs ¿ Cuantos corresponderán a SPEIs unicamente ?, seguramente mas de tres mil millones, y de esos tres mil millones ¿ cuantos corresponderán a SPEIs por pagos a proveedores ?, seamos conservadores y pensemos que la mitad, eso nos deja en la cantidad de 1,500 millones de CFDIs que se realizan por concepto de pagos a proveedores, pero tranquilidad, los 1,500 millones se han hecho en 7 años, asi que si dividimos entre 7 los 1,500 millones nos quedan mas o menos 215 millones de CFDIs emitidos anualmente por concepto de SPEIs que representarían pagos a proveedores por concepto de facturas. Eso quiere decir que en cuanto el CFDI con complemento de pagos entre en vigor obligatoriamente, el dia 1 de Septiembre, anualmente tendremos que hacer mas de 215 millones de CFDIs adicionales, que divididos entre los 80 proveedores autorizados que existen nos da que a cada PAC le toca emitir 2,687,500 CFDIs adicionales por año..... no es una mala cifra ¿ no ?
Bien regresemos al SPEI y a la parte que nos interesa que es... ¿ Como juega el SPEI para el Recibo Electrónico de Pago ?.
Pues bien, para evitar que los CFDIs que se intercambian entre los bancos por motivo los SPEIs sean considerados comprobantes de Ingresos por un lado y comprobantes de Egresos por el otro, el SAT obliga a los participantes del SPEI a agregar un complemento especial dentro de los CFDIs que se intercambian y que se llama Complemento SPEI de Tercero a Tercero.
Este complemento SPEI de tercero a tercero, contiene información detallada sobre la naturaleza del CFDI que se emite, que evita que sea considerado un Ingreso y/o un Egreso fiscalmente hablando por parte de los bancos y contiene importante información que será necesaria para el llenado del REP, de hecho, con solo la información contenida en el complemento SPEI de Tercero a Tercero puedes llenar perfectamente un REP.
¿ Que datos contiene el SPEI de Tercero a Tercero ?
El complemento SPEI de tercero a tercero es una estructura en formato XML que contiene la siguiente información:
Revisemos que datos tenemos:
- Fecha de la operación, necesario para el REP
- Hora de la operación, necesario para el REP
- Clave SPEI, NO es necesario para el REP
- Sello es necesario para el REP
- Numero de certificado es necesario para descargar un archivo .CER del SAT para posteriormente incluirlo en el REP
- Cadena CDA, necesaria para el REP
Adicionalmente tenemos 2 nodos mas dentro del XML que también necesitaremos para el correcto llenado del REP:
El primero tenemos los datos del ordenante del SPEI:
Los datos que contiene son:
- Nombre del banco emisor, lo necesitaremos porque el REP lleva el RFC del banco del cual salen los fondos, aquí viene el nombre del banco, si quieres conocer su RFC, utiliza nuestra herramienta CiberCAT para obtener el RFC del banco.
- Nombre o razón social de quien ordena el envío, lo necesitaremos en el REP para el nombre del emisor, aunque este es un dato opcional
- Tipo de cuenta, NO es necesaria para el REP
- Cuenta es necesaria para el REP y la ventaja es que ya viene en formato CLABE
- RFC del ordenante, que necesitaremos para incluirlo en la información del emisor del REP.
Los datos que contiene son:
- Banco Receptor, es el nombre del banco y lo necesitaremos en el REP para agregar el RFC del banco receptor, si quieres consultar los RFCs de todos los bancos del sistema bancario mexicano nuevamente te sugerimos utilizar nuestra herramienta CiberCAT
- Nombre: de la persona fisica o moral receptora del SPEI, se necesita para el REP aunque su uso es opcional
- Tipo Cuenta: NO es necesario para el REP
- Cuenta: al igual que la anterior, es necesaria para el REP y ya viene en formato CLABE
- RFC del receptor del SPEI, necesario para el REP
- Concepto: Concepto del SPEI, NO es necesario para el REP
- IVA: Importe del IVA, es opcional y NO es necesario para el REP
- Monto del Pago: es MUY necesario para el REP.
La pregunta que puede surgir ahora es.... ¿ de donde saco los SPEIs de Tercero a Tercero para incluirlos en mi REP ?
En el sistema bancario, el SPEI de tercero a tercero es conocido con otro nombre que es: Comprobante Electrónico de Pago, o CEP por sus iniciales.
¿ De donde lo obtengo ?
Con en la entrada en vigor del CFDI 3.3 en Enero de 2018, muchos bancos han incluido en sus portales la capacidad de proporcionarte los CEPs desde el mismo portal bancario, en nuestra experiencia propia, Banamex y Banorte ya te ofrecen facilidades para que puedas descargar tu CEP desde sus portales:
En las imagenes anteriores he marcado con rojo los links para descargar los CEPs y con verde un dato muy importante llamado "Clave de Rastreo", volveremos a ella un poco mas adelante en este artículo.
Si tu haces click en alguno de los links que te ofrecen los portales de los bancos, estos te llevarán a una página del Banco de México (Banxico) desde donde se podrán descargar INDIVIDUALMENTE los CEPs.
¿ Qué papel juega Banxico en el tema SPEI y CEP ?
Banxico juega un papel muy importante, porque los complementos SPEI de tercero a tercero, también conocidos como CEPs, se almacenan en los registros de Banxico, digamos que el Banco de México es algo así como el SAT para los CFDIs pero de los CEPs.
Banxico almacenará durante 45 días hábiles bancarios tus CEPs y podrás descargalos de 3 maneras distintas:
- Por medio del link que te proporcione cada banco
- Individualmente por medio de la misma página que Banxico ha dispuesto para tal fin
- Masivamente desde otra página dentro del mismo Banxico.
¿ Que pasa si por alguna razón la liga que me da mi banco no funciona, o quiero descargar yo mismo mi CEP ?
Para eso tenemos la segunda manera de descargar un CEP ya que Banxico te proporciona una página para que tu puedas manualmente descargarlos uno por uno:
Esta página te pide los siguientes datos para poder obtener tu CEP:
- Fecha en que se realizó el SPEI
- CLAVE DE RASTREO, ¿ te acuerdas que en las imágenes de los portales bancarios marqué con verde la clave de rastreo ?, aquí es donde se utiliza.
- Los bancos participantes en el SPEI, el banco de origen y el banco de destino
- La cuenta en formato CLABE donde se ingresaron los fondos
- El monto del pago.
El dato mas importante aquí es la CLAVE DE RASTREO, este número, generado por el banco emisor, es el equivalente del UUID del CFDI pero aplicable a un CEP, para validar que el interesado es quien está obteniendo el CEP, el Banxico utiliza la CLABE de la cuenta receptora y el monto para asegurarse de alguna manera que quien está recuperando el CEP es realmente el interesado, aunque cualquiera que conozca estos datos podría descargar cualquier CEP.
En nuestro Canal de YouTube, he puesto un video tutorial que te guiará paso a paso en el proceso de descarga individual de los CEPs desde la página de Banxico:
Ya hemos visto 2 maneras de descargar los CEPs de Banxico, pero ¿ Que pasa si tu tienes un montón de SPEIs, de distintos bancos y de distintas cuentas ?, descargarlos individualmente es una tarea de romanos por lo que Banxico, pensando en la comodidad del usuario, tiene también una página que te permite hacer una descarga masiva de tus SPEIs de una manera muy simple mediante un archivo de texto que tienes que subir a la siguiente página:
Para descargar masivamente tus CEPs desde esta página, deberás hacer un archivo de texto que contenga los mismos datos básicos que usaste para la consulta individual, con algunas modificaciones, los datos deberán ir separados por ",".:
- Fecha de la operación en formato AAAA-MM-DD
- CLAVE DE RASTREO (sí, otra vez)
- Claves BANXICO de los bancos emisores y receptores..... ¿ donde están las claves Banxico ?, que por cierto NO SON las claves que vienen en los catálogos del SAT. Las Claves Banxico se puden consultar con nuestra herramienta CiberCAT.
- Cuenta CLABE del beneficiario
- Monto de la operación.
2018-06-15,BNET0100180615000281097,40021,40012,2180065145757870,1276.00
2018-06-14,BB2322013043,40052,40030,218006514575787,350.00
2018-06-28,HSBC078234,40021,40052,2180065145757870,1276.00
2018-06-01,357439551,40044,40052,2180065145757870,2465.00
2018-06-01,7875PAB201806010595041932,40072,40052,218006051005757870,16762.00
2018-06-01,208060140014HDH0000460909070,40014,40052,218006051005757870,63800.00
2018-06-01,201806140014BMOV0000460038060,40014,40052,218006051005757870,4930.00
2018-06-13,8502CAP421806130599180826,40072,40052,218006051005757870,1276.00
2018-06-04,8502CAP201806040595760992,40072,40052,218006051005757870,1276.00
2018-06-04,BB4511208237,40030,40052,218006051005757870,3944.00
2018-06-05,BB5838608401,40030,40052,218006051005757870,7888.00
2018-06-12,MBAN1001806120003760245,40012,40052,218006051005757870,250.00
2018-06-05,BNET1001806050001533473,40012,40052,218006051005757870,1276.00
2018-06-01,BB5675008412,40030,40052,218006051005757870,5950.00
2018-06-14,BB2322013043,40030,40052,218006051005757870,319.00
2018-06-15,BNE01001806150002810974,40012,40052,218006051005757870,1276.00
2018-06-27,357496937,40044,40052,218006051005757870,829.40
2018-06-22,8846CAP301806220602994381,40072,40052,218006051005757870,1276.00
2018-06-26,036INBU606201834756340,40036,40052,218006051005757870,36917.00
2018-06-13,MBAN011806130003896842,40012,40052,218006051005757870,69.00
2018-06-13,MBAN010006130003896541,40012,40052,218006051005757870,69.00
2018-06-12,MBAN010018020003760945,40012,40052,218006051005757870,250.00
Deberás subir un archivo de texto similar a este en estructura por medio de la página mencionada anterioremente, y la ventaja es que puedes obtener inmediatamente el resultado, no hay necesidad de esperar nada de tiempo, los resultados los obtienes inmediatamente.
Banxico te responderá con un archivo .ZIP que contendrá los XMLs y los PDFs solicitados, junto con un archivo de texto que contiene los resultados de la operación.
Hemos creado un video tutorial que encontrarás en nuestro Canal de YouTube que te explica detalladamente el proceso de descarga masiva de los CEPs:
Todo bien hasta aquí, ya tenemos todos los CEPs descargados y como ya analizamos, en cada CEP tenemos la información necesaria para el correcto llenado del REP, ¿ en donde encajan todas las piezas ?
Todas las piezas encajan en la función VirtualXML_Pagos10SetPago() que muestra la siguiente sintaxis
VirtualXML_Pagos10SetPago( int p, string FechaPago, string FormaDePagoP, string MonedaP, string TipoCambioP, string Monto, string NumOperacion, string RfcEmisorCtaOrd, string NomBancoOrdExt, string CtaOrdenante, string RfcEmisorCtaBen, string CtaBeneficiario,
string TipoCadPago,
string CertPago,
string CadPago,
string SelloPago,
)
He resaltado los 4 últimos parámetros porque es aquí donde va la información por la cual hemos descargado el CEP de Banxico.
Estos 4 datos son:
- Tipo de Cadena de pago, este dato se obtiene de los catálogos publicados por el SAT para el CFDI con complemento de pago y solo contiene un valor que es "01", este dato tendremos que incluirlo cuando el pago sea realizado por medio de un SPEI, y el hecho de utilizar este parámeto hace OBLIGATORIOS LOS SIGUIENTES 3.
- Certificado de Pago, en la descripción del complemento de pago, indica que este valor tiene que llevar el archivo .CER con el que se firmó el CEP expresado como un texto en Base64, dentro del XML del CEP encontraremos unicamente EL NUMERO DE CERTIFICADO, con este numero, tendremos que ir a la página del SAT para descargas de certificados (https://portalsat.plataforma.sat.gob.mx/RecuperacionDeCertificados/) y recuperar el archivo .CER con el cual se firmó el CEP, mas adelante explicaré como obtener el texto en Base64 a partir del archivo.CER
- Cadena de Pago: es un atributo que viene dentro del CEP y esta identificado en el XML como CadenaCDA.
- Sello Pago: es un atributo que viene dentro del CEP y esta identificado simplemente como Sello dentro del XML del CEP.
Para finalizar este artículo, hablemos ahora de como obtener una cadena de texto en Base64 a partir de un archivo .CER, para hacer esto VirtualXML tiene integrada la función:
Su uso es muy sencillo:
cCertificado := VirtualXML_CerTo64("disco:\directorio\archivo.cer")
Para ello es necesario que previamente hayas descargado desde la pagina del SAT el certificado cuyo número aparece en el REP y lo tengas en el disco duro de tu computadora.
Esta función devuelve una cadena de caracteres similar a esta, que es el valor del archivo .CER experesado como un texto en Base64:
"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"
También la puedes usar "anidada" dentro de la llamada a la funcion VirtualXML_Pagos10SetPago(), a continuación aprovecho para mostrarte como quedaría a la llamada a la función con todos los parámetros obtenidos del CEP del SPEI:
VirtualXML_Pagos10SetPago(hXml, //handle del documento
"2017-05-31T12:00:00",; //fecha y hora de recepción del pago
"02",; // Clave del método de pago
"MXN",; // Clave de la moneda del pago
"",; // Tipo de cambio de la moneda si es distinta de MXN
"1160.00",; // Monto del pago
"652",; // Numero de operación
"BSM970519DU8",; // RFC del banco del cual salen los fondos o RFC generico extranjero en caso de ser Banco extranjero
"",; // Nombre del banco en caso de ser banco extranjero
"002180065145757870",; //Clabe interbancaria de la cuenta de donde salen los fondos
"CFA950629CAA",; // RFC del banco en el cual se depositan los fondos
"002180065145895321",; // Clabe Interbancaria de la cuenta donde se depositan los fondos
"01",; // Tipo de cadena de pago cuando se trate de SPEI
VirtualXML_CerTo64("c:\carpeta\archivo.cer");// Certificado del CEP cuando se trate de SPEI
"||1|01062018|01062018|131112|40002|BANORTE/IXE|CONSULTORES SA DE CV|40|072180000104200612|VCO980224GM7|BANAMEX|CIBERNETICA Y TECNOLOGIA SA DE CV|40|002180065145757870|CTE940531F58|7415 Consultores|0.00|16762.00|00001000000401205824||",; //Cadena del CEP cuando se trate de SPEI
"KoyfUALQnMJpCHqnY+VA+EmvhzwU8Is4bG5IZdpueeQRBeidJjejQ5VJ0DA21q7b4w4J9QPzYSwnSFO6A6qZxEs68gwPCm4Mm7ztfqCWwbYICLTapLvh2h9WifyadPNsOIJmkmLJtNojTQ90BS67jZf4RanW+ETF+c1tIfFMZ9dakptVZN/wUe3EfujeTuxilsuCPlr+mYiuPZLa/++DIhJCYevIY8s+4UquQhFgVYu/OUg8UYS9TGL/hrf4JPyZUjr4Y6SQ2gprsfpjVUbAYhTC6Jgt7OqQRs3WZTLUThPfSCxo7cqH71O7kOI5Nw638GVwbdS2hrld7WFr0v//4w==",; // Sello del CEP cuando se trate de SPEI
)
Como verás el manejo de los SPEIs para el complemento de pago es un tema laborioso, se requiere programación extra para integrar los CEPs a nuestros programas y de ahí aplicarlos como REPs a las facturas pendientes de pago.
Supongo que hasta este punto, debes tener un montón de dudas en las cabeza, es por eso que la cuarta entrega la demoraremos ya que queremos incluir todas las dudas que vayas teniendo en un solo artículo.
Puedes plantearnos tus dudas en los comentarios de estos artículos y nosotros las iremos colectando para integrarlas dentro del artículo final de esta serie.
También te recordamos que estaremos ofreciendo un curso especial del Complemento de Pagos todos los jueves y viernes de Julio y Agosto a fin de que puedas aclarar tus dudas directamente con nosotros, puedes pedir informes sobre horarios y precio a los teléfonos (55) 5560 0168 y (55) 5373 6404 o bien en el correo electrónico info@ciber-tec.com.
Te invitamos a suscribirte a nuestro Canal de YouTube porque pronto tendremos mas videotutoriales sobre el uso de nuestras herramientas y mucho contenido mas.