> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pay-me.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Api de Consulta con Cuotéalo

> Consulta el estado de una operación con Cuotéalo en PayIn.

Usa esta consulta para dar seguimiento a operaciones con Cuotéalo y obtener el estado final después del flujo externo de pago.

<ParamField path="GET /charges/{merchant_code}/{merchant_operation_number}/{transaction_id}" type="endpoint" />

<Note>
  Este flujo usa la misma estructura general documentada en el [Overview de Consulta](/payin/consulta). Aquí se detalla específicamente el objeto `operation.transactions[]` para pagos con Cuotéalo.
</Note>

***

## ¿Cuándo usarla?

<CardGroup cols={2}>
  <Card title="Seguimiento" icon="chart-line">
    Cuando el pago continúa fuera de la sesión principal y aún no tienes estado final.
  </Card>

  <Card title="Segunda validación" icon="shield-check">
    Cuando necesitas confirmar desde backend si la operación terminó autorizada, denegada, cancelada o liquidada.
  </Card>

  <Card title="Flujo con redirect" icon="arrow-up-right-from-square">
    Cuando necesitas consultar `continue_url`, expiración o reenviar al usuario al flujo de Cuotéalo.
  </Card>

  <Card title="Reconciliación" icon="rotate">
    Cuando necesitas validar el resultado para tu orden o conciliación operativa.
  </Card>
</CardGroup>

***

## Consideraciones

<Note>
  Conserva `merchant_code`, `merchant_operation_number` y `transaction_id` desde la autorización para consultar sin ambigüedad.
</Note>

<Note>
  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.
</Note>

<Note>
  Los campos de `processor_response` para Cuotéalo pueden variar según la procesadora. Tómalos como referenciales.
</Note>

***

## Response

Objeto `operation.transactions[]` para pagos con Cuotéalo dentro de la trama de respuesta del [API de Consulta](/payin/consulta).

### Objeto `operation.transactions[]`

| Campo                                                    | Descripción                                                                                                                       | Tipo   | Obligatorio |
| :------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------- | :----- | :---------- |
| `operation.transactions[].transaction_id`                | Identificador único de la transacción.                                                                                            | String | SI          |
| `operation.transactions[].channel`                       | Canal por el cual se realizó la transacción. Valor esperado: `ecommerce`.                                                         | String | SI          |
| `operation.transactions[].state`                         | Estado actual de la transacción. Valores frecuentes: `PENDIENTE`, `CANCELADO`, `INVALIDO`, `AUTORIZADO`, `DENEGADO`, `LIQUIDADO`. | String | SI          |
| `operation.transactions[].state_reason`                  | Observación o detalle del estado.                                                                                                 | String | SI          |
| `operation.transactions[].amount`                        | Monto de la transacción.                                                                                                          | String | SI          |
| `operation.transactions[].currency`                      | Código de la moneda de la operación.                                                                                              | String | SI          |
| `operation.transactions[].payment_method`                | Objeto que contiene información sobre el método de pago usado en la transacción.                                                  | Object | SI          |
| `operation.transactions[].payment_method.method_name`    | Nombre del método de pago usado en la transacción. Valor esperado: `CUOTEALO`.                                                    | String | SI          |
| `operation.transactions[].payment_method.method_details` | Objeto que contiene información detallada relacionada al método.                                                                  | Object | NO          |
| `operation.transactions[].continue_url`                  | Visible en estado `PENDIENTE`. URL para continuar el proceso de pago.                                                             | String | NO          |
| `operation.transactions[].expiration_date`               | Visible en estado `PENDIENTE`. Objeto que contiene la fecha en la que expirará la transacción.                                    | Object | NO          |
| `operation.transactions[].processor_response`            | Visible normalmente en estado `AUTORIZADO` o `DENEGADO`. Objeto que contiene el resultado de la autorización.                     | Object | NO          |
| `operation.transactions[].additional_fields`             | Objeto que contiene los datos adicionales de la transacción enviados en la autorización.                                          | Object | NO          |
| `operation.transactions[].lifecycle`                     | Array que contiene el listado de estados por los cuales pasó la transacción.                                                      | Array  | SI          |

