Historial de cambios
Versión 3.5 · 22 de octubre de 2026. La documentación se versiona aparte del API.
Esta documentación se versiona aparte del API: su número sube cuando cambia la
documentación, aunque el API siga en v1. Revisá que estés leyendo la última
versión antes de empezar a integrar.
| Versión | Fecha | Cambios |
|---|---|---|
| 3.5 | 22/10/2026 | El catálogo incluye tus productos propios apenas los creás, sin sincronizarlos con Shopify. Cada ítem trae el campo nuevo origin (vendor o seller_owned) y el listado acepta el filtro origin. En un producto propio cost es 0 y vendorId viene vacío. Crear una orden que mezcle productos propios con productos de proveedor, o productos propios de dos dueños, devuelve el código nuevo 422 MIXED_PRODUCT_ORIGINS. Ver Catálogo y Errores. |
| 3.4 | 08/10/2026 | El webhook order.status_changed trae reasons también cuando la orden pasa a issue: el tipo de incidencia que reportó la paquetería y el comentario del repartidor, con la misma forma que los motivos de "Verificar". Ese evento llega entre 30 segundos y un minuto y medio después del cambio de estado, y no se envía si la paquetería no registra el detalle. Ver Motivos de una novedad. |
| 3.3 | 28/09/2026 | Respuestas a preguntas frecuentes de integración, en las secciones donde se buscan. Cómo calcular tu margen con price − cost y por qué no usar suggestedPrice: el price inicial lo calcula Drop, ya incluye el envío y algunas comisiones, y podés cambiarlo desde la plataforma. Para la ganancia real de cada pedido, la sección enlaza a Costos de la orden. Ver Cómo calcular tu margen. Si tenés varias tiendas, cada una necesita su propia llave, y el webhook y el límite de peticiones también van por tienda. Ver Si tenés varias tiendas. No hay una lista de nombres alternativos de municipios: la equivalencia se resuelve de tu lado y se manda el id. Ver Departamentos y municipios. |
| 3.2 | 24/09/2026 | Nuevo PATCH /orders/{id}/cancel para cancelar una orden que creaste, con las mismas reglas que el dropshipper tiene en su app: solo mientras está en registered o pending_correction y ningún proveedor la despachó. Pide orders:write, no lleva cuerpo y es idempotente: cancelar una orden ya cancelada devuelve la orden sin cambios. Si ya no se puede, responde 409 con el nuevo código ORDER_NOT_CANCELLABLE. La cancelación llega por el webhook order.status_changed como cancelled. Ver Cancelar una orden. El webhook order.status_changed trae reasons: cuando la orden queda en pending_correction te dice por qué (código, texto y detalle), y ahora también te avisa cuando la orden nace en ese estado al crearla, cosa que antes solo sabías por la respuesta de POST /orders. Ver Motivos de "Verificar". El límite de peticiones puede variar entre cuentas: si tu volumen lo necesita, pedinos más cuota para tu credencial. Ver Límites. |
| 3.1 | 11/09/2026 | Las órdenes traen sus costos, para que calcules tu utilidad real por pedido: shippingCost (el flete de la orden, con las condiciones de tu cuenta) y codCommissionAmount / codCommissionPercentage (la comisión contra entrega aplicada) desde que se despachan, y estimatedCodCommissionAmount desde que se crean. Vienen en GET /orders, GET /orders/{id}, POST /orders y en el webhook order.status_changed, en null mientras no hay dato. Se aclara que el dropPrice de GET /couriers es la tarifa base del país y no el costo de una orden. Ver Costos de la orden. |
| 3.0 | 10/09/2026 | La guía se muda a este portal. La referencia de cada endpoint se genera desde el OpenAPI del API, agrupada por recurso, con ejemplos en curl, JavaScript y Python; el spec está publicado en /openapi.json. Las respuestas de GET /geo/countries/{countryId}/address-config, GET /couriers y GET /couriers/available, que antes se documentaban como objetos sin campos, ahora tienen esquema completo. Se corrige el ejemplo de GET /couriers/available: sus paqueterías traen price, courierType, deliveryDays, recollectionDays y requiresAddressExtraLevels, no dropPrice ni efectivityPercentage. |
| 2.5 | 31/08/2026 | GET /geo/countries agrega requestCoordinatesFromCustomer: te dice si el país necesita la ubicación del cliente para entregar. Cuando es true (hoy solo Costa Rica) hay que mandar shipping.latitude y shipping.longitude al crear la orden; siguen siendo opcionales y no cambia ninguna validación, pero sin ellas la orden nace en "Verificar" y no se despacha. Las órdenes que caen ahí por esa causa ahora traen el motivo Ubicación no proporcionada, que antes no se registraba y las dejaba detenidas sin explicación. |
| 2.4 | 24/08/2026 | Los niveles de dirección adicionales (shipping.extraLevels) dejan de ser obligatorios por país: ahora los pide la paquetería de la orden, y hoy solo los exige Cargo Expreso. En Guatemala eso significa que ya podés crear órdenes sin el poblado si vas con otra paquetería. Nuevo codAmount opcional para cobrar un total exacto cuando el precio unitario de 2 decimales no lo alcanza (el caso de $43.99 en 2 unidades). |
| 2.3 | 19/08/2026 | Nuevo GET /couriers/available: las paqueterías que cubren la ruta de una orden concreta, que es lo que conviene ofrecerle a tu usuario. Podés fijar el precio de venta de cada línea con items[].unitPrice; si lo omitís, se sigue usando el de tu catálogo. Al crear una orden la respuesta trae ahora courier (con cuál quedó) y requestedCourier (la que pediste y no se pudo usar, con el motivo); antes tu elección se descartaba sin avisarte. GET /couriers pasa a devolver tus comisiones preferenciales en vez de las tarifas base del país. |
| 2.2 | 19/08/2026 | La sección de credenciales pasa a ser un paso a paso de dónde generar la llave, con lo que se ve en pantalla, el formato live/test y qué pasa al regenerar. Se documenta el evento de prueba del webhook y su clave test, que hay que descartar. La pantalla se abre desde tu cuenta, al pie del panel lateral → Configuraciones → Integraciones; antes esta guía decía "Perfil". |
| 2.1 | 19/08/2026 | Los productos y sus variantes traen cost, tu costo por unidad, el mismo de la columna "Costo proveedor" de la app. price pasa a significar siempre tu precio de venta: antes, en un producto reservado en exclusiva para vos, devolvía tu costo negociado en lugar del precio. Si dependías de ese comportamiento, ese número ahora está en cost. |
| 2.0 | 18/08/2026 | Las credenciales y el webhook se generan desde Perfil → Integraciones, ya no se entregan por fuera. El API queda acotado a tu cuenta: GET /products devuelve solo tu catálogo y desaparece el filtro sellerId de productos y órdenes. |
| 1.0 | 18/08/2026 | Primera versión publicada. |