# Moova

# 1. Generar envío

POST /api/shipping/create

El método permite generar un envío.

# provider_data

  • provider: (Tipo de dato: string). Moova. Campo obligatorio.

  • API-KEY: (Tipo de dato: string). Api key provista por Moova. Campo obligatorio.

  • API_SECRET: (Tipo de dato: string). Api secret provista por Moova.. 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 obligatorio.

  • origen.postal.departamento: (Tipo de dato: String). Campo obligatorio.

  • origen.postal.localidad: (Tipo de dato: String). Campo obligatorio.

  • origen.postal.region: (Tipo de dato: String). Campo obligatorio.

  • origen.postal.codigoPostal: (Tipo de dato: String). Campo obligatorio.

  • origen.postal.firstName: (Tipo de dato: String). Primer nombre. Campo obligatorio.

  • origen.postal.lastName:(Tipo de dato: String). Apellido. Campo obligatorio.

  • origen.message: (Tipo de dato: String) Mensaje particular para dejar en ese destino. 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 obligatorio.

  • destino.postal.departamento: (Tipo de dato: String). Campo obligatorio.

  • destino.postal.localidad: (Tipo de dato: String). Campo obligatorio.

  • destino.postal.region: (Tipo de dato: String). Campo obligatorio.

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

  • destino.postal.firstName: (Tipo de dato: String). Primer nombre. Campo obligatorio.

  • destino.postal.lastName: (Tipo de dato: String). Apellido. Campo obligatorio.

  • type: (Tipo de dato: String) Campo obligatorio. . regular: Envío que se debiera utilizar normalmente. . minutes_90: Envío que se necesite hacer en 2-3 horas desde que sube al sistema o desde un horario específico en el futuro por ejemplo (mañana a las 10 Am). Si un envío es del tipo minutes_90 debe ir con el parámetro flow: automatic. . mercado_flex: La promesa de entrega es la misma que un regular, pero se le recordará al Moover que tiene que escanear dentro de la app de FLEX para no ser penalizados. . pickup: Únicamente debiera utilizarse luego de haber confirmado con Moova el uso que se le va a dar. . next_day: El paquete será entregado al día siguiente. . food: Envío de comida o bebida que requiere un tiempo rápido de resolución y que el moover disponga de una mochila térmica para su traslado. Este envío suele ir con el parámetro flow: automatic.

  • flow: (Tipo de dato: String) Campo obligatorio. . manual: Este es el flow normal de un envío. . semi-automatic: Crea un envío y deja el envío en moova en estado READY. Esto significa que una vez creado el envío, está listo para que lo pasen a retirar. . automatic: Solo usar con type: minutes_90 o food. El envío entrará al sistema de manera automática y buscará un mensajero de manera automática para realizarlo de manera inmediata. . warehouse: Este flujo tiene que ser revisado con el equipo de ventas. Aplica si el pedido es consolidado en nuestro warehouse y luego entregado al cliente final.

  • currency: (Tipo de dato: String). String de 3 letras que define el tipo de moneda según el ISO 4217. Ejemplo: ARS para Argentina. Campo obligatorio.

  • scheduledDate: (Tipo de dato: String). Esta es la fecha y hora en que se pasara de manera automatica al estado "READY" (listo para retirar). Formato: AAAA-MM-DD HH:MM:SS. Campo opcional.

  • internalCode: (Tipo de dato: String). Número de orden. Campo opcional.

  • comments: (Tipo de dato: String). Comentario general sobre el envío. Campo opcional.

  • description: (Tipo de dato: String). Descripción del envío. Campo opcional.

{
    "provider_data": {
        "provider": "Moova",
        "API_KEY": "", 
        "API_SECRET": ""
    },
    "shippment_data": {
        "origen": {
            "message": "",
            "postal": {
                "codigoPostal": "1407",
                "calle": "Cortina",
                "numero": "120",
                "piso": "2",
                "departamento": "C",
                "localidad": "CABA",
                "region": "Buenos Aires",
                "pais": "Argentina",
                "entreCalle": "",
                "lastname": "Hammer",
                "firstname": "Sledge"
            }
        },
        "scheduledDate": "",
        "internalCode": "6543",
        "comments": "",
        "description": "",
        "fecha_alta": "",
        "tipoServicio": "",
        "tipo_paquete": "",
        "id_externo": "",
        "modalidad_envio": "",                      
        "direccion_envio":"",                                                       
        "correo": "", 
        "currency": "ARS", 
        "type": "regular",
        "flow": "manual",
        "destino": {
            "message": "",
            "sucursal": {
                "id": ""
            },
            "postal": {
                "codigoPostal": "1025",
                "calle": "Av Callao",
                "numero": "1756",
                "piso": "2",
                "departamento": "C",
                "localidad": "CABA",
                "region": "Buenos Aires",
                "pais": "Argentina",
                "entreCalle": "",
                "lastname": "Gonzalez",
                "firstname": "Juana"
            }
        },
        "remitente": {
            "nombreCompleto": "Alberto Lopez",
            "email": "remitente@andreani.com",
            "documentoTipo": "DNI",
            "documentoNumero": "33111222",
            "telefonos": "113332244"
        },
        "destinatario": {
            "nombreCompleto": "Juana Gonzalez",
            "email": "destinatario@andreani.com",
            "documentoTipo": "DNI",
            "documentoNumero": "33999888",
            "telefonos": "1112345678"
        },
        "productoAEntregar": "",
        "bultos": {
            "kilos": "",
            "largoCm": "",
            "altoCm": "",
            "anchoCm": "",
            "volumenCm": "",
            "valorDeclaradoSinImpuestos": "",
            "valorDeclaradoConImpuestos": "",
            "detalle": "",
            "idCliente": ""
        }
    }
}

RESPONSE

  • numeroDeEnvio: Código con que se registró el envío. Se utiliza para genera la etiqueta.
{
    response: "Success",
    providerStatus: "Creado",
    numeroDeEnvio: "25debfd0-fd12-11ea-b375-87a079a4fb9e",
    hash: "eff81c0aaefe7a39e43e1c5ff52762eda533fd77aad5d743d3841b5ba1e90d0d",
    sucursalDeDistribucion: {
        id: null,
        descripcion: "",
    },
    sucursalDeRendicion: null,
    sucursalDeImposicion: null,
    numeroDePermisionaria: null,
    descripcionServicio: null,
    etiqueta: ""
}

# 2. Obtener etiqueta

GET /api/shipping/etiqueta/:id

El método devuelve el pdf de la etiqueta de envío.

REQUEST

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

Todos estos campos van en el header:

  • provider: Moova.

  • APISECRET: Usuario. Campo obligatorio.

  • APIKEY: Contraseña. Campo obligatorio.


provider: Moova
APISECRET: ""
APIKEY: ""

RESPONSE

Devuelve el link de la etiqueta.

{
  "label": "https://s3.amazonaws.com/develop.files.moova.io/shippings/labels/b9255870-6166-11ea-914b-ff471ce5170b_15x10.pdf"
}