Skip to main content
Usa esta consulta para confirmar el estado final de un pago QR luego del redirect del usuario o cuando la operación permanece pendiente.
GET /charges/{merchant_code}/{merchant_operation_number}/{transaction_id}
endpoint
Este flujo usa la misma estructura general documentada en el Overview de Consulta. Aquí se detalla específicamente el objeto operation.transactions[] para pagos con QR.

¿Cuándo usarla?

Después del redirect

Para contrastar el retorno del navegador con el estado real de backend.

Confirmación final

Para obtener el estado definitivo antes de actualizar la orden en tu sistema.

QR pendiente

Para recuperar el qr_image, qr_id y la fecha de expiración mientras el pago sigue pendiente.

Seguimiento operativo

Para validar si la operación pasó de PENDIENTE a AUTORIZADO, EXPIRADO o CANCELADO.

Consideraciones

No marques la operación como exitosa solo por el retorno del usuario. Usa la consulta o la notificación S2S como validación final.
En esta documentación se usa method_details para mantener consistencia con el resto de la referencia. Si en material previo encuentras method_detail, trátalo como el mismo objeto.
En estado PENDIENTE, el objeto processor_response suele devolver el QR generado. Cuando la operación queda AUTORIZADO, ese mismo objeto puede devolver datos de autorización.

Response

Objeto operation.transactions[] para pagos con QR dentro de la trama de respuesta del API de Consulta.

Objeto operation.transactions[]

CampoDescripciónTipoObligatorio
operation.transactions[].transaction_idIdentificador único de la transacción.StringSI
operation.transactions[].channelCanal por el cual se realizó la transacción. Valor esperado: ecommerce.StringSI
operation.transactions[].stateEstado actual de la transacción. Valores frecuentes: PENDIENTE, AUTORIZADO, INVALIDO, EXPIRADO, CANCELADO, LIQUIDADO.StringSI
operation.transactions[].state_reasonObservación o detalle del estado.StringSI
operation.transactions[].amountMonto de la transacción.StringSI
operation.transactions[].currencyCódigo de la moneda de la operación.StringSI
operation.transactions[].payment_methodObjeto que contiene información sobre el método de pago usado en la transacción.ObjectSI
operation.transactions[].payment_method.method_nameNombre del método de pago usado en la transacción. Valor esperado: QR.StringSI
operation.transactions[].payment_method.method_detailsObjeto que contiene información detallada relacionada al método.ObjectNO
operation.transactions[].expiration_dateVisible en estado PENDIENTE. Objeto que contiene la fecha en la que expirará la transacción.ObjectNO
operation.transactions[].processor_responseObjeto que contiene el resultado devuelto por la procesadora. Su contenido varía según el estado de la transacción.ObjectNO
operation.transactions[].additional_fieldsObjeto que contiene los datos adicionales de la transacción enviados en el request.ObjectNO
operation.transactions[].lifecycleArray que contiene el listado de estados por los cuales pasó la transacción.ArraySI

Objeto operation.transactions[].payment_method.method_details

CampoDescripciónTipoObligatorio
operation.transactions[].payment_method.method_details.masked_panTarjeta enmascarada usada en la transacción.StringNO
operation.transactions[].payment_method.method_details.brandMarca de la tarjeta usada en la transacción.StringNO
operation.transactions[].payment_method.method_details.binBIN de la tarjeta usada en la transacción.StringNO
operation.transactions[].payment_method.method_details.last_panÚltimos 4 dígitos de la tarjeta usada en la transacción.StringNO
operation.transactions[].payment_method.method_details.card_typeTipo de tarjeta.StringNO
operation.transactions[].payment_method.method_details.card_countryPaís de la tarjeta.StringNO
operation.transactions[].payment_method.method_details.issuerBanco emisor de la tarjeta.StringNO
operation.transactions[].payment_method.method_details.callback_urlURL del callback enviado en la autorización.StringNO

Objeto operation.transactions[].expiration_date

CampoDescripciónTipoObligatorio
operation.transactions[].expiration_date.utc_timeFecha en UTC.StringNO
operation.transactions[].expiration_date.unix_timeFecha en Unix time.IntegerNO

Objeto operation.transactions[].processor_response

CampoDescripciónTipoObligatorio
operation.transactions[].processor_response.dateVisible normalmente en estado PENDIENTE. Fecha devuelta por la procesadora al generar el QR.StringNO
operation.transactions[].processor_response.qr_imageVisible normalmente en estado PENDIENTE. Imagen en base64 del QR generado.StringNO
operation.transactions[].processor_response.qr_idVisible normalmente en estado PENDIENTE. ID del QR generado por la procesadora.StringNO
operation.transactions[].processor_response.authorization_codeVisible normalmente en estado AUTORIZADO o DENEGADO. Código de autorización.StringNO
operation.transactions[].processor_response.brand_transaction_idVisible normalmente en estado AUTORIZADO o DENEGADO. ID de la transacción ante la marca.StringNO
operation.transactions[].processor_response.result_messageObjeto que contiene el mensaje del resultado devuelto por la procesadora.ObjectNO

