Manage sales

An order is a request a customer places on a listed item with the intention to purchase it under a series of conditions he/she will choose throughout the checkout flow. These conditions are detailed on the order that will be replicated for the buyer and the seller accounts as well. On the order you'll find a lot of information to fill out about your product and you'll be able to reserve and/or subtract stock.

Contenidos

→Receive an order
→Total_amount_with_shipping calculation
→Search Orders
→Products information in orders
→How to filter?
→How to sort?
→Recent orders
→Mercado Shops orders
→How to query Mercado Shops orders
→Archived orders
→Pending orders
→Order status
→Mandatory Mercado Pago Flow (only for countries with MP)
→Flow of refund account money due to cancelled sales
→How does your app become aware of a purchase?
→Receive a Notification
→Payments
→Multiple Payment Scenario
→How can I know if there are two payments?
→How to get information about a payment?
→How to get information about a payment from the seller?
→Order notes
→How to add a note to an order?
→See order notes
→How to modify a note?
→Delete notes
→Block bids
→How do I block bids from a specific user?
→Check your blacklist
→Remove a user from your blacklist
→Error Code Reference
→HTTP response code references


Receive an order

Once a new order is created on your user, you can check its details by making a request to the order resource: Example:

curl -X GET -H 'x-format-new: true' https://api.mercadolibre.com/orders/$ORDER_ID?access_token=$ACCESS_TOKEN

Response:

{
  "id": 768570754,
  "status": "paid",
  "status_detail": null,
  "date_created": "2013-05-27T10:01:50.000-04:00",
  "date_closed": "2013-05-27T10:04:07.000-04:00",
  "order_items": - [
  - {
    "item": - {
      "id": "MLB12345678",
      "title": "Samsung Galaxy",
      "variation_id": null,
      "variation_attributes": [
      ],
    },
    "quantity": 1,
    "unit_price": 499,
    "currency_id": "BRL",
  },
  ],
  "total_amount": 499,
  "currency_id": "BRL",
  "buyer": - {
  "id": "123456789",
  "nickname": "COMPRADORTESTE",
  "email": "b@b.com",
  "first_name": "Comprador de testes",
  "last_name": "da Silva",
  "billing_info": - {
    "doc_type": "CPF",
    "doc_number": "12345678910",
  },
  },
  "seller": - {
  "id": "123456789",
  "nickname": "VENDEDORTESTES",
  "email": "a@a.com",
  "first_name": "Vendedor de Testes",
  "last_name": "testes de documentacao",
  },
  "payments": - [
  - {
    "id": "596707837",
    "transaction_amount": 499,
    "currency_id": "BRL",
    "status": "approved",
    "date_created": null,
    "date_last_modified": null,
  },
  ],
  "feedback": - {
  "purchase": null,
  "sale": null,
  },
  "shipping": - {
  "id": 20676482441
  
  },
  "tags": - [
  "paid",
  "not_delivered",
  ],
}

Orders have a lot of attributes. Below you will see a description of the most important fields.
id Unique order identifier.
date_created Order creation date.
date_closed Order confirmation date. It is set when an order status changes for the first time to confirmed / paid and the item is subtracted from the stock.
expiration_date This is the deadline for the user to qualify since, after that date, the feedback is made visible, payments are released (if any), and charges are created.
status Order status. See possible values.
status_detail Status detail, in case the order is canceled.
code Status code.
description Status description.
comprador Buyer's information.
vendedor Seller's information.
order_items Order item listings.
payments Order-related payments.
feedback Order-related feedback information.
shipping Shipping configuration for this order.
total_amount Total invoice amount.
currency_id Currency ID.
tags List of seller selected tags, such as delivered, paid.

Note:
As it happens every time the information of an order is updated, if we discover a fraudulent purchase, we will place the fraud_risk_detected tag to the order and send you a notification with the topic "orders" and said order ID.
To get more shipping information, you have to request to /shipments/shipping.id resource with the id obteined in the order. For more information, learn our Shipments guide.
For ME1, Custom or delivery orders to be agreed, we make the contact telephone number available in the buyer's data whenever this information is in the account. Example:

"phone": - {
"area_code": "11",
"number": "12345678",
"extension": null,
},

Total_amount_with_shipping calculation

With the response that you get in the GET /orders/:id request with the header x-format-new: true and the request to GET /shipments/:shipping_id resource you have to do the next calculation:

total_amount_with_shipping = total_amount + taxes.amount * + shipping_options.cost *

