La rutina de Registro de Mensajes en el Documento Fiscal, o simplemente Mensajería, es una solución auxiliar que tiene como objetivo brindar una herramienta flexible para el registro de mensajes que se utilizarán en las obligaciones accesorias a través de la Configuración de Tributos. Como veremos a continuación, con esta rutina será posible crear mensajes utilizando datos de los tributos, de los ítems y datos generales de la factura, además de permitir el agrupamiento de los mensajes para facilitar la gestión de los mismos.
Se trata de una rutina auxiliar, ya que los mensajes generados a través de esta serán utilizadas por otros mecanismos del Sistema para la transmisión de facturas y para la cumplimentación de otras obligaciones accesorias, como el EFD.
Antes del ejemplo de uso, veamos cómo acceder a la rutina.
Módulo Libros Fiscales (SIGAFIS), en el menú lateral izquierdo, haga clic en Actualizaciones, luego en Facilitadores y después en Configurador de Tributos. En el menú del Configurador de Tributos a la izquierda, acceda a la carpeta Mensajes:

En la carpeta Mensajes hay 3 rutinas que se presentarán conforme demostraremos el paso a paso de cómo utilizar la Mensajería del Configurador de Tributos.
Para la demostración, utilizaré una regla tributaria previamente registrada.


Al ser solo para demostración, los perfiles utilizados tendrán en cuenta todas las posibilidades según su descripción en la imagen de arriba.
Ahora que tenemos el tributo, realizaremos el registro de un mensaje:

La rutina de Registro de Mensajes, según la imagen anterior, fue desarrollada inicialmente para cumplir con las Reglas de Ajuste de Registro. |
Tras acceder a la rutina de Registro de Mensaje y hacer clic en Incluir, tendremos la siguiente pantalla:

Para más información, acceda a la página CFGTRIB - Ajustes de Registro en el Configurador de Tributos con ejemplos de uso del registro de mensajes. |
Anteriormente se registró el siguiente mensaje: "Valor total de la factura R$ [NF:TOTAL]". Este mensaje pasará por el proceso de decodificación, haciendo que el valor total de la Fact se muestre en lugar de NF:TOTAL.
Ahora que tenemos el mensaje, vamos a registrar un identificador.
Volviendo al menú de Mensajes, tenemos la rutina de Identificadores (las pantallas exclusivas de la Mensajería se detallarán después de esta sección de Ejemplo de Uso):

Haciendo clic en incluir:

Arriba tenemos un ejemplo de cómo registrar un identificador. Básicamente, los identificadores servirán como indicativo de dónde y cómo deben grabarse los mensajes.
Para el debido funcionamiento de la rutina de registro de identificadores, es necesario que el ambiente esté actualizado con el patch de desarrollo más reciente, ya que los campos Oblig.Acess (Oblig. Accesoria) y Finalidad tendrán sus contenidos disponibles por el entorno fiscal basado en las actualizaciones de los productos TSS y Fiscal Archivos. Si el ambiente no está actualizado, no se podrá realizar el registro de identificadores. |
Ahora que tenemos un identificador, seguiremos en el menú de Mensajes hasta la rutina de Grupo de Mensajes:

Al hacer clic en incluir:

Arriba tenemos el registro de un grupo de mensajes. Se utilizaron tanto el mensaje que registramos como el identificador, y también se hace énfasis en el campo Tipo, que define el tipo de vinculación que debe realizarse para que el mensaje sea decodificado y grabado. Estos campos se detallarán más adelante cuando hablemos de cada pantalla y del funcionamiento de la rutina, pero básicamente estamos definiendo todos los mensajes que forman parte de este grupo y, para cada mensaje, sus posibles destinos. Esto permite una mejor organización en el uso de los mensajes. Al agrupar los mensajes, es posible designar qué disparará su decodificación a través del campo Tipo, además de poder identificar cada una de ellas según los identificadores creados.
Ahora, para finalizar, vincularemos el Grupo de Mensajes en la regla de cálculo que registramos al inicio, ya que definimos en el campo Tipo del Grupo de Mensajes la opción Regla de Cálculo:

