Playbook Técnico

API PIX PSP Receptor

Guía técnica para implementar tests funcionales, seguridad, performance y monitoreo en APIs PIX PSP Receptor — en conformidad con BACEN.

Zeroincidentes de regresión
< 15 minfeedback por cambio
100%cobertura flujos críticos
Hablar con experto
01

Alcance y Requisitos

APIs cubiertas, requisitos mTLS/OAuth 2.0, y normativas BACEN aplicables.

APIs Cubiertas en este Playbook

RecursoEndpointDescripción
Cobro Inmediato/cob e /cob/{txid}CRUD de cobros inmediatos con QR Code
Cobro con Vencimiento/cobv e /cobv/{txid}Cobros con fecha de vencimiento (boleto PIX)
PIX Recibidos/pix e /pix/{e2eid}Consulta y devolución de pagos PIX recibidos
Webhook/webhook/{chave}Configuración de notificaciones push
Location (Payload)/loc e /loc/{id}Gestión de payloads para QR Code
PIX Automático (Rec)/rec e /rec/{idRec}Gestión de recurrencias (débito automático)
Lote CobV/lotecobv/{id}Creación y gestión de lotes de cobros con vencimiento
Solicitud Rec/solicrec/{idSolicRec}Confirmación de autorización de recurrencia

PIX API v2.9.0 — Requisitos de Seguridad

  • mTLS obligatorio: Certificado ICP-Brasil (producción) o emitido por el PSP (homologación)
  • OAuth 2.0 Client Credentials: Alcances específicos por recurso (cob.read, cob.write, pix.read)
  • RFC 8705: Token vinculado al certificado TLS — impide el uso del token en otra conexión

Normativas Aplicables

NormativaAlcance de Aplicación
Resolución BCB No. 1/2020Regulación base del arreglo PIX
Manual de Seguridad del PIXRequisitos técnicos de seguridad
Manual de APIs PIXEspecificaciones técnicas de las APIs
Resolución Conjunta No. 6/2023Compartición de indicios de fraude
Circular BCB No. 3.978/2020Prevención del lavado de dinero
LGPD (Ley 13.709/2018)Protección de datos personales

Mantenga un mapeo entre cada normativa y los casos de prueba correspondientes para facilitar auditorías.

02

Tests Funcionales

Matriz de casos de test para /cob, /cobv, /pix y /webhook con priorización P0/P1.

Cobro Inmediato (/cob)

MétodoPrioridadCaso de PruebaValidaciones
POST /cob/{txid}P0Crear cobro con valor fijoHTTP 201, txid, location, QR Code
POST /cob/{txid}P0Crear cobro Pix RetiromodalidadeAlteracao, retirada
POST /cob/{txid}P1Crear cobro Pix Cambiovalor.original, valor.troco
GET /cob/{txid}P0Consultar cobro existentestatus, calendario, valor, chave
PATCH /cob/{txid}P1Revisar cobro (cambiar estado)status REMOVIDA_PELO_USUARIO
GET /cobP1Listar cobros con paginaciónparametros.paginacao, filtros

PIX Recibidos (/pix)

MétodoPrioridadCaso de PruebaValidaciones
GET /pix/{e2eid}P0Consultar PIX por endToEndIde2eid, txid, valor, horario
PUT /pix/{e2eid}/devolucao/{id}P0Solicitar devolución (MD06)rtrId, status, motivo
GET /pix/{e2eid}/devolucao/{id}P1Consultar estado de devoluciónstatus, horario, motivo
GET /pixP1Listar PIX por períodoinicio, fim, paginacao

Priorice P0 para el primer ciclo de pruebas. P1 puede implementarse en paralelo o en la segunda iteración.

03

Tests de Seguridad

OWASP API Top 10, validación OAuth/mTLS, y vectores de inyección para APIs financieras.

OWASP API Security Top 10

IDVulnerabilidadPruebas Específicas
API1:2023Broken Object Level AuthorizationIntentar acceder a /cob/{txid} de otro usuario; Manipular e2eid para consultar PIX ajeno
API2:2023Broken AuthenticationProbar tokens expirados, revocados, sin alcance; Validar mTLS certificate binding
API3:2023Broken Object Property Level AuthorizationMass Assignment: intentar alterar campos readonly como status, horario; Verificar si response expone datos sensibles
API4:2023Unrestricted Resource ConsumptionValidar rate limiting; Probar timeout de 15s; DoS con requests paralelos
API5:2023Broken Function Level AuthorizationAcceder a endpoints administrativos; Probar escalación de privilegios en alcances OAuth
API6:2023Unrestricted Access to Sensitive Business FlowsAutomatización de creación masiva de cobros; Abuso de devoluciones
API7:2023Server-Side Request Forgery (SSRF)Probar webhookUrl con direcciones internas/localhost; Validar sanitización de URLs
API8:2023Security MisconfigurationHeaders de seguridad (HSTS, CSP); Verificar que el error handling no exponga stack traces
API9:2023Improper Inventory ManagementMapear endpoints no documentados; Verificar versiones antiguas de la API expuestas
API10:2023Unsafe Consumption of APIsValidar integración con DICT; Probar respuestas malformadas de socios

