Documentación Mercado Libre

Descubre toda la información que debes conocer sobre las APIs de Mercado Libre.
circulos azuis em degrade

Documentación

Última actualización 20/06/2024

Shipping Colecta and Places

Important:
Currently, these shipping modalities are available for sellers from Argentina, Brazil, Mexico, Chile, Colombia, Uruguay.

Collection (cross_docking):

  • Process: A carrier picks up the products from the seller's domicile and takes them to a HUB (warehouse).
  • Delivery: From the HUB, the most convenient carrier for delivery to the buyer is selected.
  • Route: Seller → Collection → HUB → Carrier → Buyer.

Cross Docking with Drop Off (XD_drop_off):

  • Process: The seller drops the products at a designated collection point (places). Places or dispatch points are retail stores that also have the Mercado Libre, Pickit or HOP logo on the door.
  • Collection and Delivery: A collection transports them from the Place to the HUB for final delivery.
  • Route: Seller → Place → Collection → HUB → Carrier → Buyer.

Drop_off:

  • Process: The seller takes the products directly to the post office or designated delivery point. The packages follow the regular postal flow until they are delivered to the buyer.
  • Collection and Delivery: The carrier is selected for final delivery.
  • Route: Seller → Carrier → Buyer.

Activate Collection or Places

At Mercado Libre, we weekly evaluate the performance in the delivery of products from Collection and Places sellers. This evaluation can influence the activation of these services based on performance.

Key points of activation:

  • Review and Configuration of Addresses: ensure that the addresses for shipments, dispatches, and returns are always updated and correctly configured to avoid problems.
  • Notification Activation: keep your notifications active, this will allow you to receive immediate alerts about any changes in the Collection or Places services.

Constant monitoring of your performance and the correct configuration of your addresses are essential to ensure smooth and uninterrupted logistics of your products.


Note:
  • To locate Colecta and Places settings, go to the user's Mercado Libre page> Configuration> Sales Preferences.
  • Peru only has the active drop off logistics type.

Set up a test user

To set up the collection shipping mode for test users, follow these steps:

  1. Log in to the Mercado Libre Developers page.
  2. Select the category to consult, in this case: "Test configurations".
  3. Expand the "Configuration" section and choose "Collection".
  4. Complete the required information about the test user.
  5. Submit a request to activate Collection for your test user account.

Country Link
Argentina Solicitud para activar Colecta a cuenta test
Brasil Solicitud para activar Colecta a cuenta test
México Solicitud para activar Colecta a cuenta test
Chile Solicitud para activar Colecta a cuenta test
Colombia Solicitud para activar Colecta a cuenta test
Uruguay Solicitud para activar Colecta a cuenta test
Perú Solicitud para activar Colecta a cuenta test

Shipping Capacity

Shipping capacity management is a tool that allows sellers to set the maximum number of shipments they can dispatch in a day without delays. This gives them the flexibility to organize themselves and avoid delays, whether in planned changes in their sales volume or unexpected situations.


Learn more about:


Vista del vendedor:



Check the shipping capacity

This endpoint allows you to get the current configuration of a user's shipping capacity.


Request:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/users/$USER_ID/capacity_middleend/$LOGISTIC_TYPE

Example:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/users/419059119/capacity_middleend/cross_docking

Response with intervention delay:

{
    "capacities":[
        {
          "day": "monday",
          "capacity_min":20,
          "capacity_max": 140,
          "capacity": {
           "value": 120,
           "maximum": false
          },
          "next_capacity": {
           "value": 110,
           "maximum": false
          },
          "can_add_capacity": false,
          "can_subtract_capacity": true,
          "intervention" : "delay",
       },
       {
          "day": "tuesday",
          "capacity_min":20,
          "capacity_max": 140,
          "capacity": {
           "value": 120,
           "maximum": false
          },
          "next_capacity": null,
          "can_add_capacity": true,
          "can_subtract_capacity": false,
          "intervention" : "delay",
       },
       {
          "day": "wednesday",
          "capacity_min":20,
          "capacity_max": 140,
          "capacity": {
           "value": 140,
           "maximum": false
          },
          "next_capacity": null,
          "can_add_capacity": true,
          "can_subtract_capacity": false,
          "intervention" : "delay",
       },
       {
          "day": "thursday",
          "capacity_min":20,
          "capacity_max": 140,
          "capacity": {
           "value": 120,
           "maximum": false
          },
          "next_capacity": null,
          "can_add_capacity": true,
          "can_subtract_capacity": false,
          "intervention" : "delay",
       },
       {
          "day": "friday",
          "capacity_min":20,
          "capacity_max": 140,
          "capacity": {
           "value": 110,
           "maximum": false 
          },
          "next_capacity": null,
          "can_add_capacity": true,
          "can_subtract_capacity": false,
          "intervention" : "delay",
       },
       {
          "day": "saturday",
          "capacity_min":20,
          "capacity_max": 140,
          "capacity": {
           "value": 120,
           "maximum": true
          },
          "next_capacity": null,
          "can_add_capacity": true,
          "can_subtract_capacity": false,
          "intervention" : "delay",
       },
     ]
 }

