API REST Urbano Express Última actualización: 06-03-2026

Bienvenido a la documentación de la API REST de Urbano Express. Esta API le permitirá integrar sus sistemas con nuestros servicios de logística para gestionar envíos, consultar tarifas, realizar seguimientos y mucho más.

Descripción General

Desarrollada por Urbano Express, esta API proporciona toda la información necesaria para integrar su e-commerce con nuestros servicios logísticos.

Beneficios principales:

  • Automatización de procesos logísticos
  • Consulta en tiempo real de tarifas de envío
  • Seguimiento detallado de envíos (tracking)
  • Gestión de puntos de retiro y sucursales
  • Impresión de etiquetas en múltiples formatos (A4, Z10X10, Z10X6, ZPL)
  • Normalización de direcciones para mayor agilidad en logística
  • Consulta de peso y medidas del paquete
  • Canalización por código postal
  • Soporte para múltiples tipos de servicio (entrega, retiro, contra reembolso, sucursal)
  • Integración flexible con múltiples plataformas

Consumo de la API

Con nuestros servicios usted podrá disponer de los siguientes beneficios:

TRACKING:

El servicio de rastreo le permitirá saber en todo momento y de manera instantánea el estado de una pieza. Podrá brindarle a sus clientes la información detallada del seguimiento de sus envíos.

CONSULTA DE TARIFA:

El servicio de consulta de tarifa le permitirá mostrar a sus clientes el costo del envío al momento de efectuAR LA COMPRA. De este modo usted podrá adicionar el costo del envío automáticamente al costo de venta en el eCommerce.

PEDIDO DE ENVÍO (CARGA CLIENTE):

Con el servicio de carga de pedidos usted seleccionará qué pedidos desea enviar. Como respuesta recibirá una etiqueta con el detalle del envío que puede imprimir y adosar al paquete.

PUNTOS DE RETIRO:

Obtenga los puntos de retiro disponibles según la dirección proporcionada, incluyendo sucursales y lockers. Esta información permite ofrecer a sus clientes opciones flexibles de entrega.

IMPRESIÓN DE ETIQUETAS:

Genere etiquetas de envío en diferentes formatos (A4, Z10X10, Z10X6, ZPL) según las necesidades de su operación logística.

NORMALIZADOR DE DIRECCIONES:

Valide y normalice las direcciones ingresadas para garantizar una correcta logística de entrega. El sistema retornará los datos del domicilio correctos según nuestra base de datos.

CANALIZADOR POR CÓDIGO POSTAL:

Consulte la logística disponible según el código postal de destino. El sistema retornará las opciones de entrega disponibles para esa zona.

CONSULTA PESO Y MEDIDAS:

Obtenga el peso y las dimensiones del paquete detectado al ser procesado en nuestros centros de distribución.

Autenticación

En cada request con sus métodos GET, POST, se va a requerir la autenticación correspondiente al shipper, en el mismo se especificará un password.

Consultar con Urbano Express por las credenciales correspondientes a su shipper.

Aclaración:
Los campos de autenticación son requeridos en todos los casos salvo en el método GET de impresión de etiquetas.

El código postal es de 4 dígitos desde 1000 a 9999

Ambientes

La API está disponible en dos ambientes:

Desarrollo/Testing:
https://testing-apis.urbano.com.ar/

Utilizado para pruebas y desarrollo del cliente. Las URLs en esta documentación apuntan a este ambiente.

Producción:
https://apis.urbano.com.ar/

Utilizado para el procesamiento real de envíos. Requiere credenciales de producción.

Endpoints Principales

Importante: Al pasar a producción hay que cambiar las URL
https://testing-apis.urbano.com.ar/ por https://apis.urbano.com.ar/

Consulta de Tarifa

Nos retornará la tarifa correspondiente según su código postal, además de devolvernos el "PesoReal". nos informara si existiera un error con su numero y con su descripción.

POST https://testing-apis.urbano.com.ar/consulta_tarifa_rest/

JSON request:

