SCENARIOS / SC-006 / PAYMENT PROCESSOR
SC-006 Payments / Fintech

Payment Processor

A European processor — cross-border geographies routed onto SEPA, BACS and AUTOGIRO rails.

Async Tick FSM
UK DE FR SW BACS AUTOGIRO SEPA SCHEME LOOKUP MERCHANT PAYMENT
SC-006 / SCHEMATICPayments / Fintech
Clock tick
Update Asynchronous
Geographies 7 markets
Schemes SEPA / BACS / AUTOGIRO
Tables 8
OVERVIEW

A payment processor segmented by geography and industry. Nested taxonomy chains route a customer's region to a country and on to its settlement scheme — SEPA across the eurozone, BACS in the UK, AUTOGIRO in Sweden — and map an industry vertical to a plausible monthly-recurring-revenue band. Merchants onboard through verification, accrue fees and packages, and run payments against bank accounts.

Realistic, referentially-consistent fintech data: cross-border flows, scheme lookups and revenue bands that hold together across eight linked tables. Useful for testing analytics and agents over segmented payment data without touching anything sensitive — every value is generated from the declared distributions.

TRAITS
Async
Independent, event-driven timelines
Tick
Discrete fixed-step time
FSM
Entities are finite-state machines
SCHEMA

Linked tables with guaranteed referential integrity.

TABLECOLUMNSDESCRIPTION
merchant ID, geo, scheme, partner, industry_vertical, customer_segment, activities, manual_checks, visits, contact_email, verification, mrr, current_state One row per merchant: geography, settlement scheme, acquisition partner, vertical, verification state and monthly recurring revenue.
payment ID, geo, country, industry_vertical, customer_segment, partner, merchant_id, bank_account_id, current_state One row per payment: geography and resolved country, and references to the merchant and bank account.
bank_account ID, geo, industry_vertical, customer_segment, partner, merchant_id, current_state Merchant bank accounts that payments settle against.
package ID, geo, industry_vertical, customer_segment, partner, merchant_id, current_state Pricing packages held by a merchant.
fee ID, merchant_id, package_id, current_state Fees linking a merchant to a package.
verification ID, geo, industry_vertical, customer_segment, partner, manual_checks, merchant_id, current_state Verification records and manual-check counts per merchant.
crm ID, merchant_id, current_state CRM record per merchant.
partneractor ID, partner, current_state Acquisition partners (Xero, QuickBooks, Zuora, Direct, Dashboard).
LIVE API

Generated REST endpoints. Also exposed as MCP tools.

POST /scenarios/payment-processor/experiments Seed a new world (an experiment)
POST /scenarios/payment-processor/experiments/{eid}/run Advance N turns, or request an event
GET /scenarios/payment-processor/experiments/{eid}/entities/payment Query payments by geography or scheme
GET /scenarios/payment-processor/experiments/{eid}/events Append-only event log
GET /scenarios/payment-processor/experiments/{eid}/dataset Download the exported dataset
SEMANTIC LAYER

OSI-compatible definition, emitted with the dataset.

# payment-processor.osi.yaml — emitted automatically
semantic_model:
  name: "payment-processor"
  source: "duckdb://payment-processor.db"
  entities:
    - name: merchant
      primary_key: id
  dimensions:
    - name: state
      type: categorical
    - name: t
      type: time
  measures:
    - name: row_count
      agg: count
    - name: active
      agg: sum
      filter: "state = 'ACTIVE'"