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 дней.







