# Fedex

# 1. Generar envío

POST /api/shipping/create

El método permite generar un envío.

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

  • API_KEY: (Tipo de dato: string). Apikey provista por Fedex. Campo obligatorio.

  • API_SECRET: (Tipo de dato: string). Api secret provista por Fedex . Campo obligatorio.

  • ACCOUNT_NUMBER: (Tipo de dato: string). Número de cliente (Customer Number). Campo obligatorio.

  • SERVICE_TYPE: (Tipo de dato: string). Tipo de servicio. Campo obligatorio.

# shippment_data

REQUEST

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

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

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

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

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

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

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

  • destino.postal.codigoPostal: (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.

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

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

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

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

NOTA: si el envío es con Carta Porte se deben agregar los siguientes campos al request.

  • documento_envio: (Tipo de dato: string). Identificador de que se envía la información de Carta Porte. En caso afirmativo colocar "carta_porte", sino ""(string vacío). Campo obligatorio si se envía Carta Porte.

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

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

  • currency: (Tipo de dato: string). Código de la moneda utilizada. Campo obligatorio.

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

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

  • productoAEntregar: (Tipo de dato: string). Cantidad total de productos enviados. Campo obligatorio.

  • items: (Tipo de dato: string). Array de productos enviados. Campo obligatorio.

  • item.cantidad: (Tipo de dato: integer). Cantidad de ese item. Campo obligatorio.

  • item.codigo: (Tipo de dato: string). Clave de producto. (Ver: http://pys.sat.gob.mx/PyS/catPyS.aspx). Campo obligatorio.

  • item.kilos: (Tipo de dato: double). Peso en kg hasta con 3 decimales separados por un punto (Ej: 5.250) Campo obligatorio.

  • item.tipo_producto: (Tipo de dato: integer). Clave de unidad de medida aplicable a la cantidad de bienes o mercancías. (Ver: http://pys.sat.gob.mx/PyS/catUnidades.aspx). Campo obligatorio

  • item.valorDeclaradoConImpuestos: (Tipo de dato: double). Precio del producto hasta con dos decimales separados por un punto. Campo obligatorio.

  • item.descripcion: (Tipo de dato: integer). Título o descripción del producto. Campo obligatorio.

{
    "provider_data": {
        "provider": "Fedex",
        "API_KEY": "l7ec52ed7bd3e647a58a62c28fee5b619e",
        "API_SECRET": "4b4c8430610c4b13883ec001bc66d792",
        "ACCOUNT_NUMBER": "740561073",
        "SERVICE_TYPE": "FEDEX_EXPRESS_SAVER"
    },
    "shippment_data": {
        "origen": {
            "postal": {
                "codigoPostal": "03940",
                "calle": "AV INSURGENTES SUR",
                "numero": "1602",
                "piso": "18",
                "departamento": "Of. 801",
                "localidad": "CDMX",
                "region": "CDMX",
                "pais": "MEX",
                "entreCalle": ""
            }
        },
        "fecha_alta": "",
        "tipoServicio": "",
        "tipo_paquete": "",
        "id_externo": "",  
        "modalidad_envio":"",                                                   
        "direccion_envio":"",                                                   
        "documento_envio":"carta_porte",                              
        "correo": "",
        "currency": "USD", 
        "type": "1",
        "destino": {
            "sucursal": {
                "id": "1234"
            },
            "postal": {
                "codigoPostal": "03940",
                "calle": "AV INSURGENTES SUR",
                "numero": "1602",
                "piso": "18",
                "departamento": "Of. 801",
                "localidad": "CDMX",
                "region": "CDMX",
                "pais": "MEX",
                "entreCalle": ""
            }
        },
        "remitente": {
            "nombreCompleto": "Alberto Lopez",
            "email": "remitente@andreani.com",
            "documentoTipo": "",
            "documentoNumero": "XEXX010101000",
            "telefonos": "113332244"
        },
        "destinatario": {
            "nombreCompleto": "Juana Gonzalez",
            "nombre": "",
            "apellido": "",
            "email": "destinatario@andreani.com",
            "documentoTipo": "",
            "documentoNumero": "XEXX010101000",
            "telefonos": "1112345678"
        },
        "productoAEntregar": 2,
        "bultos": {
            "kilos": "",
            "largoCm": "",
            "altoCm": "",
            "anchoCm": "",
            "volumenCm": "",
            "valorDeclaradoSinImpuestos": "",
            "valorDeclaradoConImpuestos": "",
            "detalle": "",
            "idCliente": ""
        },
        "items": [{
            "cantidad": 1,
            "codigo": "25172119",
            "tipo_producto": "H87",
            "kilos": 1.250,
            "largoCm": "",
            "altoCm": "",
            "anchoCm":" ",
            "volumenCm": "",
            "valorContraReembolso": "",
            "valorDeclaradoConImpuestos": 400.00,
            "sku": "",
            "descripcion": "Bermuda"
        }, 
        {
            "cantidad": 1,
            "codigo": "25172119",
            "tipo_producto": "H87",
            "kilos": 1.250,
            "largoCm": "",
            "altoCm": "",
            "anchoCm":" ",
            "volumenCm": "",
            "valorContraReembolso": "",
            "valorDeclaradoConImpuestos": 500.00,
            "sku": "",
            "descripcion": "Camisa"
        }]
    }
}

RESPONSE

El método devuelve una etiqueta en formato Base 64 y el número de envío.

  • numeroDeEnvio: Número de transacción.

  • etiqueta: etiqueta en formato Base 64

  • descripcionServicio: Si se envió carta porte, se obtendrá el status de la respuesta en este campo.

{
    "response": "Success",
    "providerStatus": "Creado",
    "numeroDeEnvio": "794642026988",
    "hash": null,
    "sucursalDeDistribucion": {
        "id": null,
        "descripcion": ""
    },
    "sucursalDeRendicion": null,
    "sucursalDeImposicion": null,
    "numeroDePermisionaria": null,
    "descripcionServicio":  {
        "carta_porte_status": "success",
        "description": {
            "status": "200",
            "message": "Request Received",
            "awbNumber": "794693255855"
        }
    },
    "etiqueta":"JVBERi0xLjQKMSAwIG..."
}

# 2. Obtener tracking (estado de envío)

GET /api/shipping/:id

Este método devuelve el estado del envío.

REQUEST

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

Estos campos van en el header:

  • provider: Fedex. Campo obligatorio.
  • apiKey: Api key provista por Fedex. Campo obligatorio.
  • apiSecret: Api secret provista por Fedex. Campo obligatorio.
provider: Fedex
apiKey: l7ec52ed7bd3e647a58a62c28fee5b619e
apiSecret: 4b4c8430610c4b13883ec001bc66d792

RESPONSE

  • providerStatus: Estado del envío.

  • descripcionServicio: Código del estado de envío.

{
    "response": "Success",
    "providerStatus": "Delivered",
    "numeroDeEnvio": "794978138571",
    "localizacion": "Santa Fe",
    "sucursalDeDistribucion": {
        "id": null,
        "descripcion": null
    },
    "sucursalDeRendicion": null,
    "sucursalDeImposicion": null,
    "numeroDePermisionaria": null,
    "descripcionServicio": "DL"
}