Skip to Content
docs

Realizar pago PIX (Cash-Out)

POST /api/pix/cash-out

POST https://<api-host>/api/pix/cash-out

Requiere un Bearer token en el header Authorization. Vea Generar Token para obtener uno.

Envia un pago PIX a una clave PIX de destino. La transaccion se crea con estado PENDING y el resultado final se notifica via webhook o puede consultarse via polling.

Autenticacion

Requiere un Bearer token en el header Authorization.

Request Body

CampoTipoObligatorioDescripcion
valuenumberSiMonto en reales (hasta 2 decimales). Minimo: 0.01
externalIdstringSíIdentificador externo único por cuenta (máx 50 caracteres)
descriptionstringNoDescripcion de la transaccion (max 140 caracteres)
detailsobjectSiInformacion de la clave PIX de destino
details.keystringSiClave PIX de destino (vea los formatos en la tabla a continuacion)
details.keyTypestringSiTipo de clave: DOCUMENT, EMAIL, PHONE, RANDOM. Obligatorio ya que la API no consulta DICT
details.namestringNoNombre del titular de la clave (máx 100 caracteres). Algunos proveedores de liquidación lo exigen: recomendamos enviarlo siempre
details.documentstringNoCPF (11 dígitos) o CNPJ (14 dígitos) válido del titular de la clave, solo números. Algunos proveedores de liquidación lo exigen: recomendamos enviarlo siempre. La API valida solo el formato; vea Verificación de titularidad por liquidante
details.checkPixKeyWithDocumentbooleanNoSi es true, solicita verificar que la clave pertenece al CPF/CNPJ de details.document y rechazar el pago si hay divergencia. Exige details.document (sin él, la API responde 400). Solo tiene efecto en los proveedores de liquidación que soportan la verificación. Por defecto: false

Formatos aceptados para details.key

keyTypeFormatoEjemplo
DOCUMENTCPF: 11 digitos / CNPJ: 14 digitos (solo numeros)12345678909, 12345678000195
EMAILDireccion de email validausuario@exemplo.com
PHONEDDD + numero (10-11 digitos, sin DDI +55)11999999999
RANDOMUUID (con o sin guiones)a1b2c3d4-e5f6-4890-abcd-ef1234567890

El pago siempre se direcciona por la clave PIX (details.key). La API Gateways valida el formato de details.document, pero no lo compara con details.key ni consulta la DICT antes de enviar. La verificación contra el titular real de la clave depende del proveedor de liquidación de su cuenta (y, en algunos proveedores, de details.checkPixKeyWithDocument). Sin esa verificación, un details.document divergente no bloquea el pago: el valor se acredita al dueño de la clave. Vea Verificación de titularidad por liquidante.


Ejemplos de Request

Pago por CPF -- el caso mas comun. El details.key y details.document deben ser iguales (ambos son el CPF). La API no verifica esa igualdad: garantícela de su lado antes de enviar.

{
  "value": 150.00,
  "externalId": "PAG-2024-0001",
  "description": "Pagamento freelancer - Janeiro/2024",
  "details": {
    "key": "12345678909",
    "keyType": "DOCUMENT",
    "name": "Ana Costa",
    "document": "12345678909"
  }
}

Verificación de titularidad por liquidante

La API Gateways valida details.document solo en cuanto al formato (11 o 14 dígitos y dígitos verificadores) y valida details.key según el formato esperado para el keyType. No compara details.document con details.key, no consulta la DICT y no bloquea la operación cuando ambos divergen. El pago siempre se direcciona por la clave PIX.

La verificación del documento contra el titular real de la clave, cuando existe, la realiza el proveedor de liquidación configurado en su cuenta:

  • Algunos proveedores verifican details.document siempre que se envía el campo. Si hay divergencia, la transacción termina en ERROR, sin débito, y el webhook trae el mensaje del proveedor.
  • Otros solo realizan la verificación cuando usted envía details.checkPixKeyWithDocument: true.
  • En los demás, el campo se acepta pero no se verifica: el pago se acredita al dueño de la clave.

¿Cómo saber el comportamiento de mi cuenta? El proveedor de liquidación se define por cuenta. En caso de duda, consulte a su gerente de integración. Si su operación exige que un documento divergente bloquee el pago, valide la titularidad de su lado antes de enviar: para keyType: DOCUMENT, asegúrese de que details.document sea igual a details.key.


Ejemplos de Código

cURL
curl -X POST "https://<api-host>/api/pix/cash-out" \
  -H "Authorization: Bearer $PIX_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "value": 150.00,
  "externalId": "PAG-2024-0001",
  "description": "Pagamento freelancer - Janeiro/2024",
  "details": {
    "key": "12345678909",
    "keyType": "DOCUMENT",
    "name": "Ana Costa",
    "document": "12345678909"
  }
}'
const axios = require('axios');

const response = await axios.post('https://<api-host>/api/pix/cash-out',
  {
  "value": 150.00,
  "externalId": "PAG-2024-0001",
  "description": "Pagamento freelancer - Janeiro/2024",
  "details": {
    "key": "12345678909",
    "keyType": "DOCUMENT",
    "name": "Ana Costa",
    "document": "12345678909"
  }
},
  {
    headers: {
      'Authorization': `Bearer ${process.env.PIX_API_TOKEN}`,
      'Content-Type': 'application/json',
    },
  }
);
console.log(response.data);

Response (201 Created)

CampoTipoDescripcion
transactionIdstringIdentificador interno de la transacción generada (string numérico)
externalIdstringIdentificador externo informado en la solicitud
statusstringEstado inicial: PENDING. Confirmacion via webhook: CONFIRMED o ERROR
generateTimestringFecha/hora de generacion de la transaccion (ISO 8601 UTC)
{
  "transactionId": "466208",
  "externalId": "PAG-2024-0001",
  "status": "PENDING",
  "generateTime": "2024-01-15T10:30:00.000Z"
}

Errores

Retornado cuando el body no cumple con las validaciones. Los errores en campos de primer nivel (value, externalId, description, details o un campo desconocido) vienen con code: PUB_REQUEST_BODY_INVALID y los campos en details.violations, como en el ejemplo. Los errores en los campos de details.* vienen con message en forma de lista, un mensaje por campo.

{
  "statusCode": 400,
  "timestamp": "2026-04-10T15:30:34.560Z",
  "path": "/api/pix/cash-out",
  "method": "POST",
  "code": "PUB_REQUEST_BODY_INVALID",
  "message": "Request body validation failed: value: value must not be less than 0.01",
  "userMessage": "Request body is invalid.",
  "errorId": "a1b2c3d4e5f6789012345678abcdef01",
  "details": {
    "violations": {
      "value": "value must not be less than 0.01"
    }
  }
}

Causas comunes:

  • value menor que 0.01 o con mas de 2 decimales
  • details.keyType con valor invalido
  • details.key no corresponde al formato del keyType
  • details.document con CPF/CNPJ inválido
  • externalId con más de 50 caracteres o description con más de 140
  • details.checkPixKeyWithDocument: true sin details.document

Consulte la guia de integracion PIX Cash-Out para ejemplos de codigo, validacion local de claves y buenas practicas.

On this page