{"id":4938,"date":"2026-11-06T12:47:25","date_gmt":"2026-11-06T12:47:25","guid":{"rendered":"https:\/\/sawaryn.com\/?p=4938"},"modified":"2026-11-06T12:49:10","modified_gmt":"2026-11-06T12:49:10","slug":"saas-provider-data-breach-72-hour-response","status":"publish","type":"post","link":"https:\/\/sawaryn.com\/en\/publikacje\/saas-provider-data-breach-72-hour-response\/","title":{"rendered":"Data Leak at a SaaS Provider: What You Must Do Within 72 Hours, Even Though You Were Not Attacked"},"content":{"rendered":"<p>On Friday afternoon, you receive a forwarded message from a client: your invoicing application provider has been attacked, and its database has ended up on third-party servers. Your systems are untouched. The provider has already reported the breach to the UODO, notified CERT Polska and the Police. It may seem that the matter does not concern you.<\/p>\n<p>It does \u2014 and you have <strong>72 hours<\/strong> to deal with it, starting from the moment you read that email.<\/p>\n<p>The provider\u2019s notification covers only the data for which it is the controller \u2014 the service\u2019s user accounts. The details of your business partners in the records, invoice contents, addresses, amounts and bank account numbers have a different controller. You. And it is you who is responsible for <a href=\"https:\/\/sawaryn.com\/publikacje\/zgloszenie-naruszenia-rodo-wyciek-danych-osobowych\/\">reporting the breach to the UODO<\/a> pursuant to <strong>Article 33(1) GDPR<\/strong>.<\/p>\n<p>This article provides a structured course of action: from determining when the deadline starts running, through securing the account, identifying the individuals affected and assessing the risk, to submitting the notification and communicating with business partners. It is all based on an anonymised, real-life incident with a D \/ D+1 timeline.<\/p>\n<h2>Key concepts before you take action<\/h2>\n<p>Before moving on to the specific steps, make sure you understand the terminology. There is no time to look up definitions during an incident.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Concept<\/th>\n<th style=\"text-align: left;\">What it means in the context of a data leak<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><strong>Controller<\/strong><\/td>\n<td style=\"text-align: left;\">The entity that determines the purposes and means of processing personal data. If you use a SaaS invoicing application, you are the controller of your business partners\u2019 data \u2014 not the application provider.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Processor<\/strong><\/td>\n<td style=\"text-align: left;\">An entity that processes data on your behalf \u2014 in this case, the SaaS provider. It processes the data under a <a href=\"https:\/\/sawaryn.com\/en\/publikacje\/safely-entrust-personal-data-processor\/\">data processing agreement<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Personal data breach<\/strong><\/td>\n<td style=\"text-align: left;\">An incident resulting in the unauthorised disclosure, loss or destruction of personal data (Article 4(12) GDPR). A database leak at your provider constitutes a breach for you as the controller.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Initial notification<\/strong><\/td>\n<td style=\"text-align: left;\">A notification submitted within the 72-hour deadline using approximate figures and marking information as \u201cunder investigation&#8221; \u2014 Article 33(4) GDPR permits information to be provided in phases.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Supplementary notification<\/strong><\/td>\n<td style=\"text-align: left;\">Additional information provided after obtaining details from the provider \u2014 submitted using the same form on biznes.gov.pl.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Breach register<\/strong><\/td>\n<td style=\"text-align: left;\">Internal documentation required under Article 33(5) GDPR \u2014 it must be maintained even if the controller determines that notification is not required.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Why your provider\u2019s notification does not protect you<\/h2>\n<p>This is the most common mistake after receiving information about a breach at a processor. The management board sees the provider\u2019s announcement: \u201cwe have reported the breach to the UODO and notified CERT Polska and the Police&#8221; \u2014 and assumes the matter is closed.<\/p>\n<p>It is not. And this follows directly from the legislation.<\/p>\n<p><strong>Article 33(1) GDPR<\/strong> places the obligation to notify the supervisory authority of a breach on the <strong>controller<\/strong>. Article 33(2) requires the processor to notify the controller \u2014 not the authority. These are two separate obligations imposed on two different entities and addressed to different recipients.<\/p>\n<p>The SaaS provider reported the breach as the controller of its own data \u2014 the service\u2019s user accounts. Your business partners\u2019 details in the records, the amounts on invoices, addresses and bank account numbers are data for which you are the controller. The provider did not report them on your behalf because it could not do so.<\/p>\n<p>The UODO imposes fines for late or omitted notifications. Confirmed fines have been imposed on both small entities (PLN 5,000 \u2014 <a href=\"https:\/\/uodo.gov.pl\/pl\/138\/3967\" target=\"_blank\" rel=\"noopener\">UODO decision DKN.5131.30.2022<\/a>) and financial institutions (over PLN 350,000 \u2014 Bank Millennium, decision upheld by the Supreme Administrative Court). The amount depends on the criteria set out in Article 83(2) GDPR: the nature of the breach, intent and cooperation with the authority.<\/p>\n<p>A mass notification sent by the provider to your address as a user of the service does not fulfil its obligation under Article 33(2) towards you as the controller. It is a marketing communication, not a formal notification from the processor addressed to the data controller.<\/p>\n<p><a href=\"https:\/\/sawaryn.com\/en\/contact\/\">Contact us<\/a> if you need assistance assessing whether your notification obligation has already arisen.<\/p>\n<aside class=\"blog-article__inline-newsletter blog-article__inline-form flow\" aria-label=\"Article form\">\r\n                    <div class=\"blog-article__inline-newsletter-head flow\">\r\n                                    <h2>Discuss your situation with us<\/h2>\r\n                                                    <p>Leave your contact details and we will get back to you.<\/p>\r\n                            <\/div>\r\n                <div class=\"form form--cf7 blog-article__newsletter-form blog-article__inline-form-form\">\r\n            \n<div class=\"wpcf7 no-js\" id=\"wpcf7-f2572-o1\" lang=\"pl-PL\" dir=\"ltr\" data-wpcf7-id=\"2572\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/en\/wp-json\/wp\/v2\/posts\/4938#wpcf7-f2572-o1\" method=\"post\" class=\"wpcf7-form init wpcf7-acceptance-as-validation\" aria-label=\"Contact form\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"2572\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.7\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"pl_PL\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f2572-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/>\n<\/fieldset>\n<div class=\"blog-article__inline-form-fields\">\n\t<p><label class=\"blog-article__inline-form-field\"><br \/>\n<span class=\"blog-article__inline-form-label\">First and last name<\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"article-form-name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required blog-article__inline-form-input\" autocomplete=\"name\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Jan Kowalski\" value=\"\" type=\"text\" name=\"article-form-name\" \/><\/span><br \/>\n<\/label>\n\t<\/p>\n\t<p><label class=\"blog-article__inline-form-field\"><br \/>\n<span class=\"blog-article__inline-form-label\">E-mail<\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"article-form-email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email blog-article__inline-form-input\" autocomplete=\"email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"jankowalski@xyz.com\" value=\"\" type=\"email\" name=\"article-form-email\" \/><\/span><br \/>\n<\/label>\n\t<\/p>\n<\/div>\n<p><label class=\"blog-article__inline-form-field\"><br \/>\n<span class=\"blog-article__inline-form-label\">Message<\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"article-form-message\"><textarea cols=\"40\" rows=\"10\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required blog-article__inline-form-textarea\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Tell us briefly what you need...\" name=\"article-form-message\"><\/textarea><\/span><br \/>\n<\/label>\n<\/p>\n<div class=\"blog-article__newsletter-consent\">\n\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"article-form-privacy\"><span class=\"wpcf7-form-control wpcf7-acceptance\"><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"article-form-privacy\" value=\"1\" class=\"blog-article__newsletter-checkbox\" aria-invalid=\"false\" \/><span class=\"wpcf7-list-item-label\">Zgadzam si\u0119 na kontakt w sprawie przes\u0142anej wiadomo\u015bci i akceptuj\u0119 <a href=\"https:\/\/sawaryn.com\/app\/uploads\/2026\/11\/Sawaryn-i-Partnerzy-Privacy-Policy-v1.0-en-GB.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">polityk\u0119 prywatno\u015bci<\/a>.<\/span><\/label><\/span><\/span><\/span>\n\t<\/p>\n<\/div>\n<p class=\"blog-article__newsletter-submit-row\"><button type=\"submit\" class=\"button blog-article__newsletter-submit\">\r\n    <span class=\"button__label\">Submit<\/span>\r\n            <span class=\"button__icon\" aria-hidden=\"true\">\r\n                <span class=\"icon\" data-icon-size=\"sm\">\n        <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/sawaryn.com\/app\/uploads\/2026\/05\/arrow-01.svg\" alt=\"\" class=\"icon__image\" aria-hidden=\"true\" width=\"11\" height=\"13\">\n    <\/span>\n            <\/span>\r\n    <\/button>\n<\/p><div hidden aria-hidden=\"true\"><label>Leave this field blank<input type=\"text\" name=\"asl_website\" value=\"\" tabindex=\"-1\" autocomplete=\"off\"><\/label><\/div><input type=\"hidden\" name=\"asl_started_at\" value=\"1793981708.14804ff9c13d5eafc3dfc42f3ef3d9e28736bc00a3bed8a03116876f04a9319a\"><div id=\"sawaryn-turnstile-1\" class=\"cf-turnstile\" data-sitekey=\"0x4AAAAAAEM6UD_FpW1mXB2Y\" data-theme=\"light\" data-action=\"contact\"><\/div><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n        <\/div>\r\n    <\/aside>\n<h2>When your 72-hour period starts<\/h2>\n<p>The deadline starts running when the <strong>controller becomes aware of the breach<\/strong> \u2014 not when the provider was attacked, not on the date of its announcement, and not when the provider submitted its own notification.<\/p>\n<p>You become aware of the breach when anyone in your organisation learns about the incident. This may happen through:<\/p>\n<ol>\n<li>An email from a business partner forwarding the provider\u2019s notification to you<\/li>\n<li>An announcement on the provider\u2019s website read by someone on your team<\/li>\n<li>Information in industry media<\/li>\n<li>A direct notification from the provider<\/li>\n<\/ol>\n<p>If your employee read the announcement on the provider\u2019s website on Thursday morning and you learned about it on Friday afternoon \u2014 the deadline starts running on Thursday. That is why the first step is to <strong>establish and record the exact time<\/strong> when anyone in the organisation learned about the incident.<\/p>\n<h3>What to do if the deadline falls on a weekend<\/h3>\n<p>If the 72-hour period expires on Sunday evening, completing the notification by 15:00 on Friday is the only safe organisational decision. The form on biznes.gov.pl is available online, but using a qualified electronic signature or trusted profile requires the availability of a person authorised to represent the organisation.<\/p>\n<h3>Sample timeline<\/h3>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Time<\/th>\n<th style=\"text-align: left;\">Event<\/th>\n<th style=\"text-align: left;\">Your action<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">D-3<\/td>\n<td style=\"text-align: left;\">The provider becomes aware of a breach affecting its systems<\/td>\n<td style=\"text-align: left;\">None \u2014 you do not yet know about the incident<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">D, Friday, 14:00<\/td>\n<td style=\"text-align: left;\">You receive an email from a business partner forwarding the provider\u2019s announcement<\/td>\n<td style=\"text-align: left;\"><strong>The 72-hour period starts.<\/strong> Record the date and time. Ask your team whether anyone knew about it earlier<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">D, Friday, 14:30\u201317:00<\/td>\n<td style=\"text-align: left;\">Secure the account<\/td>\n<td style=\"text-align: left;\">Passwords, 2FA, access permissions, API tokens, bank account number<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">D+1, Saturday\/Monday, by 9:00<\/td>\n<td style=\"text-align: left;\">Identify the individuals affected and assess the risk<\/td>\n<td style=\"text-align: left;\">Count natural persons and review invoice line-item descriptions<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">D+1, by 13:00<\/td>\n<td style=\"text-align: left;\">Draft the notification and enter the incident in the breach register<\/td>\n<td style=\"text-align: left;\">Prepare the form and seek the DPO\u2019s opinion<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">D+1, by 15:00<\/td>\n<td style=\"text-align: left;\">Submit the initial notification<\/td>\n<td style=\"text-align: left;\">biznes.gov.pl, signed by a person authorised to represent the organisation<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">D+1, by the end of the day<\/td>\n<td style=\"text-align: left;\">Communication to business partners<\/td>\n<td style=\"text-align: left;\">Three elements, nothing more<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Securing the account \u2014 before you start counting anything<\/h2>\n<p>The first hour after becoming aware of a breach should be spent securing the account, not analysing the incident. The order matters:<\/p>\n<ol>\n<li><strong>Change the passwords of all users<\/strong> in the provider\u2019s application \u2014 yours, your accounting firm\u2019s, your associates\u2019 and former associates\u2019<\/li>\n<li><strong>Enable two-factor authentication (2FA)<\/strong> on every account that does not yet have it<\/li>\n<li><strong>Review the list of users with access<\/strong> \u2014 does the accounting firm still need access, and do former associates still have active accounts?<\/li>\n<li><strong>Verify the bank account number<\/strong> in the application settings and on issued documents \u2014 compare it with the account number that is actually yours<\/li>\n<li><strong>Generate new API tokens<\/strong> and replace them in all integrations \u2014 including the accounting system, CRM and other tools<\/li>\n<li><strong>Revoke the KSeF integration token<\/strong> if the connection uses a token rather than a certificate \u2014 the process is quick and free of charge<\/li>\n<\/ol>\n<p>If the provider has not confirmed that integration credentials were not downloaded, assume that they were.<\/p>\n<h2>How to count the data subjects \u2014 not the records<\/h2>\n<p>The notification form on biznes.gov.pl asks for the approximate number of <strong>natural persons<\/strong>, the categories of individuals and the categories of data. It does not ask for the number of database records. One person with ten invoices is still one person.<\/p>\n<h3>Whom you need to count<\/h3>\n<p>An inventory of a typical B2B company\u2019s invoicing database reveals categories you may not initially consider:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Category of individuals<\/th>\n<th style=\"text-align: left;\">How they appear in the database<\/th>\n<th style=\"text-align: left;\">What to look out for<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">Natural persons not carrying on a business<\/td>\n<td style=\"text-align: left;\">Rebilling of sports and medical packages \u2014 home address, private email address<\/td>\n<td style=\"text-align: left;\">Review invoice line-item descriptions (see below)<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Sole traders<\/td>\n<td style=\"text-align: left;\">B2B contractors operating as sole traders<\/td>\n<td style=\"text-align: left;\">First name, surname, address, tax identification number, bank account \u2014 the complete data set<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Contact persons at corporate business partners<\/td>\n<td style=\"text-align: left;\">Named email address in a corporate domain, even when the \u201cfirst name&#8221; and \u201csurname&#8221; fields in the records are blank<\/td>\n<td style=\"text-align: left;\"><strong>A named email address is personal data<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Partners in civil-law partnerships and registered partnerships<\/td>\n<td style=\"text-align: left;\">Surnames included in the partnership\u2019s business name<\/td>\n<td style=\"text-align: left;\">The system lists them as business entities, but their records include the partners\u2019 personal data<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Current and former B2B associates<\/td>\n<td style=\"text-align: left;\">Access to the application, billing details<\/td>\n<td style=\"text-align: left;\">Check whether former associates had active accounts<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Recipients and payers identified on documents<\/td>\n<td style=\"text-align: left;\">Third parties entered on invoices as recipients or payers<\/td>\n<td style=\"text-align: left;\">Often omitted from the initial count<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>In the anonymised incident on which this article is based, the inventory identified several dozen natural persons \u2014 in a database that initially appeared to contain \u201ccompanies only&#8221;.<\/p>\n<h2>When an invoice becomes health data<\/h2>\n<p>If you rebill employees or associates for non-salary benefits \u2014 medical packages, sports packages or insurance \u2014 review the <strong>line-item descriptions on issued invoices<\/strong>, not the names of the services in the agreement with the benefits provider.<\/p>\n<p>Article 4(15) GDPR defines data concerning health as personal data related to the physical or mental health of a natural person, including the provision of healthcare services, which reveals information about their health status.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Invoice line-item description<\/th>\n<th style=\"text-align: center;\">Is this health data?<\/th>\n<th style=\"text-align: left;\">Consequence<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">\u201cMedical package&#8221;<\/td>\n<td style=\"text-align: center;\">Probably not<\/td>\n<td style=\"text-align: left;\">The package name alone does not reveal a person\u2019s health status<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">\u201cSports package&#8221;<\/td>\n<td style=\"text-align: center;\">No<\/td>\n<td style=\"text-align: left;\">No connection with healthcare<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">\u201cRehabilitation&#8221;<\/td>\n<td style=\"text-align: center;\">Yes \u2014 it may reveal health information<\/td>\n<td style=\"text-align: left;\">Information about the use of a specific medical service<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">\u201cPerinatal care&#8221;<\/td>\n<td style=\"text-align: center;\">Yes \u2014 it reveals health information<\/td>\n<td style=\"text-align: left;\">Indicates health status and personal circumstances<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">\u201cCardiology consultation&#8221;<\/td>\n<td style=\"text-align: center;\">Yes \u2014 it reveals health information<\/td>\n<td style=\"text-align: left;\">A specific medical specialty = information about health status<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>If the leak included invoices naming specific medical services, you are dealing with special categories of data under Article 9 GDPR. This will usually determine that the individuals must be notified under Article 34.<\/p>\n<p><strong>Note:<\/strong> there is no official position from the UODO or EDPB establishing an unequivocal rule that \u201cmedical package = special category of data&#8221;. The classification depends on the content and context of the information. A safe rule is that the more detailed the line-item description, the greater the risk that it falls within Article 9.<\/p>\n<h2>Initial notification \u2014 how to meet the deadline when you do not know the full extent of the breach<\/h2>\n<p>The provider announces that it will launch a dashboard showing what data was downloaded from your account, from what periods, and how many records were taken. The dashboard is not available during the first few days. Waiting for it means waiting until your notification is late.<\/p>\n<p><strong>Article 33(4) GDPR<\/strong> expressly permits information to be provided in phases: \u201cWhere, and in so far as, it is not possible to provide the information at the same time, the information may be provided in phases without undue further delay.&#8221;<\/p>\n<p>The alternative to an initial notification is not a more precise notification. It is a late notification.<\/p>\n<h3>How to complete the initial notification<\/h3>\n<ol>\n<li>Go to <a href=\"https:\/\/www.biznes.gov.pl\/pl\/portal\/ou889\" target=\"_blank\" rel=\"noopener\">biznes.gov.pl<\/a> and select the online service for reporting a personal data breach<\/li>\n<li>In field 1.A, select the notification type: <strong>initial<\/strong><\/li>\n<li>Enter approximate figures and ranges \u2014 the form allows this<\/li>\n<li>For information you do not yet know, clearly mark it as: <strong>\u201cunder investigation&#8221;<\/strong><\/li>\n<li>Sign the notification using a qualified electronic signature or trusted profile \u2014 it must be signed by the <strong>body authorised to represent<\/strong> the controller (the management board), not the DPO or an attorney-in-fact (unless they have the appropriate authority)<\/li>\n<li>Keep the submission confirmation<\/li>\n<\/ol>\n<p>EDPB Guidelines 9\/2022 (<a href=\"https:\/\/uodo.gov.pl\/file\/5313\" target=\"_blank\" rel=\"noopener\">published by the UODO<\/a>) describe three forms of notification: complete, initial and supplementary. An initial notification is intended to ensure that the deadline is met. It does not release you from the obligation to provide additional information once it becomes available.<\/p>\n<h3>Supplementary notification<\/h3>\n<p>After receiving details from the provider \u2014 usually several days after the incident \u2014 you submit a supplementary notification using the same form and selecting the \u201csupplementary\/amending&#8221; option. You add categories omitted earlier: recipients and payers named in the documents, the exact number of individuals and the period covered by the data.<\/p>\n<h2>Risk assessment and the management board\u2019s decision<\/h2>\n<p>Before submitting the notification, conduct a risk assessment and seek the opinion of the <a href=\"https:\/\/sawaryn.com\/en\/publikacje\/data-protection-officer-key-information\/\">data protection officer<\/a> (if one has been appointed). The management board\u2019s decision must leave an audit trail \u2014 minutes, a memo or an email with the date and time.<\/p>\n<p>In the event of an invoicing data leak, the main risk is not the takeover of an account in the application. It is <strong>bank account substitution fraud<\/strong>.<\/p>\n<p>An attacker who has downloaded the invoicing database knows:<\/p>\n<ol>\n<li>The parties to each transaction \u2014 who invoices whom<\/li>\n<li>The amounts \u2014 the value of each payment<\/li>\n<li>Payment status \u2014 which invoices remain unpaid<\/li>\n<li>Bank account numbers \u2014 where previous payments were sent<\/li>\n<\/ol>\n<p>This makes it possible to prepare a message indistinguishable from a genuine one: \u201cPlease be advised that our bank account number has changed. Please pay invoice no. X for the amount of Y into the new account Z.&#8221; An employee in the business partner\u2019s finance department has no reason to be suspicious.<\/p>\n<p>Organised criminal groups specialising in this type of fraud operate in Poland. In disclosed cases, losses exceeded PLN 4 million, while assets worth more than PLN 21 million were secured (<a href=\"https:\/\/cbzc.policja.gov.pl\/bzc\/aktualnosci\/618,17-podejrzanych-za-oszustwa-typu-Business-Email-Compromise-BEC-w-rekach-policjan.html\" target=\"_blank\" rel=\"noopener\">Central Bureau for Combating Cybercrime, 16.06.2025<\/a>; <a href=\"https:\/\/cbzc.policja.gov.pl\/bzc\/aktualnosci\/1007,Grupa-przestepcza-odpowiedzialna-za-oszustwa-typu-BEC-w-rekach-CBZC.html\" target=\"_blank\" rel=\"noopener\">Central Bureau for Combating Cybercrime, 18.08.2026<\/a>).<\/p>\n<p>Basing the risk assessment solely on the provider\u2019s assurance that \u201cpasswords were encrypted&#8221; is insufficient. Passwords are one issue. Invoicing data \u2014 numbers, amounts, bank accounts and addresses \u2014 is another.<\/p>\n<h2>Communication to business partners \u2014 three elements and nothing more<\/h2>\n<p>Article 34(1) GDPR requires data subjects to be notified where the breach \u201cis likely to result in a high risk to the rights and freedoms of natural persons&#8221;. The notification must be written in clear and plain language.<\/p>\n<p>Article 34(2) GDPR (in conjunction with Article 33(3)(b), (c) and (d)) requires the communication to contain at least: a description of the nature of the breach, the DPO\u2019s contact details, a description of the likely consequences and a description of the remedial measures taken. The <a href=\"https:\/\/uodo.gov.pl\/pl\/file\/4955\" target=\"_blank\" rel=\"noopener\">UODO also points out<\/a> the need to provide practical recommendations to individuals.<\/p>\n<p>In the context of an invoicing data leak, the communication should contain three elements and nothing more:<\/p>\n<ol>\n<li><strong>The incident occurred at the provider<\/strong> \u2014 a brief description of the incident, without technical details<\/li>\n<li><strong>Our bank account number has not changed<\/strong> \u2014 this is the most important operational information<\/li>\n<li><strong>Confirm every request to change the bank account by telephone<\/strong> using a previously known number \u2014 a specific protective recommendation<\/li>\n<\/ol>\n<p>Keep a copy of the communication, the date it was sent and the number of recipients. Attach this information to the supplementary notification.<\/p>\n<p>The UODO has not published an official template for a communication under Article 34 GDPR \u2014 only materials describing the required elements are available.<\/p>\n<h2>Breach register \u2014 even if you do not submit a notification<\/h2>\n<p>Article 33(5) GDPR requires <a href=\"https:\/\/sawaryn.com\/en\/publikacje\/documenting-reporting-personal-data-breaches\/\">the documentation of <strong>every<\/strong> personal data breach<\/a> \u2014 its circumstances, consequences and the remedial action taken. This obligation applies regardless of whether you decide to notify the UODO.<\/p>\n<p>If you have decided that there is no risk and you will not submit a notification \u2014 the reasons for that assessment must be included in the breach register entry. Failure to make an entry after deciding \u201cwe will not report it&#8221; constitutes a separate basis for finding an infringement during a UODO inspection.<\/p>\n<p>The breach register entry should include:<\/p>\n<ol>\n<li>The date and time when you became aware of the breach<\/li>\n<li>A description of the incident and its circumstances<\/li>\n<li>The categories of individuals and data affected by the breach<\/li>\n<li>The risk assessment and its reasoning<\/li>\n<li>The decision whether or not to report the breach, together with the reasons<\/li>\n<li>A description of the remedial action taken<\/li>\n<li>The date of notification to the UODO (if applicable) and the date of communication to the individuals<\/li>\n<\/ol>\n<h2>Requesting information from the SaaS provider<\/h2>\n<p>Article 28(3)(f) GDPR provides a legal basis for requesting specific information from the provider. The processor is required to assist the controller in fulfilling its obligations under Articles 32\u201336 GDPR.<\/p>\n<p>Send the provider a single letter through an official channel \u2014 not through a user support ticket, but in your capacity as the data controller. Refer to Article 28(3)(f) and ask:<\/p>\n<ol>\n<li>Whether your account is among those affected by a complete data download<\/li>\n<li>What data was downloaded and what period it covered<\/li>\n<li>When a dashboard or report containing detailed information will be available<\/li>\n<li>Whether the KSeF credentials for your account were downloaded<\/li>\n<\/ol>\n<p>Keep the correspondence. The provider\u2019s response (or lack of response) will affect your assessment of your future relationship and any potential claims.<\/p>\n<h2>KSeF and the risk of bank account substitution<\/h2>\n<p>KSeF standardises the handling of the invoice itself \u2014 a centralised record and a QR code for verification may reduce the risk of a document being altered after it is issued. However, KSeF <strong>is not a bank account verification mechanism<\/strong>. The available materials from the Ministry of Finance do not describe any function for blocking bank account changes or comparing an account with the register of taxpayers (<a href=\"https:\/\/ksef.podatki.gov.pl\/informacje-ogolne-ksef-20\/tryb-awaryjny\/\" target=\"_blank\" rel=\"noopener\">ksef.podatki.gov.pl<\/a>).<\/p>\n<p>Additional gaps:<\/p>\n<ol>\n<li>Invoices may be issued outside KSeF in offline and emergency modes<\/li>\n<li>The obligation to include the KSeF number with payments has been postponed until the end of 2026<\/li>\n<li>A payment instruction sent outside the system is not subject to any KSeF verification<\/li>\n<\/ol>\n<p>Implementing KSeF does not eliminate the need to verify bank account changes independently. Introduce a standing rule: confirm every change to a supplier\u2019s bank account number by telephone using a previously known number and check it against the VAT taxpayer register.<\/p>\n<h2>Concurrent obligations \u2014 the GDPR and the National Cybersecurity System Act<\/h2>\n<p>The same event may require two separate notifications:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Obligation<\/th>\n<th style=\"text-align: left;\">Legal basis<\/th>\n<th style=\"text-align: left;\">Recipient<\/th>\n<th style=\"text-align: left;\">Deadline<\/th>\n<th style=\"text-align: left;\">Who submits the notification<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">Personal data breach notification<\/td>\n<td style=\"text-align: left;\">Article 33(1) GDPR<\/td>\n<td style=\"text-align: left;\">President of the UODO (biznes.gov.pl)<\/td>\n<td style=\"text-align: left;\">72 hours after becoming aware of the breach<\/td>\n<td style=\"text-align: left;\">Data controller<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Cybersecurity incident notification<\/td>\n<td style=\"text-align: left;\">National Cybersecurity System Act (<a href=\"https:\/\/isap.sejm.gov.pl\/isap.nsf\/DocDetails.xsp?id=WDU20260000020\" target=\"_blank\" rel=\"noopener\">Journal of Laws of 2026, item 20<\/a>, amended by <a href=\"https:\/\/isap.sejm.gov.pl\/isap.nsf\/DocDetails.xsp?id=WDU20260000252\" target=\"_blank\" rel=\"noopener\">Journal of Laws of 2026, item 252<\/a>)<\/td>\n<td style=\"text-align: left;\">Competent CSIRT (incydent.cert.pl)<\/td>\n<td style=\"text-align: left;\">24 hours after detection<\/td>\n<td style=\"text-align: left;\">An essential or important entity within the meaning of the National Cybersecurity System Act<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Neither notification replaces the other. The fact that the provider reported the incident to CERT Polska does not release you from your obligation \u2014 if your company is an entity covered by the National Cybersecurity System Act.<\/p>\n<p>Is your company subject to the National Cybersecurity System Act? This requires an analysis of the full text of the Act and its transitional provisions. If you operate in the energy, transport, health, digital infrastructure, finance, digital services, food or waste sector and are not a micro-enterprise \u2014 check this before an incident, not during one.<\/p>\n<h2>First 72 hours playbook \u2014 checklist<\/h2>\n<p>Prepare these documents <strong>before<\/strong> an incident occurs. There will be no time to create them during an incident.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">No.<\/th>\n<th style=\"text-align: left;\">Action<\/th>\n<th style=\"text-align: left;\">Deadline<\/th>\n<th style=\"text-align: left;\">Responsible party<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">1<\/td>\n<td style=\"text-align: left;\">Establish and record the exact time when you became aware of the breach (date and time). Ask your team whether anyone knew about it earlier<\/td>\n<td style=\"text-align: left;\">D, immediately<\/td>\n<td style=\"text-align: left;\">Management board \/ DPO<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">2<\/td>\n<td style=\"text-align: left;\">Secure the account: passwords, 2FA, access permissions, API tokens, bank account number, KSeF token<\/td>\n<td style=\"text-align: left;\">D, first hour<\/td>\n<td style=\"text-align: left;\">IT \/ Admin<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">3<\/td>\n<td style=\"text-align: left;\">Send a letter to the provider referring to Article 28(3)(f) GDPR<\/td>\n<td style=\"text-align: left;\">D, the same day<\/td>\n<td style=\"text-align: left;\">Lawyer \/ DPO<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">4<\/td>\n<td style=\"text-align: left;\">Count natural persons by category (not records)<\/td>\n<td style=\"text-align: left;\">D+1, by 9:00<\/td>\n<td style=\"text-align: left;\">Finance \/ Admin<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">5<\/td>\n<td style=\"text-align: left;\">Review the line-item descriptions on invoices for non-salary benefits<\/td>\n<td style=\"text-align: left;\">D+1, by 9:00<\/td>\n<td style=\"text-align: left;\">Finance \/ HR<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">6<\/td>\n<td style=\"text-align: left;\">Conduct a risk assessment, seek the DPO\u2019s opinion and document the management board\u2019s decision<\/td>\n<td style=\"text-align: left;\">D+1, 9:00\u20139:30<\/td>\n<td style=\"text-align: left;\">Management board + DPO<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">7<\/td>\n<td style=\"text-align: left;\">Prepare a draft initial notification<\/td>\n<td style=\"text-align: left;\">D+1, by 13:00<\/td>\n<td style=\"text-align: left;\">Lawyer \/ DPO<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">8<\/td>\n<td style=\"text-align: left;\">Submit the notification on biznes.gov.pl (signed by a person authorised to represent the organisation)<\/td>\n<td style=\"text-align: left;\">D+1, by 15:00<\/td>\n<td style=\"text-align: left;\">Management board<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">9<\/td>\n<td style=\"text-align: left;\">Make an entry in the breach register<\/td>\n<td style=\"text-align: left;\">D+1, by the end of the day<\/td>\n<td style=\"text-align: left;\">DPO<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">10<\/td>\n<td style=\"text-align: left;\">Send the communication to business partners (three elements)<\/td>\n<td style=\"text-align: left;\">D+1, by the end of the day<\/td>\n<td style=\"text-align: left;\">Management board \/ Marketing<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">11<\/td>\n<td style=\"text-align: left;\">Schedule the supplementary notification after receiving data from the provider<\/td>\n<td style=\"text-align: left;\">D+2<\/td>\n<td style=\"text-align: left;\">DPO<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">12<\/td>\n<td style=\"text-align: left;\"><a href=\"https:\/\/sawaryn.com\/en\/publikacje\/data-protection-training-at-work\/\">Train the finance team<\/a> on the bank account substitution fraud scenario<\/td>\n<td style=\"text-align: left;\">One week after the incident<\/td>\n<td style=\"text-align: left;\">Finance + Lawyer<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Pitfalls that only become apparent during an incident<\/h2>\n<ol>\n<li><strong>Waiting for the provider\u2019s dashboard<\/strong> \u2014 a tool showing the extent of the leak from your account may not be launched until several days later, after the notification deadline has passed. Do not wait.<\/li>\n<li><strong>Counting records instead of individuals<\/strong> \u2014 the form asks about individuals. One person with ten invoices is still one person.<\/li>\n<li><strong>Omitting named email addresses<\/strong> \u2014 jan.kowalski@firma.pl is personal data, even when the \u201cfirst name&#8221; and \u201csurname&#8221; fields in the records are blank.<\/li>\n<li><strong>Treating partnerships solely as entities<\/strong> \u2014 civil-law partnerships and registered partnerships add their partners\u2019 personal data to the data set.<\/li>\n<li><strong>Basing the assessment on \u201cencrypted passwords&#8221;<\/strong> \u2014 in an invoicing data leak, the risk is not account takeover but payment fraud.<\/li>\n<li><strong>Failing to make a register entry after deciding \u201cwe will not report it&#8221;<\/strong> \u2014 this constitutes a separate basis for finding an infringement during an inspection.<\/li>\n<li><strong>The work exceeding the scope of a legal services subscription<\/strong> \u2014 handling a single incident will realistically exceed standard hourly limits. Be prepared for hourly billing.<\/li>\n<\/ol>\n<h2>How we can help you<\/h2>\n<p>Handling a personal data breach within 72 hours requires simultaneous action in three areas: legal, organisational and communications. Most companies lack the internal resources to manage this on their own \u2014 especially during their first incident.<\/p>\n<p>We support B2B companies and technology firms in two ways:<\/p>\n<p><strong>Reactive support \u2014 when an incident is already in progress:<\/strong><\/p>\n<ol>\n<li>Determining when you became aware of the breach and verifying the deadline<\/li>\n<li>Risk assessment and legal opinion for the management board<\/li>\n<li>Preparing and submitting an initial notification to the UODO<\/li>\n<li>Preparing the communication to data subjects<\/li>\n<li>Making an entry in the breach register<\/li>\n<li>Submitting a supplementary notification after obtaining data from the provider<\/li>\n<li>Sending a letter to the provider under Article 28(3)(f) GDPR<\/li>\n<\/ol>\n<p><strong>Preventive support \u2014 before an incident occurs:<\/strong><\/p>\n<ol>\n<li>A first 72 hours playbook with document templates<\/li>\n<li>Review of data processing agreements with SaaS providers \u2014 deadlines, scope of information and contact channels<\/li>\n<li>A procedure for verifying changes to bank account numbers<\/li>\n<li>Training for finance and sales teams on the bank account substitution fraud scenario<\/li>\n<li>Review and update of the breach register<\/li>\n<\/ol>\n<p><a href=\"https:\/\/sawaryn.com\/en\/contact\/\">Contact us<\/a><\/p>\n<h2>Data leak at a SaaS provider \u2014 summary and next steps<\/h2>\n<p>A SaaS provider\u2019s notification to the UODO does not replace your notification. The 72-hour period starts when anyone in your organisation learns about the incident. An initial notification containing approximate figures is better than a late notification containing exact figures. You must maintain a breach register even if you determine that there is no risk.<\/p>\n<p>The greatest threat after an invoicing data leak is not a fine from the UODO. It is a payment made to a substituted bank account \u2014 because the attacker knows your business partners, the amounts and which invoices remain unpaid.<\/p>\n<p>Prepare a playbook before you need one. And if an incident is already in progress \u2014 <a href=\"https:\/\/sawaryn.com\/en\/contact\/\">contact us<\/a>. We will help you submit the notification on time and protect your company against financial and legal consequences.<\/p>\n<h2>Frequently asked questions<\/h2>\n<p><strong>The provider has already reported the breach to the UODO \u2014 why should I report the same thing again?<\/strong> It is not \u201cthe same thing&#8221;. The provider reported the breach as the controller of its own data \u2014 the service\u2019s user accounts. Your business partners\u2019 details in the records and the contents of invoices have a different controller: you. Article 33(1) GDPR places the notification obligation on the controller, while Article 33(2) requires the processor to notify the controller \u2014 not the authority. The processor\u2019s notification triggers your obligation but does not fulfil it.<\/p>\n<p><strong>Exactly when does my 72-hour period start?<\/strong> When the controller becomes aware of the breach \u2014 that is, when anyone in your organisation learns about the incident. Not on the date of the attack on the provider and not on the date of its announcement. If your employee read an announcement on the provider\u2019s website before you did \u2014 the deadline starts running from that earlier time. That is why the first step is to ask your team and record the exact date and time.<\/p>\n<p><strong>What should I do if the deadline is approaching and the provider has not yet told me the extent of the leak from my account?<\/strong> Submit an initial notification. Article 33(4) GDPR allows information to be provided in phases \u2014 enter approximate figures, mark items as \u201cunder investigation&#8221; and provide additional information once you obtain it. The form on biznes.gov.pl includes the \u201cinitial&#8221; notification type specifically for situations like this. Waiting for the provider\u2019s dashboard means waiting until your notification is late.<\/p>\n<p><strong>Do I need to notify all business partners, or is an announcement on the website enough?<\/strong> Article 34(1) GDPR requires individuals to be notified when the breach is likely to result in a high risk. In the event of an invoicing data leak \u2014 where the attacker knows the parties to transactions, the amounts and which invoices remain unpaid \u2014 the risk of bank account substitution fraud is real. Article 34(3)(c) permits a public communication instead of individual notifications where contacting each person individually would involve disproportionate effort. With several dozen individuals, individual notification is feasible and safer.<\/p>\n<p><strong>I rebill employees for a medical package \u2014 does this mean health data has been leaked?<\/strong> It depends on the invoice line-item descriptions. The description \u201cmedical package&#8221; alone is unlikely to reveal a person\u2019s health status. A description such as \u201crehabilitation&#8221; or \u201ccardiology consultation&#8221; does, because it indicates the use of a specific healthcare service. Review the line-item descriptions on issued documents, not the names of the services in the agreement with the benefits provider. If you find the names of specific services \u2014 this increases the assessed risk and will usually determine that the individuals must be notified under Article 34.<\/p>\n<p><strong>If I determine that there is no risk and do not report the breach, do I still need to document anything?<\/strong> Yes. Article 33(5) GDPR requires every breach to be documented \u2014 including its circumstances, consequences and the remedial action taken. This obligation applies regardless of whether you decide to submit a notification. If you have decided that there is no risk \u2014 the reasons for that assessment must be included in the breach register entry. Failure to make an entry constitutes a separate basis for finding an infringement during a UODO inspection.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learn when the 72-hour GDPR reporting period starts after a SaaS provider breach, how to assess affected data and when to notify Poland&#8217;s UODO.<\/p>\n","protected":false},"author":13,"featured_media":3597,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":"","sip_alt_url":"","sip_en_pl_url":"","sip_pair_uuid":"7d05fcd2-1dc5-44ce-a320-b51ba86fe192","sip_pair_state":"draft_ready"},"categories":[1578],"tags":[1533,1446,1531,1546,1534],"specialization":[1215],"practice_area":[],"class_list":["post-4938","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gdpr","tag-data-breach","tag-gdpr","tag-personal-data-protection","tag-risk-assessment","tag-uodo-en","specialization-gdpr"],"acf":[],"_links":{"self":[{"href":"https:\/\/sawaryn.com\/en\/wp-json\/wp\/v2\/posts\/4938","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sawaryn.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sawaryn.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sawaryn.com\/en\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/sawaryn.com\/en\/wp-json\/wp\/v2\/comments?post=4938"}],"version-history":[{"count":5,"href":"https:\/\/sawaryn.com\/en\/wp-json\/wp\/v2\/posts\/4938\/revisions"}],"predecessor-version":[{"id":4952,"href":"https:\/\/sawaryn.com\/en\/wp-json\/wp\/v2\/posts\/4938\/revisions\/4952"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sawaryn.com\/en\/wp-json\/wp\/v2\/media\/3597"}],"wp:attachment":[{"href":"https:\/\/sawaryn.com\/en\/wp-json\/wp\/v2\/media?parent=4938"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sawaryn.com\/en\/wp-json\/wp\/v2\/categories?post=4938"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sawaryn.com\/en\/wp-json\/wp\/v2\/tags?post=4938"},{"taxonomy":"specialization","embeddable":true,"href":"https:\/\/sawaryn.com\/en\/wp-json\/wp\/v2\/specialization?post=4938"},{"taxonomy":"practice_area","embeddable":true,"href":"https:\/\/sawaryn.com\/en\/wp-json\/wp\/v2\/practice_area?post=4938"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}