Ir para o conteúdo
NxGatedevelopers
Ver site Área do cliente
DocumentaçãoComeçarVisão geral
Nesta página
Documentação oficial · REST

NxGate Transaction API

Cobre por PIX — e em outras moedas pela v2 —, faça saques via PIX, consulte o saldo e receba webhooks assinados quando cada transação mudar de status. Uma API REST/JSON, autenticada pela sua api_key.

Produção REST / JSON Webhooks assinados Idempotência
URL DE PRODUÇÃOhttps://api.nxgate.com.br

Em 3 passos

Integrar é direto: você cria a cobrança, mostra o código PIX ao cliente e confirma o pagamento quando o webhook chegar.

  1. Pegue a api_key — crie em Painel → API e guarde no servidor, numa variável de ambiente.
  2. Gere o PIX — chame POST /v2/cobranca com api_key, valor e webhook. Mostre o paymentCode (copia-e-cola) e o QR Code, e guarde o idTransaction.
  3. Receba o webhook e confirme — quando chegar o QR_CODE_COPY_AND_PASTE_PAID, confirme na POST /v2/consultar e libere o pedido só com paid.
✦

Passo a passo com código em Comece aqui. Já usa a /pix/gerar? Ela continua funcionando — a v2 aceita o mesmo corpo e devolve os mesmos campos, com alguns a mais.

COMECE COM UMA REQUISIÇÃOREST / JSON
Quickstart
curl -X POST https://api.nxgate.com.br/v2/cobranca \
  -H "Content-Type: application/json" \
  -H "X-Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \
  -d '{
    "api_key": "nx_live_sua_chave_aqui",
    "valor": 1.00,
    "webhook": "https://seusite.com.br/webhook/nxgate",
    "magic_id": "pedido-teste-1"
  }'
import { randomUUID } from "node:crypto";

const resposta = await fetch("https://api.nxgate.com.br/v2/cobranca", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "X-Idempotency-Key": randomUUID(), // guarde com o pedido
  },
  body: JSON.stringify({
    api_key: process.env.NXGATE_API_KEY, // só no servidor
    valor: 1.00,
    webhook: "https://seusite.com.br/webhook/nxgate",
    magic_id: "pedido-teste-1",
  }),
});
const cobranca = await resposta.json();
if (cobranca.status !== "success") throw new Error(cobranca.error || cobranca.message);

console.log(cobranca.idTransaction, cobranca.paymentCode);
<?php
$ch = curl_init('https://api.nxgate.com.br/v2/cobranca');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_TIMEOUT        => 30,
    CURLOPT_HTTPHEADER     => [
        'Content-Type: application/json',
        'X-Idempotency-Key: ' . bin2hex(random_bytes(16)), // guarde com o pedido
    ],
    CURLOPT_POSTFIELDS     => json_encode([
        'api_key'  => getenv('NXGATE_API_KEY'), // só no servidor
        'valor'    => 1.00,
        'webhook'  => 'https://seusite.com.br/webhook/nxgate',
        'magic_id' => 'pedido-teste-1',
    ]),
]);
$cobranca = json_decode((string) curl_exec($ch), true);
curl_close($ch);

if (($cobranca['status'] ?? '') !== 'success') {
    throw new RuntimeException($cobranca['error'] ?? $cobranca['message'] ?? 'Falha na cobrança');
}
echo $cobranca['idTransaction'], ' ', $cobranca['paymentCode'];
import os
import uuid

import requests

resposta = requests.post(
    "https://api.nxgate.com.br/v2/cobranca",
    headers={"X-Idempotency-Key": str(uuid.uuid4())},  # guarde com o pedido
    json={
        "api_key": os.environ["NXGATE_API_KEY"],  # só no servidor
        "valor": 1.00,
        "webhook": "https://seusite.com.br/webhook/nxgate",
        "magic_id": "pedido-teste-1",
    },
    timeout=30,
)
cobranca = resposta.json()
if cobranca.get("status") != "success":
    raise RuntimeError(cobranca.get("error") or cobranca.get("message"))

print(cobranca["idTransaction"], cobranca["paymentCode"])
✓ Copiado!