Loading...
New: API Access + Custom Branding now available on Business. Upgrade now →
Loading...
Connect SignBolt to Xero via REST API and webhooks. Automatically send invoices and contracts for e-signature when they're approved, auto-attach signed PDFs to transactions, and stay compliant with the Electronic Transactions Act 1999.
Pro plan required · No per-document fees · Cancel anytime · AU compliance included
Compliant with the Electronic Transactions Act 1999 (Cth)
SignBolt's e-signatures satisfy the functional equivalence test for Australian commercial documents — including GST invoices, service agreements, and subcontractor contracts. Full tamper-evident audit trail included.
Three steps to connect Xero invoice approvals to e-signature workflows.
Generate a SignBolt Pro API key from your dashboard. Configure OAuth 2.0 in the Xero Developer Portal, add your API key to your integration, and authorise the connection — no marketplace app required.
Choose what triggers a signing request: invoice approved, quote accepted, or contact added. Use Xero's webhook events to POST the relevant PDF and signer email to the SignBolt API.
When SignBolt fires the document.signed webhook, your integration receives the event and attaches the signed PDF back to the Xero transaction or contact record automatically.
Built for Australian small businesses, accountants, and bookkeepers using Xero.
When an invoice is approved in Xero, automatically send it to the relevant contact for e-signature via SignBolt. The signer receives a secure link and signs in their browser — no account needed.
Once signed, the document is available via the SignBolt API. Your integration can attach the signed PDF to the corresponding Xero invoice, bill, or contact record using Xero's Files API.
Use Xero's webhook for invoice.updated events to detect when an invoice moves to AUTHORISED status. POST to the SignBolt REST API to initiate the signing request automatically.
Signatures collected via SignBolt satisfy the requirements of the Electronic Transactions Act 1999 (Cth) for functional equivalence. Includes a tamper-evident audit trail and timestamped signing certificate.
Designed for the Australian context: sign GST-registered invoices, subcontractor agreements that include ABN details, and BAS-related service agreements — all with a legally valid e-signature.
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 beyond your account.
Australian small businesses using Xero deserve an e-signature tool that's priced for them, not for enterprise legal departments.
Same Xero. Smarter e-signature. $17/mo saved.
SignBolt fires these events to your configured webhook URL. Use them to auto-attach signed documents to Xero transactions and keep your records accurate.
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 attach the signed file back to the Xero transaction.
document.viewedFires when the recipient opens the signing link. Useful for tracking engagement and sending reminders if the document has not been signed within your required timeframe.
document.declinedFires when a recipient explicitly declines to sign. Trigger a follow-up workflow in your integration or notify the account owner in Xero to resolve the issue.
Step-by-step instructions to connect SignBolt and Xero using the REST API, OAuth 2.0, and Xero's webhook events.
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 Xero Developer Portal, create a new app with OAuth 2.0. Under Webhooks, add your webhook delivery URL: https://signbolt.store/api/integrations/xero/webhook. Subscribe to the INVOICE event type. Copy your Xero webhook key and save it as XERO_WEBHOOK_KEY.
When Xero fires an invoice.updated event with status AUTHORISED, fetch the invoice PDF from Xero and POST it to the SignBolt REST API with the contact's email address. The example below shows the pattern.
// Xero webhook handler — invoice approved trigger
// POST to this endpoint from Xero's webhook configuration
import crypto from "crypto";
export async function POST(req: Request) {
const rawBody = await req.text();
const xeroSignature = req.headers.get("x-xero-signature");
// Validate Xero webhook signature
const expectedSignature = crypto
.createHmac("sha256", process.env.XERO_WEBHOOK_KEY!)
.update(rawBody)
.digest("base64");
if (expectedSignature !== xeroSignature) {
return new Response("Unauthorised", { status: 401 });
}
const payload = JSON.parse(rawBody);
const events = payload.events ?? [];
for (const event of events) {
if (
event.eventType === "UPDATE" &&
event.eventCategory === "INVOICE"
) {
const invoiceId = event.resourceId;
// Fetch the invoice PDF from Xero
const pdfUrl =
`https://api.xero.com/api.xro/2.0/Invoices/${invoiceId}/pdf`;
// POST to SignBolt REST API
const formData = new FormData();
formData.append("fileUrl", pdfUrl);
formData.append("signerEmail", event.tenantId); // replace with contact email
formData.append(
"webhookUrl",
"https://signbolt.store/api/integrations/xero/webhook"
);
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/xero/webhook when the recipient signs. The payload below shows what you receive. Use Xero's Files API to attach the signed PDF to the transaction.
// SignBolt fires this payload to your Xero webhook handler
// when a document is signed
{
"event": "document.signed",
"documentId": "doc_xro_abc123",
"signerEmail": "client@example.com.au",
"signedAt": "2026-04-08T10:32:00+10:00",
"downloadUrl": "https://signbolt.store/api/documents/doc_xro_abc123/download",
"metadata": {
"xeroInvoiceId": "INV-0042",
"xeroTenantId": "your-xero-tenant-id"
}
}When you receive the document.signed event, use the SignBolt download URL to:
Xero is the dominant accounting platform in Australia and New Zealand. SignBolt is designed with the AU market in mind.
Send a signed quote or contract to clients before starting work. Link the signed doc to the Xero job. Get paid faster because expectations are locked in writing.
Collect client authorisation for BAS lodgements and tax advice letters electronically. Keep signed engagement letters on file against the Xero contact record.
Onboard new clients with a signed engagement letter before connecting their Xero file. Auto-archive signed docs in Xero — no paper chasing.
Issue maintenance authorisations and minor works approvals. Send from Xero, sign via SignBolt, auto-attach to the property contact for audit purposes.
Generate a Statement of Work or consulting agreement in Xero, send for e-signature before issuing the invoice, and keep the signed document attached to the contact.
Stop paying $25/mo for DocuSign when you only need to sign a handful of invoices and supplier agreements per month. $8/mo for Pro covers 50 documents — more than enough.
API access, webhooks, API key management, and 50 documents per month — everything you need to connect SignBolt to Xero — at $8/mo.
No. This is an API-based integration using SignBolt's REST API and Xero's webhook and OAuth APIs. You connect the two platforms directly using your SignBolt Pro API key — no marketplace app required.
The Pro plan ($8/mo) includes API access, webhook support, and the API key management dashboard required to build and run the Xero integration.
Yes. The Electronic Transactions Act 1999 (Cth) and its state and territory equivalents recognise electronic signatures that satisfy the functional equivalence test: identity is indicated, the method is reliable, and the person has consented to the electronic form. SignBolt's audit trail and tamper-evident signed PDFs satisfy these requirements for standard commercial documents.
Yes. The integration works with any PDF generated by Xero — GST invoices, quotes, purchase orders, and service agreements. You supply the PDF to the SignBolt API and it handles signature placement, rendering, and delivery.
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 Xero webhook endpoint validates the X-Xero-Signature header using HMAC-SHA256 with your XERO_WEBHOOK_KEY environment variable. Requests that fail signature validation are rejected with a 401 response.
Yes. Subscribe to Xero's invoice.updated webhook event. When the event payload shows a status change to AUTHORISED, your code POSTs to the SignBolt API at /api/v1/sign with the invoice PDF and the relevant contact'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 Xero transaction using Xero's Files API, or store it in your own document management system.
Start with the Pro plan and build your first Xero signing workflow today. The REST API is documented and ready. AU compliance built in.