DOCSUPRA Open the Enterprise Studio

DOCSUPRATrust center › Security

Security · reviewed 18 September 2026

Security and architecture, written to be checked.

Every statement here is either verifiable from your own browser or marked as something we do not yet have. Reviewers may copy the questionnaire table into their own template; we will also complete yours on request.

Architecture

DocVerifyPro is a single static web application served from Cloudflare’s edge, plus a small licence API. The imaging engine — perspective, lighting, sharpness, format and size targeting — runs in the browser’s JavaScript and canvas. There is no server component that receives, stores or transforms a document. The licence API answers one question per download (“is this licence allowed to export?”) and receives no file.

StepWhere it runsWhat leaves the machine
File openedBrowser, from local disk, camera or clipboardNothing
Geometry, lighting, legibility correctionBrowser (HTML canvas)Nothing
Compliance check against the destination’s published ruleBrowserNothing
Encoding to the exact size, format and resolutionBrowserNothing
Download authorisationLicence API (api.docsupra.com)Licence token, seat identifier, department label chosen by your administrator. No file, no file name.
File savedUser’s own download folder or share sheetNothing
PaymentStripe, directlyCard data to Stripe only

Network allow-list (Content Security Policy)

The page declares, in a header your browser enforces, the only hosts it may contact. IT teams can allow exactly these and nothing else:

docsupra.com          the application and its assets
api.docsupra.com      licence checks (JSON only; no file upload endpoint exists)
js.stripe.com, api.stripe.com, checkout.stripe.com, hooks.stripe.com, merchant-ui-api.stripe.com
                          payment form and checkout, only when you open them
static.cloudflareinsights.com, cloudflareinsights.com
                          cookie-free page-view counter (path, country, referrer)

Headers served on every response: Content-Security-Policy, Strict-Transport-Security (preload), X-Content-Type-Options: nosniff, Referrer-Policy: strict-origin-when-cross-origin, Cross-Origin-Opener-Policy: same-origin, Permissions-Policy (camera only for this origin; geolocation, microphone, USB and others denied), frame-ancestors 'none'.

Identity, seats and access

Team and Studio members sign in with their work email through a one-time link (or single sign-on where configured). Seats are counted per person; an administrator can remove a person at any time from the administration console and their access stops immediately. Individual plans need no account: the licence lives in the browser that paid.

Vulnerability management and responsible disclosure

Incident response

  1. Detect. Server errors alert the operator by email within minutes (route and stack trace; no customer data). Edge analytics flag traffic anomalies.
  2. Contain. Rotate the licence-signing secret and API tokens; revoke affected licences; if needed, take the licence API offline — the application itself keeps working for existing sessions.
  3. Assess. Determine which data classes could be affected. Because no document is ever held, the assessable classes are billing records (held by Stripe) and licence data.
  4. Notify. Affected customers within 72 hours of confirmation, by email to the billing contact, stating what happened, what data, what we did and what they should do. Regulators as required by law.
  5. Review. A written post-incident review, with the fix, published on the updates page.

Business continuity and disaster recovery

Vendor security questionnaire (SIG Lite / CAIQ style)

Answers are current as of 18 September 2026. “No” means we do not have it and say so; “Partial” means a documented limitation.

