Rent collected. Held safely. Forwarded without the manual work.
Calmony DD registers BACS mandates via Modulr, holds collected funds in a Griffin account through the 5-day clawback window, then forwards verified amounts to your client account — reconciled, audited, and automated for every agent on your portfolio.

[ CYCLE / HOW IT WORKS ]
Every collection cycle runs the same four steps — in sequence, durable across outages, isolated per agent.
A mandate is created in Modulr, submitted through AUDDIS, and polled across 3 BACS working days. The payer receives their legally required DD Guarantee email automatically.
On the scheduled due date, Calmony DD checks the BACS working-day calendar, verifies the mandate is active, and submits via Modulr with an idempotency key. Settlement is confirmed on Day +3.
Settled funds move to a Griffin holding account and are locked for 5 BACS working days. Any ARUDD return or indemnity claim triggers an automatic clawback before forwarding can proceed.
ForwardFundsWorkflow computes the releasable amount (net of reserve and any indemnity holds), calls Griffin to transfer to the agent's client account, and emails a PDF statement automatically.
Join the waitlist and we'll be in touch. Or email us directly at sf-core-org-support-calmony-dd@saas-factory.ai
[ COLLECTIONS / LIVE VIEW ]
The collections list shows due date, payer, amount, submission date, settlement date, and return reason in one sortable view. Click any row for the 3-day cycle timeline — submitted, in clearing, settled or returned — plus the linked holding and forwarding.
Month and week calendar view with colour-coded status
BACS working-day cutoff and settlement dates shown per collection
ARUDD return codes decoded with plain-English operator guidance
Retry-eligible returns auto-scheduled for next available BACS date
[ CAPABILITIES / WHAT SHIPS ]
From first mandate to monthly statement, every edge case in the BACS lifecycle is handled — including the ones agents discover on a Friday afternoon.
AUDDIS submission, 3-day polling, and ADDACS/AWACS message handling all run in Temporal — surviving deploys and provider outages without losing mandate state.
Funds are held in a Griffin account and locked until the BACS clawback window expires. ARUDD returns automatically recall funds before any forwarding is triggered.

[ EXCEPTIONS / TRIAGE ]
The exceptions queue catches every unreconciled item, rejected mandate, stuck workflow, and indemnity claim over threshold. A kanban board — New / Investigating / Awaiting Provider / Resolved — lets operators triage by drag and drop, with severity, age, and assigned operator on every card.
[ INTEGRATION / API-FIRST ]
Calmony DD exposes a versioned REST API — authenticated by org-scoped API keys, documented via OpenAPI — so agentOS and any other consuming application can create mandates, schedule collections, and query forwarding history without touching the BACS rail directly.
[ FORWARDINGS / STATEMENT ]
Agents receive a PDF and Excel statement for every forwarding showing each included collection, the reserve movement, any clawbacks, and the net transferred amount. The double-entry ledger underpins every figure — statements are audit-ready from day one.
Configurable forwarding cadence — daily or weekly per agent
Rolling reserve calculated against trailing 30-day collection volume
Excel and PDF export from the forwardings history table
Forwarding failure triggers immediate critical notification to agent owner
[ COMPLIANCE / WHAT'S IN PLACE ]
DD Guarantee email on every mandate Payers receive the legally required advance notice on mandate creation, with re-send available from the mandate detail page.
Variation notice enforcement Amount or date changes block submission until a 3-working-day variation notice is delivered and confirmed.
13-month mandate lapse detection Weekly sweep auto-expires mandates with no collection in 13 months, aligning with BACS Service User Guide requirements.
[ FAQ / COMMON QUESTIONS ]

Every money movement writes paired debit/credit entries across five accounts. Reports query the ledger directly — no aggregation guesswork, no rounding drift.
Row-Level Security policies on every domain table mean an API key for Agent A cannot read or mutate any row belonging to Agent B — enforced in the database, not just the application layer.
Per-agent monthly statements show opening balance, every settled collection, every clawback, every forwarding, and reserve movements. PDF and Excel export included.
Weekly operational digests, forwarding confirmations, BACS return alerts, and mandate variation notices — all delivered via the built-in email sender, no third-party configuration needed.
Stuck mandates and collections detected after BACS working-day thresholds
Indemnity claims escalated to critical after 3 BACS working days without action
Full provider call log with webhook replay for incident response
Keys cannot read or act on another agent's data. Enforced at the API layer and the database layer simultaneously.
Every POST accepts an Idempotency-Key header. Safe to retry — no duplicate mandates, no double-submitted collections.
Subscribe to mandate.activated, collection.settled, forwarding.completed and more. Signed payloads, automatic retry, configurable endpoints.

AES-256-GCM encryption on bank details Account numbers are encrypted at the application layer. The last 4 digits display by default; full values decrypt only for Modulr submission.
Per-org RLS in Postgres Row-Level Security policies on every domain table. Cross-tenant data access is impossible at the database layer.
BACS reason-code reference built in All ARUDD, ADDACS, AUDDIS, and AWACS reason codes are decoded into plain English with retry eligibility flags and suggested operator actions.