Create store and POS - Integration stages - Mercado Pago Developers

Create store and cash register

After creating the application and obtaining the credentials, it is necessary to configure the store and cash register, which will be associated with payment transactions.

Stores represent physical establishments registered in Mercado Pago and can have one or more cash registers linked. Cash registers correspond to points of sale (POS) and must always be associated with a store, ensuring reconciliation of QR Code payments in physical establishments.

Stores and POS

It is possible to create stores and cash registers from your system through our APIs for in-person payments. To do this, follow the steps below.

Create store

To create a store via API, send a POST including your test Access TokenPrivate key of the application created in Mercado Pago, used in the backend. You can access it in Your integrations > Application details > Tests > Test credentials. During the integration process, use the test Access Token. Upon completing the integration, replace it with the production Access Token if it is your own integration, or with the Access Token obtained via OAuth for third-party integrations.Access test credentials to the endpoint Create storeAPI. You must add the user_id of the Mercado Pago account that will receive money from transactions in the path of your request and complete the required parameters with business details as indicated.

It is essential to correctly fill in all store location information (city_name, state_name, latitude and longitude). Incorrect data can cause errors in tax calculations, directly impacting billing and fiscal compliance of your company.

curl

curl -X POST \
    'https://api.mercadopago.com/users/USER_ID/stores'\
    -H 'Content-Type: application/json' \
       -H 'Authorization: Bearer ACCESS_TOKEN' \
    -d '{
  "name": "Instore Shop",
  "business_hours": {
    "monday": [
      {
        "open": "08:00",
        "close": "12:00"
      }
    ],
    "tuesday": [
      {
        "open": "09:00",
        "close": "18:00"
      }
    ]
  },
  "external_id": "SHOP001",
  "location": {
    "street_number": "0123",
    "street_name": "Example street name.",
    "city_name": "City name.",
    "state_name": "State name.",
    "latitude": 27.175193925922862,
    "longitude": 78.04213533235064,
    "reference": "Near Mercado Pago."
  }
}'
ParameterDescription and examplesRequired
user_idIdentifier of the Mercado Pago account that receives money from sales made at the store. If you are performing a own integrationQR Code integrations to your system for own use and configured from your application credentials. For more information, access the documentation below.Access test credentials, you will find this value in the Application details. If, on the contrary, you are performing an integration for third partiesQR Code integrations to your system on behalf of a seller and configured from credentials obtained through the OAuth security protocol. For more information, access the documentation below.Access test credentials, you will obtain the value in the response to linking via OAuthPrivate key generated through the OAuth security protocol, which allows managing integrations on behalf of third parties. For more information, refer to the documentation.OAuth.Required
nameName of the created store.Required
business_hoursBusiness hours. Operating hours are divided by day of the week and up to four opening and closing times per day are allowed. Provide this data so that your store is displayed in the Mercado Pago application with the correct operating hours.Optional
external_idExternal identifier of the store for the integrator system. Can contain any alphanumeric value up to 60 characters and must be unique for each store. For example, SHOP001.Obligatorio
locationThis object must contain all store location information. It is important to fill everything correctly , especially the latitude and longitude fields with geographical coordinates, using the simple decimal format and real location data. For example, "latitude": 27.175193925922862 and "longitude": 78.04213533235064, which correspond to the exact location of the Taj Mahal in India. When entering this data correctly, the store will appear on the map at the indicated location.Required

If the request was sent correctly, the response will be as the following example:

json

{
  "id": 1234567,
  "name": "Instore Shop",
  "date_created": "2019-08-08T19:29:45.019Z",
  "business_hours": {
    "monday": [
      {
        "open": "08:00",
        "close": "12:00"
      }
    ],
    "tuesday": [
      {
        "open": "09:00",
        "close": "18:00"
      }
    ]
  },
  "location": {
    "address_line": "Example street name, 0123, City name, State name.",
    "latitude": 27.175193925922862,
    "longitude": 78.04213533235064,
    "reference": "Near Mercado Pago"
  },
  "external_id": "SHOP001"
}

In addition to the data sent in the request, the endpoint will return the identifier assigned to the store by Mercado Pago under the id parameter.

Create cash register

