# Welivery

# 1. Cotizar envío

POST /api/shipping/price

Devuelve un array con los servicios disponibles.

REQUEST

# provider_data
  • provider: (Tipo de dato: string). Nombre del OOLL ("Urbano"). Campo obligatorio

  • USER: (Tipo de dato: string). Usuario provisto por Urbano. Campo obligatorio.

  • PASS: (Tipo de dato: string). Password provisto por Urbano. Campo obligatorio.

# shippment_data
  • destino.postal.codigoPostal: (Tipo de dato: string). Código postal de destino. Campo obligatorio

  • destino.postal.codigoPostal: (Tipo de dato: string). Ciudad de destino. Campo obligatorio

  • fecha_alta: (Tipo de dato: string): Día a realizar el envío. Campo obligatorio

{
    "provider_data":{
        "provider": "Welivery",
        "USER": "185c29dc24325934ee377cfda20e414c",
        "PASS": "59d9d12fb6cf3241e5267ab1a2fce6dbc833bc5a"
        
    },
    "shippment_data": {
        "origen": {
            "postal": {
                "codigoPostal": ""
            }
        },
        "destino":{
            "postal": {
                "codigoPostal": "1191",
                "ciudad": "CABA"
            }
        },
        "id_externo": "",
        "fecha_alta": "2024-04-09",
        "modalidad_envio":"",
        "currency": "",
        "type": "",
        "productoAEntregar": "",
        "bultos": {
            "kilos": "1.5" ,
            "largoCm": "1",
            "altoCm": "1",
            "anchoCm": "1",
            "volumenCm": "1.5",
            "valorDeclaradoConImpuestos": "",
            "detalle": ""
        }
    }
}

RESPONSE

  • costo: Costo del envío.
{
    "costo": 990.99
}

# 2. Generar Envío / Devolución

POST /api/shipping/create

El método permite generar un envío.

REQUEST

# provider_data
  • provider: (Tipo de dato: string). Nombre del OOLL (Welivery). Campo obligatorio.

  • USER: (Tipo de dato: string). Api key para autorizar el envío de request. Campo obligatorio.

  • PASS: (Tipo de dato: string). Api secret para autorizar el envío de request. Campo obligatorio.

# shippment_data
  • origen.postal.calle: (Tipo de dato: string). Campo obligatorio.

  • origen.postal.numero:(Tipo de dato: string). Campo obligatorio.

  • origen.postal.piso:(Tipo de dato: string). Campo opcional.

  • origen.postal.depto:(Tipo de dato: string). Campo opcional.

  • origen.postal.localidad: (Tipo de dato: string). Nombre de la ciudad de origen. Campo obligatorio.

  • origen.postal.codigoPostal: (Tipo de dato: string). Código postal la ciudad de origen. Campo obligatorio.

  • destino.postal.calle: (Tipo de dato: string). Campo obligatorio.

  • destino.postal.numero:(Tipo de dato: string). Campo obligatorio.

  • destino.postal.piso:(Tipo de dato: string). Campo opcional.

  • destino.postal.depto:(Tipo de dato: string). Campo opcional.

  • destino.postal.localidad: (Tipo de dato: string). Nombre de la ciudad de destino. Campo obligatorio.

  • destino.postal.codigoPostal: (Tipo de dato: string). Código Postal de la ciudad de destino. Campo obligatorio.

  • destino.postal.entreCalle: (Tipo de dato: string). Información entre calles. Campo obligatorio.

  • remitente.nombreCompleto:(Tipo de dato: string). Campo obligatorio.

  • destinatario.nombreCompleto:(Tipo de dato: string). Campo obligatorio.

  • destinatario.email: (Tipo de dato: string). Campo obligatorio.

  • destinatario.telefonos: (Tipo de dato: string). Campo obligatorio.

  • bultos.kilos: (Tipo de dato: integer). Peso en kg. Campo obligatorio.

  • bultos.volumenCm: (Tipo de dato: integer). Peso en cm3. Campo obligatorio.

  • bultos.detalle: (Tipo de dato: string). Id de la orden (no se puede repetir). Campo obligatorio.

  • type: (Tipo de dato: string). Tipo de envío. Valores posibles: 0 (envío a domicilio), 1 (retiro en domicilio). Campo obligatorio.