Validación OAuth 2.0 + mTLS

EscenarioResultadoValidación
Token válido + certificado correcto200 OKRequest procesado normalmente
Token válido + certificado diferente401cnf claim no corresponde al certificado
Token expirado401TokenExpirado
Token sin alcance necesario403AcessoNegado - alcance insuficiente
Certificado expiradoFallo TLSHandshake falla antes del request
Certificado revocado (CRL/OCSP)Fallo TLSVerificar validación de revocación
Certificado auto-firmadoFallo TLSNo aceptado según regulación
Token con audience incorrecto401TokenInvalido

Seguridad de Webhooks

  • SSRF: Bloquear URLs internas (localhost, 127.0.0.1, rangos privados)
  • DNS Rebinding: Resolver DNS una única vez antes de conectar
  • Validación de Protocolo: Aceptar solo https://, rechazar file://, gopher://

Validar certificados mTLS, alcances OAuth y rate limiting manualmente en cada deploy no escala. DAST automatizado en el pipeline detecta vulnerabilidades antes de que lleguen a producción.

Voidr ejecuta DAST, valida specs OpenAPI y centraliza resultados en un único dashboard.

Ver como funciona: Segurança & Compliance
04

Monitoreo Sintético

Escenarios de monitoreo, SLAs regulatorios, y configuración de alertas.

Escenarios de Monitoreo Recomendados

EscenarioFrecuenciaSLAAlertas
Health Check OAuth1 min< 500msPagerDuty P1, Slack #alerts
Token Refresh Flow5 min< 1000msSlack, Grafana
Crear + Consultar Cob5 min< 2000msEmail, Slack, Grafana
Webhook Delivery5 min< 5000msPagerDuty P1
Consulta DICT5 min< 1500msSlack, Datadog
Flujo E2E Pago15 min< 10000msTodos los canales

SLAs Regulatorios (Manual de Seguridad del PIX)

  • Disponibilidad: Mínimo 99.5% mensual por endpoint
  • Timeout: Máximo 15 segundos para operaciones síncronas
  • Ventana de mantenimiento: Comunicación previa al BACEN requerida

Configure alertas en múltiples canales (Slack, PagerDuty, email) para garantizar respuesta rápida a incidentes.

05

Tests de Performance

Perfiles de carga (smoke, load, stress, soak), distribución de tráfico y criterios de aceptación.

Perfiles de Carga

TipoVUsDuraciónObjetivo
Smoke Test1-51 minValidar scripts y ambiente de prueba
Load Test100-50030 minCarga normal de producción
Stress Test500-200015 minEncontrar breaking point
Spike Test0→1000→010 minPicos súbitos (flash sale, día de pago)
Soak Test200-3004-8 horasMemory leaks, degradación gradual
Breakpoint TestRamp upHasta falloCapacidad máxima absoluta

Distribución Realista de Tráfico

EndpointTráficoThink TimePacing
POST /cob/{txid} (crear cobro)40%1-3sRandom
GET /cob/{txid} (consultar cobro)35%0.5-1sConstant
GET /pix (listar recibidos)15%2-5sRandom
PUT /pix/{e2eid}/devolucao (devolución)8%5-10sRandom
Webhook callbacks (simulado)2%N/AAsync

Criterios de Aceptación

Error Rate < 1%
P95 Latency < 2s
Throughput ≥ 500 TPS
Recuperación < 60s
CPU/Memory < 80%

Ejecute Soak Tests (4h+) regularmente para detectar memory leaks y degradación gradual que no aparecen en pruebas cortas.

06

Virtualización de Servicios

Mock server para APIs BACEN, stubs stateful e inyección de fallas.

Arquitectura de Ambiente de Pruebas

┌─────────────────────────────────────────────────────────────────┐
│                    Ambiente de Testes Isolado                   │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌─────────┐     ┌─────────────────┐     ┌─────────────────┐   │
│  │  Testes │────▶│  Mock Server    │────▶│  Webhook        │   │
│  │  E2E    │     │  (API BACEN)    │     │  Simulator      │   │
│  └─────────┘     └─────────────────┘     └─────────────────┘   │
│       │                  │                       │              │
│       │          ┌───────┴───────┐               │              │
│       │          ▼               ▼               │              │
│       │    ┌──────────┐   ┌──────────┐           │              │
│       │    │ Stateful │   │  Fault   │           │              │
│       │    │ Stubs    │   │ Injection│           │              │
│       │    └──────────┘   └──────────┘           │              │
│       │                                          │              │
│       └──────────────────────────────────────────┘              │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
          
La virtualización permite probar sin dependencia del ambiente real de BACEN

Escenarios de Simulación

