Quien busca «api mrw» suele tener unas credenciales recién recibidas de su franquicia, o un Odoo desde el que quiere dejar de copiar direcciones en el portal de MRW. Aquí va qué es, qué llamadas importan y dónde se rompe, según el código de nuestro conector MRW para Odoo.
Qué es la API de MRW: Sagec, SOAP y credenciales de tu franquicia
El servicio web con el que MRW graba envíos se llama Sagec y habla SOAP: sobres XML con cabecera de autenticación, no JSON con un token. Tiene dirección de pruebas (sagec-test.mrw.es) y de producción (sagec.mrw.es). Las credenciales no salen de un portal de desarrolladores: te las da tu franquicia. Son código de franquicia, abonado, departamento si lo usas, usuario y contraseña.
Las llamadas que importan son pocas: TransmEnvio graba el envío (TransmEnvioInternacional fuera de España), GetEtiquetaEnvio devuelve la etiqueta y CancelarEnvio lo anula.
La etiqueta sale al validar el albarán
En Odoo, MRW se instala como un método de envío más. Al validar el albarán, el conector graba el envío, guarda el número en el albarán y adjunta la etiqueta en PDF; si MRW no devuelve el fichero, usa la URL de etiqueta de la respuesta. Un asistente hace lo mismo con varios albaranes a la vez.
Antes del primer envío hay que decidir qué pasa si MRW falla: bloquear la validación, y el albarán no se cierra sin etiqueta, o validar y dejar el envío pendiente con aviso. Lo que ya viene resuelto: si el albarán tiene número de envío, no se graba otro, así que un reintento no deja dos etiquetas.
Seguimiento: lo que tienes y lo que no
El número de envío se escribe en el campo de seguimiento estándar de Odoo: viaja al cliente en el correo de confirmación de entrega si lo tienes activado, y un botón del albarán abre el seguimiento de MRW. Para la mayoría de tiendas, basta.
Lo que el conector no hace hoy es traer a Odoo cada cambio de estado: en reparto, entregado, incidencia. Si lo necesitas, por ejemplo para abrir una tarea ante una incidencia de entrega, es un desarrollo a medida, y empieza por confirmar qué te da tu contrato con MRW.
Recogidas: la fecha viaja con cada envío
La recogida física la organiza tu franquicia según tu contrato. Odoo manda en cada envío la fecha de recogida y los datos de origen, que son los de tu empresa. El conector calcula la fecha desde la prevista del albarán: nunca en el pasado, a partir de las 17:00 la pasa al día siguiente y se salta los fines de semana. Si tu franquicia tiene otra hora de corte, confírmalo con ella.
Y si el código postal o el teléfono de tu empresa están mal en Odoo, no falla un envío: fallan todos.
Los errores de dirección que más paran envíos en España
De los rechazos por datos, los de dirección dependen de ti y no del contrato. Cinco que conviene vigilar:
- Código postal de cuatro cifras. Los de Álava, Albacete, Alicante, Almería, Ávila, Badajoz, Baleares, Barcelona y Burgos empiezan por cero, y ese cero desaparece cuando la base de clientes pasa por una hoja de cálculo: 08001 se convierte en 8001.
- Calle sin número. MRW separa vía, número y resto; Odoo guarda la calle en una línea. El conector la trocea y, si no encuentra cifra, manda «S/N». Las calles con número en el nombre, como «Calle 8 de Marzo», no las acierta siempre ningún troceado automático: son las primeras que hay que mirar.
- Teléfono del destinatario vacío o incompleto. MRW lo exige; la validación previa marca cualquier teléfono con menos de nueve cifras.
- Población o provincia vacías. Pasa con contactos creados desde la web o importados a medias; en Odoo, un código postal correcto no rellena la provincia.
- Peso cero. Si los productos no tienen peso, el albarán tampoco. Hay un peso por defecto configurable, pero con bultos pesados choca con el máximo por bulto del servicio.
Para no descubrirlo con la furgoneta en la puerta, el método de envío trae un botón de validación previa: revisa credenciales, servicio, datos de tu empresa, peso por defecto y hasta veinte albaranes abiertos, buscando justo estos huecos. Y si MRW rechaza un envío, el conector traduce la respuesta a un motivo legible.
Corrige la dirección en la ficha del contacto de entrega y relanza el envío desde el albarán: como no llegó a grabarse, no se duplica nada.
Cuándo no te hace falta nuestro conector
Si grabas un puñado de envíos a la semana, el portal de MRW basta y ninguna integración se amortiza. Si usas Odoo 19 y solo necesitas etiqueta y seguimiento, mira antes el módulo delivery_mrw de OCA: es gratuito y, a diferencia del nuestro, ya manda el contra reembolso. Lo que no trae es validación previa, reintentos ni fecha de recogida calculada. Comparación completa en qué transportista elegir para Odoo.
Qué hace nuestro conector
El conector MRW para Odoo hace lo descrito: envío y etiqueta al validar, seguimiento, cancelación con CancelarEnvio, fecha de recogida, validación previa y reintentos. Funciona en Odoo 17, 18 y 19, y en Odoo 20 el día que salga. Si no tienes Odoo sino una web propia, mira integrar la API de un transportista en una web propia.
Preguntas frecuentes
¿Necesito contrato con MRW para usar su API?
Sí. Las credenciales de Sagec te las da tu franquicia MRW. El conector trae separadas la dirección de pruebas y la de producción, y un botón para comprobar la conexión antes del primer envío real.
¿Se puede enviar contra reembolso?
Con nuestro conector, hoy no: los envíos se graban sin reembolso. El módulo OCA de MRW sí lo manda. Si vendes contra reembolso con MRW y necesitas también lo demás, es una ampliación que se valora aparte.
¿Qué pasa si la API de MRW no responde?
Si el fallo es de MRW (tiempo de espera, errores 5xx o «error interno»), el conector programa reintentos a los 5, 15, 30, 60, 180 y 360 minutos, seis como máximo por defecto. Si el fallo es de datos, no reintenta: te enseña el motivo.
Enlaces útiles dentro de FlexigoTech
Lo que hacemos sobre esto
¿MRW te rechaza envíos o sigues copiando direcciones a mano?
Dinos qué versión de Odoo usas, cuántos envíos haces al día y qué error te devuelve MRW. Te decimos si es un dato, el contrato o la integración, y si te basta con el módulo de OCA. Escribe a comercial@flexigobe.com o agenda una llamada.

