101OBeX offers the possibility of working with encrypted nodes or
      projects. All services that are exposed through the API Manager can be
      consumed in an encrypted manner, provided this preference is established
      during project creation.

IT IS IMPORTANT TO UNDERSTAND THAT ONCE A PROJECT IS CREATED, THIS
      ENCRYPTION SETTING CANNOT BE ALTERED. THEREFORE, IT IS CRITICAL TO
      CAREFULLY CONSIDER WHETHER YOUR PROJECT REQUIRES ENCRYPTION TO AVOID
      SUBSEQUENT DATA LOSS.

When you indicate that you want to be able to consume an encrypted
      project, you will be assigned an encryption key for it (cipher
      key) which can be consulted in the project data.

Once this key has been obtained, the calls can be encrypted under the
      AES256 algorithm with said key and the response will be encrypted with the
      same encryption key.

The nomenclature of the calls will be as follows:

The nomenclature of the calls will be as follows.

Decrypted call:

```javascript
https://api.101obex.com:8000/servicio?parameters
```

Encrypted call:

```javascript
https://api.101obex.com:5000/servicio?encripted_data=(encripted
        parameters)
```

This adds an additional encryption layer that guarantees the security of
      the transferred data.

The response will be encrypted and its morphology will be as detailed
      below

Decrypted answer:

```javascript
{
        
        "status"
        :
        true
        ,
        
        "e_mail"
        :
        "test.user@waynnovate.com"
        ,
        
        "elapsed"
        :
        0.18008685111999512
        ,
        
        "datos_certificacion"
        :
         {
         "codtran"
        :
        "0075f16df4b053a5d10502ffb01e9cd8"
         }
        ,
        
        "session_id"
        :
        "e9b7945dcbd5d18a6239acc7acafe8e9"
        ,
        
        "type_of_user"
        :
        "impulso bu00e1sico"
        ,
        
        "profile_id"
        :
        137
        ,
        
        "code_profile"
        :
        "USUARIO"
        ,
        
        "user_id"
        :
        50
        ,
        
        "status"
        :
        null
        ,
        
        "phone_lenght"
        :
        10
        ,
        
        "menu"
        :
        [
         [
        "Acceso Ru00e1pido"
        ,
         [
         "Movements"
        ,
         "movements"
        ,
         false
         ]
        ,
         [
         "Add a card"
        ,
        {' '}
        "gestor_origenes_propios/crear"
        ,
         false
         ]
        ,
         [ {' '}
        "Recharge cellphone minutes"
        ,
         "Rechargecellphoneminutes"
        ,
         false
         ]
        ,
         [ {' '}
        "Transfer between clients"
        ,
         "moneysending"
        ,
         false
         ]
        ,
         [
         "Request money"
        ,
         "requestmoney"
        ,
         false
         ]
        ,
         [
         "Services payment"
        ,
         "payexpresspay"
        ,
         false
         ]
         ]
         ]
        ,
         "user_affiliate_id"
        :
        1
        ,
         "currency"
        :
        "MXN"
        ,
         "name"
        :
        "qwertyuio qwertyui"
        ,
         "certificate"
        :
        false
        ,
         "phone"
        :
        "9876543212"
        
        }
```

Encrypted answer:

