Skip to content

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

Принципы:

  1. Privacy-by-Design: подпись пользователя — только на устройстве. Сервер никогда не видит приватный ключ.
  2. Mobile-First: подписание с телефона. Загрузка и управление — через веб.
  3. Визуальная + криптографическая подпись: PDF содержит и графическую подпись, и встроенный электронный след (PAdES).
  4. 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
Email 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 (ключевые сущности)

  • OrganisationUser (1:N)
  • UserDeviceKey (1:N) — публичный ключ, device_id
  • OrganisationDocument (1:N)
  • DocumentSignatureRequest (1:N) — signer_email, status, nonce, signed_hash
  • DocumentSignaturePlacement (1:N) — page, x, y, w, h
  • DocumentAuditTrail (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-платформ? Низкая