NAV
bash

Introducción

Bienvenido a la documentación de Tesseract API v0.1

El API de Tesseract le permite administrar sus licencias y tokens en la nube de una manera sencilla, mediante la utilización de peticiones HTTP y HTTPS.

La documentación del API inicia con la visión general sobre el diseño y la tecnología que se ha implementado.

Request

EXAMPLE


curl -i -X POST -H "Accept: application/json" \
    -H "Authorization: Basic cmasefgtby5hcmVu123" \
    -d "{\"duration\": 365, \"stock\": 1000}" \
    https://sandbox.tesseract.mx/api/v0.1/institution/licenses

REQUEST HEADERS


# POST https://sandbox.tesseract.mx/api/v0.1/institution/licenses
Content-Type: application/json;charset=UTF-8
Authorization: Basic cmasefgtby5hcmVu123

REQUEST BODY


{
    "duration": 365,
    "stock": 1000
}

REQUEST HEADERS


# POST https://sandbox.tesseract.mx/api/v0.1/institution/licenses
Content-Type: application/xml;charset=UTF-8
Authorization: Basic cmasefgtby5hcmVu123

REQUEST BODY


<License>
    <duration>365</duration>
    <stock>1000</stock>
</License>

Tesseract API v0.1 tiene soporte para recibir su solicitud HTTP y HTTPS en formato JSON ó XML, como se muestra en los siguientes ejemplos:

Response

EXAMPLE


curl -i -X GET -H "Accept: application/json" \
    -H "Authorization: Basic cmasefgtby5hcmVu123" \
    https://sandbox.tesseract.mx/api/v0.1/institution/licenses/1

REQUEST HEADERS


# GET https://sandbox.tesseract.mx/api/v0.1/institution/licenses/1
Accept: application/json
Authorization: Basic cmasefgtby5hcmVu123

RESPONSE HEADERS


Content-Type: application/hal+json
Status: 200 Ok

RESPONSE BODY


{
    "id": 1,
    "status": "ACTIVATED",
    "stock": 1000,
    "free_tokens": 939,
    "used_tokens": 61,
    "created_at": "2017-04-11",
    "activated_at": "2017-04-11",
    "expirated_at": "2017-07-20",
    "_links": {
        "self": {
            "href": "https://sandbox.tesseract.mx/api/v0.1/institution/licenses/1"
        }
    }
}

REQUEST HEADERS


# GET https://sandbox.tesseract.mx/api/v0.1/institution/licenses/1
Accept: application/xml
Authorization: Basic cmasefgtby5hcmVu123

RESPONSE HEADERS


Content-Type: application/xml
Status: 200 Ok

RESPONSE BODY


<_License>
    <id>1</id>
    <status>ACTIVATED</status>
    <stock>1000</stock>
    <free_tokens>939</free_tokens>
    <used_tokens>61</used_tokens>
    <created_at>2017-04-11</created_at>
    <activated_at>2017-04-11</activated_at>
    <expirated_at>2017-07-20</expirated_at>
    <links>
        <links>
            <rel>self</rel>
            <href>https://sandbox.tesseract.mx/api/v0.1/institution/licenses/1</href>
        </links>
    </links>
</_License>

Tesseract API v0.1 tiene soporte para responder su solicitud HTTP y HTTPS en formato JSON ó XML, como se muestra en los siguientes ejemplos:

Además del contenido principal de los recursos, la respuesta contiene al objeto _links, este objeto contiene información sobre páginación en el caso de las colecciones y a recursos asociados en caso de un recurso individual.


{
    ...

    "_links": {
        "first": {
              "href": "https://sandbox.tesseract.mx/api/v0.1/institution/licenses?page=0&size=15"
        },
        "prev": {
            "href": "https://sandbox.tesseract.mx/api/v0.1/institution/licenses?page=0&size=15"
        },
        "self": {
            "href": "https://sandbox.tesseract.mx/api/v0.1/institution/licenses?page=1&size=15"
        },
        "next": {
            "href": "https://sandbox.tesseract.mx/api/v0.1/institution/licenses?page=2&size=15"
        },
        "last": {
            "href": "https://sandbox.tesseract.mx/api/v0.1/institution/licenses?page=3&size=15"
        }
    },
    "page": {
        "size": 15,
        "totalElements": 60,
        "totalPages": 4,
        "number": 1
    }
}

