HeroPay

API de pagamento que integra em minutos, não em semanas

API de pagamento REST com Pix e boleto a R$ 0, sandbox grátis sem homologação, webhooks assinados e llms.txt. Primeiro link em 5 minutos.

Pix, na hora
R$ 0
boleto
R$ 0
cartão em até 12x
3,49%
de mensalidade
R$ 0

A HeroPay é uma API de pagamento REST para o Brasil: você cria um link de pagamento com Pix, cartão em até 12x e boleto com uma chamada POST /payment_links, recebe a confirmação por webhook assinado e consulta saldo, saques, estornos e relatórios pelos mesmos endpoints. Autenticação por Bearer JWT, sandbox gratuito idêntico à produção, referência OpenAPI pública e exemplos em 18 linguagens. Pix e boleto custam R$ 0 por transação.

Resumo

O essencial em 60 segundos

  • A HeroPay é uma API de pagamentos REST com JSON, base https://api.heropay.tech em produção e https://api.beta.heropay.tech no sandbox.
  • Toda requisição leva dois headers: Authorization: Bearer <seu-jwt> e Accept: application/vnd.herospark.com; version=1.
  • Uma chamada POST /payment_links devolve uma URL de checkout pronta com Pix, cartão (até 12x) e boleto, avulsa ou recorrente.
  • Pix R$ 0 e boleto R$ 0 por transação; cartão 3,49% por transação aprovada. Sem mensalidade, sem ativação, sem mínimo, sem tarifa de saque (ver preços).
  • O sandbox é gratuito, não tem fila de homologação e roda o mesmo contrato da produção: para ir ao ar você troca a chave.
  • Webhooks assinados com HMAC e retentativa automática avisam pagamento confirmado, Pix gerado, boleto emitido, recusa, estorno, chargeback e ciclo de assinatura.
  • Integração por IA: cole heropay.tech/llms.txt no Claude, ChatGPT, Cursor, Lovable e outros e a ferramenta escreve a integração a partir da documentação aberta. O MCP server oficial está em desenvolvimento.

Como integrar uma API de pagamento em 5 minutos?

Três passos: pegue a chave, crie o link, escute o webhook. Nada de contrato, nada de homologação.

1. Pegue sua chave no sandbox

Crie a conta em app.heropay.tech, abra a seção de API nas configurações e copie o token JWT. Guarde em variável de ambiente, nunca no front-end:

export HEROPAY_API_URL="https://api.beta.heropay.tech"   # sandbox
export HEROPAY_JWT_TOKEN="seu-jwt-do-sandbox"
curl -X POST "$HEROPAY_API_URL/payment_links" \
  -H "Authorization: Bearer $HEROPAY_JWT_TOKEN" \
  -H "Accept: application/vnd.herospark.com; version=1" \
  -H "Content-Type: application/json" \
  -d '{
    "payment_link": {
      "name": "Plano Pro",
      "description": "Acesso ao Plano Pro",
      "price_cents": 9700,
      "absorbs_fees": true,
      "max_installments": 12,
      "payment_methods": ["pix", "credit_card", "bank_slip"],
      "src": "lancamento-setembro"
    }
  }'

Resposta 201 Created:

{
  "message": "Payment link created successfully",
  "data": {
    "id": 136,
    "name": "Plano Pro",
    "description": "Acesso ao Plano Pro",
    "price_cents": 9700,
    "absorbs_fees": true,
    "max_installments": 12,
    "period": "unitary",
    "frequency_type": "unlimited",
    "frequency_limit": null,
    "overdue_type": "none",
    "overdue_limit": null,
    "public_id": "fc280e25-7cbd-446f-b34f-5b8824bb5124",
    "offer": {
      "id": 6094,
      "kind": "payment_link",
      "url": "https://pay.beta.herospark.com/fc280e25-7cbd-446f-b34f-5b8824bb5124-6094?src=lancamento-setembro",
      "accepted_payment_methods": ["pix", "credit_card", "bank_slip"]
    },
    "created_at": "2026-09-23T10:07:01.929-03:00",
    "updated_at": "2026-09-23T10:07:01.929-03:00"
  }
}

O campo data.offer.url é o checkout. Mande por WhatsApp, redirecione do seu app ou coloque no botão da landing. Valores sempre em centavos (9700 = R$ 97,00).

3. Escute o webhook e libere o acesso