QuestionAnswerDetail
Organisation
Legal entity and locationYesDocVerifyPro, a sole proprietorship registered in Puerto Rico, United States. Founder and sole developer: Soelys Muñoz. Contact: security@docsupra.com.
Named security contactYessecurity@docsupra.com, published in /.well-known/security.txt.
Background checks on personnel with access to customer dataN/AThere is no customer document data to access. One person operates the service; billing data is accessed only through Stripe's dashboard with two-factor authentication.
Security awareness trainingPartialSingle-operator organisation; the operator follows written procedures on this page. No formal programme.
Data handling
What customer data do you receive?YesBilling record (email, plan, amount, date) from Stripe; licence token and seat identifiers; a daily-salted hash of the IP for abuse limits (48 h). Never the document.
Where is customer data stored and processed?YesBilling: Stripe (US). Licence data: Cloudflare KV, replicated globally, encrypted at rest. Document content: only in the user's browser memory; never stored by us.
Data retention and deletionYesLicence data: for the life of the licence plus 400 days for seat records, then expired automatically. Billing records: as required by tax law (Stripe). Deletion requests: privacy@docsupra.com, fulfilled within 30 days.
Data residency optionsN/ADocument content never leaves the machine it is opened on, in any country. No residency configuration is needed or offered for it.
Is customer data used for training models or analytics?NoNo document is ever received, so none can be used. Page-view analytics are cookie-free and count pages, not people.
BackupsYesLicence data lives in Cloudflare KV with platform replication. There is nothing else to back up; the application is a static file redeployed from source.
Access control
How is access to production controlled?YesCloudflare and Stripe accounts with two-factor authentication; one operator; deployments from a single workstation with signed API tokens.
Do you support SSO?YesOpenID Connect (Entra ID, Okta, Google Workspace, any OIDC issuer), configured by the organisation administrator, restricted to your email domain.
Role-based access for customer administratorsYesAdministrator and member roles; administrators invite, remove and see usage.
Can a departing employee be removed immediately?YesYes, from the administration console; their sign-in stops working at once.
Encryption
Data in transitYesTLS 1.2+ (Cloudflare edge), HSTS max-age one year with preload, HTTP redirected to HTTPS.
Data at restYesCloudflare KV encrypts at rest; Stripe holds card data (PCI DSS Level 1). No document is at rest anywhere under our control.
Key managementYesLicence tokens are HMAC-signed with a secret held as a Cloudflare Worker secret; rotated on incident. Stripe webhooks verified by signature.
Application security
Secure development practicesYesEvery deployment passes an automated gate: JavaScript syntax check, 21 content and behaviour rules, a sharpness/quality gate, pricing consistency between site and server, and a policy check that blocks prohibited claims. Deployments are versioned (service worker cache version).
Content Security PolicyYesdefault-src 'self'; scripts only from this origin and js.stripe.com; connect-src limited to api.docsupra.com, Stripe and Cloudflare analytics; frame-ancestors 'none'; object-src 'none'; upgrade-insecure-requests.
Third-party librariesYesOne vendored library (PDF.js, pinned version, served from this origin) for reading PDFs. No package manager at runtime, no CDN scripts except Stripe's payment form.
Input validationYesFiles are decoded by the browser's own image decoders; the server accepts no files. API inputs are validated and rate-limited per IP hash.
Penetration testingNoNot yet commissioned. Rules of engagement available; the attack surface is a static site plus a licence API with no file handling.
Vulnerability disclosure programmeYessecurity.txt published; acknowledgement within 2 business days; fix or mitigation target 30 days for high severity.
Infrastructure
Hosting providerYesCloudflare Workers (static assets and licence API), Cloudflare KV. Payment: Stripe. Email: Resend (operator alerts, plus sign-in links and invitations for Team and Studio members). Support inbox: Google (Gmail). Support-reply drafts and the on-site assistant: Cloudflare Workers AI (message text only, never a document). Full list at /subprocessors.
Network security / DDoSYesCloudflare edge with DDoS protection and rate limiting; the licence API limits requests per salted IP hash.
Logging and monitoringYesEdge request logs (Cloudflare) without document data; server errors alert the operator by email with route and stack trace only.
Separation of environmentsYesProduction only; changes are gated and versioned before deployment. No customer data exists in any non-production system because no customer document exists in any system.
Incident response
Written incident response planYesSee Incident response below: detect, contain, assess, notify customers within 72 hours, post-incident review published.
Breach notification commitmentYes72 hours from confirmation to affected customers, by email to the billing contact, with scope and remediation.
Business continuity
Availability designYesThe application runs entirely in the browser and works offline once loaded. A licence-service outage delays downloads for new sessions only; existing sessions keep working. Cloudflare's global edge serves the static file.
Recovery objectivesYesRTO for the static site: minutes (redeploy from source). RPO for licence data: platform replication; billing state is authoritative in Stripe and can be re-synced.
Compliance
SOC 2 / ISO 27001NoNo audit performed. Stated openly. The scope would be small and we will publish the report and auditor when one exists.
GDPRYesDesigned for GDPR: no document content is processed by us; controller obligations cover billing and licence data. DPA with SCCs available at /dpa.
CCPA / CPRAYesWe do not sell or share personal information and collect no sensitive personal information as defined by the CPRA.
HIPAAPartialWe are not a business associate because no PHI is ever transmitted to us. Organisations handling PHI can use the software without a BAA for that reason; we will sign a BAA-equivalent statement on request.
PCI DSSYesOut of scope by design: card data goes directly to Stripe (Level 1).
Accessibility (WCAG / Section 508)PartialAudited against WCAG 2.1 AA; statement and VPAT-style summary at /accessibility.
Privacy
Sub-processor list and change noticeYesPublished at /subprocessors; changes announced 30 days ahead by email to Team and Studio billing contacts.
Data subject requestsYesprivacy@docsupra.com; fulfilled within 30 days; identity verified against the billing email.
Audit
Customer audit logYesPer batch: file name, SHA-256, dimensions, verdict, person, time. Never the image. Local export and optional organisation log.
Usage reportingYesMonthly per member and department from the administration console.
Right to auditYesReasonable on-site or remote review of the controls on this page once a year for Corporate Studio customers, on 30 days' notice.

Need it in your template? Send the questionnaire to security@docsupra.com. Team and Studio customers get it back within five business days.