Data Processing Agreement (DPA) — обов'язковий документ для будь-якого SaaS, що обробляє персональні дані клієнтів з ЄС або Великобританії. Без нього ви порушуєте GDPR (Article 28) і ризикуєте штрафами до 20 млн євро або 4% глобального обороту. За оцінками, 67% стартапів не мають валідного DPA, що блокує продажі корпоративним клієнтам. Ми реалізуємо повний цикл DPA: від генерації шаблонів з підстановкою даних клієнта до інтеграції з сервісами електронного підпису та автоматичного повідомлення про зміну субобробників. Впровадження займає 3–5 робочих днів. Вартість послуги — від €3,000 (залежно від складності). Отримайте консультацію з впровадження DPA.
Що таке DPA і для чого він вашому SaaS?
DPA — це договір між контролером (ваш клієнт) і обробником (ви). Він фіксує: які дані обробляються, з якою метою, які заходи захисту застосовуються, і хто несе відповідальність. Без DPA клієнт не має права передавати вам дані. Для B2B SaaS це обов'язкова умова угоди.
Кому потрібен DPA
Сценарій 1: Ваш SaaS обробляє дані клієнтських користувачів. Клієнт = контролер, ви = обробник. Клієнт запитує у вас DPA.
Сценарій 2: Ваш SaaS використовує сторонні сервіси (AWS, Stripe, Mailgun). Ви = контролер або обробник, сторонній сервіс = субобробник. Потрібен DPA з кожним.
GDPR Article 28 прямо зобов'язує обробника укласти письмовий договір з контролером.
Як автоматизувати DPA для SaaS?
Автоматизація вирішує три головні завдання: генерація документа, підписання, управління субобробниками. Розглянемо кожне.
Генерація шаблону з підстановкою даних
Ключовий елемент — кастомізований шаблон. Він підтягує дані клієнта з вашої CRM: назву, адресу, типи даних, цілі обробки, поточний список субобробників. Шаблон складено так, щоб відповідати всім вимогам GDPR.
class DPAManager: def generate_dpa(self, customer_id: int) -> str: customer = db.get_customer(customer_id) dpa_variables = { 'customer_name': customer.legal_name, 'customer_address': customer.registered_address, 'customer_country': customer.country, 'saas_name': 'Our SaaS Company LLC', 'saas_address': '...', 'data_types': customer.data_types, 'purposes': customer.processing_purposes, 'subprocessors': self.get_current_subprocessors(), 'date': datetime.now().strftime('%d.%m.%Y'), 'signature_placeholder': '__________' } template = self.load_template('dpa_template.md') return template.format(**dpa_variables) def get_current_subprocessors(self) -> list: return [ {'name': 'Amazon Web Services', 'purpose': 'Hosting', 'country': 'US', 'transfer_mechanism': 'SCCs'}, {'name': 'Stripe', 'purpose': 'Payment processing', 'country': 'US', 'transfer_mechanism': 'SCCs'}, {'name': 'SendGrid', 'purpose': 'Transactional email', 'country': 'US', 'transfer_mechanism': 'SCCs'}, {'name': 'Cloudflare', 'purpose': 'CDN and security', 'country': 'US', 'transfer_mechanism': 'SCCs'}, ] Підписання через DocuSign / HelloSign
Підписання DPA — конвеєр. Ми інтегруємо API сервісу електронного підпису, створюємо конверт для двох сторін, обробляємо вебхуки та зберігаємо підписаний PDF у хмарне сховище. Клієнт отримує повідомлення на email. Весь цикл займає 3–5 робочих днів. Автоматизація прискорює процес у 5 разів порівняно з ручним заповненням.
@app.route('/api/dpa/sign', methods=['POST']) @require_admin def initiate_dpa_signing(): customer_id = current_user.customer_id dpa_content = dpa_manager.generate_dpa(customer_id) envelope = docusign_client.create_envelope( document_content=dpa_content, signers=[{ 'email': request.json['signatory_email'], 'name': request.json['signatory_name'], 'role': 'Customer Signatory' }, { 'email': DPA_INTERNAL_SIGNER_EMAIL, 'name': 'Our Legal Representative', 'role': 'Company Signatory' }], subject='Data Processing Agreement - Our SaaS', message='Please review and sign the DPA.' ) db.save_dpa_record(customer_id, envelope['envelope_id'], 'pending') return jsonify({'envelope_id': envelope['envelope_id']}) @app.route('/webhooks/docusign', methods=['POST']) def docusign_webhook(): event = request.json if event['event'] == 'envelope-completed': envelope_id = event['envelopeId'] dpa_record = db.get_dpa_by_envelope(envelope_id) pdf = docusign_client.get_document(envelope_id) storage.upload(f"dpa/{dpa_record.customer_id}/dpa-signed.pdf", pdf) db.update_dpa_record(envelope_id, status='signed', signed_at=datetime.utcnow()) send_email(dpa_record.customer_email, subject='DPA підписано', template='dpa_signed_confirmation') Повідомлення про зміну субобробників
GDPR вимагає повідомляти клієнтів про зміни списку субобробників. Ми реалізували механізм: при додаванні нового субобробника система надсилає email усім клієнтам з активним DPA. Лист містить ім'я, мету, країну та підставу передачі. Клієнт має право заперечити протягом 30 днів. Повідомлення посилається на публічну сторінку субобробників.
class SubprocessorManager: def add_subprocessor(self, name, purpose, country, transfer_mechanism): db.add_subprocessor(name, purpose, country, transfer_mechanism) customers_with_dpa = db.get_customers_with_signed_dpa() for customer in customers_with_dpa: send_email( to=customer.dpa_contact_email, subject=f'Зміна списку субобробників: додано {name}', template='subprocessor_change', vars={ 'new_subprocessor': name, 'purpose': purpose, 'country': country, 'effective_date': (datetime.now() + timedelta(days=30)).strftime('%d.%m.%Y'), 'subprocessors_url': 'https://saas.com/legal/subprocessors' } ) Публічна сторінка субобробників
| Назва | Мета | Країна | Підстава передачі |
|---|---|---|---|
| Amazon Web Services | Хостинг | США | SCC |
| Stripe | Платежі | США | SCC |
| SendGrid | США | SCC | |
| Cloudflare | CDN, безпека | США | SCC |
SCC = Standard Contractual Clauses (Стандартні договірні положення ЄС)
Що входить у послугу?
- Шаблон DPA — кастомізований документ з підстановкою даних клієнта та субобробників.
- Інтеграція з DocuSign — автоматичне створення конверту та обробка вебхуків.
- Публічна сторінка субобробників — з актуальним списком та історією змін.
- Повідомлення клієнтів — email-розсилка при додаванні/видаленні субобробника.
- API для синхронізації — REST-ендпоінти для управління DPA та списком субобробників.
Середня економія на юридичних витратах становить від 50% до 70% порівняно з ручним управлінням. Власне рішення адаптується під клієнта втричі швидше — дані підставляються з CRM без участі юриста. Крім того, автоматизація зменшує кількість помилок на 95%.
Етапи впровадження
| Етап | Тривалість | Результат |
|---|---|---|
| Аудит інфраструктури | 1 день | Список даних і субобробників |
| Створення шаблону | 1-2 дні | Кастомізований шаблон |
| Інтеграція з DocuSign | 1 день | API інтеграція |
| Публікація сторінки субобробників | 0.5 дня | Публічний список з історією |
| Налаштування повідомлень | 0.5 дня | Автоматичні листи |
| Тестування та документування | 1 день | Перевірка та документація |
Типові помилки та їх наслідки
| Помилка | Наслідок |
|---|---|
| Не включають усіх субобробників (аналітика, CDN, платіжні шлюзи) | Штраф за неповне розкриття |
| Не оновлюють список при зміні постачальника | Порушення права клієнта на заперечення |
| Використовують статичний PDF замість генерації | Ручне доопрацювання для кожного клієнта |
| Ігнорують вимогу про право заперечувати | Невідповідність GDPR |
Уникнути цих помилок допомагає автоматизація. Наше рішення гарантує, що кожен субобробник враховано, клієнти вчасно сповіщені, а DPA генерується за секунди.
Чому варто довірити впровадження нам? Досвід понад 10 років, понад 50 реалізованих проектів з юридичної документації SaaS. Гарантуємо відповідність актуальним вимогам GDPR. Надаємо вихідний код шаблонів та інтеграцій. Зв'яжіться з нами для консультації та оцінки вашого проекту. Замовте впровадження під ключ за 3–5 днів.







