Verificar cenários de teste
Para concluir o processo de configuração da interoperabilidade dos Códigos QR de fluxo aceitador, a equipe de Suporte do Mercado Pago solicitará que você realize uma série de 6 testes que garantam o funcionamento correto do fluxo. Você deverá enviar como evidência desses testes o coelsa_id
dos pagamentos aprovados dentro desses cenários, junto com uma captura de tela dos mesmos.
Para realizá-los, tenha em mente as seguintes informações, que deverão ser utilizadas nas requisições à API de cada cenário, ou nas requisições para a resolução de cada QR.
Dado | Descrição |
access_token_seller | Access Token de teste que a equipe de Suporte fornecerá para simular as ações realizadas por um ponto de venda, e que deve ser utilizado exclusivamente nos cenários de teste. |
point_of_sale_id | Identificador de um ponto de venda de testes, que a equipe de Suporte fornecerá para ser utilizado exclusivamente nos cenários de teste. |
qr_data | Código QR de testes. Dependendo do cenário a ser testado, essa informação pode ser fornecida pela equipe de Suporte ou estar disponível nesta documentação. |
Dominio invertido | Permite identificar os códigos QR do Mercado Pago. Embora o mais comum seja o domínio EMVCO, também é possível que você encontre domínios com padrões anteriores. Domínio EMVCO: com.mercadolibre Domínios não EMVCO: https://mpago.la/pos/ |
A seguir, você pode ver quais são os cenários de teste e as considerações necessárias para o ambiente produtivo uma vez que a carteira esteja autorizada.
Cenário 1: O vendedor usa ferramentas de cobrança e a informação está disponível no QR
Neste cenário, você criará um pedido que contém as informações necessárias para efetuar um pagamento a partir do código QR fornecido pela equipe de Suporte, e a seguir simulará sua leitura.
Crie o pedido enviando um POST para o endpoint de testes indicado a seguir e substituindo as variáveis {point_of_sale_id}
e {access_token_seller}
com as informações fornecidas pelo Suporte, conforme necessário.
curl
curl -X POST \
'https://api.mercadopago.com/mpmobile/beta/instore/qr/{point_of_sale_id}?access_token={access_token_seller}' \
-H 'Content-Type: application/json' \
-d '{
"items":[
{
"title":"Hamburguesa Doble",
"unit_price":550.25,
"quantity":1
}
]
}'
Para resolver este QR, utilize o endpoint abaixo, desta vez com o Access Token da carteira (access_token_wallet
) criado por meio do fluxo de OAuth Client Credentials, conforme indicado na etapa Obter credenciais, e o qr_data
fornecido pela equipe de Suporte.
curl
curl --location 'https://api.mercadopago.com/instore/v2/beta/external/resolve?data={qr_data}' \
--header 'Authorization: Bearer {access_token_wallet}'
Se a criação do pedido foi correta, a resposta deverá ser semelhante ao exemplo abaixo.
json
{
"collector": {
"account": "1111111111111111111111",
"identification_number": "11-11111111-1",
"name": "Test user 674345449"
},
"order": {
"id": "is728abe26881a41cdb61832710671fd40",
"items": [
{
"currency_id": "ARS",
"description": "",
"quantity": 1,
"title": "Hamburguesa Doble",
"unit_price": 550.25
}
],
"total_amount": 550.25
},
"status": "closed_amount"
}
Cenário 2: O vendedor usa ferramentas de cobrança e a informação ainda não está disponível no QR
Neste cenário, você simulará a leitura de um código QR que ainda não possui pedido ou valor a pagar. Para reproduzi-lo, você não deve criar um pedido, mas sim garantir que aquele que foi previamente criado no cenário 1 já não esteja disponível.
Se ainda estiver disponível, envie um DELETE para eliminar o valor do código anterior no endpoint de testes indicado abaixo, substituindo as variáveis {point_of_sale_id}
e {access_token_seller}
com as informações fornecidas pelo Suporte, conforme necessário.
curl
curl -X DELETE \
'https://api.mercadopago.com/mpmobile/beta/instore/qr/{point_of_sale_id}?access_token={access_token_seller}'
Para resolver este QR, utilize o endpoint abaixo, desta vez com o Access Token da carteira (access_token_wallet
) criado por meio do fluxo de OAuth Client Credentials, conforme indicado na etapa Obter credenciais, e o qr_data
fornecido pela equipe de Suporte.
curl
curl --location 'https://api.mercadopago.com/instore/v2/beta/external/resolve?data={qr_data}' \
--header 'Authorization: Bearer {access_token_wallet}'
Se os dados foram enviados corretamente, a resolução deve ser semelhante à mostrada abaixo, onde o status do pedido é pending
, o que indica que ainda não há informações disponíveis.
json
{
"retry_delay": 5,
"status": "pending"
}
Cenário 3: O comprador escaneia um QR inválido
Neste cenário, você deverá resolver um código QR inválido a ser escaneado por um usuário comprador de teste.
Para isso, você deverá gerar o código QR utilizando os seguintes qr_data
.
qr_data
00020101021143530016com.mercadolibre0129https://mpago.la/pos/16719292501300091234567895204970053030325802AR5909FULL NAME6010CITY LEGAL6304B244
Para resolver este QR, utilize o endpoint abaixo, desta vez com o Access Token da carteira (access_token_wallet
) criado por meio do fluxo de OAuth Client Credentials, conforme indicado na etapa Obter credenciais.
curl
curl --location 'https://api.mercadopago.com/instore/v2/beta/external/resolve?data=00020101021143530016com.mercadolibre0129https://mpago.la/pos/16719292501300091234567895204970053030325802AR5909FULL NAME6010CITY LEGAL6304B244' \
--header 'Authorization: Bearer {access_token_wallet}'
Se os dados foram enviados corretamente, a resolução deve ser semelhante à mostrada abaixo, onde o status do pedido é unsupported_qr_code
, o que indica que o código QR é inválido.
json
{
"status": "unsupported_qr_code"
}
Cenário 4: Caixa desabilitada
Neste cenário, você deverá testar a resolução de um código QR cuja caixa não está habilitada para a interoperabilidade devido a algum tipo de restrição.
Para isso, você deverá gerar o código QR utilizando os seguintes qr_data
.
qr_data
00020101021143530016com.mercadolibre0129https://mpago.la/pos/16853808501300091234567895204970053030325802AR5909FULL NAME6010CITY LEGAL63049102
Para resolver este QR, utilize o endpoint abaixo, desta vez com o Access Token da carteira (access_token_wallet
) criado por meio do fluxo de OAuth Client Credentials, conforme indicado na etapa Obter credenciais.
curl
curl --location 'https://api.mercadopago.com/instore/v2/beta/external/resolve?data=00020101021143530016com.mercadolibre0129https://mpago.la/pos/16853808501300091234567895204970053030325802AR5909FULL NAME6010CITY LEGAL63049102' \
--header 'Authorization: Bearer {access_token_wallet}'
Se os dados foram enviados corretamente, a resolução deve ser semelhante à mostrada abaixo, onde o status do pedido é unsupported_merchant
, o que indica que o vendedor não está habilitado para a interoperabilidade devido a algum tipo de restrição.
json
{
"status": "unsupported_merchant"
}
Cenário 5: Erro genérico
Este cenário permitirá gerar um erro genérico na resolução de um QR. Para isso, você deverá gerar o código QR utilizando o seguinte qr_data
.
qr_data
00020101021143520016com.mercadolibre0128https://mpago.la/pos/1525865501300091234567895204970053030325802AR5909FULL NAME6010CITY LEGAL630481BA
Para resolver este QR, utilize o endpoint abaixo, desta vez com o Access Token da carteira (access_token_wallet
) criado por meio do fluxo de OAuth Client Credentials, conforme indicado na etapa Obter credenciais.
curl
curl --location 'https://api.mercadopago.com/instore/v2/beta/external/resolve?data=00020101021143520016com.mercadolibre0128https://mpago.la/pos/1525865501300091234567895204970053030325802AR5909FULL NAME6010CITY LEGAL630481BA' \
--header 'Authorization: Bearer {access_token_wallet}'
Se os dados foram enviados corretamente, a resolução deve ser semelhante à mostrada abaixo, onde o status do pedido é error
.
json
{
"status": "error"
}
Cenário 6: Resolver um QR com valor aberto
Este cenário permitirá testar a resolução de um código QR de valor aberto; ou seja, um QR cujo valor a ser pago deve ser completado pelo usuário. Para isso, utilize o seguinte qr_data
.
qr_data
00020101021143530016com.mercadolibre0129https://mpago.la/pos/2602959950150011273265943055204970053030325802AR5917Prueba Perfumeria6004CABA63047720
Para resolver este QR, utilize o endpoint abaixo, desta vez com o Access Token da carteira (access_token_wallet
) criado por meio do fluxo de OAuth Client Credentials, conforme indicado na etapa Obter credenciais.
curl
curl --location 'https://api.mercadopago.com/instore/v2/beta/external/resolve?data=00020101021143530016com.mercadolibre0129https%3A%2F%2Fmpago.la%2Fpos%2F2602959950150011273265943055204970053030325802AR5917Prueba%20Perfumeria6004CABA63047720' \
--header 'Authorization: Bearer {access_token_wallet}'
Se a leitura foi correta, a resposta deverá ser semelhante ao exemplo abaixo.
json
{
"collector": {
"name": "Test Test",
"account": "0000009388000001809754",
"identification_number": "27326594305",
"mcc": "5912",
"postal_code": "c1430dnn"
},
"order": {
"id": "is282acfe8f8cb49b8a4f1a020242c1adf0854",
"items": [
{
"title": "Producto de Rowhna",
"description": "Producto",
"currency_id": "ARS",
"quantity": 1
}
]
},
"administrator": {
"name": "COELSA",
"identification_number": "30692264785"
},
"additional_info": "",
"status": "open_amount",
"payment_methods_allowed": [
{
"id": "CARD",
"restrictions": {
"min_amount_allowed": 3,
"max_amount_allowed": 15000000
}
},
{
"id": "TRANSFER",
"restrictions": {
"min_amount_allowed": 0.01,
"max_amount_allowed": 100000000
}
}
]
}
Considerações para ambientes produtivos
Tenha em mente as seguintes considerações para operar em ambientes produtivos.
- Utilize sempre o Access Token da carteira criado por meio do fluxo de OAuth Client Credentials, conforme indicado na etapa Obter credenciais. Certifique-se de renová-lo antes de completar 6 horas.
- Certifique-se de oferecer sempre uma experiência de usuário adequada: forneça mensagens claras para otimizar a compreensão de cada cenário de pagamento, falha ou erro que ocorrer ao escanear os códigos QR utilizando a carteira.
- Lembre-se de incluir corretamente os padrões de códigos QR do Mercado Pago a partir de seu domínio. Na maioria dos casos, isso deve ser feito com um domínio invertido, como com.mercadolibre. Mas também é possível encontrar QRs não EMVCO, como https://mpago.la/pos/
ou https://mpago.la/s/qr/ . - Identifique as operações com códigos rastreáveis que permitam à COELSA reconhecer aquelas pertencentes ao Mercado Pago. Para isso, envie o
order.id
da IEP do Mercado Pago comoqr_trx_id
à API da COELSA.