---
updatedAt: 2026-10-23T09:55:39.000Z
agentTools:
  projectIndex: https://cabify-api.readme.io/llms.txt
---

# Sandbox

This environment is your pre-production or sandbox to try out the capabilities of our API and to test the integration with your pre-production environment(s):

> ❗️ Do not use real data
>
> We highly recommend not using real data in the sandbox environment.

> 🚧 Different environments, different data
>
> The production and testing environments are independent environments where each one manages its own data. Accounts, credentials, parcels and webhook subscriptions exist in one or the other, never both. Sandbox credentials will not authenticate against production, and a parcel id from one environment is not found in the other.

# Getting access

Sandbox accounts are created by us, not self-service. If you cannot generate
test keys from the panel, or the sandbox login does not accept your production
password, that is expected — ask us and we will set the account up. It is the
single most common reason an integration stalls before it starts.

# Nothing in sandbox is real

Parcels, shipments and cancellations in sandbox are simulated end to end. No
real driver is dispatched, nothing is collected or delivered, and nothing is
charged, invoiced or committed on your account.

> 🚧 Sandbox prices are not your prices
>
> The prices sandbox returns are deliberately unrealistic, so that nobody
> mistakes them for real rates. Do not use them to price your checkout or to
> validate your pricing logic. For production rates, ask your sales account
> manager.

# If a shipment fails

Your sandbox account is ready to estimate and ship parcels in the sandbox cities
below, so you should not need any setup from us. If an estimate or a shipment
fails with an account or configuration error, such as a missing payment method,
shipping type or price, contact us with your client id, the request and the
error you got. [API error messages](./api-error-messages.md) explains each
error.

# What you can test end to end

Authentication, shipping type discovery, estimates, parcel creation, shipment
requests, cancellation, webhook subscriptions and tracking all behave as they do
in production.

Every state change sends its [notification](notifications), whether the parcel
was moved by the simulator or by us on request, so you can test your webhook
handling against sandbox parcels.

# Simulate express deliveries

To make the testing environment as similar to production as possible, we have developed a service to simulate drivers' behavior, moving around the city and picking up the parcels near them.

Once a simulated driver is assigned, it takes some time to reach the pick-up
location, and from there the parcel advances through the states of a normal
express delivery, including a fake proof of delivery.

> 🚧 The simulator is a test fixture, not the real fleet
>
> It is best effort. A parcel can stall part way through — waiting for a driver
> that never arrives, or sitting in `delivering` — without that meaning anything
> is wrong with your integration. If a test parcel has not moved for a while,
> it is the simulator, not your code.
>
> Do not build your acceptance tests around the assumption that every sandbox
> parcel reaches `delivered` on its own, and do not read a stalled sandbox
> parcel as a production behaviour you need to handle. When you need a parcel
> driven to a particular state, ask us rather than waiting.

# Simulate same-day or next-day deliveries, and failure states

The simulator covers the happy path of express deliveries. The exception flows —
`incident`, `undelivered`, `returning`, `returned`, a failed pickup — and the
same-day and next-day modalities are not reproducible on your own.

We can drive a parcel to the state you need so you can verify your handling of
it. Ask us with your client id, the parcel id, and the state you want to reach.
It is worth doing before you go live: the exception flows are exactly the ones
your integration will handle worst if it has never seen them.

## Where are these drivers located?

We have several drivers in different cities. You can't create deliveries outside.

### Lima

[block:image]
{
  "images": [
    {
      "image": [
        "https://files.readme.io/e60654b-lima.png",
        "lima.png",
        451
      ],
      "align": "center",
      "sizing": "600rt"
    }
  ]
}
[/block]

### Santiago de Chile

[block:image]
{
  "images": [
    {
      "image": [
        "https://files.readme.io/fd52f7b-chile.png",
        "chile.png",
        392
      ],
      "align": "center",
      "sizing": "600rt"
    }
  ]
}
[/block]

### Buenos aires

[block:image]
{
  "images": [
    {
      "image": [
        "https://files.readme.io/15b047d-Captura_de_Pantalla_2022-10-24_a_las_11.46.03.png",
        "Captura de Pantalla 2022-10-24 a las 11.46.03.png",
        789
      ],
      "align": "center",
      "sizing": "600rt"
    }
  ]
}
[/block]

## Bogotá

[block:image]
{
  "images": [
    {
      "image": [
        "https://files.readme.io/7c62f87-Captura_de_Pantalla_2022-10-24_a_las_16.09.45.png",
        "Captura de Pantalla 2022-10-24 a las 16.09.45.png",
        954
      ],
      "align": "center",
      "sizing": "600rt"
    }
  ]
}
[/block]