Documentación / Sandbox
Sandbox
Los diecinueve escenarios y cómo invocarlos.
Las credenciales dbs_test_ usan siempre el courier simulado. Añada test_options.scenario a la petición para forzar un comportamiento determinista. Una clave dbs_live_ que envíe test_options es rechazada, no ignorada.
{
"workspace_id": "ws_...",
"test_options": { "scenario": "upstream_timeout_after_send" }
}Ensaye upstream_timeout_after_send antes de ir a producción. Crea una guía real en el courier simulado y después falla, igual que una respuesta perdida de verdad. Es la única forma de comprobar que su código no duplica pedidos.
| Escenario | Qué simula | Qué ejercita |
|---|---|---|
normal_delivery | Creación exitosa y avance completo del tracking hasta entregado. | Camino feliz de extremo a extremo. |
delayed_delivery | El envío entra en estado delayed antes de continuar. | Manejo del estado delayed y del evento shipment.delayed. |
upstream_timeout_before_send | Timeout antes de que la solicitud llegue al courier. No se creó nada. | Reintento seguro: la operación puede repetirse sin duplicar. |
upstream_timeout_after_send | El courier SÍ creó la guía pero la respuesta se perdió. Es el caso peligroso: un reintento ciego duplicaría una guía real y cobrable. | unknown_outcome, reconciliación por ventana de tiempo y enlace de la guía real. |
upstream_unavailable | El courier responde 503. Error transitorio. | Reintento con backoff y estado degraded de la conexión. |
invalid_credentials | Las credenciales de la cuenta son rechazadas. | courier_action_required y el evento courier_connection.action_required. |
session_expired | La sesión caducó a mitad de la operación. | Renovación transparente por el session broker y reintento interno. |
invalid_destination | La agencia de destino no admite la ruta solicitada. | courier_rejected, error no reintentable. |
air_service_unavailable | El servicio aéreo no está disponible para el par origen-destino. | Degradación a terrestre o error accionable. |
person_not_found | La búsqueda por documento no devuelve resultados. | Captura manual de los datos del destinatario. |
duplicate_person | La búsqueda por documento devuelve más de una coincidencia. | Desambiguación por parte del usuario. |
collection_service_disabled | La cuenta no tiene habilitada la cobranza contra entrega. | capability_unavailable por cuenta, no por plataforma. |
warranty_rejected | El courier rechaza el monto de garantía declarado. | courier_rejected con detalle del campo. |
cancellation_allowed | La preguía puede anularse. | Flujo de cancelación completo. |
cancellation_rejected | El courier ya no permite anular la preguía. | conflict y estado de envío inalterado. |
label_available | El rótulo está disponible inmediatamente. | Descarga de documentos. |
voucher_unavailable | El comprobante no está disponible. | document_unavailable y reintento diferido. |
grt_unavailable | El documento GRT no está disponible. | document_unavailable. |
delivered_after_5_minutes | El envío se entrega cinco minutos (de reloj virtual) después de creado. | Sincronización de tracking y webhook shipment.delivered. |