{
  "provider_data": {
    "provider": "Welivery",
    "USER": "185c29dc24325934ee377cfda20e414c",
    "PASS": "59d9d12fb6cf3241e5267ab1a2fce6dbc833bc5a"
  },
  "shippment_data": {
    "identification": { "suscriberId": "", "customerNumber": null },
    "systemInformation": { "id": "", "name": "", "version": "" },
    "serviceConfiguration": {
      "quantityOfLabels": 1,
      "serviceTypeId": "",
      "salesOrganization": "",
      "originZipCodeForRouting": "",
      "isReturnDocument": "false",
      "returnDocument": { "type": "", "serviceId": "" }
    },
    "origen": {
      "postal": {
        "codigoPostal": "1414",
        "calle": "camargo",
        "numero": "900",
        "piso": "",
        "departamento": "",
        "depto": "",
        "localidad": "Buenos Aires",
        "region": "",
        "pais": "Argentina",
        "entreCalle": "",
        "codigo_ciudad": "",
        "firstName": "",
        "lastName": ""
      }
    },
    "fecha_alta": "1",
    "tipoServicio": "Domicilio",
    "tipo_paquete": "ENECSM",
    "id_externo": "9216",
    "modalidad_envio": "D",
    "currency": "2",
    "direccion_envio": "chequear",
    "correo": "andreani",
    "type": 1,
    "flow": "",
    "destino": {
      "sucursal": { "id": null },
      "postal": {
        "lastName": "",
        "firstName": "",
        "codigoPostal": "1425",
        "calle": "Charcas",
        "numero": "3526",
        "piso": "",
        "departamento": "",
        "depto": "",
        "localidad": "Capital federal",
        "region": "",
        "pais": "",
        "entreCalle": "Charcas",
        "codigo_ciudad": ""
      }
    },
    "remitente": {
      "nombreCompleto": "ace ace",
      "email": "",
      "documentoTipo": "",
      "documentoNumero": "",
      "telefonos": "",
      "marca": ""
    },
    "destinatario": {
      "nombreCompleto": "Segundo Depo",
      "email": "prueba@pow.la",
      "documentoTipo": "DNI",
      "documentoNumero": "2342432",
      "telefonos": "1112345678"
    },
    "productoAEntregar": "Cambio orden",
    "PickUp": "false",
    "codigoPickUp": null,
    "bultos": {
      "kilos": 3,
      "largoCm": ",
      "altoCm": ",
      "anchoCm": ",
      "volumenCm": 5000,
      "cantidad": "",
      "valorDeclaradoSinImpuestos": "",
      "valorDeclaradoConImpuestos": 2,
      "detalle": "RMA-9217",
      "idCliente": ""
    },
    "items": [
      {
        "cantidad": "",
        "kilos": "",
        "largoCm": ",
        "altoCm": ",
        "anchoCm": ",
        "volumenCm": "",
        "valorContraReembolso": "",
        "valorDeclaradoConImpuestos": "",
        "sku": "",
        "descripcion": ""
      }
    ]
  }
}

RESPONSE

  • numeroDeEnvio: Número de orden informada en datalle. Se utiliza para la obtención de etiqueta y el tracking (Estado de envío).

  • emision: Número de tracking.

  • url: url de la etiqueta.

{
  "response": "Success",
  "providerStatus": "Creado",
  "numeroDeEnvio": "RMA-9217",
  "emision": "17552207",
  "sucursalDeDistribucion": {
    "id": null,
    "descripcion": ""
  },
  "sucursalDeRendicion": null,
  "sucursalDeImposicion": null,
  "numeroDePermisionaria": null,
  "descripcionServicio": "",
  "etiqueta": "",
  "url": "https://test.welivery.lat/site/tracking_label_m/t/bb16e605351d03e18e8e330f345ccd438b5a9789/op/0/label.pdf"
}

# 3. Obtener etiqueta

GET /api/shipping/etiqueta/:id

Se emplea para volver a obtener la url de la etiqueta (no genera etiqueta, obtiene la ya generada en el envío).

REQUEST

  • id: Número de envío obtenido en "Generar envío". Va en el id de la url como ruta parametrizada. Campo obligatorio.

Todos estos campos van en el header:

  • provider: Nombre del OOLL (Welivery). Campo obligatorio.

  • USER: (Tipo de dato: string). Usuario. Campo obligatorio.

  • PASS: (Tipo de dato: string). Password. Campo obligatorio.

provider: Welivery
USER: 185c29dc24325934ee377cfda20e414c
PASS: 59d9d12fb6cf3241e5267ab1a2fce6dbc833bc5a

