Skip to main content
El entorno de pruebas es un Gudink aparte para integrar sin riesgo. Toda la API funciona igual que en producción, y además tiene una ruta para hacer avanzar un pedido de prueba sin plata. Integrá y probá siempre acá primero. En producción no hay modo de prueba: un pedido creado en producción es real y se te cobra.

Las dos direcciones

Una clave de pruebas no sirve en producción, ni al revés: responde 401 invalid_api_key. Todos los ejemplos de esta documentación usan dos variables de entorno, para que ningún comando le pegue a producción por accidente:
Al pasar a producción cambian las dos variables (GUDINK_API_BASE="https://app.gudink.com/api/v1" y una clave gk_live_), nada más.

Es otra cuenta

La cuenta, los productos, las claves y los destinos de avisos de pruebas no son los de producción y no se copian. En pruebas hay que crear todo de nuevo:
  1. Registrate en staging.gudink.com y verificá el email.
  2. Pedile a Gudink que habilite la API en esa cuenta. Ver cómo pedir acceso.
  3. Completá los datos de facturación de esa cuenta.
  4. Diseñá ahí los productos que vas a usar para probar. Tienen otros product_id y variant_id que los de producción.
  5. Creá la clave en Integraciones > API. Empieza con gk_stg_.
  6. Da de alta el destino de avisos en Integraciones > API > Avisos.
Al pasar a producción, todo eso se crea de nuevo en https://app.gudink.com: cuenta habilitada, productos, clave gk_live_ y destino de avisos con su secreto nuevo. No guardes en tu código ningún product_id ni variant_id de pruebas.

Qué no pasa en pruebas

No pagues desde payment.pay_url en pruebas. Para hacer avanzar un pedido está la simulación.

El stock de pruebas es chico

Los pedidos de prueba reservan stock igual que en producción (ver Stock y reservas).
  • Cancelá cada pedido de prueba que no vayas a simular hasta el final, con POST /orders/{id}/cancel. Si los dejás vencer, retienen unidades hasta 72 horas y tus próximas pruebas pueden responder 409 out_of_stock aunque la variante diga available: true.
  • No hay una forma garantizada de provocar un out_of_stock en pruebas. Tu código tiene que manejarlo igual: probalo, por ejemplo, con un doble de la API en tus tests.

Probar product_archived

No se puede archivar un producto por la API. Para probar el rechazo:
  1. En el panel de pruebas, archivá un diseño de prueba.
  2. Mandá un pedido con su product_id. Responde 409 product_archived. Ese chequeo va antes que el de la cotización, así que sirve cualquier quote_id.
Desde ese momento ese producto ya no sale en GET /products, GET /products/{id} responde 404 y cotizarlo también responde 404 not_found.

Simular el recorrido de un pedido

POST /sandbox/orders/{id}/simulate hace avanzar un paso un pedido tuyo creado por API. Los avisos (webhooks) salen igual que en producción: es la forma de probar tu destino de avisos y el seguimiento de punta a punta. Cuerpo: { "event": "<paso>" }. Los pasos van en este orden, y cada uno exige el anterior: Pagar:
Entrar a producción:
Despachar:
Entregar:

Qué responde

El 409 invalid_transition trae el estado actual del pedido y el paso que pediste:

Lo que conviene saber

  • Sólo existe en el entorno de pruebas. En producción la ruta responde 404 not_found y la especificación de producción no la muestra. La de pruebas (https://staging.gudink.com/api/v1/openapi.json) sí.
  • Si en pruebas también responde 404 not_found con un pedido tuyo creado por API, pedile a Gudink que te habilite la simulación.
  • ship carga un número de seguimiento de mentira: TEST- más el número del pedido (por ejemplo TEST-GU-1000501), con tracking.url de ejemplo (https://example.com/envio-de-prueba/TEST-GU-1000501) y tracking.carrier Envío de prueba, así probás tu pantalla de seguimiento entera. Nunca se lo muestres a un comprador real.
  • La simulación mueve sólo los estados del pedido y del envío.
  • Un pedido sin simular se cancela solo a las 72 horas, igual que en producción, pero mientras tanto retiene stock. Para probar order.cancelled, cancelalo a mano con POST /orders/{id}/cancel.
  • Límite: 30 simulaciones por minuto por cuenta.
  • No se simulan reembolsos, cancelaciones de pedidos pagos ni entregas fallidas.
  • Un retiro en sucursal se simula igual, con los mismos cuatro pasos: deliver es el retiro hecho. Los avisos traen delivery_type: "pickup" y la sucursal en pickup_point.

Probar los avisos

  • “Mandar prueba”, en Integraciones > API > Avisos, te envía un aviso webhook.test firmado. Ver el aviso de prueba.
  • Cada paso de la simulación manda el aviso real que corresponde, firmado con el secreto de tu destino de pruebas.
  • Si tu servidor corre en tu máquina, necesitás cualquier túnel https con un nombre de host público: Gudink no puede mandar avisos a localhost, a una IP ni a un puerto que no sea 443. Cuando termines, borrá ese destino. Y la firma la podés probar sin red, firmando vos los avisos: ver Probar tu destino sin publicarlo.

Recorrido de prueba de punta a punta

Corré estos diez pasos, en orden. Si los diez salen bien, tu integración está lista para producción. Si tu tienda ofrece retiro en sucursal, hacé también un recorrido con la opción pickup: el pedido del paso 4 va con pickup_point_id y sin shipping_address (ver Retiro en sucursal). Los pasos 4 a 8, con curl:

Pasar a producción

  1. Repetí en https://app.gudink.com lo que hiciste en el panel de pruebas: API habilitada, datos de facturación, productos, clave y destino de avisos.
  2. Cargá en tu servidor GUDINK_API_BASE="https://app.gudink.com/api/v1", la clave gk_live_ y el secreto nuevo del destino de avisos.
  3. Volvé a sincronizar el catálogo: los product_id y variant_id de producción son otros.
  4. Repasá el checklist antes de pasar a producción.