JSON response:

Parámetros:

Requerido Parametro Tipo Longitud Descripción
codigoPostal integer 4 Código postal de destino
pesoEspecifico decimal 4,2 Peso del paquete en kg
pesoVolumetrico decimal 4,2 Peso volumétrico del paquete en kg
alto decimal 4,2 Alto del paquete en cm
largo decimal 4,2 Largo del paquete en cm
ancho decimal 4,2 Ancho del paquete en cm
shipper integer - Número de shipper
password string - Contraseña del shipper

Tracking

Consulta el seguimiento según el parámetro de "codigoSeguimiento", Nos retornara la URL del seguimiento, además de los movimientos con los parámetros check, descripción y fecha / hora.

POST https://testing-apis.urbano.com.ar/tracking/consultaTrackingMasivo/

JSON request:

JSON response:

Parámetros:

Requerido Parametro Tipo Longitud Descripción
codigoSeguimiento string 4-15 Código de seguimiento del envío
shipper integer - Número de shipper
password string - Contraseña del shipper

Estados devueltos de movimiento:

  • PI - PEDIDO INGRESADO
  • AS - DESPACHO SUCURSAL
  • LD - SALIDA A RUTA
  • DL - ENTREGA EFECTIVA

Carga de Clientes

Ingresamos un cliente como destinatario especificando su domicilio, adicionando como opcional un segundo domicilio, se deberá ingresar un numero de seguimiento, remito y observaciones. En Producto se ingresara la descripción, sus medidas, longitud, peso, valor, sku y la cantidad.

POST https://testing-apis.urbano.com.ar/cargaCliente/

JSON request:

JSON response:

Parámetros:

Requerido Parametro Tipo Longitud Descripción
productos (array)
largo decimal 4,2 Refiere al largo total del envio
alto decimal 4,2 Refiere al alto total del envio
ancho decimal 4,2 Refiere al ancho total del envio
peso decimal 4,2 Refiere al peso específico del envio
valor integer 8 Refiere al valor total de la compra para asegurar el producto
valorContrareembolso integer 8 Refiere al valor de pago (contra entrega)
cantidad integer 8 Refiere a la cantidad de etiquetas que se imprimiran en el pedido
sku string 30 Refiere al identificador SKU.
descripcionProducto string 40 Refiere a la descripcion del producto
autentificacion
shipper integer - Número de shipper
password string - Contraseña del shipper
destinatario
tipoDocumento string 10 Refiere al tipo de identificación de la persona
numeroDocumento integer 10 Refiere al nro de documento de la persona
nombre string 40 Refiere al nombre de la persona
email array/string 45 Refiere al correo electrónico
telefono string 40 Refiere al teléfono particular
celular string 15 Refiere al celular
autorizado (array) - Ver campos de destinatario
domicilio
direccion string 45 Dirección del destinatario
altura string 6 Numeración del domicilio
piso string 6 Piso del domicilio
departamento string 6 Departamento del domicilio
codigoPostal integer 4 Código Postal
localidad string - Localidad del domicilio
provincia string - Provincia del domicilio
latitud string 10 Localización en latitud
longitud string 10 Localización en longitud
telefono array - Teléfono del domicilio (array)
domicilioAlternativo - Ver campos de domicilio (todos opcionales)
Raíz
datoNumerico string 10 Dato numérico adicional
codigoSeguimiento string 4-15 Código único identificador del envío (mínimo 4, máximo 15 caracteres)
codigoAlternativo integer 15 Código alternativo
servicio string 1 Tipo de servicio
observaciones array 2 Observaciones adicionales (2 elementos de 95 caracteres)

