#
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"
}