*With the same item currency.

The total_amount and taxes.amount are obtained by the /orders resource, and the shipping_options.cost resource is obtained from the /shipments.

Important:
In case taxes.currency_id is different from items.currency_id we must obtain the conversion ratio: sea distinto a

Request:

curl -X GET  https://api.mercadolibre.com/currency_conversions/search?from=$CURRENCY_ID&to=$CURRENCY_ID

Example:

curl -X GET  https://api.mercadolibre.com/currency_conversions/search?from=ARS&to=BRL

Response:

{
  "ratio": 0.0704988
}


What will happen to a sale based on its delivery?

Without Mercado Envíos: The seller will be notified by e-mail or phone.

  • If the item has already been delivered and there is evidence of that, the seller is covered in the event of a chargeback. This means that the sales money will not be deducted.
  • If the item has not been delivered yet, the seller should refund the money.
  • Learn how to make a refund via API in Refunds and cancellations.
  • For more information, we suggest reading the documentation of “Seller Protection Program Requirements”.

With Mercado Envíos: If the label has not been printed yet, the sale will be cancelled and a notification will be sent to the seller. Otherwise, if the item has already been shipped, Mercado Libre will notify the shipping company to return the item.


Search Orders

The search orders resource will help you browse every order that belongs to users for whom you have a valid token.

curl -X GET https://api.mercadolibre.com/orders/search?buyer=buyer_id&access_token=$ACCESS_TOKEN
Importante:
As of November 21, 2019, only orders created for 12 months are saved and those orders that were manually canceled (status manually_cancelled) and those with a deleted item will be available if the search is used as a buyer. In case the search is carried out by seller (seller), these orders will continue to be filtered.


Products information in orders

This request shows all the information of the products that are in the same order:

curl -X GET https://api.mercadolibre.com/orders/$order_id/product?access_token=$ACCESS_TOKEN

Response:

{
	"attributes": [
    		{
        		"name": "IMEI",
        	"value": "111",
        		"id": 1
    	},
    		{
        		"name": "IMEI",
        	"value": "222",
        		"id": 2
    	},
    		{
        		"name": "entry_date",
        	"value": "01/01/2001",
        		"id": 3
    	}
	]
}


How to filter?

To filter your orders with status "paid" accounts with the following filters:

item: tittle ID
tags: it can be some status separated by ','
tags.not: it can be some status separated by ','
q: it is a field that allows you to search by:

  • order id
  • item id
  • item title
  • firts_name, last_name, email or nickname of the counterpart

order.status: it can be some status separated by ','
order.date_last_updated.from
order.date_last_updated.to
order.date_created.from
order.date_created.to
order.date_closed.from
order.date_closed.to
mediations.status: it can be some status separated by ','
feedback.status: it can be some status separated by ','
feedback.sale.rating: it can be some status separated by ','
feedback.sale.fulfilled
feedback.purchase.rating: it can be some status separated by ','
feedback.purchase.fulfilled

Example:

curl  -X GET https://api.mercadolibre.com/orders/search?seller=seller_id&order.status=paid&access_token=$ACCESS_TOKEN

If you want to filter your orders by date, you should do the following:

curl  -X GET https://api.mercadolibre.com/orders/search?seller=$SELLER_ID&order.date_created.from=2015-07-01T00:00:00.000-00:00&order.date_created.to=2015-07-31T00:00:00.000-00:00&access_token=
Note:
To filter by date you only need the hour. Information about minutes, seconds and milliseconds is removed.


How to sort?

In this case, you should add “sort” to the available sort ID that you wish to apply, for example: “date_desc”.

curl  -X GET https://api.mercadolibre.com/orders/search?seller={seller_id}&order.status=paid&sort=date_desc&access_token={...}
Note:
By default, it sorts by date_asc. The sorting date is:
- Sellers por date_closed.
- Buyers por date_created.


Recent orders

Recent orders are the latest orders that were generated for a user. The response will include orders in which the current date is before expiration_date, and haven’t been qualified by any of the parties. Searching for a seller’s recent orders:

https://api.mercadolibre.com/orders/search/recent?seller=seller_id&access_token={...}

Searching for a buyer’s recent orders:

https://api.mercadolibre.com/orders/search/recent?buyer=buyer_id&access_token={...}


Mercado Shops Orders

Mercado Shops orders are also available in Mercado Libre API.

To identify these orders, you should use the tag "mshops".

Example of Mercado Shops orders:

curl -X GET -H x-format-new: true https://api.mercadolibre.com/orders/$ORDER_ID?access_token=$ACCESS_TOKEN

{
    "id": 2063200914,
    "date_created": "2019-06-24T15:53:04.000-04:00",
    "date_closed": "2019-06-24T15:53:06.000-04:00",
    "last_updated": "2019-06-24T15:53:06.000-04:00",
    "manufacturing_ending_date": null,
    "feedback": {
        "sale": null,
        "purchase": null
    },
    "mediations": [],
    "comments": null,
    "pack_id": null,
    "pickup_id": null,
    "order_request": {
        "return": null,
        "change": null
    },
    "fulfilled": null,
    "total_amount": 25,
    "paid_amount": 31.9,
    "coupon": {
        "id": null,
        "amount": 0
    },
    "expiration_date": "2019-07-22T15:53:06.000-04:00",
    "order_items": [
        
            "item": {
                "id": "MLB1231068128",
                "title": "Teste Anúncio Me2 - Não Ofertar",
                "category_id": "MLB271107",
                "variation_id": null,
                "seller_custom_field": null,
                "variation_attributes": [],
                "warranty": null,
                "condition": "new",
                "seller_sku": null
            },
            "quantity": 1,
            "unit_price": 25,
            "full_unit_price": 25,
            "currency_id": "BRL",
            "manufacturing_days": null
        
    ],
    "currency_id": "BRL",
    "payments": [
        
            "id": 4898000077,
            "order_id": 2063200914,
            "payer_id": 419067349,
            "collector": {
                "id": 419059118
            },
            "card_id": 313381752,
            "site_id": "MLB",
            "reason": "Teste Anúncio Me2 - Não Ofertar",
            "payment_method_id": "master",
            "currency_id": "BRL",
            "installments": 1,
            "issuer_id": "24",
            "atm_transfer_reference": {
                "company_id": null,
                "transaction_id": "1234567"
            },
            "coupon_id": null,
            "activation_uri": null,
            "operation_type": "regular_payment",
            "payment_type": "credit_card",
            "available_actions": [
                "refund"
            ],
            "status": "approved",
            "status_code": null,
            "status_detail": "accredited",
            "transaction_amount": 25,
            "taxes_amount": 0,
            "shipping_cost": 6.9,
            "coupon_amount": 0,
            "overpaid_amount": 0,
            "total_paid_amount": 31.9,
            "installment_amount": 31.9,
            "deferred_period": null,
            "date_approved": "2019-06-24T15:53:05.000-04:00",
            "authorization_code": "1234567",
            "transaction_order_id": null,
            "date_created": "2019-06-24T15:53:05.000-04:00",
            "date_last_modified": "2019-06-24T15:53:05.000-04:00"
        
    ],
    "shipping": {
        "id": 28001747957
    },
    "status": "paid",
    "status_detail": null,
    "tags": [
        "mshops",
        "test_order",
        "not_delivered",
        "paid"
    ],
    "buyer": {
        "id": 419067349,
        "nickname": "TT763866",
        "email": "ttest.6hqmq6+2-ogiydmmzsgaydsnjx@mail.mercadolivre.com",
        "first_name": "Test",
        "last_name": "Test",
        "billing_info": {
            "doc_type": "CPF",
            "doc_number": "78525276200"
        
    },
    "seller": {
        "id": 419059118,
        "nickname": "TETE8288849",
        "email": "ttest.hpz2z6q+2-ogiydmmzsgaydsnjs@mail.mercadolivre.com",
        "phone": {
            "area_code": "01",
            "extension": "",
            "number": "1111-1111",
            "verified": false
        },
        "alternative_phone": {
            "area_code": "",
            "extension": "",
            "number": ""
        },
        "first_name": "Test",
        "last_name": "Test"
    },
    "taxes": {
        "amount": null,
        "currency_id": null
    
}

The JSON structure is the same that Mercado Libre orders. Os pedidos de Mercado Shops também podem ser de carrinho. Para isso, consulte a documentação Gerenciamento de Ordens de Carrinho.


How to query Mercado Shops orders

To consult the Marcado Shops orders, just consult by the tag mshops as in the following example:

GET https://api.mercadolibre.com/orders/search?seller=seller_id&tags=mshops&access_token={...}


Archived orders

If you are looking for an order with expiration_date after current date or which was qualified by both parties, you can use the search archived orders resource: Searching for a seller’s archived orders:

https://api.mercadolibre.com/orders/search/archived?seller=seller_id&access_token={...}

Searching for a buyer’s archived orders:

https://api.mercadolibre.com/orders/search/archived?buyer=buyer_id&access_token={...}


Pending orders

This search will retrieve all the orders with “pending” status, and will automatically skip canceled orders. If you want to see a specific seller's orders, send the seller_id:

https://api.mercadolibre.com/orders/search/pending?seller=seller_id&access_token={...}

To search by buyer, replace the parameters as follows:

https://api.mercadolibre.com/orders/search/pending?buyer=user_id&access_token={...}


Order status

Order statuses are the following:
confirmed Initial status of an order, even if it is still unpaid.
payment_required Order payment should be confirmed to display user information.
payment_in_process There is an order-related payment, but it has not been credited yet.
partially_paid La orden tiene un pago asociado acreditado, pero no es suficiente.
paid The order-related payment is credited, but it is not enough.
cancelled For some reason, the order was not fulfilled.*
invalid The order was invalidated as it came from a malicious buyer.

Notes:
An order may be canceled due to the following reasons:
- Payment approval was required to subtract stock, but, during the approval process period, the item was paused/terminated due to stockout; so, the payment is returned to the buyer.
- Payment was required, but, as it was not paid within a specific period, it was automatically canceled.
- After making a transaction, for some reason the seller is banned from the site.
- If for some reason the seller rates the transaction as non-completed, the order takes the "status = confirmed." If there is an approved payment, it will be automatically returned. Bear in mind that an order that has not been completed by the seller at front will appear as "Cancelled" and with api "status: confirmed".


Mandatory Mercado Pago Flow (only for countries with Mercado Pago)

How to find out if a site has Mercado Pago enabled? To get that information, call:

curl https://api.mercadolibre.com/sites/MLA

If you receive "MLAMP" as a response within "payment_method_ids," you will be able to work smoothly with this flow. Explanatory Note: MLAMP is Mercado Pago's payment method ID:

curl https://api.mercadolibre.com/payment_methods/MLAMP

On our platform you will find orders which can go through Mercado Pago's mandatory flow as the only payment method, and others which cannot. This choice will be mandatory in the scenarios below:

  • All MLB orders.
  • All MLA and MLM orders from the sale of products with "condition": "new".
  • Official Store Listings in every country with Mercado Pago.
  • Categories with Mercado Pago as the only choice. (For more information, visit Immediate payment categories.
  • User automatically marked to have transactions routed through this flow with the mark “immediate_payment” in the users API.
  • Learn more about Seller “auto” marked to have sales routed through this flow.

Now we will explain the general operation of orders entered through this flow or otherwise: 1) Orders entered through this flow are created with a “payment_required” status. And they have the following characteristics:

  • They are not visible to the seller.
  • No se descuenta el stock de item.
  • No tienen establecido el campo date_closed.
  • No tienen datos de la contraparte.
  • Se envía sólo la notificación del topic "created_orders".

When the total amount of the sale payment is credited, order status changes from “payment_required” to “paid.” At that time:

  • They become visible to the seller.
  • The item is subtracted from the stock.
  • The date_closed field is filled out.
  • The counterpart's data is filled out.
  • The "orders" topic notifications start to be sent.

2) Orders NOT entered through this flow are created with a “confirmed” status. Starting at that time:

  • They are visible to the seller.
  • The item is subtracted from the stock.
  • The date_closed field is filled out.
  • The counterpart's data is filled out.
  • The “orders”/“created_orders” topic notifications start to be sent.

If a payment made through Mercado Pago is credited for the total amount of the sale, order status changes from "confirmed" to "paid".
Explanatory note: In both cases, if the buyer selects Mercado Envíos (ME2, only in countries where this service is enabled) in the payment flow, the shipping will have the label ready to print once the order status changes to “paid”.


Flow of refund account money due to cancelled sales

Important:
Available only for Mexico sellers and for Argentina and Brazil sellers soon.

Ante cancelaciones por los vendedores, los compradores con buena reputación y que realicen pagos con tarjeta de crédito o débito recibirán automáticamente la devolución con dinero en cuenta de Mercado Pago.
When cancelled by sellers, good reputation buyers paying with credit card or debit will automatically receive their money refund in Mercado Pago account. This way purchase order gets a different status against the other flows. Changes will be:

  • status = paid
  • Nuevo tag: unfulfilled
Note:
The order will never have status cancelled since refund account money means that payment needs to be fulfilled. The order payment will have tag refund_account_money.


How does your app become aware of a purchase?

The creation of an order is an event that occurs on MercadoLibre's side, so you'll need to subscribe to our orders feed to become aware in real time when that event occurs. Go to our Application Manager and edit your application Notifications Settings. For more information about creating and configuring a new app, please check this link. You must choose a Callback URL: configure the public URL of the domain where you want to receive all the notifications from MercadoLibre. For example: The creation of an order is an event that occurs on MercadoLibre's side, so you'll need to subscribe to our orders feed to become aware in real time when that event occurs. Go to our Application Manager and edit your application Notifications Settings. For more information about creating and configuring a new app, please check this link. You must choose a Callback URL: configure the public URL of the domain where you want to receive all the notifications from MercadoLibre. For example: “https://backend.soleorigami.com/notification”. ORDERS
This configuration allows you to interact with Mercado Libre notifications. All the events (like payments and shipping) related to an order will be notified to your callback URL.


Receive a notification

Mercado Libre will send you notifications through a POST message with information in the listing body. The most important attribute in the message is the notification-related user_id, followed by the resource. The resource is the element which was updated or created.

{
  "user_id": 1234,
  "resource": "/orders/731867397",
  "topic": "orders",
  "received": "2011-10-19T16:38:34.425Z",
  "application_id" : 14529
  "sent" : "2011-10-19T16:40:34.425Z",
  "attempts" : 0
}

After receiving a notification, you must send an acknowledgment (ACK 200) to Mercado Libre in order to stop receiving it.


Payments

Mercado Pago is Mercado Libre's payment platform. If you want to integrate a payment solution on your platform, you should check Mercado Pago's developers website.


Multiple payment scenario

In some cases, when the payment is rejected for reaching the credit card limit, we let users add another payment with a second credit card.


How can I know if there are two payments?

When you make a GET to Orders API, you’ll see that there will be two IDs with the details of each payment in the payment array. Example:

curl -X GET https://api.mercadolibre.com/orders/893431118?access_token=&ACCESS_TOKEN

Response:

{
  "buyer": {
      "alternative_phone": {
          "area_code": null,
          "extension": null,
          "number": ""
      },
      "billing_info": {
          "doc_number": "67045427794",
          "doc_type": "CPF"
      },
      "email": "test_user_21963158@testuser.com",
      "first_name": "Test",
      "id": 160903317,
      "last_name": "Test",
      "nickname": "TETE2022123",
  },
  "coupon": {
      "amount": 0,
      "id": null
    },
  "currency_id": "BRL",
  "date_closed": null,
  "date_created": "2014-10-26T22:46:18.000-04:00",
  "feedback": {
      "purchase": null,
      "sale": null
  },
  "id": 893431118,
  "last_updated": "2014-10-26T22:50:10.000-04:00",
    "mediations": [],
  "order_items": [
      {
          "currency_id": "BRL",
          "item": {
              "id": "MLB600034093",
              "title": "Item De Testeo, Por Favor No Ofertar --kc:off",
              "variation_attributes": [],
              "variation_id": null
          },
          "quantity": 1,
          "unit_price": 591
      }
  ],
  "paid_amount": 591,
  "payments": [
      {
          "activation_uri": null,
          "atm_transfer_reference": {
              "company_id": null,
                "transaction_id": null
          },
            "available_actions": [],
          "card_id": null,
          "collector": {
              "id": 169648308
          },
          "coupon_amount": 0,
          "coupon_id": null,
          "currency_id": "BRL",
          "date_created": "2014-10-26T22:48:46.000-04:00",
            "date_last_modified": "2014-10-27T00:51:53.000-04:00",
          "id": 885920310,
          "installments": 1,
          "issuer_id": "25",
          "operation_type": "regular_payment",
          "order_id": 893431118,
          "overpaid_amount": 0,
          "payer_id": 160903317,
            "payment_method_id": "visa",
          "payment_type": "credit_card",
          "reason": "Item De Testeo, Por Favor No Ofertar --kc:off",
          "shipping_cost": 0,
          "site_id": "MLB",
          "status": "approved",
          "status_code": null,
          "status_detail": "accredited",
            "total_paid_amount": 296,
            "transaction_amount": 296
      },
      {
          "activation_uri": null,
            "atm_transfer_reference": {
              "company_id": null,
                "transaction_id": null
          },
            "available_actions": [],
          "card_id": null,
          "collector": {
              "id": 169648308
          },
          "coupon_amount": 0,
          "coupon_id": null,
          "currency_id": "BRL",
          "date_created": "2014-10-26T22:50:10.000-04:00",
            "date_last_modified": "2014-10-26T22:50:21.000-04:00",
          "id": 885920410,
          "installments": 3,
          "issuer_id": "25",
          "operation_type": "regular_payment",
          "order_id": 893431118,
          "overpaid_amount": 0,
          "payer_id": 160903317,
            "payment_method_id": "visa",
          "payment_type": "credit_card",
          "reason": "Item De Testeo, Por Favor No Ofertar --kc:off",
          "shipping_cost": 0,
          "site_id": "MLB",
          "status": "approved",
          "status_code": null,
          "status_detail": "accredited",
            "total_paid_amount": 315.62,
            "transaction_amount": 295
      }
  ],
  "seller": {
      "alternative_phone": {
          "area_code": null,
          "extension": null,
          "number": ""
      },
      "email": "test_user_70385259@testuser.com",
      "first_name": "Test",
      "id": 169648308,
      "last_name": "Test",
      "nickname": "TETE6072468",
      "phone": {
          "area_code": "01",
          "extension": null,
          "number": "1111-1111"
      }
  },
  "shipping": {
      "status": "to_be_agreed"
  },
  "status": "paid",
  "status_detail": null,
  "tags": [
      "not_delivered",
      "paid"
  ],
  "total_amount": 591,

}


How to get information about a payment?

To get payment information from a buyer using the token, you must use the “payments” resource.
Example:

https://api.mercadolibre.com/payments?access_token=


How to get information about a payment from the seller?

To get payment information for an order, you must use the payment resource of the Mercado Pago API. Depending on the token, it will be recognized if the buyer is the buyer or the seller, and the corresponding information will be returned.
Call:

https://api.mercadopago.com/v1/payments/payment_id?access_token

Response: Example with seller token

GET https://api.mercadopago.com/v1/payments/3506756222?access_token
{
  "counter_currency": null,
  "acquirer_reconciliation": [
  ],
  "statement_descriptor": "MERCADOPAGO",
  "captured": true,
  "fee_details": [
    {
      "amount": 487.2,
      "fee_payer": "payer",
      "type": "financing_fee"
    }
  ],
  "acquirer": null,
  "date_last_updated": "2018-03-05T10:06:55.000-04:00",
  "date_created": "2018-03-05T10:06:54.000-04:00",
  "id": 3506756222,
  "merchant_account_id": null,
  "issuer_id": "157",
  "date_of_expiration": null,
  "external_reference": "1653027692",
  "order": {
    "id": "1653027692",
    "type": "mercadolibre"
  },
  "transaction_amount": 3500,
  "description": "Maquina Industrial Recta Marca ",
  "card": {
    "id": null,
    "first_six_digits": "371772",
    "expiration_month": 10,
    "cardholder": {
      "identification": {
        "number": null,
        "type": null
      },
      "name": "JOAN C GONZALEZ GUZMAN"
    },
    "date_last_updated": "2018-03-05T10:06:54.000-04:00",
    "date_created": "2018-03-05T10:06:54.000-04:00",
    "expiration_year": 2019,
    "last_four_digits": "1001"
  },
  "transaction_details": {
    "total_paid_amount": 3987.2,
    "acquirer_reference": null,
    "payment_method_reference_id": null,
    "net_received_amount": 3500,
    "financial_institution": null,
    "payable_deferral_period": null,
    "installment_amount": 443.02,
    "external_resource_url": null,
    "overpaid_amount": 0
  },
  "coupon_amount": 0,
  "merchant_number": null,
  "call_for_authorize_id": null,
  "metadata": {
  },
  "currency_id": "MXN",
  "money_release_schema": null,
  "collector_id": 277582551,
  "status": "approved",
  "sponsor_id": null,
  "deduction_schema": null,
  "payment_method_id": "amex",
  "additional_info": {
    "items": [
      {
        "id": "MLM610028711",
        "title": "Maquina Industrial Recta Marca",
        "picture_url": null,
        "description": null,
        "category_id": "MLM184696",
        "quantity": "1",
        "unit_price": "3500"
      }
    ]
  },
  "processing_mode": "aggregator",
  "status_detail": "accredited",
  "binary_mode": false,
  "operation_type": "regular_payment",
  "installments": 9,
  "money_release_date": "2018-03-26T10:06:55.000-04:00",
  "payer": {
    "id": "53745235",
    "first_name": "Joan Carlos",
    "phone": {
      "extension": null,
      "area_code": null,
      "number": "5558800201"
    },
    "email": null,
    "identification": {
      "number": "83092109600",
      "type": "IFE"
    },
    "last_name": "Gonzalez Guzman",
    "entity_type": null,
    "type": "registered"
  },
  "notification_url": null,
  "transaction_amount_refunded": 0,
  "refunds": [
  ],
  "date_approved": "2018-03-05T10:06:55.000-04:00",
  "authorization_code": "211118",
  "payment_type_id": "credit_card",
  "live_mode": true
}


Example with buyer token

GET https://api.mercadopago.com/v1/payments/3506756222?access_token
{
  "counter_currency": null,
  "acquirer_reconciliation": [
  ],
  "statement_descriptor": "MERCADOPAGO",
  "captured": true,
  "fee_details": [
    {
      "amount": 487.2,
      "fee_payer": "payer",
      "type": "financing_fee"
    }
  ],
  "acquirer": null,
  "date_last_updated": "2018-03-05T10:06:55.000-04:00",
  "date_created": "2018-03-05T10:06:54.000-04:00",
  "id": 3506756222,
  "merchant_account_id": null,
  "payer_id": 53745235,
  "collector": {
    "id": 277582551,
    "first_name": "Belem",
    "phone": {
      "extension": null,
      "area_code": null,
      "number": "5547588284"
    },
    "email": null,
    "identification": {
      "number": null,
      "type": null
    },
    "last_name": "Jimenez"
  },
  "issuer_id": "157",
  "date_of_expiration": null,
  "external_reference": "1653027692",
  "order": {
    "id": "1653027692",
    "type": "mercadolibre"
  },
  "transaction_amount": 3500,
  "description": "Maquina Industrial Recta Marca ",
  "card": {
    "id": null,
    "first_six_digits": "371772",
    "expiration_month": 10,
    "cardholder": {
      "identification": {
        "number": null,
        "type": null
      },
      "name": "JOAN C GONZALEZ GUZMAN"
    },
    "date_last_updated": "2018-03-05T10:06:54.000-04:00",
    "date_created": "2018-03-05T10:06:54.000-04:00",
    "expiration_year": 2019,
    "last_four_digits": "1001"
  },
  "transaction_details": {
    "total_paid_amount": 3987.2,
    "acquirer_reference": null,
    "payment_method_reference_id": null,
    "net_received_amount": 3500,
    "financial_institution": null,
    "payable_deferral_period": null,
    "installment_amount": 443.02,
    "external_resource_url": null,
    "overpaid_amount": 0
  },
  "coupon_amount": 0,
  "merchant_number": null,
  "call_for_authorize_id": null,
  "metadata": {
  },
  "currency_id": "MXN",
  "money_release_schema": null,
  "status": "approved",
  "sponsor_id": null,
  "deduction_schema": null,
  "payment_method_id": "amex",
  "additional_info": {
    "items": [
      {
        "id": "MLM610028711",
        "title": "Maquina Industrial Recta Marca",
        "picture_url": null,
        "description": null,
        "category_id": "MLM184696",
        "quantity": "1",
        "unit_price": "3500"
      }
    ]
  },
  "processing_mode": "aggregator",
  "status_detail": "accredited",
  "binary_mode": false,
  "operation_type": "regular_payment",
  "installments": 9,
  "differential_pricing_id": null,
  "money_release_date": "2018-03-26T10:06:55.000-04:00",
  "notification_url": null,
  "transaction_amount_refunded": 0,
  "refunds": [
  ],
  "date_approved": "2018-03-05T10:06:55.000-04:00",
  "authorization_code": "211118",
  "payment_type_id": "credit_card",
  "live_mode": true
}


Advanced

Order notes

A note is an annotation sellers can add to orders. Notes can have up to 300 characters each and, once you post a note, you can either modify or delete it.


How to add a note to an order?

curl -X POST -H "Content-Type: application/json" -d '{  	
   	"note": "test",
}' https://api.mercadolibre.com/orders/{order_Id}/notes?access_token=$ACCESS_TOKEN


