1. Guías
Payflow API
Colombia
  • Spain
  • Colombia
  • Peru
  • Guías
    • Guía de integración vía API
    • Guía de integración vía SFTP
  • Guías y definiciones
    • Empleados
      • Estados del empleado
      • Conceptos salariales
    • Pagos
      • Ciclo de vida de un pago
  • Explora nuestra API publica
    • Autenticación y Estado del Sistema
      • Verificación de Estado
      • Prueba de API Key
    • Empresa
      • Obtener Detalles de la Compañía
    • Empleados
      • Obtener un Empleado
      • Obtener todos los Empleados
      • Obtener todos los Empleados (V1.1)
      • Crear un Empleado
      • Crear Empleados en Lote
      • Actualizar un Empleado por Personal ID
      • Actualizar un Empleado por Payflow ID
      • Actualizar un Empleado por Payroll ID
    • Licencias
      • Empleados con Licencia
      • Licencia de Empleado
      • Remover Licencia a Empleado
    • Pagos
      • Obtener un Pago
      • Obtener todos los Pagos
      • Obtener Pagos del Empleado
      • Obtener monto disponible
      • Solicitar pago
      • Suscribirse a las Actualizaciones de Pago
      • Marcar un Pago como Informado
  • Estructura de Notificación
    • Actualizaciones de pago
  • Lista de bancos soportados
    • Entidades bancarias admitidas
  • Schemas
    • Empresa
      • Respuesta de la Empresa
    • Empleado
      • CO | Solicitud para crear Empleado
      • CO | Solicitud de actualización de empleado
      • CO | Respuesta del empleado
      • Licencia de Empleado
    • Pagos
      • Respuesta del pago
      • Respuesta de pago Convoluted
      • Actualización de pago
    • Error
      • Generic Error Response
  1. Guías

Guía de integración vía API

En esta guía se explica el proceso para construir la Integración Estándar con la Public API de Payflow en Colombia.

1. Contexto inicial: ¿Qué es Payflow?#

Payflow es una plataforma de bienestar financiero que tiene como principal servicio el salario bajo demanda.
Esto significa que las compañías que contratan la plataforma pueden permitir a sus empleados cobrar parte del salario que ya llevan devengado cuando ellos quieran o lo necesiten.
El objetivo de Payflow no es adelantar todo el salario, sino ofrecer liquidez responsable, esto quiere decir que Payflow solo adelantará la parte que el colaborador ya haya trabajado, bajo los límites establecidos por la empresa contratante.
No es una solución que adelante todo el salario del mes, ni es una solución de préstamos. Payflow permite que el empleado pueda obtener liquidez sobre lo trabajado, pero evitando que se quede sin ingresos a final de mes.

Ejemplo práctico:#

Un colaborador con un salario básico neto de $3,000,000:
Devenga diariamente $100,000 (3,000,000 / 30)
En el día 10 del mes ha completado 9 días de trabajo (el 10 no ha terminado) y por lo tanto ha devengado $900,000 (100,000 * 9)
RRHH define que puede retirar el 60%
Entonces tendrá un disponible de: $540,000
De esta forma:
El trabajador cubre necesidades puntuales
No se queda sin salario a fin de mes
No se genera una nómina negativa
Se mantiene un uso responsable del beneficio
El objetivo es que el empleado tenga un porcentaje de su salario disponible, no el 100% del mismo.
En este orden de ideas, para que una compañía que contrató la plataforma de Payflow pueda prestar correctamente el servicio de salario bajo demanda a sus empleados, es necesario que:
1.
Mantenga actualizada de manera diaria la información básica necesaria a nivel empleados: altas, bajas y modificaciones
2.
Consuma la información de pagos (también de manera diaria) para que la compañía pueda reportarla en su sistema de nómina y realizar los pagos.

2. Payflow: El Producto#

Payflow ofrece 3 componentes principales:

Aplicación móvil para empleados:#

Disponible en App Store y Google Play Store:
App Store: https://apps.apple.com/es/app/payflow/id1503530690
Google Play: https://play.google.com/store/apps/details?id=es.payflow.app&hl=en
Permite al usuario:
Registrarse
Ver su salario disponible
Hacer transacciones (retiros de dinero)
Consultar historial
Otros: funcionalidades extra de la aplicación
Funciona como el trigger de las solicitudes de retiro de salario devengado.

Panel web para administradores#

