Cómo configurar y generar archivos de transferencias bancarias (TXT)
Esta guÃa te enseñará, paso a paso, cómo configurar y generar los archivos de texto plano (.txt) necesarios para realizar el pago masivo de remuneraciones a través de tu portal bancario. La plataforma te permite crear una plantilla personalizada, conocida como Layout Bancario, que se ajusta a la estructura y formato exacto que requiere cada banco.
Flujo de Trabajo General
El proceso completo se divide en tres etapas clave:
- Crear y Configurar el Layout Bancario: Primero, definirás la estructura del archivo .txt mediante una configuración técnica en formato JSON.
- Asignar el Layout a la CompañÃa: Luego, asociarás esta plantilla a la empresa correspondiente para que el sistema sepa qué formato usar.
- Generar y Descargar el Archivo de Pago: Finalmente, desde un periodo de nómina ya procesado, generarás y descargarás el archivo .txt final.
Paso 1: Crear y Configurar el Layout Bancario
Este es el paso más técnico, donde se define la estructura del archivo.
Creación del Layout
- En el menú superior, dirÃgete a Configuración General y selecciona Reportes Bancarios.
- Haz clic en el botón + Añadir layout.
- Asigna un Nombre claro y descriptivo a tu layout (ej: "Layout Banco Estado").
- En el campo de texto principal, deberás ingresar el código de configuración en formato JSON que define la estructura del archivo.
Paso 2: Asignar el Layout a la CompañÃa
Una vez que el layout está guardado, debes indicarle al sistema a qué empresa pertenece.
- Ve a Configuración General > Empresas.
- Busca la compañÃa correspondiente y haz clic en Modificar.
- En la sección de Datos Bancarios, despliega el menú Layout y selecciona el que acabas de crear.
- Guarda los cambios.
Paso 3: Generar y Descargar el Archivo TXT
Con toda la configuración lista y el periodo de nómina procesado, puedes generar el archivo final.
- Navega a Gestión > Periodos y selecciona el mes que deseas pagar.
- Ingresa a la pestaña Resumen y Reportes.
- En la sección Reportes Bancarios Predefinidos, haz clic en Generar.
- En la ventana emergente, configura la Fecha de pago, la Empresa y la Cuenta bancaria. Luego, presiona Generar transferencia bancaria.
- El sistema procesará la solicitud y el botón cambiará a Descargar. Haz clic sobre él.
- En la siguiente vista, presiona Ver detalle y, finalmente, haz clic en Descargar para obtener tu archivo .txt.
Referencia Técnica Avanzada (JSON)
Aquà encontrarás todos los detalles para construir tu layout.
Estructura General del JSON
El código JSON se organiza en un arreglo de "estructuras". Cada estructura representa un tipo de fila (header, body o footer).
{
"status": "active",
"type": "LayoutTxt",
"layout_contents_attributes": [
{
"structure": {
"row_type": "header",
"max_chars": 400,
"content": [ /* ... parámetros del header ... */ ]
}
},
{
"structure": {
"row_type": "body",
"max_chars": 400,
"content": [ /* ... parámetros del body ... */ ]
}
},
{
"structure": {
"row_type": "footer",
"max_chars": 400,
"content": [ /* ... parámetros del footer ... */ ]
}
}
]
}
Parámetros Clave por Campo
Parámetro | Descripción | Ejemplo |
|---|---|---|
align | Alineación del dato: a la izquierda ("ljust") o a la derecha ("rjust"). | "rjust" |
order | Orden correlativo del campo dentro de la fila (empieza en 1). | 1 |
value | El dato a incluir. Puede ser un texto fijo o una variable del sistema. | "employee_name" |
filler | Carácter para rellenar espacios si el dato es más corto que chars_length. | "0" |
field_type | Tipo de campo: fijo ("custom_text") o variable ("specific_field"). | "specific_field" |
chars_length | Cantidad exacta de caracteres que debe ocupar el campo. | 15 |
Lista Completa de Variables (value)
Estas son las variables que puedes usar con "field_type": "specific_field".
Variables Compartidas (Header, Body, Footer):
Variable | Descripción |
|---|---|
payment_date | Fecha de pago. |
file_creation_date | Fecha de creación del archivo. |
company_identifier | Identificador de la compañÃa (RUT en Chile). |
consecutive_number | Número consecutivo del registro. |
Variables para Header, Body y Footer:
Variable | Descripción |
|---|---|
company_name | Nombre de la compañÃa. |
company_identifier | Identificador de la Compañia. |
company_bank_account_number | Número de cuenta bancaria de la compañÃa. |
company_bank_code | Código del banco de la compañÃa. |
total_records_count | Cantidad total de registros (colaboradores) en el archivo. |
total_records_amount | Monto total a pagar de todos los colaboradores. |
total_records_received | Monto total a pagar (usado especÃficamente en procesos de finiquito). |
total_beneficiary_amount | (Para pagos a terceros) Monto total del transfer destinado a beneficiarios. |
Variables para Body (por Colaborador):
Variable | Descripción |
|---|---|
employee_name | Primer nombre del colaborador. |
employee_middle_name | Segundo nombre del colaborador. |
employee_lastname | Primer apellido del colaborador. |
employee_mothers_name | Segundo apellido del colaborador. |
employee_formatted_full_name | Nombre completo formateado. |
employee_identifier | Identificador del colaborador en la plataforma. |
employee_rut | RUT del colaborador (Exclusivo para Chile). |
employee_curp | CURP del colaborador (Exclusivo para México). |
employee_bank_account | Número de cuenta bancaria del colaborador. |
employee_bank_interbank | Cuenta CLABE del colaborador (Exclusivo para México). |
employee_bank_code | Código del banco del colaborador. |
employee_amount | Monto total a pagar para ese colaborador. |
employee_contract_id | ID del contrato del colaborador. |
period_started_at | Fecha inicio Periodo |
period_statement_started_at | Fecha Inicio Declaración del Periodo |
period_statement_ended_at | Fecha Fin de Declaración del Periodo |
period_month | Mes del Periodo |
period_periodicity | Periodicidad del Periodo, ejemplo: (Semanal, Mensual, Quincenal, etc..) |
employee_birthdate | Cumpleaños empleado |
Variables para Transferencias a Terceros (Beneficiarios):
Estas variables se utilizan en la fila body para pagos que no van dirigidos al colaborador, como en el caso de retenciones judiciales.
Variable | Descripción |
|---|---|
beneficiary_name | Nombre del beneficiario. |
beneficiary_last_name | Apellido del beneficiario. |
beneficiary_identifier | Identificador del beneficiario. |
beneficiary_email | Correo del beneficiario. |
beneficiary_person_type | Tipo de persona del beneficiario (Natural o JurÃdica). |
beneficiary_phone | Teléfono del beneficiario. |
beneficiary_kinship | Parentesco del beneficiario. |
beneficiary_birthdate | Fecha de nacimiento del beneficiario. |
beneficiary_notes | Referencia o notas del beneficiario. |
beneficiary_account_number | Número de cuenta del beneficiario. |
beneficiary_bank_code | Código del banco del beneficiario. |
beneficiary_account_type | Tipo de cuenta del beneficiario. |
beneficiary_payment_type | Tipo de pago del beneficiario. |
beneficiary_payment_currency | Moneda de la retención. |
beneficiary_amount | Monto a pagar de la retención. |
pension_type | Tipo de retención (ej: alimenticia). |
resolution_number | Número de resolución judicial. |
Formatos y Funciones Adicionales
- Formato de Fechas: Puedes especificar el formato de una fecha agregando el parámetro "format".
- "format": "%d%m%Y" resulta en 25122024.
- "format": "%Y-%m-%d" resulta en 2024-12-25.
- Codificación del Archivo: Para bancos que requieren una codificación especÃfica, puedes usar el parámetro "encoding".
- "encoding": "Unix" (por defecto).
- "encoding": "Win".
- Extraer Parte de un Dato: Para obtener solo una porción de una variable, usa "chars_range": [inicio, fin]. Por ejemplo, para obtener los caracteres del 4 al 6 de employee_identifier.
Funcionalidades Avanzadas
- Personalización del Nombre del Archivo: Puedes definir un nombre dinámico para el archivo de salida agregando el parámetro file_name al inicio de la configuración JSON. Puedes combinar texto fijo y variables.
- Ejemplo: "file_name": "CONCAT(CURRENT_DATE('%Y%m%d'), '_', 'pagos')" generarÃa un nombre como 20241225_pagos.
- Ejemplo: "file_name": "CONCAT(CURRENT_DATE('%Y%m%d'), '_', 'pagos')" generarÃa un nombre como 20241225_pagos.
- Condiciones y Filtros por Banco (Perú y México): Esta opción permite incluir o excluir colaboradores según su banco, ideal para separar pagos interbancarios. Se añade un bloque "conditions" en la estructura de la fila body.
- Ejemplo para excluir un banco:
"conditions": { "query": { "employee_bank_information_bank_id_not_eq": 136 } }
- Ejemplo para excluir un banco:
Ejemplo de un Layout Completo
{
"status": "active",
"type": "LayoutTxt",
"file_name": "CONCAT(CURRENT_DATE('%Y%m%d'), '_', 'pagos')",
"layout_contents_attributes": [
{
"structure": {
"row_type": "header",
"max_chars": 100,
"content": [
{
"align": "ljust", "order": 1, "value": "H",
"filler": " ", "field_type": "custom_text", "chars_length": 1
},
{
"align": "ljust", "order": 2, "value": "company_name",
"filler": " ", "field_type": "specific_field", "chars_length": 50
},
{
"align": "rjust", "order": 3, "value": "total_records_amount",
"filler": "0", "field_type": "specific_field", "chars_length": 15
}
]
}
},
{
"structure": {
"row_type": "body",
"max_chars": 100,
"content": [
{
"align": "ljust", "order": 1, "value": "D",
"filler": " ", "field_type": "custom_text", "chars_length": 1
},
{
"align": "ljust", "order": 2, "value": "employee_rut",
"filler": " ", "field_type": "specific_field", "chars_length": 12
},
{
"align": "ljust", "order": 3, "value": "employee_formatted_full_name",
"filler": " ", "field_type": "specific_field", "chars_length": 50
},
{
"align": "rjust", "order": 4, "value": "employee_amount",
"filler": "0", "field_type": "specific_field", "chars_length": 15
}
]
}
}
]
}
Preguntas Frecuentes (FAQ)
P: ¿Cuáles son las variables (value) más comunes que necesitaré para un layout de pago de sueldos?
R: Aunque cada banco tiene sus propios requisitos, los campos más comunes que necesitarás son los relacionados con la identificación del colaborador y el monto a pagar. Algunas variables clave son: employee_name (nombre), employee_rut (identificador), employee_bank_account (número de cuenta) y employee_amount (monto total a pagar).
P: Al generar el archivo TXT, ¿se realiza el pago a los colaboradores automáticamente?
R: No. La plataforma solo genera el archivo .txt con la información de pago en el formato correcto. Es tu responsabilidad descargar este archivo y subirlo a la plataforma en lÃnea de tu banco para procesar y autorizar las transferencias de dinero.
P: ¿Cómo puedo obtener solo el digito verificador de un Rut?
R: Puedes utilizar esta fórmula "formula": "substr(employee_identifier, -1, -1)".