Descripción

El proceso de Autenticación se realiza mediante un API-KEY proveeido por la plataforma.

Datos que se deben de enviar para verificar el publicToken

En el Request (headers)

  • Authorization: Bearer <tokenJWT>
  • API-Key: <claveAPI>

En el JWT

  • exp → fecha de expiración
  • iss → issuer (código del emisor)

Ejemplo en Node.js para firma de JWT

// Generar y firmar un token JWT (JSON Web Token) utilizando una llave privada.
async function firmarJWT() {

    // Llave privada y pública
    const privateKEY = fs.readFileSync(
        path.join(__dirname, './keys/private.key'),
        'utf8'
    );

    const publicKEY = fs.readFileSync(
        path.join(__dirname, './keys/public.key'),
        'utf8'
    );

    // Payload del JWT
    const payload = {
        exp: Math.floor(Date.now() / 1000) + (60 * 60), // Expira en 1 hora
        iss: 'ABCD', // Identificador del emisor
        iat: 1727876367 // Fecha de emisión
    };

    // Firmar el JWT
    const JWT = jwt.sign(payload, privateKEY, { algorithm: 'RS256' });
}

Ejemplo de Cabecera de Autenticación

async function enviarSolicitudConJWT() {
    const token = 'JWT_generado'; // JWT previamente firmado

    const response = await axios({
        method: 'POST',
        url: 'https://api.develop.bancame.com.py/',
        headers: {
            Authorization: `Bearer ${token}`, // JWT firmado en el header
            'API-Key': 'clave-api-proporcionada-por-la-plataforma' // API-Key para autenticar
        }
    });
}

Pasos de Integración

  1. Envío de Certificado de Llave Pública
    El cliente debe enviar su certificado de llave pública (public.key) a la plataforma para verificar su identidad.
  2. Uso de la Llave Privada
    La llave privada será usada por el cliente para encriptar el JWT que va en el campo Authorization en el header HTTP.
  3. API Key
    Bancame proveerá una API Key para identificar al cliente.