Más abajo, en la sección Mensajes, estará el campo Cód. Grupo para que realicemos la vinculación.

Con todos los registros listos, ahora realizaremos la facturación de un pedido que calcule el ICMS por la regla de cálculo del Configurador de Tributos que tiene el Grupo de Mensajes vinculado:

Arriba tenemos el ejemplo de un pedido de venta con el ICMS calculado por el Configurador de Tributos. Además, podemos ver que el valor total de la Fact es de R$ 1.100,00. Este será el valor impreso en el mensaje después de facturar este pedido.

Arriba tenemos la factura emitida.
Con esto, podemos verificar si hubo decodificación del mensaje volviendo al Configurador de Tributos y accediendo a Mensajes > Mensajes Decodificados:

Haciendo clic en Visualizar, podremos ver cómo se decodificó el mensaje:

Se muestran los datos relevantes al mensaje, como el identificador utilizado y los datos de la factura, así como del ítem al que está vinculado el mensaje.
En principio, esta es la única manera de verificar si un mensaje fue decodificado después de registrar una factura. Sin embargo, según la evolución futura de la herramienta, podrá haber otros métodos de verificación. |
Configurador de Tributos > Reglas Fiscales > Regla de Ajuste de Registro > Registro de Mensajes

La rutina de Registro de Mensajes no es nueva en el Configurador de Tributos. Surgió junto con la necesidad de parametrizar, a través del Configurador de Tributos, los ajustes de asiento y sus debidos mensajes, mostrando valores calculados en la factura. Con el desarrollo de la mensajería, el registro de mensajes también pasará a suministrar estos mensajes para las facturas y diversas obligaciones accesorias.

Campos
Campo | Título | Descripción |
CJ8_CODREF | Código Regla | Código que identifica el mensaje. |
CJ8_DESC | Descripción | Descripción del mensaje |
CJ8_TPREGR | Tipo de la regla | Tipo de la regla para selección de referencia de tributos |
CJ8_TRIFIL | Regla para consultar | Filtro de tributos |
CJ8_REGRA | Tributo para consulta | Referencias de valores que se utilizarán en el mensaje para poder convertir. |
CJ8_CONSUL | Valor que se agregará en la fórmula | Consulta a los códigos de reglas del Configurador de Tributos y tributos legado (calculados vía TES, etc.). |
CJ8_TABCONF | Tributo genérico | Código del Tributo Genérico que se utilizará en la conversión del mensaje. |
CJ8_MENSG | Mensaje | Mensaje que se imprimirá en las obligaciones accesorias. |
La pantalla funciona de la siguiente manera: El usuario es libre para escribir lo que desea en el campo de mensajes. Además, se puede complementar el mensaje con referencias (placeholders) de los datos de la factura y de los tributos, los cuales serán sustituidos por los datos reales en el momento en que la factura sea registrada en el Sistema.
Actualmente, el campo Tipo de Regla tiene las siguientes opciones:

Según la elección de la opción del campo, los demás campos se habilitarán para su uso.

En la selección anterior, se habilitó el campo Regla para Consultar con las posibilidades referentes a los tributos. También se habilitó el campo Tributo para consulta, como podemos ver a continuación:

Esta es la dinámica de la pantalla.
En este ejemplo, crearemos el siguiente mensaje: "Valor del ICMS del ítem [IT:ITEM] = R$ [ICM:VALOR]"

Este mensaje, al ser vinculado con un ajuste de asiento o con algún grupo de mensajes de la mensajería, será decodificado para cada ítem de la factura, mostrando el valor del ICMS calculado para cada uno.
Con el desarrollo de la rutina de Mensajería del Configurador de Tributos, en el futuro, el Registro de Mensajes podrá encontrarse dentro de la carpeta de Mensajería. |
Configurador de Tributos > Reglas Fiscales > Mensajes > Identificadores de Mensajes

