Documentação oficial

Integre seu site ao
gateway ExaltaPay

Crie pagamentos PIX, exiba copia e cola, redirecione para o checkout hospedado
e acompanhe as cobranças pelo painel.

Fluxo

Como a integração funciona

1
Chaves da API

O lojista cria uma chave em API no
painel ExaltaPay.

2
Criação do PIX

O site envia valor, descrição e dados
do pagador para o endpoint de
pagamentos.

3
Pagamento

A API retorna referência, checkout
hospedado e Pix copia e cola.

Autenticação

Headers obrigatórios

Todas as chamadas privadas usam as chaves criadas no painel em API > Nova chave.

Content-Type: application/json
X-Public-Key: pk_test_xxxxxxxxx
X-Secret-Key: variavel de ambiente do backend
Idempotency-Key: pedido-1001-pix-1
Pagamentos

Criar pagamento PIX

POSThttps://morenintop.shop/api/v1/payments
Envie Idempotency-Key em toda criação. A mesma chave e o mesmo payload devolvem a resposta original sem gerar outro PIX.
CampoObrigatorioDescricao
methodSimUse pix.
amountSimValor em BRL. Minimo operacional atual: R$ 3,00.
external_referenceSimIdentificador unico do pedido na loja.
success_urlNaoURL HTTPS após aprovação.
cancel_urlNaoURL HTTPS para cancelamento.
descriptionNaoDescricao do pedido.
payer.nameSimNome do pagador.
payer.emailSimE-mail do pagador.
payer.documentSimCPF ou CNPJ.
payer.phoneSimTelefone com DDD.
{
  "method": "pix",
  "amount": "49.90",
  "external_reference": "pedido-1001",
  "description": "Pedido #1001",
  "payer": {
    "name": "Maria Silva",
    "email": "maria@email.com",
    "document": "52998224725",
    "phone": "11987654321"
  }
}
Resposta

Dados retornados

{
  "sucesso": true,
  "mensagem": "Pagamento criado com sucesso.",
  "pagamento": {
    "referencia": "PIX-123456",
    "external_reference": "pedido-1001",
    "ambiente": "test",
    "status": "pending",
    "valor_bruto": 49.9,
    "taxa": 1.5,
    "valor_liquido": 48.4,
    "checkout_url": "https://morenintop.shop/checkout?token=chk_7db91e4c...",
    "pix": {
      "copia_e_cola": "EXALTA_PAY_SANDBOX_PIX-123456_..."
    }
  }
}
Use pix.copia_e_cola para gerar o QR Code no seu site ou envie o cliente para checkout_url.
Exemplos

cURL

curl -X POST "https://morenintop.shop/api/v1/payments" \
  -H "Content-Type: application/json" \
  -H "X-Public-Key: pk_test_xxxxxxxxx" \
  -H "X-Secret-Key: $EXALTA_SECRET_KEY" \
  -H "Idempotency-Key: pedido-1001-pix-1" \
  -d '{
    "method": "pix",
    "amount": "49.90",
    "external_reference": "pedido-1001",
    "description": "Pedido #1001",
    "payer": {
      "name": "Maria Silva",
      "email": "maria@email.com",
      "document": "52998224725",
      "phone": "11987654321"
    }
  }'

JavaScript no backend (Node.js)

Nunca coloque a secret key no navegador. O frontend deve chamar o backend da sua loja.
const response = await fetch("https://morenintop.shop/api/v1/payments", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "X-Public-Key": process.env.EXALTA_PUBLIC_KEY,
    "X-Secret-Key": process.env.EXALTA_SECRET_KEY,
    "Idempotency-Key": "pedido-1001-pix-1"
  },
  body: JSON.stringify({
    method: "pix",
    amount: "49.90",
    external_reference: "pedido-1001",
    description: "Pedido #1001",
    payer: {
      name: "Maria Silva",
      email: "maria@email.com",
      document: "52998224725",
      phone: "11987654321"
    }
  })
});

const data = await response.json();

if (!data.sucesso) {
  throw new Error(data.mensagem || "Erro ao criar PIX");
}

console.log(data.pix.copia_e_cola);

Consultar status pela referencia

GEThttps://morenintop.shop/api/v1/payments?reference=PIX-615312

Use as mesmas chaves nos headers para consultar status, valores, origem e datas da cobranca.

Webhooks

Cadastrar URL de notificacao

POSThttps://morenintop.shop/api/v1/webhooks
{
  "url": "https://loja.com/webhooks/exalta-pay",
  "events": ["pagamento.aprovado"]
}

A entrega fica ativa imediatamente para cobrancas criadas pela API e pelo painel. Guarde o secret retornado no cadastro e responda HTTP 2xx.

Payload de pagamento aprovado

{
  "id": "evt_f4e159c5f8db7f4d6c6628ae",
  "event": "pagamento.aprovado",
  "created_at": "2026-07-26T15:42:18-03:00",
  "data": {
    "reference": "PIX-615312",
    "external_reference": "pedido-1001",
    "environment": "live",
    "status": "approved",
    "method": "pix",
    "amount": 49.90,
    "fee": 0,
    "net_amount": 49.90,
    "currency": "BRL",
    "description": "Pedido #1001",
    "origin": "api",
    "checkout_url": "https://morenintop.shop/checkout?token=chk_7db91e4c...",
    "acquirer_reference": "abc123",
    "updated_at": "2026-07-26T15:42:18-03:00",
    "payer": {
      "name": "Maria Silva",
      "email": "maria@email.com",
      "document": "52998224725",
      "phone": "11987654321"
    }
  }
}

Validar assinatura HMAC

Calcule HMAC-SHA256(timestamp + "." + corpo_json_bruto, secret) e compare com X-Exalta-Signature no formato sha256=<hash>. O timestamp esta em X-Exalta-Timestamp.

$raw = file_get_contents('php://input');
$timestamp = $_SERVER['HTTP_X_EXALTA_TIMESTAMP'] ?? '';
$received = $_SERVER['HTTP_X_EXALTA_SIGNATURE'] ?? '';
$expected = 'sha256=' . hash_hmac(
  'sha256',
  $timestamp . '.' . $raw,
  $webhookSecret
);

if (!hash_equals($expected, $received)) {
  http_response_code(401);
  exit;
}

http_response_code(204);

Falhas sao retentadas de forma progressiva. Nao ha IP fixo garantido; valide sempre a assinatura HMAC.

Reenviar uma cobranca existente

{
  "reference": "PIX-615312"
}

Envie esse JSON para POST https://morenintop.shop/api/v1/webhooks. Um novo evento e criado sem creditar o saldo novamente.

Tratamento

Erros comuns

HTTPMensagemComo corrigir
401Informe X-Public-Key e X-Secret-Key.Envie as duas chaves nos headers.
422Envie um JSON valido.Confira o formato do corpo da requisicao.
422Para gerar PIX, informe nome, e-mail, CPF/CNPJ e telefone do pagador.Envie todos os dados de payer.
422O PIX automatico aceita valores a partir de R$ 3,00.Use valor igual ou maior que R$ 3,00.
Producao

Antes de publicar sua integracao

Confirme se sua conta esta aprovada, se a chave da API esta ativa e se o checkout consegue receber os dados completos do pagador.

ContaConta aprovada no painel ExaltaPay.
APIChaves ativas em ambiente de producao.
PagadorNome, e-mail, CPF/CNPJ e telefone enviados na criacao do PIX.
PedidoReferencia salva no sistema da loja para conciliacao.
PagamentoExibir Pix copia e cola ou redirecionar para o checkout hospedado.