Gerenciamento de Envios

O recurso de Shipments contém todas as informações relacionadas ao envio que deve ser realizado para finalizar a transação. Nota: Lembre que, para trabalhar com o JSON de shipments, ao fazer o GET, você deverá enviar o parâmetro "x-format-new: true".

Conteúdo

→Novos recursos
→Itens
→Costs
    ↳Parâmetros
→Lead Time
→Descrição dos tempos de estimativa
→History
→Informações de rastreio
→Informações sobre status e substatus
→Payments
→Parâmetros disponíveis
→Itens não combináveis (nova funcionalidade)
→Valores posibles en el campo "reason"


É importante lembrar que o novo JSON de Orders não vai mais conter os dados de Shipping, como tem sido até agora. O recurso /shipments/shipment_id/ continuará tendo sua estrutura, mostrando as informações básicas para a realização do envio. Introduzimos algumas mudanças na estrutura do JSON, que você pode ver abaixo:

curl -X GET https://api.mercadolibre.com/shipments/shipment_id?access_token=$ACCESS_TOKEN
{
  "id": 0,
  "external_reference": "string",
   "status": "string",
  "substatus": "string",
  "date_created": "string",
  "last_updated": "string",
  "declared_value": 0,
  "dimensions": {
    "height": 0,
    "width": 0,
    "length": 0,
    "weight": 0
  },
  "logistic": {
    "direction": "forward",
    "mode": "me2",
    "type": "drop_off"
  },
  "source": {
    "site_id": "MLM",
    "market_place": "MELI",
    "application_id": null
  },
  "tracking_number": "string",
  "origin": {
    "type": "selling_address",
    "sender_id": 0,
    "shipping_address": {
      "id": 0,
      "address_id": 0,
      "address_line": "string",
      "street_name": "string",
      "street_number": 0,
      "comment": "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"
      },
      "types": {
        "default_buying_address": 0
      },
      "agency": {
        "carrier_id": 0,
        "agency_id": "string",
        "description": "string",
        "phone": "string",
        "open_hours": "string"
      },
      "latitude": 0,
      "longitude": 0,
      "geolocation_type": "string",
      "is_valid_for_carrier": true
    }
  },
  "destination": {
    "type": "buying_address",
    "receiver_id": 0,
    "receiver_name": "string",
    "receiver_phone": "string",
    "comments": "string",
    "shipping_address": {
      "id": 0,
      "address_id": 0,
      "address_line": "string",
      "street_name": "string",
      "street_number": 0,
      "comment": "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"
      },
      "types": {
        "default_buying_address": 0
      },
      "agency": {
        "carrier_id": 0,
        "agency_id": "string",
        "description": "string",
        "phone": "string",
        "open_hours": "string"
      },
      "latitude": 0,
      "longitude": 0,
      "geolocation_type": "string",
      "is_valid_for_carrier": true
    }
  },
  "lead_time": {
    "option_id": 0,
    "shipping_method": {
      "id": 0,
      "type": "standard",
      "name": "string",
      "deliver_to": "address"
    },
    "currency_id": "string",
    "cost": 0,
    "cost_type": "charged",
    "service_id": 0,
    "estimated_delivery_time": {
      "type": "known",
      "date": "string",
      "shipping": 0,
      "handling": 0,
      "unit": "string",
      "offset": {
        "date": "string",
        "shipping": 0
      },
      "time_frame": {
        "from": 0,
        "to": 0
      },
      "pay_before": "string"
    }
  },
  "tags": [
    "string"
  ]
}

Para entender a que refere cada um dos parâmetros, faça a seguinte chamada:

curl -X OPTION https://api.mercadolibre.com/shipments/shipment_id?access_token=$ACCESS_TOKEN
Nota:
external_reference faz referência ao número de pack relacionado com o envio.


Novos recursos

Com a nova versão do recurso Shipments, há novos recursos complementares que trarão informações detalhadas para poder trabalhar de maneira mais eficiente. A seguir, ampliamos cada um deles. Veja nossos API docs.


Itens

O recurso /shipments/shipment_id/items retorna os itens associados a um shipment. Caso o item contenha variações (Por exemplo, tamanho ou cor em vestuário), você também poderá ver qual corresponde à ordem dentro do envio. À medida que envios com mais de um item forem sendo habilitados, a lista passará a conter cada um deles.

Nota:
Cada vendedor só visualizará seus próprios produtos.
curl -X GET https://api.mercadolibre.com/shipments/shipment_id/items?access_token=$ACCESS_TOKEN

[
  {
    "item_id": "string",
    "description": "string",
    "quantity": 0,
    "variation_id": 0,
    "dimensions": {
      "height": 0,
      "width": 0,
      "length": 0,
      "weight": 0
    },
    "order_id": 0,
    "sender_id": 0
  }
]


