Cómo configurar y generar archivos de transferencias bancarias (TXT)
💸

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:

  1. Crear y Configurar el Layout Bancario: Primero, definirás la estructura del archivo .txt mediante una configuración técnica en formato JSON.
  2. Asignar el Layout a la Compañía: Luego, asociarás esta plantilla a la empresa correspondiente para que el sistema sepa qué formato usar.
  3. 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

  1. En el menú superior, dirígete a Configuración General y selecciona Reportes Bancarios.
  2. Haz clic en el botón + Añadir layout.
  3. Asigna un Nombre claro y descriptivo a tu layout (ej: "Layout Banco Estado").
  4. 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.

  1. Ve a Configuración General > Empresas.
  2. Busca la compañía correspondiente y haz clic en Modificar.
  3. En la sección de Datos Bancarios, despliega el menú Layout y selecciona el que acabas de crear.
  4. 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.

  1. Navega a Gestión > Periodos y selecciona el mes que deseas pagar.
  2. Ingresa a la pestaña Resumen y Reportes.
  3. En la sección Reportes Bancarios Predefinidos, haz clic en Generar.
  4. En la ventana emergente, configura la Fecha de pago, la Empresa y la Cuenta bancaria. Luego, presiona Generar transferencia bancaria.
  5. El sistema procesará la solicitud y el botón cambiará a Descargar. Haz clic sobre él.
  6. 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.

  • 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 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)".