SnapPDF + SignBolt
Native handoff: finish prepping in SnapPDF, one-click send to SignBolt for signatures.
SignBolt is SnapPDF's sibling venture — a developer-first e-signature API. The integration is deeply native because the teams share infrastructure. Run prep ops on SnapPDF (merge contract + addendum, stamp draft watermark, fill form), then one API call hands the PDF off to SignBolt which orchestrates the signing envelope. A merged audit trail covers both products end-to-end.
What you can build
- Direct PDF handoff — no re-upload, no S3 roundtrip.
- Pre-fill signature field coordinates from SnapPDF's sign op placeholder mode.
- Merged audit trail: prep events (SnapPDF) + signing events (SignBolt) in one timeline.
- Shared billing — one subscription covers both products at the Enterprise tier.
- Shared key model — a single key with `pdf:*` + `sign:*` scopes works across both APIs.
Setup
- 01Create a SignBolt accountsignbolt.au — same email works if you already have SnapPDF.
- 02Link accountsSnapPDF dashboard → Integrations → SignBolt → Link account. OAuth handshake, 20 seconds.
- 03Create an Enterprise key (optional)For combined scopes, create a key scoped `pdf:write` + `sign:write`. Works on both APIs.
- 04Use the handoff endpointAfter a SnapPDF op, call `POST /api/v1/signbolt/handoff` with the PDF reference and recipient list.
- 05Poll or webhook for completionSignBolt fires webhooks back to your endpoint when signing completes; audit events land in the merged trail.
Code example
Prep contract in SnapPDF, hand off to SignBolt in one chain.
// Step 1: SnapPDF prep
const { pdf: merged } = await snap.pdf.merge({
files: [contractPdf, addendumPdf],
});
const { pdf: filled } = await snap.pdf.fillForm({
file: merged,
values: { client_name: deal.clientName, deal_value: deal.valueLabel },
flatten: false,
});
// Step 2: Hand off to SignBolt
const envelope = await fetch('https://api.snappdf.dev/api/v1/signbolt/handoff', {
method: 'POST',
headers: { Authorization: 'Bearer ' + key, 'Content-Type': 'application/json' },
body: JSON.stringify({
file: filled.pdf,
recipients: [
{ email: 'ceo@acme.com', name: 'Jane Smith', role: 'signer' },
{ email: 'cfo@us.com', name: 'Bob Jones', role: 'counter_signer' },
],
subject: 'Master Services Agreement — please sign',
expiresInDays: 14,
}),
}).then(r => r.json());
console.log('SignBolt envelope:', envelope.id);Known limits
- · SignBolt requires recipient emails — anonymous/public signing not supported.
- · The prep PDF must fit in SignBolt's 50MB limit (smaller than our own).
Pricing notes
The handoff itself is free. SignBolt signature envelopes are billed per-envelope on their side. Enterprise customers get a 15% discount on bundled billing.
Available from the Free plan.
FAQ
Do I need separate accounts and billing?
You can have separate accounts. Enterprise customers get a combined invoice covering both products.
Is the audit trail legally sufficient?
Yes — SignBolt's audit trail already satisfies ESIGN and applicable e-signature law. Adding SnapPDF prep events is for ops visibility, not legal proof.
What if the prep and sign keys are different?
Works fine. The handoff endpoint accepts either key; SignBolt's side authenticates with its own.
Can I use this for bulk envelopes?
Yes — loop the handoff call. SignBolt rate-limits apply (see their /docs).
Where does the PDF live between prep and sign?
In SnapPDF's internal S3 with 24h TTL. The handoff creates a signed URL SignBolt pulls once.