NGPAYX Docs
Criar conta
Introdução

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. 1

    Crie a conta e gere a chave#

    No painel, vá em Chaves de Acesso e gere uma chave. Você recebe o Client ID e o Client Secret. O secret aparece uma vez só, então guarde em lugar seguro.

    Segurança

    O Client Secret nunca deve aparecer no front-end (navegador ou app). Use só no seu servidor e, se puder, restrinja a chave por IP.

  2. 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 o clientTransactionId.

  3. 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
Conceitos

URL base#

Todas as chamadas vão para um único host. Requisições e respostas usam application/json.

AmbienteURL
API (REST)https://ngpayx.com.br/api/v1
Painelhttps://SEU-DOMINIO/painel.html
Documentaçãohttps://SEU-DOMINIO/docs.html

Sandbox#

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.

Mesma URL, chave diferente

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.

Autenticação

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:

Recomendado

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.

Escopos não mudam depois

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.

Referência da API

Cobranças#

Gere e consulte cobranças Pix (QR Code + copia e cola).

POST/charges

Criar 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.

AuthChave de acesso (ci / cs ou Bearer)

Body

amountnumberobrigatório

Valor da cobrança em reais.

Ex.: 50
descriptionstringopcional

Descrição da cobrança.

Ex.: "Pedido #123"

Respostas

  • 2xxCobrança criada, com QR Code, copia e cola e clientTransactionId.
  • 400Dados inválidos, por exemplo amount faltando.
  • 401Chave ausente ou inválida, ou IP fora da allowlist.
  • 403A chave não tem o escopo dessa rota.
GET/charges

Listar cobranças#

Lista as suas cobranças, das mais recentes para as mais antigas.

AuthChave de acesso (ci / cs ou Bearer)

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.
GET/charges/:clientTransactionId

Consultar 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.

AuthChave de acesso (ci / cs ou Bearer)

Parâmetros de caminho

clientTransactionIdstringobrigatório

ID 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.
GET/transfers/balance

Consultar saldo#

Saldo disponível na sua conta NGPAYX.

AuthChave de acesso (ci / cs ou Bearer)

Respostas

  • 2xxSaldo disponível.
  • 401Chave ausente ou inválida, ou IP fora da allowlist.
POST/transfers/internal

Transferência interna#

Transferência instantânea e sem tarifa para outra conta NGPAYX, pelo e-mail.

AuthChave de acesso (ci / cs ou Bearer)

Body

emailstringobrigatório

E-mail da conta NGPAYX de destino.

Ex.: "outra@conta.com"
amountnumberobrigatório

Valor em reais.

Ex.: 30
descriptionstringopcional

Descriçã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.
POST/transfers/external

Pix para qualquer chave#

Transferência via Pix para qualquer chave. Cobra a tarifa fixa de saque.

AuthChave de acesso (ci / cs ou Bearer)
Escopowithdrawals:pix

Body

amountnumberobrigatório

Valor em reais.

Ex.: 30
pixKeystringobrigatório

Chave Pix de destino.

Ex.: "email@exemplo.com"
pixKeyTypestringobrigatório

Tipo da chave: CPF, CNPJ, EMAIL, TELEFONE ou CHAVE_ALEATORIA.

Ex.: "EMAIL"
descriptionstringopcional

Descriçã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).
POST/transfers/crypto

Saque em USDT#

Saque em USDT na rede BEP20. Valor entre R$ 20 e R$ 3.000.

AuthChave de acesso (ci / cs ou Bearer)

Body

amountnumberobrigatório

Valor em reais, entre 20 e 3000.

Ex.: 50
walletstringobrigatório

Endereço da carteira BEP20 de destino.

Ex.: "0x..."
descriptionstringopcional

Descriçã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.
GET/transfers

Extrato de transferências#

Extrato unificado: transferências internas, Pix externo e cripto.

AuthChave de acesso (ci / cs ou Bearer)

Respostas

  • 2xxLista de movimentações.
  • 401Chave ausente ou inválida, ou IP fora da allowlist.
Referência da API

Conta#

Taxas atuais e infrações (MED) da sua conta.

GET/fees

Tabela de taxas#

Tabela de taxas atual da gateway.

AuthChave de acesso (ci / cs ou Bearer)

Respostas

  • 2xxTaxas vigentes.
  • 401Chave ausente ou inválida, ou IP fora da allowlist.
GET/infractions

Infrações (MED)#

Infrações (MED) registradas nas suas transações.

AuthChave de acesso (ci / cs ou Bearer)

Respostas

  • 2xxLista de infrações.
  • 401Chave ausente ou inválida, ou IP fora da allowlist.
  • 403A chave não tem o escopo dessa rota.
Webhooks

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.

  1. No painel, abra Webhooks.
  2. Cadastre a URL HTTPS do seu sistema.
  3. Salve. Para desativar, deixe a URL em branco.
Reenvio automático

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.

CampoO que é
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/:clientTransactionId e só entregue o produto se o status for COMPLETO. 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 clientTransactionId para não entregar o mesmo pedido duas vezes.
  • Use HTTPS público no endereço do webhook.
Referência

Erros#

Toda resposta de erro vem no formato { "error": "mensagem" }. O status HTTP diz a categoria.

400

Dados inválidos

O body não bate com o esperado: campo faltando, tipo errado etc. details traz o campo.

400

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.

401

Não autenticado

Chave de acesso ausente ou inválida, ou IP não liberado na allowlist.

403

Sem permissão

Chave autenticada, mas sem o escopo da rota (ex.: saque sem withdrawals:pix).

404

Não encontrado

O recurso não existe ou não pertence à sua conta.

409

Conflito

Registro duplicado, como e-mail já cadastrado em outra conta.

429

Muitas requisições

Rate limit: espere alguns minutos antes de tentar de novo.

500

Erro interno

Erro inesperado do nosso lado. Guarde o horário e fale com o suporte.

502

Falha no provedor Pix

O provedor recusou ou falhou na chamada. Normalmente passageiro.

503

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.

Criar conta