Manage feedback

According to MercadoLibre’s business rules, after the sale (or purchase) is complete, the buyer and the seller must provide feedback about the transaction and rate each other. Buyers and sellers build their reputations based on their trading partners’ ratings.

Contents:

Resource description

AttributeDescription
fulfilledTrue or False. Indicates whether the order was completed or not.Required.
messageA string under 160 chars. Required.
ratingPossible values are ‘negative’, ‘neutral’ in case ‘fulfilled’: ‘false’ or positive in case ‘fulfilled’: ‘true’. Required.
reasonMandatory field in case ‘fulfilled’: ‘false’.
restock_itemOnly for sellers, when ‘fulfilled’: ‘false’. When ‘restock_item’: ‘true’ means the order was not completed so the item should be restocked. The only restriction for restocking is that the status of the item cannot be ‘closed’.
has_seller_refunded_moneyOnly for sellers, when the order is ‘fulfilled’: ‘false’ and exists a payment associated with the order. Indicates if the user has issued a refund to the buyer.

Accepted values to send as “reason”

SELLER (All sites except MLB, MPA, MRD & MPT):

  • SELLER_OUT_OF_STOCK
  • SELLER_DIDNT_TRY_TO_CONTACT_BUYER
  • BUYER_NOT_ENOUGH_MONEY
  • BUYER_REGRETS


SELLER (MPA, MRD & MPT):

  • SELLER_REGRETS
  • THEY_DIDNT_ANSWER
  • BUYER_REGRETS
  • SELLER_OUT_OF_STOCK
  • SELLER_DIDNT_TRY_TO_CONTACT_BUYER
  • BUYER_NOT_ENOUGH_MONEY
  • THEY_NOT_HONORING_POLICIES
  • OTHER_MY_RESPONSIBILITY
  • OTHER_THEIR_RESPONSIBILITY


BUYER:

  • SELLER_OUT_OF_STOCK
  • BUYER_PAID_BUT_DID_NOT_RECEIVE
  • OTHER_MY_RESPONSIBILITY

Posting feedback

To associate feedback with an order, do a POST to the order as follows:

curl -X POST -H "Content-Type: application/json" -d
'{
  "fulfilled": false,
  "rating": "neutral",
  "message": "Operation not completed",
  "reason": "THEY_DIDNT_ANSWER",
  "restock_item": false,
  "has_seller_refunded_money": true
}'

"https://api.mercadolibre.com/orders/{order_Id}/feedback?access_token=$ACCESS_TOKEN"

Responding to Feedback

You can reply to feedback you received from your trading partners to explain your reasons or to give additional information by doing a POST to the API, including feedback_id, as follows:

curl -X POST -H "Content-Type: application/json" -d'{
"reply":"COMMENT 2."
}' "https://api.mercadolibre.com/feedback/{feedback_Id}/reply?access_token=$ACCESS_TOKEN"

How do I know the other party Feedback Id?

This information can be obtained by doing a GET to orders. If you have already done this, there is no need to do it again, since the feedback_id is included in the GET response:

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

Response:

{
  "id": 825103323,
  "status": "confirmed",
  "status_detail": {
    "code": null,
    "description": null
  },
  "date_created": "2014-03-17T23:27:53.000-04:00",
  "date_closed": "2014-03-17T23:27:53.000-04:00",
  "last_updated": "2014-06-01T16:36:28.000-04:00",
  "order_items": [
    {
      "item": {
        "id": "MLA494467937",
        "title": "Tag Heuer Aquaracer Automatico 43mm Cal16 Day-d Linea Nueva",
        "variation_id": null,
        "variation_attributes": []
      },
      "quantity": 1,
      "unit_price": 24100,
      "currency_id": "ARS"
    }
  ],
  "total_amount": 24100,
  "currency_id": "ARS",
  "buyer": {
    "id": 9981145,
    "nickname": "CARLITOS8665",
    "email": "carlitos8665@gmail.com",
    "phone": {
      "area_code": "011",
      "number": "1544706706",
      "extension": null
    },
    "alternative_phone": {
      "area_code": "011",
      "number": "48027618",
      "extension": null
    },
    "first_name": "Carlos",
    "last_name": "Acuña",
    "billing_info": {
      "doc_type": null,
      "doc_number": null
    }
  },
  "seller": {
    "id": 114499680,
    "nickname": "WATCHES-LUXURY2",
    "email": "watches-luxury2@hotmail.com",
    "phone": {
      "area_code": null,
      "number": "( 011) 1552490473",
      "extension": null
    },
    "alternative_phone": {
      "area_code": null,
      "number": "",
      "extension": null
    },
    "first_name": "carolina soledad",
    "last_name": "casares"
  },
  "payments": [],
  "feedback": {
    "purchase": {
      "id": 5040068164512,
      "date_created": "2014-04-07T11:20:00.000-04:00",
      "fulfilled": true,
      "rating": "positive",
      "status": "active"
    },
    "sale": {
      "id": 5040068160032,
      "date_created": "2014-04-07T11:20:57.000-04:00",
      "fulfilled": true,
      "rating": "neutral",
      "status": "active"
    }
  },
  "shipping": {
    "status": "to_be_agreed"
  },
  "tags": [
    "paid",
    "not_delivered"
  ],
  "mediations": [],
  "application_id": "2568868276694852",
  "hidden_for_seller": false,
  "buying_mode": "buy_it_now"
}

There is one pair of feedback_id for each transaction: sale and purchase. In this test example,“id”: 5040103892781 is the feedback_id for the sale-side , while “id”: 5040103885872 corresponds to purchase-side.

Changing feedback

You have already learned how to GET the other party’s feedback_id just by doing a POST to the API as follows:

curl -X PUT -H "Content-Type: application/json" -d '{
  "fulfilled": true,
  "rating": "positive",
  "message": "It’s ok.",
}' "https://api.mercadolibre.com//feedback/{feedback_id}?access_token=$ACCESS_TOKEN"



Next topic: Searches & advanced features.

Please rate this