NAV
bash javascript

Bienvenido

Bienvenido a la documentacion para la API Shipro.

Debe contactarnos a través de contacto@shipro.pro o por el telefono 011 5277-9990 para evaluar su caso y obtener credenciales.

API

Login

API para obtener token de Login, el cual permitira dar acceso a todas las Apis de Shipro. Dicho token de acceso tendrá un tiempo de expiración de 8 horas, y es enviado en el header del resto de las Apis.

Example request:

curl -X POST "http://shipro.pro/api/ar/login" \
    -H "Token: {token}" \
    -H "Version: ar" \
    -H "Content-Type: application/json" \
    -d '{"username":"shipro","password":"password"}'
const url = new URL("http://shipro.pro/api/ar/login");

let headers = {
    "Token": "{token}",
    "Version": "ar",
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "username": "shipro",
    "password": "password"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (200):

{
    "status": "200",
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6Imtvc2l1a28iLCJwYXNzd29yZCI6IjEyMzQ1NiIsImlhdCI6MTU3MDAzNTkxNCwiZXhwIjoxNTcwMDYxMTE0fQ.vbm7XcrEWpxWKpC45fKJH1Oy3I67SKsc5dir0fOmN44"
}

Example response (401):

{
    "status": "401",
    "message": "Login incorrecto"
}

HTTP Request

POST api/ar/login

Body Parameters

Parameter Type Status Description
username string required Nombre de usuario.
password string required Contraseña de usuario.

Servicios disponibles

API para obtener servicios y correos disponibles. Requiere en el header el token generado en la "API login". Nos devuelve el id, el nombre del proveedor, el codigo, el importe y la descripcion de cada servicio disponible.

Example request:

curl -X POST "http://shipro.pro/api/ar/servicios" \
    -H "Authorization: {***TOKEN DE LOGIN***}" \
    -H "Api-Version: ar" \
    -H "Content-Type: application/json" \
    -d '{"cp_origen":1406,"cp_destino":1414,"sucursal":"SHIPRO","productos":[{"tipo":1,"peso":"2","dimensiones":{"alto":"10","largo":"15","ancho":"30"},"cantidad":"1","observacion":"Caja de libros"}]}'
const url = new URL("http://shipro.pro/api/ar/servicios");

let headers = {
    "Authorization": "{***TOKEN DE LOGIN***}",
    "Api-Version": "ar",
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "cp_origen": 1406,
    "cp_destino": 1414,
    "sucursal": "SHIPRO",
    "productos": [
        {
            "tipo": 1,
            "peso": "2",
            "dimensiones": {
                "alto": "10",
                "largo": "15",
                "ancho": "30"
            },
            "cantidad": "1",
            "observacion": "Caja de libros"
        }
    ]
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (200):

[
    {
        "id": 57232,
        "proveedor": "UPS",
        "servicion": "Entrega en 24 horas",
        "codigo": "65",
        "precio": "241.78"
    },
    {
        "id": 57232,
        "proveedor": "MAIL EXPRESS",
        "servicion": "1 - 2 dias habiles",
        "codigo": "ENCO_EST",
        "precio": "353.29"
    }
]

Example response (400):

{
    "status": "400",
    "message": "La sucursal no puede estar vacia"
}

HTTP Request

POST api/ar/servicios

Body Parameters

Parameter Type Status Description
cp_origen integer required Cp de origen. 4 digitos.
cp_destino integer required Cp de destino. 4 digitos.
sucursal string optional Codigo de sucursal.
productos[0][tipo] integer optional Tipo 1.
productos[0][peso] string optional Peso expresado en kg.
productos[0][dimensiones][alto] string optional Alto expresado en cm.
productos[0][dimensiones][largo] string optional Largo expresado en cm.
productos[0][dimensiones][ancho] string optional Ancho expresada en cm.
productos[0][cantidad] string required Cantidad de productos con estas caracteristicas.
productos[0][observacion] string optional Descripcion del paquete.

Generar envio

API para crear un envio. Requiere en el header el token generado en la "API login". Nos devuelve el numero de seguimiento de SHIPRO, el importe, el id del envio y ids para cada paquete

Example request:

curl -X POST "http://shipro.pro/api/ar/retiro" \
    -H "Authorization: {***TOKEN DE LOGIN***}" \
    -H "Api-Version: ar" \
    -H "Content-Type: application/json" \
    -d '{"id":39924,"cp_destino":1414,"orden_id":"230039823.","franja":"tarde","fragil":"0","sucursal":"SHIPRO","comprador":[{"destinatario":"Francisco Milano","calle":"Yerbal","altura":"3030","piso":"2","dpto":"B","otra_info":"null","cp":1414,"email":"example@gmail.com","celular":"+5491112345678","localidad":"Capital Federal","provincia":"Buenos Aires"}],"productos":[{"tipo":1,"peso":"2","dimensiones":{"alto":"10","largo":"15","ancho":"30"},"cantidad":"1","observacion":"Caja de libros"}]}'
const url = new URL("http://shipro.pro/api/ar/retiro");

let headers = {
    "Authorization": "{***TOKEN DE LOGIN***}",
    "Api-Version": "ar",
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "id": 39924,
    "cp_destino": 1414,
    "orden_id": "230039823.",
    "franja": "tarde",
    "fragil": "0",
    "sucursal": "SHIPRO",
    "comprador": [
        {
            "destinatario": "Francisco Milano",
            "calle": "Yerbal",
            "altura": "3030",
            "piso": "2",
            "dpto": "B",
            "otra_info": "null",
            "cp": 1414,
            "email": "example@gmail.com",
            "celular": "+5491112345678",
            "localidad": "Capital Federal",
            "provincia": "Buenos Aires"
        }
    ],
    "productos": [
        {
            "tipo": 1,
            "peso": "2",
            "dimensiones": {
                "alto": "10",
                "largo": "15",
                "ancho": "30"
            },
            "cantidad": "1",
            "observacion": "Caja de libros"
        }
    ]
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (200):

{
    "status": "200",
    "id": "1Z5V655E0499261239",
    "seguimiento": 1570048920,
    "importe": "839.70",
    "trackings": {
        "id 1": "HSGB11165",
        "id 2": "MD1E21167"
    }
}

Example response (400):

{
    "status": "400",
    "message": "La sucursal no puede estar vacia"
}

HTTP Request

POST api/ar/retiro

Body Parameters

Parameter Type Status Description
id integer required id del servicio seleccionado, lo obtenemos de la "API servicios".
cp_destino integer required Cp de destino. 4 digitos.
orden_id string optional Numero de orden.
franja string required "tarde".
fragil string required "0".
sucursal string required Codigo de sucursal.
comprador[0][destinatario] required optional string Nombre completo del destinatario.
comprador[0][calle] required optional string Nombre de la calle.
comprador[0][altura] required optional string Altura de la calle.
comprador[0][piso] string optional Piso.
comprador[0][dpto] string optional Numero de departamento.
comprador[0][otra_info] string optional Informacion adicional.
comprador[0][cp] integer required Cp de destino.
comprador[0][email] string required Email del destinatario.
comprador[0][celular] string optional Numero de telefono del destinatario.
comprador[0][localidad] string optional Nombre de la localidad de destino.
comprador[0][provincia] string optional Nombre de la provincia de destino.
productos[0][tipo] integer optional Tipo 1.
productos[0][peso] string optional Peso expresado en kg.
productos[0][dimensiones][alto] string optional Alto expresado en cm.
productos[0][dimensiones][largo] string optional Largo expresado en cm.
productos[0][dimensiones][ancho] string optional Ancho expresada en cm.
productos[0][cantidad] string required Cantidad de productos con estas caracteristicas.
productos[0][observacion] string optional Descripcion del paquete.

Recibir etiqueta

API para obtener etiqueta del envio. Requiere en el header el token generado en la "API login". Nos devuelve el PDF codificado.

Example request:

curl -X POST "http://shipro.pro/api/ar/etiqueta" \
    -H "Authorization: {***TOKEN DE LOGIN***}" \
    -H "Api-Version: ar" \
    -H "Content-Type: application/json" \
    -d '{"cp_origen":1406,"cp_destino":1414,"proveedor":"UPS","ids":[{"id":"1567621600"}]}'
const url = new URL("http://shipro.pro/api/ar/etiqueta");

let headers = {
    "Authorization": "{***TOKEN DE LOGIN***}",
    "Api-Version": "ar",
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "cp_origen": 1406,
    "cp_destino": 1414,
    "proveedor": "UPS",
    "ids": [
        {
            "id": "1567621600"
        }
    ]
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (200):

{
    "status": 200,
    "pdf": "JVBERi0xLjUKJeLjz9MKMSAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDI5Pj5zdHJlYW0KeJwr5HIK4TI2U7AwMFMISeFyDeEK5OICADEzBC0KZW5kc3RyZWFtCmVuZG9iagozIDAgb2JqCjw8L1RhYnMvUy9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L1R5cGUvR3JvdXAvQ1MvRGV2aWNlUkdCPj4vQ29udGVudHMgMSAwIFIvVHlwZS9QYWdlL1Jlc291cmNlczw8L0NvbG9yU3BhY2U8PC9DUy9EZXZpY2VSR0I+Pi9Qcm9jU2V0IFsvUERGIC9UZXh0IC9JbWFnZUIgL0ltYWdlQyAvSW1hZ2VJXT4+L1BhcmVudCAyIDAgUi9NZWRpYUJveFswIDAgNTk1IDg0Ml0+PgplbmRvYmoKMiAwIG9iago8PC9LaWRzWzMgMCBSXS9UeXBlL1BhZ2VzL0NvdW50IDEvSVRYVCgyLjEuNyk+PgplbmRvYmoKNCAwIG9iago8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFIvVmlld2VyUHJlZmVyZW5jZXM8PC9QcmludFNjYWxpbmcvQXBwRGVmYXVsdD4+Pj4KZW5kb2JqCjUgMCBvYmoKPDwvTW9kRGF0ZShEOjIwMTkxMDAzMTczNDExWikvQ3JlYXRvcihKYXNwZXJSZXBvcnRzIExpYnJhcnkgdmVyc2lvbiA2LjYuMCkvQ3JlYXRpb25EYXRlKEQ6MjAxOTEwMDMxNzM0MTFaKS9Qcm9kdWNlcihpVGV4dCAyLjEuNyBieSAxVDNYVCk+PgplbmRvYmoKeHJlZgowIDYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE1IDAwMDAwIG4gCjAwMDAwMDAzMzMgMDAwMDAgbiAKMDAwMDAwMDExMCAwMDAwMCBuIAowMDAwMDAwMzk2IDAwMDAwIG4gCjAwMDAwMDA0ODcgMDAwMDAgbiAKdHJhaWxlcgo8PC9JbmZvIDUgMCBSL0lEIFs8ZWRkODY0YzUyNTAxODAzYzAwOTIxM2I5YmQzYTJlNjg+PDE4MTMyODdiNjVlYWYzOWJkMjA3NWJiZWE4ZGQwNGZjPl0vUm9vdCA0IDAgUi9TaXplIDY+PgpzdGFydHhyZWYKNjQyCiUlRU9GCg=="
}

Example response (400):

{
    "status": "400",
    "message": "No se encontraron resultados"
}

HTTP Request

POST api/ar/etiqueta

Body Parameters

Parameter Type Status Description
cp_origen integer required Cp de origen. 4 digitos.
cp_destino integer required Cp de destino. 4 digitos.
proveedor string required Nombre del proveedor que realizara el envio.
ids[0][id] string required Identificador del envio.

Historial de estados

API para consultar los estados de un envio. Requiere en el header el token generado en la "API login". Nos devuelve el estado del envio.

Example request:

curl -X POST "http://shipro.pro/api/ar/estado" \
    -H "Authorization: {***TOKEN DE LOGIN***}" \
    -H "Api-Version: ar" \
    -H "Content-Type: application/json" \
    -d '{"seguimiento":"9485785964"}'
const url = new URL("http://shipro.pro/api/ar/estado");

let headers = {
    "Authorization": "{***TOKEN DE LOGIN***}",
    "Api-Version": "ar",
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "seguimiento": "9485785964"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (200):

[
    {
        "fechahora": "20190704",
        "detalle": "AR",
        "estado": "Order Processed: Ready for UPS"
    }
]

Example response (400):

{
    "status": "400",
    "message": "No se encontraron datos para ese numero de seguimiento"
}

HTTP Request

POST api/ar/estado

Body Parameters

Parameter Type Status Description
seguimiento string required Identificador del envio.