NTX Paydocs

Activación

Descripción general

El modo PIX Bacen incluye dos funcionalidades que necesitan ser activadas:

  1. Endpoints BACEN: Acceso a endpoints compatibles con la especificacion del Banco Central
  2. Webhooks V2: Nuevo formato de notificación con el envelope {type, data}

Activar el modo PIX Bacen es un cambio incompatible. Los webhooks cambiaran a un formato completamente diferente. Asegurese de actualizar su integración antes de solicitar la activación.

Como Solicitar la Activación

1. Contactar soporte

Envie un correo electrónico a suporte@ntxpay.com con:

  • Nombre de la empresa
  • CNPJ
  • Client ID de la aplicación
  • Confirmación de que ya implemento el soporte para Webhooks V2

2. Esperar la configuración

Nuestro equipo:

  1. Activara el modo PIX Bacen en su cuenta
  2. Habilitara los endpoints y el formato de webhook V2
  3. Confirmara la activación por correo electrónico

3. Probar la integración

Después de la activación:

  1. Realice un cobro de prueba via PUT /cob/:txid
  2. Verifique que el webhook V2 llego correctamente
  3. Confirme que su aplicación proceso el nuevo formato

Que cambia con la activación?

Endpoints

Obtiene acceso a los endpoints BACEN:

AntesDespués
POST /pix/cash-inPUT /cob/:txid
POST /pix/cash-outPOST /dict/pix
POST /pix/:id/refundPUT /pix/:e2eid/devolucao/:id
GET /balanceGET /accounts/balances

Los endpoints antiguos siguen funcionando. Puede usar ambas APIs simultaneamente.

Webhooks

El formato de webhook cambia completamente:

{
  "event": "CashIn",
  "status": "CONFIRMED",
  "transactionId": "12345",
  "movementType": "CREDIT",
  "originalAmount": 100.00,
  "finalAmount": 100.00,
  "counterpart": {
    "name": "Joao Silva",
    "document": "123.xxx.xxx-xx"
  }
}
{
  "type": "RECEIVE",
  "data": {
    "id": 123,
    "txId": "abc123",
    "status": "LIQUIDATED",
    "payment": {
      "amount": "100.00",
      "currency": "BRL"
    },
    "creditDebitType": "CREDIT",
    "debtorAccount": {
      "name": "Joao Silva",
      "document": "123.xxx.xxx-xx"
    },
    "creditorAccount": {...}
  }
}

Diferencias clave de webhooks

AspectoV1V2
EstructuraCampos en la raizEnvelope {type, data}
Tipo de eventoevent: "CashIn"type: "RECEIVE"
Estado de exitoCONFIRMEDLIQUIDATED
Estado de devoluciónCONFIRMEDREFUNDED
Valoresnumber (100.00)string ("100.00")
ContrapartecounterpartdebtorAccount / creditorAccount

Preparando su integración

1. Actualizar el handler de webhooks

// ANTES (V1)
function handleWebhookV1(payload: any) {
  if (payload.event === 'CashIn' && payload.status === 'CONFIRMED') {
    processPayment(payload.transactionId, payload.finalAmount);
  }
}

// DESPUES (V2)
function handleWebhookV2(payload: any) {
  if (payload.type === 'RECEIVE' && payload.data.status === 'LIQUIDATED') {
    const amount = parseFloat(payload.data.payment.amount);
    processPayment(payload.data.id, amount);
  }
}

2. Actualizar tipos/interfaces

// Tipos V2
interface WebhookV2Payload {
  type: 'RECEIVE' | 'TRANSFER' | 'REFUND';
  data: WebhookV2Data;
}

interface WebhookV2Data {
  id: number;
  txId: string | null;
  status: 'PENDING' | 'LIQUIDATED' | 'REFUNDED' | 'ERROR';
  payment: {
    amount: string;  // Nota: string, no number!
    currency: string;
  };
  creditDebitType: 'CREDIT' | 'DEBIT';
  debtorAccount: AccountInfo;
  creditorAccount: AccountInfo;
  endToEndId: string | null;
  refunds: RefundInfo[];
  // ... otros campos
}

3. Probar en el entorno de desarrollo

Antes de solicitar la activación en producción:

  1. Solicite la activación en el entorno sandbox
  2. Ejecute pruebas completas de Cash-In, Cash-Out y Devolución
  3. Valide que todos los webhooks se procesen correctamente

Reversion

Después de la activación, no es posible revertir a V1 automáticamente. Si necesita revertir, contacte a soporte.

Recomendamos mantener soporte para ambas versiones durante la transicion:

function handleWebhook(payload: any) {
  // Detectar version por formato
  if (payload.type && payload.data) {
    return handleWebhookV2(payload);
  } else if (payload.event) {
    return handleWebhookV1(payload);
  }
  throw new Error('Formato de webhook desconocido');
}

Lista de verificación para la activación

Actualice su código para procesar el formato de envelope {type, data}

Solicite la activación en sandbox y ejecute pruebas completas

Pruebe: RECEIVE, TRANSFER, REFUND con los estados LIQUIDATED, REFUNDED y ERROR

Envie un correo electrónico a suporte@ntxpay.com con la información requerida

Monitoree las primeras transacciones después de la activación para asegurar que todo funcione

Preguntas Frecuentes

Próximos Pasos

En esta página