Agendar o trabalho diário de pagamentos recorrentes
Os pagamentos recorrentes são modelos; um trabalho em segundo plano os transforma em pagamentos reais nas datas de vencimento. O REDA Pay inclui o trabalho, mas não o agenda: um administrador faz isso uma vez, na Configuração. Até lá, todo agendamento que a sua equipe ou os seus clientes criam aparece como ativo e nunca é executado.
Agendar o trabalho
- Abra a Configuração, digite Classes do Apex na caixa Busca rápida e clique em Classes do Apex.
- Clique em Agendar Apex no topo da lista.
- Preencha:
| Campo | Informe |
|---|---|
| Nome do trabalho | Um nome que você vá reconhecer na lista de trabalhos agendados, por exemplo REDA Pay - Recurring Payments |
| Classe do Apex | Clique na pesquisa e escolha SchedulePayOrderJob (ela aparece com o namespace do REDA Pay, rpay) |
| Frequência | Semanal, com todos os dias da semana marcados |
| Iniciar | Hoje |
| Finalizar | Uma data bem no futuro, por exemplo daqui a dez anos |
| Horário de início preferencial | Uma hora tranquila antes do expediente, por exemplo 06:00. Os pagamentos que vencem no dia são criados e enviados nesse horário |
- Clique em Salvar.
Um trabalho, todos os dias. O horário que você escolhe é quando os pagamentos recorrentes do dia são recebidos.
O que o trabalho faz a cada dia
- Encontra todas as Pay Orders do tipo Schedule com o Schedule Active marcado e cujo Schedule Next Run Date é hoje.
- Clona cada uma em uma nova Pay Order Immediate vinculada de volta pelo Parent Pay Order e processa essas ordens uma de cada vez, sem registrar nada novo, porque o cliente e o método foram registrados quando o agendamento foi criado.
- Preenche o Schedule Last Run Date de cada agendamento, o que avança o Schedule Next Run Date e soma um ao System Run Instances.
- Grava um REDA Pay Log se algo falhou, e o proprietário da ordem recebe "Scheduled Payment [P-000000] failed." para cada execução com falha.
Uma execução que falha não é repetida; o agendamento simplesmente continua na próxima data. Consulte Configurar um pagamento recorrente.
Conferir se ele está rodando
| Onde | O que procurar |
|---|---|
| Configuração → página Todos os trabalhos agendados (Scheduled Jobs) | O nome do seu trabalho, com uma data em Próxima execução agendada |
| Configuração → Trabalhos do Apex | Depois de cada execução, entradas das classes em lote do REDA Pay com status Completed |
| Aplicativo REDA Pay → REDA Pay Logs → Attention Needed | Logs do trabalho quando houve execuções com falha, com as falhas anexadas em um arquivo |
| Modo de exibição de lista Order Type - Schedule de Pay Orders | Schedule Last Run Date = hoje para os agendamentos que venciam |
Exemplo prático: a execução de uma manhã
Três agendamentos vencem em 1º de novembro: o aluguel de dois moradores por conta bancária e uma taxa de atendimento a proprietários por cartão.
| Agendamento | O que o trabalho faz às 06:00 | Resultado |
|---|---|---|
| P-051850, $1,250.00 mensal, Checking x-7890 | Clona-o na P-052001 (Parent Pay Order P-051850) e a processa | T-0014601 processed; P-052001 Schedule - Processed; na P-051850, Last Run Date 1º nov., Next Run Date 1º dez., Run Instances 1 |
| P-051860, $980.00 mensal, Checking x-1122 | Clona-o na P-052002 e a processa | A Payload recusa: saldo insuficiente. T-0014602 failed; P-052002 Schedule - Not Processed; o proprietário da P-051860 vê "Scheduled Payment [P-051860] failed."; a P-051860 avança mesmo assim para 1º dez. |
| P-051870, $45.00 mensal, Visa x-4242 (vencido) | Clona-o na P-052003 e a processa | Recusado; como acima |
Um REDA Pay Log da execução registra duas falhas, com as duas ordens e os seus erros no arquivo anexo, e os administradores recebem o e-mail "ATTENTION NEEDED". A cobrança acompanha as duas execuções com falha; os agendamentos em si não precisam de alteração, a menos que o cartão seja substituído.
Escolher o horário
O horário que você escolhe está no fuso horário do usuário que agenda o trabalho. Uma hora cedo, antes do expediente, faz com que as falhas já estejam no modo de exibição Attention Needed quando a equipe chega, e os pagadores veem um horário de cobrança constante. Evite o início da hora em que rodam os seus outros trabalhos pesados; o trabalho do REDA Pay chama a Payload uma vez por agendamento e é rápido, mas disputa os mesmos espaços de processamento em lote.
Executar mais de uma vez por dia, ou para uma data passada
O trabalho roda uma vez por dia por projeto: os agendamentos são organizados por data, e uma segunda execução no mesmo dia não encontra nada novo a fazer. Se o trabalho não rodou em algum dia (por exemplo, ainda não estava agendado, ou a organização estava indisponível), um administrador pode executá-lo para essa data no Developer Console (Debug → Open Execute Anonymous Window; os menus do Developer Console ficam em inglês):
rpay.SchedulePayOrderJob job = new rpay.SchedulePayOrderJob();
job.processDate = Date.newInstance(2026, 11, 1); // a data perdida
System.schedule('REDA Pay - catch-up ' + String.valueOf(DateTime.now().getTime()), '0 0 * * * ?', job);
Isso agenda uma execução avulsa na próxima hora para a data informada; os agendamentos que venciam nessa data e ainda não rodaram são processados. O trabalho também aceita batchSize (padrão 50), o número de agendamentos tratados por lote.
Erros comuns a evitar
| Erro | O que acontece | Solução |
|---|---|---|
| Nunca agendar o trabalho | Todo agendamento fica "ativo" para sempre e nada é cobrado | Agende-o; depois revise os agendamentos cujo Next Run Date está no passado |
| Agendá-lo duas vezes | Inofensivo, mas confuso: a segunda execução não encontra nada | Mantenha um trabalho só |
| Escolher um horário de início durante o expediente | Os pagamentos são recebidos no meio da manhã; as falhas aparecem com a equipe ocupada | Escolha uma hora cedo |
| Excluir o trabalho agendado durante uma "limpeza" | O pagamento automático para | Agende-o de novo |
| Esperar que o trabalho repita os pagamentos com falha | Ele não repete | Cobre os valores perdidos separadamente |
Perguntas frequentes
O trabalho roda como o usuário que o agendou. Esse usuário precisa ter o REDA Pay - Admin User e permissão para recebimentos; se essa pessoa sair, agende o trabalho de novo como outro administrador.
Não, mas organizações de produção devem tê-los para que as recusas e as rejeições posteriores cheguem ao Salesforce; consulte Configurar webhooks.
Exclua o trabalho agendado, na página Todos os trabalhos agendados, para pausar; agende-o de novo para retomar. Os agendamentos cujas datas passaram nesse meio-tempo não são recuperados automaticamente.