Objeto operation.transactions[].processor_response.result_message

CampoDescripciónTipoObligatorio
operation.transactions[].processor_response.result_message.codeCódigo del resultado de la autorización o generación del QR.StringNO
operation.transactions[].processor_response.result_message.descriptionDescripción del resultado de la autorización o generación del QR.StringNO

Objeto operation.transactions[].lifecycle

CampoDescripciónTipoObligatorio
operation.transactions[].lifecycle[].stateEstado de la transacción. Valores frecuentes: REGISTRADO, PENDIENTE, AUTORIZADO, EXTORNADO, CANCELADO, EXPIRADO, LIQUIDADO.StringSI
operation.transactions[].lifecycle[].dateObjeto que contiene la fecha en la que se realizó el cambio de estado.ObjectSI

Objeto operation.transactions[].lifecycle[].date

CampoDescripciónTipoObligatorio
operation.transactions[].lifecycle[].date.utc_timeFecha en UTC.StringSI
operation.transactions[].lifecycle[].date.unix_timeFecha en Unix time.IntegerSI

Ejemplo: pendiente

Response de consulta de QR en estado PENDIENTE.
{
  "success": true,
  "merchant_code": "abc",
  "operation": {
    "merchant_operation_number": "2391645",
    "state": "PENDIENTE",
    "created_at": {
      "utc_time": "2024-03-12T22:49:36.018Z",
      "unix_time": 1710282940
    },
    "amount": "15000",
    "currency": "604",
    "transactions": [
      {
        "transaction_id": "5hk8rwa3h3cq9oyfs3a28v1ms",
        "channel": "ecommerce",
        "state": "PENDIENTE",
        "state_reason": "QR generado, pendiente de pago",
        "amount": "15000",
        "currency": "604",
        "payment_method": {
          "method_name": "QR",
          "method_details": {
            "callback_url": "https://pay-me.com/callback"
          }
        },
        "expiration_date": {
          "utc_time": "2024-03-12T22:49:36.018Z",
          "unix_time": 1710282940
        },
        "processor_response": {
          "date": "2024-03-21 14:53:15.096596",
          "qr_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAV4AAAFeAQAAAADlUEq3AAAFa0lEQVR42u1bS47iQAx1i0WWOUJu0lwsUpC4GNwkR8iSRRTP+1SlmZZGmsVsrGkWEVAvSLFd9vMrE/n3rz1+wP8XeIuIj22eXrjw3WXNx4ilJxc+x3visuNtLFXBCxcu6/AYb5PeYTXX1yfWM3lv4qdwKQueY3jyQo9GjLcYHgHjROi2+0ozTTBTaXDeE98tK25b1tc1c4VdZhonJnh/rw/G6iOWHA4swBAxwTj7hI+ZQ363RjGw4nmmkxeaJLB1gcMNiuI58omPvwV/MXDLSAzqP16+p69KYL2cXhnFeaP38T0SVOQRS8vAbwWoGnhnRsK+TAU1iggcH1Nct4u8H06+D1ujIHjj5mRQ46FXbdg8mHf19NjJvFeFpS44TAiC7k4kX9xxX2ENZlu6WxkJq0XBCGAUESRaVhJc7isMoUsPdoTAOtgaFcEslfwYjN1UEQErQBSzulwRB7gwIdt0FcEtnv2d7mVG4mr6giw1YdcuVcGXZMHAXg2y17ikCEGgcgatQbogWptFwanscyPFuSHRIpRT7g6EgDMSWN/K24qC2VyYmcMufOiV9HzSNiXD43bWT2VdMK0BVkAi18gdWg92HYpnOP7G/VsVjEfF49/JfRZ3wn78dDyzWSZRf2ZZMBr8K7MtG2PiwlWSe1VcT/EczkgVwWQFMapA7uRwZABMUAxvGsK8rjCYGYkEHB2VSsfFPmclceVEPCM3HWXBfujZ9UPkTt0xVqPF88Ef+MisCw4SAvhcLI4yVdc3yAUUz9l5XU2wuAAd2toM8vGIsTVd4kOdxlcEzy29Bn3+QYYn4Y3No0XU1pOUBbP15Xfcl/KvpGIRdUkbv8VzRfDMbEsOdyrgYuvHqAy8kNzds2ekiuALY5cUB+721v1gIeWL8ew6MzR3VwTPzqxUFlldurJ4UMX5dCfCmjJWBUvdpwblIqJ+X0Rui7O3iui8riKYvVVXUiXgZOuOd5M76+NZFszW4ykNqlM6CVYK7+FhavAe/PXA6hvxUX2jSCp1fu3axuvck5QFkwGAC7BomueI1+k2HU9JKu6soCKYC+j3KWjw8cXHWUTIBY7O6+LaJeV64DmkQX1pGXzyfKnp7+2IqmlV8GXVR0Zsul623kov8br9bXeXA/vgcJH4nS4iJHKv1mWZ9qyN11UEyxqjVA0eB7NenjJVsIbyjuwnNRXBoW6xpderm2XmWO1VnQ5LSO4ZqR5YIwqMYiZaeJUZ2EUkrVA93oK/ItiMx7xOIxmK7FTH7ON+qgHHWBZ80Tu/WD5bI/y0IsfIpth/9lb1wCqLt0kQ9sT2OexijVHTGGf7XxBM11KXaqM09G9rlqUS0ySaXRjLgm8iqRqGSsZzOkGJvbaxBfu8MFhEjvvSp6UPj0XdJpdPDYT1w/F6YM2vpQb0XDrUaoWsoXNTzSf2s7aCYDLVzybguI86jzTCg22sKXmarhzY8zS7BI3J07OHVyUQq8HSYU6WBa9vHZXC24eJm+YyxAru2sl1wUM7tIg2paeackpXGrT5av/LgVXy1Qlb3fcdk5pHkTvZhRy9KnhXExyaSkSObZPQ0obVar081d7H/MqB1S2yUVSrH4psaTfMtoemEsnRr1tVMDfn07POEjR8WhqidB7OuLbR06pgHc3wsMmu5VFUNjancRNRoeF91LYWeGuqaWuRo009c8J00gnqt0HNemAx1bueV+eIqck9DZeqpljnf36Nu1cDt3+RiBAMbR74PGGjrRjPJwmsCxZEwd1l4aY7Dt1WpcFScaQIh4/20yLqJo1xP+O5IljxvE+np6ksalboVKikpL4FfzFwnJlVNtDsQk/FnjnxIF8WBf/8XfQH/A/AvwD2DA1dmGNskwAAAABJRU5ErkJggg==",
          "qr_id": "e5e36834a2294d83868d587af8ae8e13",
          "result_message": {
            "code": "0",
            "description": "Exito"
          }
        },
        "additional_fields": null,
        "lifecycle": [
          {
            "state": "REGISTRADO",
            "date": {
              "utc_time": "2024-03-12T22:49:36.018Z",
              "unix_time": 1710282940
            }
          },
          {
            "state": "PENDIENTE",
            "date": {
              "utc_time": "2024-03-12T22:49:36.018Z",
              "unix_time": 1710282940
            }
          }
        ]
      }
    ]
  },
  "meta": {
    "status": {
      "code": "00",
      "message_ilgn": [
        {
          "locale": "es_PE",
          "value": "Se proceso correctamente"
        }
      ]
    }
  }
}

