Mantenha as credenciais no Postman
Use somente dados de homologação. Configure a autenticação no Postman e cole nesta página apenas a chave pública. O Postman faz as chamadas que, em uma integração real, ficam no seu backend.
Quem faz o quê?
O navegador prepara os dados. O Postman envia as requisições. A API devolve o resultado do pagamento.
Preparar a biblioteca
Obtenha a chave pública pelo Postman. Depois, use essa chave para preparar a biblioteca nesta página.
A chave pública permite criptografar o número do cartão no navegador. Para obtê-la:
- Importe no Postman a coleção incluída na pasta
postman. - Execute
POST /api/auth/tokencom as credenciais de homologação. - Configure a autorização das próximas requisições no Postman. Não compartilhe o valor da credencial.
- Execute
GET /v1/cards/public-key. - Copie o campo
keyda resposta para Chave pública RSA, abaixo.
Base de homologação: https://api-hmg.sopague.com.br/gateway.
Ver o código desta etapa
// Postman: autenticar e obter GET /v1/cards/public-key.
// Navegador: configurar SOMENTE a chave pública.
Sopague.setEncryptPublicKey(toPem(key));
const antiFraudId = crypto.randomUUID();
Sopague.initAntiFraud(antiFraudId);
// Como na POC original, enviar o UUID sem o prefixo interno da biblioteca.
const codeAntiFraud = antiFraudId;
Proteger o cartão e preparar a compra
Preencha os dados da compra. Ao clicar em Proteger e preparar dados, a biblioteca criptografa o número do cartão e monta o JSON.
O cartão criptografado tem validade de cinco minutos. Prepare os dados quando estiver pronto para enviar pelo Postman. Não armazene o conteúdo criptografado. Se o prazo terminar, gere um novo JSON antes de enviar.
Dados do cliente
Preencha com os dados de homologação usados no seu teste. Os campos começam vazios. Telefone e celular são opcionais nesta POC.
Dados de Rede
Ver o código desta etapa
const encryptedCard = await Sopague.encryptCard(cardNumber);
// cardInfo.encryptedCard recebe o resultado da criptografia.
// sellerInfo.codeAntiFraud recebe o mesmo UUID da preparação.
// payment: credit; installments recebe o número de parcelas.
// productType: avista para 1 parcela; lojista para mais de 1.
// amount continua sendo o valor total da compra em centavos.
// Não há code3DS, urlSite3DS ou deviceInfo neste fluxo.
Criar o pagamento
O JSON abaixo é o corpo da requisição, também chamado de payload. Copie esse conteúdo para enviar pelo Postman.
- Clique em Copiar payload, abaixo.
- No Postman, abra a requisição 03 — Criar pagamento.
- Confira o endereço:
POST https://api-hmg.sopague.com.br/gateway/v1/payments. - Confira a autorização configurada no Postman.
- Em
Body → raw → JSON, substitua todo o corpo pelo conteúdo copiado. - Envie a requisição antes de completar cinco minutos da geração do JSON.
A prévia abaixo oculta o cartão criptografado e o código de segurança (CVV). O botão copia o JSON completo, com esses campos. O número do cartão sem criptografia não faz parte do corpo.
Não salve a requisição com os dados preenchidos. Esta página prepara o JSON, mas o envio do pagamento acontece no Postman.
Conclua as etapas 1 e 2 para visualizar o corpo da requisição.
Ver o exemplo de envio pelo Postman
// O Postman representa o backend nesta demonstração.
// POST {{gatewayUrl}}/v1/payments
// Content-Type: application/json
// Configure a autorização somente no Postman.
// Cole o corpo gerado em Body > raw > JSON.
// Em produção, seu backend deve controlar valor, pedido e IP.
Interpretar a resposta
Depois de enviar o pagamento, copie do Postman o status HTTP e o corpo da resposta. A página usa esses dados para explicar o resultado.
Um HTTP 200, sozinho, não confirma a aprovação. Esta POC também verifica se returnCode é 0 e se paymentId está preenchido.
Se a requisição terminar por timeout ou retornar erro 5xx, consulte a transação antes de tentar cobrar novamente.
Pagamento aprovado
A resposta que você colou contém returnCode 0 e paymentId preenchido. A página interpreta esse conteúdo, mas não consulta a transação. Para confirmar o estado atual, consulte a API.
Os dados preenchidos e a resposta continuam nesta página após a interpretação, mesmo quando o prazo de envio termina. Para começar outro teste e limpar os campos, use o botão abaixo. Recarregar a página também descarta os dados.