***

### Objeto `operation.transactions[].payment_method.method_details`

| Campo                                                                 | Descripción                                                                 | Tipo   | Obligatorio |
| :-------------------------------------------------------------------- | :-------------------------------------------------------------------------- | :----- | :---------- |
| `operation.transactions[].payment_method.method_details.redirect_url` | Visible en estado `PENDIENTE`. URL del redirect enviado en la autorización. | String | SI          |
| `operation.transactions[].payment_method.method_details.callback_url` | URL del callback enviado en la autorización.                                | String | NO          |

***

### Objeto `operation.transactions[].expiration_date`

| Campo                                                | Descripción         | Tipo    | Obligatorio |
| :--------------------------------------------------- | :------------------ | :------ | :---------- |
| `operation.transactions[].expiration_date.utc_time`  | Fecha en UTC.       | String  | NO          |
| `operation.transactions[].expiration_date.unix_time` | Fecha en Unix time. | Integer | NO          |

***

### Objeto `operation.transactions[].processor_response`

| Campo                                                       | Descripción                                            | Tipo   | Obligatorio |
| :---------------------------------------------------------- | :----------------------------------------------------- | :----- | :---------- |
| `operation.transactions[].processor_response.credit_status` | Estado de la autorización devuelta por la procesadora. | String | NO          |
| `operation.transactions[].processor_response.operation_id`  | ID de la operación devuelta por la procesadora.        | String | NO          |

***

### Objeto `operation.transactions[].lifecycle`

| Campo                                        | Descripción                                                                                                                              | Tipo   | Obligatorio |
| :------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------- | :----- | :---------- |
| `operation.transactions[].lifecycle[].state` | Estado de la transacción. Valores frecuentes: `REGISTRADO`, `PENDIENTE`, `CANCELADO`, `INVALIDO`, `AUTORIZADO`, `DENEGADO`, `LIQUIDADO`. | String | SI          |
| `operation.transactions[].lifecycle[].date`  | Objeto que contiene la fecha en la que se realizó el cambio de estado.                                                                   | Object | SI          |

***

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

| Campo                                                 | Descripción         | Tipo    | Obligatorio |
| :---------------------------------------------------- | :------------------ | :------ | :---------- |
| `operation.transactions[].lifecycle[].date.utc_time`  | Fecha en UTC.       | String  | SI          |
| `operation.transactions[].lifecycle[].date.unix_time` | Fecha en Unix time. | Integer | SI          |

***

## Ejemplo: pendiente

Response de consulta de Cuotéalo con estado `PENDIENTE`.

```json theme={"system"}
{
  "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": "Url generada para continuar con el pago",
        "amount": "15000",
        "currency": "604",
        "payment_method": {
          "method_name": "CUOTEALO",
          "method_details": {
            "redirect_url": "https://pay-me.com",
            "callback_url": "https://pay-me.com/callback"
          }
        },
        "continue_url": "https://api.dev.alignet.io/payment/continue/cuotealo/c7dagnrwgxgh1b6kzwirheezv",
        "expiration_date": {
          "utc_time": "2024-03-12T22:49:36.018Z",
          "unix_time": 1710282940
        },
        "processor_response": null,
        "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: autorizada

Response de consulta de Cuotéalo con estado `AUTORIZADO`.

```json theme={"system"}
{
  "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": "Pago Exitoso",
        "amount": "15000",
        "currency": "604",
        "payment_method": {
          "method_name": "CUOTEALO",
          "method_details": {
            "redirect_url": "https://pay-me.com",
            "callback_url": "https://pay-me.com/callback"
          }
        },
        "continue_url": null,
        "expiration_date": null,
        "processor_response": {
          "credit_status": "APPROVED",
          "operation_id": "ABC123_ABC123"
        },
        "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

<Card title="API de Cancelación" icon="arrow-right" href="/payin/cancelacion">
  Si corresponde por estado y negocio, revisa la cancelación de la operación.
</Card>