URL: https://admin.payflow.es/auth/login
Versión web utilizada a por los administradores de Payflow en el día a día (generalmente RRHH) para gestionar aspectos relevantes como:
Revisar las Altas/Ediciones/Bajas de empleados ejecutadas por la integración
Configurar límites de uso
Ver transacciones
Monitorear uso
Página principal - Estadísticas de proyecto
image.webp
Acá puedes ver:
1.
Número de empleados registrados: total y por producto
2.
Total de dinero transaccionado
3.
Cantidad media de transacción
4.
Número total de transacciones
5.
Evolución mensual del total de transacciones
6.
Evolución mensual del total transaccionado

API Pública de Payflow#

Permite automatizar las gestiones del panel a través de una API pública.
La API permite automatizar el envío de información y recogida de información a través de los siguientes endpoints /employees y /payments:
1.
Crear/Editar/Desactivar empleados en el Panel de control
2.
Recoger las transacciones de los empleados al software de nómina

3. Objetivo de la integración#

En empresas de un número considerable de colaboradores, suele suceder que esta gestión busca realizarse de manera desatendida, es decir, mediante una integración entre sistemas.
Con la integración:
Payflow se convierte en un espejo del software de nómina, siendo el software la fuente de verdad.
Esto reduce:
Errores humanos
Retrasos
Incidencias en producción
Carga operativa

4. Arquitectura#

Para un mejor entendimiento de cómo realizar esta integración, la hemos dividido fundamentalmente en 2 partes:
1. Flujo de sincronización de empleados (POST /employees).
Este endpoint de nuestra API funciona como un método POST + PUT a pesar de que solo hagas POST:
1.
Crea empleados
2.
Actualiza empleados (datos y estado)
2. Flujo de sincronización de pagos (GET /payments).
Este endpoint de nuestra API disponibiliza las transacciones hechas en Payflow por los empleados de tu empresa.
La arquitectura de la solución es la siguiente:
payflowAPI.webp

5. Flujo de sincronización de empleados#

Alta / Baja / Modificación de empleados
Para que un colaborador pueda usar la plataforma de Payflow, tiene que ser en primer lugar dado de alta: es decir, debe de ser creado como un potencial usuario por su empresa en su panel de control de Payflow.
El objetivo de este flujo es garantizar que solo los empleados correctos puedan usar Payflow y que sus datos estén actualizados.
Es importante recordar que Payflow es una plataforma provista por el empleador y el colaborador no puede modificar ningún dato allí. En caso de querer cambiar algo tiene que ir a su empleador y que este haga la modificación en el HR software, luego esta integración sincronizará los cambios en Payflow. Esto evita fraudes y garantiza la correcta prestación del servicio.

5.1 Información a sincronizar desde su HR software hacia su Panel de control de Payflow#

5.1.1 Campos de los empleados a sincronizar#

Detalle de la información que se debe sincronizar de cada empleado (estos son los campos que van en el JSON a sincronizar):
Nombre del campo en la API PayflowFamilia del campoDescripciónTipo de campo/limitacionesMandatorio?
payrollIdDatos identificativosID del empleado en tu software de nóminaString (máx. 100 caracteres)NO
personalIdDatos identificativosNúmero de documento de identificación válidoString (máx. 100 caracteres)SI
documentTypeDatos identificativosTipo de documento de identificaciónString (máx. 100 caracteres)SI
firstNameDatos identificativosNombre completo del empleadoString (máx. 100 caracteres)SI
lastNameDatos identificativosApellidos completos del empleadoString (máx. 100 caracteres)SI
emailDatos de contactoDirección de email válida del empleadoString (no puede ser genérico, debe ser único) Emails inválidos serán anuladosSI [requerido si no hay número de teléfono]
phoneDatos de contactoNúmero de teléfono válido del empleadoString (no puede ser genérico, debe ser único) Números de teléfono inválidos serán anulados - Se puede enviar sin el indicativo de paísSI [requerido si no hay email]
addressDatos de contactoDirección del empleadoString (máx. 100 caracteres)SI
bankAccountNumberDatos de salario y bancariosNúmero de cuenta bancaria del empleado.String (máx. 100 caracteres)SI
bankAccountTypeDatos de salario y bancariosTipo de cuenta bancaria del empleado.String (máx. 100 caracteres) Valores posibles: savings (ahorros), checking (corriente)SI
bankEntityDatos de salario y bancariosNombre del bancoString (máx. 100 caracteres) ver entidades bancarias soportadas abajoSI
netSalaryDatos de salario y bancariosSalario neto del empleado (después de impuestos)Number (Debe ser entero positivo) Si se proporciona grossSalary, no envíes netSalarySI [requerido si no hay grossSalary]
grossSalaryDatos de salario y bancariosSalario del empleado antes de impuestosNumber (Debe ser entero positivo) Si se proporciona netSalary, no envíes grossSalarySI [requerido si no hay netSalary]
startDateDatos de contratoFecha de inicio de contrato del empleadoString Debe ir en formato YYYY-MM-DDNO
contractEndDatos de contratoFecha de fin de contrato en formatoString Debe ir en formato YYYY-MM-DDNO
statusDatos de contratoEstado del empleado.String Valores posibles: active, inactive, on_leaveSI
subsidiaryDatos de contratoNIT de filial a la que perteneceStringSI
availableAmountDatos de salario y bancariosMonto disponible para retiroNumber (Debe ser entero positivo)NO [Es para uso en proyectos Payflow especiales, se recomienda usar grossSalary o netSalary]

