Verificar cenários de teste
Antes de operar em produção, valide sua integração usando os cenários de teste correspondentes ao tipo de pagamento que está integrando.
Selecione abaixo o tipo de pagamento para ver os cenários de teste disponíveis.
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, incluindo as respectivas capturas de tela desses processos.
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. |
| Domínio invertido | Permite identificar os códigos QR do Mercado Pago. Embora o mais comum seja o domínio EMVCO (com.mercadolibre), também é possível encontrar domínios com padrões anteriores, como: \https://mpago.la/pos/\<id\> e https://mpago.la/s/qr/\<id1\>\<id2\> |
A seguir, você 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.
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, substituindo as variáveis {point_of_sale_id} e {access_token_seller} com as informações fornecidas pelo Suporte, conforme necessário.
curlcurl -X POST \ 'https://api.mercadopago.com/mpmobile/beta/instore/qr/{point_of_sale_id}' \ -H 'Authorization: Bearer {access_token_seller}' \ -H 'Content-Type: application/json' \ -d '{ "items":[ { "title":"Hamburguesa Doble", "unit_price":550.25, "quantity":1 } ] }'
Para resolver este QR, envie uma solicitação ao endpoint /instore/v2/external/resolveGET, incluindo o Access Token da carteira e o qr_data fornecido pela equipe de Suporte.
curlcurl --location 'https://api.mercadopago.com/instore/v2/beta/external/resolve?data={qr_data}' \ --header 'Authorization: Bearer {YOUR_ACCESS_TOKEN_WALLET}'
Em caso de sucesso, a resposta 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" }
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ê deverá garantir que o pedido criado anteriormente no cenário 1 já não esteja disponível. Caso ainda esteja disponível, envie um DELETE ao endpoint de testes indicado abaixo, substituindo as variáveis {point_of_sale_id} e {access_token_seller} pelas informações fornecidas pelo Suporte, conforme necessário.
curlcurl -X DELETE \ 'https://api.mercadopago.com/mpmobile/beta/instore/qr/{point_of_sale_id}' \ -H 'Authorization: Bearer {access_token_seller}'
Tendo confirmado que o pedido do cenário 1 já não está mais disponível, para resolver este QR envie uma solicitação ao endpoint /instore/v2/external/resolveGET, incluindo o Access Token da carteira e o qr_data fornecido pela equipe de Suporte.
curlcurl --location 'https://api.mercadopago.com/instore/v2/beta/external/resolve?data={qr_data}' \ --header 'Authorization: Bearer {YOUR_ACCESS_TOKEN_WALLET}'
Se os dados foram enviados corretamente, a resolução deverá ser semelhante à apresentada abaixo, onde o status do pedido é pending, indicando que ainda não há informações disponíveis.
json{ "retry_delay": 5, "status": "pending" }
Neste cenário, você deverá resolver um código QR inválido a ser escaneado por um usuário comprador de teste.
Para isso, gere o código QR utilizando o qr_data abaixo.
plain00020101021143530016com.mercadolibre0129https://mpago.la/pos/16719292501300091234567895204970053030325802AR5909FULL NAME6010CITY LEGAL6304B244
Para resolver este QR, envie uma solicitação ao endpoint /instore/v2/external/resolveGET, incluindo o Access Token da carteira e o valor de qr_data indicado acima.
curlcurl --location 'https://api.mercadopago.com/instore/v2/beta/external/resolve?data=00020101021143530016com.mercadolibre0129https://mpago.la/pos/16719292501300091234567895204970053030325802AR5909FULL NAME6010CITY LEGAL6304B244' \ --header 'Authorization: Bearer {YOUR_ACCESS_TOKEN_WALLET}'
Se os dados foram enviados corretamente, a resolução deve ser semelhante à apresentada abaixo, onde o status do pedido é unsupported_qr_code, indicando que o código QR é inválido.
json{ "status": "unsupported_qr_code" }
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, gere o código QR utilizando o qr_data abaixo.
plain00020101021143530016com.mercadolibre0129https://mpago.la/pos/16853808501300091234567895204970053030325802AR5909FULL NAME6010CITY LEGAL63049102
Para resolver este QR, envie uma solicitação ao endpoint /instore/v2/external/resolveGET, incluindo o Access Token da carteira e o valor de qr_data indicado acima.
curlcurl --location 'https://api.mercadopago.com/instore/v2/beta/external/resolve?data=00020101021143530016com.mercadolibre0129https://mpago.la/pos/16853808501300091234567895204970053030325802AR5909FULL NAME6010CITY LEGAL63049102' \ --header 'Authorization: Bearer {YOUR_ACCESS_TOKEN_WALLET}'
Se os dados foram enviados corretamente, a resolução deve ser semelhante à apresentada abaixo, onde o status do pedido é unsupported_merchant, indicando que o vendedor não está habilitado para a interoperabilidade devido a algum tipo de restrição.
json{ "status": "unsupported_merchant" }
Este cenário permitirá gerar um erro genérico na resolução de um QR. Para isso, gere o código QR utilizando o qr_data abaixo.
plain00020101021143520016com.mercadolibre0128https://mpago.la/pos/1525865501300091234567895204970053030325802AR5909FULL NAME6010CITY LEGAL630481BA
Para resolver este QR, envie uma solicitação ao endpoint /instore/v2/external/resolveGET, incluindo o Access Token da carteira e o valor de qr_data indicado acima.
curlcurl --location 'https://api.mercadopago.com/instore/v2/beta/external/resolve?data=00020101021143520016com.mercadolibre0128https://mpago.la/pos/1525865501300091234567895204970053030325802AR5909FULL NAME6010CITY LEGAL630481BA' \ --header 'Authorization: Bearer {YOUR_ACCESS_TOKEN_WALLET}'
Se os dados foram enviados corretamente, a resolução deverá ser semelhante à indicada abaixo, onde o status do pedido será error.
json{ "status": "error" }
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 qr_data abaixo.
plain00020101021143530016com.mercadolibre0129https://mpago.la/pos/2602959950150011273265943055204970053030325802AR5917Prueba Perfumeria6004CABA63047720
Para resolver este QR, envie uma solicitação ao endpoint /instore/v2/external/resolveGET, incluindo o Access Token da carteira e o valor de qr_data indicado acima.
curlcurl --location 'https://api.mercadopago.com/instore/v2/beta/external/resolve?data=00020101021143530016com.mercadolibre0129https%3A%2F%2Fmpago.la%2Fpos%2F2602959950150011273265943055204970053030325802AR5917Prueba%20Perfumeria6004CABA63047720' \ --header 'Authorization: Bearer {YOUR_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": "20000000001", "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 } } ] }
coelsa_id dos pagamentos aprovados dentro desses cenários, junto com uma captura de tela do pagamento, para validação e encerramento do processo.