Decionis Banking

Deploying it: one process, two kits, shadow first

BEAP v0.1 · Draft / Design Partner ReviewDated 2026-09-11. A draft the banks reviewing it can still change. Not a finished standard, and it may change before v1.0.

The component in front of the core system ships as one process a bank runs inside its own boundary. A workflow proposes a banking action to it and receives a verdict; in enforce mode an allow is claimed and executed in the same call and the outcome of that one attempt comes back with its effect evidence. The proposer never receives a grant, and the credential the process presents to the core is never reachable from a request.

Where it sits

YOUR CHANNELS
Agent · App · Employee · Batch
            |
            v
       PROPOSE ACTION
            |
            v
+-----------------------------+
| DECIONIS EXECUTION AUTHORITY|
|                             |
| Rules -> Authority -> Evidence
+-----------------------------+
            |
     +------+-------+
     v      v       v
   ALLOW ESCALATE BLOCK
     |      |
     |   Approvers
     |      |
     +---+--+
         v
   EXECUTION BOUNDARY
         |
         v
YOUR BANKING SYSTEMS
Core · Payment Hub · Lending · Ledger
Between your workflow and your core, holding the credential on its own side

The pattern a search engine may describe to you, in which the proposing agent carries an execution token to an API gateway that validates it, hands the grant to the proposing side. The profile forbids that, and these kits do not do it: the executor is where the gateway would be, and the proposer carries nothing.

The two kits

KitForWhat it deploys
TemenosA bank whose lending runs on Temenos Transact and whose payments go through a Temenos payments hub.One executor per adapter: temenos-transact for arrangement activities such as creating a loan, temenos-tph for payment orders and batch releases. The adapters are patterns built from what the Temenos developer portal showed publicly on a recorded day; every endpoint, host, header name and credential is yours, and nothing has been run against a Temenos environment. Temenos marks belong to Temenos Headquarters SA; there is no affiliation and no endorsement.
A lending railA lender on a platform whose credit decision, disbursement engine and ledger are separate services.One executor with the rails-lending adapter. The credit decision is recorded as the lender's decision once a credit officer's sign-off is bound to the exact terms; a release is refused outright when the decision is not current, when the instruction differs from what was decided, when capacity is not confirmed, or when a product structure's preconditions are not evidenced, and otherwise asks for a maker and a distinct checker. It is confirmed only from the ledger's posting read back. No rail is named and none has been run against.

Each kit carries the manifests (one replica, read-only root filesystem, non-root, a network policy that lets only the proposing workflow in and only the authority and the core out, Secret references and never a Secret), an adapter configuration to fill in, and a runbook from shadow to controlled enforcement to enforcement. The lending-rail kit adds a starter policy bundle and static signals for a rehearsal.

Three modes, taken in order

  1. Shadow. BEAP_MODE=shadow, which is how the manifests ship. Every proposal is evaluated and recorded and nothing is executed. Compare what the rules would have said with what the workflow did; the platform describes the same posture for its other surfaces at shadow mode.
  2. Controlled enforcement. BEAP_MODE=enforce for one action, one workflow, one team. The sign-offs the workflow collects are presented with the proposal, re-verified under registered keys, and refused with the reason when they do not bind this exact instruction.
  3. Enforcement. The action is reachable only through the executor.

What it answers

The contract is served by the process at /.well-known/openapi.json and pinned by test to the routes it registers. The rows below are held to the same list.

RouteCredentialWhat it does
GET /healthNoneLiveness.
GET /readyNoneReadiness: the configuration loaded, the adapter constructed, and the mode.
GET /.well-known/openapi.jsonNoneThis contract.
POST /v1/actionsCaller tokenPropose one banking action, with its sign-offs where it has them. The answer is a verdict; in enforce mode an allow is claimed and executed in the same call.
POST /v1/actions/{request_id}/reconcileCaller tokenAsk what became of an attempt whose outcome is unknown. Read-only: it never sends the action again.

What it is configured with

Every value comes from the environment; files are mounted and read once on the trusted side. A missing key is a refusal to start that names the key and never its value. The reference authority and the synthetic adapter refuse to run where NODE_ENV is production, by configuration and on their own account.

KeyRequiredPurpose
BEAP_MODEOptionalshadow (evaluate and record, never execute) or enforce. Absent means shadow.
BEAP_AUTHORITYAlwaysdecionis, the hosted execution authority, or reference, refused in production.
BEAP_TENANT_IDAlwaysThe organization the actions belong to.
BEAP_ADAPTERAlwaystemenos-transact, temenos-tph, rails-lending, or synthetic, refused in production.
BEAP_ADAPTER_CONFIG_FILEWith any adapter but the synthetic oneThe adapter's mapping and transport configuration, JSON; every URL and header name is yours.
BEAP_DOWNSTREAM_CREDENTIAL_FILEOptionalThe credential the adapter presents to your core, mounted as a file; the proposer never sees it.
BEAP_CALLER_TOKEN_FILEAlwaysThe credential your workflow presents to this process, mounted as a file.
DECIONIS_API_URLWith the hosted authorityThe hosted authority, over HTTPS.
DECIONIS_API_KEY_FILEWith the hosted authorityYour organization's API key, mounted as a file and read once.
BEAP_POLICY_BUNDLE_FILEWith the reference authorityThe policy bundle, or an array of them, the reference authority evaluates.
BEAP_SIGNALS_FILEWith the reference authorityWhere the reference authority reads policy inputs: a static file, or the URL of your signal endpoint.
BEAP_APPROVER_KEYS_FILEOptionalApprover public keys the reference authority verifies sign-offs against; without it no sign-off verifies.
BEAP_ATTEMPT_TTL_SECONDSOptionalHow long an attempt stays reconcilable in this process. Absent means one day.
PORTAlwaysThe port this process listens on.

What is still open

How to get it

The executor, the kits and the rehearsal are in the repository, which is not yet public and is shared with design partners on request; no package is on a registry, and no install line is given until one resolves. Get started says which step to take first; the review guide says how to bring one workflow. Links checked 2026-09-13.