Skip to content

Consultar Cash-Out por ID

Consulta los detalles y el estado de una transaccion PIX por el transaction_id.

Endpoint

GET /api/external/transactions/:id

Headers

HeaderTipoObligatorioDescripcion
AuthorizationStringSiApiKey {client_id}:{client_secret}

Path Parameters

ParametroTipoObligatorioDescripcion
idStringSiID de la transaccion (transaction_id)

Ejemplo

bash
curl -X GET https://api.minhakonta.com/api/external/transactions/PIXOUT20260309a1b2c3d4e5f6 \
  -H "Authorization: ApiKey $CLIENT_ID:$CLIENT_SECRET"

La respuesta varia de acuerdo al estado de la transaccion. Este endpoint retorna el estado mas actualizado conocido por Minha Konta para el identificador informado. Si el identificador no se encuentra, retorna 404.

Transaccion rechazada NO aparece aqui por transaction_id

Algunos rechazos asincronicos pueden no localizarse por transaction_id inmediatamente. Use los endpoints alternativos:

Rechazos de validacion de entrada (400/422 inmediato) no pasan por este flujo porque ya retornaron error sincronico en el POST.


Respuesta -- Transaccion Liquidada (200)

json
{
  "worked": true,
  "data": {
    "id": "c7f3a8b12d4e4f6a9c1b3e5f7a9b1d3e",
    "transaction_id": "PIXOUT20260309a1b2c3d4e5f6",
    "end_to_end_id": "E04838403202603091530abcdef01",
    "external_id": "order-9876",
    "type": "pix",
    "direction": "outbound",
    "status": "settled",
    "amount": 300000,
    "fee_amount": 350,
    "net_amount": 300350,
    "description": "Pagamento fornecedor",
    "counterparty_name": "Joao Silva",
    "recipient_key": "12345678901",
    "created_at": "2026-03-09T15:30:00Z",
    "completed_at": "2026-03-09T15:30:02Z"
  }
}
CampoTipoDescripcion
data.idStringID interno de la transaccion en formato UUID canonico con guiones, cuando disponible
data.transaction_idStringIdentificador unico de la transaccion. Siempre lea el campo retornado; no derive reglas por prefijos
data.end_to_end_idStringIdentificador End-to-End en el SPI/BACEN
data.external_idStringIdentificador de su sistema. null si no informado
data.typeStringTipo de la transaccion. Valores comunes: pix, pix_return
data.directionStringDireccion del movimiento: outbound (cash-out), inbound (cash-in), credit o debit
data.statusStringStatus normalizado (ver tabla abajo)
data.amountIntegerValor en unidades base (div 10.000 para reales). 300000 = R$ 30,00
data.fee_amountIntegerTarifa cobrada en unidades base
data.net_amountIntegerValor neto en unidades base
data.descriptionStringDescripcion informada en la creacion
data.counterparty_nameStringNombre de la contraparte (pagador o receptor)
data.recipient_keyStringClave PIX del destinatario (solo para salidas)
data.created_atStringFecha de creacion (ISO 8601)
data.completed_atStringFecha de conclusion (ISO 8601), null si pendiente

Respuesta -- PIX OUT en Curso (200)

Retornado cuando la transaccion aun esta siendo procesada (antes de la confirmacion BACEN).

json
{
  "worked": true,
  "data": {
    "status": "processing",
    "transaction_id": "PIXOUT20260309a1b2c3d4e5f6",
    "end_to_end_id": "E04838403202603091530abcdef01",
    "amount": 300000,
    "fee_amount": 350,
    "net_amount": 300350,
    "external_id": "order-9876",
    "pix_key": "12345678901",
    "description": "Pagamento fornecedor",
    "type": "pix",
    "direction": "outbound",
    "payment_status": "processing",
    "started_at": "2026-03-09T15:30:00Z",
    "recipient": {
      "name": "Joao Silva",
      "key": "12345678901",
      "key_type": "cpf"
    }
  }
}
Campo adicionalTipoDescripcion
data.recipientObjectDatos del destinatario resueltos via DICT
data.recipient.nameStringNombre del titular de la clave
data.recipient.keyStringClave PIX utilizada
data.recipient.key_typeStringTipo de la clave (cpf, cnpj, email, phone, evp)
data.started_atStringFecha de inicio del procesamiento (ISO 8601)

Respuesta -- Transaccion Rechazada (200)

Retornado por los endpoints /transactions/e2e/:e2e_id y GET /transactions/ref/:external_id cuando el PIX fue rechazado por el SPI o fallo durante el procesamiento.

