Consulta de información de Carta Porte por shipment desde México
Contenidos
La API de consulta de datos para carta-porte por envío tiene como objetivo servir datos fiscales a los carriers que forman parte del transporte y que quieren generar el documento fiscal para México (cfdi+carta-porte).
Dado un ID de envío, esta API devuelve los datos (lista de productos, origen y destino) del mismo.
Request
GET https://api.mercadolibre.com/shipments/{shipment_id}/carta-porte-details/{step_type}?access_token={access_token}&logistic_center=MXAQR1&pipeline=SMD1_AParámetro | Tipo | Descripción |
|---|---|---|
| shipment_id | String | Id del envío |
| step_type | String | Nombre de la sección deseada. Valores posibles: first_mile, middle_mile, last_mile |
| access_token | String | Token de acceso |
| logistic_center | String | Nombre del centro logístico de salida del despacho. Este parámetro de consulta es opcional. No debe usarse para el tramo first_mile ni last_mile. Para la sección middle_mile este parámetro es obligatorio. |
| pipeline | String | Nombre de canalización de HU presente en el despacho. Este parámetro de consulta es opcional. No debe usarse para el tramo first_mile ni last_mile. Para la sección middle_mile este parámetro es obligatorio. |
Response
{
"recipient": {
"rfc": "string",
"full_name": "string",
},
"origin": {
"fiscal_information": {
"full_name": "string",
"rfc": "string",
"fiscal_residence": "string",
},
"address": {
"address_line":"string",
"street_name":"string",
"street_number":"string",
"intersection":"string",
"zip_code":"string",
"city":{
"id":"string",
"name":"string"
},
"state":{
"id":"string",
"name":"string"
},
"country":{
"id":"string",
"name":"string"
},
"neighborhood":{
"id":"string",
"name":"string"
},
"municipality":{
"id":"string",
"name":"string"
},
},
},
"destination": {
"fiscal_information": {
"full_name": "string",
"rfc": "string",
"fiscal_residence": "string",
},
"address": {
"address_line":"string",
"street_name":"string",
"street_number":"string",
"intersection":"string",
"zip_code":"string",
"city":{
"id":"string",
"name":"string"
},
"state":{
"id":"string",
"name":"string"
},
"country":{
"id":"string",
"name":"string"
},
"neighborhood":{
"id":"string",
"name":"string"
},
"municipality":{
"id":"string",
"name":"string"
},
},
},
"package": {
"items": [
{
"category": int,
"description": "string",
"unit_code": "string",
"quantity": int,
"dangerous_material": "string",
"dangerous_material_key": "string",
"package_key": "string",
"package_description": "string",
"dimensions":{
"height":int,
"width":int,
"length":int,
"weight":int,
},
},
],
"total_items": int,
},
"return_reverse_logistics_collection": ""
}La respuesta es una matriz por entidad / tipo. Si no se pueden encontrar los datos fiscales de una entidad específica, se retorna el error: "Shipment id not found", como en el ejemplo de la matriz anterior.
Parámetro | Tipo | Descripción |
|---|---|---|
| recipient | Object | Datos del receptor |
| recipient.rfc | String | RFC del receptor |
| recipient.full_name | String | Nombre del receptor |
| origin | Object | Origen del envío |
| origin.fiscal_information | Object | Información fiscal de origen |
| origin.fiscal_information.full_name | String | Nombre de responsable de origen |
| origin.fiscal_information.fiscal_residence | String | Atributo condicional para registrar la clave del país de residencia para efectos fiscales del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías, conforme con el catálogo c_Pais publicado en el portal del SAT en Internet, que está basado en la especificación ISO 3166-1. |
| origin.fiscal_information.rfc | String | RFC de responsable de origen |
| origin.address | Object | Ubicación de origen |
| origin.address.address_line | String | Campo compuesto por los campos street_name y street_number del origen |
| origin.address.street_name | String | Nombre de la calle de origen. |
| origin.address.street_number | String | Número de la calle de origen. |
| origin.address.intersection | String | Calle secundaria. |
| origin.address.zip_code | String | Código postal del origen |
| origin.address.city | Object | Ciudad de origen |
| origin.address.city.id | String | Identificador único que le da Mercado Libre a la ciudad |
| origin.address.city.name | String | Nombre de la ciudad |
| origin.address.state | Object | Estado, departamento o provincia de origen |
| origin.address.state.id | String | Identificador único que le da Mercado Libre al estado en Formato ISO 3166. |
| origin.address.state.name | String | Nombre del estado |
| origin.address.country | Object | País de origen |
| origin.address.country.id | String | Identificador único que le da Mercado Libre al país en Formato ISO 3166 |
| origin.address.country.name | String | Nombre del país |
| origin.address.neighborhood | Object | Barrio de origen |
| origin.address.neighborhood.id | String | Identificador único del vecindario |
| origin.address.neighborhood.name | String | Nombre del vecindario |
| origin.address.municipality | Object | Municipalidad de origen |
| origin.address.municipality.id | String | Identificador único que le da Mercado Libre al municipio |
| origin.address.municipality.name | String | Nombre del municipio |
| destination | Object | Destino del envío |
| destination.fiscal_information | Object | Información fiscal de destino |
| destination.fiscal_information.full_name | String | Nombre de responsable de destino |
| destination.fiscal_information.rfc | String | RFC de responsable de destino |
| destination.fiscal_information.fiscal_residence | String | Atributo condicional para registrar la clave del país de residencia para efectos fiscales del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías, conforme con el catálogo c_Pais publicado en el portal del SAT en Internet que está basado en la especificación ISO 3166-1. |
| destination.address | Object | Ubicación de destino |
| destination.address.address_line | String | Campo compuesto por los campos street_name y street_number del destino |
| destination.address.street_name | String | Nombre de la calle de destino. |
| destination.address.street_number | String | Número de la calle de destino. |
| destination.address.intersection | String | Calle secundaria. |
| destination.address.zip_code | String | Código postal del destino |
| destination.address.city | Object | Ciudad de destino |
| destination.address.city.id | String | Identificador único que le da Mercado Libre a la ciudad |
| destination.address.city.name | String | Nombre de la ciudad |
| destination.address.state | Object | Estado, departamento o provincia de destino |
| destination.address.state.id | String | Identificador único que le da Mercado Libre al estado en Formato ISO 3166. |
| destination.address.state.name | String | Nombre del estado |
| destination.address.country | Object | País de destino |
| destination.address.country.id | String | Identificador único que le da Mercado Libre al país en Formato ISO 3166 |
| destination.address.country.name | String | Nombre del país |
| destination.address.neighborhood | Object | Barrio de destino |
| destination.address.neighborhood.id | String | Identificador único del vecindario |
| destination.address.neighborhood.name | String | Nombre del vecindario |
| destination.address.municipality | Object | Municipalidad de destino |
| destination.address.municipality.id | String | Identificador único que le da Mercado Libre al municipio |
| destination.address.municipality.name | String | Nombre del municipio |
| package | Object | Paquetes del envío |
| package.items | List | Lista de mercancías del envío |
| package.items.category | Int | Atributo correspondiente en SAT para expresar la clave de producto de los bienes o mercancías que se trasladan en los distintos medios de transporte. |
| package.items.description | String | Descripción de la mercancía |
| package.items.unit_code | String | Atributo para precisar la clave de unidad de medida estandarizada aplicable para la cantidad de los bienes o mercancías que se trasladan en los distintos medios de transporte. La unidad debe corresponder con la descripción de los bienes o mercancías registrados. |
| package.items.quantity | Int | Cantidad de mercancías |
| package.items.dangerous_material | String | Indica si el producto es material peligroso. Siendo valor “1“ para material peligroso y “0“ para no peligroso. |
| package.items.dangerous_material_key | String | Código del material peligroso. Campo vacío cuando no es peligroso. |
| package.items.package_key | String | Clave del package. |
| package.items.package_description | String | Descripción del package. |
| package.items.dimensions | Object | Información sobre el dimensión de la mercancía |
| package.items.dimensions.height | Int | Altura de la mercancía |
| package.items.dimensions.width | Int | Ancho de la mercancía |
| package.items.dimensions.length | Int | Largo de la mercancía |
| package.items.dimensions.weight | Int | Peso en gramos de la mercancía |
| package.total_items | String | Cantidad total de mercancías en el envío |
| return_reverse_logistics_collection | String | Expresa el uso de alguno de los servicios de logística inversa, recolección o devolución para el traslado de los bienes y/o mercancías. Valores: Sí o "" (string vacía) |
Ejemplos de status Codes
Si ocurre un error, la API devolverá un estado HTTP distinto de 200 con el error, el mensaje y la causa del mismo, y el content-type será application/json.
400 (bad_request)
Ocurre un error 400 cuando se cancela el envío.
{
"message": "This shipment is cancelled",
"error": "bad_request",
"status": 400,
"cause": []
}403 (NOT_OK)
Ocurre un error 403 por falta de acceso a esta API.
{
"message": "Access revoked, consult staff to check your permissions",
"error": "unexpected_error",
"status": 403,
"cause": ["error_getshipment"]
}404 (NOT_OK)
Ocurre un error 404 cuando se brinda una identificación de envío incorrecta.
{
"message": "An error occurred while trying to get shipment details",
"error": "shipment_not_found",
"status": 404,
"cause": ["error_getshipment"]
}500 (INTERNAL_ERROR)
Ocurre un error 500 cuando se produce una falla interna en esta API.
{
"message": "Error when try to obtain shipment information",
"error": "internal_server_error",
"status": 500,
"cause": ["INTERNAL_ERROR"]
}Código HTTP | Content type | Response body | Descripción |
|---|---|---|---|
| 200 | application/json | JSON (ejemplo de arriba) | Cuando se obtienen los datos del envío correctamente. |
| 400 | application/json | {"message": "This shipment is cancelled"...} | Cuando se cancela el envío. |
| 400 | application/json | {"message": "Shipment not allowed"...} | Cuando el transportista ha enviado un envío sobre el cual no tiene acción en ningún trámite. |
| 403 | application/json | {"message": "Access revoked, consult staff to check your permissions"} | Cuando falta acceso a esta API. |
| 404 | application/json | {"message": "An error occurred while trying to get shipment details"...} | Al pasar una identificación de envío incorrecta. |
| 500 | application/json | {"message": "Error when try to obtain shipment information"} | Cuando ocurre una falla interna a esta API. |