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.

Importante:
  • Asegúrese de que ya tiene aplicación y token válidos, y que está autorizado para usar este endpoint
  • Para seguridad se utilizará OAuth

Request

GET https://api.mercadolibre.com/shipments/{shipment_id}/carta-porte-details/{step_type}?access_token={access_token}&logistic_center=MXAQR1&pipeline=SMD1_A
Parámetro
Tipo
Descripción
shipment_idStringId del envío
step_typeStringNombre de la sección deseada. Valores posibles: first_mile, middle_mile, last_mile
access_tokenString
Token de acceso
logistic_centerStringNombre 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.
pipelineStringNombre 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
recipientObjectDatos del receptor
recipient.rfcStringRFC del receptor
recipient.full_nameStringNombre del receptor
originObjectOrigen del envío
origin.fiscal_informationObjectInformación fiscal de origen
origin.fiscal_information.full_nameStringNombre de responsable de origen
origin.fiscal_information.fiscal_residenceStringAtributo 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.rfcStringRFC de responsable de origen
origin.addressObjectUbicación de origen
origin.address.address_lineStringCampo compuesto por los campos street_name y street_number del origen
origin.address.street_nameStringNombre de la calle de origen.
origin.address.street_numberStringNúmero de la calle de origen.
origin.address.intersectionStringCalle secundaria.
origin.address.zip_codeStringCódigo postal del origen
origin.address.cityObjectCiudad de origen
origin.address.city.idStringIdentificador único que le da Mercado Libre a la ciudad
origin.address.city.nameStringNombre de la ciudad
origin.address.stateObjectEstado, departamento o provincia de origen
origin.address.state.idStringIdentificador único que le da Mercado Libre al estado en Formato ISO 3166.
origin.address.state.nameStringNombre del estado
origin.address.countryObjectPaís de origen
origin.address.country.idStringIdentificador único que le da Mercado Libre al país en Formato ISO 3166
origin.address.country.nameStringNombre del país
origin.address.neighborhoodObjectBarrio de origen
origin.address.neighborhood.idStringIdentificador único del vecindario
origin.address.neighborhood.nameStringNombre del vecindario
origin.address.municipalityObjectMunicipalidad de origen
origin.address.municipality.idStringIdentificador único que le da Mercado Libre al municipio
origin.address.municipality.nameStringNombre del municipio
destinationObjectDestino del envío
destination.fiscal_informationObjectInformación fiscal de destino
destination.fiscal_information.full_nameStringNombre de responsable de destino
destination.fiscal_information.rfcStringRFC de responsable de destino
destination.fiscal_information.fiscal_residenceStringAtributo 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.addressObjectUbicación de destino
destination.address.address_lineStringCampo compuesto por los campos street_name y street_number del destino
destination.address.street_nameStringNombre de la calle de destino.
destination.address.street_numberStringNúmero de la calle de destino.
destination.address.intersectionStringCalle secundaria.
destination.address.zip_codeStringCódigo postal del destino
destination.address.cityObjectCiudad de destino
destination.address.city.idStringIdentificador único que le da Mercado Libre a la ciudad
destination.address.city.nameStringNombre de la ciudad
destination.address.stateObjectEstado, departamento o provincia de destino
destination.address.state.idStringIdentificador único que le da Mercado Libre al estado en Formato ISO 3166.
destination.address.state.nameStringNombre del estado
destination.address.countryObjectPaís de destino
destination.address.country.idStringIdentificador único que le da Mercado Libre al país en Formato ISO 3166
destination.address.country.nameStringNombre del país
destination.address.neighborhoodObjectBarrio de destino
destination.address.neighborhood.idStringIdentificador único del vecindario
destination.address.neighborhood.nameStringNombre del vecindario
destination.address.municipalityObjectMunicipalidad de destino
destination.address.municipality.idStringIdentificador único que le da Mercado Libre al municipio
destination.address.municipality.nameStringNombre del municipio
packageObjectPaquetes del envío
package.itemsListLista de mercancías del envío
package.items.categoryIntAtributo 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.descriptionStringDescripción de la mercancía
package.items.unit_codeStringAtributo 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.quantityIntCantidad de mercancías
package.items.dangerous_materialStringIndica si el producto es material peligroso. Siendo valor “1“ para material peligroso y “0“ para no peligroso.
package.items.dangerous_material_keyStringCódigo del material peligroso. Campo vacío cuando no es peligroso.
package.items.package_keyStringClave del package.
package.items.package_descriptionStringDescripción del package.
package.items.dimensionsObjectInformación sobre el dimensión de la mercancía
package.items.dimensions.heightIntAltura de la mercancía
package.items.dimensions.widthIntAncho de la mercancía
package.items.dimensions.lengthIntLargo de la mercancía
package.items.dimensions.weightIntPeso en gramos de la mercancía
package.total_itemsStringCantidad total de mercancías en el envío
return_reverse_logistics_collectionStringExpresa 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
200application/jsonJSON (ejemplo de arriba)Cuando se obtienen los datos del envío correctamente.
400application/json{"message": "This shipment is cancelled"...}Cuando se cancela el envío.
400application/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.
403application/json{"message": "Access revoked, consult staff to check your permissions"}Cuando falta acceso a esta API.
404application/json{"message": "An error occurred while trying to get shipment details"...}Al pasar una identificación de envío incorrecta.
500application/json{"message": "Error when try to obtain shipment information"}Cuando ocurre una falla interna a esta API.