5.1.2 Entidades bancarias soportadas (campo bankEntity)#

Detalle de entidades bancarias soportadas
En la fila de la izquierda está como se debe enviar el banco en el campo bankEntity, en la fila de la derecha están las variaciones aceptadas en caso de no enviarla como en la fila izquierda.
Entidad Bancaria NormalizadaVariaciones Aceptadas
AGRARIOAGRARIO DE COLOMBIA
ALIANZA FIDUCIARIAALIANZA
ALLIANCE ENTERPRISEALLIANCE
ALLIANZ SEGUROS DE VIDAALLIANZ SEGUROS
ALMACENES EXITOALMACENES
ALPINA PRODUCTOS ALIMENTICIOSALPINA
ANTIOQUIACOOPERATIVA FINANCIERA DE ANTIOQUIA
BANCAMIABANCAMIA CR 9 66 25
BANCOLDEX-
BANCOLOMBIABANCOLOMBIA CALLE 50 NO. 5176
BANCOOMEVA-
BBVABBVA COLOMBIA, BILBAO VIZCAYA ARGENTARIA, BILBAO VIZCAYA ARGENTARIA COLOMBIA
BNP PARIBASBNP
BOGOTABOGOTA CL 50 51 37
CAJA SOCIALBCSC, COLMENA, CAJA SOCIAL BCSC, BCSC CAJA SOCIAL COLMENA
CAMARA DE COMPENSACION DE DIVISASCAMARA DE COMPENSACION
CARTONES AMERICACARTONES
CARVAJAL-
CITIBANK COLOMBIACITIBANK
COLPATRIASCOTIABANK COLPATRIA, COLPATRIA RED MULTIBANCA COLPATRIA, SCOTIABANK, COLPATRIA SCOTIABANK, RED MULTIBANCA COLPATRIA, SCOTIABANK COLOMBIA CR 7 N° 11433 PISO 16, BANCO COLPATRIA MULTIBANCA COLPATRIA S.A.
COLSUBSIDIO-
COLTEFINANCIERA-
COMERCIO EXTERIOR DE COLOMBIACOMERCIO EXTERIOR
COMPARTIR-
CONFIAR-
COOPCENTRALCOOPERATIVO COOPCENTRAL
COTRAFACOOTRAFA COOPERATIVA FINANCIERA, COOFINEP COOPERATIVA FINANCIERA
CREDICORP CAPITAL COLOMBIACREDICORP
DALE-
DAVIVIENDA-
DAVIPLATA-
FALABELLACMR FALABELLA
FIDUCIARIA BANCOLOMBIA-
FIDUCIARIA DAVIVIENDA-
FIDUCIARIA DE OCCIDENTEOCCIDENTE CALLE 51 NO. 4725
FINANDINA-
GNB SUDAMERISGNB, SUDAMERIS, GNB COLOMBIA
HSBC-
IRIS-
ITAUITAU CORPBANCA COLOMBIA, CORPBANCA COLOMBIA, CORPBANCA
JPMORGANJ.P. MORGAN COLOMBIA
JURISCOOPFINANCIERA JURISCOOP COMPANIA DE FINANCIAMIENTO
LULOLULO BANK
MULTIBANK-
MUNDO MUJER-
NEQUI-
NU BANKNU
OCCIDENTE-
PICHINCHAPICHINCHA CRA 11 92 09
POPULAR-
PROCREDIT-
SANTANDERSANTANDER DE NEGOCIOS COLOMBIA
SERFINANZA-
VILLAS-
W-

