paytee
← app

Reporting requirements

Generated from bs_payroll/reporting.py (python3 -m bs_payroll.cli reporting). Each country's legal entity files its own returns; nothing is combined across countries.

CH: Swiss entity, canton Basel-Stadt

Retention: 10 years for payroll records and accounting vouchers (OR art. 958f).

FilingRecipientFrequencyDeadlineOutput
Payslip (Lohnabrechnung)Employeemonthlywith each salary payment (OR art. 323b){period}_{id}_payslip.pdf
Salary payment file (pain.001, CHF)Company bankmonthlybefore pay daypain001_salaries_{period}.xml
Quellensteuer statementSteuerverwaltung Basel-Stadtmonthlywithin 30 days after the end of the month (ELM-QST or e-portal)quellensteuer_BS_{period}.csv + _summary.json
Payroll journalAccountingmonthlymonth end closejournal_{period}.csv
AHV/IV/EO, ALV, FAK annual wage declarationAusgleichskasse / FAK Basel-Stadtannual (advance payments monthly or quarterly)30 Januaryahv_annual_{year}.csv, fak_annual_{year}.csv
UVG / KTG wage declarationAccident and sickness insurerannualper insurer (usually end of January or February)uvg_annual_{year}.csv
BVG salary and contribution statementPension fundannualper pension fund regulationsbvg_annual_{year}.csv
Quellensteuer annual statementSteuerverwaltung Basel-Stadtannualwith the December statementquellensteuer_annual_{year}.csv
Lohnausweis (Form 11)Employee (copy to tax office where the canton requires it)annualend of January{year}_{id}_lohnausweis.pdf

ES: Spanish entity, Valencia

Retention: 4 years for tax, social security and labour records (LGT art. 66, LISOS art. 21); 6 years for accounting books and vouchers (Código de Comercio art. 30).

FilingRecipientFrequencyDeadlineOutput
Recibo de salarios (nómina)Employeemonthlywith each salary payment (ET art. 29, Orden ESS/2098/2014){period}_{id}_payslip.pdf
Salary payment file (SEPA pain.001, EUR)Entity bankmonthlybefore pay dayES_pain001_salaries_{period}.xml
Seguridad Social liquidation (RNT per worker, RLC totals)TGSS via SILTRA / Sistema REDmonthlylast calendar day of the following monthES_seguridad_social_{period}.csv + _summary.json
Modelo 111 (IRPF withholding)AEATquarterly (monthly for large companies)1-20 of the month after the quarter (4T: by 20 January)ES_modelo111_{period}.json; ES_modelo111_{year}_quarters.json
Payroll journalAccountingmonthlymonth end closeES_journal_{period}.csv
Modelo 190 (annual withholding summary)AEATannual1-31 JanuaryES_modelo190_{year}.csv + _summary.json
Certificado de retencionesEmployeeannualbefore the IRPF return period opens (RIRPF art. 108.3){year}_{id}_certificado.pdf
Afiliación, alta and baja of workersTGSS (Sistema RED)per eventbefore the start of work; baja within 3 daysnot produced by the platform
Contract communication (Contrat@)SEPEper contractwithin 10 days of signingnot produced by the platform
Registro de jornada and registro retributivoKept by the entity (Inspección de Trabajo)daily / annualavailable on request (ET arts. 34.9, 28.2)not produced by the platform

One TEE or one per country

Recommendation: one TEE for both countries. Run a single enclave image (one attested measurement) in one warm pool in Zurich, and keep the countries apart with keys and outputs rather than with separate enclaves: one AWS KMS key per legal entity, released only to the approved enclave measurement, and payslips, returns and retention handled per entity.

Why

When to split

Run a second enclave in an EU region (for example Frankfurt or Madrid) only if a Spanish customer or collective agreement requires EU hosting by contract, or if a lawyer concludes that the onward transfers below need it.

What a lawyer should confirm

Processing agreement

Draft. The text of the processing agreement is still to be provided. Accepting it at sign-up records the date and the version ("draft") on the account.