<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
</head>
<body style="font-family: 'Calibri', sans-serif; font-size: 11pt; color: #000000;">

<h1 style="text-align: center; font-weight: bold; font-size: 12pt; margin-bottom: 20px;">Documentación de API: Verificación de Pago Móvil (Meritop)</h1>

<p><strong>Endpoint:</strong> <span style="font-family: Consolas, monospace;">/api/v1/payments/bancoActivo/find-mobile-pay</span><br>
<strong>Método:</strong> <span style="font-family: Consolas, monospace;">POST</span><br>
<strong>Descripción:</strong> Este servicio permite consultar y validar un pago móvil realizado a través de la plataforma Meritop, utilizando los datos de la transacción para buscar coincidencias y registrar el pago en el sistema.</p>

<hr>

<h2 style="font-weight: bold; font-size: 11pt; margin-top: 15px;">1. Headers (Cabeceras)</h2>

<table border="1" cellspacing="0" cellpadding="5" style="border-collapse: collapse; width: 100%; border: 1px solid #ddd;">
    <thead>
        <tr style="background-color: #f2f2f2;">
            <th style="text-align: left; font-weight: bold; border: 1px solid #ddd;">Key</th>
            <th style="text-align: left; font-weight: bold; border: 1px solid #ddd;">Value</th>
            <th style="text-align: left; font-weight: bold; border: 1px solid #ddd;">Descripción</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td style="border: 1px solid #ddd;"><span style="font-family: Consolas, monospace; color: #c7254e; background-color: #f9f2f4;">Content-Type</span></td>
            <td style="border: 1px solid #ddd;"><span style="font-family: Consolas, monospace; color: #c7254e; background-color: #f9f2f4;">application/json</span></td>
            <td style="border: 1px solid #ddd;">Indica que el cuerpo de la solicitud es JSON.</td>
        </tr>
        <tr>
            <td style="border: 1px solid #ddd;"><span style="font-family: Consolas, monospace; color: #c7254e; background-color: #f9f2f4;">api-key</span></td>
            <td style="border: 1px solid #ddd;"><span style="font-family: Consolas, monospace; color: #c7254e; background-color: #f9f2f4;">[HASH_TOKEN]</span></td>
            <td style="border: 1px solid #ddd;">Token hash MD5/SHA de autenticación.</td>
        </tr>
    </tbody>
</table>

<hr>

<h2 style="font-weight: bold; font-size: 11pt; margin-top: 15px;">2. Request Payload (Cuerpo de la Solicitud)</h2>

<p>A continuación se muestra un ejemplo del JSON requerido.</p>

<div style="background-color: #f2f2f2; padding: 10px; border-radius: 4px; border: 1px solid #ccc; font-family: Consolas, monospace; font-size: 10pt;">
<pre style="margin: 0;">
{
  <span style="color: #0451a5;">"xtelefono"</span>: <span style="color: #a31515;">"584241829583"</span>,
  <span style="color: #0451a5;">"cbanco_ref"</span>: <span style="color: #a31515;">"0132"</span>,
  <span style="color: #0451a5;">"cbanco_dest"</span>: <span style="color: #a31515;">"0171"</span>,
  <span style="color: #0451a5;">"mmonto"</span>: <span style="color: #a31515;">"1"</span>,
  <span style="color: #0451a5;">"fmovimiento"</span>: <span style="color: #a31515;">"2026-01-08"</span>,
  <span style="color: #0451a5;">"telefono_dest"</span>: <span style="color: #a31515;">"04143966962"</span>,
  <span style="color: #0451a5;">"cci_rif"</span>: <span style="color: #a31515;">"V-25221952"</span>
}
</pre>
</div>

<hr>

<h2 style="font-weight: bold; font-size: 11pt; margin-top: 15px;">3. Diccionario de Datos</h2>