Notas Importantes

  • Tipos de servicio:
    • E: Entrega
    • R: Retiro
    • B: Contra reembolso
    • F: Retiro en sucursal
    • G: Retiro en sucursal contra reembolso

  • Si el servicio es de contrareembolso el importe del reembolso no puede estar en 0
  • Si el cliente tiene seguro el precio del producto no puede estar en 0
  • Campos del destinatario son obligatorios salvo teléfono y mail que pueden ser nulos.
  • Campos receptor autorizado pueden ser nulos
  • Campos del apartado domicilio: altura, piso, departamento, longitud, latitud pueden ser nulos. La dirección, localidad, provincia y el código postal son obligatorios.
  • Campos del domicilio alternativo pueden ser nulos.
  • El código de seguimiento es obligatorio y tiene un máximo de 15 caracteres (mínimo 4).
  • Código de seguimiento alternativo puede ser nulo.
  • Observaciones pueden ser nulos. El límite de caracteres es de 95 caracteres, máximo 2 observaciones.
  • Si el Pedido es con retiro en sucursal debemos especificar el código de sucursal en la "localidad". Por ejemplo: G23.

WAREHOUSING:
  • El código SKU no puede ser nulo
  • El peso del producto puede estar en 0

CROSS:
  • El peso del producto (bulto) no puede estar en 0

Puntos de Retiro

Ingresando según nuestra dirección, nos retornara todos los puntos de retiro disponibles incluyendo según su ciudad y los parámetros correspondientes de "latitud", "longitud", "nombre", "dirección", "teléfono", "código", "entrecalles", "codigoPostal", "municipalidad", "localidad", "provincia", "elockers", "distancia".

POST https://testing-apis.urbano.com.ar/puntosDeRetiroRest/

JSON request:

JSON response:

Parámetros:

Requerido Parametro Tipo Longitud Descripción
direccion string 45 Dirección a buscar
altura string 6 Altura de la dirección
codigoPostal integer 4 Código postal de la dirección
longitud string 10 Longitud geográfica de la dirección
latitud string 10 Latitud geográfica de la dirección
elockers integer 1 Filtrar por e-lockers (0 o 1)
shipper integer - Número de shipper
password string - Contraseña del shipper

Puntos de Retiro Sucursales

Ingresando ubicacion, pieza y autentificacion.

POST https://testing-apis.urbano.com.ar/puntosDeRetiroSucursales/

JSON request:

JSON response:

Parámetros:

Requerido Parametro Tipo Longitud Descripción
va_prov_codigo string 2 Siempre poner "%" para obtener todas las opciones
va_con_llc integer 1 Con locker (1) o sin locker (0)
peso decimal 4,2 Peso de la pieza
alto decimal 4,2 Altura de la pieza
largo decimal 4,2 Largo de la pieza
ancho decimal 4,2 Ancho de la pieza
shipper integer - Número de shipper
password string - Contraseña del shipper

Canalizador por Código Postal

Ingresando según nuestro código postal, nos retornara la logística según su código, nos informara si la consulta a sido completada, además de informarnos sobre algún error en la base de datos con el código de error.

POST https://testing-apis.urbano.com.ar/canalizadorPorCodigoPostalRest/

JSON request:

JSON response:

Parámetros:

Requerido Parametro Tipo Longitud Descripción
codigoPostal integer 4 Código postal a consultar
sameday integer 1 0: Deshabilitado en el mismo día, 1: Habilitado en el mismo día
shipper integer - Número de shipper
password string - Contraseña del shipper

Impresión de Etiquetas

Enviando el código de seguimiento y el tipo de formato a imprimir nos devuelve el PDF correspondiente.

GET https://testing-apis.urbano.com.ar/impresionEtiqueta/?tipo={tipo}&shipper={shipper}&codSeguimiento={codigoSeguimiento}

Parámetros:

Requerido Parametro Tipo Longitud Descripción
tipo string 10 Formato de guía para imprimir (A4, Z10X10, Z10X6, ZPL)
shipper integer - Número de shipper
codigoSeguimiento string 4-15 Código de seguimiento del paquete

Nota: Este endpoint no requiere autenticación

Normalizador de Direcciones

Ingresando según nuestra dirección, nos retornara los datos del domicilio correctos de acuerdo a nuestras bases, de esta manera obtendremos mayor agilidad en la logística de los envíos.