5.1.3 Estados del empleado y reglas de negocio (campo status)#

Detalle de los posibles estados
Esta es la explicación de los posibles valores a enviar en el campo status:
active → Puede usar Payflow, es un empleado activo en la empresa
inactive → No puede usar Payflow, ya no trabaja en la empresa
on_leave → No puede usar Payflow temporalmente, baja temporal definida por las reglas de negocio
Detalle de las reglas de negocio para definir estado "on_leave"
Las reglas de negocio que se pueden aplicar en el código para que el empleado sea enviado a Payflow con status = "on_leave" y así cumplir con los estándares de integración estándar contra la API de Payflow son:
1.
Antigüedad: Empleados que lleven menos de X meses en la empresa
2.
Vacaciones: Empleados que estén disfrutando vacaciones en el día de la sincronización.
3.
Maternidad/Paternidad: Empleados que estén con licencia de maternidad/paternidad en el día de la sincronización
4.
Incapacidad: Empleados que estén con incapacidad en el día de la sincronización
5.
Practicante/becario: Empleados que sean practicantes o becarios

5.2 Proceso técnico de sincronización, método y endpoint a usar#

Estándar operativo:
Envía las actualizaciones de todos los empleados de forma masiva usando el método POST (en batches de máximo 500 idealmente) y el endpoint /employees.
Nuestra API es capaz de tomar una petición por segundo desde una misma IP, no más que esto porque nuestro firewall te puede bloquear.
Frecuencia sugerida: 1 - 2 veces al día (si tienes >1000 empleados) o cada 4 - 8 horas (si tienes <1000 empleados). Esto es totalmente parametrizable.
Evita errores comunes:
Envía todos los datos obligatorios.
No uses salario = 0 para inactivar, usar siempre el campo status.
No dejes de enviar empleados para inactivar, usar siempre el campo status.
Envía nombres y apellidos completos
Tips técnicos:
Maneja errores 503 con retries y backoff.
Asegura que tu sistema aguante el volumen: CPU, memoria, timeouts.
Documenta las reglas clave para tu equipo: salarios y estados.
Entonces, para poder sincronizar los empleados hacia la API de Payflow y actualizarlos, se debe automatizar el siguiente flujo para que se ejecute desatendidamente cada cierto intervalo de tiempo (por ejemplo cada 4 horas):
0. Cumplir con los prerrequisitos:
Acceso al Panel de control de Payflow - el equipo te dará el acceso.
La URL base y los endpoints:
Ambiente de pruebas:
URL base: https://api-public.payflow-dev.net
endpoint a usar: https://api-public.payflow-dev.net/employees
Producción:
URL base: https://api-public.payflow.es
endpoint a usar: https://api-public.payflow.es/employees
La API key.
Esta la puedes generar en el panel de control siguiendo estos pasos:
1.
Entra al apartado "integraciones" —> "integraciones"
image (1).webp
2.
Selecciona API Payflow
image (2).webp
3.
Dale al botón "Generar API Key"
image (3).webp
4.
Guarda en un lugar seguro la API Key para poder usarla en la integración
image (4).webp
Puedes volver acá para generar una nueva cuando quieras
En postman se vería así:
image (5).webp
1. Extraer los datos necesarios de los empleados del HR software.
2. Ajustar estos datos en el formato JSON aceptado por la API de Payflow (máximo batches de 500 empleados por envío).
Ejemplo del JSON a enviar (batch de 5 empleados)
[
    {
        "firstName": "Test User", 
        "lastName": "Prueba Uno", 
        "payrollId": "PRUEBAPAYROLLID10000", 
        "personalId": "10238794004", 
        "documentType": "C_CIUDADANIA", 
        "email": "test_user_colombia1989@payflow.com", 
        "phone": "3209355001", 
        "bankAccountNumber": "3209355001", 
        "bankEntity": "Nequi",
        "bankAccountType": "savings",
        "address": "Edificio Lievano, Calle 11",
        "grossSalary": 20000000,
        "startDate": "2022-01-01",
        "contractEnd": "2050-01-01",
        "subsidiary": "900717898-1",
        "status": "active"
    },
    {
        "firstName": "Prueba",
        "lastName": "Prueba Dos",
        "payrollId": "PRUEBAPAYROLLID10001",
        "personalId": "10230090000",
        "documentType": "C_CIUDADANIA",
        "email": "test_user_colombia4252@payflow.com",
        "phone": "3128987763",
        "bankAccountNumber": "204230294838",
        "bankEntity": "BBVA",
        "bankAccountType": "savings",
        "address": "Edificio Lievano, Calle 11",
        "grossSalary": 20000000,
        "startDate": "2018-01-01",
        "contractEnd": "2050-01-01",
        "subsidiary": "900717898-1",
        "status": "active"
    },
    {
        "firstName": "Test User",
        "lastName": "Prueba Tres",
        "payrollId": "PRUEBAPAYROLLID10002",
        "personalId": "10230094576",
        "documentType": "C_CIUDADANIA",
        "email": "test_user_colombia19630@payflow.com",
        "phone": "3209355003",
        "bankAccountNumber": "22969294838",
        "bankEntity": "Lulo Bank",
        "bankAccountType": "savings",
        "address": "Edificio Lievano, Calle 11",
        "grossSalary": 55000000,
        "startDate": "2000-01-01",
        "contractEnd": "2050-01-01",
        "subsidiary": "900717898-1",
        "status": "active"
    },
    {
        "firstName": "Test User",
        "lastName": "Prueba Cuatro",
        "payrollId": "PRUEBAPAYROLLID10003",
        "personalId": "10238700577",
        "documentType": "C_CIUDADANIA",
        "email": "test_user_colombia19550@payflow.com",
        "phone": "3209355004",
        "bankAccountNumber": "29983849909",
        "bankEntity": "Bancolombia",
        "bankAccountType": "savings",
        "address": "Edificio Lievano, Calle 11",
        "grossSalary": 60000000,
        "startDate": "1999-01-01",
        "contractEnd": "2050-01-01",
        "subsidiary": "900717898-1",
        "status": "active"
    },
    {
        "firstName": "Test User",
        "lastName": "Prueba Cinco",
        "payrollId": "PRUEBAPAYROLLID10004",
        "personalId": "10238004578",
        "documentType": "C_CIUDADANIA",
        "email": "test_user_colombia3119@payflow.co",
        "phone": "3209355005",
        "bankAccountNumber": "27469294838",
        "bankEntity": "Colpatria",
        "bankAccountType": "savings",
        "address": "Edificio Lievano, Calle 11",
        "grossSalary": 100000000,
        "startDate": "2022-01-02",
        "contractEnd": "2050-01-01",
        "subsidiary": "900717898-1",
        "status": "active"
} 
]
En postman se vería así
image (6).webp
3. Utilizar el método POST apuntando al endpoint /employees de la API de Payflow con estos batches de máximo 500 empleados.

