REDA One Centro de ayuda
ES
Idioma
English EN Español ES Português PT Italiano próximamente Français FR Deutsch próximamente العربية próximamente
reda.one ↗
Inicio / REDA Pay / Procesamiento programado / Programar el trabajo diario de pagos recurrentes

Programar el trabajo diario de pagos recurrentes

Los pagos recurrentes son plantillas; un trabajo en segundo plano los convierte en pagos reales en sus fechas de vencimiento. REDA Pay incluye el trabajo pero no lo programa: lo hace un administrador una vez, en Configuración. Hasta entonces, todas las programaciones que creen tu equipo o tus clientes aparecen activas y nunca se ejecutan.

Antes de empezar: tienes el permiso de Salesforce Author Apex (un administrador del sistema lo tiene) y REDA Pay - Admin User.

Programar el trabajo

  1. Abre Configuración, escribe Clases de Apex en el cuadro Búsqueda rápida y haz clic en Clases de Apex.
  2. Haz clic en Programar Apex en la parte superior de la lista.
  3. Completa:
CampoIngresa
Nombre del trabajoUn nombre que reconozcas en la lista de trabajos programados, por ejemplo REDA Pay - Recurring Payments
Clase de ApexHaz clic en la búsqueda y elige SchedulePayOrderJob (aparece con el espacio de nombres de REDA Pay, rpay)
FrecuenciaSemanal, con todos los días de la semana marcados
InicioHoy
FinUna fecha lejana, por ejemplo dentro de diez años
Hora de inicio preferidaUna hora tranquila antes de tu jornada, por ejemplo las 06:00. Los pagos que vencen ese día se crean y se envían a esa hora
  1. Haz clic en Guardar.
La página Programar Apex de Configuración con Nombre del trabajo "REDA Pay - Recurring Payments", Clase de Apex SchedulePayOrderJob, Frecuencia semanal con los siete días marcados, las fechas de inicio y fin y una hora de inicio preferida
La página Programar Apex de Configuración con Nombre del trabajo "REDA Pay - Recurring Payments", Clase de Apex SchedulePayOrderJob, Frecuencia semanal con los siete días marcados, las fechas de inicio y fin y una hora de inicio preferida

Un trabajo, todos los días. La hora que elijas es cuando se cobran los pagos recurrentes del día.

Qué hace el trabajo cada día

  1. Busca todas las Pay Orders de tipo Schedule cuyo Schedule Active esté activado y cuya Schedule Next Run Date sea hoy.
  2. Clona cada una en una nueva Pay Order Immediate vinculada mediante Parent Pay Order y luego procesa esas órdenes de una en una, sin registrar nada nuevo, porque el cliente y el método se registraron al crear la programación.
  3. Completa la Schedule Last Run Date de cada programación, lo que hace avanzar Schedule Next Run Date y suma uno a System Run Instances.
  4. Escribe un REDA Pay Log si algo falló, y el propietario de la orden recibe "Scheduled Payment [P-000000] failed." por cada ejecución fallida.

Una ejecución que falla no se reintenta; la programación simplemente continúa en su fecha siguiente. Consulta Configurar un pago recurrente.

Comprobar que se está ejecutando

DóndeQué buscar
Configuración → Trabajos programadosEl nombre de tu trabajo con una fecha en Siguiente ejecución programada
Configuración → Trabajos de ApexDespués de cada ejecución, entradas de las clases por lotes de REDA Pay con el Estado completado
App REDA Pay → REDA Pay Logs → Attention NeededRegistros del trabajo cuando fallaron ejecuciones, con los fallos en un archivo adjunto
Vista de lista Order Type - Schedule de Pay OrdersSchedule Last Run Date = hoy para las programaciones que vencían

Ejemplo práctico: la ejecución de una mañana

Tres programaciones vencen el 1 de noviembre: el alquiler de dos residentes con cuenta bancaria y una cuota de atención a propietarios con tarjeta.