RESPONSE

Devuelve la url de la etiqueta.

# 4. Obtener tracking (Estado de envío)

GET /api/shipping/:id

Se emplea para rastrear el envío y obtener su status.

REQUEST

  • id: Número de envío obtenido en "Generar envío". Va en el id de la url como ruta parametrizada. Campo obligatorio.

Todos estos campos van en el header:

  • provider: Nombre del OOLL (Welivery). Campo obligatorio.

  • USER: (Tipo de dato: string). Usuario. Campo obligatorio.

  • PASS: (Tipo de dato: string). Password. Campo obligatorio.

provider: Welivery
USER: 185c29dc24325934ee377cfda20e414c
PASS: 59d9d12fb6cf3241e5267ab1a2fce6dbc833bc5a

RESPONSE

  • providerStatus: Código del estado del envío.

  • descripcionServicio: Especifica el código de estado de envío.

  • url: Url donde se puede consultar el estado actual del envío y los estados históricos.

{
    "response": "Success",
    "providerStatus": "PENDIENTE",
    "numeroDeEnvio": "123459",
    "sucursalDeDistribucion": {
        "id": null,
        "descripcion": null
    },
    "sucursalDeRendicion": null,
    "sucursalDeImposicion": null,
    "numeroDePermisionaria": null,
    "descripcionServicio": ""
}

# 5. Actualización de datos de envío

POST /api/shipping/:id

El método permite modificar datos del envío generado. Asume los mismos campos que el create.

NOTA: debe agregarse el número de envío generado como id e incluirlo en el campo "detalle" del body del request.

REQUEST

  • id: Número de envío obtenido en "Generar envío". Va en el id de la url como ruta parametrizada. Campo obligatorio.
# provider_data
  • provider: (Tipo de dato: string). Nombre del OOLL (Welivery). Campo obligatorio.

  • USER: (Tipo de dato: string). Api key para autorizar el envío de request. Campo obligatorio.

  • PASS: (Tipo de dato: string). Api secret para autorizar el envío de request. Campo obligatorio.

# shippment_data
  • origen.postal.calle: (Tipo de dato: string). Campo obligatorio.

  • origen.postal.numero:(Tipo de dato: string). Campo obligatorio.

  • origen.postal.piso:(Tipo de dato: string). Campo opcional.

  • origen.postal.depto:(Tipo de dato: string). Campo opcional.

  • origen.postal.localidad: (Tipo de dato: string). Nombre de la ciudad de origen. Campo obligatorio.

  • origen.postal.codigoPostal: (Tipo de dato: string). Código postal la ciudad de origen. Campo obligatorio.

  • destino.postal.calle: (Tipo de dato: string). Campo obligatorio.

  • destino.postal.numero:(Tipo de dato: string). Campo obligatorio.

  • destino.postal.piso:(Tipo de dato: string). Campo opcional.

  • destino.postal.depto:(Tipo de dato: string). Campo opcional.

  • destino.postal.localidad: (Tipo de dato: string). Nombre de la ciudad de destino. Campo obligatorio.

  • destino.postal.codigoPostal: (Tipo de dato: string). Código Postal de la ciudad de destino. Campo obligatorio.

  • destino.postal.entreCalle: (Tipo de dato: string). Información entre calles. Campo obligatorio.

  • remitente.nombreCompleto:(Tipo de dato: string). Campo obligatorio.

  • destinatario.nombreCompleto:(Tipo de dato: string). Campo obligatorio.

  • destinatario.email: (Tipo de dato: string). Campo obligatorio.

  • destinatario.telefonos: (Tipo de dato: string). Campo obligatorio.

  • bultos.kilos: (Tipo de dato: integer). Peso en kg. Campo obligatorio.

  • bultos.volumenCm: (Tipo de dato: integer). Peso en cm3. Campo obligatorio.

  • bultos.detalle: (Tipo de dato: string). Id de la orden (no se puede repetir). Campo obligatorio.

  • type: (Tipo de dato: string). Tipo de envío. Valores posibles: 0 (envío a domicilio), 1 (retiro en domicilio). Campo obligatorio.