6. Flujo de sincronización de pagos#

Sincronización de transacciones para ser descontadas de la nómina de los empleados
Para la preparación de la nómina de los colaboradores, es necesario que los pagos realizados en la plataforma de Payflow sean registrados en el software de nómina correctamente para su deducción de la nómina del periodo.
El objetivo de este flujo es garantizar que las transacciones realizadas en Payflow sean descontadas de la nómina de los empleados.
Hay que tener en cuenta que aunque la nómina se pague a final de mes o de la quincena, puede suceder que se paguen liquidaciones/finiquitos durante los períodos a colaboradores que se retiran. En estos casos se necesitará considerar y descontar las transacciones hechas en la plataforma de Payflow.

6.1 Información a sincronizar desde su Panel de control de Payflow hacia su HR software#

6.1.1 Campos de las transacciones a sincronizar#

Detalle de la información que te dará la API de Payflow al consultar las transacciones de los empleados (estos son los campos que van en el JSON):
Nombre del campo en la API PayflowDescripción
idID único de cada transacción
userNúmero de documento de identificación del empleado que hizo la transacción
userPayrollIdID del empleado en tu software de nómina
amountMonto de la transacción
feeCosto de transacción (siempre es 0)
statusEstado de la transacción
paidBoolean que confirma si fue pagado o no
requestedAtFecha y hora de la solicitud por parte del empleado
paidAtFecha y hora de la recepción de la transacción
messageN/A
informedToIntegrationBoolean que confirma si la transacción fue informada al software de nómina o no

6.1.2 Estados de las transacciones en Payflow (campo status)#