La rutina de Identificadores de Mensajes tiene como objetivo, como su nombre lo indica, identificar el uso del mensaje. Como mencionamos al inicio de este documento, la Mensajería es una rutina auxiliar. De este modo, los identificadores sirven para indicar hacia dónde debe llevarse cada mensaje, ya sea a las (TAGS) de las facturas electrónicas o a los registros EFD ICMS/IPI.

Campos
Campo | Título | Descripción |
CK6_CODIGO | Código del identificador | Código que identifica el registro del identificador |
CK6_DESC | Descripción del identificador | Descripción |
CK6_OBRACE | Oblig.Acces | Define la obligación accesoria al que está vinculado el identificador |
CK6_FINALI | Finalidad | Define la finalidad de uso del mensaje al que está vinculado el identificador |
Básicamente, los campos Oblig.Acces y Finalidad definen hacia donde se llevará el mensaje vinculado. Por ejemplo, si yo quisiera que un mensaje se lleve en los registros C190, D190, D790 de la EFD ICMS/IPI debo usar las siguientes opciones:

Para más información sobre cómo registrar correctamente los identificadores para los propósitos adecuados, consulte la última sección de este documento, que incluye los enlaces a las documentaciones oficiales sobre cómo deben registrarse los mensajes para facturas y para archivos SPED. |
Configurador de Tributos > Reglas Fiscales > Mensajes > Grupos de Mensajes

La rutina de Grupo de Mensajes consolida el registro de la Mensajería, uniendo los mensajes con sus respectivos identificadores. Es en esta rutina donde también se vincula el disparador (trigger) que hará que el mensaje sea decodificado. Veremos enseguida.

Campo | Título | Descripción |
CK7_CODIGO | Código del grupo | Código identificador del grupo de mensajes |
CK7_DESC | Descripción del grupo | Descripción del grupo de mensajes |
CK9_SEQUEN | Secuencia | Secuencia numérica de los mensajes utilizados en el Grupo de Mensajes |
CK9_CODFIN | Código de la finalidad | Código que identifica los tipos de facturas a los que se debe disparar aquel mensaje: |
CK9_DESFIN | Descripción de la finalidad | Describe la finalidad según las opciones anteriores |
CK9_CODMSG | Código del mensaje | Código del mensaje que se decodificará al registrar la factura |
CK9_DESMSG | Descripción del mensaje | Descripción del mensaje seleccionado |
CK8_IDIDEN | Código del identificador | Identificador que se grabará junto con el mensaje e identifica la obligación accesoria en que esta se utilizará. |
CK8_OBRACE | Oblig. Acces | Identifica la obligación accesoria del identificador |
CK8_FINALI | Finalidad | Identifica la finalidad del identificador |
CK8_DESIDE | Descripción del identificador | Descripción del registro de identificador |
CK8_TIPO | Tipo | Define el vínculo que se debe realizar para que el mensaje se genere: |
Vamos a verificar cómo la rutina determina el uso de los mensajes.
En esta sección se debe indicar el mensaje que debe usarse y el contexto en que debe aplicarse. El contexto no es más que el tipo de factura según el campo Código de la Finalidad. De este modo, se define el contexto en que debe generarse el mensaje.

En el ejemplo anterior, definimos que el mensaje MSG002 debe considerarse en casos de facturas normales.
En esta sección vinculamos los identificadores al mensaje, así como indicamos los tipos de vinculo que deben realizarse para que se genere el mensaje.

En la imagen anterior, definimos que el Identificador para este mensaje será el ID0001 y que el grupo de mensajes debe vincularse al Perfil de Operación para que se genere el mensaje.
Un mensaje de la Sección Mensajes puede tener múltiples destinos, siempre que los identificadores y el tipo de vinculación sean diferentes. Por ejemplo:

