Proposals
Drag-and-drop proposal builder with electronic signatures, payment collection, and webhooks.
The Proposals product surface is actively evolving. Treat the schemas below as authoritative for the API, but expect features in the dashboard to ship faster than these docs.
What you get
- Drag-and-drop editor — text, images, tables, signature fields, payment fields.
- Electronic signatures — perfect-freehand pad with SMS 2FA. PAdES-signed PDF on completion.
- Hash-chained audit trail — every event (viewed, signed, downloaded) is recorded with an SHA-256 hash chain.
- Stripe-backed pay-on-sign — collect payment as part of the signing flow (requires Stripe Connect).
- Templates + bulk send — instantiate a template per contact via CSV, then track responses.
- Threaded comments — counter-party can comment on specific blocks; you can resolve and reply.
- AI-drafted proposals — generate a first draft from a CRM opportunity in one click.
- 24-hour voice follow-up — Stride-only moat: a voice agent calls the recipient if a proposal is unsigned after 24 hours.
Statuses
| Status | Meaning |
| ------ | ------- |
| draft | Author is still editing. |
| in_review | Sent to internal approvers (when approval rules are enabled). |
| pending | Sent to recipient, awaiting signature. |
| completed | All recipients signed. PDF generated. Webhook fired. |
| rejected | Recipient declined to sign. |
| expired | Past expiresAt. |
| voided | Cancelled by sender. |
Webhooks
DOCUMENT_COMPLETED fires when the final recipient signs. Verify the X-Stride-Signature HMAC-SHA256 header — the body is the raw event JSON. The signing secret is shown once when you create the webhook endpoint.
Pay-on-sign
Set metadata.pricingMode: 'collect_on_sign' on the envelope. On signature, StrideOps creates a Stripe invoice on the org's connected Stripe account and emails it to the recipient.