A trigger defines when a flow runs. There are two types: event-based and scheduled
on_event
The flow fires whenever a matching payment is received. You specify the payment type and optional conditions to narrow down which payments should trigger it.
Payment sources
trigger_source | Fires on |
|---|---|
fiat_payment | Incoming SEPA payment |
blockchain_payment | Incoming blockchain/crypto payment |
card_payment | Incoming card payment (on settled) |
Conditions
All conditions are optional. When multiple are set, all must match.
| Condition | Description |
|---|---|
currency | Only trigger for a specific currency, e.g. "EUR" or "USDC" |
kind | Payment direction — currently only "incoming" is supported |
min_amount | Only trigger if the payment amount is at or above this value |
In event-triggered flows, steps can use
"amount": "use_trigger"to automatically trade the exact amount from the incoming payment. More on that in the steps sections.
Example:
{
"trigger_type": "on_event",
"trigger_source": "fiat_payment",
"trigger_conditions": { "currency": "EUR", "kind": "incoming" }
}scheduled
The flow runs on a recurring time schedule using a standard cron expression. Useful for things like daily DCA buys or periodic sweeps.
Set schedule to a 5-field cron expression. next_run_at and last_run_at are computed automatically and are read-only.
Common schedules:
| Expression | Meaning |
|---|---|
0 9 * * * | Daily at 09:00 UTC |
0 */6 * * * | Every 6 hours |
0 10 * * 1 | Every Monday at 10:00 UTC |
Example:
{
"trigger_type": "scheduled",
"schedule": "0 9 * * *"
}Scheduled flows do not support
"amount": "use_trigger"— a fixed amount is required for each step.next_run_atis calculated when the flow is saved or its active state changes. More on that in the steps sections.