Por defecto en el caso de colecciones se regresarán 15 elementos y como máximo 30, con la siguiente especificación:

Nombre Tipo Descripción
first object Link al primer recurso
prev object Link al recurso anterior
self object Link del recurso actual
next object Link al siguiente recurso
last object Link al último recurso

Adicionalmente es acompañado de meta información con el objeto page, el cual se describe a continuación:

Nombre Tipo Descripción
size number Elementos solicitados en la actual solicitud
totalElements number Total de elementos encontrados
totalPages number Total de páginas de elementos
number number Página actual (inicia en la página 0)

{
    ...

    "_links": {
        "self": {
            "href": "https://sandbox.tesseract.mx/api/v0.1/institution/licenses/1/tokens/1"
        },
        "act_code": {
            "href": "https://sandbox.tesseract.mx/api/v0.1/institution/licenses/1/tokens/1/act-code"
        },
        "challenge": {
            "href": "https://sandbox.tesseract.mx/api/v0.1/institution/licenses/1/tokens/1/challenge"
        },
        "enrollment": {
            "href": "https://sandbox.tesseract.mx/api/v0.1/institution/licenses/1/tokens/1/enrollment"
        },
        "otp": {
            "href": "https://sandbox.tesseract.mx/api/v0.1/institution/licenses/1/tokens/1/otp"
        }
    }
}

Al tratarse de un recurso individual el objeto _links contiene información hacia recursos relacionados y hacia la localización del recurso actual, a continuación se describe un ejemplo:

Nombre Tipo Descripción
self object Link del recurso actual
act_code object Link para recuperar el código de activación
challenge object Link para recuperar un nuevo challenge
enrollment object Link para recuperar la cadena de enrolamineto
otp object Link para validar un OTP

Autorización

EXAMPLE


curl -i -X -H "Accept: application/json" \
    -H "Authorization: Basic cmasefgtby5hcmVu123" \
    https://sandbox.tesseract.mx/api/v0.1/institution/licenses

REQUEST HEADERS


# GET https://sandbox.tesseract.mx/api/v0.1/institution/licenses
Accept: application/json
Authorization: Basic cmasefgtby5hcmVu123

Para que tu aplicación consuma en su totalidad ó parcialmente los recursos disponibles, debes generar un API_KEY desde el Panel de Control de Tesseract. Una vez obtenido el API_KEY deberás agregarlo en la cabezera de su petición, como se muestra en el siguiente ejemplo:

Por seguridad deberá resguardar esta API_KEY, ya que tras su generación, la interfaz web sólo mostrará el API_KEY una vez.

Autenticación

Recuperar información de autenticación

REQUEST HEADERS


Authorization: Basic cmljYXJkby5hcmVuYXNAdGVzc2VyYWN0Lm14OmZVVkxlPTU/NTlMKVN
Content-Type: application/hal+json;charset=UTF-8

RESPONSE HEADERS


Content-Type: application/hal+json;charset=UTF-8
Status: 200 Ok

RESPONSE BODY


{
    "id": 2,
    "full_name": "Cristian Jaramillo",
    "email": "cristian.jaramillo@tesseract.mx",
    "enabled": false,
    "role": {
        "id": 2,
        "name": "TESSERACT_ADMIN_ROLE",
        "permissions": [
            "ADMIN_READ_LICENSE",
            "ADMIN_READ_INSTITUTION",
            "READ_PERMISSION",
            "ADMIN_READ_TOKENS",
            "READ_ROLES",
            "ADMIN_ACTIVATED_LICENSE",
            "ADMIN_READ_USERS",
            "ADMIN_READ_APPLICATION",
            "READ_AUTH",
            "ADMIN_DELETE_LICENSE",
            "ADMIN_WRITE_LICENSE",
            "ADMIN_READ_APPLICATIONS",
            "READ_PERMISSIONS",
            "ADMIN_DELETE_INSTITUTION",
            "ADMIN_READ_USER",
            "ADMIN_UPDATE_LICENSE",
            "ADMIN_READ_INSTITUTIONS",
            "ADMIN_WRITE_INSTITUTION",
            "READ_ROLE",
            "ADMIN_READ_LICENSES",
            "ADMIN_UPDATE_INSTITUTION",
            "ADMIN_READ_TOKEN"
        ],
        "_links": {
            "self": {
                "href": "https://sandbox.tesseract.mx/api/v0.1/roles/2"
            }
        }
    },
    "created_at": 1518640471000,
    "updated_at": 1518640471000,
    "_links": {
        "self": {
            "href": "https://sandbox.tesseract.mx/api/v0.1/institution/users/2"
        }
    }
}