<table border="1" cellspacing="0" cellpadding="5" style="border-collapse: collapse; width: 100%; border: 1px solid #ddd;">
    <thead>
        <tr style="background-color: #f2f2f2;">
            <th style="text-align: left; font-weight: bold; border: 1px solid #ddd;">Campo</th>
            <th style="text-align: left; font-weight: bold; border: 1px solid #ddd;">Tipo</th>
            <th style="text-align: left; font-weight: bold; border: 1px solid #ddd;">Longitud / Precisión</th>
            <th style="text-align: left; font-weight: bold; border: 1px solid #ddd;">Descripción</th>
            <th style="text-align: left; font-weight: bold; border: 1px solid #ddd;">Requerido</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td style="border: 1px solid #ddd;"><span style="font-family: Consolas, monospace; color: #c7254e; background-color: #f9f2f4;">xtelefono</span></td>
            <td style="border: 1px solid #ddd;">String</td>
            <td style="border: 1px solid #ddd;">Varchar(12)</td>
            <td style="border: 1px solid #ddd;">Teléfono de origen. Formato internacional sin símbolo (ej. 58...).</td>
            <td style="border: 1px solid #ddd;">Sí</td>
        </tr>
        <tr>
            <td style="border: 1px solid #ddd;"><span style="font-family: Consolas, monospace; color: #c7254e; background-color: #f9f2f4;">cbanco_ref</span></td>
            <td style="border: 1px solid #ddd;">String</td>
            <td style="border: 1px solid #ddd;">Varchar(4)</td>
            <td style="border: 1px solid #ddd;">Código del banco de origen.</td>
            <td style="border: 1px solid #ddd;">Sí</td>
        </tr>
        <tr>
            <td style="border: 1px solid #ddd;"><span style="font-family: Consolas, monospace; color: #c7254e; background-color: #f9f2f4;">cbanco_dest</span></td>
            <td style="border: 1px solid #ddd;">String</td>
            <td style="border: 1px solid #ddd;">Varchar(12)</td>
            <td style="border: 1px solid #ddd;">Código del banco de destino.</td>
            <td style="border: 1px solid #ddd;">Sí</td>
        </tr>
        <tr>
            <td style="border: 1px solid #ddd;"><span style="font-family: Consolas, monospace; color: #c7254e; background-color: #f9f2f4;">mmonto</span></td>
            <td style="border: 1px solid #ddd;">String/Numérico</td>
            <td style="border: 1px solid #ddd;">Decimal(18, 2)</td>
            <td style="border: 1px solid #ddd;">Monto exacto de la transacción.</td>
            <td style="border: 1px solid #ddd;">Sí</td>
        </tr>
        <tr>
            <td style="border: 1px solid #ddd;"><span style="font-family: Consolas, monospace; color: #c7254e; background-color: #f9f2f4;">fmovimiento</span></td>
            <td style="border: 1px solid #ddd;">String/Date</td>
            <td style="border: 1px solid #ddd;">YYYY-MM-DD</td>
            <td style="border: 1px solid #ddd;">Fecha en la que se realizó el movimiento.</td>
            <td style="border: 1px solid #ddd;">Sí</td>
        </tr>
        <tr>
            <td style="border: 1px solid #ddd;"><span style="font-family: Consolas, monospace; color: #c7254e; background-color: #f9f2f4;">telefono_dest</span></td>
            <td style="border: 1px solid #ddd;">String</td>
            <td style="border: 1px solid #ddd;">Varchar(12)</td>
            <td style="border: 1px solid #ddd;">Teléfono de destino (Hardcodeado/Fijo según integración).</td>
            <td style="border: 1px solid #ddd;">Sí</td>
        </tr>
        <tr>
            <td style="border: 1px solid #ddd;"><span style="font-family: Consolas, monospace; color: #c7254e; background-color: #f9f2f4;">cci_rif</span></td>
            <td style="border: 1px solid #ddd;">String</td>
            <td style="border: 1px solid #ddd;">Varchar</td>
            <td style="border: 1px solid #ddd;">Cédula o RIF del pagador.</td>
            <td style="border: 1px solid #ddd;">Sí</td>
        </tr>
    </tbody>
</table>

<hr>

<h2 style="font-weight: bold; font-size: 11pt; margin-top: 15px;">4. Response (Respuesta Estimada)</h2>

<h3 style="font-weight: bold; font-size: 11pt;">Exitoso (200 OK)</h3>

<div style="background-color: #f2f2f2; padding: 10px; border-radius: 4px; border: 1px solid #ccc; font-family: Consolas, monospace; font-size: 10pt;">
<pre style="margin: 0;">
{
  <span style="color: #0451a5;">"code"</span>: <span style="color: #098658;">200</span>,
  <span style="color: #0451a5;">"Refpk"</span>: <span style="color: #a31515;">"12345678"</span>
}
</pre>
</div>