curl -X POST "$HEROPAY_API_URL/webhook" \
  -H "Authorization: Bearer $HEROPAY_JWT_TOKEN" \
  -H "Accept: application/vnd.herospark.com; version=1" \
  -H "Content-Type: application/json" \
  -d '{
    "webhook": {
      "trigger": "spark_payment_confirmed",
      "webhook_url": "https://seuapp.com/webhooks/heropay",
      "request_method": "post"
    }
  }'

Quando o comprador paga, sua URL recebe o evento spark_payment_confirmed. Confie no evento, não no polling. Pronto: você tem cobrança, checkout e confirmação. O mesmo código roda em produção trocando a chave.

Mapa de funções da API

A API v1 da HeroPay tem mais de 70 endpoints organizados nos grupos abaixo. Cada grupo tem página própria na referência da API.

O que faz: cria, lista, consulta e exclui links de checkout com Pix, cartão e boleto, em pagamento único ou recorrente. Aceita parcelamento de 1 a 12x (parcela mínima de R$ 1,99), valor mínimo de R$ 5,00, vendas internacionais multi-moeda (enable_international_sales, só em link avulso) e rastreamento de origem (src) que volta em cart.src em todo webhook. Endpoint principal: POST /payment_links · também GET /payment_links (paginado com page e items), GET /payment_links/{id}, DELETE /payment_links/{id}. Caso de uso: o SaaS gera um link por plano, o infoprodutor gera um link por campanha com src=instagram e sabe de onde veio cada venda. Docs: Links de pagamento · Criar link · Pagamento internacional · Página do produto: /link-de-pagamento

Assinaturas e pagamentos recorrentes

O que faz: transforma o link em assinatura ao enviar period (monthly, quarterly, semiannual, annual), com renovação ilimitada (frequency_type: unlimited) ou por número de ciclos (limited + frequency_limit). A cobrança de cada ciclo e o reprocessamento de falhas são automáticos; o cancelamento é por API. Endpoint principal: POST /payment_links com period · POST /recurring_payment/cancel (com recurring_payment_id) · GET /sales/recurring. Caso de uso: micro-SaaS com plano mensal e anual; mentoria de 12 meses que encerra sozinha no último ciclo. Docs: Modelos de pagamento · Pagamentos recorrentes · Página do produto: /assinaturas

Checkout

O que faz: todo link de pagamento abre o checkout HeroPay hospedado, com Pix, cartão em até 12x, boleto, Apple Pay e Google Pay, compra 1-click, 2 cartões e Parcelamento Inteligente. Você não mantém formulário de cartão nem escopo de PCI no seu front. Endpoint principal: a URL em data.offer.url do POST /payment_links. Caso de uso: colocar cobrança num app feito no Lovable sem construir tela de pagamento. Docs: Links de pagamento · Página do produto: /checkout

Pix (conta e chave)

O que faz: cadastra e lista as chaves Pix de recebimento (e-mail, telefone, CPF/CNPJ ou aleatória) e define a chave padrão para saques. Toda chave precisa pertencer ao mesmo CPF/CNPJ do titular da conta. A cobrança Pix para o comprador nasce do link de pagamento (payment_methods: ["pix"]), com QR Code e copia e cola no checkout, à vista ou com parcelamento via Pix. Endpoint principal: POST /financial/pix_accounts · GET /financial/pix_accounts · POST /financial/pix_accounts/{id}/set_as_default. Caso de uso: onboarding de um vendedor que cadastra a chave Pix no seu painel e já sai sacando. Docs: Chave Pix · API Pix · Página do produto: /pix

Lista de vendas e transações

O que faz: busca vendas avulsas e recorrentes com filtros e lista transações por status (paga, pendente, recusada, cancelada). Separa compra (a intenção do cliente) de transação (cada tentativa de cobrança), o que evita contar venda em dobro. Endpoint principal: GET /sales/unitary · GET /sales/recurring · GET /transactions/by_status. Caso de uso: conciliar as vendas do dia com seu banco de dados; mostrar histórico de cobranças de um assinante. Docs: Transações vs compras · Lista de vendas

Saldo

O que faz: devolve saldo disponível e a receber (em centavos e formatado), valor disponível para saque, valor antecipável e se a conta permite antecipação. Endpoint principal: GET /financial/balance. Caso de uso: exibir "você tem R$ X para sacar" dentro do seu produto. Docs: Saldo

Saques

