Autenticación

Para interactuar con la API de Token Requestor debe autenticar sus peticiones, de esta forma identificamos y validamos la información para que sus operaciones sean seguras. La API utiliza Web Services Security Username Token Profile 1.1.

Credenciales API

En la integración con Token Requestor usted debe contar con las credenciales login y secretKey de consumidor.

  • login: Identificador del sitio, puede considerarse público, pues viaja como dato plano en las peticiones API.
  • secretKey: Llave secreta del sitio, debe ser privada, a partir de este dato se generará un nuevo tranKey que será enviado en las peticiones.

Objeto Authentication

El parámetro auth debe ser enviado en todas la peticiones API y contiene el grupo de propiedades necesarias para verificar la autenticación.

  • Name
    auth.login
    Type
    string
    is Required
    REQUIRED
    Description

    Identificador del sitio

  • Name
    auth.tranKey
    Type
    string
    is Required
    REQUIRED
    Description

    Credencial tranKey generado. A continuación se explica en detalle.

  • Name
    auth.nonce
    Type
    string
    is Required
    REQUIRED
    Description

    Valor aleatorio para cada solicitud codificado en Base64.

  • Name
    auth.seed
    Type
    string
    is Required
    REQUIRED
    Description

    Fecha actual, la cual se genera en formato ISO 8601.

Autenticación de Ejemplo

{
    "auth": {
        "login":"1441d14df19ec88431e513bb990326e1",
        "tranKey":"DGYymv6ohpYwtLWon/iADE/COoo9JXt4jqyk6D006PY=",
        "nonce":"enQ4dXh3YWhkMWM=",
        "seed":"2023-06-21T09:56:06-05:00"
    },
    ...
}

Cómo generar tu autenticación

Debes conocer y preparar los siguientes datos:

login: Credencial login provista al inicar tu integración. Identificador del sitio.

secretKey: Credencial secretKey provista al iniciar tu integración. Llave secreta del sitio.

seed: Se trata de la fecha en la que se generó la autenticación. La fecha debe estar en formato ISO 8601. Ejemplo: 2023-06-21T09:56:06-05:00

nonce: Valor arbitrario que identifica a una petición cómo única. Se genera y se utiliza para otras operaciones. Al momento de enviarlo, debe ser codificado en base 64. Ejemplo: base64('927342197')

tranKey: Se genera en cada solicitud de forma programática. Se genera con la siguiente fórmula Base64(SHA-256(nonce + seed + secretKey)) esta fórmula debe ser traducida según el lenguaje de programación utilizado.

Generate authentication

$login = "siteLogin";
$secretKey = "siteSecretKey";
$seed = date('c');
$rawNonce = rand();

$tranKey = base64_encode(hash('sha256', $rawNonce.$seed.$secretKey, true));
$nonce = base64_encode($rawNonce);

$body = [
    "auth" => [
        "login" => $login,
        "tranKey" => $tranKey,
        "nonce" => $nonce,
        "seed" => $seed,
    ],
    // ... other params
];

Posibles errores de autenticación

Código
Causa
100
UsernameToken no proporcionado (Encabezado de la autorización mal formada).
101
El identificador del consumidor no existe.
102
El hash de TranKey no coincide, puede ser incorrecto o mal formado.
103
Fecha del seed mayor de 5 minutos.
104
Consumidor inactivo