# Ocasa

# 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 ("Ocasa"). Campo obligatorio

  • USER: (Tipo de dato: string). Client id provisto por Ocasa. Campo obligatorio.

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

  • CONTRATO_DOMICILIO: (Tipo de dato: string). Acuerdos de producto (AP) provisto por Ocasa para distribución directa. Campo obligatorio.

  • CONTRATO_SUCURSAL: (Tipo de dato: string). Acuerdos de producto (AP) provisto por Ocasa para distribución Inversa. Campo obligatorio.

# shippment_data
  • type: (Tipo de dato: string). En caso de querer cotizar logística inversa enviar "return". Campo obligatorio

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

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

  • bultos.kilos: (Tipo de dato: integer). Peso del paquete en gramos. Campo obligatorio

  • bultos.volumenCm: (Tipo de dato: integer). Volumen del paquete en cm3. Campo obligatorio

{
    "provider_data":{
        "provider": "Ocasa",
        "USER": "0109591501",
        "PASS": "Q2345*RTD9",
        "CONTRATO_DOMICILIO": "004001670100010",
        "CONTRATO_SUCURSAL": "004001671100010"
        
    },
    "shippment_data": {
        "origen": {
            "postal": {
                "codigoPostal": "1425"
            }
        },
        "destino":{
            "postal": {
                "codigoPostal": "1828"
            }
        },
        "id_externo": "",
        "fecha_alta": "",
        "modalidad_envio":"",
        "currency": "",
        "type": "",
        "productoAEntregar": "",
        "bultos": {
            "kilos": "10000" ,
            "largoCm": "",
            "altoCm": "",
            "anchoCm": "",
            "volumenCm": "300",
            "valorDeclaradoConImpuestos": "",
            "detalle": ""
        }
    }
}

RESPONSE

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

# 2. Generar Envío / Logística inversa

POST /api/shipping/create

El método permite generar un envío.

REQUEST

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

  • USER: (Tipo de dato: string). Client id provisto por Ocasa. Campo obligatorio.

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

  • CONTRATO_DOMICILIO: (Tipo de dato: string). Acuerdos de producto (AP) provisto por Ocasa para distribución directa. Campo obligatorio.

  • CONTRATO_SUCURSAL: (Tipo de dato: string). Acuerdos de producto (AP) provisto por Ocasa para distribución Inversa. Campo obligatorio.

# shippment_data
  • 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 (Ej: Olivos). Campo obligatorio.

  • destino.postal.region: (Tipo de dato: string). Provincia a la cual pertenece la ciudad de destino (Ej: Buenos Aires). Campo obligatorio.

  • destino.postal.pais: (Tipo de dato: string). Código del país (Ej: AR). Campo obligatorio.

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

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

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

  • 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 (Ej: Olivos). Campo obligatorio.

  • origen.postal.region: (Tipo de dato: string). Provincia a la cual pertenece la ciudad de origen (Ej: Buenos Aires). Campo obligatorio.

  • origen.postal.pais: (Tipo de dato: string). Código del país (Ej: AR). Campo obligatorio.

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

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

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

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

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

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

  • destinatario.documentoNumero: (Tipo de dato: string). Número de documento. Campo obligatorio.

  • destinatario.telefonos: (Tipo de dato: string). Número de teléfono. Campo obligatorio.

  • destinatario.codigoArea: (Tipo de dato: string). Código de área. Campo obligatorio.

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

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

  • remitente.telefonos: (Tipo de dato: string). Número de teléfono. Campo obligatorio.

  • remitente.codigoArea: (Tipo de dato: string). Código de área. Campo obligatorio.

  • type: (Tipo de dato: string). Si se trata de logística inversa enviar "return". Campo obligatorio para devoluciones.

  • bultos.kilos: (Tipo de dato: string). Peso del paquete en gramos. Campo obligatorio para devoluciones.

  • bultos.largoCm: (Tipo de dato: string). Largo en cm. Campo obligatorio.

  • bultos.altoCm: (Tipo de dato: string). Alto en cm. Campo obligatorio.

  • bultos.anchoCm: (Tipo de dato: string). Ancho en cm. Campo obligatorio.

  • bultos.valorDeclaradoConImpuestos: (Tipo de dato: string). Valor total de las mercaderías. Campo obligatorio.

  • bultos.detalle: (Tipo de dato: string). Descripción del o los productos. Campo obligatorio.