O que faz: solicita saque do saldo disponível para uma chave Pix cadastrada e lista o histórico de saques. Endpoint principal: POST /financial/withdrawals (com amount_cents e pix_account_id) · GET /financial/withdrawals. Caso de uso: marketplace ou plataforma que automatiza o repasse semanal do vendedor. Docs: Saques e antecipação · API de saques · Página do produto: /saques-e-antecipacao

Simulação de antecipação

O que faz: simula quanto das vendas no cartão pode ser antecipado e com qual tarifa, antes de você pedir o dinheiro. A resposta traz o valor máximo antecipável e as taxas aplicadas naquela operação. Endpoint principal: GET /financial/anticipation_simulation (com amount_cents). Caso de uso: mostrar ao vendedor o custo exato de antecipar antes de ele confirmar. Docs: Simulação de antecipação

Estorno

O que faz: solicita o estorno de um pagamento pelo ID e devolve valores, taxas, data limite e status do estorno. Endpoint principal: POST /refund (com refund.payment_id). Caso de uso: botão "reembolsar" no seu painel de suporte, sem abrir outro sistema. Docs: Estorno de pagamento

Webhooks

O que faz: cadastra, lista, ativa, desativa e remove webhooks por gatilho. Cada evento chega como POST JSON assinado com HMAC e com retentativa automática se seu endpoint falhar. São 9 gatilhos: spark_payment_confirmed, spark_payment_boleto_created, payment_pix_created, payment_credit_cart_refused, refunded, chargeback_request, subscription_activate, subscription_update e subscription_cancel. Endpoint principal: POST /webhook · GET /webhook · PUT /webhook/{id}/enable · PUT /webhook/{id}/disable · DELETE /webhook/{id}. Caso de uso: liberar acesso quando o pagamento confirma, suspender quando a assinatura cancela, alertar o time em chargeback. Docs: Webhooks · API de webhooks · Página do produto: /webhooks

Relatórios de transações