La API solo te mostrará los estados processed y processing pero te dejamos el detalle para que conozcas los demás
Detalle de los estados
En la primera fila están los posibles valores de la variable status, en la segunda fila derecha está su definición y en la tercera si es, o no un estado final.
estadodefiniciónes estado final?
pendingPendiente: El pago ha sido solicitado por el colaborador pero aún no ha sido enviado al banco para ejecución.NO
processingEn proceso: El pago ha sido enviado al banco, aún no ha sido confirmado.NO
processedProcesado: El banco ha confirmado que la transacción se ha procesado correctamente.SI
canceledCancelado: La transacción ha sido cancelada y no se pagó.SI
delayedDemorado: La transacción ha sido enviada al banco pero se encuentra demorada.NO
errorEl banco ha informado que hay un error en esta transacción y no se puede procesar, la transacción no se pagó.SI

6.1.3 Parámetros opcionales (van en los headers de la consulta)#

La API te mostrará todas las transacciones, con status = processed o processing una a una, que se han hecho en tu empresa al menos que uses parámetros en los headers para filtrarlas.
Los parámetros que puedes utilizar son los siguientes, todos son opcionales:
paid
Booleano para mostrar solo las transacciones que se han/o no se han pagado
paid = true - te trae las transacciones pagadas hasta el momento
paid = false - te trae las transacciones no pagadas hasta el momento
En postman se vería así:
image (7).webp
convoluted
Booleano que muestra la suma de las transacciones junto con el transaction id para cada empleado de la empresa.
convoluted = true - te trae la suma de transacciones con sus id's por empleado
convoluted = false - te trae las transacciones una a una
En postman se vería así:
image (8).webp
Y el JSON de la respuesta de la API Payflow se vería así:
{
    "data": [
        {
            "ids": [
                "luqmR001",
                "aaa4Fc2e28"
            ],
            "user": "1023765879",
            "userPayrollId": "abc39485",
            "amount": 130000,
            "fee": 0,
            "informedToIntegration": false,
            "paid": true,
            "firstTransactionRequestedAt": "2025-01-24T00:00:00.000Z",
            "lastTransactionRequestedAt": "2025-01-28T14:28:29.000Z",
            "TransactionPaidAt": "2025-01-24T00:00:00.000Z",
            "lastTransactionPaidAt": "2025-01-28T14:28:29.000Z"
        },
        {
            "ids": [
                "aaa4Fc2e23",
                "aaa4Fc2e29"
            ],
            "user": "1098764900",
            "userPayrollId": "abc39489",
            "amount": 10000,
            "fee": 0,
            "informedToIntegration": false,
            "paid": true,
            "firstTransactionRequestedAt": "2025-01-24T00:00:00.000Z",
            "lastTransactionRequestedAt": "2025-02-03T13:41:55.000Z",
            "TransactionPaidAt": "2025-01-24T00:00:00.000Z",
            "lastTransactionPaidAt": "2025-02-03T13:41:55.000Z"
        }
    ]
}
start
Fecha desde la cual comienza la búsqueda en formato AAAA-MM-DD
Si la combinas con end puedes obtener las transacciones entre días específicos.
En postman se vería así:
image (9).webp
end
Fecha hasta la cual finaliza la búsqueda en formato AAAA-MM-DD
Si la combinas con start puedes obtener las transacciones entre días específicos.
En postman se vería así:
image (10).webp
cycle
Fecha del ciclo de pago formato YYYY-MM
En postman se vería así:
image (11).webp

6.2 Información a sincronizar desde su HR software hacia su Panel de control de Payflow (opcional pero recomendado)#

6.2.1 Llamada acknowledge payments#

Informa a Payflow que se ha registrado un pago dentro del sistema de nómina para ser descontado de la nómina de un empleado específico.
Debes usar el método PUT y el endpoint /payments/acknowledge
Este endpoint sirve para cambiar el valor de la variable informedToIntegration de false (valor por defecto) a true.
Entonces, cuando vuelves a hacer el consumo de las transacciones de tus empleados, podrás distinguir las que ya informaste en tu HR software (informedToIntegration=true) de las que aún no (informedToIntegration=false)

6.3 Proceso técnico de sincronización, método y endpoint(s) a usar#