ProgramaciónQué hace el trabajo a las 06:00Resultado
P-051850, $1,250.00 mensual, Checking x-7890La clona en P-052001 (Parent Pay Order P-051850) y la procesaT-0014601 processed; P-052001 Schedule - Processed; Last Run Date de P-051850 el 1 de noviembre, Next Run Date el 1 de diciembre, Run Instances 1
P-051860, $980.00 mensual, Checking x-1122La clona en P-052002 y la procesaPayload la rechaza por fondos insuficientes. T-0014602 failed; P-052002 Schedule - Not Processed; el propietario de P-051860 ve "Scheduled Payment [P-051860] failed."; P-051860 igual pasa al 1 de diciembre
P-051870, $45.00 mensual, Visa x-4242 (vencida)La clona en P-052003 y la procesaRechazada; igual que arriba

Un REDA Pay Log de la ejecución registra dos fallos, con las dos órdenes y sus errores en el archivo adjunto, y los administradores reciben el correo "ATTENTION NEEDED". Cobranzas hace el seguimiento de las dos ejecuciones fallidas; las programaciones en sí no necesitan cambios salvo que se reemplace la tarjeta.

Elegir la hora

La hora que elijas está en la zona horaria del usuario que programa el trabajo. Una hora temprana antes de la jornada hace que los fallos ya estén esperando en la vista Attention Needed cuando llega el personal, y que los pagadores vean una hora de cobro constante. Evita la hora en punto en que se ejecutan tus otros trabajos pesados; el trabajo de REDA Pay llama a Payload una vez por programación y es rápido, pero compite por los mismos espacios de procesamiento por lotes.

Ejecutarlo más de una vez al día, o para una fecha pasada

El trabajo se ejecuta una vez al día por diseño: las programaciones se basan en fechas, y una segunda ejecución el mismo día no encuentra nada nuevo. Si el trabajo no se ejecutó un día (por ejemplo, porque todavía no estaba programado o la organización no estaba disponible), un administrador puede ejecutarlo para esa fecha desde la Developer Console (consola para desarrolladores), con Debug → Open Execute Anonymous Window (la ventana para ejecutar código anónimo):

rpay.SchedulePayOrderJob job = new rpay.SchedulePayOrderJob();
job.processDate = Date.newInstance(2026, 11, 1);   // la fecha que faltó
System.schedule('REDA Pay - catch-up ' + String.valueOf(DateTime.now().getTime()), '0 0 * * * ?', job);

Esto programa una ejecución única en la hora siguiente para la fecha indicada; se procesan las programaciones que vencían en esa fecha y todavía no se ejecutaron. El trabajo también acepta batchSize (50 de forma predeterminada) para la cantidad de programaciones que se procesan por lote.

Errores que debes evitar

ErrorQué ocurreSolución
No programar nunca el trabajoTodas las programaciones siguen "activas" para siempre y no se cobra nadaPrográmalo; luego revisa las programaciones cuya Next Run Date ya pasó
Programarlo dos vecesNo causa daño, pero confunde: la segunda ejecución no encuentra nadaMantén un solo trabajo
Elegir una hora de inicio en horario laboralLos pagos se cobran a media mañana; los fallos aparecen cuando el personal está ocupadoElige una hora temprana
Eliminar el trabajo programado al "hacer limpieza"Se detiene el pago automáticoVuelve a programarlo
Esperar que el trabajo reintente los pagos fallidosNo lo haceCobra aparte los importes pendientes

Preguntas frecuentes

El trabajo se ejecuta como el usuario que lo programó. Ese usuario debe tener REDA Pay - Admin User y tener permitidos los cobros; si esa persona deja la organización, vuelve a programar el trabajo con otro administrador.

No, pero las organizaciones de producción deberían tenerlos para que los rechazos y devoluciones posteriores lleguen a Salesforce; consulta Configurar webhooks.

Elimina el trabajo programado en Configuración → Trabajos programados para pausar; vuelve a programarlo para reanudar. Las programaciones cuyas fechas pasaron mientras tanto no se recuperan automáticamente.

Qué sigue