Documentation Index
Fetch the complete documentation index at: https://docs.uip.digital/llms.txt
Use this file to discover all available pages before exploring further.
Security architecture
Biometrics stay on the user’s device, personal data is encrypted with AES-256 at rest, and every critical user action is signed on-device with a private key the server never sees.On-device biometrics
Biometric templates never leave the user’s device. Authentication happens locally; only a cryptographic signature is sent to the server.
AES-256-GCM at rest
All personally identifiable fields are encrypted at rest with authenticated AES-256-GCM.
ECDSA P-256 signatures
Every identify, sign, and message action is signed on-device with the user’s ECDSA P-256 private key. The public key is registered during enrollment and used for server-side verification.
TLS everywhere
All API traffic and webhook deliveries are HTTPS-only. Webhook endpoints with HTTP URLs are rejected.
Biometric security
UIP uses government-grade biometric verification with multiple layers of fraud prevention:Liveness detection
Liveness detection
The UIP app performs real-time liveness checks during biometric scans to prevent attacks using photos, videos, or masks. Users must demonstrate live presence through interactive prompts.
On-device processing
On-device processing
Biometric data (fingerprint templates, facial geometry) is processed entirely on the user’s device. Only cryptographic proofs are transmitted — never raw biometric data.
Government ID verification
Government ID verification
Identity verification is performed through a government-grade verification provider. Users scan official documents (passport, driver’s license, national ID) with live selfie matching.
Anti-spoofing
Anti-spoofing
Multi-layer anti-spoofing combines document authenticity checks, biometric liveness detection, and cross-reference validation to prevent identity fraud.
API security
Authentication
All API requests require Bearer token authentication:uip_sk_ prefix. Keys are SHA-256 hashed before storage — UIP never stores plaintext keys. You can rotate or revoke any key at any time from the dashboard.
Rate limiting
UIP enforces rate limits to ensure fair usage and system stability:| Scope | Limit | Window |
|---|---|---|
| Global (per IP) | 500 requests | 1 minute |
| Per API Key | 300 requests | 1 minute |
Retry-After and X-RateLimit-Remaining headers.
SSRF protection
Webhook URLs are validated against SSRF attacks. UIP blocks webhook delivery to:- Private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
- Loopback addresses (127.0.0.0/8, ::1)
- Link-local addresses (169.254.0.0/16)
- IPv6 unique local addresses (fc00::/7)
Webhook signature verification
All webhook payloads include anX-UIP-Signature header containing an HMAC-SHA256 signature. Verify this signature to ensure webhook authenticity:
Data protection
Encryption at rest
All PII (names, dates of birth, document numbers, addresses) is encrypted using AES-256-GCM before storage. Encryption keys are managed separately from the encrypted data.Encryption in transit
All API communications use TLS 1.2+. Webhook URLs must use HTTPS — HTTP endpoints are rejected.Data minimization
UIP follows the principle of least privilege for data:- Only return identity fields explicitly requested in
requested_data - Session data expires automatically (about 5 minutes for identify and sign sessions)
- Completed session data is returned once via polling and then cleared
- Audit records are append-only and store only what’s needed for legal compliance
Compliance
GDPR
User-controlled data. No personal data stored without explicit consent.
eIDAS
Electronic signatures align with EU requirements for advanced electronic signatures with identity verification.
ESIGN Act
Signatures comply with the US Electronic Signatures in Global and National Commerce Act.
SOX
Audit trails support Sarbanes-Oxley compliance with permanent, tamper-evident records.
Security best practices
Store keys securely
Use environment variables or secrets management. Never commit API keys to version control.
Verify webhooks
Always validate the
X-UIP-Signature header before processing webhook payloads.Use HTTPS
All webhook URLs must use HTTPS. API calls are HTTPS-only by default.
Minimize data requests
Only request the identity fields you need. Users are more likely to approve minimal data requests.