Quickstart
A API da NGPAYX recebe Pix, transfere entre contas, envia Pix para qualquer chave e saca em USDT, tudo numa integração só. Este guia leva você do zero ao primeiro Pix em 3 passos.
- 1
Crie a conta e gere a chave#
No painel, vá em Chaves de Acesso e gere uma chave. Você recebe o
Client IDe oClient Secret. O secret aparece uma vez só, então guarde em lugar seguro.SegurançaO
Client Secretnunca deve aparecer no front-end (navegador ou app). Use só no seu servidor e, se puder, restrinja a chave por IP. - 2
Crie a primeira cobrança#
Gere um Pix de R$ 10,00 com
POST /charges. A resposta traz o QR Code, o copia e cola e oclientTransactionId. - 3
Configure o webhook#
No painel, cadastre a URL do seu sistema em Webhooks. A NGPAYX avisa assim que o Pix cai, com a entrega assinada por HMAC e reenvio automático se falhar.
Ver a referência de webhooks
URL base#
Todas as chamadas vão para um único host. Requisições e respostas usam application/json.
https://ngpayx.com.br/api/v1https://SEU-DOMINIO/painel.htmlhttps://SEU-DOMINIO/docs.htmlSandbox#
Teste a integração inteira com uma chave de sandbox própria, sem tocar a produção e sem gastar nada. O volume do sandbox não entra nas premiações nem no volume processado.
O endereço da API é o mesmo; o que muda é a chave usada. Quando estiver tudo certo, troque para a chave de produção.
Valores e status#
Os valores são enviados em reais: "amount": 50 é uma cobrança de R$ 50,00. Todas as rotas são escopadas à sua conta, então você só acessa os seus próprios dados.
Depois de gerar o QR Code, a cobrança muda para COMPLETO quando o Pix é confirmado. Para saber disso na hora, use o webhook em vez de consultar em loop.
Chave de acesso#
Use uma chave de acesso (Client ID + Client Secret) gerada em Chaves de Acesso. Dá para ter várias, cada uma com os seus escopos. Há duas formas de enviar:
Headers ci / cs
Envie o Client ID e o Client Secret em dois headers.
Bearer
Envie só o Client Secret no header Authorization.
Escopos#
Cada chave carrega escopos (cobrança, consulta, saque, MEDs…). Uma chamada fora do escopo da chave responde 403, por exemplo um saque com uma chave sem withdrawals:pix.
Para ampliar, crie outra chave com os escopos certos e revogue a antiga. O recomendado é uma chave com o mínimo necessário para cada integração.
Allowlist de IP#
Opcional, mas recomendado para a chave de produção: em Chaves de Acesso, restrinja de quais IPs a chave pode chamar a API. Chamadas de IPs fora da lista respondem 401.
/chargesCriar cobrança Pix#
Gera uma cobrança Pix com QR Code e copia e cola. Só o valor é obrigatório.
A resposta traz o clientTransactionId, que você usa para consultar a cobrança depois. Para saber quando o Pix cai, configure um webhook.
Body
amountnumberobrigatórioValor da cobrança em reais.
Ex.:50descriptionstringopcionalDescrição da cobrança.
Ex.:"Pedido #123"Respostas
- 2xxCobrança criada, com QR Code, copia e cola e
clientTransactionId. - 400Dados inválidos, por exemplo
amountfaltando. - 401Chave ausente ou inválida, ou IP fora da allowlist.
- 403A chave não tem o escopo dessa rota.
/chargesListar cobranças#
Lista as suas cobranças, das mais recentes para as mais antigas.
Respostas
- 2xxLista de cobranças da sua conta.
- 401Chave ausente ou inválida, ou IP fora da allowlist.
- 403A chave não tem o escopo dessa rota.
/charges/:clientTransactionIdConsultar cobrança#
Consulta uma cobrança pelo clientTransactionId devolvido em POST /charges.
Use para checar se o status virou COMPLETO depois de gerar o QR Code. Para acompanhar em tempo real, prefira o webhook em vez de consultar em loop.
Parâmetros de caminho
clientTransactionIdstringobrigatórioID devolvido na criação da cobrança.
Ex.:"chg_abc123"Respostas
- 2xxDados da cobrança.
- 404O ID não existe ou não é da sua conta.
- 401Chave ausente ou inválida, ou IP fora da allowlist.
Transferências e saques#
Saldo, transferência entre contas, Pix para qualquer chave e saque em USDT.
/transfers/balanceConsultar saldo#
Saldo disponível na sua conta NGPAYX.
Respostas
- 2xxSaldo disponível.
- 401Chave ausente ou inválida, ou IP fora da allowlist.
/transfers/internalTransferência interna#
Transferência instantânea e sem tarifa para outra conta NGPAYX, pelo e-mail.
Body
emailstringobrigatórioE-mail da conta NGPAYX de destino.
Ex.:"outra@conta.com"amountnumberobrigatórioValor em reais.
Ex.:30descriptionstringopcionalDescrição da transferência.
Respostas
- 2xxTransferência concluída.
- 400Regra de negócio, por exemplo saldo insuficiente.
- 401Chave ausente ou inválida, ou IP fora da allowlist.
- 403A chave não tem o escopo dessa rota.
/transfers/externalPix para qualquer chave#
Transferência via Pix para qualquer chave. Cobra a tarifa fixa de saque.
Body
amountnumberobrigatórioValor em reais.
Ex.:30pixKeystringobrigatórioChave Pix de destino.
Ex.:"email@exemplo.com"pixKeyTypestringobrigatórioTipo da chave: CPF, CNPJ, EMAIL, TELEFONE ou CHAVE_ALEATORIA.
"EMAIL"descriptionstringopcionalDescrição da transferência.
Respostas
- 2xxTransferência enviada.
- 400Saldo insuficiente, valor fora da faixa ou chave Pix inválida.
- 401Chave ausente ou inválida, ou IP fora da allowlist.
- 403A chave não tem o escopo
withdrawals:pix. - 503Provedor Pix em manutenção (
code = PROVIDER_MAINTENANCE).
/transfers/cryptoSaque em USDT#
Saque em USDT na rede BEP20. Valor entre R$ 20 e R$ 3.000.
Body
amountnumberobrigatórioValor em reais, entre 20 e 3000.
Ex.:50walletstringobrigatórioEndereço da carteira BEP20 de destino.
Ex.:"0x..."descriptionstringopcionalDescrição do saque.
Respostas
- 2xxSaque enviado.
- 400Valor fora da faixa ou saldo insuficiente.
- 401Chave ausente ou inválida, ou IP fora da allowlist.
- 403A chave não tem o escopo dessa rota.
/transfersExtrato de transferências#
Extrato unificado: transferências internas, Pix externo e cripto.
Respostas
- 2xxLista de movimentações.
- 401Chave ausente ou inválida, ou IP fora da allowlist.
/feesTabela de taxas#
Tabela de taxas atual da gateway.
Respostas
- 2xxTaxas vigentes.
- 401Chave ausente ou inválida, ou IP fora da allowlist.
/infractionsInfrações (MED)#
Infrações (MED) registradas nas suas transações.
Respostas
- 2xxLista de infrações.
- 401Chave ausente ou inválida, ou IP fora da allowlist.
- 403A chave não tem o escopo dessa rota.
Configurar#
A NGPAYX chama a sua URL com POST sempre que um depósito ou uma retirada confirma, falha ou é cancelado. É a forma recomendada de acompanhar as cobranças, sem atraso de polling.
- No painel, abra Webhooks.
- Cadastre a URL HTTPS do seu sistema.
- Salve. Para desativar, deixe a URL em branco.
Se a entrega falhar, a NGPAYX tenta de novo sozinha, com intervalos crescentes, até 5 vezes. O histórico de entregas fica no painel. Por isso o seu sistema deve aceitar a mesma notificação mais de uma vez sem duplicar nada.
Payload#
Exemplo de uma notificação de depósito Pix confirmado, no mesmo formato mostrado no painel.
eventTipo do evento, por exemplo deposito.completo.transactionIdID da transação na NGPAYX.clientTransactionIdO mesmo ID devolvido em POST /charges. Use para achar o pedido no seu sistema.amountValor em reais.statusSituação da transação, por exemplo COMPLETO.typeDEPOSITO ou RETIRADA.methodMeio de pagamento, por exemplo PIX.createdAtData e hora da transação (ISO 8601).Boas práticas#
- Confirme antes de liberar: consulte a cobrança com
GET /charges/:clientTransactionIde só entregue o produto se o status forCOMPLETO. Assim ninguém consegue forjar uma notificação. - Responda 2xx rápido e processe o pedido depois, numa fila ou tarefa em segundo plano.
- Trate repetições: use o
clientTransactionIdpara não entregar o mesmo pedido duas vezes. - Use HTTPS público no endereço do webhook.
Erros#
Toda resposta de erro vem no formato { "error": "mensagem" }. O status HTTP diz a categoria.
Dados inválidos
O body não bate com o esperado: campo faltando, tipo errado etc. details traz o campo.
Regra de negócio
Formato certo, mas a operação não pode acontecer agora: saldo insuficiente, valor fora da faixa, chave Pix inválida. Chamadas com chave de acesso não exigem o 2FA do painel.
Não autenticado
Chave de acesso ausente ou inválida, ou IP não liberado na allowlist.
Sem permissão
Chave autenticada, mas sem o escopo da rota (ex.: saque sem withdrawals:pix).
Não encontrado
O recurso não existe ou não pertence à sua conta.
Conflito
Registro duplicado, como e-mail já cadastrado em outra conta.
Muitas requisições
Rate limit: espere alguns minutos antes de tentar de novo.
Erro interno
Erro inesperado do nosso lado. Guarde o horário e fale com o suporte.
Falha no provedor Pix
O provedor recusou ou falhou na chamada. Normalmente passageiro.
Manutenção no provedor
Saques e transferências em manutenção temporária. O campo code = PROVIDER_MAINTENANCE identifica o caso.

Precisa de ajuda com a integração?
Crie sua conta e abra um ticket pelo painel. A conversa fica registrada do início ao fim.