> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jointransfer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Simulate purchase

> Request an idempotent simulated debit from the shared wallet.

Call `simulate_purchase` with these arguments:

| Argument | Type | Required | Constraints |
| - | - | - | - |
| `merchant` | string | Yes | Trimmed; 1–100 characters. |
| `amount_cents` | integer | Yes | 1–100,000,000 EUR cents. |
| `request_id` | UUID string | Yes | Fresh for each intended purchase; reuse for identical retries. |

```json theme={"theme":{"light":"github-light","dark":"vesper"}}
{
  "merchant": "Example Store",
  "amount_cents": 500,
  "request_id": "49c8df37-7304-4ff7-b302-b3fc17f5bcd4"
}
```

The card must be active and the purchase must fit the per-purchase limit, remaining monthly allowance, and wallet balance. Only a successful purchase debits test money.

Identical retries return the original transaction. Reusing a UUID with changed arguments fails. Read the returned transaction outcome; tool execution errors use `isError: true`.

<Note>This tool does not pay merchants, purchase goods, or return usable payment credentials.</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.