Auto-BalancingMoney movementDemo data

Never miss a payment because the money sat in the wrong account.

The user sets a rule: protect account X, take from account Y, look D days ahead, move at most N and never leave Y below M. The engine forecasts upcoming debits and, before a shortfall, either suggests a top-up to confirm or moves the money automatically β€” once, idempotently, with retries.

Sandbox only: mock banks and synthetic data. No real money moves.

A top-up rule in notify mode

http
POST /v1/user/balancing/rules/create      // Bearer user_token
{ "name": "Keep my card topped up",
  "target_account_id": "acc_card…",     // X β€” protected
  "source_account_id": "acc_savings…",  // Y β€” donor
  "horizon_days": 7,                    // D β€” look ahead
  "max_transfer_amount": 2000000,       // N β€” cap per top-up
  "source_min_balance": 5000000,        // M β€” never leave Y below
  "mode": "notify" }                    // or "auto"
β†’ { "evaluation": { "action": "transfer", "amount": 900000,
      "shortfall_date": "2026-10-17" },
    "execution": { "status": "suggested" } }

How it works

  1. 01

    The user sets a rule

    X (protected), Y (donor), horizon D or a deadline, cap N, donor floor M and a target floor β€” notify or auto mode. Rules belong to the user and live in their consent centre.

  2. 02

    The engine forecasts

    Scheduled debits (standing orders) plus recurring outflows detected from history project X’s balance day by day.

  3. 03

    Suggest or move

    Before a shortfall: amount = min(shortfall, N, Y above M). Notify mode sends Confirm / Dismiss (app or Telegram); auto mode transfers at once.

  4. 04

    Exactly once, retried

    One execution per rule and shortfall date. A technical bank failure is retried with backoff (up to 3 attempts); every attempt is logged.

What you get

βœ“Hard limits

Never above the cap N, never leaving the donor below M β€” rechecked under a row lock at transfer time. Partial cover is flagged.

βœ“Two modes

notify: a suggestion to confirm or dismiss (exactly once, double taps are safe). auto: the transfer runs immediately.

βœ“Failure handling

Transient failures retry with exponential backoff; permanent ones stop with a clear reason and a notification.

βœ“Full decision log

Every evaluation, decision and transfer attempt is recorded β€” visible to the user and to you.

βœ“β€œCheck now” and dry runs

Rules are evaluated on creation, periodically, and on demand; dry_run projects without recording anything.

βœ“Webhooks

BALANCING_TRANSFER_UPDATED follows each top-up: suggested, executing, executed, failed, dismissed, expired.

πŸ›‘ Consent & security

  • ●Rules are created only by the user (user_token); your API key can read them and pause one for support β€” never move money on its own.
  • ●Both accounts must be the user’s own, connected accounts in the same currency.
  • ●Pause, resume or delete any rule instantly; disconnecting a bank deletes the rules that use it.
  • ●Every change and every transfer attempt lands in the append-only audit log.

More products