Prices
The prices used in sandbox are generally based on real world asset prices, for assets which exist (conceptually) on both mainnet and testnet. However the DEXs used on testnets are generally not arbitraged to be the same price. This can lead to the application reporting unexpectedly large (or possibly negative) fees.KYC
If the user does not have an existing MoonPay or Stripe account, a mock KYC form will be shown. This will not require a valid SSN or credit card, however the user will have to provide a valid email and phone number to get past security checks. See test credit card details that can be provided, depending on the service. The sandbox testing mode can be enabled in the application by settingsandbox to true. API keys can be obtained by contacting [email protected].
Below is an example using the Payments Widget. To learn more about the Halliday API and its options, please reach out to [email protected]:
copy
Moonpay Onramp KYC Mock Values
For testing Moonpay onramp, see the guidelines for testing. The following mock values will work for testing in the United States:| KYC Requirement | Mock Value |
|---|---|
| SSN | 123-12-3123 |
| Credit Card Number | 5385 3083 6013 5181 |
| Credit Card Expiration | 12/2030 |
| Email Verification Code | receive from email |
| Checkout Confirmation Code | Checkout1! |
| CVC | 123 |
Banxa Onramp Mock Values
For testing Banxa onramp, see the testing information. The following mock values will work for testing:| Field | Value |
|---|---|
| Card Name | Use the name that you provided as part of KYC |
| Card Number | 4111 1111 1111 1111 |
| Expiry | Any expiry date in the future |
| Security Code | Any |
Crypto.com Sandbox Onramp Mock Values
For testing Crypto.com onramp, the following mock values will work for testing:| Field | Value |
|---|---|
| Any valid email string | |
| Name | Any name |
| Card Name | Any first and last name |
| Card Number | 4242 4242 4242 4242 |
| Expiry | Any expiry date in the future |
| CVC | Any 3 digits |
| Billing address | Any US address |
| Checkout Confirmation Code | Checkout1! |
Considerations when testing MoonPay
MoonPay has several security features in place to detect and prevent fraud; given the nature of testing, it is possible some activities may be incorrectly tagged as fraudulent. To that end, it is recommended to follow these best practices to test an integration:- Do not use test credit cards in real world environments or the account will automatically be blocked.
- Do not use the same MoonPay account across sandbox and real world environments or the account will automatically be blocked.
- Fraud alerts / issues may occur if MoonPay suspects a user has multiple MoonPay accounts. Ensure that each tester uses a unique identifier (email, phone number, etc.) that has not been previously associated with MoonPay.
Sandbox Transactions with the API
Test transactions for Halliday Payments can be created for onramps and swaps using the API with sandbox assets. Sandbox transaction requests are submitted to the API using the same URL as production API requests (https://v2.prod.halliday.xyz/).
Four API endpoints accept a sandbox query parameter boolean in the request URL (?sandbox=true). The endpoints are:
GET /chainsGET /assetsGET /assets/available-inputsGET /assets/available-outputs
assets returned from the API with and without the sandbox flag have no overlap, which is also true for returned chains. For example, /assets?sandbox=true will return fake_usd and sepolia:0x among other sandbox assets. And /assets will return usd and ethereum:0x among other production assets.
When creating or confirming a quote, the API will classify the transaction as sandbox or production based on the provided input and output assets in the request body. Using the POST /payments/quotes endpoint for a sandbox transaction does not require the sandbox=true URL parameter.
Simply providing a request body specifying fake_usd to get ETH on Sepolia testnet (sepolia:0x) will be treated as a sandbox transaction because the provided assets are sandbox assets.
Example sandbox request to POST /payments/quotes:
copy