POST https://testing-apis.urbano.com.ar/normalizadorDireccionRest/

JSON request:

JSON response:

Parámetros:

Requerido Parametro Tipo Longitud Descripción
calle string 45 Calle a consultar
altura string 6 Altura a consultar
cp integer 4 Código postal a consultar
localidad string - Localidad a consultar
provincia string - Provincia a consultar
shipper integer - Número de shipper
password string - Contraseña del shipper

Consulta peso y medidas

Ingresando el código de seguimiento, nos retornará el peso y medidas del paquete detectado al ser procesados.

POST https://testing-apis.urbano.com.ar/consultaPesoMedidas/

JSON request:

JSON response:

Parámetros:

Requerido Parametro Tipo Longitud Descripción
codigoSeguimiento string 4-15 Código de seguimiento para la búsqueda
shipper integer - Número de shipper
password string - Contraseña del shipper

Ejemplos de Código

Consulta de Tarifa

cURL
curl -X POST "https://testing-apis.urbano.com.ar/consulta_tarifa_rest" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"codigoPostal":2400,"pesoEspecifico":1.5,"pesoVolumetrico":1.5,"alto":1,"largo":1,"ancho":1,"autentificacion":{"shipper":671,"password":"MPzQG6%jfN%-#tsb=CUj"}}'
JavaScript
const response = await fetch('https://testing-apis.urbano.com.ar/consulta_tarifa_rest', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify(jsonReqTarifa)
});

const data = await response.json();
console.log(data);

Tracking

cURL
curl -X POST "https://testing-apis.urbano.com.ar/tracking/consultaTrackingMasivo/" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"datos":[{"codigoSeguimiento":"00000000001","codigoAlternativo":""},{"codigoSeguimiento":"00000000002","codigoAlternativo":""}],"autentificacion":{"shipper":"671","password":"MPzQG6%jfN%-#tsb=CUj"}}'
JavaScript
const response = await fetch('https://testing-apis.urbano.com.ar/tracking/consultaTrackingMasivo/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify(jsonReqTracking)
});

const data = await response.json();
console.log(data);

Carga de Cliente

cURL
curl -X POST "https://testing-apis.urbano.com.ar/cargaCliente/" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"productos":[{"largo":10,"alto":5,"ancho":2,"peso":50,"valor":5200,"valorContrareembolso":0,"cantidad":5,"sku":"Test3","descripcionProducto":"1072-1"}],"autentificacion":{"shipper":671,"password":"MPzQG6%jfN%-#tsb=CUj"},"destinatario":{"tipoDocumento":"DNI","numeroDocumento":32222222,"nombre":"Urbano Dev Test","email":["dev-test@urbano.com.ar"],"telefono":"5492994230940","celular":"5492994230940"},"domicilio":{"direccion":"Santa Rita","altura":"9999","codigoPostal":"1657","localidad":"San Martin","provincia":"Buenos Aires"},"codigoSeguimiento":"TEST15004","servicio":"E"}'
JavaScript
const response = await fetch('https://testing-apis.urbano.com.ar/cargaCliente/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify(jsonReqCargaCliente)
});

const data = await response.json();
console.log(data);

Puntos de Retiro

cURL
curl -X POST "https://testing-apis.urbano.com.ar/puntosDeRetiroRest/" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"direccion":"Ferre","altura":"6660","codigoPostal":"31321fds","longitud":"34.6095616","latitud":"-58.388765","localidad":"Villa Riachuelo","elockers":1,"autentificacion":{"shipper":"671","password":"MPzQG6%jfN%-#tsb=CUj"}}'
JavaScript
const response = await fetch('https://testing-apis.urbano.com.ar/puntosDeRetiroRest/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify(jsonReqPR)
});

const data = await response.json();
console.log(data);

Puntos de Retiro Sucursales

