Urbano Express REST API Last updated: 06-03-2026

Welcome to the Urbano Express REST API documentation. This API will allow you to integrate your systems with our logistics services to manage shipments, check rates, track packages, and more.

General Description

Developed by Urbano Express, this API provides all the information needed to integrate your e-commerce with our logistics services.

Main benefits:

  • Logistics process automation
  • Real-time shipping rate quotes
  • Detailed shipment tracking
  • Pickup points and branch management
  • Label printing in multiple formats (A4, Z10X10, Z10X6, ZPL)
  • Address normalization for faster logistics
  • Package weight and dimensions lookup
  • Postal code routing
  • Support for multiple service types (delivery, pickup, cash on delivery, branch)
  • Flexible integration with multiple platforms

API Services

With our services you will have access to the following benefits:

TRACKING:

The tracking service allows you to know at any time and instantly the status of a package. You can provide your customers with detailed information about their shipment tracking.

RATE QUOTE:

The rate quote service allows you to show your customers the shipping cost at the time of purchase. This way you can automatically add the shipping cost to the sale price in your eCommerce.

SHIPMENT ORDER (CLIENT REGISTRATION):

With the client registration service, you can select which orders to ship. As a response, you will receive a label with the shipment details that you can print and attach to the package.

PICKUP POINTS:

Get available pickup points based on the provided address, including branches and lockers. This information allows you to offer your customers flexible delivery options.

LABEL PRINTING:

Generate shipping labels in different formats (A4, Z10X10, Z10X6, ZPL) according to your logistics operation needs.

ADDRESS NORMALIZER:

Validate and normalize entered addresses to ensure correct delivery logistics. The system will return the correct address data from our database.

POSTAL CODE ROUTER:

Check available logistics based on the destination postal code. The system will return the delivery options available for that area.

WEIGHT AND DIMENSIONS:

Get the weight and dimensions of the detected package when processed in our distribution centers.

Authentication

Each request using GET or POST methods will require authentication for the shipper, which will include a password.

Contact Urbano Express for the credentials corresponding to your shipper.

Note:
Authentication fields are required in all cases except for the GET method of label printing.

The postal code is 4 digits from 1000 to 9999

Environments

The API is available in two environments:

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

Used for client testing and development. The URLs in this documentation point to this environment.

Production:
https://apis.urbano.com.ar/

Used for actual shipment processing. Requires production credentials.

Main Endpoints

Important: When going to production you need to change the URLs
https://testing-apis.urbano.com.ar/ to https://apis.urbano.com.ar/

Rate Quote

It will return the corresponding rate according to your postal code, as well as return the "RealWeight". It will inform you if there is an error with your number and its description.

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

JSON request:

JSON response:

Parameters:

Required Parameter Type Length Description
codigoPostal integer 4 Destination postal code
pesoEspecifico decimal 4,2 Package weight in kg
pesoVolumetrico decimal 4,2 Volumetric weight of the package in kg
alto decimal 4,2 Package height in cm
largo decimal 4,2 Package length in cm
ancho decimal 4,2 Package width in cm
shipper integer - Shipper number
password string - Shipper password

Tracking

Check the tracking according to the "codigoSeguimiento" parameter. It will return the tracking URL, as well as the movements with the check parameters, description, and date/time.

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

JSON request:

JSON response:

Parameters:

Required Parameter Type Length Description
codigoSeguimiento string 4-15 Shipment tracking code
shipper integer - Shipper number
password string - Shipper password

Returned movement statuses:

  • PI - ORDER RECEIVED
  • AS - BRANCH DISPATCH
  • LD - DEPARTURE
  • DL - DELIVERY

Client Registration

We enter a client as a recipient specifying their address, optionally adding a second address. A tracking number, delivery note, and observations must be entered. In Product, enter the description, measurements, length, weight, value, SKU, and quantity.

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

JSON request:

JSON response:

Parameters:

Required Parameter Type Length Description
productos (array)
largo decimal 4,2 Refers to the total length of the shipment
alto decimal 4,2 Refers to the total height of the shipment
ancho decimal 4,2 Refers to the total width of the shipment
peso decimal 4,2 Refers to the specific weight of the shipment
valor integer 8 Refers to the total purchase value to insure the product
valorContrareembolso integer 8 Refers to the payment value (cash on delivery)
cantidad integer 8 Refers to the number of labels to be printed for the order
sku string 30 Refers to the SKU identifier.
descripcionProducto string 40 Refers to the product description
autentificacion
shipper integer - Shipper number
password string - Shipper password
destinatario
tipoDocumento string 10 Refers to the type of identification of the person
numeroDocumento integer 10 Refers to the document number of the person
nombre string 40 Refers to the name of the person
email array/string 45 Refers to the email address
telefono string 40 Refers to the personal phone
celular string 15 Refers to the mobile phone
autorizado (array) - See recipient fields
domicilio
direccion string 45 Recipient address
altura string 6 Address number
piso string 6 Floor of the address
departamento string 6 Apartment of the address
codigoPostal integer 4 Postal Code
localidad string - Location of the address
provincia string - Province of the address
latitud string 10 Latitude location
longitud string 10 Longitude location
telefono array - Address phone (array)
domicilioAlternativo - See address fields (all optional)
Root
datoNumerico string 10 Additional numeric data
codigoSeguimiento string 4-15 Unique identifier code of the shipment (minimum 4, maximum 15 characters)
codigoAlternativo integer 15 Alternative code
servicio string 1 Service type
observaciones array 2 Additional observations (2 elements of 95 characters)

