# Sandbox environment

### Base endpoints for sandbox environment:

#### API Base URL

{% hint style="info" %}
All calls to our API should start with this specific URL: **<https://api.sandbox.finrax.com>**
{% endhint %}

Key for checking the authenticity of a Finrax [callback](https://docs.finrax.com/references/callbacks) on the sandbox environment:&#x20;

```
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8TwRhmscDIAnxihhf+KrFgFG0niwgys+j6bTPeOiOuQ5WEekoysmBTeyBTUrIBHtY11aw9VtQSDkMGu3/YmO0RZTKrZ0JbQ3HMIa7kCdETlp6vieE6GTZE/xMpj8lBHrcetECbjOGNi/qE7sd1gnfoxB2BMlxyvw15kQwimSrSx/w+VjhCe7wcE+gNEa7UJV1CE7glFmVCMwpJ5eVTR5rBJFsaGuaQinPrGfFcBE2c2SA2l701rf8RWglOr5vfOXlb8TcjumDMe4f4VGCM7c2tyZjgUxXcWfDnM94/h6MEvSkECHNxol/ibXK+SIi8boC8Wd5rqLLcnirZzx5rIgtmJ+xknraRRLjOc/66ALHVYOmsbvVTH0SSYdXz8f5pD1wMkEXyDWaWmb9wfHtS2Wr+fVX3rtVlqwRjZFPaLoX8NvkaTr3Pw7UjX5JRgGEWnMixepJT0nITO8B2YSyDOklVuCwb3rRoOvuBPGgTx5YUUff1kW6C8afjFg2cmfyrI+VZi/Sv5dbx2i7G4JZ2iBB7IMflKFamYlBFDx0/nZs/c/C2QpqWScjrvlOWuTtOTBfkWKPzr734qm7FYKXb4nCHRRSVQH9TwOS7Xm64NSEP70RxlCQK05//3hBdm5jHL7D/BFu56l/ByBMArRHyjoiQ0/TcAxctDpbYZuj7GkNsCAwEAAQ==
```

### Sandbox integration flow

Our sandbox environment provides an easy way to test integrations and get familiar with the system’s UI, without performing real blockchain interactions or crediting funds in advance.

To get started, all you need is a sandbox organisation, which we will set up for you. Once this is done, the admin user will be able to invite other team members and explore the system flows through the dashboard. The process of testing any integration can also begin once the admin creates an API key.

{% hint style="info" %}
All endpoints described in our documentation are also available in the sandbox environment using the correct URL and path. Multiple flows can be observed and tested by using the request parameters specified for each endpoint. However some endpoints might have limited capabilities when compared to their production counterparts.
{% endhint %}

#### Crypto deposits

For deposits the users can test the flows that result in a corresponding payments status( [see statuses for payments and deposits](https://docs.finrax.com/references/crypto-payments/initiate-a-crypto-payment-request)) by passing a certain string keyword in the client label field.&#x20;

For example to test a payment, that results in status `DEPOSITED` and has a single `CONFIRMED` deposit to it, the user should use client label like `exact-01`

The keyword should always be at the start of the client label.

<table><thead><tr><th>Prefix</th><th valign="middle">Payment status</th><th>Processing result</th></tr></thead><tbody><tr><td><code>exact</code></td><td valign="middle"><code>DEPOSITED</code></td><td>One <code>CONFIRMED</code> deposit that matches the expected deposit currency, network and amount.</td></tr><tr><td><code>underpaid</code></td><td valign="middle"><code>DEPOSITED</code> </td><td>One <code>CONFIRMED</code> deposit that matches the expected deposit currency and network.  The actual deposit amount will be half of the expected amount. </td></tr><tr><td><code>overpaid</code></td><td valign="middle"><code>OVERPAID</code></td><td>One <code>CONFIRMED</code> deposit that matches the expected deposit currency and network. The actual deposit amount will be twice the expected amount. In addition, one <code>OVERPAYMENT</code> refund for half the actual amount.</td></tr><tr><td><code>follow-up</code></td><td valign="middle"><code>OVERPAID</code></td><td>Two <code>CONFIRMED</code> deposits that match the expected deposit currency, network and amount exactly. In addition, one <code>FOLLOW_UP_DEPOSIT</code> refund for half the actual amount.</td></tr><tr><td><code>below-minimum</code></td><td valign="middle"><code>UNPROCESSABLE</code></td><td>One <code>UNPROCESSABLE</code> deposit that matches the expected deposit currency and network. Tthe actual deposit amount is will be less than the minimum deposit amount.</td></tr><tr><td><code>blocked</code></td><td valign="middle"><code>BLOCKED</code></td><td>One <code>BLOCKED</code> deposit that matches the expected deposit currency, network and amount exactly. In addition, one refund for the entire actual amount.</td></tr></tbody></table>

A callback notification can be expected for deposits with status `CONFIRMED`.

#### Crypto withdrawals

For withdrawals you can test different statuses by triggering them with a prefix in the label of the withdrawal.&#x20;

For example to test a crypto withdrawal that results in status `SENT`, the client label can be `completed-withdrawal-01`.

The keyword should always be at the start of the client label.

| Prefix      | Crypto withdrawal status |
| ----------- | ------------------------ |
| `completed` | `SENT`                   |
| `failed`    | `ABORTED`                |
| `blocked`   | `REJECTED`               |