{
    "provider_data": {
       "provider": "Ocasa",
        "USER": "0109591501",
        "PASS": "Q2345*RTD9",
        "CONTRATO_DOMICILIO": "004001670100010",
        "CONTRATO_SUCURSAL": "004001671100010"
    },
    "shippment_data": {
        "origen": {
            "postal": {
                "codigoPostal": "1191",
                "calle": "Burgos",
                "numero": "120",
                "piso": "2",
                "depto": "C",
                "localidad": "Almagro",
                "region": "Buenos Aires",
                "pais": "AR",
                "entreCalle": "",
                "firstName": "Jorge",
                "lastName": "Fernández"
            }
        },
        "fecha_alta": "",
        "tipoServicio": "",
        "tipo_paquete": "",
        "id_externo": "",  
        "modalidad_envio": "",                                                                   
        "direccion_envio": "",                                                            
        "correo": "",
        "currency": "", 
        "comment": "POr ahí",
        "type": "return",
        "destino": {
            "sucursal": {
                "id": ""
            },
            "postal": {
                "codigoPostal": "1828",
                "calle": "Vergara",
                "numero": "2011",
                "piso": "",
                "depto": "",
                "localidad": "Banfield",
                "barrio": "Banfield",
                "region": "Buenos Aires",
                "pais": "AR",
                "entreCalle": "",
                "firstName": "Juana",
                "lastName": "González"
            }
        },
        "remitente": {
            "nombreCompleto": "Jorge Fernández",
            "email": "remitente@andreani.com",
            "documentoTipo": "DNI",
            "documentoNumero": "29946689",
            "telefonos": "113332244",
            "codigoArea": "011"
        },
        "destinatario": {
            "nombreCompleto": "Juana González",
            "email": "destinatario@andreani.com",
            "documentoTipo": "DNI",
            "documentoNumero": "12345567",
            "telefonos": "1112345678",
            "codigoArea": "011"
        },
        "productoAEntregar": "",
        "bultos": {
            "kilos": 500,
            "largoCm": 30,
            "altoCm": 40,
            "anchoCm": 10,
            "volumenCm": "",
            "valorDeclaradoSinImpuestos": "",
            "valorDeclaradoConImpuestos": 1000,
            "detalle": "VA el detalle",
            "idCliente": "654311"
        }
    }
}

RESPONSE

  • numeroDeEnvio: Número de orden. Se utiliza para la obtención de etiqueta y el tracking (Estado de envío).
{
    "response": "Success",
    "providerStatus": "Creado",
    "numeroDeEnvio": "EC4PCWAF10785",
    "statusRetiro": "",
    "sucursalDeDistribucion": {
        "id": null,
        "descripcion": ""
    },
    "sucursalDeRendicion": null,
    "sucursalDeImposicion": null,
    "numeroDePermisionaria": null,
    "descripcionServicio": "",
    "etiqueta": ""
}

# 4. Cancelar envío

GET /api/shipping/cancel/:id

El método permite cancelar un 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: (Tipo de dato: string). Nombre del OOLL ("Ocasa"). Campo obligatorio

  • USER: (Tipo de dato: string). Client id provisto por Ocasa. Campo obligatorio.

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

provider: "Ocasa"
USER: "0109591501"
PASS: "Q2345*RTD9"

RESPONSE

  • success: Si el valor es true indica que la cancelación fue exitosa.
{
    "response": "Success",
    "x": {
        "tracking_number": "EC4XCDQF10786",
        "status": "CANCELLED"
    }
}

# 5. Obtener etiqueta

GET /api/shipping/etiqueta/:id