{
  "provider_data": {
    "provider": "Welivery",
    "USER": "185c29dc24325934ee377cfda20e414c",
    "PASS": "59d9d12fb6cf3241e5267ab1a2fce6dbc833bc5a"
  },
  "shippment_data": {
    "identification": { "suscriberId": "", "customerNumber": null },
    "systemInformation": { "id": "", "name": "", "version": "" },
    "serviceConfiguration": {
      "quantityOfLabels": 1,
      "serviceTypeId": "",
      "salesOrganization": "",
      "originZipCodeForRouting": "",
      "isReturnDocument": "false",
      "returnDocument": { "type": "", "serviceId": "" }
    },
    "origen": {
      "postal": {
        "codigoPostal": "1414",
        "calle": "camargo",
        "numero": "900",
        "piso": "",
        "departamento": "",
        "depto": "",
        "localidad": "Buenos Aires",
        "region": "",
        "pais": "Argentina",
        "entreCalle": "",
        "codigo_ciudad": "",
        "firstName": "",
        "lastName": ""
      }
    },
    "fecha_alta": "1",
    "tipoServicio": "Domicilio",
    "tipo_paquete": "ENECSM",
    "id_externo": "9216",
    "modalidad_envio": "D",
    "currency": "2",
    "direccion_envio": "chequear",
    "correo": "andreani",
    "type": 1,
    "flow": "",
    "destino": {
      "sucursal": { "id": null },
      "postal": {
        "lastName": "",
        "firstName": "",
        "codigoPostal": "1425",
        "calle": "Charcas",
        "numero": "3526",
        "piso": "",
        "departamento": "",
        "depto": "",
        "localidad": "Capital federal",
        "region": "",
        "pais": "",
        "entreCalle": "Charcas",
        "codigo_ciudad": ""
      }
    },
    "remitente": {
      "nombreCompleto": "ace ace",
      "email": "",
      "documentoTipo": "",
      "documentoNumero": "",
      "telefonos": "",
      "marca": ""
    },
    "destinatario": {
      "nombreCompleto": "Segundo Depo",
      "email": "prueba@pow.la",
      "documentoTipo": "DNI",
      "documentoNumero": "2342432",
      "telefonos": "1112345678"
    },
    "productoAEntregar": "Cambio orden",
    "PickUp": "false",
    "codigoPickUp": null,
    "bultos": {
      "kilos": 3,
      "largoCm": ",
      "altoCm": ",
      "anchoCm": ",
      "volumenCm": 5000,
      "cantidad": "",
      "valorDeclaradoSinImpuestos": "",
      "valorDeclaradoConImpuestos": 2,
      "detalle": "RMA-9217",
      "idCliente": ""
    },
    "items": [
      {
        "cantidad": "",
        "kilos": "",
        "largoCm": ",
        "altoCm": ",
        "anchoCm": ",
        "volumenCm": "",
        "valorContraReembolso": "",
        "valorDeclaradoConImpuestos": "",
        "sku": "",
        "descripcion": ""
      }
    ]
  }
}

RESPONSE

  • numeroDeEnvio: Número de orden informada en datalle. Se utiliza para la obtención de etiqueta y el tracking (Estado de envío).

  • emision: Número de tracking.

  • url: url de la etiqueta.

{
  "response": "Success",
  "providerStatus": "Actualizaco",
  "numeroDeEnvio": "RMA-9217",
  "emision": "17552207",
  "sucursalDeDistribucion": {
    "id": null,
    "descripcion": ""
  },
  "sucursalDeRendicion": null,
  "sucursalDeImposicion": null,
  "numeroDePermisionaria": null,
  "descripcionServicio": "",
  "etiqueta": "",
  "url": "https://test.welivery.lat/site/tracking_label_m/t/bb16e605351d03e18e8e330f345ccd438b5a9789/op/0/label.pdf"
}

# 6. Cancelación de envío

GET /api/shipping/cancel/:id

Se emplea para cancelar el envío.

REQUEST

  • id: Número de envío obtenido en "Generar envío". Va en el id de la url como ruta parametrizada. Campo obligatorio.

Todos estos campos van en el header:

  • provider: Nombre del OOLL (Welivery). Campo obligatorio.

  • USER: (Tipo de dato: string). Usuario. Campo obligatorio.

  • PASS: (Tipo de dato: string). Password. Campo obligatorio.

provider: Welivery
USER: 185c29dc24325934ee377cfda20e414c
PASS: 59d9d12fb6cf3241e5267ab1a2fce6dbc833bc5a

RESPONSE

  • numeroDeEnvio: Número de envío cancelado.
{
    "response": "Success",
    "numeroDeEnvio": "123459"
}