What an API key can see
A key is bound to one workspace for its whole life and acts with the permissions of the role chosen when it was created, never as the person who issued it and never as an owner. Everything it can read or change (packages, templates, documents, recipients, audit events) is scoped to that workspace. Flowsign stores only a hash of the key. See Authentication.Requests go to production
There is no sandbox. The code samples on each endpoint page point athttps://my.flowsign.app, the production API, and nothing on these pages sends a request for you: every call comes from your own tooling with your own key. Creating a package with "status": "sent" really sends it. For testing, use a key with an expiry date and a minimal role, and revoke it from Settings > API keys when you are done. See Trying the API.
What webhook payloads contain
Every event carries the package id andmetadata, the package’s custom field values, and every event except SESSION_OPENED carries the package title. Session events add the session id and the recipient’s name and email address. Void, hold, resume and delete events name the member who acted by email address, and decline events carry the reason the recipient typed. Titles, custom fields and decline reasons are free text, so a payload can contain personal information.
Treat a webhook listener as a system that handles personal data: verify the signature, keep payloads only as long as you need them, and keep bodies out of shared logs. An endpoint belongs to the workspace it was created in and receives events only for that workspace’s packages. Flowsign keeps each endpoint’s delivery log for 30 days. See Webhooks and Events.
Where audit trails and certificates live
Every package keeps an audit trail with a timestamp, IP address and device per event. Read it on the package page, under Reports > Audit trail (Audit trail), or withGET /api/v1/packages/{packageId}/audit-events, which returns each event’s type, the email of whoever caused it, its signing session and its time.
When the last recipient finishes, the signed documents and the certificate of completion are available from the package page. Through the API, GET /api/v1/packages/{packageId}/documents/{documentId} returns a download URL that serves the signed copy once the package has completed; it expires after an hour, so fetch it when needed rather than storing it. GET /api/v1/packages/{packageId}/download/certificate returns the certificate of completion once the package has completed. Retention is set out in the Privacy Policy.