O que faz: 30 endpoints prontos de analytics financeiro, sem você montar ETL.

  • Pagas (/reports/transaction/paid/*): receita bruta, receita líquida, líquida mensal, líquido após taxas, contagem de transações, transações por método, distribuição por método de pagamento, último pagamento, receita por oferta, mais vendidos, recibo fiscal e relatório completo.
  • Pendentes (/reports/transaction/pending/*): valor total pendente, pendentes por oferta, transações expirando e relatório completo.
  • Reembolsadas (/reports/transaction/refunded/*): valor de estornos e chargebacks, estornos mensais, taxas de chargeback, taxas não reembolsáveis, último estorno, contagem por status, ofertas e produtos mais reembolsados e relatório completo.
  • Resumos (/reports/transaction/summary/*): pagas, abertas, reembolsadas, reembolsadas e chargebacks.
  • Jornada e funil de conversão: GET /reports/transaction/journey.

Endpoint principal: GET /reports/transaction/paid/net_value. Caso de uso: dashboard de receita líquida no seu admin; boletos prestes a vencer para disparar lembrete. Docs: Relatórios de transações

Relatórios de compras

O que faz: 23 endpoints de análise de negócio.

  • Recorrência e assinaturas (/reports/purchase/subscriptions/*): receita bruta, líquida e após taxas, receita por oferta, contagem por status, vendas mensais, última venda, mais vendidos e relatório completo.
  • Estratégia de vendas (/reports/purchase/sales_strategy/*): receita bruta, líquida e após taxas, últimas vendas, contagem mensal, contagem por modalidade, receita por oferta, mais vendidos e relatório completo.
  • Recusadas com motivo (/reports/purchase/refused/*): vendas recusadas e contagem de motivos de recusa.
  • Resumos (/reports/purchase/summary): geral, de assinaturas e de estratégia de vendas.

Endpoint principal: GET /reports/purchase/refused/reasons_count. Caso de uso: descobrir que a maior causa de recusa é limite e ligar o parcelamento; medir churn de assinatura por mês. Docs: Relatórios de compras

Carrinhos abandonados

O que faz: lista, por período, os checkouts em que o comprador preencheu os dados de contato e não pagou. Cada acesso ao link cria um carrinho; uma mesma sessão pode ter várias tentativas. Endpoint principal: GET /reports/tracking/abandoned_carts (com start_date e end_date). Caso de uso: puxar os abandonos da última hora e disparar recuperação pelo seu CRM. Docs: Carrinhos · Obter carrinhos abandonados

O que a API v1 ainda não tem

Honestidade de dev para dev: split de pagamento não tem endpoint público na v1 (veja o status em /split); não há endpoint para criar uma cobrança Pix avulsa fora do link de pagamento (o Pix sempre sai pelo checkout); e não há header Idempotency-Key. Quando isso mudar, vai estar no changelog da documentação.

Sandbox e produção: o que muda?

Só a chave. O sandbox roda o mesmo contrato, os mesmos endpoints e os mesmos webhooks da produção, é gratuito e não passa por homologação.

SandboxProdução
URL basehttps://api.beta.heropay.techhttps://api.heropay.tech
ChaveJWT da conta sandboxJWT da conta de produção
Dinheiro realNãoSim
HomologaçãoNão precisaNão precisa
CustoR$ 0Pix R$ 0 · boleto R$ 0 · cartão 3,49% (preços)

Deixe a URL base e o token em variáveis de ambiente. Deploy em produção vira troca de duas variáveis, não um projeto.

Como funciona a autenticação da API?

Bearer JWT em todas as requisições. O token é gerado no painel app.heropay.tech, é escopado à sua conta (não enxerga dados de outra), não expira e pode ser regenerado a qualquer momento se vazar.

POST /payment_links HTTP/1.1
Host: api.heropay.tech
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Accept: application/vnd.herospark.com; version=1
Content-Type: application/json

Token ausente ou inválido responde 401 Unauthorized. Regra de ouro: o token vive no servidor. Nunca em código de cliente, app mobile ou repositório público.

Como funciona o versionamento?

Pelo header Accept: application/vnd.herospark.com; version=1. A versão atual é a 1, estável e recomendada. Se você não mandar o header, a API usa a versão mais recente disponível, o que é ótimo para testar e perigoso em produção: fixe version=1 e sua integração não muda sozinha. Quando sair uma versão nova, ela vem com documentação das mudanças, guia de migração e período de transição. Detalhes em Versionamento.

Como funcionam os webhooks assinados?

Você cadastra uma URL pública por gatilho com POST /webhook. A cada evento, a HeroPay envia um POST JSON com assinatura HMAC do corpo; você recalcula com o segredo do webhook e descarta o que não bater. Se seu endpoint não responder 2xx, o envio é retentado automaticamente.

A assinatura vem no header X-HeroPay-Signature: um HMAC SHA-256 do corpo bruto da requisição, calculado com o segredo do seu webhook. O exemplo compara a assinatura recebida com o HMAC em hexadecimal e em base64, para o seu código não depender da codificação; detalhes em webhooks.

import crypto from "node:crypto";

// Express com body cru (express.raw({ type: "application/json" }))
app.post("/webhooks/heropay", (req, res) => {
  const recebida = req.get("X-HeroPay-Signature") || "";
  const mac = crypto
    .createHmac("sha256", process.env.HEROPAY_WEBHOOK_SECRET)
    .update(req.body)
    .digest();

  // aceita hexadecimal ou base64; comparação em tempo constante
  const valida = [mac.toString("hex"), mac.toString("base64")].some(
    (esperada) =>
      recebida.length === esperada.length &&
      crypto.timingSafeEqual(Buffer.from(recebida), Buffer.from(esperada))
  );
  if (!valida) {
    return res.sendStatus(401);
  }

  const evento = JSON.parse(req.body);
  // deduplique antes de agir: o mesmo evento pode chegar mais de uma vez
  res.sendStatus(200);
});

O payload segue um template padrão com buyer, payment, offer, product, cart (com cart.src, a origem que você mandou no link), subscription, installments e payment_methods (dados de Pix, boleto e cartão; em recusa, o motivo da operadora vem em payment_methods.credit_card.refused_message). Atenção à grafia do gatilho de recusa: payment_credit_cart_refused, com cart.

GatilhoQuando dispara
spark_payment_confirmedPagamento confirmado (compra ou mensalidade)
payment_pix_createdPix gerado no checkout
spark_payment_boleto_createdBoleto emitido
payment_credit_cart_refusedCartão recusado (compra ou mensalidade)
refundedVocê estornou a compra
chargeback_requestComprador abriu chargeback na operadora
subscription_activateAssinatura ativada no primeiro pagamento
subscription_updateMudança de status ou novo pagamento da assinatura
subscription_cancelAssinatura cancelada (por cliente, vendedor, estorno, chargeback ou atraso)

Quais SDKs e linguagens a HeroPay suporta?

A referência da API tem exemplos prontos para copiar em 18 linguagens: cURL, Python, Node.js, JavaScript, Ruby, PHP, Go, Java, C#, C, Objective-C, Swift, Kotlin, Dart, Rust, OCaml, R e PowerShell. A especificação OpenAPI é pública: gere seu próprio cliente com qualquer gerador OpenAPI.

SDKs oficiais estão em desenvolvimento, ainda sem data de publicação. Até lá, qualquer cliente HTTP resolve: é REST com JSON e dois headers, e os exemplos da documentação cobrem as 18 linguagens acima.

Como integrar a HeroPay com IA?

A HeroPay foi desenhada para ser integrada por IA. Duas portas de entrada:

llms.txt + documentação aberta. O heropay.tech/llms.txt resume a HeroPay para IAs e aponta para a referência da API em docs.heropay.tech. Cole no Claude, ChatGPT, Cursor, Lovable e outros e peça em português: "integra a HeroPay no meu app usando https://heropay.tech/llms.txt e https://docs.heropay.tech: um botão que cria um link de R$ 97 com Pix e cartão em 12x e uma rota que valida o webhook". A ferramenta escreve o código que chama a API REST, com os endpoints e headers da documentação.

API REST direta. O mesmo curl do início desta página é o que a IA vai escrever. Peça para ela rodar a chamada no sandbox antes de colocar no seu código e confira a resposta.

MCP server. O MCP server oficial da HeroPay está em desenvolvimento. Enquanto isso, o llms.txt entrega o mesmo resultado no desenvolvimento: a IA lê a referência e escreve a integração. Veja a página de IA.

Guias passo a passo por ferramenta em /integracoes.

Perguntas frequentes de desenvolvedores

A API da HeroPay tem limite de requisições (rate limit)?

A v1 não publica um limite numérico por endpoint hoje. Isso não é convite para martelar a API: construa como se houvesse limite. Use webhooks em vez de polling para saber se um pagamento confirmou, pagine listagens com page e items, faça cache de relatórios que não mudam a cada segundo e, ao receber erro 5xx ou 429, repita com backoff exponencial e jitter. Se o seu caso exige volume alto de leitura (dashboards em tempo real para milhares de contas, por exemplo), fale com a gente pela comunidade antes de ir ao ar, para dimensionarmos juntos.

A API é idempotente? Existe Idempotency-Key?

Não existe header Idempotency-Key na v1. GET e DELETE são seguros para repetir; POST /payment_links não é: duas chamadas iguais criam dois links. Para não duplicar, grave o id retornado antes de repetir a chamada e, em caso de timeout, consulte GET /payment_links antes de criar de novo. Para POST /refund e POST /financial/withdrawals, nunca repita às cegas: confira o status do estorno ou a lista de saques primeiro. No lado dos webhooks, deduplique por ID do pagamento mais gatilho, porque a retentativa pode entregar o mesmo evento mais de uma vez.

Como testar webhook no ambiente local?

Exponha seu localhost com um túnel (ngrok, cloudflared ou similar) e cadastre a URL pública gerada com POST /webhook no sandbox. Para só inspecionar o payload sem escrever código, aponte o webhook para um serviço como webhook.site. Crie um link no sandbox, pague pelo checkout de teste e veja o evento chegar. Use PUT /webhook/{id}/disable para pausar o disparo sem perder a configuração e enable para religar. Como o sandbox é idêntico à produção, o payload que você testa é o mesmo que vai receber no ar.

Quais são os erros mais comuns ao integrar?

Os campeões: 401 por token ausente, com espaço a mais ou sem o prefixo Bearer; esquecer o header Accept e pegar a versão mais recente em vez da version=1; mandar valor em reais em vez de centavos (97 vira R$ 0,97 e cai abaixo do mínimo de R$ 5,00, gerando 422); pedir 12x num valor em que a parcela fica abaixo de R$ 1,99; mandar frequency_type: "limited" sem frequency_limit; usar caracteres fora de letras, números e . _ - ~ no src; e cadastrar chave Pix de outro CPF/CNPJ. 404 indica recurso inexistente ou de outra conta.

Como é o formato de valores, datas e paginação?

Dinheiro é sempre inteiro em centavos (price_cents: 9700 = R$ 97,00), sem ponto flutuante, o que elimina erro de arredondamento. Algumas respostas trazem também o valor formatado em reais para exibição. Datas vêm em ISO 8601 com fuso (2026-09-23T10:07:01.929-03:00) e relatórios filtram por start_date e end_date. Listagens são paginadas: links de pagamento usam page e items e devolvem os headers X-Total-Count, X-Current-Page, X-Total-Pages e X-Page-Items; webhooks usam page e per_page.

Preciso de homologação ou aprovação para ir para produção?

Não. O sandbox é gratuito, não tem fila de homologação e roda o mesmo contrato da produção. Você desenvolve, testa o fluxo inteiro (link, checkout, webhook, estorno) e, quando estiver pronto, troca a chave e a URL base para produção. Não existe reunião comercial nem formulário de aprovação da integração no meio do caminho. Crie a conta em app.heropay.tech e faça a primeira chamada hoje.

Quanto custa usar a API de pagamento da HeroPay?

A API não cobra por chamada. Você paga por transação aprovada: Pix R$ 0, boleto R$ 0 e cartão 3,49%, com parcelamento em até 12x. Sem mensalidade, sem taxa de ativação e sem volume mínimo. Numa venda de R$ 97 no cartão, a tarifa fica em R$ 3,39; no Pix, R$ 0. Você escolhe por link se absorve os juros do parcelamento (absorbs_fees: true) ou repassa ao comprador. Tabela completa e comparação com outros gateways em /precos.

Dá para cobrar assinatura recorrente pela API?

Sim. Envie period no POST /payment_links (monthly, quarterly, semiannual ou annual) e o link vira assinatura. Com frequency_type: "unlimited" a renovação segue até o cancelamento; com "limited" e frequency_limit: 12, encerra sozinha após 12 cobranças. A HeroPay cobra cada ciclo e reprocessa falhas automaticamente; você acompanha tudo pelos gatilhos subscription_activate, subscription_update e subscription_cancel e cancela com POST /recurring_payment/cancel. Pagamento internacional não se aplica a links recorrentes. Mais em /assinaturas.

A HeroPay tem API Pix?

Tem, em duas frentes. Para receber, o Pix sai pelo link de pagamento: inclua "pix" em payment_methods e o checkout gera QR Code e copia e cola, à vista ou com parcelamento via Pix, com confirmação pelo webhook spark_payment_confirmed (e payment_pix_created quando o Pix é gerado). Para movimentar, os endpoints /financial/pix_accounts cadastram e listam chaves Pix do titular e /financial/withdrawals saca o saldo para a chave escolhida. O que não existe na v1 é criar uma cobrança Pix solta, fora do checkout. Pix custa R$ 0 por transação. Veja /pix.

Onde fica o dinheiro e como eu saco pela API?

As vendas entram no saldo da sua conta HeroPay. GET /financial/balance mostra o saldo disponível, o saldo a receber e quanto pode ser antecipado. Para sacar, cadastre uma chave Pix no mesmo CPF/CNPJ da conta e chame POST /financial/withdrawals com amount_cents e pix_account_id. Para receber vendas no cartão antes do prazo, simule com GET /financial/anticipation_simulation, que devolve o valor máximo e as taxas daquela operação. Regras de prazo e tarifa em /saques-e-antecipacao.

Posso integrar a HeroPay em um app feito no Lovable, Cursor ou com o Claude?

Pode, e é o caminho mais curto. Cole o llms.txt da HeroPay (heropay.tech/llms.txt) no Claude, ChatGPT, Cursor, Lovable e outros e peça a integração em linguagem natural. A ferramenta segue para a documentação aberta, com endpoints, headers e campos obrigatórios, e gera o código do link de pagamento e do endpoint de webhook. O MCP server oficial está em desenvolvimento. Só não deixe a ferramenta colocar o token no front-end: a chamada à API precisa acontecer no servidor ou numa função serverless. Guias por ferramenta em /integracoes.

A integração é segura? E o PCI?

O cartão é digitado no checkout hospedado pela HeroPay, não no seu site, então seu servidor nunca toca em número de cartão e seu escopo de PCI DSS fica mínimo. A API exige Bearer JWT escopado por conta, que não enxerga dados de outras contas e pode ser regenerado se vazar. Webhooks chegam assinados com HMAC para você rejeitar requisições forjadas. Sua parte: token em variável de ambiente, endpoint de webhook em HTTPS, validação da assinatura e deduplicação de eventos.

Comece agora

Primeiro link de pagamento em 5 minutos, sem cartão de crédito e sem falar com vendas.

Comece grátis, direto no sandbox

Conta self-service, sem mensalidade. O sandbox é idêntico à produção.

Pix e boleto R$ 0 · cartão 3,49% em até 12x · saque sem tarifa