curl --request POST \
--url https://api.synci.io/api/v1/rules \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>'})
};
fetch('https://api.synci.io/api/v1/rules', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.synci.io/api/v1/rules"
payload = { "name": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.synci.io/api/v1/rules",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.synci.io/api/v1/rules"
payload := strings.NewReader("{\n \"name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"message": "Rule created.",
"data": {
"id": "<string>",
"scope": "<string>",
"type": "<string>",
"name": "<string>",
"description": "<string>",
"enabled": "<string>",
"migrated": "<string>",
"trigger_on_any_condition": "<string>",
"skip_other_rules_when_triggered": "<string>",
"conditions": [
{
"id": "<string>",
"transaction_type": "BANK",
"field_name": "currency",
"operator": "EQUALS",
"value": "NOK",
"created_at": "<string>",
"updated_at": "<string>",
"rules": "<array>",
"rules_count": "<string>"
}
],
"actions": [
{
"id": "<string>",
"order": "<string>",
"action_type": "<string>",
"field_name": "memo",
"value": "{{ transaction.remittance_information.unstructured | remove: \"REF \" }}",
"created_at": "<string>",
"updated_at": "<string>",
"rules": "<array>",
"rules_count": "<string>"
}
],
"financial_accounts": [
{
"rule_position": 123,
"financial_account": {
"id": "<string>",
"enabled": "<string>",
"integrator": "<string>",
"account_category": "<string>",
"raw_type": "<string>",
"cash_balance": {
"amount": "<string>",
"currency": "<string>"
},
"total_balance": {
"amount": "<string>",
"currency": "<string>"
},
"meta": "<string>",
"name": "<string>",
"custom_name": "<string>",
"display_name": "<string>",
"currency": "<string>",
"product_name": "<string>",
"cash_account_type": "<string>",
"account_usage": "<string>",
"linked_accounts": "<string>",
"details": "<string>",
"details_last_synced_at": "<string>",
"transactions_last_synced_at": "<string>",
"transactions_backfill_cursor": "<string>",
"balances_last_synced_at": "<string>",
"balance": {
"available": "<string>",
"cleared": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"financial_connection_id": "<string>",
"financial_connection": {
"id": "<string>",
"institution_id": "<string>",
"region": "<string>",
"enabled": "<string>",
"status": "<string>",
"status_message": "<string>",
"sync_balances": "<string>",
"supports_reauthorization": true,
"supports_manage": true,
"max_historical_days": "<string>",
"access_valid_for_days": "<string>",
"consent_expires_at": "<string>",
"reference": "<string>",
"accounts_last_synced_at": "<string>",
"setup_pending": true,
"setup_renewal": "<string>",
"activated_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"institution": {
"id": "<string>",
"integrator": "<string>",
"region": "<string>",
"country": "<string>",
"name": "<string>",
"bic": "<string>",
"external_id": "<string>",
"logo": "<string>",
"supported": "<string>",
"supports_pending_transactions": "<string>",
"supports_card_accounts": "<string>",
"max_historical_days": "<string>",
"max_access_valid_for_days": "<string>",
"supported_products": "<string>",
"category": "<string>",
"updated_at": "<string>"
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"financial_accounts": "<array>",
"financial_accounts_count": "<string>"
},
"config": {
"map_fields": {
"payee": "<string>",
"description": "<string>",
"date": "<string>"
},
"enrichment": {
"enabled": "<string>",
"provider": "<string>",
"country": "<string>"
},
"sync_start_date": "2025-01-01",
"sync_auto": "<string>",
"sync_pending_transactions": "<string>",
"pending_settlement_matching": "<string>",
"pending_settlement_max_days": "<string>",
"fuzzy_counterparty_matching": "<string>",
"fuzzy_counterparty_min_chars": "<string>",
"sync_balances": "<string>",
"sync_frequency_in_minutes": "<string>",
"fields_for_duplicate_filtering": [
"<string>"
]
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"account_number_masked": "<string>",
"bban": "<string>",
"scan": "<string>",
"iban": "<string>",
"bic": "<string>",
"owner_name": "<string>",
"owner_address": "<string>",
"msisdn": "<string>",
"integrator_id": "<string>",
"institution_id": "<string>",
"rules": [
{
"order": 123,
"rule": {}
}
],
"transfer_links": [
{
"id": "<string>",
"financial_account_id": "<string>",
"destination_type": "<string>",
"destination_id": "<string>",
"transfer_start_date": "2025-01-01",
"active": "<string>",
"sync_mode": "<string>",
"on_booked_change": {
"update_status": "<string>",
"update_payee": "<string>",
"update_description": "<string>",
"update_amount": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"financial_account": "<unknown>",
"destination": {
"id": "<string>",
"budget_id": "<string>",
"ynab_id": "<string>",
"name": "<string>",
"type": "<string>",
"on_budget": "<string>",
"closed": "<string>",
"note": "<string>",
"balance": "<string>",
"cleared_balance": "<string>",
"uncleared_balance": "<string>",
"transfer_payee_id": "<string>",
"direct_import_linked": "<string>",
"last_reconciled_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"budget": {
"id": "<string>",
"connection_id": "<string>",
"ynab_id": "<string>",
"enabled": "<string>",
"name": "<string>",
"currency": "<string>",
"first_month": "<string>",
"last_month": "<string>",
"last_synced_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"connection": {
"id": "<string>",
"name": "<string>",
"enabled": "<string>",
"sync_balances": "<string>",
"ynab_user_id": "<string>",
"last_synced_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"auth_url": "<string>",
"budgets": "<array>"
},
"accounts": "<array>"
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"transfer_links": "<array>"
},
"rules": [
{
"order": 123,
"rule": {}
}
]
}
],
"transfer_links_count": "<string>"
}
}
],
"transfer_links": [
{
"rule_position": 123,
"transfer_link": {
"id": "<string>",
"financial_account_id": "<string>",
"destination_type": "<string>",
"destination_id": "<string>",
"transfer_start_date": "2025-01-01",
"active": "<string>",
"sync_mode": "<string>",
"on_booked_change": {
"update_status": "<string>",
"update_payee": "<string>",
"update_description": "<string>",
"update_amount": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"financial_account": "<unknown>",
"destination": {
"id": "<string>",
"budget_id": "<string>",
"ynab_id": "<string>",
"name": "<string>",
"type": "<string>",
"on_budget": "<string>",
"closed": "<string>",
"note": "<string>",
"balance": "<string>",
"cleared_balance": "<string>",
"uncleared_balance": "<string>",
"transfer_payee_id": "<string>",
"direct_import_linked": "<string>",
"last_reconciled_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"budget": {
"id": "<string>",
"connection_id": "<string>",
"ynab_id": "<string>",
"enabled": "<string>",
"name": "<string>",
"currency": "<string>",
"first_month": "<string>",
"last_month": "<string>",
"last_synced_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"connection": {
"id": "<string>",
"name": "<string>",
"enabled": "<string>",
"sync_balances": "<string>",
"ynab_user_id": "<string>",
"last_synced_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"auth_url": "<string>",
"budgets": "<array>"
},
"accounts": "<array>"
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"transfer_links": "<array>"
},
"rules": [
{
"order": 123,
"rule": {}
}
]
}
}
],
"created_at": "<string>",
"updated_at": "<string>",
"compatible_destinations": [
"<string>"
],
"output_compatible": "<string>",
"conditions_count": "<string>",
"actions_count": "<string>",
"financial_accounts_count": "<string>",
"transfer_links_count": "<string>"
}
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>",
"errors": {}
}Create a new rule
Rules automatically categorize or transform transactions. A rule attached to a financial account runs on new transactions as they are fetched from the bank and its changes are permanent; a rule attached to a transfer link runs on transactions as they are transferred and only changes the destination copy.
A rule has conditions and actions. Conditions decide whether the rule applies; a rule with no conditions always applies. Actions run when it does, and every rule needs at least one. Each action that runs is recorded as a rule log.
Action values accept Liquid templates. Reference transaction fields
with {{ transaction.field_name }} and transform them with filters:
| Filter | Example | Description |
|---|---|---|
remove | {{ transaction.creditor.name | remove: "PREFIX " }} | Remove a substring |
upcase / downcase | {{ transaction.creditor.name | upcase }} | Change case |
regex_capture | {{ transaction.creditor.name | regex_capture: '/^(\w+)/' }} | Extract a regex capture group |
date_add | {{ transaction.booking_date | date_add: 7 }} | Add or subtract days from a date |
remove_at | {{ transaction.memo | remove_at: 1, 5 }} | Remove characters at positions |
keep_at | {{ transaction.memo | keep_at: 6 }} | Keep only characters from a position |
The standard Liquid filters (replace, truncate, split, append, prepend, and so on) are available
too. Values without {{ or {% are literal.
Account rules (BANK scope) attach to bank accounts only; attaching one to a crypto or brokerage account
returns 422. Use a transfer link rule for those. How many conditions, actions and attached rules a plan
allows is listed on the pricing page.
curl --request POST \
--url https://api.synci.io/api/v1/rules \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>'})
};
fetch('https://api.synci.io/api/v1/rules', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.synci.io/api/v1/rules"
payload = { "name": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.synci.io/api/v1/rules",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.synci.io/api/v1/rules"
payload := strings.NewReader("{\n \"name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"message": "Rule created.",
"data": {
"id": "<string>",
"scope": "<string>",
"type": "<string>",
"name": "<string>",
"description": "<string>",
"enabled": "<string>",
"migrated": "<string>",
"trigger_on_any_condition": "<string>",
"skip_other_rules_when_triggered": "<string>",
"conditions": [
{
"id": "<string>",
"transaction_type": "BANK",
"field_name": "currency",
"operator": "EQUALS",
"value": "NOK",
"created_at": "<string>",
"updated_at": "<string>",
"rules": "<array>",
"rules_count": "<string>"
}
],
"actions": [
{
"id": "<string>",
"order": "<string>",
"action_type": "<string>",
"field_name": "memo",
"value": "{{ transaction.remittance_information.unstructured | remove: \"REF \" }}",
"created_at": "<string>",
"updated_at": "<string>",
"rules": "<array>",
"rules_count": "<string>"
}
],
"financial_accounts": [
{
"rule_position": 123,
"financial_account": {
"id": "<string>",
"enabled": "<string>",
"integrator": "<string>",
"account_category": "<string>",
"raw_type": "<string>",
"cash_balance": {
"amount": "<string>",
"currency": "<string>"
},
"total_balance": {
"amount": "<string>",
"currency": "<string>"
},
"meta": "<string>",
"name": "<string>",
"custom_name": "<string>",
"display_name": "<string>",
"currency": "<string>",
"product_name": "<string>",
"cash_account_type": "<string>",
"account_usage": "<string>",
"linked_accounts": "<string>",
"details": "<string>",
"details_last_synced_at": "<string>",
"transactions_last_synced_at": "<string>",
"transactions_backfill_cursor": "<string>",
"balances_last_synced_at": "<string>",
"balance": {
"available": "<string>",
"cleared": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"financial_connection_id": "<string>",
"financial_connection": {
"id": "<string>",
"institution_id": "<string>",
"region": "<string>",
"enabled": "<string>",
"status": "<string>",
"status_message": "<string>",
"sync_balances": "<string>",
"supports_reauthorization": true,
"supports_manage": true,
"max_historical_days": "<string>",
"access_valid_for_days": "<string>",
"consent_expires_at": "<string>",
"reference": "<string>",
"accounts_last_synced_at": "<string>",
"setup_pending": true,
"setup_renewal": "<string>",
"activated_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"institution": {
"id": "<string>",
"integrator": "<string>",
"region": "<string>",
"country": "<string>",
"name": "<string>",
"bic": "<string>",
"external_id": "<string>",
"logo": "<string>",
"supported": "<string>",
"supports_pending_transactions": "<string>",
"supports_card_accounts": "<string>",
"max_historical_days": "<string>",
"max_access_valid_for_days": "<string>",
"supported_products": "<string>",
"category": "<string>",
"updated_at": "<string>"
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"financial_accounts": "<array>",
"financial_accounts_count": "<string>"
},
"config": {
"map_fields": {
"payee": "<string>",
"description": "<string>",
"date": "<string>"
},
"enrichment": {
"enabled": "<string>",
"provider": "<string>",
"country": "<string>"
},
"sync_start_date": "2025-01-01",
"sync_auto": "<string>",
"sync_pending_transactions": "<string>",
"pending_settlement_matching": "<string>",
"pending_settlement_max_days": "<string>",
"fuzzy_counterparty_matching": "<string>",
"fuzzy_counterparty_min_chars": "<string>",
"sync_balances": "<string>",
"sync_frequency_in_minutes": "<string>",
"fields_for_duplicate_filtering": [
"<string>"
]
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"account_number_masked": "<string>",
"bban": "<string>",
"scan": "<string>",
"iban": "<string>",
"bic": "<string>",
"owner_name": "<string>",
"owner_address": "<string>",
"msisdn": "<string>",
"integrator_id": "<string>",
"institution_id": "<string>",
"rules": [
{
"order": 123,
"rule": {}
}
],
"transfer_links": [
{
"id": "<string>",
"financial_account_id": "<string>",
"destination_type": "<string>",
"destination_id": "<string>",
"transfer_start_date": "2025-01-01",
"active": "<string>",
"sync_mode": "<string>",
"on_booked_change": {
"update_status": "<string>",
"update_payee": "<string>",
"update_description": "<string>",
"update_amount": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"financial_account": "<unknown>",
"destination": {
"id": "<string>",
"budget_id": "<string>",
"ynab_id": "<string>",
"name": "<string>",
"type": "<string>",
"on_budget": "<string>",
"closed": "<string>",
"note": "<string>",
"balance": "<string>",
"cleared_balance": "<string>",
"uncleared_balance": "<string>",
"transfer_payee_id": "<string>",
"direct_import_linked": "<string>",
"last_reconciled_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"budget": {
"id": "<string>",
"connection_id": "<string>",
"ynab_id": "<string>",
"enabled": "<string>",
"name": "<string>",
"currency": "<string>",
"first_month": "<string>",
"last_month": "<string>",
"last_synced_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"connection": {
"id": "<string>",
"name": "<string>",
"enabled": "<string>",
"sync_balances": "<string>",
"ynab_user_id": "<string>",
"last_synced_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"auth_url": "<string>",
"budgets": "<array>"
},
"accounts": "<array>"
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"transfer_links": "<array>"
},
"rules": [
{
"order": 123,
"rule": {}
}
]
}
],
"transfer_links_count": "<string>"
}
}
],
"transfer_links": [
{
"rule_position": 123,
"transfer_link": {
"id": "<string>",
"financial_account_id": "<string>",
"destination_type": "<string>",
"destination_id": "<string>",
"transfer_start_date": "2025-01-01",
"active": "<string>",
"sync_mode": "<string>",
"on_booked_change": {
"update_status": "<string>",
"update_payee": "<string>",
"update_description": "<string>",
"update_amount": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"financial_account": "<unknown>",
"destination": {
"id": "<string>",
"budget_id": "<string>",
"ynab_id": "<string>",
"name": "<string>",
"type": "<string>",
"on_budget": "<string>",
"closed": "<string>",
"note": "<string>",
"balance": "<string>",
"cleared_balance": "<string>",
"uncleared_balance": "<string>",
"transfer_payee_id": "<string>",
"direct_import_linked": "<string>",
"last_reconciled_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"budget": {
"id": "<string>",
"connection_id": "<string>",
"ynab_id": "<string>",
"enabled": "<string>",
"name": "<string>",
"currency": "<string>",
"first_month": "<string>",
"last_month": "<string>",
"last_synced_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"connection": {
"id": "<string>",
"name": "<string>",
"enabled": "<string>",
"sync_balances": "<string>",
"ynab_user_id": "<string>",
"last_synced_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"auth_url": "<string>",
"budgets": "<array>"
},
"accounts": "<array>"
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"transfer_links": "<array>"
},
"rules": [
{
"order": 123,
"rule": {}
}
]
}
}
],
"created_at": "<string>",
"updated_at": "<string>",
"compatible_destinations": [
"<string>"
],
"output_compatible": "<string>",
"conditions_count": "<string>",
"actions_count": "<string>",
"financial_accounts_count": "<string>",
"transfer_links_count": "<string>"
}
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>",
"errors": {}
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Body
The name of the rule.
64An optional description of what the rule does.
192Whether the rule is active. Disabled rules are not applied.
When enabled, only one condition must match for the rule to be applied.
If the rule's conditions are met, stop processing other rules attached to the same financial account or transfer link.
Where the rule runs:
- BANK: applied to transactions as they are stored in Synci (changes are permanent). Can only be attached to financial accounts.
- TRANSFER: applied while transactions are transferred to a destination (changes land only in the destination copy). Can only be attached to transfer links; which destinations the rule fits is derived from its actions.
BANK, TRANSFER The legacy rule type (BANK, YNAB_TRANSFER_LINK, LUNCH_MONEY_TRANSFER_LINK, **GOOGLE_SHEETS_TRANSFER_LINK**). Deprecated: send scope` instead. When both are provided they must agree.
BANK Applied to bank transactions as they are fetched. Attaches to financial accounts. |
YNAB_TRANSFER_LINK Applied while transferring transactions to a YNAB budget account. |
LUNCH_MONEY_TRANSFER_LINK Applied while transferring transactions to a Lunch Money account. |
GOOGLE_SHEETS_TRANSFER_LINK Applied while transferring transactions to a Google Sheet. |
NOTION_TRANSFER_LINK Applied while transferring transactions to a Notion database. |
BANK, YNAB_TRANSFER_LINK, LUNCH_MONEY_TRANSFER_LINK, GOOGLE_SHEETS_TRANSFER_LINK, NOTION_TRANSFER_LINK The conditions that must be met for the rule to be applied. If no conditions are provided, the rule's actions will always be executed.
Show child attributes
Show child attributes
The actions to execute when the rule's conditions are met. Every rule must have at least one action.
Show child attributes
Show child attributes
The financial accounts to attach the rule to, each with an id and an order. Only allowed for BANK rules.
Show child attributes
Show child attributes
The transfer links to attach the rule to, each with an id and an order. Only allowed for transfer link rule types.
Show child attributes
Show child attributes
Reserved for Synci administrators.
Show child attributes
Show child attributes