Important Notes

  • Service types:
    • E: Delivery
    • R: Pickup
    • B: Cash on delivery
    • F: Branch pickup
    • G: Branch pickup with cash on delivery

  • If the service is cash on delivery, the refund amount cannot be 0
  • If the client has insurance, the product price cannot be 0
  • Recipient fields are required except phone and email which can be null.
  • Authorized recipient fields can be null
  • Address fields: height, floor, apartment, longitude, latitude can be null. Address, location, province, and postal code are required.
  • Alternative address fields can be null.
  • The tracking code is required and has a maximum of 15 characters (minimum 4).
  • Alternative tracking code can be null.
  • Observations can be null. The character limit is 95 characters, maximum 2 observations.
  • If the order is for branch pickup, we must specify the branch code in the "location". For example: G23.

WAREHOUSING:
  • The SKU code cannot be null
  • The product weight can be 0

CROSS:
  • The product weight (package) cannot be 0

Pickup Points

Entering according to our address, it will return all available pickup points including according to your city and the corresponding parameters of "latitude", "longitude", "name", "address", "phone", "code", "cross streets", "postal code", "municipality", "location", "province", "elockers", "distance".

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

JSON request:

JSON response:

Parameters:

Required Parameter Type Length Description
direccion string 45 Address to search
altura string 6 Address number
codigoPostal integer 4 Postal code of the address
longitud string 10 Geographic longitude of the address
latitud string 10 Geographic latitude of the address
elockers integer 1 Filter by e-lockers (0 or 1)
shipper integer - Shipper number
password string - Shipper password

Branch Pickup Points

Entering location, piece, and authentication.

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

JSON request:

JSON response:

Parameters:

Required Parameter Type Length Description
va_prov_codigo string 2 Always put "%" to get all options
va_con_llc integer 1 With locker (1) or without locker (0)
peso decimal 4,2 Weight of the piece
alto decimal 4,2 Height of the piece
largo decimal 4,2 Length of the piece
ancho decimal 4,2 Width of the piece
shipper integer - Shipper number
password string - Shipper password

Postal Code Router

Entering our postal code, it will return the logistics according to your code, it will inform if the query has been completed, as well as inform us about any error in the database with the error code.

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

JSON request:

JSON response:

Parameters:

Required Parameter Type Length Description
codigoPostal integer 4 Postal code to query
sameday integer 1 0: Same-day disabled, 1: Same-day enabled
shipper integer - Shipper number
password string - Shipper password

Label Printing

By sending the tracking code and the format type to print, it returns the corresponding PDF.

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

Parameters:

Required Parameter Type Length Description
tipo string 10 Label format to print (A4, Z10X10, Z10X6, ZPL)
shipper integer - Shipper number
codigoSeguimiento string 4-15 Package tracking code

Note: This endpoint does not require authentication

Address Normalizer

Entering our address, it will return the correct address data according to our databases, this way we will get greater agility in the logistics of the shipments.

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

JSON request:

JSON response:

Parameters:

Required Parameter Type Length Description
calle string 45 Street to query
altura string 6 Number to query
cp integer 4 Postal code to query
localidad string - Location to query
provincia string - Province to query
shipper integer - Shipper number
password string - Shipper password

Weight and Dimensions

Entering the tracking code, it will return the weight and dimensions of the detected package when processed.

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

JSON request:

JSON response:

Parameters:

Required Parameter Type Length Description
codigoSeguimiento string 4-15 Tracking code for the search
shipper integer - Shipper number
password string - Shipper password

Code Examples

Rate Quote

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);

Client Registration

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);

Pickup Points

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);

Branch Pickup Points

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);

Postal Code Router

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);

Label Printing

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
// Open in new window for printing
const url = 'https://testing-apis.urbano.com.ar/impresionEtiqueta/?tipo=A4&shipper=671&codSeguimiento=TEST15004';
window.open(url, '_blank');

// Or download via 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();

Address Normalizer

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);

Weight and Dimensions

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);

Common Errors

Error Codes

codError descError resultado
0 result SUCCESSFUL QUERY
1 No user authentication data has been sent. ERROR
2 Required fields are missing. ERROR
3 An internal error has occurred while processing the service. ERROR
4 An internal error has occurred while processing the service. ERROR
5 Invalid Postal Code. ERROR
  • codError: The data type is "Integer". In case of an error, the corresponding error number.
  • descError: The data type is "String". In case of an error, the corresponding error description.
  • resultado: The data type is "String". In case of an error, it will return ERROR.

Best Practices

Recommendations:

- Validate data: Always validate data before sending it to the API.

- Error handling: Implement proper error handling and retries.

- Caching: For frequent rate queries, consider implementing caching.

- Logging: Keep a record of requests and responses to facilitate diagnosis.

- Rate limiting: Respect the API rate limits to avoid blocking.