How to pay the salaries (payment file)
What is it for?
After validating the month's batch, salaries are paid by transfer. The payslips are posted to the accounts, fiscaldoo creates one payment per payslip, groups them in a SEPA transfer file that you upload to the bank and, once the bank has paid, records the payments as executed and the batch as paid.
fiscaldoo does not talk to the bank: it generates the file and stores what you tell it. The date on which you record the payment is the one that counts for the monthly remuneration statement (DMR).
When to use it?
- Right after processing and validating the month's payroll, before the payment due date shown on the payslip.
- When the bank confirms that the transfers were made, to close the payment in fiscaldoo.
- To undo a payment marked by mistake, before the bank has posted it (see “Undoing a payment”).
Where to find it?
Payroll › Process › Process the month › open the month's batch (for example Salários de outubro de 2026) › Account, Generate payments, Transfer file, Bank executed and Mark as paid
The payments, one per payslip, are in Payroll › Pay › Salary payments. On the What is there to do this month? screen, step 5, Pay the salaries, opens that list.
Before you start
- Step 1 (Account) is for the Payroll Administrator. Steps 2 to 6 are done by the Payroll Processor and the Payroll Administrator: the Processor generates payments and the file in an already posted batch without any message. Reset to validated is only for the Administrator.
- If you log in with the Administrator profile, first choose the right company (for example Empresa Demonstração, Lda) in the selector in the top right corner: the batch only appears in the company it belongs to.
- The batch is Validated. A salary is not paid without a journal entry: with the Payroll Processor, Transfer file and Bank executed are refused while the payslips are not posted. With the Payroll Administrator, those two buttons first post whatever is missing, without any message. See How to post the payroll to the accounts.
- Each employee is paid by transfer and has their IBAN on their file.
- You have access to the company's online banking to upload the file.
How to use it
- With the Payroll Administrator profile, open the validated batch and click Account. No message appears. Details and checking of the journal entry in How to post the payroll to the accounts.
- Click Generate payments (this can be the Payroll Processor). No message appears: in Payroll › Pay › Salary payments one payment per payslip appears, with the Method Bank transfer, the State Generated (in a batch) and the payslip's Due date (30/10/2026 in October 2026).
- Click Transfer file. The browser downloads the file with the batch's name, for example
Salários de outubro de 2026.xml. - Upload the file to the company's online banking, as a salary payment by file, and authorise it at the bank.
- When the bank has executed the transfers, go back to the batch and click Bank executed. In the window “Confirm that the bank executed the transfers of the file. The payments are marked as executed today and the payslips as paid.”, click Confirm.
- Click Mark as paid. The Mark as paid window opens: “All 8 payslips of batch “Salários de outubro de 2026” (net total 10,382.03 €) are already paid by the bank. Confirming marks the batch itself as “Paid” and leaves the audit event; no payment is created.” Click Mark as paid to confirm (Cancel leaves everything as it was). The batch becomes Paid.
Example. The October 2026 batch has 8 payslips with 10,382.03 € of net pay. The file downloaded in step 3 is a SEPA transfer (format pain.001.001.09) with 8 transfers and a total of 10,382.03 €, equal to the batch total. Each transfer carries the description “Salarios de outubro de 2026”.
Generating the payments before posting also works (the file uses them). The order above avoids the refusal for the Payroll Processor.
Expected result
- The batch is Paid and shows “The batch is “Paid” and its payslips are not changed, but it is not closed yet. A Payroll Administrator can send it back with “Reset to validated” (refused once a payment is posted or reconciled); use “Close” when everything is paid.” The Payroll Processor sees Generate payments, Transfer file and Close; the Payroll Administrator also sees Account and Reset to validated.
- In the accounts, the executed payments generate a single movement in the bank journal, for the batch total: debit to 2312 To staff and credit to 120003 Outstanding Payments, 10,382.03 € (journal entry PBNK1/2026/00040 in the demo, dated the day you clicked Bank executed). The To staff account, which the payroll journal entry credited, is cleared to zero.
- In Salary payments, the 8 payments are Executed, with the Value date of the day you clicked Bank executed (01/11/2026 in the example).
- On the month screen, step 5, Pay the salaries, is Done (“The salaries are paid.”).
Undoing a payment
Reset to validated returns the Paid batch to the Validated state. It is only for the Payroll Administrator; the Payroll Processor does not see the button.
- Open the Paid batch and click Reset to validated.
- In the window, enter the Reason (required: without it, “Some required fields are empty…” appears) and click Reset to validated. The reason is kept in the audit log.
This is only possible while no payment has been posted in Accounting or reconciled with the bank. After Bank executed the payment is posted, so, in the example, fiscaldoo refuses (see “Common problems”). In that case, first undo the payment in Accounting (unreconcile or cancel it) or correct the payslip with a corrective payslip (How to correct a payroll run).
Paying a payslip in cash
In cash there is no file and no bank: the payment is recorded in the cash journal. In the example, an employee's final payslip, of 4,467.65 €.
- With the Payroll Administrator profile, open the validated payslip and click Account.
- Click Record payment. In the window, choose the Box journal in Bank or cash journal, check the Date of the payment and the amount in Pay now and click Record payment.
- Click Pay. The Mark as paid window says “You are about to mark payslip “…” as paid (net pay …), with the payment date …”, without asking for a reason. Click Mark as paid. The payslip becomes Paid.
Step 2 makes this journal entry, which settles the payslip's net pay:
| Account | Debit | Credit |
|---|---|---|
| 2312 To staff | 4,467.65 € | |
| 111001 Cash | 4,467.65 € |
You cannot skip step 2. With no payment recorded, the window in step 3 only has Cancel and explains: “The payslip “…” is posted and has not been paid yet (net pay …), so it cannot be marked as paid here: processing is not paying, the net pay is an open amount owed to the employee and only a payment settles it. How to fix it: close this window and ask a Payroll Administrator to use “Record payment” on the payslip. No reason is needed.”
Important notes
- Employee without an IBAN. Generate payments warns: “Payments left out. 1 worker(s) without a valid IBAN will be left out of the transfer file: … Fix the bank account of each worker (button “See who to correct” in the batch) and make the transfer file again.” Bank executed only counts those who were in the file and warns “Not paid by the bank.” Anyone left out remains unpaid, and Mark as paid does not close the batch while that net pay is open: correct the IBAN, make the file again and use Bank executed again, or record the payment on the payslip.
- Click Bank executed on the day the bank paid. The window does not ask for a date: the payments are executed on the day you confirm. The DMR declares the income paid in each month, so a payment confirmed on 2 November goes into the November DMR and not the October one. In the demo, the DMR for a month with no confirmed payments is refused with “There are no paid payslips in 11/2026 …”. See How to send the monthly remuneration statement.
- Payment deadline. The payslip shows the Payment due date in the Payment and obligations tab. In October 2026 it is 30/10/2026, because 31/10/2026 is a Saturday. fiscaldoo compares the value date with this date: in the example, paid on 01/11/2026, each payment was recorded as 2 days late. Pending validation by a certified accountant or employment lawyer: falling due on the previous working day (the payslip cites “CT art. 278.º, interpretação”).
- Closing the batch is the last step of the month (step 8 on the month screen), after the returns and the check against the accounts. A closed batch shows “Batch closed: it can no longer be changed. A Payroll Administrator can reopen it with a reason.”
Common problems
Transfer file replies that the payslips are not posted
- Symptom: “Invalid Operation. 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 accounting entry); Bruno Miguel Teixeira (no accounting entry); … How to fix it: ask a Payroll Administrator to use “Account” on the batch and click “Transfer file” again.” The message lists all the payslips not yet posted.
- Cause: the batch does not have the payroll journal entry yet.
- What to do: ask the Payroll Administrator to post the batch (step 1) and click Transfer file again.
Run or Bank executed replies “The payment cannot be executed yet”
- Symptom: “Invalid Operation The payment cannot be executed yet. What happened: payslip(s) “Hugo Miguel Santos (01/11/2026 — 30/11/2026)” are not accounted, and a salary is not paid without its accounting entry. How to fix it: ask a Payroll Administrator to use “Account” on the payslip, then execute again.” On the batch, the message lists all the payslips not yet posted.
- Cause: the payslip, or the batch, does not have a journal entry yet, and you are using the Payroll Processor profile, which does not have the Account button. With the Payroll Administrator, fiscaldoo posts first and does not show this message.
- What to do: ask the Payroll Administrator to click Account and try again.
Transfer file replies “There are no payments to put in a file”
- Symptom: “Invalid Operation. 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.”
- Cause: you have not clicked Generate payments yet (step 2).
- What to do: click Generate payments and then Transfer file.
Reset to validated replies “Invalid Operation”
- Symptom: “Invalid Operation Batch “Salários de outubro de 2026” cannot go back to “Validated”: the payment of Ana Margarida Pinto (01/10/2026 — 31/10/2026) is already posted in Accounting (PBNK1/2026/00040); … What happened: once the payment is posted or reconciled it is part of the accounting. How to fix it: undo the payment in the Accounting first (unreconcile or cancel it), or correct the payslip with a corrective one.” The message lists the 8 payments.
- Cause: the executed payment has already generated the bank journal entry (or is already reconciled).
- What to do: what the message says: undo the payment in Accounting, or correct with a corrective payslip. There is no button on the batch to get round the refusal.
The batch is still Validated after Bank executed
- Symptom: after confirming Bank executed, the batch is still Validated, although the window says the payslips are marked as paid.
- Cause: Bank executed marks the payments as executed; the batch only changes state with Mark as paid.
- What to do: click Mark as paid (step 6). If, when you confirm Bank executed, “Posting blocked: 1 pay item(s) with a value have no posting template on 31/12/2026: Penhora de retribuição.” appears, the payments do not go ahead and there is no movement: ask the Payroll Administrator to create the template, as the message says, and try again.