Data Processing Agreement (DPA) — обязательный документ для любого SaaS, обрабатывающего персональные данные клиентов из ЕС или Великобритании. Без него вы нарушаете GDPR (ст. 28) и рискуете штрафами до 20 млн евро или 4% глобального оборота. По оценкам, 67% стартапов не имеют валидного DPA, что блокирует продажи корпоративным клиентам. Мы реализуем полный цикл DPA: от генерации шаблонов с подстановкой данных клиента до интеграции с сервисами электронной подписи и автоматического уведомления об изменении субобработчиков. Внедрение занимает 3–5 рабочих дней. Получите консультацию по внедрению 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 рабочих дней.
@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 без участия юриста.
Этапы внедрения
| Этап | Длительность | Результат |
|---|---|---|
| Аудит инфраструктуры | 1 день | Список данных и субобработчиков |
| Создание шаблона | 1-2 дня | Кастомизированный шаблон |
| Интеграция с DocuSign | 1 день | API интеграция |
| Публикация страницы субобработчиков | 0.5 дня | Публичный список с историей |
| Настройка уведомлений | 0.5 дня | Автоматические письма |
| Тестирование и документирование | 1 день | Проверка и документация |
Типичные ошибки и их последствия
| Ошибка | Последствие |
|---|---|
| Не включают всех субобработчиков (аналитика, CDN, платёжные шлюзы) | Штраф за неполное раскрытие |
| Не обновляют список при смене поставщика | Нарушение права клиента на возражение |
| Используют статический PDF вместо генерации | Ручная доработка для каждого клиента |
| Игнорируют требование о праве возражать | Несоответствие GDPR |
Избежать этих ошибок помогает автоматизация. Наше решение гарантирует, что каждый субобработчик учтён, клиенты вовремя оповещены, а DPA генерируется за секунды.
Почему стоит доверить внедрение нам? Опыт 10+ лет, более 50 реализованных проектов по юридической документации SaaS. Гарантируем соответствие актуальным требованиям GDPR. Предоставляем исходный код шаблонов и интеграций. Свяжитесь с нами для консультации и оценки вашего проекта. Закажите внедрение под ключ за 3–5 дней.







