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

# Sandbox testing

> Drive payouts to specific statuses and simulate error conditions in the Karat sandbox using pre-configured test recipient email addresses.

Sandbox lets you build and test your integration without moving real money. To
get sandbox access, contact [peter@trykarat.com](mailto:peter@trykarat.com) —
see [Environments](/developers/environments).

Once sandbox is enabled on your account, you can use a set of pre-configured
**test recipients**. Sending a payout to one of these email addresses drives the
payout to a specific outcome.

## Simulate payout statuses

Send a payout to one of these recipients to drive it to the corresponding
status:

| Recipient email                            | Resulting status    |
| ------------------------------------------ | ------------------- |
| `sandbox+completed@trykarat.com`           | Completed           |
| `sandbox+failed@trykarat.com`              | Failed              |
| `sandbox+returned@trykarat.com`            | Returned            |
| `sandbox+canceled@trykarat.com`            | Canceled            |
| `sandbox+pending@trykarat.com`             | Pending             |
| `sandbox+created@trykarat.com`             | Created             |
| `sandbox+awaiting_acceptance@trykarat.com` | Awaiting acceptance |

## Simulate errors

Send a payout to one of these recipients to trigger a specific error:

| Recipient email                                 | Simulated error                              |
| ----------------------------------------------- | -------------------------------------------- |
| `sandbox+error_insufficient_funds@trykarat.com` | Insufficient funds to cover the payout batch |
| `sandbox+error_invalid_amount@trykarat.com`     | All payout amounts must be greater than zero |

## Example

```bash theme={null}
curl https://payouts.api.trykarat.com/payments \
  -H "Authorization: Bearer YOUR_SANDBOX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "payouts": [
      { "payeeEmail": "sandbox+completed@trykarat.com", "amount": 25000 }
    ]
  }'
```

<Tip>
  Combine sandbox status recipients with [webhooks](/developers/webhooks) to
  verify your `payout.updated` handler end to end before going live.
</Tip>