Para verificar nuestros permisos realizaremos una petición GET a https://sandbox.tesseract.mx/api/v0.1/auth.

A continuación se muestra la descripción del RESPONSE del recurso recuperado.

Nombre Tipo Descripción
id int identificador único del recurso user
full_name string nombre del usuario
email string correo electrónico
enabled boolean activado
role object rol que pose junto con los permisos
created_at long fecha de creación
updated_at long fecha de actualización
_links object Links a recursos relacionados

Token

Recuperar todos los tokens

EXAMPLE


curl -i -X GET -H "Accept: application/json" \
        -H "Authorization: Basic cmasefgtby5hcmVu123" \
        https://sandbox.tesseract.mx/api/v0.1/institution/licenses/{license-id}/tokens

REQUEST HEADERS


# GET https://sandbox.tesseract.mx/api/v0.1/institution/licenses/{license-id}/tokens HTTP/1.1
Accept: application/json;charset=UTF-8
Authorization: Basic cmasefgtby5hcmVu123

RESPONSE HEADERS


Content-Type: application/hal+json;charset=UTF-8
Status: 200 Ok

RESPONSE BODY


{
    "_embedded": {
        "_Tokens": [
            {
                "id": 1,
                "serial": "01000001",
                "token_type": "CHALLENGE_RESPONSE",
                "token_status": "ACTIVE",
                "attempt": 1,
                "created_at": 1518641036000,
                "updated_at": 1518641145000,
                "_links": {
                    "self": {
                        "href": "https://sandbox.tesseract.mx/api/v0.1/institution/licenses/1/tokens/1"
                    },
                    "serial": {
                        "href": "https://sandbox.tesseract.mx/api/v0.1/institution/tokens/01000001"
                    },
                    "otp": {
                        "href": "https://sandbox.tesseract.mx/api/v0.1/institution/tokens/01000001/otp"
                    },
                    "challenge": {
                        "href": "https://sandbox.tesseract.mx/api/v0.1/institution/tokens/01000001/challenge"
                    }
                }
            },
            {
                "id": 2,
                "serial": "01000002",
                "token_type": "FOR_EVENT",
                "token_status": "ACTIVE",
                "attempt": 1,
                "created_at": 1518641156000,
                "updated_at": 1518641323000,
                "_links": {
                    "self": {
                        "href": "https://sandbox.tesseract.mx/api/v0.1/institution/licenses/1/tokens/2"
                    },
                    "serial": {
                        "href": "https://sandbox.tesseract.mx/api/v0.1/institution/tokens/01000002"
                    },
                    "otp": {
                        "href": "https://sandbox.tesseract.mx/api/v0.1/institution/tokens/01000002/otp"
                    }
                }
            },
            {
                "id": 3,
                "serial": "01000003",
                "token_type": "CHALLENGE_RESPONSE",
                "token_status": "WAITING",
                "attempt": 1,
                "created_at": 1518643033000,
                "updated_at": 1518643045000,
                "_links": {
                    "self": {
                        "href": "https://sandbox.tesseract.mx/api/v0.1/institution/licenses/1/tokens/3"
                    },
                    "serial": {
                        "href": "https://sandbox.tesseract.mx/api/v0.1/institution/tokens/01000003"
                    },
                    "act-code": {
                        "href": "https://sandbox.tesseract.mx/api/v0.1/institution/tokens/01000003/act-code"
                    },
                    "enrollment": {
                        "href": "https://sandbox.tesseract.mx/api/v0.1/institution/tokens/01000003/enrollment"
                    }
                }
            },
            {
                "id": 5,
                "serial": "01000005",
                "token_type": "CHALLENGE_RESPONSE",
                "token_status": "ACTIVE",
                "attempt": 0,
                "created_at": 1518814576000,
                "updated_at": 1518815055000,
                "_links": {
                    "self": {
                        "href": "https://sandbox.tesseract.mx/api/v0.1/institution/licenses/1/tokens/5"
                    },
                    "serial": {
                        "href": "https://sandbox.tesseract.mx/api/v0.1/institution/tokens/01000005"
                    },
                    "otp": {
                        "href": "https://sandbox.tesseract.mx/api/v0.1/institution/tokens/01000005/otp"
                    },
                    "challenge": {
                        "href": "https://sandbox.tesseract.mx/api/v0.1/institution/tokens/01000005/challenge"
                    }
                }
            }
        ]
    },
    "_links": {
        "self": {
            "href": "https://sandbox.tesseract.mx/api/v0.1/institution/licenses/1/tokens?page=0&size=15"
        }
    },
    "page": {
        "size": 15,
        "totalElements": 4,
        "totalPages": 1,
        "number": 0
    }
}

