> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.thepennyinc.com/simulation/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.thepennyinc.com/_mcp/server. # Simulation ## Docs - [Simulation Scenarios](https://docs.thepennyinc.com/simulation/simulation-scenarios.md): Transaction kinds and the events that move them through their lifecycle. - [Simulating a Card Purchase](https://docs.thepennyinc.com/simulation/simulating-a-card-purchase.md): Create a purchase, settle it, and read back the result. ## API Docs - API Reference > Transactions [Simulate a transaction update](https://docs.thepennyinc.com/simulation/api-reference/transactions/update.md) - API Reference > Transactions > Card [Simulate a card transaction](https://docs.thepennyinc.com/simulation/api-reference/transactions/card/create.md) - API Reference > Transactions > Payment [Simulate a bank payment](https://docs.thepennyinc.com/simulation/api-reference/transactions/payment/create.md) ## OpenAPI Specification The raw OpenAPI 3.1 specification for this API is available at: - [OpenAPI JSON](https://docs.thepennyinc.com/openapi.json) - [OpenAPI YAML](https://docs.thepennyinc.com/openapi.yaml) > **Note:** This page contains both a page directory (above) and the landing page content (below). The page directory is generated for agent use and does not appear on the landing page. > For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.thepennyinc.com/simulation/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.thepennyinc.com/_mcp/server. # Simulation Penny Simulation stands in for external card networks and bank rails in Sandbox. It lets you trigger a card purchase, settle or adjust it, cancel or expire a hold, or record a payment to or from a linked account on demand. Penny processes these simulated events through the same authorization, spend-control, and ledger processing as real activity, so the authorization decides whether a purchase is approved or declined. Simulation is available **only in Sandbox** (`https://simulate.sandbox.api.thepennyinc.com`). See [Environments](/get-started/environments). ## How it's different from Banking and Issuing Banking and Issuing create and manage the resources a transaction happens *to* — accounts, cards, cardholders, linked accounts, spend controls — all within a [Program](/get-started/platform-concepts/programs). Simulation does not create resources. It drives events against resources that already exist: #### Banking & Issuing Create the account, card, or cardholder. Register a linked account. Set up a spend control. #### Simulation Trigger what would normally arrive from the card network or bank rail against something you already created — a purchase, a settlement or adjustment, a cancellation or expiry, a payment from a linked account. Create everything the scenario needs — the Capital Account, the card and cardholder, the linked account — through Banking and Issuing first. Simulation picks up from there. ## Two kinds of calls Every scenario is one **creation** call followed by zero or more **event** calls: * `POST /transaction/card` starts a card purchase, and returns a `transaction_id`. * `POST /transaction/payment` starts a payment between a linked account and a Capital Account, in either direction. * `POST /transaction/update` applies a follow-up event — settlement, adjustment, cancellation, or expiry — to a transaction created by either of the above. Simulated transactions are ordinary Sandbox transactions. Read them through Penny Banking's `GET /transactions/{transaction_id}` endpoint, and receive their webhooks like any other transaction. See [Simulation Scenarios](/simulation/simulation-scenarios) for transaction kinds and events, and [Simulating a Card Purchase](/simulation/simulating-a-card-purchase) for a walkthrough.