Response with intervention early:


    {
       "capacities":[
           {
             "day": "monday",
             "capacity_min":20,
             "capacity_max": null,
             "capacity": {
              "value": 120,
              "maximum": false
             },
             "next_capacity": {
              "value": 110,
              "maximum": false
             },
             "can_add_capacity": false,
             "can_subtract_capacity": true,
             "intervention" : "early",
          },
          {
             "day": "tuesday",
             "capacity_min":20,
             "capacity_max": null,
             "capacity": {
              "value": 120,
              "maximum": false
             },
             "next_capacity": null,
             "can_add_capacity": true,
             "can_subtract_capacity": false,
             "intervention" : "early",
          },
          {
             "day": "wednesday",
             "capacity_min":20,
             "capacity_max": null,
             "capacity": {
              "value": 140,
              "maximum": false
             },
             "next_capacity": null,
             "can_add_capacity": true,
             "can_subtract_capacity": false,
             "intervention" : "early",
          },
          {
             "day": "thursday",
             "capacity_min":20,
             "capacity_max": null,
             "capacity": {
              "value": 120,
              "maximum": false
             },
             "next_capacity": null,
             "can_add_capacity": true,
             "can_subtract_capacity": false,
             "intervention" : "early",
          },
          {
             "day": "friday",
             "capacity_min":20,
             "capacity_max": null,
             "capacity": {
              "value": 110,
              "maximum": false 
             },
             "next_capacity": null,
             "can_add_capacity": true,
             "can_subtract_capacity": false,
             "intervention" : "early",
          },
          {
             "day": "saturday",
             "capacity_min":20,
             "capacity_max": null,
             "capacity": {
              "value": 120,
              "maximum": true
             },
             "next_capacity": null,
             "can_add_capacity": true,
             "can_subtract_capacity": false,
             "intervention" : "early",
          },
        ]
    }
    

Response parameters:

  • day: Represents the day of the week to which the capacity refers. Possible values are monday, tuesday, wednesday, thursday, friday, and saturday.
  • capacity_min: It is the minimum capacity value allowed for that day.
  • capacity_max: It is the maximum capacity value allowed for that day.
  • capacity.value: It is the current capacity value for the day and week in which the user is located.
  • capacity.maximum: Indicates if the user has selected infinite (false) / maximum (true) capacity. If there is no next_capacity, a null is returned for this field.
  • next_capacity.value: It is the value of the configured capacity applicable for the next week.
  • next_capacity.maximum: Indicates if the user has selected infinite (false) / maximum (true) capacity for the following week.
  • can_add_capacity: Indicates if it is possible to add additional capacity for that day. Possible values are true or false.
  • can_subtract_capacity: Indicates if it is possible to subtract capacity for that day. Possible values are true or false.
  • intervention: Describes the type of intervention in which the user may incur:
    • delay: intervention for delays.
    • early: intervention for early deliveries.
    • null: no intervention.

Considerations:

  • If dispatch capacity is not configured, the system will not impose restrictions. However, it is recommended that sellers use this feature to optimize their deliveries and improve the customer experience.
  • When a seller does not meet their shipping capacity target, they enter a state of intervention due to delay. During this period, there are restrictions on the ability to modify or update shipping capacity. This is done to ensure that sellers commit to improving their performance. Once the requirements are met during the intervention period, the restrictions will be lifted, and you can readjust your shipping capacity.
  • When a seller can dispatch more than their capacity, they enter a state of intervention due to early. During this period, there are no restrictions on the ability to modify or update shipping capacity. The goal is for the seller to maximize their injection and set a more precise capacity.
  • For an optimal experience, we recommend enabling Seller News, as this is where any relevant updates or changes in this process will be notified.

Update shipping capacity

This endpoint allows you to modify or update the configuration of a user's shipping capacity.


Request:

curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/users/$USER_ID/capacity_middleend/$LOGISTIC_TYPE

Example:

curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/users/419059119/capacity_middleend/cross_docking

    {
       "capacities": [
          {  
             "day": "monday",
             "capacity": {
              "value": 120,
              "maximum": false
             },
          },
          {  
             "day": "tuesday",
             "capacity": {
              "value": 120,
              "maximum": false
             },
          },
          {  
             "day": "wednesday",
             "capacity": {
              "value": 120,
              "maximum": false
             },
          },
          {  
             "day": "tuesday",
             "capacity": {
              "value": 120,
              "maximum": false
             },
          },
          {  
             "day": "friday",
             "capacity": {
              "value": 120,
              "maximum": true
             },
          },
          {  
             "day": "saturday",
             "capacity": {
              "value": 120,
              "maximum": false
             },
          },          
       ]
    }

Response status codes:

Code Message Description Recommendation
200 - OK - The current configuration was successfully obtained. -
400 - Bad Request there was an error parsing the request body Error in the request body parameters. Validate the request body.
404 - Not Found not valid logistic type The user does not exist or does not have cross_docking logistics. Validate the user_id and the user's logistics types.

Shipping Preparation Time

The shipping preparation time is the time to manage or dispatch an order once it has been processed.

Important:
The Shipping Preparation Time refers to the necessary interval to manage and dispatch an order once it has been processed. It's important not to confuse this concept with Manufacturing Time, which denotes the period required to manufacture or prepare the product itself.

Learn more about:


Check the preparation time

This endpoint allows you to obtain the preparation time for shipping.


Request:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' 'X-Version: v3' https://api.mercadolibre.com/shipping/users/$USER_ID/processing_time_middleend/$LOGISTIC_TYPE

Example:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' 'X-Version: v3' https://api.mercadolibre.com/shipping/users/123456789/processing_time_middleend/cross_docking

Response:

{
    "monday": {
       "modified_by_meli": false,
       "visible": true,
       "enabled": true,
       "current_processing_time": null
       "available_options": [
          {
            "processing_time": "00:30",
            "selected": false,
            "highlight_level": "low",
            "disabled": false
          },
          ...
          ...
          ...
          {
            "processing_time": "07:00",
            "selected": true,
            "highlight_level": "high",
            "disabled": false
          }
       ]
    }

Response parameters:

  • modified_by_meli: if true, it indicates that Mercado Libre is responsible for modifying its processing time.
  • visible: indicates if the day should be shown on the front.
  • enabled: Indicates if the row is enabled for editing.
  • current_processing_time: indicates the value of the processing time that was selected before the change. If it is different from null, the message that it will take effect next week will be shown. Otherwise, the day will be shown normally.
  • available_options.processing_time: indicates the possible processing time to select in HH:MM format. For example, “00:30” (30 minutes).
  • available_options.selected: current value chosen by the user, or the default if never configured before.
  • available_options.highlight_level: the options are:
    • low: less preparation time than the default.
    • default: default preparation time.
    • high: more preparation time than the default.

Update preparation time

This endpoint allows you to update the shipment preparation time.


Request:

curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' 'X-Version:v3' -d
    https://api.mercadolibre.com/shipping/users/$USER_ID/processing_time_middleend/$LOGISTIC_TYPE

Example:

curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' 'X-Version:v3' -d
    https://api.mercadolibre.com/users/419059119/processing_time_middleend/cross_docking
    {
        "processing_times": {
            "monday": {
                "processing_time": "01:00"
            },
            "tuesday": {
                "processing_time": "01:00"
            },
            "wednesday": {
                "processing_time": "01:00"
            },
            "thursday": {
                "processing_time": "01:30"
            },
            "friday": {
                "processing_time": "00:30"
            },
            "saturday": {
                "processing_time": "01:00"
            }
        }
    }

Response:

{
    "message": "The seller processing times were successfully saved"
}

Considerations

  • Send in the format “01:00”, “00:30” as it comes in the GET.
  • If the processing_times field is sent empty, the integration will take the default values depending on the logistics: “01:00” cross_docking and “01:30” xd_drop_off.
  • If a blocked day is sent, that is, a day where enabled is false, the integration will ignore this value and keep the value selected before the change.
  • The update of the current day's processing_time will only take effect the next week.

Response status codes:

Code Message Description Recommendation
200 - OK - The current configuration was obtained correctly. -
400 - Bad Request there was an error parsing the request body Error in the request body parameters. Validate the request body.
404 - Not Found not valid logistic type The user does not exist or does not have the cross_docking logistics type. Validate the user_id and the user's logistics types.

Dispatch Schedules

Dispatch schedules help sellers to plan their shipments and avoid delays, protecting their reputation. To access this information, it is necessary to know the types of logistics enabled in their account.


Request:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/users/$USER_ID/shipping/schedule/$LOGISTIC_TYPE

Example:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/users/9984538542/shipping/schedule/cross_docking

Response:

{
    "seller_id": "84538542",
    "schedule": {
        "monday": {
            "work": true,
            "detail": [
                {
                    "from": "13:00",
                    "to": "15:00",
                    "cutoff": "12:00",
                    "carrier": {
                        "id": "17501840",
                        "name": "Iflow"
                    },
                    "vehicle": {
                        "id": "12345",
                        "license_plate": "AZ541VW",
                        "vehicle_type": "Camioneta",
                        "only_for_today": false,
                        "new_driver": false
                    },
                    "driver": {
                        "id": "12345",
                        "name": "Test User"
                    },
                    "sla": ""
                }
            ]
        },
        "tuesday": {
            "work": true,
            "detail": [
                {
                    "from": "13:00",
                    "to": "15:00",
                    "cutoff": "12:00",
                    "carrier": {
                        "id": "17501840",
                        "name": "Iflow"
                    },
                    "vehicle": {
                        "id": "12345",
                        "license_plate": "AZ541VW",
                        "vehicle_type": "Camioneta",
                        "only_for_today": false,
                        "new_driver": false
                    },
                    "driver": {
                        "id": "12345",
                        "name": "Test User"
                    },
                    "sla": ""
                }
            ]
        },
        "wednesday": {
            "work": true,
            "detail": [
                {
                    "from": "13:00",
                    "to": "15:00",
                    "cutoff": "12:00",
                    "carrier": {
                        "id": "17501840",
                        "name": "Iflow"
                    },
                    "vehicle": {
                        "id": "12345",
                        "license_plate": "AZ541VW",
                        "vehicle_type": "Camioneta",
                        "only_for_today": false,
                        "new_driver": false
                    },
                    "driver": {
                        "id": "12345",
                        "name": "Test User"
                    },
                    "sla": ""
                }
            ]
        },
        "thursday": {
            "work": true,
            "detail": [
                {
                    "from": "13:00",
                    "to": "15:00",
                    "cutoff": "12:00",
                    "carrier": {
                        "id": "17501840",
                        "name": "Iflow"
                    },
                    "vehicle": {
                        "id": "12345",
                        "license_plate": "AZ541VW",
                        "vehicle_type": "Camioneta",
                        "only_for_today": false,
                        "new_driver": false
                    },
                    "driver": {
                        "id": "12345",
                        "name": "User de prueba"
                    },
                    "sla": ""
                }
            ]
        },
        "friday": {
            "work": true,
            "detail": [
                {
                    "from": "13:00",
                    "to": "15:00",
                    "cutoff": "12:00",
                    "carrier": {
                        "id": "17578840",
                        "name": "Iflow"
                    },
                    "vehicle": {
                        "id": "12345",
                        "license_plate": "AZ541VW",
                        "vehicle_type": "Camioneta",
                        "only_for_today": false,
                        "new_driver": false
                    },
                    "driver": {
                        "id": "12345",
                        "name": "Test User"
                    },
                    "sla": ""
                }
            ]
        },
        "saturday": {
            "work": false,
            "detail": null
        },
        "sunday": {
            "work": false,
            "detail": null
        }
    }
 }

Response parameters:

  • seller_id: id of the seller.
  • work: indicates if the seller works that day. Applies to all logistics. Does not consider holidays.
  • from: is the start time of the pickup window. For xd_drop_off, it is the maximum dispatch time.
  • to: is the end time of the pickup window.
  • cutoff: cutoff time.
  • carrier.id: id of the carrier.
  • carrier.name: name of the carrier.
  • vehicle: is the description of the vehicle.
  • vehicle.id: id of the vehicle.
  • vehicle.license_plate: is the vehicle's license plate.
  • vehicle.only_for_today: indicates if the pickup is only for today.
  • vehicle.new_driver: indicates if there was a change in the driver who will come.
  • driver.id: id of the pickup driver.
  • driver.name: is the name of the pickup driver.

Response status codes:

Code Message Description Recommendation
200 - OK - The current configuration was obtained correctly. -
400 - Bad Request there was an error parsing the request body Error in the request body parameters. Validate the request body.
404 - Not Found not valid logistic type The user does not exist or does not have the cross_docking logistics type. Validate the user_id and the user's logistics types.