Para recuperar todos los tokens de una licencia procedemos a realizar
una petición GET a la siguiente URL https://sandbox.tesseract.mx/api/v0.1/institution/licenses/{license-id}/tokens,
donde license-id es el identificador único de la licencia.

Obteniendo como RESPONSE el siguiente contenido:

Nombre Tipo Descripción
_embedded object Contenedor de recursos incrustados para licenses
_links object Links a recursos asociados
page object Meta información de paginación

Descripción del contenido de _embedded

Nombre Tipo Descripción
_Tokens array Array de objetos Token recuperados

Descripción del contenido de _links

Nombre Tipo Descripción
first object Link al primer recurso
prev object Link al recurso anterior
self object Link del recurso actual
next object Link al siguiente recurso
last object Link al último recurso

Descripción del contenido de page

Nombre Tipo Descripción
size number Elementos solicitados en la actual solicitud
totalElements number Total de elementos encontrados
totalPages number Total de páginas de elementos
number number Página actual (inicia en la página 0)

Recuperar un token

EXAMPLE


curl -i -X GET -H "Accept: application/json" \
    -H "Authorization: Basic cmasefgtby5hcmVu123" \
    https://sandbox.tesseract.mx/api/v0.1/institution/licenses/{license-id}/tokens/{token-id}

REQUEST HEADERS


#GET https://sandbox.tesseract.mx/api/v0.1/institution/licenses/{license-id}/tokens/{token-id}
Accept: application/json;charset=UTF-8
Authorization: Basic cmasefgtby5hcmVu123

RESPONSE HEADERS


Content-Type: application/hal+json;charset=UTF-8
Status: 200 Ok

RESPONSE BODY


{
    "id": 1,
    "serial": "01000001",
    "token_type": "CHALLENGE_RESPONSE",
    "token_status": "ACTIVE",
    "attempt": 1,
    "created_at": 1518641036000,
    "updated_at": 1518641145000,
    "_links": {
        "self": {
            "href": "https://sandbox.tesseract.mx/api/v0.1/institution/licenses/1/tokens/1"
        },
        "serial": {
            "href": "https://sandbox.tesseract.mx/api/v0.1/institution/tokens/01000001"
        },
        "otp": {
            "href": "https://sandbox.tesseract.mx/api/v0.1/institution/tokens/01000001/otp"
        },
        "challenge": {
            "href": "https://sandbox.tesseract.mx/api/v0.1/institution/tokens/01000001/challenge"
        }
    }
}

Para recuperar un token es necesario enviar una petición GET a la
siguiente URL https://sandbox.tesseract.mx/api/v0.1/institution/licenses/{license-id}/tokens/{token-id}, donde:

Nombre Tipo Descripción
license-id number Identificador único para licencia perteneciente a la institución
token-id number Identificador único para el token de la licencia especificada

A continuación se muestra la descripción del RESPONSE obtenido:

Nombre Tipo Descripción
id number Identificador único para el token
token_type string Tipo de token (más información aquí)
token_status string Estado del token (más información aquí)
createdAt number Fecha en formato unix en de creación del token
_links object Links a recursos asociados

Descripción del contenido de _links:

Nombre Tipo Descripción
self object Link del recurso actual
act_code object Link para recuperar el código de activación (más información aquí)
challenge object Link para recuperar un nuevo challenge (más información aquí)
enrollment object Link para recuperar la cadena de enrolamineto (más información aquí)
otp object Link para validar un OTP (más información aquí)

Crear token

EXAMPLE


curl -i -X POST -H "Accept: application/json" \
    -H "Authorization: Basic cmasefgtby5hcmVu123" \
    -d "{\"token_type\": \"CHALLENGE_RESPONSE\"}" \
    https://sandbox.tesseract.mx/api/v0.1/institution/licenses/{license-id}/tokens

REQUEST HEADERS


#POST https://sandbox.tesseract.mx/api/v0.1/institution/licenses/{license-id}/tokens HTTP/1.1
Accept: application/json;charset=UTF-8
Authorization: Basic cmasefgtby5hcmVu123

REQUEST BODY


{
    "token_type": "FOR_EVENT"
}

RESPONSE HEADERS


Content-Type: application/hal+json;charset=UTF-8
Location: https://sandbox.tesseract.mx/api/v0.1/institution/licenses/1/tokens/6
Status: 201 Created

RESPONSE BODY


{
    "id": 6,
    "serial": "01000006",
    "token_type": "FOR_EVENT",
    "token_status": "UNASSIGNED",
    "attempt": 0,
    "created_at": 1519089092455,
    "updated_at": 1519089092455,
    "_links": {
        "self": {
            "href": "https://sandbox.tesseract.mx/api/v0.1/institution/licenses/1/tokens/6"
        },
        "serial": {
            "href": "https://sandbox.tesseract.mx/api/v0.1/institution/tokens/01000006"
        },
        "enrollment": {
            "href": "https://sandbox.tesseract.mx/api/v0.1/institution/tokens/01000006/enrollment"
        }
    }
}

EXAMPLE


curl -i -X GET -H "Accept: application/json" \
    -H "Authorization: Basic cmasefgtby5hcmVu123" \
    https://sandbox.tesseract.mx/api/v0.1/institution/licenses/{license-id}/tokens/create?token_type=FOR_EVENT

REQUEST HEADERS


# GET https://sandbox.tesseract.mx/api/v0.1/institution/licenses/{license-id}/tokens/create?token_type=FOR_EVENT HTTP/1.1
Accept: application/json;charset=UTF-8
Authorization: Basic cmasefgtby5hcmVu123

Para crear un token es necesario enviar un REQUEST a la siguiente URL https://sandbox.tesseract.mx/api/v0.1/institution/licenses/{licensesId}/tokens, con la información descrita a continuación:

Nombre Tipo Descripción
token_type string Tipo de token a crear: CHALLENGE_RESPONSE ó FOR_EVENT; consulta Tipos de Tokens para más información.

Obtendremos un RESPONSE con la siguiente información:

Nombre Tipo Descripción
id number Identificador único para el token
serial string Identificador único alfanumérico de 8 dígitos
token_type string Tipo de token (más información aquí)
token_status string Estado del token (más información aquí)
attempt number Número de intentos
createdAt number Fecha en formato unix de creación del token
updated_at date Fecha de actualización del token
_links object Link’s a recursos asociados

Descripción del contenido de _links

Nombre Tipo Descripción
self object Link del recurso actual
serial object Link del recurso actual mediante su serial
enrollment object Link para recuperar la cadena de enrolamineto (más información aquí)

Otra forma de realizar la creación de un token consta de enviar una petición GET a la siguente URL https://sandbox.tesseract.mx/api/v0.1/institution/licenses/{license-id}/tokens/create?token_type=, con la información descrita a continuación:

Nombre Tipo Descripción
token_type string Tipo de token a crear: CHALLENGE_RESPONSE ó FOR_EVENT; consulta Tipos de Tokens para más información.

Recuperar cadena de enrolamiento

EXAMPLE


curl -i -X GET -H "Accept: application/json" \
    -H "Authorization: Basic cmasefgtby5hcmVu123" \
    https://sandbox.tesseract.mx/api/v0.1/institution/tokens/{token-serial}/enrollment

REQUEST HEADERS