See order notes

curl -X GET https://api.mercadolibre.com/orders/{order_Id}/notes?access_token=$ACCESS_TOKEN


How to modify a note?

curl -X PUT -H "Content-Type: application/json" -d '{
   	"note": "test2",
}' https://api.mercadolibre.com/orders/{order_Id}/notes/{note_Id}?access_token=$ACCESS_TOKEN


Delete notes

curl -X DELETE https://api.mercadolibre.com/orders/{order_Id}/notes/{note_Id}?access_token=$ACCESS_TOKEN


Block bids

Even though we have a fraud prevention feature and flows to keep buyers and sellers safe, sometimes you may find users who, for some reason, bid on your items. These cases can be sent to your blacklist to prevent them from bidding.


How do I block bids from a specific user?

Realiza una solicitud POST con el cust_id del usuario que deseas bloquear en el JSON y el tuyo en el url. Example:

curl -X POST -H "Content-Type: application/json" -d
{ user_id: {cust_id} }
https://api.mercadolibre.com/users/{cust_Id}/order_blacklist?access_token=$ACCESS_TOKEN


Check your blacklist

If you want to know which users are on your blacklist, make a GET to the API with your cust_id in the URL:

curl -X GET https://api.mercadolibre.com/users/{cust_id}/order_blacklist?access_token=$ACCESS_TOKEN