Costs

O recurso /shipments/shipment_id/costs retorna os custos do envio a serem pagos pelo usuário. Também poderá ser visualizada a economia atingida pelo envio de mais de um produto na mesma caixa (quando esta funcionalidade estiver habilitada), através do parâmetro "save", caso exista.

Nota:
Durante a implementação das mudanças, se manterá a resposta atual de shipments.api costs em paralelo e para acessar o novo formato, deverá ser utilizado o header "X-Costos-New = true".
curl -X GET https://api.mercadolibre.com/shipments/SHIPMENT_ID/costs?access_token=$ACCESS_TOKEN 
{
  "gross_amount": 24.55,
  "receiver": {
      "user_id": 74425755,
      "cost": 0,
      "compensation": 0,
      "save": 0,
      "discounts": [
          {
              "rate": 1,
              "type": "loyal",
              "promoted_amount": 4.07
          }
        ]
  },
  "senders": [
      {
          "user_id": 81387353,
          "cost": 8.19,
          "compensation": 0,
          "save": 0,
          "discounts": [
              {
                  "rate": 0.6,
                  "type": "mandatory",
                  "promoted_amount": 12.29
              }
          ]
      }
  ]
}

Parâmetros

    gross_amount: É o custo total do shipment sem nenhum tipo de desconto.
    discounts: representa os descontos aplicados para o comprador (receiver) e para o vendedor (sender), e a lista virá vazia caso não tenha descontos.
    senders: é uma lista que representa os valores pagos pelo vendedor (sender), e um só envio poderá conter produtos de diferentes vendedores.
    cost: representa o custo final do envio que corresponde ao comprador (receiver) e ao vendedor (sender).



    Lead Time

    O recurso /shipments/shipment_id/lead_time retorna tudo o referido a prazos de entrega de um envio e tipo de serviço, adicionando datas-limite de encaminhamento e entrega. Embora o recurso de shipment já contenha informações úteis para fazer essas estimativas, aqui você poderá visualizá-lo de forma mais detalhada, ajudando a oferecer uma melhor experiência ao usuário.

    curl -X GET https://api.mercadolibre.com/shipments/shipment_id/lead_time?access_token=$ACCESS_TOKEN
    {
      "option_id": 0,
      "shipping_method": {
        "id": 0,
        "type": "standard",
        "name": "string",
        "deliver_to": "address"
      },
      "currency_id": "string",
      "cost": 0,
      "cost_type": "charged",
      "service_id": 0,
      "estimated_delivery_time": {
        "type": "known",
        "date": "string",
        "shipping": 0,
        "handling": 0,
        "unit": "string",
        "offset": {
          "date": "string",
          "shipping": 0
        },
        "time_frame": {
          "from": 0,
          "to": 0
        },
        "pay_before": "string"
      },
      "estimated_handling_limit": {
        "date":  "2016-12-30T12:32:35.000Z"
      },
      "estimated_delivery_extended": {
        "date":  "2016-12-30T12:32:35.000Z"
      },
      "estimated_delivery_limit": {
        "date":  "2016-12-30T12:32:35.000Z"
      },
      "estimated_delivery_final": {
        "date":  "2016-12-30T12:32:35.000Z"
      },
      "delay": [
        "shipping_delayed",
      ]
    }
    
    Nota:
    O campo cost_type pode ser "free", "charged" ou "partially_free”.


    Descrição dos tempos de estimativa

    São as datas-limite para o envio ser encaminhado e enviado.
    estimated_handling_limit: Data-limite para o vendedor encaminhar. Considere que apenas é levada em conta a data, pois a hora é informada somente para manter uma estrutura. Isto é, você tem todo o dia informado no campo para realizar o envio antes de este ser marcado como demorado para o dia seguinte.
    estimated_delivery_extended: Segunda promessa de entrega, caso a primeira não tenha sido atendida.
    estimated_delivery_limit: Data-limite para o comprador cancelar a compra e pedir a devolução de dinheiro, desde que o envio ainda não tenha chegado.
    estimated_delivery_final: Data final para a chegada do envio e para determinação do status final, que pode ser delivered ou, caso haja alguma reclamação, not_delivered. Ver mais informações sobre tipos de promessa de entrega.


    History

    O recurso /shipments/shipment_id/history retorna o histórico de status e substatus associados ao ciclo de vida do shipment.

    curl -X GET https://api.mercadolibre.com/shipments/shipment_id/history?access_token=$ACCESS_TOKEN
    
    [
      {
        "status": "string",
        "substatus": "string",
        "date": "2016-12-30T12:32:35.000Z"
      }
    ]

    Exemplo:

    https://api.mercadolibre.com/shipments/1234567899/history?access_token=$ACCESS_TOKEN
    
    [
      {
        "status": "ready_to_ship",
        "substatus": "printed",
        "date":  "2016-12-30T12:32:35.000Z"
      },
      {
        "status": "handling",
        "substatus": "waiting_for_label_generation",
        "date":  "2016-12-30T12:32:35.000Z"
      },
    
    ]

    Informações de rastreio

    O recurso /shipments/shipment_id/carrier devolver o nome e o URL para acessar as informações específicas da rastreio que está gerenciando o envio.

    curl -X GET https://api.mercadolibre.com/shipments/shipment_id/carrier?access_token=$ACCESS_TOKEN
    
      {
              "url": "string",
              "name": "string"
    
      }

    Ejemplo:

    curl -X GET  https://api.mercadolibre.com/shipments/27691621451/carrier?access_token=$ACCESS_TOKEN
    
    {
         "url":"http://tracking.totalexpress.com.br/poupup_track.php?reid=3&pedido=14&nfiscal=1", 
    "name":"Total Express"
    }

    Informações sobre status e substatus

    Ver informações sobre status e substatus pelos que um envio pode passar:

    Chamada:

    curl -X GET https://api.mercadolibre.com/shipment_statuses

    Resposta:

    {
        "id": "to_be_agreed",
        "name": "To be agreed",
        "substatuses": [
        ]
      },
      {
        "id": "pending",
        "name": "Pending",
        "substatuses": [
          {
            "id": "cost_exceeded",
            "name": "Cost exceeded"
          }
        ]
      },
      {
        "id": "handling",
        "name": "Handling",
        "substatuses": [
          {
            "id": "regenerating",
            "name": "Regenerating"
          },
          {
            "id": "waiting_for_label_generation",
            "name": "Waiting for label generation"
          }
        ]
      },
      {
        "id": "ready_to_ship",
        "name": "Ready to ship",
        "substatuses": [
          {
            "id": "ready_to_print",
            "name": "Ready to print"
          },
          {
            "id": "invoice_pending",
            "name": "Invoice pending"
          },
          {
            "id": "printed",
            "name": "Printed"
          },
          {
            "id": "in_pickup_list",
            "name": "In pikcup list"
          },
          {
            "id": "ready_for_pkl_creation",
            "name": "Ready for pkl creation"
          },
          {
            "id": "ready_for_pickup",
            "name": "Ready for pickup"
          },
          {
            "id": "picked_up",
            "name": "Picked up"
          },
          {
            "id": "stale",
            "name": "Stale Ready To Ship"
          },
          {
            "id": "in_hub",
            "name": "In hub"
          },
          {
            "id": "measures_ready",
            "name": "Measures and weight ready"
          },
          {
            "id": "waiting_for_carrier_authorization",
            "name": "Waiting for carrier authorization"
          },
          {
            "id": "authorized_by_carrier",
            "name": "Authorized by carrier"
          },
          {
            "id": "in_plp",
            "name": "In PLP"
          }
        ]
      },
      {
        "id": "shipped",
        "name": "Shipped",
        "substatuses": [
          {
            "id": "delayed",
            "name": "Delayed"
          },
          {
            "id": "waiting_for_withdrawal",
            "name": "Waiting for withdrawal"
          },
          {
            "id": "contact_with_carrier_required",
            "name": "Contact with carrier required"
          },
          {
            "id": "receiver_absent",
            "name": "Receiver absent"
          },
          {
            "id": "reclaimed",
            "name": "Reclaimed"
          },
          {
            "id": "not_localized",
            "name": "Not localized"
          },
          {
            "id": "forwarded_to_third",
            "name": "Forwarded to third party"
          },
          {
            "id": "soon_deliver",
            "name": "Soon deliver"
          },
          {
            "id": "refused_delivery",
            "name": "Delivery refused"
          },
          {
            "id": "bad_address",
            "name": "Bad address"
          },
          {
            "id": "negative_feedback",
            "name": "Stale shipped with negative feedback by buyer"
          },
          {
            "id": "need_review",
            "name": "Need to review carrier status to understand what happened"
          },
          {
            "id": "stale",
            "name": "Stale shipped"
          }
        ]
      },
      {
        "id": "delivered",
        "name": "Delivered",
        "substatuses": [
          {
            "id": "damaged",
            "name": "damaged"
          },
          {
            "id": "fulfilled_feedback",
            "name": "Fulfilled by buyer feedback"
          },
          {
            "id": "no_action_taken",
            "name": "No action taken by buyer"
          },
          {
            "id": "double_refund",
            "name": "Double Refund"
          }
        ]
      },
      {
        "id": "not_delivered",
        "name": "Not delivered",
        "substatuses": [
          {
            "id": "returning_to_sender",
            "name": "Returning to sender"
          },
          {
            "id": "retained",
            "name": "Retained"
          },
          {
            "id": "stolen",
            "name": "Stolen"
          },
          {
            "id": "returned",
            "name": "Returned"
          },
          {
            "id": "receiver_absent",
            "name": "Receiver absent"
          },
          {
            "id": "confiscated",
            "name": "confiscated"
          },
          {
            "id": "to_review",
            "name": "Closed shipment"
          },
          {
            "id": "destroyed",
            "name": "Destroyed"
          },
          {
            "id": "waiting_for_withdrawal",
            "name": "Waiting for withdrawal"
          },
          {
            "id": "negative_feedback",
            "name": "Stale shipped forced to not delivered due to negative feedback by buyer"
          },
          {
            "id": "claimed_me",
            "name": "Stale shipped with claim that was forced to not delivered"
          },
          {
            "id": "not_localized",
            "name": "Not localized"
          },
          {
            "id": "double_refund",
            "name": "Double Refund"
          }
        ]
      },
      {
        "id": "not_verified",
        "name": "Not verified",
        "substatuses": [
        ]
      },
      {
        "id": "cancelled",
        "name": "Cancelled",
        "substatuses": [
        ]
      },
      {
        "id": "closed",
        "name": "Closed",
        "substatuses": [
        ]
      },
      {
        "id": "error",
        "name": "Error",
        "substatuses": [
        ]
      },
      {
        "id": "active",
        "name": "Active",
        "substatuses": [
        ]
      },
      {
        "id": "not_specified",
        "name": "Not specified",
        "substatuses": [
        ]
      },
      {
        "id": "stale_ready_to_ship",
        "name": "Stale ready to ship",
        "substatuses": [
        ]
      },
      {
        "id": "stale_shipped",
        "name": "Stale shipped",
        "substatuses": [
        ]
      }


    Payments

    O recurso /shipments/shipment_id/payments retorna os payments associados ao envio. Lembre que agora o pagamento do envio será discriminado e você poderá, a partir deste recurso, consumir informações básicas sobre ele. O payment_id funciona da mesma forma que o de uma ordem.

    curl -X GET https://api.mercadolibre.com/shipments/shipment_id/payments
    [
      {
        "payment_id": 0,
        "amount": 0,
        "status": "string"
      }
    ]


    Parâmetros disponíveis

    A seguir, mostramos os valores disponíveis para cada parâmetro:
    logistic.direction: forward, return
    logistic.mode: me2, me1, custom
    logistic.type: default, drop_off, xd_drop_off, cross_docking, fulfillment
    source.site_id: sites
    source.market_place: Mercado Livre, OFF
    lead_time.shipping_method.type:
    next_day, express, standard, same_day
    lead_time.shipping_method.deliver_to: address, agency
    lead_time.currency_id: currencies
    lead_time.cost_type: free, partially_free, charged
    lead_time.delay: handling_delayed, shipping_delayed, shipping_delayed_extended
    destination/origin.type: agency, buying_address, selling_address
    discount.type: loyal, special


    Itens não combináveis (nova funcionalidade)

    No caso em que você tenha um problema no momento de agrupar diferentes produtos em um mesmo pacote (seja porque estão em depósitos diferentes, ou são frágeis, ou não entram em uma mesma caixa, etc) você pode utilizar o recurso que te permite gerar pacotes adicionais para poder despachar todos os produtos. Exemplo:

    curl -X POST https://api.mercadolibre.com/shipments/shipment_id/split?access_token=token

    JSON:

     {
      "shipments": [
        {
          "reason": "text",
                       “description”: “text”
          "orders": [
            {
              "id": "order_id",
    
            }
          ]
        }
      ]
    }

    Tenha em conta que esse recurso é para evitar problemas na hora de empacotar os produtos mas não deve ser usada em todos os casos. Somente em casos de extrema necessidade. Mais pra frente estaremos melhorando esse processo.


    Valores possíveis no campo "reason"

    • fragile
    • another_warehouse
    • irregular_shape
    • other_motive
    Notas:
    - O "order_ID" acima se refere ao produto a ser retirado do "Shipping" original.
    - Um novo shipping será gerado contendo o order ID acima.
    - A API não irá devolver nenhuma resposta após esta chamada somente o status 201.
    - Deve-se escutar via notificações se existe algum novo shipping e fazer o GET deste novo.

    Siguiente: Manejo de Pagos.

ou registre-se para receber as últimas notícias sobre nossa API