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

# Entornos y modo de prueba

> Implementaciones, credenciales y aprobación de acceso separadas para sandbox y producción.

Maple ejecuta dos entornos totalmente aislados, cada uno con su propia URL base y sus propias credenciales:

| Entorno | Panel (consola de desarrolladores) | URL base | Credencial |
| - | - | - | - |
| **Sandbox** | `https://app.staging.maple.inc` | `https://api.staging.maple.inc/v1` | `mpk_test_…` |
| **Producción** | `https://app.maple.inc` | `https://api.maple.inc/v1` | `mpk_live_…` |

Desarrolle y pruebe en un **sandbox** que Maple haya preparado para su app aprobada. Los miembros invitados crean sus propias claves de sandbox desde la consola de desarrolladores. La aprobación de la app, los accesos otorgados a locales y la configuración de capacidades siguen a cargo de Maple.

Cada panel lee y modifica únicamente su propia implementación. Siga la URL del panel o de la invitación correspondiente, inicie sesión si es necesario y revise su indicador de entorno y la URL base de la API. No dé por hecho que exista una sesión compartida entre implementaciones, una configuración de app compartida ni la creación automática de un sandbox.

Los dos entornos no comparten credenciales ni datos operativos: una conexión, suscripción o pedido en el sandbox no es el recurso de producción.

<Info>
  El contrato de la API y el formato de firma son compartidos, pero cada implementación necesita su propia app
  aprobada, credenciales, accesos otorgados, endpoints y configuración de capacidades. Cambiar la URL base no equivale
  a la aprobación de producción.
</Info>

## Por qué importa

Use únicamente los locales de prueba aislados y los flujos compatibles que Maple haya preparado para su integración. Verifique allí el flujo de negocio completo, el manejo de firmas y los diagnósticos antes de solicitar la aprobación de producción; un webhook sintético exitoso no equivale a una certificación.

```mermaid theme={null}
flowchart LR
  subgraph Sandbox [Sandbox · api.staging.maple.inc]
    SK[mpk_test_ key] --> SD[(sandbox data)]
  end
  subgraph Production [Production · api.maple.inc]
    LK[mpk_live_ key] --> LD[(live data)]
  end
```

## Cómo distinguir los entornos en su código

El sandbox y producción son **implementaciones separadas en hosts distintos**, así que una solicitud o un webhook pertenece al entorno que indiquen su host y su credencial; no se infiere del contenido. Cuando sí quiera saberlo de forma explícita:

* `GET /v1/me` devuelve el `environment` de la credencial (`test` o `live`).
* El recurso de pedido incluye `livemode`: `true` en producción, `false` en el sandbox.

<Warning>
  Use una suscripción a webhooks distinta por entorno y apunte cada una a la URL base correspondiente. El evento
  entregado no incluye un campo de entorno: el endpoint que lo recibe ya le indica de qué entorno proviene.
</Warning>

## Un flujo de trabajo que empieza con pruebas

<Steps>
  <Step title="Desarrolle en el sandbox">
    Apunte su cliente a `https://api.staging.maple.inc/v1` con su clave `mpk_test_…`. Conéctese al local de sandbox
    que Maple le otorgue, suscriba un webhook y ejecute el ciclo completo de pedidos.
  </Step>

  <Step title="Pruebe su manejador de webhooks">
    `POST /v1/webhook_subscriptions/{id}/test` entrega un evento `webhook.test` firmado para que pueda confirmar la
    verificación de la firma y su respuesta `2xx` antes de que exista un pedido real.
  </Step>

  <Step title="Obtenga la aprobación y salga en vivo">
    Maple aprueba por separado el acceso a producción y prepara los accesos otorgados de la app y de los locales. Use
    el panel de producción para crear una clave `mpk_live_…` con los alcances (scopes) adecuados y luego use
    `https://api.maple.inc/v1`. Registre un webhook de producción y complete la configuración que necesite su
    integración, incluida una conexión de receptor de pedidos para las integraciones de POS y pedidos. No dé por hecho
    que los accesos, las banderas ni las suscripciones del sandbox se trasladan.
  </Step>
</Steps>

## Lista de verificación para salir en vivo

* La URL base y la credencial de su cliente apuntan al mismo entorno.
* Su manejador de webhooks verifica la firma HMAC y rechaza las firmas incorrectas o vencidas. Vea [Webhooks](/es/developer-api/concepts/webhooks).
* Usted deduplica las entregas por el `id` del sobre (la entrega es de al menos una vez).
* Responde `2xx` rápidamente y hace el trabajo más lento de forma asíncrona.
* Las llamadas de decisión se reintentan de forma segura ante errores transitorios (son [seguras ante reintentos](/es/developer-api/concepts/idempotency)).
* Guarda de forma segura el secreto de firma de producción (`mwhsec_…`): se muestra una sola vez.


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