I cannot pay salaries or generate the transfer file
Symptom
On the payroll batch, Transfer file opens Invalid Operation instead of downloading the file, Mark as paid asks for a confirmation you did not expect, or the batch became Paid without the bank having made the transfers.
Message
Seen on the Salários de outubro de 2026 batch of Empresa Demonstração, Lda, with the Payroll Processor profile, in the order they appear.
Transfer file with the batch Validated, before Generate payments:
“There are no payments to put in a file. What happened: the batch has no bank-transfer payment generated and waiting for the bank. How to fix it: use “Generate payments” first.”
Transfer file after Generate payments, with the batch not yet posted:
“The transfer file cannot be made yet. What happened: 8 payslips are not posted, and the bank transfer is an Accounting payment that settles the payslip's journal entry. They are: Ana Margarida Pinto (no journal entry); Bruno Miguel Teixeira (no journal entry); … Hugo Miguel Santos (no journal entry). How to fix it: ask a Payroll Administrator to use “Account” on the batch and click “Transfer file” again.”
The list gives one name per payslip not posted: in the example, the 8 in the batch.
Mark as paid, with the payments generated and before the bank executes them. The Mark as paid window warns, and on confirming fiscaldoo refuses:
“You are about to mark 8 payslips of batch “Salários de outubro de 2026” as paid (net total €10,382.03), with the payment date 01/11/2026. 8 payments are generated but the bank has not executed them yet (€10,382.03): the payslips can only be marked as paid after the bank executes them. Use “Bank executed” when the bank confirms the transfer file. A Payroll Administrator can undo this with “Reset to validated” while no payment is posted in Accounting.”
When you click Mark as paid in that window, Invalid Operation opens: “Payslip “Ana Margarida Pinto (01/11/2026 — 30/11/2026)” cannot be marked as paid: €0.00 of €2,180.15 were executed by the bank. What happened: a payment in a batch, or at the bank, is not a payment made. How to fix it: execute the payment when the bank confirms it (or reject it if the bank did not execute it).” The batch stays Validated.
Verified causes
- The batch is not posted. The file settles the payroll journal entry, so it only comes out after Account, which belongs to the Payroll Administrator. The “cannot be made yet…” refusal says which payslips are missing.
- There are no generated payments yet. The file carries the batch's bank-transfer payments; without Generate payments the response is “There are no payments…”.
- The buttons depend on the batch state. With the batch Calculated there are no payment buttons: they appear when the batch becomes Validated (Generate payments, Transfer file, Bank executed, Mark as paid). With the batch Paid, Bank executed and Mark as paid disappear, leaving Generate payments, Transfer file and Close.
- Mark as paid clicked before the bank. With the payments generated, fiscaldoo refuses (message above). Without generated payments, the Mark as paid window warns that the 8 payslips will be paid by manual payments (€10,382.03 in total, with no bank movement), asks for the Reason (for example, “paid in cash”) and only then marks them. That is what happened on the demo's November 2026 batch: the batch became Paid without the bank having done anything.
- Some refusals were not triggered: payments above the payslip's net amount, payslip not validated, company without a bank journal, benefit-in-kind part greater than the cash part. Pending validation on screen: these refusals were not triggered (the demo has a single bank journal and payslips without benefits in kind).
What to check
- The batch state, at the top right, and whether it has already been posted (the Account button only appears for the Payroll Administrator).
- In Payroll › Pay › Salary payments, whether the batch already has payments and what state they are in.
- Whether the bank has already made the transfers. Bank executed and Mark as paid tell fiscaldoo the money has gone out.
How to fix it
Paying the batch through to the transfer file
Done on the October 2026 batch, with the profile stated in each step:
- Payroll Processor: with the batch Calculated, click Validate. The batch becomes Validated.
- Payroll Administrator: click Account. If it is refused because a posting template is missing, follow The payslip is not posted.
- Payroll Processor: click Generate payments (it shows no message) and then Transfer file. In the demo, fiscaldoo downloaded the file “Salários de outubro de 2026.xml” (SEPA transfers), with 8 transfers and €10,382.03 in total, the net amount of the 8 payslips. The Payroll Processor does these two steps on a posted batch, without No access.
- Send the file to the bank, through the bank's application.
- When the bank makes the transfers, the Payroll Processor clicks Bank executed. The Confirmation window opens: “Confirm that the bank executed the transfers of the file. The payments are marked as executed today and the payslips as paid.”. Click Confirm.
- The 8 payslips became Paid, with the payment dated that day. The batch is still Validated: click Mark as paid. The window says all the payslips “are already paid by the bank” and that, on confirming, only the batch itself becomes Paid and the audit event is kept, without creating any payment. Confirm, and the batch becomes Paid.
If the Processor generates the payments before the Administrator posts the batch, the file is refused with the list of payslips not posted. After Account, the same file comes out without redoing the payments.
The batch became Paid and the bank has not paid yet
A batch made Paid by mistake can be reset: only the Payroll Administrator does it, on the Paid batch, with Reset to validated.
- Open the batch and click Reset to validated. The window says: “8 payslips of batch “…” (net total €…) go back to “Validated” and their executed payments are voided. This is only possible while no payment is posted in the Accounting or reconciled with the bank, and it is recorded in the audit log with your reason.”
- Type the Reason (without it, the window gives “Some required fields are empty.”) and click Reset to validated. On the demo's November 2026 batch, marked as paid without generated payments, the batch went back to Validated, with Bank executed and Mark as paid on the bar again.
The October 2026 batch, with the payments already posted in Accounting, can not be reset. The refusal lists each payment (for example “the payment of Ana Margarida Pinto (01/10/2026 — 31/10/2026) is already posted in the Accounting (PBNK1/2026/00040)”) and ends: “How to fix it: undo the payment in the Accounting first (unreconcile or cancel it), or correct the payslip with a corrective one.”
Expected result
- With the batch posted, Transfer file downloads the file, done by the Payroll Processor.
- After Bank executed and Mark as paid, the batch is Paid and so is each payslip.
- A batch made Paid by mistake, with no posted payments, goes back to Validated with Reset to validated.
When to contact support
- Generate payments or Transfer file give No access to the Payroll Processor on a posted batch.
- Reset to validated is refused and the payments are neither posted nor reconciled.
- The file comes out without an employee who has a generated payment.
Information to send
- The batch, the company and the state.
- The full text of the message, copied from the screen.
- A screenshot of Salary payments filtered by the batch.
- The profile you logged in with.