Banking & SEPA¶
DiKAS offers a complete banking area: import bank statements (CSV, MT940, or directly via FinTS), automatically match payments, create SEPA direct debits and SEPA transfers. The matching algorithm recognizes invoice numbers, customer names, and IBANs — and assigns incoming payments automatically.
Admin → Banking
Setting Up Bank Accounts¶
Creating a Bank Account¶
Admin → Banking → Accounts → "+ New Account"
| Field | Description |
|---|---|
| Name | Label (e.g., "Business account Sparkasse") |
| IBAN | Your IBAN |
| BIC | Your BIC |
| Account Holder | Name of the account holder |
| Default Account | Use as primary account for invoices |
Setting Up FinTS (Online Banking Retrieval)¶
If you want to retrieve account transactions directly from your bank:
Admin → Settings → FinTS
| Field | Description |
|---|---|
| Bank Code | Your bank's routing number (BLZ) |
| FinTS URL | Automatically determined by bank code |
| User ID | Your online banking login |
| PIN | Your online banking PIN |
| IBAN | Account to be retrieved |
| BIC | Bank identification |
| Account Holder | Name of the account holder |
| TAN Method | pushTAN, chipTAN, smsTAN, etc. |
Importing Bank Statements¶
Manual Import (CSV / MT940)¶
- Download the bank statement from your online banking
- Admin → Banking → "Import file"
- Select file (CSV or MT940/SWIFT)
- DiKAS automatically detects:
- File format and delimiter
- Character encoding (UTF-8, Windows-1252)
- Column structure
- Account transactions are imported
Duplicate detection: Each transaction receives a hash from date, amount, name, payment reference, and IBAN. Already imported transactions are automatically skipped.
Automatic Retrieval (FinTS)¶
If FinTS is configured:
- Admin → Banking → "Retrieve online"
- Select time period (default: since last retrieval)
- Click "Retrieve"
- If your bank requires a TAN:
- TAN method is displayed (pushTAN, chipTAN, etc.)
- For QR-TAN: QR code is shown
- Enter TAN → "Confirm"
- For pushTAN (decoupled): wait for confirmation in the banking app
- Account transactions are imported and automatically matched
FinTS Flow in Detail¶
Step 1: Start retrieval
→ DiKAS sends request to FinTS server
→ Response: "tan_required" + challenge text
Step 2: Enter TAN
→ DiKAS sends TAN
→ Response: "success" + account transactions
or: "vop_confirmation" (Verification of Payee)
→ Name on recipient account does not match
→ Warning is displayed, confirmation required
Payment Matching¶
Automatic Matching (6 Levels)¶
After import, DiKAS attempts to automatically assign each account transaction to an invoice. The algorithm checks in descending confidence:
| Level | Criterion | Confidence | Example |
|---|---|---|---|
| 1 | Invoice number + amount | Highest | Reference "RE-2026-0042", amount 178.88 € |
| 2 | Invoice number | High | Reference contains "RE-2026-0042" |
| 3 | Customer name + amount | Medium | Name "Müller GmbH", amount matches open invoice |
| 4 | IBAN + amount | Medium | Customer's IBAN + matching amount |
| 5 | Keyword in reference | Low | Reference contains customer name |
| 6 | Amount only | Lowest | Amount matches exactly one open invoice |
Account transaction:
Incoming: 178.88 €
From: Müller GmbH
IBAN: DE89 3704 0044 0532 0130 00
Reference: RE-2026-0042 Lunches March
→ Automatically matched: Invoice RE-2026-0042 (178.88 €)
→ Match level: 1 (invoice number + amount)
→ Status: Paid ✓
Matching Status¶
| Status | Description |
|---|---|
| Not matched | No automatic match possible |
| Automatically matched | Algorithm found an invoice |
| Manually matched | You made the assignment yourself |
| Partially matched | Amount partially assigned to an invoice |
| Categorized | Not assigned to an invoice, but to an expense category |
| Ignored | Deliberately skipped (e.g., internal transfer) |
Manual Matching¶
If automatic matching does not work:
- Click on account transaction
- "Match" → search for invoice or customer
- Select and confirm
- Invoice status is automatically updated
Partial Payment¶
If only a partial amount was transferred:
- Match as above
- DiKAS posts the partial amount to the invoice
- Invoice status changes to "Partially Paid"
- The remaining balance stays as an open item
📨 Recording Receipts¶
Incoming receipts (supplier/service invoices, cash receipts) are recorded directly in the POS under "Expenses": enter the amount and tax rate and attach the receipt as a photo or PDF (camera or file picker). See Expenses & Receipts.
The receipts recorded this way flow into accounting via the DATEV export. With the option "Include receipts" the receipt image is also linked to the posting — see Exporting receipt images.
💡 The receipt/expense recording in the POS can be enabled and disabled under Settings → Modules → "Expenses" and is controllable via staff permissions.
SEPA Direct Debit (Collection)¶
For recurring receivables (subscriptions, open invoices with SEPA mandate):
Prerequisites¶
| Prerequisite | Where configured |
|---|---|
| Creditor ID | Admin → Settings → Backend Config |
| Customer IBAN | Admin → Customers → [Customer] → IBAN |
| SEPA Mandate | Admin → Customers → [Customer] → Mandate reference + date |
| Invoice with direct debit flag | In the subscription or on the invoice |
Creating a Direct Debit File¶
- Admin → Banking → "SEPA Direct Debit"
- Due invoices with SEPA flag are displayed
- Select entries (or all)
- "Create SEPA file"
- Download XML file (pain.008.003.02)
- Upload to your online banking
SEPA XML Content¶
The generated file contains per invoice: - MndtId: Customer's mandate reference - DtOfSgntr: Mandate date - EndToEndId: Invoice number - InstdAmt: Outstanding amount (EUR) - ReqdColltnDt: Collection date (5 days after generation) - Ustrd: "Rechnung {invoice number}"
Returned Direct Debit Handling¶
If a direct debit is returned:
- During bank import, DiKAS recognizes the returned debit (negative amount)
- The associated invoice is reset to "Open"
- The SEPA status changes to "Failed"
- Optional: customer's IBAN is flagged for review
SEPA Transfer (Outgoing)¶
For outgoing payments (e.g., to suppliers):
Single Transfer¶
- Admin → Banking → Transfers → "+ New Transfer"
- Enter recipient IBAN, amount, payment reference
- Transfer is saved
- SEPA file (pain.001) can be created and downloaded
Direct Execution via FinTS¶
If FinTS is configured, transfers can be submitted directly:
- Create transfer
- Click "Execute via FinTS"
- Enter TAN (same as retrieval)
- Transfer is submitted directly to the bank
Batch Transfer¶
Multiple transfers can be combined into a batch file:
- Select multiple transfers
- "Create batch file" → pain.001 XML with all items
Bank Transaction Overview¶
The banking page shows all imported account transactions:
| Column | Description |
|---|---|
| Date | Booking date |
| Amount | Incoming or outgoing (color-coded: green/red) |
| Name | Sender / recipient |
| Reference | Transfer reference text |
| IBAN | Counter account |
| Status | Matched / Not matched / Ignored |
| Assignment | Linked invoice or customer |
| Confidence | Match level (1–6) for automatic matching |
IBAN Validation¶
DiKAS validates IBANs for correctness:
- Format check: Length and country identifier
- Checksum: IBAN checksum (ISO 13616)
- BIC derivation: BIC is automatically determined from the IBAN
- Bank lookup: Bank name is displayed by bank code/IBAN
Practical Example: Monthly Payment Reconciliation¶
Situation: Restaurant with 20 corporate customers on invoice.
- FinTS retrieval: "Retrieve online" → enter TAN → 45 new account transactions
- Automatic matching: 12 payments are immediately matched (levels 1–3)
- Manual matching: 3 payments without invoice number → match manually
- Ignore: 30 transactions (rent, electricity, etc.) marked as "Ignored"
- Result: 12 invoices automatically set to "Paid", 3 more manually
- Open items: 5 invoices still open → start dunning run (→ Dunning)
Next Step¶
→ DATEV Export — Export data for your tax advisor