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

# Fund Sandbox accounts

> All the ways to fund a Sandbox account on the Uphold platform — bank deposit simulation, crypto deposit simulation, and other test helpers for testing flows.

This page lists every way to fund a Sandbox account so you can perform a deposit and use the resulting balance for further testing.

## Simulated bank deposit

Use the [Simulate bank deposit](./simulate-bank-deposit) test helper to credit a Sandbox account as if funds had arrived via bank transfer. Set up the target account first with [Setup account deposit method](../set-up-account-deposit-method) and use the returned details when calling the simulator.

## Simulated crypto deposit

Use the [Simulate crypto deposit](./simulate-crypto-deposit) test helper to credit a Sandbox account as if a crypto deposit had been received. Set up the target account first with [Setup account deposit method](../set-up-account-deposit-method) and use the returned details when calling the simulator.

Because the deposit is simulated, the transaction hash is not available on any blockchain. If you need an actual on-chain transaction, use the [testnet flow below](#crypto-deposit-via-testnets) instead.

## Crypto deposit via testnets

When testing crypto deposit and withdrawal flows in Sandbox, Uphold integrates testnet blockchains so you can simulate real on-chain activity without using real funds.
Use the details returned by the [Setup account deposit method](../set-up-account-deposit-method) endpoint to deposit testnet tokens into your Sandbox account.

**Uphold does not supply test tokens.** You must source them yourself using the faucets listed below, or any other preferred alternative.

### Recommended token faucets

| Asset      | Testnet        | Faucet                                                                                                                                                                       |
| ---------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| BTC        | Testnet        | [Bitcoin Testnet Faucet](https://bitcoinfaucet.uo1.net/), [Coinfaucet](https://coinfaucet.eu/en/btc-testnet/), [testnet-faucet.com](https://testnet-faucet.com/btc-testnet/) |
| ETH        | Sepolia        | [Infura Sepolia Faucet](https://www.infura.io/faucet/sepolia), [GetBlock Faucet](https://getblock.io/faucet/eth-sepolia/)                                                    |
| XRP        | Ripple Testnet | [XRP Faucets](https://xrpl.org/resources/dev-tools/xrp-faucets)                                                                                                              |
| SOL        | Devnet         | [Solana Faucet](https://faucet.solana.com/), [SolFaucet](https://solfaucet.com/), [SolFaucet (Toga)](https://solfaucet.togatech.org/)                                        |
| USDC, EURC | Multiple       | [Circle Faucet](https://faucet.circle.com/)                                                                                                                                  |
| Multiple   | Multiple       | [Chainlink Faucet](https://faucets.chain.link/)                                                                                                                              |
| Multiple   | Multiple       | [Chainstack Faucet](https://faucet.chainstack.com/)                                                                                                                          |

Please note that faucet availability and token limits are managed by third parties and may vary over time.

<Note>
  Crypto withdrawals in Sandbox are simulated by default and do not reach the blockchain. Refer to your Account Manager if you require on-chain withdrawal testing.
</Note>

## Card deposit using test cards

Use the test cards below to simulate card deposit flows in the Sandbox environment without processing real transactions. These are cards you can use to create an [external account](../../external-accounts/create-external-account) and use it as the `origin` when [creating a quote](../../transactions/create-quote).

### Test cards

The following cards are available for testing across different networks, countries, and card types.

<Tabs>
  <Tab title="Mastercard">
    | Card Number        | Type   | Country | Features            | Method  |
    | ------------------ | ------ | ------- | ------------------- | ------- |
    | `5131072454408923` | Credit | FR      | Deposit             | N/A     |
    | `5163150000000005` | Credit | AU      | Deposit             | N/A     |
    | `5555555555554444` | Credit | BR      | Deposit             | N/A     |
    | `5454545454545454` | Credit | US      | Deposit             | N/A     |
    | `2221000000000009` | Credit | US      | Deposit             | N/A     |
    | `5163613613613613` | Debit  | AU      | Deposit             | N/A     |
    | `5105105105105100` | Credit | US      | Deposit             | N/A     |
    | `5502514549870410` | Debit  | FR      | Deposit             | Instant |
    | `5355223761921186` | Debit  | GB      | Deposit, Withdrawal | Instant |
    | `5573606426146833` | Debit  | GB      | Deposit, Withdrawal | Instant |
    | `5318773012490080` | Debit  | US      | Deposit, Withdrawal | Instant |
    | `5355224542121849` | Debit  | GB      | Deposit, Withdrawal | N/A     |
    | `5574357535453624` | Debit  | GB      | Deposit             | N/A     |
    | `5436031030606378` | Credit | MU      | Deposit             | N/A     |
    | `5569757734785691` | Debit  | SG      | Deposit             | N/A     |
    | `5518832400606463` | Debit  | US      | Deposit             | N/A     |
    | `5385308360135181` | Credit | US      | Deposit             | N/A     |
    | `5259410220714099` | Credit | US      | Deposit             | N/A     |
    | `5121073611487018` | Credit | US      | Deposit             | N/A     |
    | `5291144083573579` | Credit | US      | Deposit             | N/A     |
  </Tab>

  <Tab title="Visa">
    | Card Number        | Type   | Country | Features            | Method  |
    | ------------------ | ------ | ------- | ------------------- | ------- |
    | `4444333322221111` | Credit | US      | Deposit             | N/A     |
    | `4111111111111111` | Debit  | PL      | Deposit             | N/A     |
    | `4447336775378848` | Debit  | US      | Deposit             | N/A     |
    | `4485040371536584` | Credit | US      | Deposit             | N/A     |
    | `4024007186645015` | Credit | US      | Deposit             | N/A     |
    | `4452927588210665` | Credit | US      | Deposit             | N/A     |
    | `4485597929486000` | Credit | US      | Deposit             | N/A     |
    | `4243754271700719` | Credit | GB      | Deposit             | N/A     |
    | `4000000000000002` | Credit | US      | Deposit             | N/A     |
    | `4000000000000028` | Credit | US      | Deposit             | N/A     |
    | `4000000000001091` | Credit | US      | Deposit             | N/A     |
    | `4000000000000036` | Credit | US      | Deposit             | N/A     |
    | `4024764449971519` | Debit  | US      | Deposit, Withdrawal | Instant |
    | `4462030000000000` | Debit  | GB      | Deposit, Withdrawal | Instant |
    | `4917300800000000` | Debit  | GB      | Deposit             | N/A     |
    | `4929421234600821` | Credit | GB      | Deposit             | N/A     |
    | `4921817844445119` | Debit  | GB      | Deposit, Withdrawal | Instant |
    | `4659105569051157` | Debit  | GB      | Deposit, Withdrawal | Instant |
    | `4658584090000001` | Debit  | GB      | Deposit, Withdrawal | Instant |
    | `4659465888705671` | Debit  | GB      | Deposit             | N/A     |
    | `4242424242424242` | Credit | GB      | Deposit             | N/A     |
    | `4917610000000000` | Credit | PL      | Deposit             | N/A     |
  </Tab>
</Tabs>

<Note>
  All test cards accept any three-digit CVV as valid, and any future expiry date in the MM/YY format.
</Note>

### Simulating errors

To trigger a specific error response, use the corresponding reserved amount when creating a transaction with any of the test cards above. All other amounts will result in a successful transaction.

| Amount  | Error Code              | Description                                           |
| ------- | ----------------------- | ----------------------------------------------------- |
| `12.12` | `card_unauthorized`     | The card is not authorized for this transaction.      |
| `15.15` | `card_declined_by_bank` | The issuing bank declined the transaction.            |
| `20.20` | `card_expired`          | The card has expired.                                 |
| `26.26` | `insufficient_funds`    | The card has insufficient funds to cover the amount.  |
| `34.34` | `velocity`              | The card has exceeded its transaction velocity limit. |
| `60.60` | `card_unauthorized`     | The card is not authorized for this transaction.      |

## Testing APMs

Each alternative payment method (APM) has its own way of being tested in Sandbox. Follow the steps for the method you want to test below.

### Setting up Apple Pay

To test Apple Pay in Sandbox, we must use Apple's own Sandbox testing environment, using a dedicated Apple ID and Apple's test cards so you can go through the full deposit and withdrawal flow without moving real funds.

<Steps>
  <Step title="Create a Sandbox Apple Account">
    Apple Pay's Sandbox mode uses a dedicated Apple ID for testing, separate from your personal Apple ID. Create one in App Store Connect under **Users and Access → Sandbox → Testers**, or reuse an existing Sandbox tester.
  </Step>

  <Step title="Sign in to the Sandbox Apple Account on your test device">
    On your Apple Pay-capable device, go to **Settings → Wallet & Apple Pay** (iOS) or **System Settings → Wallet & Apple Pay** (macOS) and sign in to the **Sandbox Apple Account** with the tester credentials. This is separate from the device's main Apple ID — no sign-out required.
  </Step>

  <Step title="Add a test card to Wallet">
    While signed in to the Sandbox Apple Account, add one of Apple's test cards to Wallet. Apple Pay recognizes it as a Sandbox card, so no real funds move regardless of the amount you transact.
  </Step>

  <Step title="Authorize and transact">
    Use Apple Pay to authorize, where you will see a "TEST CARD" badge, and complete the transaction.
  </Step>
</Steps>

<Note>Unlike Production, [Apple Pay servers don't require domain verification in the Sandbox environment](https://developer.apple.com/documentation/applepaywebmerchantregistrationapi/preparing-merchant-domains-for-verification#Host-the-domain-verification-file), so you can test web integrations without registering your domain first.</Note>

See Apple's [Apple Pay sandbox testing](https://developer.apple.com/apple-pay/sandbox-testing/) guide for the full details, including region-specific test card numbers.

See the Apple Pay developer guides for a full walkthrough: [Deposit via Payment Widget](/developer-guides/apm-transfers/deposit/via-payment-widget/apple-pay) and [Withdrawal via Payment Widget](/developer-guides/apm-transfers/withdrawal/via-payment-widget/apple-pay).

### Setting up Google Pay

Testing Google Pay in Sandbox uses Google Pay's own test environment, so you can go through the full deposit flow without moving real funds. Google Pay automatically provides test cards for you to use, so you can make test transactions without any additional setup.

<Steps>
  <Step title="Create a Google account or use any existing one">
    Sign in at [Google](https://accounts.google.com/) with your account — or sign up if you don't have one yet.
  </Step>

  <Step title="Authorize and transact">
    Select one of Google Pay's preset test cards to authorize and complete the transaction.
  </Step>
</Steps>

See the Google Pay developer guides for a full walkthrough: [Deposit via Payment Widget](/developer-guides/apm-transfers/deposit/via-payment-widget/google-pay) and [Deposit via REST API](/developer-guides/apm-transfers/deposit/via-rest-api/google-pay).

### Setting up PayPal

Testing PayPal in Sandbox relies on PayPal's own sandbox environment to authorize transactions, so you can go through the full deposit and withdrawal flow without moving real funds.

<Steps>
  <Step title="Create a PayPal sandbox account">
    Sign in at the [PayPal developer site](https://developer.paypal.com/) with your PayPal account — or sign up if you don't have one yet — then follow PayPal's guide to [create a sandbox account](https://developer.paypal.com/tools/sandbox/accounts/).
  </Step>

  <Step title="Match the user's country">
    Choose the same country for your PayPal sandbox account as the country of the user you're testing with.
  </Step>

  <Step title="Authorize and transact">
    Use the PayPal sandbox account credentials to authorize and complete the transaction.
  </Step>
</Steps>

See the PayPal developer guides for a full walkthrough: [Deposit via REST API](/developer-guides/apm-transfers/deposit/via-rest-api/paypal) and [Withdrawal via REST API](/developer-guides/apm-transfers/withdrawal/via-rest-api/paypal).
