Criar promessa de desconto com cupom pré-adicionado
A promessa de desconto com cupom pré-adicionado representa uma forma simplificada e eficiente de aplicar descontos em transações. Neste sistema, é possível que o vendedor exiba o preço com desconto de determinado produto antes de realizar o pagamento, ou seja, antes do checkout.
A criação da promessa de desconto com cupom pré-adicionado é feita em dois passos:
- Validar o cupom antes da realização do pagamento
- Adicionar o cupom antes de prosseguir para pagamento
Validar cupom antes da realização do pagamento.
Para validar um cupom antes de prosseguir com o pagamento, é importante enviar os dados da campanha na solicitação subsequente. Esta solicitação garante que o cliente possa aproveitar o benefício do desconto antes de finalizar a compra.
Para isso, utilize o curl abaixo e insira os parâmetros de acordo com a tabela descritiva. Esta solicitação verificará a validade do cupom e retornará informações detalhadas sobre o desconto aplicável, se houver.
Parâmetro | Descrição | Tipo | Exemplo |
Authorization | Token de autorização do usuário (Access token). Esta informação pode ser obtida através do menu Suas integrações. | String | APP_USR-123456-test-access-t0ken |
x-payer-token | Este é um token específico do pagador, substitua <PAYER_TOKEN> pelo token correspondente. Esta informação é obtida ao finalizar o fluxo de vinculação de contas | String | payer1-token2-test3-example4 |
id | ID do cupom: Código que identifica e associa sua utilização à uma campanha promocional específica | String | Black_Friday_20 |
curl -X POST \
'https://api.mercadopago.com/v2/wallet_connect/coupons' \
--header 'Authorization: <Bearer YOUR_ACCESS_TOKEN>' \
--header 'x-payer-token: <PAYER_TOKEN>' \
--header 'Content-Type: application/json' \
-d '{
"id": "<COUPON>"
}'
Adicionar cupom antes de prosseguir para pagamento
Quando a validação de um código de cupom é necessária durante o checkout, isto é, antes de efetuar o pagamento, é essencial enviar os dados da campanha na requisição subsequente.
Esta etapa envolve o envio de uma requisição ao sistema para aplicar o desconto do cupom à transação que está prestes a ser finalizada.
Utilize o curl abaixo para realizar a requisição e garanta que os parâmetros estejam preenchidos de acordo com a tabela descritiva a seguir.
Parâmetro | Descrição | Exemplo |
Authorization | Token de autorização do usuário (Access token). Esta informação pode ser obtida através do menu Suas integrações. | APP_USR-123456-test-access-t0ken |
x-payer-token | Este é um token específico do pagador, substitua <PAYER_TOKEN> pelo token correspondente. Esta informação é obtida ao finalizar o fluxo de vinculação de contas. | payer1-token2-test3-example4 |
amount | Valor total da transação | 550.50 |
coupon | Código do cupom a ser aplicado. É o código que o usuário insere e que faz referência à campanha de desconto. | desconto20off |
curl -X POST \
'https://api.mercadopago.com/v2/wallet_connect/discounts' \
--header 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \
--header 'x-payer-token: <PAYER_TOKEN>' \
--header 'Content-Type: application/json' \
-d '{
"amount": 550,
"coupon": "<COUPON>"
}'
Ao adicionar o cupom antes de prosseguir para o pagamento, é possível que diferentes respostas sejam recebidas (sucesso/erro). Veja abaixo o detalhamento de cada uma delas.
Sucesso
- Resposta de sucesso ao adicionar cupom
Código de status: nenhum código é devolvido nesta solicitação.
Descrição: a resposta traz a informação referente à moeda, valor do desconto, termos legais, entre outros, o que atesta o sucesso da transação.
Corpo da resposta:
{ "transaction_amount": 550.0, "currency_id": "ARS", "discount": { "amount": 55.0, "detail": { "value": 10.0, "type": "percent", "cap": 1000.0 }, "legal_terms":"https://mp.com/legal" } }
Erro
- Desconto inexistente para usuário
- Código de status: nenhum código é retornado.
- Descrição: Este erro retorna para informar que não existe um desconto disponível para o usuário.
- Corpo da resposta:
Json
{
"transaction_amount": 550.0,
"currency_id": "ARS",
"discount": {}
}
- Transaction_amount deve ser maior que 0
Código de status: 400 (Bad Request).
Descrição: Este erro retorna quando o campo `transaction_amount_ é preenchido com valor 0. Neste caso, é necessário inserir um valor que seja superior a 0 e realizar uma nova requisição.
Corpo da resposta:
{ "error": "bad_request", "message": "transaction_amount must be greater than 0", "status": 400 }
- Transaction_amount não pode estar vazio
Código de status: 400 (Bad Request).
Descrição: Este erro retorna quando o campo `transaction_amount_ é deixado em branco. Neste caso, é necessário inserir um valor que seja superior a 0 e realizar uma nova requisição.
Corpo da resposta:
{ "error": "bad_request", "message": "transaction_amount must not be null.", "status": 400 }