```javascript
{
        
        "status"
        :{' '}
        true
        ,
        
        "encrypted_data"
        :{' '}
        "k8DoQ9ADDph2o3oHdzeW0wO-FITgfGQD4xy9GcfuBtQy8IVazicD4J66kZ-HTlgWpCkXn7xlGDqCcXUNV
        {' '}
        TW9T7Ww1DpPXPyoilI2GPhOFliAWGpip_R56WVYr07qGmMUJy_n2I3si___hBb9MPEI3KBh9eupUO2gKDT
        {' '}
        bULimM_cpCtRHsqFdTZIpRedC0W_HdTgcCrZ_CItCoxAoyiCjx6knaH9dbaUV1GoywBWfuh3Dh4iqHGejH
        {' '}
        RbYi7Apm1PjCj5WNPEEN-UlfNj9hvurwTgCjBXilBg19ld3LUJj-1Yh48It_gLkna12ZqBiuUnQ3Rpj1hH
        {' '}
        vz7CkTjxStkigCyKA4lPh94cK_cJgaiv7c1Uyb54cB8N2bUTBhD4ojOSfR88bN-4wYiIEspinuKDmpHXO8
        {' '}
        HP_IgJSfgkU4QiTfbBKQ8u-2Hxe2x1JgbKIvjpiBNK0H3GNnaPrtciFf88EeQun5oZwOJiFtZBQHv-V4fd
        {' '}
        kfuOYBAWaOm13I9_PYiJir9BE145mIQOuugnebLASKju5UA-NHEclZ7fUF1fNyCeFxGW-6oYfadBanzpIM
        {' '}
        5PjRUODa92gF4X0pPcLy4v1jcegJSMSpTW0DH_vM14gV56OJ0Dvyf52OB2e3LDlfP7TwYmbY7YWwj5MpR1
        {' '}
        uoieOwbGsqbXqKvOOCmlwGIvAc-vowoTLRpviT1_fymNHyRqtb89Gjy_2rvsTgBLoZavKBOv5Wvu1Dil5u
        {' '}
        0wVzo7pqk5XV3lnTCi-t7kLiH7SfXtuIBhPQzPTO40btxpZwC2V4QBsx1BcBMs_cb7Kmcy53exgpQQQkRN
        {' '}
        bTU6jkSnTcccaCPzT9WGhxiHrS1U5bXXW4BM1j9aHFDjhBp6uT9_2QAh0oh-uljLTnw6r6KH69VFJyO2oK
        {' '}
        jG2Qttu-L95ynxW94ecMuLlU26O7F-j9IO1FpI-c8cfKAQs6tbUnv_cU49nTwpX5TZI1ZfCDOb042-KiCJ
        {' '}
        qOfP61FWZtEQrMw7VZwUxMylcku_In9caUUYgpvJhHwqE6GKdS0XuKEcGUV-tfMvBcnewCgobcZhIeTYKh
        {' '}
        KSoaA1AHR7IYHaf8U4isTCzcexJL_mnwHlvWGVEXmM2Ywy_y9Y6nIDFTXPsUG4aYjw="
        
        }
```

Python code example to encrypt and decrypt (encryption key
      highlighted)

```javascript
from Crypto
        .Cipher{' '}
        import AES
        
        from Crypto
        .Random{' '}
        import new{' '}
        as Random
        
        from base64{' '}
        import urlsafe_b64encode
        , urlsafe_b64decode
        
        class{' '}
        CipherByAES
        :
         def{' '}
        __init__
        (self
        )
        :
         self.block_size{' '}
        ={' '}
        16
         self.key{' '}
        ={' '}
        'cedb3fb962255b1aafd033cabe831530'
         self.pad{' '}
        ={' '}
        lambda s
        : s{' '}
        +{' '}
        (self
        .block_size{' '}
        -{' '}
        len
        (s
        ){' '}
        % self
        .block_size
        ){' '}
        *
         chr
        (self
        .block_size{' '}
        -{' '}
        len
        (s
        ){' '}
        % self
        .block_size
        )
         self.unpad{' '}
        ={' '}
        lambda s
        : s
        [
        :
        -
        ord
        (s
        [
        len
        (s
        ){' '}
        -{' '}
        1
        :
        ]
        )
        ]
         def{' '}
        encrypt
        (self
        , data
        )
        :
         plain_text = self
        .pad
        (data
        )
         iv = Random
        (
        )
        .read
        (AES
        .block_size
        )
         cipher = AES
        .new
        (self
        .key
        , AES
        .MODE_OFB
        , iv
        )
         return urlsafe_b64encode
        (iv{' '}
        + cipher
        .encrypt
        (plain_text
        .encode
        (
        )
        )
        )
        .decode
        (
        )
         def{' '}
        decrypt
        (self
        , data
        )
        :
         cipher_text ={' '}
        urlsafe_b64decode(data
        .encode
        (
        )
        )
         iv = cipher_text
        [
        :self
        .block_size
        ]
         cipher = AES
        .new
        (self
        .key
        , AES
        .MODE_OFB
        , iv
        )
         return self
        .unpad
        (cipher
        .decrypt
        (cipher_text
        [self
        .block_size
        ]
        )
        )
        .decode
        (
        )
```
