Treasury & Split PaymentsMoney movementDemo data

One view of every company account β€” and one payment from many of them.

Your company holds accounts at several banks. Treasury shows every balance in one place and lets you pay one counterparty from several accounts at once: preview the allocation, run it, and let the engine handle partial failures β€” retries, re-allocation to other accounts and returns from the counterparty.

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

Paying one counterparty from several accounts

http
POST /v1/treasury/split/create      // Silkroute-Client-Id / Silkroute-Secret
{ "actor_ref": "accountant",          // acts on behalf of a member
  "counterparty": { "name": "OOO Paxta Trade",
                    "account_number": "2020…4321" },
  "total_amount": 50000000,           // UZS, major units
  "allocation": { "mode": "auto" },   // or manual, with shares
  "idempotency_key": "inv-0418-paxta" }
β†’ { "split": { "split_id": "split_01J…", "status": "completed",
      "parts": [
        { "part_no": 1, "account_label": "Tumaris Β· Settlement β€’β€’1111",
          "amount": 35000000, "status": "settled" },
        { "part_no": 2, "account_label": "Lochin Β· Settlement β€’β€’2222",
          "amount": 15000000, "status": "settled" } ] } }

How it works

  1. 01

    Connect the company’s accounts

    A director adds the accounts held at each bank, each with a label, a priority (1–1000, lower is used first) and a min_reserve that is never spent. Every call acts on behalf of a member: a director or an accountant.

  2. 02

    See one picture

    Totals per currency β€” current, available, reserved, spendable β€” then per bank and per account, with 30-day inflow and outflow and the splits in flight. Scope any view to a sub-treasury with account_ids.

  3. 03

    Preview, then pay

    Preview shows the allocation and moves nothing. Then pay one counterparty the total: auto fills accounts by priority while respecting reserves; manual sets up to 10 shares by amount or percent.

  4. 04

    Part by part, to the end

    Each part is a separate A2A bank payment with its own status. A technical bank error is retried (up to 3 attempts per part); the overall status is always derived from the parts.

What you get

βœ“Unified balances

Current, available, reserved and spendable per currency, per bank and per account β€” with each account’s min_reserve in view.

βœ“Smart allocation

auto fills accounts by priority and never goes below a reserve; manual takes explicit shares (amount or percent, max 10 parts). The same idempotency_key never pays twice.

βœ“Safe partial failure

If a part fails for good, auto mode re-allocates the missing amount once to other accounts; otherwise settled parts are compensated β€” the counterparty returns them. A director can retry a refused return.

βœ“Roles and audit

director can do everything; accountant views, previews and initiates payments. The last active director can never be demoted or disabled. Directors read the full audit log with the acting member.

βœ“Sub-treasuries

Pass account_ids on balances, preview, create and list to work with one branch or one currency pool. Auto allocation and re-allocation stay inside it; shares outside are rejected.

βœ“Webhooks

SPLIT_PAYMENT_STATUS_UPDATED carries split_id, new_status and total_amount on every status change.

πŸ›‘ Consent & security

  • ●Every call acts on behalf of a treasury member (actor_ref or the Silkroute-Actor header): directors manage members and accounts, accountants can only view, preview and initiate payments.
  • ●Counterparty account numbers are encrypted at rest (AES-256-GCM); only the last 4 digits are ever returned.
  • ●Each part is locked and reserve-checked again right before it is paid; min_reserve is never spent, and a repeated idempotency_key pays nothing twice.
  • ●Every member, account and split action lands in the audit log with the acting member β€” readable by directors only.

More products