json
{
  "worked": true,
  "data": {
    "status": "failed",
    "transaction_id": "PIXOUT20260309a1b2c3d4e5f6",
    "end_to_end_id": "E04838403202603091530abcdef01",
    "amount": 300000,
    "fee_amount": 350,
    "external_id": "order-9876",
    "type": "pix",
    "direction": "outbound",
    "payment_status": "failed",
    "failure_reason": "rejected: AB03",
    "reason_code": "AB03",
    "reason_description": "Aborted by PSP of creditor",
    "started_at": "2026-03-09T15:30:00Z",
    "failed_at": "2026-03-09T15:30:05Z",
    "recipient": {
      "name": "Joao Silva",
      "key": "12345678901"
    }
  }
}
Campo adicionalTipoDescripcion
data.failure_reasonStringMotivo bruto del rechazo (formato: "rejected: {CODE}" para codigos BACEN, o descripciones de integracion como "dict_key_not_found", "ambiguous key", "insufficient balance")
data.reason_codeStringCodigo estructurado extraido de failure_reason. Para rechazos BACEN, sigue ISO 20022 (AC03, AB03, ED05, DUPL etc). null cuando failure_reason no contiene codigo estructurado
data.reason_descriptionStringDescripcion humana del reason_code, en ingles. Ejemplos: "Invalid creditor account number" (AC03), "Aborted by PSP of creditor" (AB03), "Settlement failed" (ED05). null cuando el codigo no es reconocido
data.recipientObjectDatos del destinatario (cuando disponibles). Puede ser omitido en fallas muy tempranas
data.failed_atStringFecha/hora del rechazo (ISO 8601)

Estructura de los codigos de rechazo

Use reason_code y reason_description para enrutamiento programatico de errores. Mantenga failure_reason solo para logs y diagnostico. Vea la tabla completa de codigos en PIX Cash-Out por Clave -- Codigos de Error.


Respuesta -- QR Code No Pagado (200)

Retornado cuando el ID corresponde a un QR Code que aun no fue pagado.

json
{
  "worked": true,
  "data": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "transaction_id": "7popu57v6us7p6pcicgq12345",
    "end_to_end_id": null,
    "external_id": "order-9876",
    "type": "pix_qrcode",
    "status": "pending",
    "amount": 300000,
    "fee_amount": 0,
    "net_amount": 300000,
    "description": "Cobrança PIX",
    "direction": "credit",
    "counterparty_name": null,
    "recipient_key": "12345678901",
    "created_at": "2026-03-09T15:30:00Z",
    "completed_at": null
  }
}
Status QRDescripcion
pendingQR Code activo, aguardando pago
settledQR Code pagado, pero la transaccion final aun esta en consolidacion. No trate como error; rehaga la consulta algunos segundos despues
expiredQR Code expirado
cancelledQR Code cancelado manualmente

Nota: cuando el QR esta pagado y la transaccion final ya fue consolidada, la respuesta pasa a ser la del shape "Transaccion Liquidada" arriba.


Valores del campo status

Status del GET

El GET /transactions/:id retorna status normalizado para seguimiento operacional.

StatusSignificado
processingPIX OUT aceptado y aun sin confirmacion final. Puede estar aguardando confirmacion del BACEN o reprocesamiento automatico por limite DICT
settledBACEN confirmo liquidacion y el saldo ya fue movido. Estado final de exito
pendingEstado intermedio raro antes de la conclusion
failedEstado final de falla. Rechazada por BACEN, expirada en reprocesamiento automatico (DICT_QUEUE_TIMEOUT) o falla operacional

Nota de compatibilidad: rows legacy (anteriores a la consolidacion del vocabulario) pueden presentar status: "completed" o status: "accepted". Tratelos como equivalentes a "settled".

Correspondencia con webhooks

  • pix.payout.queued corresponde a status: "processing" mientras la transaccion aguarda reprocesamiento automatico
  • pix.payout.confirmed siempre corresponde a status: "settled" en el GET
  • pix.payout.failed y pix.payout.rejected siempre corresponden a status: "failed" en el GET

Para QR Codes (cash-in, fuera del alcance PIX OUT), los valores posibles son pending, settled, expired y cancelled, descritos en la seccion "QR Code No Pagado" arriba.

Respuesta de Error -- 404

json
{
  "worked": false,
  "detail": "Transação não encontrada"
}

Minha Konta Instituição de Pagamento - ISPB 39929224