
Invoice InvoiceTrigger
CertifiedTrigger a flow when QuickBooks invoices are created, updated or paid
Invoice InvoiceTrigger
Trigger a flow when QuickBooks invoices are created, updated or paid
Polls the QuickBooks Change Data Capture endpoint for Invoice changes since the last poll and starts an execution when at least one change matches the configured event. Deleted invoices are never reported.
A polling trigger starts at most one execution per evaluation: invoice is the oldest matching change and invoices lists all matching changes of the poll, so use invoices to process every change.
The watermark is stored in the namespace KV store and only advances once the execution has been built, so a failed poll is retried over the same window. CDC only looks back about 30 days.
type: io.kestra.plugin.quickbooks.invoices.InvoiceTriggerExamples
Start a flow when an invoice is paid
id: qbo_on_invoice_paid
namespace: company.finance
triggers:
- id: on_invoice_paid
type: io.kestra.plugin.quickbooks.invoices.InvoiceTrigger
clientId: "{{ secret('QBO_CLIENT_ID') }}"
clientSecret: "{{ secret('QBO_CLIENT_SECRET') }}"
refreshToken: "{{ secret('QBO_REFRESH_TOKEN') }}"
realmId: "{{ secret('QBO_REALM_ID') }}"
event: PAID
interval: PT15M
tasks:
- id: log
type: io.kestra.plugin.core.log.Log
message: "Invoice {{ trigger.invoice.DocNumber }} is paid ({{ trigger.invoice.TotalAmt }})"
Properties
clientId *string
QuickBooks Client ID
clientSecret *string
QuickBooks Client Secret
realmId *string
QuickBooks Realm ID
refreshToken *string
QuickBooks Refresh Token
allowConcurrent boolean
falseSpecifies whether a trigger is allowed to start a new execution even if a previous run is still in progress.
authUrl string
https://oauth.platform.intuit.com/oauth2/v1/tokens/bearerOAuth Token URL
The OAuth2 token endpoint. Must be an intuit.com domain.
baseUrl string
https://quickbooks.api.intuit.comBase URL
The Base URL for QuickBooks API. Must be an intuit.com domain. Defaults to production.
event string
CREATEDCREATEDUPDATEDPAIDInvoice event to react to
Supported values (uppercase, case-sensitive):
CREATED: invoices created since the last poll.UPDATED: invoices that already existed before the last poll and were modified since.PAID: invoices changed since the last poll that have a zero balance and a positive total. QuickBooks CDC does not report what changed, so an already paid invoice that is edited again is reported again.
interval string
PT15MdurationPolling interval
How often the trigger should poll for changes.
minorVersion integerstring
75Minor Version
The minor version of the QuickBooks API to use. Must be 1 or more, checked after rendering.
stopAfter array
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTEDList of execution states after which a trigger should be stopped (a.k.a. disabled).
when string
trueA condition that determines whether the trigger should run.
A Pebble expression evaluated at trigger time. The trigger fires only when the expression evaluates to a truthy value (true, a non-empty string, a non-zero number). Use this to gate trigger execution on dynamic runtime values such as execution labels, flow variables, or environment conditions.
Outputs
count *integer
Count
The number of invoices matching the event in this poll.
invoice *object
Invoice
The oldest invoice matching the event, as returned by QuickBooks.
invoices *array
Invoices
All invoices matching the event in this poll, oldest first. Includes invoice.