To enable sales with Mercado Pago, it is essential that each registered store has at least one cash register linked. To create a cash register and associate it with the previously created store, send a POST including your test Access TokenPrivate key of the application created in Mercado Pago, used in the backend. You can access it in Your integrations > Application details > Tests > Test credentials. During the integration process, use the test Access Token. Upon completing the integration, replace it with the production Access Token if it is your own integration, or with the Access Token obtained via OAuth for third-party integrations.Access test credentials to the endpoint Create cash registerAPI as shown below.

curl

curl -X POST \
    'https://api.mercadopago.com/pos'\
    -H 'Content-Type: application/json' \
       -H 'Authorization: Bearer ACCESS_TOKEN' \
    -d '{
  "name": "First POS",
  "fixed_amount": true,
  "store_id": 1234567,
  "external_store_id": "SHOP001",
  "external_id": "SHOP001POS001",
  "category": 621102
}'
ParameterDescription and examplesRequired
nameName of the created cash register.Required
fixed_amountThis field determines whether the customer can enter the amount to pay or if it is already predefined by the seller. For integrated models, this value must be set to true.Required
store_idIdentifier of the store to which the cash register belongs, assigned to that store by Mercado Pago. It is returned in the response to store creation under the id parameter.Required
external_store_idUnique external identifier of the store. This value is defined by the integrator when creating the store, under the external_id parameter.Required
external_idUnique identifier of the cash register defined by the integrator system. Must be a unique alphanumeric value for each cash register and can contain up to 40 characters.Required
categoryMCC code that indicates the point of sale category. The only possible categories are Food service and Gas station, and the code varies according to the country of operation. If not specified, it remains as a generic category. For more information about the codes, consult the API ReferenceAPI.Optional

If the request was sent correctly, the response will be as the following example.

json

{
  "id": 2711382,
  "qr": {
    "image": "https://www.mercadopago.com/instore/merchant/qr/2711382/0977011a027c4b4387e52069da4264deae2946af4dcc44ee98a8f1dbb376c8a1.png",
    "template_document": "https://www.mercadopago.com/instore/merchant/qr/2711382/template_0977011a027c4b4387e52069da4264deae2946af4dcc44ee98a8f1dbb376c8a1.pdf",
    "template_image": "https://www.mercadopago.com/instore/merchant/qr/2711382/template_0977011a027c4b4387e52069da4264deae2946af4dcc44ee98a8f1dbb376c8a1.png"
  },
  "status": "active",
  "date_created": "2019-08-22T14:11:12.000Z",
  "date_last_updated": "2019-08-25T15:16:12.000Z",
  "uuid": "0977011a027c4b4387e52069da4264deae2946af4dcc44ee98a8f1dbb376c8a1",
  "user_id": 446566691,
  "name": "First POS",
  "fixed_amount": false,
  "category": 621102,
  "store_id": 1234567,
  "external_store_id": "SHOP001",
  "external_id": "SHOP001POS001"
}

See in the table below the description of some of the returned parameters that may be useful to continue with your integration later.

ParameterDescription
idPoint of sale creation ID. When registering a point of sale, you will receive a corresponding ID. This ID can be used for various operations, including querying its data.
qrStatic QR code associated with the cash register created automatically to receive point of sale payments. This QR code is necessary for payment processing when orders are created in static (static) or hybrid (hybrid) mode. The qr object contains the following attributes:
image: URL of the QR code image to be used to receive payments.
template_document: URL of the file (in PDF format) of the template with the QR code to be used to receive payments.
template_image: URL of the file (in image format) of the template with the QR code to be used to receive payments.
statusPoint of sale creation status.
uuidThe UUID (Universally Unique Identifier) is a 128-bit number used to identify information. In this case, it is the identification number of the QR Code in question.
user_idIdentifier of the Mercado Pago account that receives money from sales made at the cash register.
nameName assigned to the cash register at the time of its creation.
store_idIdentifier of the store to which the point of sale belongs.
external_store_idExternal identifier of the store, which was assigned by the integrator system at the time of its creation under the external_id parameter.
external_idUnique identifier of the cash register defined by the integrator system.

If both requests were successful, you will have created and configured the store and cash register necessary for QR Code integration.

Stores are automatically displayed on the map of Mercado Pago and Mercado Libre applications, expanding the establishment's visibility as payments are processed.

With the store and cash register created, you can integrate payment processing.