Data Protection Impact Assessment (DPIA)
Data Protection Impact Assessment (DPIA)
Project:
DropBilko —PSD2BalkanPass-ThroughAccountingPayment AppSaaS Processing Activity:AllMulti-TenantpersonalAccountingdataDataprocessingProcessingin(invoices,Dropexpenses,paymentVAT,servicetax filings) Version: 1.0 Date: 2026-02-23 Author:SecurityCompliance Architect DPO:DPOTBD ([email protected])[email protected]) Status: Draft Reviewers: DPO, Legal Counsel,CTOEngineering Lead Classification: ConfidentialDocument-ID:DPIA-DROP-001
Document History
| Version | Date | Author | Changes |
|---|---|---|---|
| 0.1 | 2026-02- |
Initial DPIA | accounting |
DPIA Trigger Checklist
A DPIA is required if ANY of the following apply (GDPR Art. 35):
| # | Trigger | Applies? | Notes |
|---|---|---|---|
| 1 | Systematic |
||
| 2 | Large-scale |
NO | |
| 3 | Systematic monitoring of publicly accessible areas |
NO | |
| 4 | NO | ||
| 5 | |||
| 6 | Innovative |
||
| 7 | Cross-border transfer outside EEA without adequate protection | YES | |
| 8 |
DPIA Required: YES
Reason: TriggersCross-border 1, 5, 6, 7, and 8 confirmed. Processingtransfer of RS/BA data subjects to EU-hosted infrastructure; processing of national tax IDs (PIB/JMBG/OIB/JIB) as sensitive identifiers; financial data atfor scalethousands withof cross-border transfers to non-EEA countriesorganizations and automatedtheir decision-making (fraud/AML systems).
Regulatory basis: GDPR Art. 35, personopplysningsloven (LOV-2018-06-15-38), Datatilsynets retningslinjer for DPIAcounterparties.
1. Processing Activity Description
1.1 Activity Overview
Activity Name: DropMulti-Tenant PaymentAccounting Service — FullData Processing Scope
System/Product: Drop — PSD2 pass-through payment appBilko (getdrop.no)bilko.io)
Business Unit: ALAI Holding AS (org.nr. 932 516 136)Product
Processing Owner: CEOEngineering /Lead Compliance Officer([email protected])
Description of Processing:
DropBilko isprocesses afinancial paymentand servicepersonal fordata allon residentsbehalf of Norway.business Itorganizations uses(data acontrollers) pass-throughin modelSerbia, underBosnia PSD2& —Herzegovina, Dropand never holds customer money. Processing includes:Croatia:
- User
registrationaccountand identity verificationvia BankID OIDCdata —collectionemail,offull name,fødselsnummerbcrypt-hashed(nationalpassword,ID),TOTPbirthdate (age verification), mobile numbersecret PSD2OrganizationAISPdata —readinglegal name, tax ID (PIB/JIB/OIB), address, banking details- Contact data — customer/supplier names, tax IDs, email, phone, IBAN
- Invoice data — invoice numbers, dates, amounts, VAT, payment status
- Expense data — amounts, categories, descriptions, receipt attachments
- Transaction data — bank
accounttransactions,balancesdouble-entryfromdebit/credit - Audit
banktrailvia—OpenallBankingmutationsAPIlogged(withexplicituserconsent)ID, PSD2IP,PISPtimestamp,—old/newinitiating payments from user's bank account (remittance to 30+ countries, QR payments in-store)KYC/AML compliance— customer due diligence per hvitvaskingsloven, transaction monitoring, PEP/sanctions screeningTransaction history— storing remittance and QR payment records per bokføringslovenvalues
Trigger / Business Justification:
ProvideSMBs in the Balkans lack affordable, accessiblecompliant internationalcloud remittanceaccounting software. Processing this data is necessary to deliver the contracted accounting service and QRmeet paymentlegal servicesobligations forunder allRS/BA/HR residents of Norway, compliant with PSD2, hvitvaskingsloven,accounting and GDPR.tax laws.
1.2 Processing Operations
| Operation | Data Category | Technology | Location |
|---|---|---|---|
| Collection ( |
|||
| Collection ( |
|||
| Storage | All categories | PostgreSQL AES-256 | Railway EU West ( |
| Storage ( |
|||
| Processing |
|||
| Sharing |
|||
| Deletion / Anonymization |
2. Necessity & Proportionality Assessment
2.1 Purposes of Processing
| Purpose | Specific Description | Legitimate? |
|---|---|---|
| YES — |
||
| YES — legal | ||
| YES — legal obligation (Art. 6.1.c) | ||
| Financial record keeping | Double-entry books required by accounting law | YES — legal obligation (Art. 6.1.c) |
| Audit trail | Immutable log of financial mutations | YES — legal obligation + legitimate |
| E-invoice submission | Submit to SEF (Serbia) and HR-FISK (Croatia) | YES — legal obligation (Art. 6.1.c) |
| Invoice email delivery | Deliver invoices to customers | YES — contract necessity (Art. 6.1.b) |
2.2 Data Minimization Assessment
| Data Element | Collected | Strictly Necessary? | Alternative |
|---|---|---|---|
| |||
| |||
| |||
| |||
email |
YES | YES — |
N/A |
| |||
| |||
|
YES | YES — | |
| N/A | ||
|
YES | YES — |
|
|
YES |
YES — |
|
organizationTaxId (PIB/JIB/OIB) |
YES | YES — legally required on invoices | N/A |
organizationIban |
YES | YES — payment reference | N/A |
contactTaxId (PIB/JMBG/OIB/JIB) |
YES | YES — VAT law requires buyer tax ID | N/A |
contactIban |
YES | PARTIAL — needed only for payment features | Collect only when |
clientIp (audit log) |
YES | YES — security, fraud detection | Retain max 30 days for security entries |
userAgent |
NO | NO — not collected | Not collected |
deviceId |
NO | NO — not collected | Not collected |
Fields recommended for removal / minimization:
ip_addressin logs: Pseudonymize after 3 monthsuser_agent: Retain for security analysis only, not customer-facing
2.3 Lawful Basis
| Processing Activity | Lawful Basis | Justification |
|---|---|---|
| Contract |
||
| Legal obligation |
||
| Legitimate interest |
||
| Legal obligation |
3. Data Subjects & Categories of Data
3.1 Data Subject Groups
| Group | Description | Estimated Volume | Vulnerability |
|---|---|---|---|
| Low | |||
| Employees | Submitting expense claims via employer's account | Variable | Low-Medium |
| External |
Low ( |
3.2 Personal Data Categories
| Category | Data Elements | Sensitivity | |
|---|---|---|---|
| Name, |
|||
| Tax identity | PIB, JMBG, OIB, JIB | High | L4 Restricted |
| Financial |
High | ||
| Behavioral / Audit | Standard | ||
| Attachments | Receipt PDFs, invoice attachments | Standard-High | L3 Confidential |
4. Data Processing Purposes & Legal Basis
| Processing Purpose | Personal Data Used | Legal Basis | Retention Period |
|---|---|---|---|
| User authentication |
|||
| Contract (Art. |
|||
| Legal obligation (Art. |
|||
| Legal obligation (Art. |
|||
| Legal obligation (Art. |
10-11 years | ||
| Audit trail | userId, IP, timestamp, changedFields | Legal obligation + Legitimate interest | Financial: 10-11 years; IP/security: 30 days |
| E-invoice (SEF/HR-FISK) | Invoice XML with buyer/seller data | Legal obligation (Art. 6.1.c) |
Per |
| Transactional email | email, invoice PDF | Contract ( |
Not stored by Bilko |
| Data export (portability) | All data | GDPR Art. 20 / ZZPL Art. 37 | On demand |
5. Data Flow Mapping
flowchart TD
DS([Drop User / Data Subject]Subject\nBusiness user]) -->|BankIDRegisters OIDC|/ BANKID[BankIDCreates Norgeinvoice| AS\nNorwayCOLLECT[Web App\nbilko.io — Name,Vercel fødselsnummer,EU]
birthdate]
BANKIDCOLLECT -->|id_token|HTTPS POST Zod validated| API[DropExpress API\nAWS App Runnernapi.bilko.io — Norway/EEA]Railway DSEU -->|Mobile, email, recipient details| APIWest]
API -->|EncryptedPrisma fødselsnummer\nName,ORM contact, KYC status|AES-256| DB[(PostgreSQL\nEEAnRailway —EU AES-256)West\nFrankfurt/Paris)]
API -->|PaymentReceipt instruction\nSenderupload| nameR2[(Cloudflare +R2\nEU recipientregion IBANAES-256)]
+ amount| PISP[Open Banking PISP\nUser's bank — EEA]
PISPDB -->|WireAppend-only| transfer\nSenderAUDIT[(LoggedAction\nImmutable nameaudit + recipient IBAN| CORR[Correspondent Bank\nDestination country]
CORR -->|Payment to recipient| RECIP([Recipient\nSerbia / BiH / HR / Other])trail)]
API -->|BalanceInvoice reademail| request|SG[SendGrid\nEU AISP[Open Banking AISP\nUser's bank — EEA]
AISP -->|Balance + masked account| APIregion]
API -->|KYCUBL check|2.1 SUMSUB[Sumsub\nKYC/AMLXML| —SEF[SEF EEA]efaktura.gov.rs\nSerbia]
API -->|ErrorUBL events|2.1 SENTRY[Sentry\nErrorHR-CIUS| monitoringFINA[HR-FISK — EEA]
API -->|Uptime + logs| BETTERSTACK[BetterStack\nLog monitoring — EEA]fina.hr\nCroatia]
DB -->|On erasure request|deletion| ANON[Anonymization job\nPersonal dataAnonymization\nPII removed]
DB -->|On data request|export| EXPORT[DataJSON export to user\nJSON/CSV]data subject]
ANON --> DB
style DB fill:#ffcccc,stroke:#cc0000
style CORRAUDIT fill:#ffe4cc
style SUMSUB fill:#ffe4cc#ffe4cc,stroke:#cc6600
Data processors (GDPR Art. 28):
| Processor | Service | Data Shared | Country | DPA Status |
|---|---|---|---|---|
| Cloudflare | IP addresses, |
|||
6. Risk Assessment Matrix
6.1 Risk Scoring Scale
Risk Score = Likelihood (1-5) × Severity
- (1-5).
- Score 1-
4:6:LowLow;| 5-8: Medium | 9-7-12:High |Medium; 13-16:19:CriticalHigh;
6.2 RiskRisks to Data Subjects
| Risk ID | Risk |
Likelihood | Severity | Score | Residual |
||
|---|---|---|---|---|---|---|---|
| R1 | Unauthorized access to financial data |
2 | 5 | 10 | TLS 1.3, AES-256, RBAC, org-scoped queries | MEDIUM | |
| R2 | Tax ID (PIB/JMBG/OIB/JIB) theft enabling identity fraud | 2 | 5 | 10 | L4 Restricted, RBAC, no JWT exposure, bcrypt | MEDIUM | |
| R3 | Cross-tenant data access (IDOR) | 2 | 5 | 10 | org-scoped WHERE on all queries, UUID PKs | LOW (after mitigation) | |
| R4 | Invoice data exposure to wrong party | 2 | 4 | 8 | MEDIUM |
||
| 2 | 5 | 10 | Immutable LoggedAction, RBAC delete permissions | LOW (after mitigation) | |||
| R6 | PII retained beyond |
3 | 6 | Soft delete + anonymization; financial data by law | LOW | ||
| R7 | Cross-border transfer (RS/BA data to EU) without protection | 3 | 3 | Railway |
MEDIUM | ||
| R8 | User unable to exercise erasure (locked by retention law) | 3 | 2 | 6 | Clear policy in privacy notice; PII anonymized | LOW | |
| 2 | 3 | 6 | Encrypted R2 storage; RBAC accountant+ access | LOW | |||
| R10 | Audit log IP retention enabling tracking | 2 | 2 | 4 | LOW | ||
| 1 | 2 | 2 | |||||
7. Mitigation Measures
| Risk ID | Mitigation |
Owner | Deadline | Status |
|---|---|---|---|---|
| R1 | Field-level |
Engineering | Phase 2 | Planned |
| R1 | Planned | |||
| Designed | ||||
| R3 | Integration tests: cross-tenant requests must return 403 | Engineering | Phase 1 | Planned |
| R4 | Vitest RBAC tests on all protected endpoints | Engineering | Phase 1 | Planned |
| R5 | ||||
| R8 | Phase |
Planned | ||
| R9 | ||||
Residual risk after mitigation:conclusion: All residual risks assessed asare LOW or MEDIUM (max 6).MEDIUM. No CRITICAL or HIGH residual risksrisks. remainProcessing aftermay plannedproceed mitigations.subject to DPO approval and Phase 1 mitigations being implemented before first paying customer.
DPO Conclusion: ☐ Acceptable — proceed with| processing☐ (subjectConditional — pending Phase 1 mitigations | ☐ Escalate to plannedsupervisory mitigations being implemented before launch)authority
8. DPO Consultation Record
DPO Name: DPO / personvernombudTBD ([email protected])[email protected])
Consultation Date: 2026-02-12To (initial);be ongoingscheduled before first paying customer
DPO Input:
DPIA[ToconfirmsbethatcompletedprocessingafterofDPOfødselsnummer, bank account data, and cross-border transfers creates medium-level risks manageable with described controls. BankID integration is privacy-enhancing (reduces need to collect separate identity documents). Key pre-launch requirements: SCCs with non-EEA correspondent banks, TIAs for Serbia/BiH/Turkey/Pakistan, audit_log implementation, and formal registration with Datatilsynet behandlingsprotokoll (Art. 30).appointment]
DPO Recommendation:
- Approved — risks acceptable and adequately mitigated
- Conditional approval — subject to
implementingPhase 1 mitigationsbefore production launch - Rejected — redesign required
- Escalate to supervisory authority
DPO Signature: _________________________ Date: _____________
9. Supervisory Authority Consultation (if required)
Consultation Required: NO (pending DPO review)
Reason: AfterNo plannedCRITICAL mitigations,or noHIGH residual risks. MEDIUM risks exceed the HIGH threshold. GDPR Art. 36 prior consultation not required. Datatilsynet will be engaged as part of standard Finanstilsynetfor licensingcloud process.accounting SaaS.
If required — relevant authorities by jurisdiction:
- HR: AZOP — [email protected] — https://azop.hr
- RS: Poverenik — [email protected] — https://www.poverenik.rs
- BA: AZLP — [email protected] — https://www.azlp.ba
10. DPIA Review Schedule
Next scheduled review: 2027-02-23 (annual) ORor when any of the following occurs:when:
BankIDNewintegrationcountryimplementedlaunch (RS Phase2)2, OpenHRBanking AISP/PISP integration implemented (Phase2)2, BA Phase 3)- New
remittancegovernmentcorridor addedintegration (newSEF,TIAHR-FISK,required)CPF) RealDataKYC/AMLbreachsystemorintegrated (Sumsub production)Migration from SQLite to PostgreSQL completednear-miss- New
regulationsdataentercategoriesintoorforce (DORA, updated hvitvaskingsloven)processors AnyRegulatorydatachangesbreach(ZZPLrelatedamendment,toBiHthisreform,processingGDPR updates)
Review Owner: DPO ([email protected]) Review Log:
| Date | Reviewer | Changes |
Outcome |
|---|---|---|---|
| 2026-02- |
Initial DPIA | ||
| Draft — awaiting DPO |
Approval
| Role | Name | Date | Signature |
|---|---|---|---|
| Author | 2026-02-23 | ||
| DPO | |||
| Legal Counsel | |||