Estándar operativo:
Realiza las consultas de las transacciones de los empleados usando el método GET y el endpoint /payments
Utiliza el id de cada transacción para identificarla en tu sistema para que no se dupliquen transacciones.
Todos los pagos En Proceso y Procesados deben ser recogidos e incorporados como novedad en la nómina; ya que los pagos En Proceso ya están en manos del banco receptor y pasarán a ser procesados en el corto plazo.
Si decides implementar el acknowledge payments, debes usar el método PUT y el endpoint /payments/acknowledge
Frecuencia sugerida: 1 - 2 veces al día (si tienes >1000 empleados) o cada 4 - 8 horas (si tienes <1000 empleados). Esto es totalmente parametrizable.
Evita errores comunes:
Antes de construir este flujo, asegúrate de que existe un concepto en la nómina de tu empresa a donde deban llegar las transacciones de Payflow para ser descontadas.
Tips técnicos:
Asegura que tu sistema aguante el volumen: CPU, memoria, timeouts.
Entonces, para poder sincronizar las transacciones desde la API de Payflow hacia tu HR software, se debe automatizar el siguiente flujo para que se ejecute desatendidamente cada cierto intervalo de tiempo (por ejemplo cada 4 horas):
0. Cumplir con los prerrequisitos:
Concepto de nómina creado en el HR Software para hacer los descuentos de transacciones Payflow, usualmente lo llaman "Anticipo Payflow"
Acceso al Panel de control de Payflow - el equipo te dará el acceso.
La URL base y los endpoints:
Ambiente de pruebas:
URL base: https://api-public.payflow-dev.net
endpoint a usar: https://api-public.payflow-dev.net/payments
Producción:
URL base: https://api-public.payflow.es
endpoint a usar: https://api-public.payflow.es/payments
La API key es la misma que generaste para el flujo de empleados
Definir si usarás algún parámetro para filtrar las transacciones desde la API de Payflow
1. Utilizar el método GET para extraer los datos de las transacciones desde Payflow.
Ejemplo del JSON que se obtiene del endpoint
{
    "data": [
        {
            "id": "aaa4Fc2e271",
            "user": "1022142724",
            "userPayrollId": "37112",
            "amount": 10000,
            "fee": 0,
            "status": "processed",
            "paid": true,
            "requestedAt": "2025-11-07T17:03:00.000Z",
            "paidAt": "2025-11-07T17:03:00.000Z",
            "message": null,
            "informedToIntegration": false
        },
        {
            "id": "Xcdmr6ooo9",
            "user": "1022142724",
            "userPayrollId": "37112",
            "amount": 5000,
            "fee": 0,
            "status": "processed",
            "paid": true,
            "requestedAt": "2025-11-21T09:17:00.000Z",
            "paidAt": "2025-11-21T09:17:00.000Z",
            "message": null,
            "informedToIntegration": false
        }
    ]
}
En postman se vería así
image (12).webp
2. Tomar los datos necesarios de la respuesta de la API de Payflow para incorporarlos al HR Software en el concepto de nómina destinado para las transacciones Payflow.
Los datos necesarios van a variar dependiendo del HR Software y sus requerimientos para crear una novedad de nómina, pero usualmente se toman por lo menos:
id para identificar la transacción y evitar duplicados
user y/o userPayrollId para identificar al empleado al que se le hará el descuento
amount para poner en el concepto el monto a descontar
3. (Opcional pero recomendado) Utilizar el método PUT apuntando al endpoint /payments/acknowledge de la API de Payflow para marcar las transacciones informadas al HR Software.
Este endpoint permite cambiar el valor de la variable informedToIntegration de false (valor por defecto) a true.
Ambiente de pruebas:
URL base: https://api-public.payflow-dev.net
endpoint a usar: https://api-public.payflow-dev.net/payments/acknowledge
Producción:
URL base: https://api-public.payflow.es
endpoint a usar: https://api-public.payflow.es/payments/acknowledge
Ejemplo del JSON que se debe enviar en el body del request
{
    "paymentsToMarkAsInformed": [
        "aaa4Fc2e1",
        "aaa4Fc2e2",
        "aaa4Fc2e3"
    ]
}
Ejemplo del JSON que se obtiene del endpoint
{
    "paymentsMarked": [
        "aaa4Fc2e1",
        "aaa4Fc2e2",
        "aaa4Fc2e3"
    ]
}
Una vez marcadas todas las transacciones informadas, en el siguiente consumo del endpoint /payments verás la variable informedToIntegration=true en las transacciones que enviaste en este paso.

7. Paso a paso de la integración#