# GET https://sandbox.tesseract.mx/api/v0.1/institution/tokens/{token-serial}/enrollment
Accept: application/json;charset=UTF-8
Authorization: Basic cmasefgtby5hcmVu123

RESPONSE HEADERS


Content-Type: application/hal+json;charset=UTF-8
Status: 200 Ok

RESPONSE BODY


{
    "enrollment_string": "UbE5bQ9xujeu2T9GDoH5F4iXhqdS03+/Srdu2"
}

Una vez que se ha realizado la creación de un token, este se encuentra en estado UNASSIGNED ( para más información consulte aquí ).

Para recuperar la cadena de enrolamiento, la cual es utilizada por Tesseract SDK para el enrolamiento de un dispositivo, se procede a realizar una petición GET a la siguiente URL https://sandbox.tesseract.mx/api/v0.1/institution/tokens/{token-serial}/enrollment donde:

Nombre Tipo Descripción
token-serial string Número de serie único para el token

A continuación se describe el contenido del RESPONSE devuelto:

Nombre Tipo Descripción
enrollment_string string Cadena con una codificación en Base64 la cual contiene la información necesaria para el enrolamiento con un dispositivo.

Recuperar clave de activación

EXAMPLE


curl -i -X GET -H "Accept: application/json" \
    -H "Authorization: Basic cmasefgtby5hcmVu123" \
    https://sandbox.tesseract.mx/api/v0.1/institution/tokens/{token-serial}/act-code

REQUEST HEADERS


# GET https://sandbox.tesseract.mx/api/v0.1/institution/tokens/{token-serial}/act-code
Accept: application/json;charset=UTF-8
Authorization: Basic cmasefgtby5hcmVu123

RESPONSE HEADERS


Content-Type: application/hal+json;charset=UTF-8
Status: 200 Ok

RESPONSE BODY


{
    "act_code": "86263656"
}

Para recuperar la clave de activación de un token es necesario enviar una
petición GET a la siguiente URL https://sandbox.tesseract.mx/api/v0.1/institution/tokens/{token-serial}/act-code donde:

Nombre Tipo Descripción
token-serial string Número de serie único para el token

Si la respuesta es exitosa recibiremos un RESPONSE con el siguiente contenido:

Nombre Tipo Descripción
act_code number Clave para activar un único token

Activación de un token

La activación de un token solo es posible mediante Tesseract SDK, y suministrando a este tanto la cadena de enrolamiento como la clave de activación

Recuperar un nuevo challenge

EXAMPLE


curl -i -X GET -H "Accept: application/json" \
    -H "Authorization: Basic cmasefgtby5hcmVu123" \
    https://sandbox.tesseract.mx/api/v0.1/institution/tokens/{token-serial}/challenge

REQUEST HEADERS


# GET https://sandbox.tesseract.mx/api/v0.1/institution/tokens/{token-serial}/challenge
Accept: application/json;charset=UTF-8
Authorization: Basic cmasefgtby5hcmVu12

RESPONSE HEADERS


Content-Type: application/hal+json;charset=UTF-8
Status: 200 Ok

RESPONSE BODY


{
    "question": 90082137,
    "use_before": 1519093425303
}

Una vez que el token se encuentra activado, solo los tokens de tipo CHALLENGE RESPONSE requieren un desafío (más información aquí), con lo cual generan una respuesta.

Para solicitar un nuevo desafío es necesario enviar una petición GET a la siguiente URL https://sandbox.tesseract.mx/api/v0.1/institution/tokens/{token-serial}/challenge donde:

Nombre Tipo Descripción
token-serial string Número de serie único para el token

Si la respuesta es exitosa recibiremos un RESPONSE con el siguiente contenido:

Nombre Tipo Descripción
challenge number Desafío único para un token
use_before number Fecha en formato unix, la cual indica hasta que momento es valido el desafío solicitado

Validar un OTP

EXAMPLE


curl -i -X POST -H "Accept: application/json" \
    -H "Authorization: Basic cmasefgtby5hcmVu123" \
    -d "{\"result\": 875862}" \
    https://sandbox.tesseract.mx/api/v0.1/institution/tokens/{token-serial}/otp

REQUEST HEADERS


