Prerequisites
The connector should already be set up, with a Connector Profile and a Linked Account. See Getting Started on the Moneybird connector page.Receive Moneybird webhook events via StackOne
Webhooks let StackOne receive events from Moneybird in real time as they happen, rather than polling for changes. Moneybird delivers a JSON notification for every subscribed event in your administration, and StackOne forwards each event to your downstream consumer.
StackOne creates and manages the webhook subscription automatically when the account is connected with webhook events enabled. There are no manual steps in Moneybird. Disconnecting the account deletes the webhook and stops the events.
Available webhook events
The following Moneybird events are delivered:
- Contact Created Event (
contact.created) — Fired when a contact is created - Contact Updated Event (
contact.updated) — Fired when a contact is updated - Contact Deleted Event (
contact.deleted) — Fired when a contact is deleted - Contact Archived Event (
contact.archived) — Fired when a contact is archived - Contact Activated Event (
contact.activated) — Fired when an archived contact is activated again - Contact Merged Event (
contact.merged) — Fired when a contact is merged into another contact - Contact Person Created Event (
contact_person.created) — Fired when a contact person is added to a contact - Contact Person Updated Event (
contact_person.updated) — Fired when a contact person is updated - Contact Person Deleted Event (
contact_person.deleted) — Fired when a contact person is deleted - Sales Invoice Created Event (
sales_invoice.created) — Fired when a sales invoice is created - Sales Invoice Updated Event (
sales_invoice.updated) — Fired when a sales invoice is updated - Sales Invoice Deleted Event (
sales_invoice.deleted) — Fired when a sales invoice is deleted - Sales Invoice Draft Event (
sales_invoice.draft) — Fired when a sales invoice moves back to the draft state - Sales Invoice Open Event (
sales_invoice.open) — Fired when a sales invoice is sent and becomes open (payable) - Sales Invoice Scheduled Event (
sales_invoice.scheduled) — Fired when a sales invoice is scheduled for sending at a later date - Sales Invoice Pending Payment Event (
sales_invoice.pending_payment) — Fired when a sales invoice is waiting for a payment to complete - Sales Invoice Paid Event (
sales_invoice.paid) — Fired when a sales invoice is fully paid - Sales Invoice Late Event (
sales_invoice.late) — Fired when a sales invoice passes its due date unpaid - Sales Invoice Reminded Event (
sales_invoice.reminded) — Fired when a payment reminder is sent for a sales invoice - Sales Invoice Uncollectible Event (
sales_invoice.uncollectible) — Fired when a sales invoice is marked as uncollectible - Sales Invoice Sent By Email Event (
sales_invoice.sent_by_email) — Fired when a sales invoice is sent by email - Sales Invoice Sent Manually Event (
sales_invoice.sent_manually) — Fired when a sales invoice is marked as sent manually - Sales Invoice Reminder Sent By Email Event (
sales_invoice.reminder_sent_by_email) — Fired when a payment reminder for a sales invoice is sent by email - Sales Invoice Paused Event (
sales_invoice.paused) — Fired when processing of a sales invoice (reminders and collection) is paused - Sales Invoice Resumed Event (
sales_invoice.resumed) — Fired when processing of a paused sales invoice is resumed - Estimate Created Event (
estimate.created) — Fired when an estimate (quote) is created - Estimate Updated Event (
estimate.updated) — Fired when an estimate is updated - Estimate Deleted Event (
estimate.deleted) — Fired when an estimate is deleted - Estimate Sent By Email Event (
estimate.sent_by_email) — Fired when an estimate is sent by email - Estimate Accepted Online Event (
estimate.accepted_online) — Fired when the contact accepts and signs an estimate online - Estimate Marked Accepted Event (
estimate.marked_accepted) — Fired when an estimate is marked as accepted - Estimate Marked Rejected Event (
estimate.marked_rejected) — Fired when an estimate is marked as rejected - Estimate Billed Event (
estimate.billed) — Fired when an estimate is billed (converted into a sales invoice) or marked as billed - Estimate Marked Archived Event (
estimate.marked_archived) — Fired when an estimate is archived - Estimate Marked Open Event (
estimate.marked_open) — Fired when an estimate is marked as open again - Estimate Late Event (
estimate.late) — Fired when an estimate passes its due date and expires - Payment Registered Event (
payment.registered) — Fired when a payment is registered on an invoice, including partial payments - Payment Deleted Event (
payment.deleted) — Fired when a registered payment is deleted - Document Saved Event (
document.saved) — Fired when a document (such as a purchase invoice or receipt) is saved - Document Updated Event (
document.updated) — Fired when a saved document is updated - Document Deleted Event (
document.deleted) — Fired when a document is deleted - Product Created Event (
product.created) — Fired when a product is created - Product Updated Event (
product.updated) — Fired when a product is updated - Product Deleted Event (
product.deleted) — Fired when a product is deleted - Product Activated Event (
product.activated) — Fired when a deactivated product is activated - Product Deactivated Event (
product.deactivated) — Fired when a product is deactivated - Ledger Account Created Event (
ledger_account.created) — Fired when a ledger account is created - Ledger Account Updated Event (
ledger_account.updated) — Fired when a ledger account is updated - Ledger Account Deleted Event (
ledger_account.deleted) — Fired when a ledger account is deleted - Ledger Account Activated Event (
ledger_account.activated) — Fired when a deactivated ledger account is activated - Ledger Account Deactivated Event (
ledger_account.deactivated) — Fired when a ledger account is deactivated - Tax Rate Created Event (
tax_rate.created) — Fired when a tax rate is created, including rates added from the default tax rates picker - Tax Rate Updated Event (
tax_rate.updated) — Fired when a tax rate is updated - Tax Rate Deleted Event (
tax_rate.deleted) — Fired when a tax rate is deleted - Tax Rate Activated Event (
tax_rate.activated) — Fired when a deactivated tax rate is activated - Tax Rate Deactivated Event (
tax_rate.deactivated) — Fired when a tax rate is deactivated - Financial Account Created Event (
financial_account.created) — Fired when a financial (bank, cash or payment provider) account is added - Financial Account Renamed Event (
financial_account.renamed) — Fired when a financial account is renamed - Financial Account Deleted Event (
financial_account.deleted) — Fired when a financial account is deleted - Financial Account Activated Event (
financial_account.activated) — Fired when a financial account is activated - Financial Account Deactivated Event (
financial_account.deactivated) — Fired when a financial account is deactivated
Delivery format
Every delivery is a JSON POST containing administration_id, entity_type, entity_id, state, action (the Moneybird event name), and entity (the full record, identical to its API representation; null on most delete events, where entity_id identifies the deleted record). Moneybird retries failed deliveries up to 10 times with gradually increasing intervals and sends an Idempotency-Key header that stays the same across retries.