Acá te acompañaremos en cada paso y estaremos dispuestos a agendar sesiones de trabajo contigo y tu equipo para resolver cualquier duda! Los pasos para implementar esta integración son:
Empezamos en el ambiente de pruebas
1.
Recibir accesos del ambiente de pruebas y generar API Key
2.
Probar con Postman los endpoints mencionados en los pasos anteriores
Puedes dar de alta a algunos empleados dummies, cambiar sus estados y/o algunos datos y verificar en el front del panel de control que se han actualizado exitosamente.
Pide que te carguemos algunas transacciones dummy para que puedas verlas en el endpoint de transacciones
3.
Implementar Flujo Empleados
4.
Implementar Flujo de transacciones
5.
Validar resultado de las sincronizaciones de ambos flujos
Acá el detalle de estas validaciones
Recomendamos siempre involucrar al equipo de integraciones de Payflow al momento de estas pruebas, puedes hacerlo escribiendo a integrations@payflow.es o a tu gerente técnico de cuenta asignado al proyecto.
En el siguiente link puedes ver una batería de pruebas recomendadas para los casos que hay que validar tanto de sincronización de empleados como de transacciones.
Lo más importante es validar que se están dando de alta y de baja los empleados correctamente, para garantizar que puedan usar la app los nuevos ingresos y para garantizar que no pueden usarla más cuando se retiran de la compañía.
Luego, también es muy importante validar que se pueden registrar los pagos correctamente, especialmente en casos límite como muchos pagos solicitados en el mismo día o muchos pagos solicitados en el mismo período.
Algunos sistemas de nómina tienen la limitación de una única novedad en un concepto durante un período o en un mismo día durante un período, en esos casos puede que sea necesario sumar los acumulados antes de incorporar los pagos.
Por último algunos chequeos que ayudan son:
Ver cantidad total de empleados tanto en el HR Software como en el panel de control de Payflow (la manera más fácil es descargarlos en excel desde "ver empleados" en el panel de control de Payflow y hacer estos chequeos en excel).
Ver esa cantidad separada por sociedades en caso de que trabajemos con más de 1 entidad legal, ver que estas coinciden.
Ordenar la columna 'Salario neto' de Menor a Mayor. Revisar tanto los salarios más bajos, como los altos, para corroborar que la info se envió correctamente y no hay datos raros como 0s, negativos, números extremadamente altos, etc.
Revisar 5 personas en particular y de manera aleatoria para controlar que la información es correcta: Nombre, salario, datos bancarios completos, estado y número identificatorio fiscal de la entidad legal a la que están vinculados.
6.
Ya con ambos flujos validados, agendar sesión de pruebas con stakeholders del proyecto (Nómina de tu empresa, finanzas, etc) para hacer una demo en vivo
7.
Con el set de pruebas completo y la aprobación de los stakeholders, procedemos al paso a producción.
En el ambiente de producción
1.
Harás tu paso a producción.
2.
Recibirás los accesos de producción de Payflow
3.
Encenderás ambos flujos de la integración y harás la primera sincronización de empleados al panel de control de Payflow
4.
Agendaremos una demo con los mismos stakeholders para que:
Revisen la sincronización de empleados.
Se descarguen la app, hagan una transacción y sincronices correctamente.

8. Monitoreo inicial#

Siempre es una buena práctica generar algún tipo de monitoreo de lo que está sucediendo en la integración.
Por ejemplo, un mail diario con resumen de la sincronización de empleados/pagos con mensajes de success/error. Incluir descripción en los mensajes de error ya que muchas veces se debe a cuestiones sencillas como campos con información incorrecta.
En este reporte se puede incluir a soporte_empresas@payflowapp.co y nos ayudarán con monitoreo proactivo.
Esta alerta también nos permitirá entender si ha dejado de correr por algún motivo y en qué fecha.

9. Troubleshooting#

Si estás teniendo problemas, esta sección te puede ayudar, es una recopilación de problemas que hemos visto/resuelto en el pasado:
1.
Un caso de error muy típico que hemos visto tanto durante pruebas con Postman como durante pasos a producción es que no se están utilizando las credenciales o URLs correctas de desarrollo/producción.
URL API desarrollo: https://api-public.payflow-dev.net/
Dashboard desarrollo: https://dashboard.payflow-dev.net/auth/login
URL API Producción: https://api-public.payflow.es/
Dashboard Producción: https://admin.payflow.es/auth/login
2.
El Firewall está impidiendo la comunicación con la API de Payflow, recuerda que aquí igualmente tendrás que incluir las URLs de desarrollo y Producción para que ambas sean alcanzables.
3.
No es raro que cuando se esté haciendo pruebas contra nuestro entorno de desarrollo (payflow-dev.net) algunas peticiones fallen. Inténtalo varias veces porque es un entorno de desarrollo y no tiene las mismas capacidades que el de producción. Si tras intentarlo varias veces sigue fallando, contáctanos.
Modified at 2026-09-25 16:31:58
Next
Guía de integración vía SFTP
Built with