Remove a user from your blacklist

If you don’t want to block a user from making bids anymore, you can remove him/her from your blacklist by making a DELETE to the API with your cust_id and the blocked user’s cust_id.

curl -X DELETE https://api.mercadolibre.com/users/{your_cust_id}/order_blacklist/{cust_id}


Error Code Reference

Error Error message Description Possible solution
order_not_found Order not found. $order_id incorrect. The order cannot be found, check if the order_id is correct. More information.
empty_order_id Order ID can not be empty. $order_id is null. The parameter order_id cannot be null, check the URL used. More information
invalid_order_id Invalid order ID. $order_id incorrect. The parameter order_id must be a integer number. For search your orders see this topic.
not_identified_user Can not identify the user. Do not exist a Token. Send a token.
not_owned_order The user has not access to the order. $seller or $buyer incorrect. To see one order, your access_token must be generated from seller or buyer.
caller.id.invalid caller.id does not match buyer nor seller. $seller or $buyer incorrect. To see one order, you must be use one ID from seller or buyer.
feedback_not_found The feedback does not exist. Reply error. Check if feedback exist for give a reply.
invalid_fulfilled ‘fulfilled’ parameter must be true or false. Error on give feedback. Check the parameter $fulfilled this must be boolean (remove quotation marks) and check if the parameter $reason is not null in case of $fulfilled: false.
reply_time_expired Reply time expired. There is a 14 days period to reply a feedback. Error on give reply on feedback. The reply can be sent in 14 days past the feedback date.
reply_already_exists Reply already exists for the feedback. Error on give reply on feedback. The feedback supports only one reply.

