Payment PaymentReceivedTrigger

Payment PaymentReceivedTrigger

Certified

Trigger a flow when QuickBooks receives a payment

Polls the QuickBooks Change Data Capture endpoint for new Payment records since the last poll and starts an execution when at least one was created. Updated and deleted payments are ignored.

A polling trigger starts at most one execution per evaluation: payment is the oldest new payment and payments lists all new payments of the poll, so use payments to process every payment.

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.

yaml
type: io.kestra.plugin.quickbooks.payments.PaymentReceivedTrigger

React to a received payment via CDC

yaml
id: qbo_on_payment
namespace: company.finance

triggers:
  - id: on_payment
    type: io.kestra.plugin.quickbooks.payments.PaymentReceivedTrigger
    clientId: "{{ secret('QBO_CLIENT_ID') }}"
    clientSecret: "{{ secret('QBO_CLIENT_SECRET') }}"
    refreshToken: "{{ secret('QBO_REFRESH_TOKEN') }}"
    realmId: "{{ secret('QBO_REALM_ID') }}"
    interval: PT10M

tasks:
  - id: log
    type: io.kestra.plugin.core.log.Log
    message: "Payment {{ trigger.payment.id }} applied to {{ trigger.linkedInvoices | length }} invoice(s)"
Properties

QuickBooks Client ID

QuickBooks Client Secret

QuickBooks Realm ID

QuickBooks Refresh Token

Defaultfalse

Specifies whether a trigger is allowed to start a new execution even if a previous run is still in progress.

Defaulthttps://oauth.platform.intuit.com/oauth2/v1/tokens/bearer

OAuth Token URL

The OAuth2 token endpoint. Must be an intuit.com domain.

Defaulthttps://quickbooks.api.intuit.com

Base URL

The Base URL for QuickBooks API. Must be an intuit.com domain. Defaults to production.

DefaultPT15M
Formatduration

Polling interval

How often the trigger should poll for new payments.

Default75

Minor Version

The minor version of the QuickBooks API to use. Must be 1 or more, checked after rendering.

SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTED

List of execution states after which a trigger should be stopped (a.k.a. disabled).

Defaulttrue

A 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.

Count

The number of new payments in this poll.

SubTypeobject

Linked invoices

The invoices applied to payment, read from its Line[].LinkedTxn[] entries of type Invoice. Each entry holds the invoice id and the amount applied.

Payment

The oldest new payment, as returned by QuickBooks. Its QuickBooks identifier is payment.Id and is also available as payment.id.

SubTypeobject

Payments

All new payments of this poll, oldest first. Includes payment.