En el ejemplo anterior, el mensaje MSG002 pasa a tener dos destinos. En realidad, el grupo de mensajes al que pertenece el mensaje MSG002 puede vincularse tanto a un Perfil de Operación como a una Regla de Registro. Este no sería un uso muy común, pero, puede realizarse. Lo ideal sería utilizar otro identificador, es decir, informar que aquel mensaje debe ser usado en diferentes obligaciones accesorias.
Es importante destacar que un grupo de mensajes puede tener varios mensajes, así como cada mensaje puede tener varios destinos. De esta manera, es necesario analizar cómo utilizar de manera inteligente el registro de Grupo de Mensajes para que un mismo grupo pueda cumplir de forma consistente con las obligaciones accesorias.
Para vincular un grupo de mensajes, se han creado campos específicos en el Perfil de Operación, en la Regla de Registro Electrónico y en la Regla de Cálculo.
En la Regla de Cálculo:

Campo | Título | Descripción |
F2B_MSGCOD | Cód. Grupo | Relaciona la regla tributaria con un grupo de mensajes |
El vínculo en la regla de cálculo ocurre de manera simple, es solo vincular el código del grupo.
En el registro electrónico

Campo | Título | Descripción |
CJ2_MSGCOD | Cód. Grupo | Relaciona la regla de Registro Electrónico con un grupo de mensajes |
En el perfil de operación

En cambio, en el Perfil de Operación, la forma de vincular un grupo de mensajes es un poco diferente. Como en el perfil de operaciones contamos con CFOPs, Tipos de Operación y Códigos de Servicio, se puede vincular un grupo de mensajes basándose en estas tres solapas del perfil de operación.
Veamos:

En el ejemplo anterior, se vincularon dos grupos de mensajes que, para generar sus mensajes, deben encuadrarse en el CFOP, Tipo de Operación y Código de Servicio informados. Para cada grupo vinculado, existe un CFOP y un Tipo de Operación. En este caso, no incluí un código de servicio porque no era necesario.
Campos
Campo | Título | Descripción |
CKC_CFOP | CFOP | Código Fiscal de Operaciones y de Prestaciones existente en la solapa CFOP |
CKC_TPOPER | Tp.Operación | Tipo de la operación existente en la solapa Tipo de Operación |
CKC_CODISS | Cód.Serv.ISS | Código de servicio existente en la solapa Código de Servicio |
CKC_MSGCOD | Cód. Grupo | Código del grupo de mensajes que se considerarán para esta combinación de datos |
CKC_MSGDES | Descripción | Descripción del grupo de mensajes |
Según la descripción de los campos anteriores, no se puede elegir un CFOP, Tipo de Operación o Código de Servicio que no figure en las solapas del registro del Perfil de Operación. Si se elije algún dato inexistente en dichas solapas, el Sistema mostrará el siguiente error:

También se puede completar cada uno de los campos con la palabra TODOS:

Esto significa que se considerarán todos los datos de las demás solapas.
Al utilizar la palabra TODOS, se considerarán todos los registros existentes en las otras solapas. Por ejemplo: Si en la solapa de CFOPs figuran el CFOP 1101 y el CFOP 1102, esto significa que se considerarán ambos CFOPs (1101 y 1102). |
Tabla | Descripción | Observación |
CK6 | Identificadores de mensajes | |
CK7 | Encabezado Grupo de mensajes | |
CK8 | Identif. del Grupo de Mensajes | |
CK9 | Mens. de ident. del Gr. Mensaj. | |
CKA | Mensajes decodificados | Actúa como información adicional del mensaje que fue decodificado. |
CKC | Mensajes Perfil de operación | |
CJ2 | Regla registro | Se creó el campo CJ2_MSGCOD para vincular el grupo de mensajes |
F2B | Regla tributaria | Se creó el campo F2B_MSGCOD para vincular el grupo de mensajes |
CJ8 | Registro de mensaje | Tabla ya existe en el sistema utilizado para registrar el mensaje que se decodificará |
CJL | Control Msg Decodificadas | Graba los mensajes que se decodificaron |