cURL
curl -X POST "https://testing-apis.urbano.com.ar/puntosDeRetiroSucursales/" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"ubicacion":{"va_prov_codigo":"%","va_con_llc":1},"pieza":{"peso":10,"alto":1,"largo":1,"ancho":1},"autentificacion":{"shipper":"671","password":"MPzQG6%jfN%-#tsb=CUj"},"elockers":0}'
JavaScript
const response = await fetch('https://testing-apis.urbano.com.ar/puntosDeRetiroSucursales/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify(jsonReqPRSuc)
});

const data = await response.json();
console.log(data);

Canalizador por Código Postal

cURL
curl -X POST "https://testing-apis.urbano.com.ar/canalizadorPorCodigoPostalRest/" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"codigoPostal":1657,"sameday":0,"autentificacion":{"shipper":"671","password":"MPzQG6%jfN%-#tsb=CUj"}}'
JavaScript
const response = await fetch('https://testing-apis.urbano.com.ar/canalizadorPorCodigoPostalRest/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify(jsonReqCanalizador)
});

const data = await response.json();
console.log(data);

Impresión de Etiquetas

cURL
curl -X GET "https://testing-apis.urbano.com.ar/impresionEtiqueta/?tipo=A4&shipper=671&codSeguimiento=TEST15004" \
  -H "Accept: application/pdf" \
  -o etiqueta.pdf
JavaScript
// Abrir en nueva ventana para impresión
const url = 'https://testing-apis.urbano.com.ar/impresionEtiqueta/?tipo=A4&shipper=671&codSeguimiento=TEST15004';
window.open(url, '_blank');

// O descargar mediante fetch
const response = await fetch(url, {
  method: 'GET',
  headers: {
    'Accept': 'application/pdf'
  }
});

const blob = await response.blob();
const downloadUrl = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = downloadUrl;
a.download = 'etiqueta.pdf';
document.body.appendChild(a);
a.click();
a.remove();

Normalizador de Direcciones

cURL
curl -X POST "https://testing-apis.urbano.com.ar/normalizadorDireccionRest/" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"calle":"Esteban Echeverria","altura":"1764","cp":"1604","localidad":"Florida","provincia":"Buenos Aires","autentificacion":{"shipper":"671","key":"MPzQG6%jfN%-#tsb=CUj"}}'
JavaScript
const response = await fetch('https://testing-apis.urbano.com.ar/normalizadorDireccionRest/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify(jsonReqNormalizador)
});

const data = await response.json();
console.log(data);

Consulta Peso y Medidas

cURL
curl -X POST "https://testing-apis.urbano.com.ar/consultaPesoMedidas/" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"codigoSeguimiento":"0000001","autentificacion":{"shipper":671,"password":"MPzQG6%jfN%-#tsb=CUj"}}'
JavaScript
const response = await fetch('https://testing-apis.urbano.com.ar/consultaPesoMedidas/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify(jsonReqPeso)
});

const data = await response.json();
console.log(data);

Errores Comunes

Códigos de Error

codError descError resultado
0 resultado CONSULTA EXITOSA
1 No se han enviado datos para la autentificación de usuario. ERROR
2 Faltan campos necesarios. ERROR
3 Ha sucedido un error interno al procesar el servicio. ERROR
4 Ha sucedido un error interno al procesar el servicio. ERROR
5 Código Postal Inválido. ERROR
  • codError: El tipo de dato es "Integer". En caso de que hubiera un error, el número correspondiente a dicho error.
  • descError: El tipo de dato es "String". En caso de que hubiera un error, la descripción correspondiente a dicho error.
  • resultado: El tipo de dato es "String". En caso de que hubiera un error, retornara ERROR.

Buenas Practicas

Recomendaciones:

- Validar datos: Siempre valide los datos antes de enviarlos a la API.

- Manejo de errores: Implemente un adecuado manejo de errores y reintentos.

- Caching: Para consultas de tarifas frecuentes, considere implementar caching.

- Logging: Mantenga un registro de las solicitudes y respuestas para facilitar el diagnóstico.

- Rate limiting: Respete los límites de tasa de la API para evitar bloqueos.