EscenarioComportamientoCaso de Uso
Happy PathRespuestas 2xx estándarDesarrollo ágil, pruebas básicas
Timeout SimulationDelay 16s → 504 Gateway TimeoutPrueba de resiliencia y circuit breaker
Rate Limiting429 tras N requests/minValidar exponential backoff/retry
Partial Failure50% errores aleatoriosChaos engineering, fallback logic
Webhook DelayCallback tras 30minPolling vs push, reconciliación
Certificate ErrorFallo mTLS simuladoManejo de errores de certificado

Los mocks stateful permiten simular flujos completos (crear cobro → recibir pago → procesar webhook) sin integración real.

07

Datos Sintéticos

Generación de txid, e2eid, CPF/CNPJ válidos sin datos reales (LGPD).

Campos y Reglas de Generación

CampoTipoRegla
txidString [26-35][a-zA-Z0-9]{26,35} único por CNPJ receptor
endToEndId (e2eid)String [32]E + ISPB(8) + FECHA(8) + SEQ(11) + CTRL(5)
chave (CPF)String [11]CPF válido con dígito verificador correcto
chave (CNPJ)String [14]CNPJ válido con dígito verificador correcto
chave (Email)String [max 77]user{uuid}@testdomain.pix.test
chave (Teléfono)String [14]+5511999{random(6)} - formato E.164
valor.originalDecimal [16,2]Random 0.01-999999.99 (distribución log-normal)
devedor.nomeString [max 200]Faker.name() locale pt-BR
Ejemplo: Generación de Datos PIXtypescript
import { faker } from '@faker-js/faker/locale/pt_BR';

// txid: 26-35 caracteres alfanuméricos
const txid = faker.string.alphanumeric({ length: 32 });

// CPF válido com dígito verificador
const cpf = generateValidCPF();

// endToEndId no formato BACEN
const e2eid = `E${ispb}${dateStr}${seq}${ctrl}`;

// Valor com distribuição realista
const valor = faker.finance.amount({ min: 0.01, max: 999999.99 });

Cumplimiento LGPD

  • Cero datos reales: Los datos sintéticos no contienen PII de personas reales
  • No reversibilidad: Imposible reconstruir datos originales a partir de los sintéticos
  • Aislamiento total: Ambientes de prueba segregados de producción
08

Pipeline CI/CD

Gates de calidad por etapa: linting, contract tests, DAST, load tests.

Pipeline de Calidad

┌──────────┐   ┌──────────┐   ┌─────────────┐   ┌──────────┐   ┌────────────┐
│ Pre-     │──▶│  Build   │──▶│ Integration │──▶│ Staging  │──▶│ Production │
│ commit   │   │          │   │             │   │          │   │            │
└──────────┘   └──────────┘   └─────────────┘   └──────────┘   └────────────┘
     │              │               │                │               │
     ▼              ▼               ▼                ▼               ▼
 ┌────────┐   ┌──────────┐   ┌───────────┐   ┌──────────┐   ┌────────────┐
 │Linting │   │ Unit     │   │ Smoke     │   │Regressivo│   │ Canary     │
 │OpenAPI │   │ Contract │   │ Tests     │   │ Security │   │ Monitoring │
 │ Schema │   │ Tests    │   │ E2E       │   │ Load     │   │ Sintético  │
 └────────┘   └──────────┘   └───────────┘   └──────────┘   └────────────┘
          
Quality gates en cada etapa previenen regresiones en producción
GitHub Actions: Pipeline PIXyaml
name: PIX API Quality Gates
on: [push, pull_request]

jobs:
  quality:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Validate OpenAPI Schema
        run: npx @stoplight/spectral lint openapi.yaml

      - name: Contract Tests
        run: npx prism proxy openapi.yaml --errors

      - name: Functional Tests
        run: npm run test:pix-api

      - name: Security Scan (OWASP)
        run: npm run security:scan

      - name: Performance Baseline
        run: npm run perf:smoke

Orquestar contract testing, DAST y load testing en pipelines separados genera overhead de mantenimiento y resultados fragmentados entre herramientas.

Voidr ejecuta todos los quality gates en un único workflow y reporta resultados consolidados por PR.

Ver como funciona: Automação de Testes
09

Checklist

Lista de verificación para infraestructura, tests, seguridad y compliance.

Infraestructura

0/6

Pruebas Funcionales

0/6

Pruebas de Seguridad

0/7

Performance

0/5

Datos y Compliance

0/5

Use este checklist como guía de implementación. El progreso se guarda automáticamente en su navegador.

10

Próximo Paso

Automatice pruebas y monitoreo de APIs PIX con IA

Voidr
AI Agent

AI Agent para APIs PIX

Genera casos de prueba a partir de la spec OpenAPI, ejecuta en cada PR y actualiza pruebas automáticamente cuando la API cambia. Corre en su cloud.

Generación desde OpenAPI
Actualización automática de pruebas
Ejecución en cada PR
Agendar demostración

¿Cuánto cuesta
una falla en producción?

Diagnóstico de 1h. Mapeamos tus
jornadas críticas y mostramos lo que está descubierto.

Agenda una demo