Criar loja e caixa
Após criar a aplicação e obter as credenciais, é necessário configurar a loja e caixa, que estarão associados às transações.
As lojas representam estabelecimentos físicos cadastrados no Mercado Pago e podem ter um ou mais caixas vinculados. Já os caixas correspondem aos pontos de venda (PDVs) e devem sempre estar associados a uma loja, garantindo a conciliação de pagamentos por Código QR em estabelecimentos físicos.

É possível criar lojas e caixas a partir do seu sistema através das nossas APIs para pagamentos presenciais. Para isso, siga os passos a seguir.
Criar loja
Para criar uma loja via API, envie um POST incluindo seu Access Token de testeChave privada da aplicação criada no Mercado Pago, utilizada no backend. Você pode acessá-la em Suas integrações > Dados da integração > Testes > Credenciais de teste. Durante o processo de integração, utilize o Access Token de teste. Ao concluir a integração, substitua-o pelo Access Token de produção caso seja uma integração própria, ou pelo Access Token obtido via OAuth em integrações para terceiros. O Access Token de teste começa com o prefixo `APP_USR`.Acessar as credenciais de teste ao endpoint Criar lojaAPI. Você deverá adicionar o user_id da conta de testeDurante o desenvolvimento da integração, utilize o User ID da sua conta de teste, disponível em Suas integrações > Dados da integração > Credenciais de teste > Dados das credenciais de teste. Ao subir em produção, substitua-o pelo User ID da conta real do Mercado Pago que receberá os pagamentos. no path da sua requisição e completar os parâmetros requeridos com os detalhes do negócio conforme se indica a seguir.
city_name, state_name, latitude e longitude). Dados incorretos podem causar erros nos cálculos de impostos, impactando diretamente o faturamento e a regularização fiscal da sua empresa.curlcurl -X POST \ 'https://api.mercadopago.com/users/USER_ID/stores'\ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer ACCESS_TOKEN' \ -d '{ "name": "Loja Instore", "business_hours": { "monday": [ { "open": "08:00", "close": "12:00" } ], "tuesday": [ { "open": "09:00", "close": "18:00" } ] }, "external_id": "LOJ001", "location": { "street_number": "0123", "street_name": "Nome da rua de exemplo.", "city_name": "Nome da cidade.", "state_name": "Nome do estado.", "latitude": 27.175193925922862, "longitude": 78.04213533235064, "reference": "Perto do Mercado Pago." } }'
| Parâmetro | Descrição e exemplos | Obrigatoriedade |
user_id | Identificador da conta do Mercado Pago que recebe o dinheiro pelas vendas realizadas na loja. Durante o desenvolvimento, utilize o user_id da conta de teste, disponível em Suas integrações > Dados da integração > Credenciais de teste > Dados das credenciais de teste.Ao subir em produção, substitua pelo user_id da conta real que receberá os pagamentos: Se você está realizando uma integração própriaIntegrações de QR Code ao seu sistema para uso próprio e configuradas a partir das credenciais da sua aplicação., encontrará este valor nos Dados da integração. Se, ao contrário, está realizando uma integração para terceirosIntegrações de QR Code ao seu sistema em nome de um vendedor e configuradas a partir de credenciais obtidas por meio do protocolo de segurança OAuth., obterá o valor na resposta à vinculação por meio de OAuthChave privada gerada mediante o protocolo de segurança OAuth, que permite gerenciar integrações em nome de terceiros. Para mais informações, dirija-se à documentação.OAuth. | Obrigatório |
name | Nome da loja criada. | Obrigatório |
business_hours | Horário comercial. Os horários de funcionamento são divididos por dia da semana e são permitidos até quatro horários de abertura e fechamento por dia. Informe esses dados para que sua loja seja exibida no aplicativo do Mercado Pago com o horário correto de funcionamento. | Opcional |
external_id | Identificador externo da loja para o sistema integrador. Pode conter qualquer valor alfanumérico de até 60 caracteres e deve ser único para cada loja. Por exemplo, LOJ001. | Obligatorio |
location | Este objeto deve conter todas as informações da localização da loja. É importante preencher tudo corretamente , tendo em vista as implicações fiscais, especialmente os campos latitude e longitude com as coordenadas geográficas, usando o formato decimal simples e os dados reais do local. Por exemplo, "latitude": 27.175193925922862 e "longitude": 78.04213533235064, que correspondem à localização exata do Taj Mahal, na Índia. Ao inserir esses dados corretamente, a loja aparecerá no mapa na localização indicada. | Obrigatório |
Se a solicitação foi enviada corretamente, a resposta será como o exemplo a seguir:
json{ "id": 1234567, "name": "Loja Instore", "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": "Nome da rua de exemplo, 0123, Nome da cidade, Nome do estado.", "latitude": 27.175193925922862, "longitude": 78.04213533235064, "reference": "Perto do Mercado Pago" }, "external_id": "LOJ001" }
Além dos dados enviados na solicitação, o endpoint retornará o identificador atribuído à loja pelo Mercado Pago sob o parâmetro id.
Criar caixa
Para habilitar vendas com Mercado Pago, é indispensável que cada loja registrada tenha pelo menos um caixa vinculado. Para criar um caixa e associá-lo à loja previamente criada, envie um POST incluindo seu Access Token de testeChave privada da aplicação criada no Mercado Pago, utilizada no backend. Você pode acessá-la em Suas integrações > Dados da integração > Testes > Credenciais de teste. Durante o processo de integração, utilize o Access Token de teste. Ao concluir a integração, substitua-o pelo Access Token de produção caso seja uma integração própria, ou pelo Access Token obtido via OAuth em integrações para terceiros. O Access Token de teste começa com o prefixo `APP_USR`.Acessar as credenciais de teste ao endpoint Criar caixaAPI como mostrado a seguir.
curlcurl -X POST \ 'https://api.mercadopago.com/v2/pos'\ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer ACCESS_TOKEN' \ -H 'X-Idempotency-Key: CHAVE_UNICA' \ -d '{ "name": "POS-001", "store_id": "1234567", "external_id": "LOJ001POS001", "config": { "qr": { "operating_mode": "pdv" } } }'
| Parâmetro | Descrição e exemplos | Obrigatoriedade |
name | Nome do caixa, definido pelo integrador no momento da criação. São permitidos apenas caracteres alfanuméricos, hífens, underscores e espaços internos. O valor não pode começar nem terminar com espaço. O limite máximo permitido é de 45 caracteres. Se não informado, a API define automaticamente o valor de external_id como nome. | Opcional |
store_id | Identificador da loja à qual o caixa pertence, atribuído pelo Mercado Pago no momento de criação da loja (retornado no campo id). Obrigatório caso external_store_id não seja informado. Se ambos forem enviados, devem referenciar a mesma loja. | Condicional |
external_store_id | Identificador externo da loja, definido pelo integrador ao criá-la, sob o parâmetro external_id. Obrigatório se store_id não for enviado. Se ambos forem enviados, devem se referir à mesma loja. | Condicional |
external_id | Identificador único do caixa definido pelo sistema integrador. Deve ser um valor alfanumérico único para cada caixa e pode conter até 40 caracteres. Embora seja um campo opcional na API, recomenda-se sempre enviá-lo: é obrigatório para criar orders de Código QR associadas a este caixa. Sem este campo, não será possível processar pagamentos. | Opcional |
config.qr.operating_mode | Modo de operação do caixa para pagamentos com Código QR. Valores possíveis: pdv: modo atendido. Um operador de caixa conduz a transação manualmente. config.qr.url deve estar ausente. standalone: Código QR não integrado. O QR é estático e não está vinculado a nenhum sistema externo. O cliente escaneia e paga diretamente pelo app do Mercado Pago, sem que o integrador gerencie orders. config.qr.url deve estar ausente. | Opcional |
config.qr.category | Código MCC que indica a categoria do caixa. O código varia de acordo com o país de operação. Se não especificado, permanece como categoria genérica. Para mais informações sobre os códigos, consulte a Referência de APIAPI. | Opcional |
config.qr.url | URL para obter a order do sistema integrador quando um pagamento é iniciado. O campo config.qr.url deve estar ausente se operating_mode for pdv ou standalone. | Condicional |
Se a solicitação foi enviada corretamente, a resposta será como o exemplo a seguir.
json{ "id": 1234567, "name": "POS-001", "status": "active", "date_created": "2024-01-15T10:30:00Z", "date_last_updated": "2024-01-15T10:30:00Z", "user_id": 123456, "store_id": "1234567", "external_store_id": "LOJ001", "external_id": "LOJ001POS001", "config": { "qr": { "operating_mode": "pdv" } }, "qr_response": { "uuid": "0977011a027c4b4387e52069da4264deae2946af4dcc44ee98a8f1dbb376c8a1", "image": "https://www.mercadopago.com/instore/merchant/qr/1234567/abc123.png", "template_document": "https://www.mercadopago.com/instore/merchant/qr/1234567/template_abc123.pdf", "template_image": "https://www.mercadopago.com/instore/merchant/qr/1234567/template_abc123.png", "qr_code": "00020101021226940014BR.GOV.BCB.PIX2572pix-qr-h.mercadopago.com/instore/h/p/v2/abc123" } }
Veja na tabela abaixo a descrição de alguns dos parâmetros retornados que podem ser úteis para continuar com sua integração mais adiante.
| Parâmetro | Descrição |
id | ID de criação do ponto de venda. Ao registrar um ponto de venda, você receberá um ID correspondente. Esse ID pode ser utilizado para várias operações, incluindo consultar, atualizar ou excluir seus dados. |
config | Objeto de configuração do ponto de venda. Contém o nó de configuração qr com o operating_mode e, quando aplicável, category e url. |
qr_response | Código QR estático associado ao caixa criado automaticamente para processar as transações do ponto de venda. Este código QR é necessário quando as orders são criadas em modo estático (static) ou híbrido (hybrid). O objeto qr_response contém os seguintes atributos: uuid: Identificador único do Código QR associado a este ponto de venda, representado como uma string hexadecimal de 64 caracteres (hash SHA-256). image: URL da imagem do código QR a ser utilizado para realizar as transações. template_document: URL do arquivo (em formato PDF) do template com o código QR a ser utilizado para realizar as transações. template_image: URL do arquivo (em formato de imagem) do template com o código QR a ser utilizado para processar as transações. qr_code: string bruta do Código QR que pode ser codificada em uma imagem pelo sistema integrador. |
status | Status atual do ponto de venda. Valores possíveis: active (ativo e disponível para receber pagamentos) e inactive (inativo, não pode receber pagamentos). |
user_id | Identificador da conta do Mercado Pago que recebe o dinheiro pelas vendas realizadas no caixa. |
name | Nome atribuído ao caixa no momento da sua criação. |
store_id | Identificador da loja à qual pertence o ponto de venda, atribuído a essa loja pelo Mercado Pago. |
external_store_id | Identificador externo da loja, que foi atribuído pelo sistema integrador no momento da sua criação sob o parâmetro external_id. |
external_id | Identificador único do caixa definido pelo sistema integrador. |
Se ambas as solicitações foram bem-sucedidas, você terá criado e configurado a loja e o caixa necessários para a integração com Código QR.
Com a loja e o caixa criados, você poderá integrar o processamento de pagamentos.