Receive payments on your Medusa commerce application using Mercadopago Transparent Checkout.
Note: We will soon release the Medusa 2.0 compatible version
- Authorize payments with Credit Card using Transparent Checkout.
- Authorize payments with PIX (Brazilian) using Transparent Checkout.
- Support Webhooks
- Webhook security validation
1. Run the following command in the directory of the Medusa backend:
#Using npm
npm install @marcosgn/medusa-payment-mercadopago
#Using yarn
yarn add @marcosgn/medusa-payment-mercadopago
2. Set the following environment variables in .env
:
MERCADOPAGO_ACCESS_TOKEN=APP_USR...
MERCADOPAGO_WEBHOOK_URL=https://<your-domain>/webhooks/mercadopago
# Optional, but recommended in production
MERCADOPAGO_WEBHOOK_SECRET=5573326353c523ebbc84af5ad376b860ad5225339d05535c804974b2393d0f30
Generate your token here: Mercadopago developers
3. In medusa-config.js
add the following at the end of the plugins
array:
const plugins = [
// ...
{
resolve: `@marcosgn/medusa-payment-mercadopago`,
options: {
accessToken: process.env.MERCADOPAGO_ACCESS_TOKEN,
webhookSecret: process.env.MERCADOPAGO_WEBHOOK_SECRET,
webhookUrl: process.env.MERCADOPAGO_WEBHOOK_URL,
},
},
];
1. Run the following command in the directory of the Medusa backend to run the backend:
#Using npm
npm run dev
#Using
yarn dev
2. Enable Mercadopago Credit Card or/and Pix in a region in the admin panel. You can refer to this User Guide to learn how to do that. Alternatively, you can use the Admin APIs.
3. Place an order using a storefront or the Store APIs. You should be able to use Mercadopago as a payment method.
Transparent checkout documentation for storefront Mercadopago Docs
const client = useMedusaClient();
//Set provider
await client.carts.setPaymentSession(cartId, {
provider_id: "mercadopago-creditcard",
});
//Update required props in payment session
await client.carts.updatePaymentSession(cartId, paymentProviderId, {
data: {
token: "...", //Credit Card Token
installment: "1",
cpfCnpj: "000000000000",
holderName: "John Doe",
identificationType: "CPF",
issuerId: "...",
paymentMethodId: "master",
},
});
//Complete and capture payment
const response = await client.carts.complete(cartId);
const client = useMedusaClient();
await client.carts.setPaymentSession(cartId, {
provider_id: "mercadopago-pix",
});
//Complete and recive PIX Qrcode
const response = await client.carts.complete(cartId);
//Copy and Paste Code
const copyPasteCode = response.data.payment_session.data.qrCode;
//QRCode image in base64 format
const base64Image = response.data.payment_session.data.qrCodeBase64;