# POST https://sandbox.tesseract.mx/api/v0.1/institution/tokens/{token-serial}/otp
Accept: application/json;charset=UTF-8
Authorization: Basic cmasefgtby5hcmVu123

REQUEST BODY


{
    "result": "875862"
}

RESPONSE HEADERS


Content-Type: application/hal+json;charset=UTF-8
Status: 200 Ok

RESPONSE BODY


{
    "success": false
}

Para validar un OTP de un token sin importar su tipo, es necesario enviar una petición POST a la siguiente URL https://sandbox.tesseract.mx/api/v0.1/institution/tokens/{token-serial}/otp donde:

Nombre Tipo Descripción
token-serial string Número de serie único para el token

Con el siguiente BODY:

Nombre Tipo Descripción
result string Respuesta a validar generada por Tesseract SDK

Si la respuesta es exitosa obtendremos el siguiente RESPONSE:

Nombre Tipo Descripción
success boolean TRUE la respuesta al desafío actual es correcto, FALSE la respuesta al desafío actual es incorrecto

Cambiar status del token

EXAMPLE


curl -i -X PATCH -H "Accept: application/json" \
    -H "Authorization: Basic cmasefgtby5hcmVu123" \
    -d "{\"token_status\": \"BLOCKED\"}" \
    https://sandbox.tesseract.mx/api/v0.1/institution/tokens/{token-id}

REQUEST HEADERS


# PATCH https://sandbox.tesseract.mx/api/v0.1/institution/tokens/{token-id}
Accept: application/json;charset=UTF-8
Authorization: Basic cmasefgtby5hcmVu123

REQUEST BODY


{
    "token_status": "BLOCKED"
}

RESPONSE HEADERS


Status: 204 No Content

Para modificar el estado de un token es necesario enviar una solicitud PATCH a la siguiente URL https://sandbox.tesseract.mx/api/v0.1/institution/tokens/{token-id} donde:

Nombre Tipo Descripción
token-serial string Número de serie único para el token

Con el siguiente BODY:

Nombre Tipo Descripción
token_status string Estado al que se desea actualizar el token, los cuales únicamente pueden ser ACTIVATE, BLOCKED ó REVOKED.

Si la solicitud es éxitosa no se recibe contenido en el REQUEST BODY únicamente una respuesta con un estado 204 No Content.

Token Type

Tesseract soporta actualmente los siguientes tipos de tokens:

Tipo Descripción
CHALLENGE_RESPONSE Este token esta basado en un protocolo de desafío-respuesta en donde el desafío proporcionado por Tesseract API es únicamente válido durante 120 segundos, y cada vez que se solicita un nuevo desafío este reinicializa la validez del desafío proporcionado.
FOR_EVENT Este token se basa en la sincronización para generar cada 30 seg. un nuevo OTP.

Token Status

Los estados de un token permiten realizar ciertas acciones para autorizar el consumo de recursos asociados, a continuación se describe los diferentes tipos estados de un token.

Estado Descripción
UNASSIGNED Estado inicial de todo token al ser creado, este estado hace referencia a que el token esta sin asignar, solo puede estar en este estado una vez. Puede ser asignado solamente por un administrador de tokens.
WAITING Estado al que únicamente se llega tras obtener la cadena de enrolamiento, este estado hace referencia a estar en espera de ser asignado.
ASSIGNED Estado al que únicamente se llega tras obtener la clave de activación, este estado hace referencia a estar asignado.
ACTIVE Estado al cual se llega por primera vez tras ser activado por Tesseract SDK, el estado anterior para que esto ocurra es ÀSSIGNED. Sin embargo tras ser activado el token puede pasar a un estado REVOKED en el cual el token puede ser reactivado solo por un administrador de tokens.
REVOKED Estado al que únicamente se llega tras ser activado y haber fallado en más de 5 ocasiones con la respuesta OTP. Tambien puede pasar a este estado si el administrador de tokens realiza la petición correspondiente.
BLOCKED En este estado el token queda inutilizado y final por lo que no puede modificarse o reutilizarse de nuevo. Al suceder esta acción se libera un token de su stock total de la licencia utilizada. Por lo que en caso de que el token quede comprometido este queda liberado para generar un nuevo token.