# MD for: https://www.mercadopago.com.uy/developers/es/docs/qr-code/create-store-and-pos.md \# Create store and cash register After \[creating the application\](https://www.mercadopago.com.uy/developers/en/docs/qr-code/create-application) and obtaining the credentials, it is necessary to configure the store and cash register, which will be associated with 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\](https://www.mercadopago.com.uy/images/qr-orders/stores\_pos-v1.es.png) 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\*\* with the :toolTipComponent\[test Access Token\]{link="/developers/en/docs/qr-code/create-application#bookmark\_access\_test\_credentials" linkText="Access test credentials" content="Private key of the application created in Mercado Pago, used in the \_backend\_ during integration development. You can access it in \*Your integrations > Integration data > Tests > Test credentials\*. When going to production, replace it with the production Access Token if it is your own integration, or with the Access Token obtained via OAuth in the case of third-party integrations."} to the endpoint :TagComponent{tag="API" text="Create store" href="/developers/en/reference/in-person-payments/qr-code/stores/create-store/post"}. You must add the :toolTipComponent\[test account \`user\_id\`\]{content="During development, use the User ID from the test account. Go to \*Your integrations > Integration data > Test credentials > Test credentials data\* and copy the displayed User ID. When going to production, replace it with the User ID from the real Mercado Pago account that will receive the payments."} in the \_path\_ of your request and complete the required parameters with the business details as indicated below. > WARNING > > 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." } }' \`\`\` | Parameter | Description and examples | Required | | ---- | ---- | ---- | | \`user\_id\` | Identifier of the Mercado Pago account that receives the money for sales made at the store. During development, use the \`user\_id\` from the test account, available in \*\*Your integrations > Integration data > Test credentials > Test credentials data\*\*. When going to production, replace it with the \`user\_id\` from the real account that will receive payments: If you are performing your :toolTipComponent\[own\]{content="QR Code integrations to your system for your own use and configured using your application's credentials."} integration, you will find this value in the \[Integration data\](https://www.mercadopago.com.uy/developers/en/docs/qr-code/resources/application-details). If, on the other hand, you are performing an integration :toolTipComponent\[for third parties\]{content="QR Code integrations to your system on behalf of a seller and configured using credentials obtained through the OAuth security protocol."}, you will obtain the value in the response to :toolTipComponent\[linking through OAuth\]{link="/developers/en/docs/qr-code/resources/security/landing-hub" linkText="OAuth" content="Private key generated through the OAuth security protocol, which allows managing integrations on behalf of third parties. For more information, go to the documentation."}. | Required | | \`name\` | Name of the created store. | Required | | \`business\_hours\` | Business 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\_id\` | External 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 | | \`location\` | This 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 :toolTipComponent\[test Access Token\]{link="/developers/en/docs/qr-code/create-application" linkText="Access test credentials" content="Private key of the application created in Mercado Pago, used in the backend. You can access it in \*Your integrations > Integration data > 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."} to the endpoint :TagComponent{tag="API" text="Create cash register" href="/developers/en/reference/in-person-payments/qr-code/pos/create-pos/post"} 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 }' \`\`\` | Parameter | Description and examples | Required | | ---- | ---- | ---- | | \`name\` | Name of the created cash register. | Required | | \`fixed\_amount\` | This 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\_id\` | Identifier 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\_id\` | Unique external identifier of the store. This value is defined by the integrator when creating the store, under the \`external\_id\` parameter. | Required | | \`external\_id\` | Unique 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 | | \`category\` | MCC 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 :TagComponent{tag="API" text="API Reference" href="/developers/en/reference/in-person-payments/qr-code/pos/create-pos/post"}. | 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. | Parameter | Description | | ---- | ---- | | \`id\` | Point 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. | | \`qr\` | Static QR code associated with the cash register created automatically to process point of sale transactions. This QR code is necessary 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 perform transactions. \`template\_document\`: URL of the file (in PDF format) of the template with the QR code to be used to perform transactions. \`template\_image\`: URL of the file (in image format) of the template with the QR code to be used to process transactions. | | \`status\` | Point of sale creation status. | | \`uuid\` | The 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\_id\` | Identifier of the Mercado Pago account that receives money from sales made at the cash register. | | \`name\` | Name assigned to the cash register at the time of its creation. | | \`store\_id\` | Identifier of the store to which the point of sale belongs. | | \`external\_store\_id\` | External identifier of the store, which was assigned by the integrator system at the time of its creation under the \`external\_id\` parameter. | | \`external\_id\` | Unique 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. > NOTE > > 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\](https://www.mercadopago.com.uy/developers/en/docs/qr-code-ca/payment-processing).