AQpay Pagamentos para Medusa v2: página de pagamento AQpay (Pix, boleto e cartão com 3D Secure) ou checkout próprio na vitrine.
Provedor de pagamento AQpay para lojas Medusa v2: Pix, boleto e cartão de crédito (3D Secure obrigatório, na página segura AQpay — os dados do cartão nunca passam pela loja). Moeda obrigatória: BRL. Uma chave AQpay por loja.
Versão 1.1.0 — homologação em loja ainda pendente. Faça os primeiros testes com valores baixos: a chave de produção gera cobranças reais.
Uma loja Medusa tem duas partes separadas:
| Parte | O que é | O que a AQpay instala |
|---|---|---|
| Servidor (backend) | Pedidos, carrinho, pagamentos | Este módulo (sempre obrigatório) |
| Vitrine (storefront) | O site que o comprador vê — pode ser feito em qualquer tecnologia | Depende da opção escolhida abaixo |
O Medusa não permite que um módulo do servidor altere as telas da vitrine. Por isso você escolhe como o comprador vai pagar:
| Opção A — Página de pagamento AQpay | Opção B — Checkout dentro da loja | |
|---|---|---|
| Onde o comprador paga | Na página segura da AQpay () | Na própria página da loja |
| O que muda na vitrine | Só um botão "Pagar com AQpay" | Um componente React com Pix, boleto e cartão |
| Funciona com | Qualquer vitrine (React, Vue, Next, app de celular…) | Vitrines React (ex.: starters oficiais Medusa) |
| Precisa de programador | Pouco (um botão) | Sim, para encaixar o componente |
| Recomendado para | A maioria das lojas | Quem quer o comprador sem sair do site |
As duas opções usam o mesmo módulo do servidor e as mesmas regras de segurança: o pedido só é criado depois que o servidor da loja reconsulta a AQpay e confirma o pagamento com o mesmo valor e a mesma referência. Nenhuma cobrança é repetida automaticamente.
No :
| Variável | Obrigatória | Exemplo / padrão |
|---|---|---|
| Sim | ||
| Não | ||
| Não | (1 a 21) | |
| Não | (juros do parcelamento para o comprador) | |
| Não | (1 a 30) | |
| Não | (3 a 60) | |
| Opção A | (URL pública deste servidor) | |
| Opção A | ||
| Opção A |
No Medusa Cloud: projeto → Environment Variables, marque Build e Runtime e faça um Redeploy.
Admin da loja → Configurações → Regiões → Brasil (BRL) → Provedores de pagamento → adicione AQpay ().
Como funciona para o comprador
1. Configure , e (Passo 3). Os campos , e são preenchidos automaticamente.
2. Na vitrine, adicione o botão. Quando o comprador escolher AQpay, a vitrine cria a sessão de pagamento normalmente () e chama:
Resposta: — envie o comprador para esse endereço.
Em React, use o pacote pronto ():
Em qualquer outra tecnologia, basta o acima e .
3. Retorno. A página AQpay devolve o comprador para . Esse endereço do módulo:
Na página AQpay o comprador pode trocar de forma de pagamento só se a anterior falhar; com um pagamento em andamento, não é possível gerar outro.
Como funciona para o comprador
1. Instale o pacote da vitrine
2. Use o componente no passo de pagamento
O componente valida o CPF/CNPJ, cria uma única cobrança por sessão, mostra o Pix copia e cola, o boleto (linha digitável e PDF) ou abre a página segura do cartão com 3D Secure, e chama quando o servidor confirmar o pagamento.
Rotas do servidor usadas (para quem não usa React)
O telefone, nome, e-mail e endereço vêm do endereço de cobrança do carrinho.
Sem recorrência, Apple Pay, captura manual, estorno ou cancelamento automáticos e sem webhook. Pagamento confirmado com carrinho não finalizado exige conciliação pelo suporte.
O pacote segue o layout oficial de plugins do Medusa ( → , ). (escopo @aqpay; roda o build). As palavras-chave e fazem o plugin aparecer na documentação do Medusa.
1npm install @aqpay/medusa-payment2# ou, em projetos pnpm (ex.: modern-dtc-starter):3pnpm add @aqpay/medusa-payment --filter backend1plugins: [{ resolve: "@aqpay/medusa-payment", options: {} }],2modules: [{3 resolve: "@medusajs/medusa/payment",4 options: { providers: [{5 resolve: "@aqpay/medusa-payment/providers/aqpay",6 id: "aqpay",7 options: { apiKey: process.env.AQPAY_API_KEY },8 }] },9}],1Loja: "Pagar com AQpay" → Página AQpay: escolhe Pix, boleto ou cartão → paga2 → volta para a loja → servidor confere na AQpay → pedido confirmado1POST {BACKEND}/store/aqpay/payment-sessions/{payment_session_id}/checkout2x-publishable-api-key: {sua chave pública Medusa}3content-type: application/json4
5{ "cart_id": "cart_..." }1import { AQpayHostedButton } from "@aqpay/medusa-react"2
3<AQpayHostedButton4 backendUrl={import.meta.env.VITE_MEDUSA_BACKEND_URL}5 publishableKey={import.meta.env.VITE_MEDUSA_PUBLISHABLE_KEY}6 cartId={cart.id}7 paymentSessionId={cart.payment_collection.payment_sessions[0].id}8/>1Loja: escolhe Pix, boleto ou cartão + CPF/CNPJ → a loja mostra o QR Code, a linha digitável2 ou abre a página segura do cartão → a loja confere a cada poucos segundos → pedido confirmadonpm install @aqpay/medusa-react1import { AQpayCheckout } from "@aqpay/medusa-react"2
3<AQpayCheckout4 backendUrl={import.meta.env.VITE_MEDUSA_BACKEND_URL}5 publishableKey={import.meta.env.VITE_MEDUSA_PUBLISHABLE_KEY}6 cartId={cart.id}7 paymentSessionId={cart.payment_collection.payment_sessions[0].id}8 methods={["pix", "boleto", "card"]}9 number={endereco.numero} district={endereco.bairro} state={cart.shipping_address.province}10 onPaid={async () => {11 const order = await completarCarrinho(cart.id) // POST /store/carts/{id}/complete12 navegarPara(`/br/order/${order.id}/confirmed`)13 }}14/>