Loading...
New: API Access + Custom Branding now available on Business. Upgrade now →
Loading...
Connect SignBolt to QuickBooks Online via REST API and webhooks. Send engagement letters, contracts, and tax documents for signature directly from your accounting workflow. Auto-archive signed PDFs against customer records.
Pro plan required · No per-document fees · Cancel anytime · ESIGN Act compliant
Compliant with the ESIGN Act and UETA
Electronic signatures collected via SignBolt meet the requirements of the Electronic Signatures in Global and National Commerce Act (ESIGN Act) and the Uniform Electronic Transactions Act (UETA). Full tamper-evident audit trail and timestamped certificate included on every signed document.
Three steps to connect QuickBooks Online to e-signature workflows via SignBolt.
Generate a SignBolt Pro API key from your dashboard. Set up a QuickBooks app in the Intuit Developer Portal with OAuth 2.0 and add your API key to your integration code.
Choose which QuickBooks documents trigger signing: invoices, estimates, purchase orders, or your own engagement letters. Configure the signer email and signing triggers.
When SignBolt fires the document.signed webhook, your integration automatically attaches the signed PDF back to the QuickBooks customer or vendor record for your records.
Built for US small businesses, CPA firms, and bookkeepers using QuickBooks Online.
Before taking on a new client in QuickBooks, send an engagement letter for e-signature via SignBolt. The client signs in their browser — no account needed. The signed copy is auto-archived.
Attach any PDF — service agreement, subcontractor contract, or custom template — to a QuickBooks customer and send it for signature via the SignBolt API without leaving your workflow.
Accountants: send IRS Form 8879 authorisations and annual engagement letters to all clients in bulk. SignBolt handles delivery, signing, and webhook confirmation. No DocuSign required.
When SignBolt fires the document.signed event, your integration uses the QuickBooks API to attach the signed PDF to the customer or vendor record — searchable and auditable forever.
Use QuickBooks' change data capture (CDC) or webhook notifications to detect when an invoice reaches Approved status. POST to the SignBolt API to trigger signing automatically.
API access, webhook events, and all integration capabilities are available on the SignBolt Pro plan at $8/mo. No per-document fees, no seat licences, no per-integration charges.
Small businesses using QuickBooks Online deserve e-signature software that's priced to match — not enterprise bloatware at $25/mo.
Same QuickBooks. Smarter e-signature. $17/mo saved.
SignBolt fires these events to your configured webhook URL. Use them to auto-archive signed documents in QuickBooks and keep your records complete.
document.signedFires when a recipient completes signing. Payload includes document ID, signer email, timestamp, and a URL to download the signed PDF. Use it to archive the file in QuickBooks.
document.viewedFires when the recipient opens the signing link. Useful for tracking whether your client has seen the document and triggering a follow-up reminder if they have not signed.
document.declinedFires when a recipient explicitly declines to sign. Alert the account manager, update a custom field in QuickBooks, or trigger a follow-up task automatically.
Every tax season, CPA firms and bookkeepers need to collect signed engagement letters and IRS Form 8879 authorisations from dozens or hundreds of clients. SignBolt integrates with QuickBooks to make this repeatable and trackable.
Step-by-step instructions to connect SignBolt and QuickBooks Online using the REST API, OAuth 2.0, and QuickBooks webhook notifications.
Log in to your SignBolt Pro dashboard. Navigate to Settings → API Keysand generate a new key. Copy it — you'll add it as an environment variable in your integration code.
In the Intuit Developer Portal, create a new QuickBooks Online app with OAuth 2.0. Under Webhooks, add your endpoint URL: https://signbolt.store/api/integrations/quickbooks/webhook. Subscribe to the Invoice entity. Save your verifier token as QUICKBOOKS_WEBHOOK_VERIFIER_TOKEN.
When QuickBooks fires an invoice update notification, validate the signature, check for the relevant status change, then POST to the SignBolt API with the invoice PDF and the customer's email. The example below shows the pattern.
// QuickBooks webhook handler — invoice approved trigger
// POST to this endpoint from QuickBooks webhook configuration
import crypto from "crypto";
export async function POST(req: Request) {
const rawBody = await req.text();
const intuitSignature = req.headers.get("intuit-signature");
// Validate QuickBooks webhook signature
const expectedSignature = crypto
.createHmac("sha256", process.env.QUICKBOOKS_WEBHOOK_VERIFIER_TOKEN!)
.update(rawBody)
.digest("base64");
if (expectedSignature !== intuitSignature) {
return new Response("Unauthorised", { status: 401 });
}
const payload = JSON.parse(rawBody);
const entities = payload.eventNotifications?.[0]?.dataChangeEvent?.entities ?? [];
for (const entity of entities) {
if (entity.name === "Invoice" && entity.operation === "Update") {
const invoiceId = entity.id;
// Fetch invoice PDF from QuickBooks API
const invoicePdfUrl =
`https://quickbooks.api.intuit.com/v3/company/${process.env.QB_REALM_ID}/invoice/${invoiceId}/pdf`;
// Get signer email from QuickBooks customer
// (Fetch invoice first to get CustomerRef, then get customer email)
const signerEmail = "customer@example.com"; // replace with actual lookup
// POST to SignBolt REST API
const formData = new FormData();
formData.append("fileUrl", invoicePdfUrl);
formData.append("signerEmail", signerEmail);
formData.append(
"webhookUrl",
"https://signbolt.store/api/integrations/quickbooks/webhook"
);
formData.append(
"metadata",
JSON.stringify({ quickbooksInvoiceId: invoiceId })
);
await fetch("https://signbolt.store/api/v1/sign", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SIGNBOLT_API_KEY}`,
},
body: formData,
});
}
}
return new Response("OK", { status: 200 });
}SignBolt sends a document.signed event to /api/integrations/quickbooks/webhook when the recipient signs. The payload below shows what you receive. Use the QuickBooks Attachments API to archive the signed PDF against the customer record.
// SignBolt fires this payload to your QuickBooks webhook handler
// when a document is signed
{
"event": "document.signed",
"documentId": "doc_qb_abc123",
"signerEmail": "client@example.com",
"signedAt": "2026-04-08T10:32:00Z",
"downloadUrl": "https://signbolt.store/api/documents/doc_qb_abc123/download",
"metadata": {
"quickbooksInvoiceId": "INV-1042",
"quickbooksRealmId": "your-realm-id"
}
}When you receive the document.signed event, use the SignBolt download URL to:
API access, webhooks, API key management, and 50 documents per month — everything you need to connect SignBolt to QuickBooks — at $8/mo.
No. This is an API-based integration using SignBolt's REST API and QuickBooks Online's OAuth 2.0 API. You connect the two platforms directly using your SignBolt Pro API key — no marketplace app or Intuit App Store listing required.
The Pro plan ($8/mo) includes API access, webhook support, and the API key management dashboard required to build and run the QuickBooks integration.
Yes. You can batch-send IRS Form 8879 authorisations to multiple clients by looping over your QuickBooks customer list and POSTing each signed request to the SignBolt API. The signed documents are returned via webhook and can be archived against each customer record.
No. Recipients receive an email with a secure signing link and can sign the document in their browser without creating an account. Only you, as the sender, need a SignBolt account.
SignBolt's QuickBooks webhook endpoint validates the intuit-signature header using HMAC-SHA256 with your QUICKBOOKS_WEBHOOK_VERIFIER_TOKEN environment variable. Requests that fail validation are rejected with a 401 response.
Yes. QuickBooks Online supports change data capture (CDC) and webhook notifications. When an invoice status changes to Authorised, your code can POST to the SignBolt API at /api/v1/sign with the invoice PDF and the customer's email address.
The document.signed webhook payload includes a download URL for the signed PDF. Your integration can retrieve the file and attach it to the QuickBooks customer or vendor record using the QuickBooks Attachments API, or store it in your own document management system.
Yes. Electronic signatures collected via SignBolt meet the requirements of the Electronic Signatures in Global and National Commerce Act (ESIGN Act) and the Uniform Electronic Transactions Act (UETA). SignBolt provides a tamper-evident audit trail and timestamped signing certificate.
Start with the Pro plan and build your first QuickBooks signing workflow today. The REST API is documented and ready. ESIGN Act compliant out of the box.