Skip to main content
A chave pública (publicKey, começa com pk_) identifica a sua loja no abacatepay.js, o formulário de cartão do checkout transparente. É com ela que o formulário aparece no seu site e gera o token do cartão (ctok_). Ela foi feita para ficar no navegador, à vista de qualquer pessoa. Quem cria a cobrança é o seu backend, com a chave de API, que continua secreta.

Chave pública ou chave de API?

Por isso não há risco em expor a chave pública: alguém que copie a sua pk_ consegue no máximo gerar tokens, e um token só vira cobrança quando o seu backend chama a API com a sua chave de API.

Onde encontrar

  1. No dashboard, abra Integração → Checkout próprio (app.abacatepay.com/own-checkout).
  2. Em Sua chave pública, clique no olho para revelar ou no ícone de copiar.
  3. Confira o rótulo acima da chave: Teste (DEV) ou Produção.
A página mostra a chave do modo em que o dashboard está. Com o Modo Teste ligado, você vê a chave de teste. Desligado, a de produção.
Se Checkout próprio não aparece no menu Integração, sua conta ainda não tem cartão liberado. Fale com o suporte.

Teste e produção

Cada loja tem duas chaves públicas, uma por ambiente:
Pelo formato não dá para saber o ambiente. As duas começam com pk_. Confira o rótulo no dashboard. E use sempre as duas chaves do mesmo ambiente: um token gerado com a chave pública de teste não pode ser cobrado com a chave de API de produção, e vice-versa. A cobrança falha com Invalid or expired card token.
O ambiente vem da chave, e não do Modo Teste da loja. Se o seu site usa a chave pública de produção, o formulário é o de produção, mesmo que você esteja com o Modo Teste ligado no dashboard.

Como usar

A chave pública entra só no AbacatePay.create:
Para trocar de teste para produção sem mexer no código, guarde a chave pública numa variável de ambiente do seu backend e entregue ao navegador junto com o valor do pedido, como no passo a passo. Assim a troca de ambiente é só configuração: as duas chaves mudam juntas.

Erros

Esses erros aparecem no mount() ou no tokenize() do abacatepay.js, com error.code igual a API e a mensagem em error.message.

Perguntas frequentes

Pode. Ela foi feita para isso. O que nunca pode ir para o navegador é a chave de API.
Não. É uma chave por ambiente da loja (teste e produção), e ela funciona em qualquer domínio.
Não. Ela vale até ser trocada. Se precisar de uma chave nova, fale com o suporte.
Não. As rotas da API v2 (/v2/...) só aceitam a chave de API. A chave pública serve apenas para o abacatepay.js.