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

# Sandbox and production

> The two environments, their base URLs, keys and data.

## Environments at a glance

| | Sandbox | Production |
| - | - | - |
| API base URL | `https://api.voucher-staging.allride.io` | `https://api.voucher.allride.io` |
| Provider surface | `/provider/v1` | `/provider/v1` |
| Workspace surface | `/partner/v1` | `/partner/v1` |
| Developer dashboard | `https://provider-developers.voucher-staging.allride.io` | `https://provider-developers.voucher.allride.io` |
| API key prefix | `vk_test_` | `vk_live_` |
| Data | Synthetic and your test data; never real voucher codes | Real |
| Availability | No service level; may be reset | Production service levels |
| Addresses | `GET /partner/v1/developer-reference` in the sandbox | `GET /partner/v1/developer-reference` in production |

The sandbox is a **separate environment**, not a test mode of production. Partner accounts, members, API keys, webhook endpoints, voucher sets and redemptions exist in one environment only. There is no "test mode" flag in production.

A key works only in its own environment: a `vk_test_` key sent to production, or a `vk_live_` key sent to the sandbox, gets 401 `api-key-invalid`.

## Getting sandbox access

1. Send your AllRide account manager (or AllRide through the **Support** link at the top of this site) your company name and the email address of your first user. AllRide creates your sandbox partner and invites that user. Sign in to the sandbox developer dashboard.
2. Request API access on the [API access page](https://provider-developers.voucher-staging.allride.io/go/api-access) (`POST /partner/v1/api-access:request`, dashboard only). AllRide activates it; until then every API key call gets 403 `api-access-inactive`.
3. Create an API key under [API keys](https://provider-developers.voucher-staging.allride.io/go/api-keys) and call `GET /partner/v1/principal` to check it.

`GET /partner/v1/api-access` shows the state: `not-requested`, `requested`, `active` or `suspended`, with the decision reason when AllRide declined or suspended access.

## Test data

The sandbox contains seeded data so you can test end to end without help from AllRide:

* The consumer **`sandbox-transit`** can see your voucher sets: when your partner is activated in the sandbox, AllRide's automation grants it access and records the consumer-side approvals it needs.
* Every 5 minutes `sandbox-transit` redeems **one voucher of every active set** that it has not redeemed from yet. This produces real `redemption-created` webhooks, stock changes and statistics.
* Change requests whose automated content checks pass are **approved automatically**; the others wait for an AllRide reviewer as in production.
* The provider `sandbox-scooters` shows sample sets (a code set with an unlimited voucher, a link set, a depleted set and an upcoming set). You can only read what consumers would see; it is not your data.

Never upload real voucher codes or personal data to the sandbox.

## Differences from production

| Topic | Sandbox | Production |
| - | - | - |
| Change request review | Automatic approval when checks pass | AllRide reviews every change request |
| Consumers | `sandbox-transit` sees and redeems your active sets | Only consumers AllRide grants access to |
| Redemptions | Automatic, one per active set | Real customers |
| Data retention | May be reset with 14 days' notice by email to your technical contact (`contacts.technicalEmail`) | Kept per [limits and retention](https://docs-provider.voucher.allride.io/guides/limits.md#data-retention) |
| Addresses | Sandbox host and egress addresses | Production host and egress addresses |
| Service level | None | Production |

Everything else is identical: endpoints, schemas, validation, limits, error codes and webhook signatures.

## Moving to production

1. Request API access in the production developer dashboard; AllRide activates it after your onboarding.
2. Create production keys (`vk_live_`) with the minimum scopes; store them in a secret manager.
3. Re-create webhook endpoints and IP allowlist entries in production; nothing is copied.
4. Re-create your voucher sets and submit their change requests; AllRide reviews them.
5. Work through the [going-live checklist](https://docs-provider.voucher.allride.io/guides/going-live.md).

## Related

* [Authentication](https://docs-provider.voucher.allride.io/guides/authentication.md)
* [Network and IP addresses](https://docs-provider.voucher.allride.io/guides/network.md)
* [Going-live checklist](https://docs-provider.voucher.allride.io/guides/going-live.md)


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