Ir para o conteúdo
A AmunPay API PixVersão 3.38 · atualizada em Páginas

Autenticação

A credencial da sua máquina é o par client_id e client_secret. Troque os dois por um token OAuth2 (client_credentials) e envie o token em Authorization: Bearer em toda chamada a /v2/. O token vale 900 segundos.

A API só aceita chamadas dos IPs do seu servidor cadastrados na sua credencial. Você gera o client_secret e informa os IPs de saída no painel, em O segredo e os IPs no painel.

Token #

POST /oauth/token

O client_id e o client_secret vão em HTTP Basic. É o que curl -u faz:

curl -u "loja01:SEU_CLIENT_SECRET" -d "grant_type=client_credentials" -d "scope=cob.write cob.read pix.read ex.saldo.read ex.config.read" https://api.amunpay.com/oauth/token
POST /oauth/token
Authorization: Basic base64(client_id:client_secret)
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&scope=cob.write cob.read pix.read ex.saldo.read ex.config.read
→ 200
{
  "access_token": "eyJhbGciOiJFUzI1NiIsImtpZCI6IjAxSjEifQ...",
  "token_type": "Bearer",
  "expires_in": 900,
  "scope": "cob.write cob.read pix.read ex.saldo.read ex.config.read"
}
Campo Tipo Obrigatório Descrição
grant_type string sim Sempre client_credentials.
scope string não Escopos separados por espaço, no máximo 10, dentro dos concedidos. Omitido, o token traz todos os escopos concedidos.

Como alternativa ao Basic, client_id e client_secret podem ir no corpo do formulário. Mandar os dois nas duas formas com valores diferentes responde 400 invalid_request.

O token só é emitido e só vale para chamadas vindas dos IPs cadastrados: de outro IP, o pedido do token e cada chamada respondem 403 origem_nao_permitida. Sem nenhum IP cadastrado, nenhuma chamada passa.

O segredo e os IPs no painel #

O gestor da sua empresa gera o client_secret no painel, em Integração, na aba Credenciais, com o código do segundo fator. O segredo aparece uma vez, ao lado do client_id, cada um com o botão de copiar, e nunca é mostrado de novo. Perdeu, gere outro: o anterior deixa de valer na hora. Os tokens já emitidos valem até expirar, salvo quando você marca suspeita de vazamento, que os derruba também.

Quando O que acontece
Primeira credencial Você informa pelo menos um IP de saída, e os IPs valem na hora.
Gerar de novo Um segredo novo. Os escopos e os IPs ficam.
Tirar um IP Vale na hora.
Incluir um IP Vale na hora, com um e-mail aos contatos técnico e financeiro da sua empresa. Se a AmunPay ligar a espera de IP para a sua conta, ele vale 24 horas depois: a tela mostra a hora em que ele passa a valer, e você pode desistir antes.

O painel aceita IP público, com prefixo até /24 (IPv4) ou /48 (IPv6), até 20 IPs. Todo ato sobre a credencial vai por e-mail aos contatos da sua empresa, sem o segredo. Sem contato técnico nem financeiro cadastrado, o painel não gera nem inclui IP.

Só o gestor gera e muda os IPs. Os outros usuários veem o client_id e os IPs. Se a AmunPay ligar a espera do segundo fator para a sua conta, o gestor que acabou de ativar o segundo fator, que foi promovido, reativado ou que teve a senha redefinida por outra pessoa espera 24 horas para gerar. A credencial de uma sub-conta com credencial própria é gerada pela empresa titular.

Se a tela disser que a funcionalidade não está habilitada para a sua conta, fale com a AmunPay. Ela também gera o segredo e cadastra os IPs para você, e pela AmunPay o IP novo vale na hora.

Primeira chamada #

GET /v2/ex/config

GET /v2/ex/config
→ 200
{
  "conta": { "status": "ATIVA", "desde": "2026-09-18T09:20:23Z" },
  "capacidades": {
    "pix": true,
    "subcontas": true,
    "split": true,
    "baas": false
  },
  "recebedor": { "chave": "01J8Z3QK5W7R2N4M6P8T0V2X4Y" },
  "custodia": { "tipo": "PROPRIA", "custodiante": "Conta PI", "recusaAntesDoCredito": true },
  "depositoPorChave": { "modo": "RECUSAR" }
}
Campo Tipo Descrição
conta.status string ATIVA é o único estado que opera.
capacidades objeto O que esta conta pode usar. Leia antes de assumir.
recebedor.chave string Identificador da sua conta, que vai na chave das cobranças. Não o divulgue como chave Pix: receba sempre por cobrança, pelo pixCopiaECola. Um Pix sem txid não vira saldo, salvo quando depositoPorChave.modo é ACEITAR.
custodia.tipo string PROPRIA: a conta é desta instituição. PARCEIRA: conta nominal noutra instituição de pagamento.
custodia.recusaAntesDoCredito booleano true: um Pix recusado não entra na conta. false: ele entra e volta ao pagador por devolução.
depositoPorChave.modo string RECUSAR: um Pix sem cobrança é recusado ou devolvido. ACEITAR: ele vira uma cobrança e credita.

Escopos #

Escopo O que libera
cob.read, cob.write Cobranças.
pix.read, pix.write Pix recebidos e devoluções.
ex.pix.send, ex.pix.send.read Saques.
ex.saldo.read, ex.extrato.read Saldo, extrato, transações e resumo.
ex.webhook.read, ex.webhook.write, ex.eventos.read Webhooks e o feed de eventos.
ex.subcontas.read, ex.subcontas.write Sub-contas.
ex.limites.read, ex.limites.write, ex.bloqueios.read Limites e bloqueios de saldo.
ex.med.read Contestações.
ex.inquilinos.read, ex.inquilinos.write Credenciais próprias de sub-conta.
ex.config.read GET /v2/ex/config.

Erros do token #

O POST /oauth/token responde no formato { "error", "error_description" }.

Status error Quando
401 invalid_client Segredo errado, client_id desconhecido ou credencial suspensa (a resposta não diz qual), ou nenhuma credencial enviada.
400 invalid_request grant_type ausente, Basic que não decodifica, ou Basic e corpo divergentes.
400 unsupported_grant_type grant_type diferente de client_credentials.
400 invalid_scope Escopo fora dos concedidos, ou mais de 10.
403 origem_nao_permitida O IP de origem não está entre os IPs que valem na credencial. Um IP incluído pelo painel com a espera de IP ligada só vale 24 horas depois.
429 invalid_client Cinco segredos errados seguidos do mesmo IP. Espere o Retry-After; a tentativa durante a espera não é conferida.
429 limite_requisicoes Mais de 2 pedidos por segundo do mesmo IP (rajada de 20). Espere o Retry-After.
413 corpo_grande_demais O corpo passa de 4 KiB.

Erros nas chamadas #

Status title Quando
401 acesso_negado Chamada sem Authorization: Bearer.
401 token_invalido Token inválido ou expirado. Renove.
401 token_revogado O token foi revogado antes de expirar (rotação do segredo, mudança de escopos ou suspensão). Peça outro token uma vez, com o segredo atual; se o pedido for recusado, fale com o suporte.
403 origem_nao_permitida O IP de origem não está entre os IPs que valem na credencial. Renovar não resolve. Um IP incluído pelo painel com a espera de IP ligada só vale 24 horas depois.
403 escopo_insuficiente O token não tem o escopo da rota. Peça um token com ele, ou sem scope. Se ele não estiver entre os concedidos, fale com o suporte.
403 merchant_nao_provisionado O client_id ainda não tem conta.
403 conta_bloqueada A conta não está ATIVA.