<h3 style="font-weight: bold; font-size: 11pt; margin-top: 15px;">Errores Comunes</h3>

<table border="1" cellspacing="0" cellpadding="5" style="border-collapse: collapse; width: 100%; border: 1px solid #ddd;">
    <thead>
        <tr style="background-color: #f2f2f2;">
            <th style="text-align: left; font-weight: bold; border: 1px solid #ddd;">Código HTTP</th>
            <th style="text-align: left; font-weight: bold; border: 1px solid #ddd;">Respuesta JSON</th>
            <th style="text-align: left; font-weight: bold; border: 1px solid #ddd;">Causa Probable</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td style="border: 1px solid #ddd;">401</td>
            <td style="border: 1px solid #ddd;"><span style="font-family: Consolas, monospace; background-color: #f9f2f4;">{<span style="color: #0451a5;">"status"</span>:<span style="color: #0000ff;">false</span>, <span style="color: #0451a5;">"message"</span>: <span style="color: #a31515;">"Error en el token..."</span>}</span></td>
            <td style="border: 1px solid #ddd;">Token de autenticación inválido o expirado.</td>
        </tr>
        <tr>
            <td style="border: 1px solid #ddd;">201</td>
            <td style="border: 1px solid #ddd;"><span style="font-family: Consolas, monospace; background-color: #f9f2f4;">{<span style="color: #0451a5;">"status"</span>:<span style="color: #098658;">201</span>, <span style="color: #0451a5;">"error"</span>: <span style="color: #a31515;">"Pago móvil ya registrado..."</span>}</span></td>
            <td style="border: 1px solid #ddd;">El pago ya fue procesado anteriormente.</td>
        </tr>
        <tr>
            <td style="border: 1px solid #ddd;">201</td>
            <td style="border: 1px solid #ddd;"><span style="font-family: Consolas, monospace; background-color: #f9f2f4;">{<span style="color: #0451a5;">"status"</span>:<span style="color: #098658;">201</span>, <span style="color: #0451a5;">"error"</span>: <span style="color: #a31515;">"No se encontraron los datos..."</span>}</span></td>
            <td style="border: 1px solid #ddd;">El pago no existe en Meritop o los datos no coinciden.</td>
        </tr>
        <tr>
            <td style="border: 1px solid #ddd;">500</td>
            <td style="border: 1px solid #ddd;"><span style="font-family: Consolas, monospace; background-color: #f9f2f4;">{<span style="color: #0451a5;">"code"</span>: <span style="color: #098658;">500</span>, <span style="color: #0451a5;">"message"</span>: <span style="color: #a31515;">"Error..."</span>}</span></td>
            <td style="border: 1px solid #ddd;">Error en el servidor o problema con la base de datos.</td>
        </tr>
    </tbody>
</table>

<hr>

<h2 style="font-weight: bold; font-size: 11pt; margin-top: 15px;">5. Instrucciones de Uso (Paso a Paso)</h2>

<ol style="margin-left: 20px;">
    <li><strong>Obtener Credenciales:</strong> Asegúrese de tener el token de autenticación (<code>api-key</code>) válido proporcionado por el administrador del sistema.</li>
    <li><strong>Preparar Datos:</strong> Recopile los datos del pago móvil realizado por el cliente (referencia, banco origen, teléfono, monto exacto, fecha).</li>
    <li><strong>Construir Payload:</strong> Arme el JSON siguiendo estrictamente el formato especificado en la sección "Request Payload". Asegúrese de que el formato de fecha sea <code>YYYY-MM-DD</code>.</li>
    <li><strong>Enviar Solicitud:</strong> Realice una petición POST al endpoint <code>/api/v1/bancamiga/meritop/find-mobile-pay</code> incluyendo los headers requeridos.</li>
    <li><strong>Analizar Respuesta:</strong>
        <ul style="list-style-type: circle; margin-left: 20px; margin-top: 5px;">
            <li>Si recibe un <strong>Code 200</strong>, el pago fue verificado y registrado exitosamente. Guarde el <code>Refpk</code> devuelto.</li>
            <li>Si recibe un error (<strong>Code 201/500</strong>), verifique el mensaje de error para determinar si el pago ya existía, no se encontró o hubo un problema técnico.</li>
        </ul>
    </li>
</ol>

</body>
</html>