Se emplea para rastrear obtener la url de la etiqueta. Una vez creado el envío, la etiqueta tarda algunos minutos en disponibilizarse.

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: (Tipo de dato: string). Nombre del OOLL ("Ocasa"). Campo obligatorio

  • USER: (Tipo de dato: string). Client id provisto por Ocasa. Campo obligatorio.

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

provider: "Ocasa"
USER: "0109591501"
PASS: "Q2345*RTD9"

RESPONSE

Devuelve la url de la etiqueta.

# 6. 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: (Tipo de dato: string). Nombre del OOLL ("Ocasa"). Campo obligatorio

  • USER: (Tipo de dato: string). Client id provisto por Ocasa. Campo obligatorio.

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

provider: "Ocasa"
USER: "0109591501"
PASS: "Q2345*RTD9"

RESPONSE

  • providerStatus: Código del estado del envío. Estos son los eventos:

ADM: "ADMISIÓN PROVISORIA", AWA: "AGUARDANDO AUTORIZACION", CCP: "EN PROCESO DE ADUANA", CID: "CONTENEDOR EN DESTINO", CLI: "APROBADA POR CLIENTE", CLO: "CIERRE OPERATIVO", DAG: "DOCS RECIBIDOS CON APROB. GUBERNAMENTAL", DRO: "DOCS RECIBIDOS EN OCASA", DRS: "DOCS RECIBIDOS DEL SITE", DSD: "DOCS ENVIADOS A DESTINO", DSG: "DOCS ENVIADOS PARA APROB. GUBERNAMENTAL", DSS: "DOCS ENVIADOS AL SITE", END: "FINALIZADA", HDC: "PENDIENTE DE DISTRIBUCION EN CONTENEDOR", HF2: "EN SUCURSAL AG", HFD: "PENDIENTE DE DISTRIBUCION", HSI: "RENDICION INTERNA PENDIENTE DE DESPACHO", HSP: "CARTA DE RENDICION PENDIENTE DESPACHO", ISD: "RENDICION INTERNA DESPACHADA", ITW: "EN GUARDA TRANSITORIA", KSO: "KITS ENVIADOS A OCASA", YLIB: "LIBERADO EN ADUANDA", MPD: "CARTA DE RENDICION EN DISTRIBUCION", MPS: "CARTA DE RENDICION AL CLIENTE GENERADA", ODP: "EN DISTRIBUCION", PO1: "POD DIGITAL", POD: "RESULTADO DE LA DISTRIBUCION DOM.", POP: "RESULTADO DE LA DISTRIBUCION SUCURSAL", PUC: "PEDIDO CLIENTE", PUP: "PEDIDO RECOLECTADO", PUR: "PEDIDO ASIGNADO (EN CURSO)", PUS: "PEDIDO REGISTRADO (PICKUP)", RAO: "PEDIDO RECIBIDO EN OCASA", RFL: "CARGA DE REFERENCIAS", SCC: "ENVIO LIBERADO", ST2: "ARRIBADO", STD: "DESPACHADO", STK: "EN STOCK", VLT: "EN BOVEDA", WFD: "PENDIENTE DE DESTRUCCION", WFN: "PEND. DE CARGA DE NOVEDADES", WFS: "PENDIENTE DE DESPACHO", WPD: "PENDIENTE DE RENDICION", WRN: "RENDICION PEND. DE CARGA DE NOVEDADES"

{ "motive_code": "", "carrier_code": "RAO", "receiver_name": "", "payload": { "date": "2024/06/13 20:12:00", "agency_id": "" } }

{
    "response": "Success",
    "providerStatus": [
        {
            "motive_code": "",
            "carrier_code": "RAO",
            "receiver_name": "",
            "payload": {
                "date": "2024/06/13 20:12:00",
                "agency_id": ""
            }
        }
    ],
    "numeroDeEnvio": "EC4QWQXA10784",
    "sucursalDeDistribucion": {
        "id": null,
        "descripcion": null
    },
    "sucursalDeRendicion": null,
    "sucursalDeImposicion": null,
    "numeroDePermisionaria": null,
    "descripcionServicio": ""
}