HTTP response code references

Orders may return the code http 206 when it has not been possible to obtain any data. Keep in mind that in most cases the information you receive will be enough for you to continue working.
In the response header X-Content-Missing you will have the name of the fields without information, which can be "buyer", "feedback", "mediations", "seller" and / or "shipping".


Call:

curl -X GET -H 'x-format-new: true' https://api.mercadolibre.com/orders/$ORDER_ID?access_token=$ACCESS_TOKEN

Response:
< HTTP/1.1 206 Partial Content> X-Content-Missing: buyer, feedback

{
  "id": 768570754,
  "status": "paid",
  "status_detail": null,
  "date_created": "2013-05-27T10:01:50.000-04:00",
  "date_closed": "2013-05-27T10:04:07.000-04:00",
  "order_items": - [
	- {
  	"item": - {
    	"id": "MLB12345678",
  	  "title": "Samsung Galaxy",
    	"variation_id": null,
    	"variation_attributes": [
    	],
  	},
  	"quantity": 1,
  	"unit_price": 499,
  	"currency_id": "BRL",
	},
  ],
  "total_amount": 499,
  "currency_id": "BRL",
  "buyer": - { },
  },
  "seller": - {
	"id": "123456789",
	"nickname": "VENDEDORTESTES",
	"email": "a@a.com",
	"phone": - {
  	"area_code": null,
  	"number": "11 12345678",
  	"extension": "11",
	},
	"first_name": "Vendedor de Testes",
	"last_name": "testes de documentacao",
  },
  "payments": - [
	- {
  	"id": "596707837",
  	"transaction_amount": 499,
  	"currency_id": "BRL",
  	"status": "approved",
  	"date_created": null,
  	"date_last_modified": null,
	},
  ],
  "feedback": - { },
  "shipping": - {
	"id": 20676482441
	
  },
  "tags": - [
	"paid",
	"not_delivered",
  ],
}


Next:
Messaging after sale.