Limit and recipient checks in single-digit milliseconds.
Payment institutions and e-money companies hand support, reconciliation and merchant operations to agents. TCMB and BDDK rules, PCI DSS and KVKK apply at the same time. Thulpar’s tool rails are deterministic. Cedar authorisation, the argument schema and the sink policy judge a payment call within milliseconds. A card number is found with Luhn and masked before it reaches a log.
tr-banking-bddk
On-premise or a managed private instance, Standard tier. A pack derived from the banking template.
- Law 6493 · TCMB payment services regulations
- PCI DSS 4.0 (PAN masking, logging)
- KVKK 6698 · BDDK Art. 25
The latency budget
Even 200 ms is too much in a payment flow. The guardrail has to be deterministic and the model judge asynchronous.
Watch the runs →The scenarios below are derived from the product’s real rules.
Every scenario is an agent run written to the product’s real rules. It shows the stage, the rails, the decision, the finding, the approval and the ledger entry step by step.
3 scenarios →What comes up in practice
The latency budget
Even 200 ms is too much in a payment flow. The guardrail has to be deterministic and the model judge asynchronous.
PAN and identity data
Card numbers, TCKN and IBAN appear both in prompts and in tool output.
A growing MCP tool surface
When a new MCP server is added, its schema has to be pinned and any later change caught.
3 scenarios
The player opens on the flagship scenario. Pick the others below.
A merchant asks for a refund with the card number; the PAN is found by Luhn and masked, a refund above the limit waits for four eyes.
10 GR-*
| id | control | OWASP | rails |
|---|---|---|---|
| GR-PII-01 | PII and special-category detection + masking (TCKN, IBAN, phone, health) on input/tool/output/log | LLM02 / — / MCP10 | pii.detect, pii.redact, file.metadata_pii |
| GR-TOOL-02 | Durable human approval on high-impact actions, four eyes | LLM06 / ASI02, ASI09 | labels.sink |
| GR-TOOL-01 | Tool-call privilege policy (default deny) | LLM06 / ASI02, ASI03 / MCP02 | tool.authz, tool.args |
| GR-CONT-01 | Content-harm policy (AILuminate 12 + TR) with tenant thresholds | LLM09 / ASI09 | content.input, content.output, toxicity, topic, groundedness, language, image.content_safety, banlist, competitors |
| GR-LOG-01 | Tamper-evident event log (model/tool/policy/approval/hit), ≥ 6 months, auditor export | — / — / MCP08 | |
| GR-INJ-02 | Indirect injection from tool/RAG output: untrusted label, no new tool call without policy | LLM01, LLM08 / ASI01, ASI06 / MCP06, MCP10 | injection.indirect, file.hidden_text |
| GR-IFC-01 | Information-flow labels (integrity, confidentiality, tenant, PII class) enforced at sensitive sinks | LLM02 / ASI01, ASI03 / MCP10 | labels.sink, pii.detect |
| GR-TOOL-05 | SQL / command / path traversal / RFI / XSS injection in tool arguments (libinjection + OWASP CRS) | LLM05 / ASI02, ASI05 / MCP05 | tool.args.injection |
| GR-TOOL-03 | Tool schema pinning / diff / quarantine (rug-pull) | LLM03 / ASI04 / MCP03, MCP04 | tool.schema_pin |
| GR-TOOL-04 | Tool description hygiene | LLM03 / ASI04 / MCP03 |
See it in your own environment.
A one-hour technical demo: your scenario, your policy pack, on a closed-circuit install. Then the install kit and a trial licence for a pilot.