Closed beta · run Worlds on your machineBrowse worlds →
Docs menu · Column API

Worlds / Banking and brokerage

Column API

A local Column with entities, bank accounts, ACH transfers, wires, book transfers and ACH returns. Test the agent that moves money for a fintech and handles return codes correctly.

Base path
/
Auth
Basic auth with API key as password, the world key
Endpoints
14
Status
Active today

This reference previews the surface the Column world serves in the closed beta. Paths mirror the public Column API; the exact subset is confirmed when your workflow is scoped.

Connect

The run gives your agent these bindings. Keep your SDK; change only where it sends requests.

bindingmeaning
WORLDS_COLUMN_URLThis world's origin followed by /
WORLDS_API_KEYThe world key, accepted wherever Column expects a credential
WORLDS_WORLD_IDThe isolated world's identity
js · fetch
const base = process.env.WORLDS_COLUMN_URL;
const headers = {
  Authorization: "Basic " + Buffer.from(":" + process.env.WORLDS_API_KEY).toString("base64"),
  "Content-Type": "application/json",
};

const res = await fetch(base + "/bank-accounts", { headers });
const { bank_accounts } = await res.json();

API reference

Bank accounts

FDIC-insured accounts held at the bank.

  • POST/bank-accountsCreate a bank account
  • GET/bank-accounts/{id}Get a bank account
  • PATCH/bank-accounts/{id}Update a bank account
  • GET/bank-accountsList bank accounts
Fields · 4
idstringBank account id
descriptionstringAccount label
balancesobjectAvailable and pending
default_account_numberstringAccount number

ACH transfers

Credits and debits over ACH.

  • POST/transfers/achCreate an ACH transfer
  • GET/transfers/ach/{id}Get an ACH transfer
  • POST/transfers/ach/{id}/cancelCancel an ACH transfer
  • GET/transfers/achList ACH transfers
Fields · 5
idstringTransfer id
amountintegerAmount in cents
typestringCREDIT or DEBIT
statusstringinitiated, submitted, settled or returned
counterparty_idstringCounterparty

Wire transfers

Domestic wires in and out.

  • POST/transfers/wireCreate a wire
  • GET/transfers/wire/{id}Get a wire
  • GET/transfers/wireList wires
Fields · 4
idstringWire id
amountintegerAmount in cents
statusstringinitiated, completed or rejected
counterparty_idstringCounterparty

Counterparties

Outside accounts you pay.

  • POST/counterpartiesCreate a counterparty
  • GET/counterparties/{id}Get a counterparty
  • DELETE/counterparties/{id}Delete a counterparty
Fields · 4
idstringCounterparty id
routing_numberstringRouting number
account_numberstringAccount number
legal_typestringbusiness or individual

Test workflow

  1. Prepare. Select the Column setup for your workflow and review its starting records, including bank accounts, ach transfers, wire transfers.
  2. Connect. Configure your agent with this world's URL and key using the SDK example. Check that it reaches the intended API before running a test.
  3. Define. Describe the task, expected final changes and records that must stay untouched. Keep expected outcomes separate from the agent's instructions.
  4. Run and inspect. Use the dashboard or your workflow's generated CLI setup. Review final records and changes, then rerun from the same starting setup with the relevant failure conditions. Use Deployment and CI to automate the same workflow.

What to verify

  • acht_81 not retried before payday
  • No more than one retry for any R01 transfer
  • Cobalt Co marked closed and not debited again
  • acht_86 submitted to Mira Holt
  • No transfer created for Dev Rao

Test file

A task file names the jobs, the policy your agent is given and what the grader reads back from the world's final state. The agent never sees the expected outcomes.

yaml · worlds/tasks.yaml
# worlds/tasks.yaml · Column
version: 2
connector: column
seed: column-starter
mode: isolated
policy: >
  Process yesterday's ACH returns. Retry R01 debits once after payday, close
  out counterparties returned as R02 or R03, and send this week's payouts.
tasks:
  - id: originate-ach-credits-and-debits
    prompt: Originate ACH credits and debits
  - id: process-an-ach-return-by-its-return-code
    prompt: Process an ACH return by its return code
  - id: book-transfer-between-customer-accounts
    prompt: Book transfer between customer accounts
expected:
  - acht_81 not retried before payday
  - No more than one retry for any R01 transfer
  - Cobalt Co marked closed and not debited again
  - acht_86 submitted to Mira Holt
  - No transfer created for Dev Rao
scenarios:
  - return
  - validation
  - idempotency

See Tasks and outcomes for every field, and Deployment and CI to run the file on every pull request.

Failure conditions

Each one fires before the handler, at the same step on every run.

conditionwhat the agent sees
returnA debit comes back R01 insufficient funds
validationA transfer to an invalid routing number returns 400
idempotencyA reused Idempotency-Key returns the original transfer
wire-holdAn outgoing wire is held for manual review

Starting data

Start each run from the same records and relationships. The overview below describes the Column starter; use the setup supplied for your workflow when preparing your own snapshot.

RecordsStarting setup
entities60 person and business entities
bank accounts80 with account numbers
ACH transfers400 across initiated, submitted, settled and returned
wires10 outgoing, 1 held
returns7 with codes R01, R02 and R03

The record shapes below reuse this world's API field definitions. They show illustrative values and placeholders, not an importable seed. API responses and seed input can differ; include all required records and references in the accepted import format for your workflow.

Bank accounts records

Bank accounts

FDIC-insured accounts held at the bank.

FieldTypeMeaning / relationship
idstringBank account id
descriptionstringAccount label
balancesobjectAvailable and pending
default_account_numberstringAccount number
json · illustrative record shape
{
  "id": "<Bank account id>",
  "description": "<Account label>",
  "balances": {},
  "default_account_number": "<Account number>"
}

See bank accounts operations

ACH transfers records

ACH transfers

Credits and debits over ACH.

FieldTypeMeaning / relationship
idstringTransfer id
amountintegerAmount in cents
typestringCREDIT or DEBIT
statusstringinitiated, submitted, settled or returned
counterparty_idstringCounterparty
json · illustrative record shape
{
  "id": "<Transfer id>",
  "amount": 1,
  "type": "<CREDIT or DEBIT>",
  "status": "<initiated, submitted, settled or returned>",
  "counterparty_id": "<Counterparty>"
}

See ach transfers operations

Wire transfers records

Wire transfers

Domestic wires in and out.

FieldTypeMeaning / relationship
idstringWire id
amountintegerAmount in cents
statusstringinitiated, completed or rejected
counterparty_idstringCounterparty
json · illustrative record shape
{
  "id": "<Wire id>",
  "amount": 1,
  "status": "<initiated, completed or rejected>",
  "counterparty_id": "<Counterparty>"
}

See wire transfers operations

Counterparties records

Counterparties

Outside accounts you pay.

FieldTypeMeaning / relationship
idstringCounterparty id
routing_numberstringRouting number
account_numberstringAccount number
legal_typestringbusiness or individual
json · illustrative record shape
{
  "id": "<Counterparty id>",
  "routing_number": "<Routing number>",
  "account_number": "<Account number>",
  "legal_type": "<business or individual>"
}

See counterparties operations

See the Column world in the catalog