PRD — Zustimm: Mobile Document Signing Service
Вердикт: GO Продукт: Zustimm (от нем. Zustimmung — согласие) Стадия: Pre-MVP
1. Executive Summary
Zustimm — mobile-first сервис юридически значимого подписания документов, построенный на принципе минимального сбора данных. Компания загружает PDF, отмечает место подписи, а пользователь подтверждает ознакомление касанием (Face ID / Touch ID / PIN) прямо в мобильном приложении. Система вшивает визуальную подпись в PDF и генерирует криптографический след для проверки подлинности. Ни одна подпись не хранится на сервере — только на устройстве пользователя. Рынок: DACH + EU, сегменты HR, Legal/Compliance, Datenschutz-чувствительные организации.
2. Problem Statement
Сегодня процесс «ознакомлен и согласен» в европейских компаниях: 1. HR отправляет PDF по email 2. Сотрудник распечатывает (2-20 страниц) 3. Подписывает ручкой 4. Сканирует (телефоном — низкое качество) 5. Отправляет скан обратно 6. HR проверяет читаемость, часто запрашивает повтор 7. Сохраняет в папку на сервере
Болевые точки: потеря документов в email, низкое качество сканов (юридические риски), невозможность доказать КТО именно подписал, процесс 10-30 минут, нет аудит-трейла.
Регуляторный контекст: eIDAS (EU 910/2014), GDPR/DSGVO (минимизация данных Art. 5(1)(c), право на удаление Art. 17), BDSG (neu), GoBD.
3. Solution Overview
Принципы:
- Privacy-by-Design: подпись пользователя — только на устройстве. Сервер никогда не видит приватный ключ.
- Mobile-First: подписание с телефона. Загрузка и управление — через веб.
- Визуальная + криптографическая подпись: PDF содержит и графическую подпись, и встроенный электронный след (PAdES).
- eIDAS AES (Advanced Electronic Signature): уникальная связь с подписантом, обнаружение изменений.
Поток:
Company Upload (Web) → User Notification (Push/SMS) → Biometric Confirm (Face ID/Touch ID/PIN) → Server Processes (Embed Signature + Trail) → Company Receives (Signed PDF + Audit)
4. User Personas
| Персона | Роль | Ключевая боль |
|---|---|---|
| Лена | HR-Manager, Mittelstand 200 сотр. | Тонет в email, не может отследить статусы |
| Маркус | Compliance Officer, Konzern 5000+ | Не может доказать аудитору факт подписания |
| Аня | Сотрудник на удалёнке | Нет принтера, процесс занимает час |
5. Functional Requirements (по модулям)
Module 1: Document Upload & Preparation (Web)
- P0: Загрузка PDF (до 20 MB, 50 стр.), drag-and-drop места подписи, предпросмотр, список подписантов (ручной + CSV), панель статусов, скачивание PDF + аудит-трейла
- P1: Множественные места подписи, дедлайн, текст уведомления, авто-напоминания
- P2: Шаблоны, последовательное подписание
Module 2: Mobile Signing App (iOS + Android)
- P0: Регистрация + генерация ключевой пары (device-side), создание визуальной подписи (рисование), хранение в Secure Enclave/Keystore, push-уведомления, просмотр PDF, Face ID/Touch ID/PIN, локальное подписание хеша приватным ключом
- P1: История документов, отказ от подписания, локализация DE/EN
- P2: Оффлайн-режим, второй фактор (SMS), тёмная тема
Module 3: Signature Processing (PDF + Audit Trail)
- P0: Встраивание визуальной подписи, PAdES baseline, верификация целостности, аудит-трейл на каждый документ
- P1: LTV для PAdES, пакетная обработка 100+, TSA-отметка времени (RFC 3161)
Module 4: Compliance & Verification
- P0: Веб-верификация подписи, соответствие eIDAS AES, соответствие GDPR
- P1: QR-код на PDF, экспорт аудит-трейла
- P2: GoBD-совместимое хранение, QES через TSP
Module 5: Admin & Management
- P0: Управление организацией, ролевая модель (Owner/Admin/Sender/Viewer)
- P1: Аналитика, брендирование, Data Portability (GDPR Art. 20), биллинг
- P2: SSO (OIDC/SAML)
6. Non-Functional Requirements
Security
- TLS 1.3, AES-256-GCM (at rest)
- Приватный ключ никогда не покидает устройство
- Визуальная подпись: зашифрована на устройстве → передаётся только на момент встраивания → немедленно удаляется из памяти сервера
- Biometric binding: свежая биометрия для каждой операции
Performance
- Генерация подписанного PDF: <5 сек
- LCP веб-интерфейса: <2 сек
- Открытие документа в приложении: <3 сек
- SLA: 99.9% (43 мин/мес)
Compliance
- eIDAS AES: приватный ключ на устройстве, идентификация (email + biometric), обнаружение изменений (PAdES)
- GDPR: data minimisation, right to erasure, EU-only hosting, DPA с субподрядчиками
- Хостинг: AWS eu-central-1 (Frankfurt) / Hetzner (Nürnberg)
7. Technical Architecture
| Компонент | Технология |
|---|---|
| Web App | React + TypeScript (Vite) |
| Mobile App | React Native (Expo) или Swift UI + Kotlin |
| API Gateway | FastAPI (Python) или Go |
| PDF Engine | Python (PyPDF2 / iText) |
| Database | PostgreSQL 16 |
| Object Store | S3 (AWS) / MinIO |
| Message Queue | Redis + BullMQ |
| Push | FCM + APNs |
| Postmark / SendGrid | |
| Monitoring | Grafana + Prometheus + Sentry |
8. API Design (ключевые эндпоинты)
``` Base: https://api.zustimm.io/v1 Auth: Bearer JWT (access + refresh)
POST /auth/register POST /auth/login POST /documents — загрузка PDF GET /documents/{id} — метаданные PUT /documents/{id}/signature-placement POST /documents/{id}/send — отправка подписантам GET /signing-requests — список для пользователя POST /signing-requests/{id}/sign — подписать POST /signing-requests/{id}/decline GET /verify/{document-id} — веб-верификация POST /verify/upload — проверка PDF ```
9. Data Model (ключевые сущности)
- Organisation → User (1:N)
- User → DeviceKey (1:N) — публичный ключ, device_id
- Organisation → Document (1:N)
- Document → SignatureRequest (1:N) — signer_email, status, nonce, signed_hash
- Document → SignaturePlacement (1:N) — page, x, y, w, h
- Document → AuditTrail (1:N) — append-only, event_type, timestamp, actor
Принципы: Никакого хранения приватных ключей. Визуальная подпись удаляется с сервера после встраивания. AuditTrail — append-only с хеш-цепочкой. Soft delete для GDPR.
10. Криптографическая схема
Подписание (device-side):
1. Сервер: document_hash = SHA-256(PDF) + nonce + timestamp
2. Устройство: biometric auth → разблокировать приватный ключ из Secure Enclave
3. Устройство: signature = ECDSA(приватный_ключ, document_hash)
4. Устройство → Сервер: {signature, visual_signature_image}
5. Сервер: ECDSA_verify(публичный_ключ, document_hash, signature)
6. Сервер: встраивает visual_signature + PAdES метаданные
7. Сервер: удаляет visual_signature_image из памяти
11. Release Plan
Phase 0: Pre-MVP (M1-3) — Validation
- 20 depth interviews HR/Legal DACH
- Landing page zustimm.io
- Figma-прототип
- Tech spike: PDF signing pipeline (1 неделя)
- Юридическая экспертиза eIDAS AES
- Gate: 100+ waitlist + 5 design partners → GO to MVP
Phase 1: MVP (M4-7) — Core Flow
- Module 1 (базовый), Module 2 (iOS), Module 3, Module 4 (базовая верификация), Module 5 (базовый)
- Не входит: Android, SSO, TSA, шаблоны, QES
- Gate: 3 платящих клиента, NPS >30
Phase 2: Growth (M8-13) — Scale
- Android, шаблоны, CSV-импорт, напоминания, TSA, SSO, биллинг
- Интеграции: Personio, BambooHR API
- Gate: 50+ клиентов, churn <2%
Phase 3: Enterprise (M14-18)
- QES через eIDAS TSP (D-Trust, Swisscom)
- GoBD-хранение (WORM), On-premises деплой
- ISO 27001, Enterprise SLA (99.95%)
12. Success Metrics
| Метрика | Pre-MVP (M3) | MVP (M7) | Growth (M13) | Enterprise (M18) |
|---|---|---|---|---|
| Платящие клиенты | 0 | 3-10 | 50+ | 150+ |
| MRR | — | €150-500 | €10K+ | €35K+ |
| Churn (месячный) | — | <5% | <3% | <2% |
| NPS | — | >30 | >45 | >55 |
| Документов/мес | — | — | 5 000+ | 20 000+ |
| Время от отправки до подписания | — | <4 ч | <2 ч | <1 ч |
| Конверсия «отправлен → подписан» | — | >80% | >85% | >90% |
| Crash-free rate | — | >99% | >99.5% | >99.9% |
13. Open Questions (8 ключевых)
| # | Вопрос | Важность |
|---|---|---|
| OQ-1 | Достаточна ли схема (email + biometric + device-side key) для eIDAS AES в немецком суде? | Критическая |
| OQ-2 | Готовы ли пользователи рисовать подпись пальцем? | Высокая |
| OQ-3 | Нужна ли интеграция с EUDI Wallet (eIDAS 2.0) с 2026-2027? | Средняя |
| OQ-4 | Per-envelope или per-seat-per-month pricing? | Высокая |
| OQ-5 | Нужен ли on-premises для немецкого Mittelstand? | Средняя |
| OQ-6 | QES: когда и с каким TSP? | Средняя |
| OQ-7 | Восстановление при потере устройства (и приватного ключа)? | Высокая |
| OQ-8 | White-label для HR-платформ? | Низкая |