Ejemplo: autorizado

Response de consulta de QR en estado AUTORIZADO.
{
  "success": true,
  "merchant_code": "abc",
  "operation": {
    "merchant_operation_number": "2391645",
    "state": "AUTORIZADO",
    "amount": "15000",
    "currency": "604",
    "transactions": [
      {
        "transaction_id": "5hk8rwa3h3cq9oyfs3a28v1ms",
        "channel": "ecommerce",
        "state": "AUTORIZADO",
        "state_reason": "Approval and completed successfully",
        "amount": "15000",
        "currency": "604",
        "payment_method": {
          "method_name": "QR",
          "method_details": {
            "masked_pan": "455788******9268",
            "brand": "VISA",
            "bin": "455788",
            "last_pan": "9268",
            "card_type": "DEBIT",
            "card_country": "PE",
            "issuer": "BANCO DE CREDITO DEL PERU - BCP",
            "callback_url": "https://pay-me.com/callback"
          }
        },
        "expiration_date": null,
        "processor_response": {
          "authorization_code": "055552",
          "result_message": {
            "code": "00",
            "description": "Approval and completed successfully"
          },
          "brand_transaction_id": "A055552"
        },
        "additional_fields": null,
        "lifecycle": [
          {
            "state": "REGISTRADO",
            "date": {
              "utc_time": "2024-03-12T22:49:36.018Z",
              "unix_time": 1710282940
            }
          },
          {
            "state": "PENDIENTE",
            "date": {
              "utc_time": "2024-03-12T22:49:36.018Z",
              "unix_time": 1710282940
            }
          },
          {
            "state": "AUTORIZADO",
            "date": {
              "utc_time": "2024-03-12T22:49:36.018Z",
              "unix_time": 1710282940
            }
          }
        ]
      }
    ]
  },
  "meta": {
    "status": {
      "code": "00",
      "message_ilgn": [
        {
          "locale": "es_PE",
          "value": "Se proceso correctamente"
        }
      ]
    }
  }
}

Siguiente paso

API de Cancelación

Revisa la cancelación para operaciones que todavía puedan anularse.