# Crypto as a Service (CaaS)

NotBank offers a "Crypto as a Service" (CaaS) that provides a robust and documented technical infrastructure (API) for third parties (fintechs, banks or wallets) to quickly integrate complete cryptocurrency and digital asset functionalities under their own brand. This solution allows institutions to offer their customers services such as secure custody, wallet management, instant fiat-to-crypto conversion, and send/receive operations, without the need to develop from scratch the complexity of the *blockchain*, the *backend*, security or regulatory compliance. Essentially, NotBank manages the technical side, the risks and the infrastructure, acting as a bridge between the traditional financial world and the crypto ecosystem, allowing its clients to focus solely on the user experience and their business strategy.

To begin using Crypto as a Service (CaaS), the interested party must formalize their request by signing a service agreement. This contract clearly establishes the terms of use, responsibilities and commercial agreements. To start this process, it is necessary to contact our support team by clicking on the [link](https://support.notbank.com/support/s/contactsupport?language=es) provided. This link will direct you to a specific contact form that you must complete. Once we receive your request through the form, our team will promptly send you the contract for your review and subsequent signature.

## 1. Authentication in Notbank

Authentication to access the Notbank API is carried out securely by combining confidential API credentials with a specific user identifier. These credentials, obtained in the prior step, act as proof of identity of the client application. By including the user identifier together with these credentials in the request, the API can verify the identity of the caller and, crucially, authorize operations at the level of the specific user account within the Notbank ecosystem, ensuring that only relevant data and actions are available.

{% tabs %}
{% tab title="Node" %}

```js
import { NotbankClient } from 'notbank';

// create http rest client
const restClient = NotbankClient.Factory.createRestClient();

// authentication
await restClient.authenticateUser({
  ApiPublicKey: "public-key",
  ApiSecretKey: "secret-key",
  UserId: "user-uuid"
});
```

{% endtab %}

{% tab title="cURL" %}

```bash
GET /ap/AuthenticateUser HTTP/1.1
Host: https://api.notbank.com
Content-Type: application/json
APIKey: "<public-key>",
Signature: "<signature>",
UserId: "<user-uuid>",
Nonce: "2247733562"

---

{
  "Authenticated": true,
  "SessionToken": "02de4e6d-43f2-4e89-7213-49a9935d5607",
  // ...
}
```

***

`Nonce` any arbitrary number or random string that is used with the API private key to generate a signature.

`Signature` is a long alphanumeric string generated using the API private key and the nonce. To generate your own signature with a `nonce` different, you must use `HMAC-SHA256` to encode your `Nonce`, `UserId` (user ID) and API public key (`<public-key>`), in the format `NonceUserIdAPIPublicKey` using the API secret key (`<secret-key>`) as the key.
{% endtab %}
{% endtabs %}

## 2. Register a client in Notbank

If you want to **expand your own business** and offer cryptocurrency services to your users, our registration through the **Crypto as a Service (CaaS)** option is the right one. This powerful integration will allow you to onboard and manage your own customers within the Notbank ecosystem, acting as a bridge between your users and all the functionalities of our platform.

{% tabs %}
{% tab title="Node" %}

```js
import { NotbankClient } from 'notbank';

// ..

// register client
const user = await restClient.getRegisterService().registerUser({
  first_name: "Juan",
  last_name: "Pérez",
  phone_number: "+56911111111",
  language: "es"
});
const clientUserId = user.userId;
```

{% endtab %}

{% tab title="cURL" %}

```bash
POST /api/nb/account/register HTTP/1.1
Host: https://api.notbank.com
Content-Type: application/json
aptoken: <token>

{ 
  "first_name": "Juan",
  "last_name": "Perez",
  "phone_number": "+56911111111",
  "language": "es" // default value: en
}

---

{
  "status": "success",
  "data": {
    "userId": "<client_user_id>",
    "token": "<client_jwt>"
  }
}
```

{% endtab %}
{% endtabs %}

## 3. Leveling up in Notbank

Notbank structures platform access and functionalities through a hierarchical system of verification levels, designed to ensure security and provide progressive operational capabilities. The initial level is the **Observer**, which is restricted only to viewing information and data, preventing any kind of operation or transaction on the platform. From there, the levels **Basic**, **Advanced**, and **Advanced Plus** mark subsequent improvements significantly increasing operational options, transaction limits and features enabled for the user. The system culminates with the **Institutional**, level reserved only for entities and organizations, which provides the broadest and most specialized set of platform tools and permissions.

### 3.1 Upgrade to basic level

{% tabs %}
{% tab title="Node" %}

```js
// ...
import { Gender, Profession, CLComune } from "notbank/lib/models/enums";

// ...
await restClient.getVerificationService().verifyBasic({
  is_business: false,
  profession: Profession.TRADER,
  gender: Gender.MAN,
  city: "Santiago",
  street: "Calle 43",
  country: "CL",
  commune: CLComune.SANTIAGO,
  user_id: clientUserId
});
```

{% endtab %}

{% tab title="cURL" %}

```bash
POST /api/nb/account/verification/basic HTTP/1.1
Host: https://api.notbank.com
Content-Type: application/json
aptoken: <token>

{
  "is_business": false, 
  "profession": "trader", 
  "gender": 1, // male
  "country": "CL", 
  "city": "Rosario", 
  "commune": "Santiago", // Only for Chile.
  "street": "Calle 43", 
  "user_id": client_user_id
}

---

{
  "status": "success",
  "data": {
    "metamap_url":"https://cryptomkt.com/api/api/v1/platform/shortly/b9467945-ac32-4905-a88e-5281f50a394b" 
  }
}
```

{% endtab %}
{% endtabs %}

#### 3.1.1 Glossary

{% tabs %}
{% tab title="Gender" %}

| Value        | Description |
| ------------ | ----------- |
| 0            | Female      |
| 1            | Male        |
| {% endtab %} |             |

{% tab title="Profession" %}

| Value                      | Description              |
| -------------------------- | ------------------------ |
| trader                     | Merchant                 |
| investor                   | Investor                 |
| student                    | Student                  |
| housewife                  | Housewife                |
| accountant                 | Accountant               |
| actor\_actress             | Actor/Actress            |
| air\_hostess               | Air hostess              |
| archaeologist              | Archaeologist            |
| architect                  | Architect                |
| astronaut                  | Astronaut                |
| baker                      | Baker                    |
| biologist                  | Biologist                |
| bricklayer                 | Bricklayer               |
| driver                     | Driver                   |
| businessman                | Businessman              |
| butcher                    | Butcher                  |
| caretaker\_janitor\_porter | Caretaker/Doorman/Porter |
| carpenter                  | Carpenter                |
| cashier                    | Cashier                  |
| cleaner                    | Cleaner                  |
| clown                      | Clown                    |
| cobbler                    | Cobbler                  |
| cook\_chef                 | Cook/Chef                |
| chemist                    | Chemist                  |
| dancer                     | Dancer                   |
| decorator                  | Decorator                |
| dentist                    | Dentist                  |
| designer                   | Designer                 |
| physician                  | Physician                |
| dressmaker                 | Dressmaker               |
| dustman                    | Garbage collector        |
| economist                  | Economist                |
| electrician                | Electrician              |
| engineer                   | Engineer                 |
| farmer                     | Farmer                   |
| fireman                    | Firefighter              |
| fisherman                  | Fisherman                |
| florist                    | Florist                  |
| fruiterer                  | Fruiterer                |
| gardener                   | Gardener                 |
| geologist                  | Geologist                |
| hairdresser                | Hairdresser              |
| jeweller                   | Jeweler                  |
| journalist                 | Journalist               |
| judge                      | Judge                    |
| lawyer                     | Lawyer                   |
| librarian                  | Librarian                |
| life\_guard                | Lifeguard                |
| mailman\_postman           | Mailman                  |
| mechanic                   | Mechanic                 |
| meteorologist              | Meteorologist            |
| cryptocurrency\_miner      | Cryptocurrency miner     |
| mineral\_miner             | Miner                    |
| model                      | Model                    |
| nanny\_nursemaid           | Nanny                    |
| nun                        | Nun                      |
| nurse                      | Nurse                    |
| painter                    | Painter                  |
| pastry\_cook               | Pastry chef              |
| pharmacist                 | Pharmacist               |
| photographer               | Photographer             |
| physicist                  | Physicist                |
| plumber                    | Plumber                  |
| policeman\_policewoman     | Police officer           |
| politician                 | Politician               |
| priest                     | Priest                   |
| professor\_teacher         | Professor                |
| programmer                 | Programmer               |
| psychiatrist               | Psychiatrist             |
| psychologist               | Psychologist             |
| receptionist               | Receptionist             |
| researcher\_scientist      | Research scientist       |
| sailor                     | Sailor                   |
| salesman                   | Salesperson              |
| secretary                  | Secretary                |
| shop\_assistant            | Shop assistant           |
| singer                     | Singer                   |
| social\_worker             | Social worker            |
| sportsman                  | Athlete                  |
| surgeon                    | Surgeon                  |
| taxi\_driver               | Taxi driver              |
| telephone\_operator        | Telephone operator       |
| travel\_agent              | Travel agent             |
| veterinarian               | Veterinarian             |
| waiter\_waitress           | Waiter/Waitress          |
| writer                     | Writer                   |
| deliveryman                | Delivery person          |
| uber\_driver               | Uber driver              |
| pilot                      | Pilot                    |
| administrative             | Administrative           |
| public\_servant            | Public servant           |
| other                      | Other                    |
| customer\_care             | Customer service         |
| military                   | Military                 |
| manager\_officier          | Manager/Officer          |
| {% endtab %}               |                          |

{% tab title="Province (AR)" %}

| Value        | Description                                             |
| ------------ | ------------------------------------------------------- |
| 1            | Buenos Aires                                            |
| 10           | Catamarca                                               |
| 14           | Chaco                                                   |
| 20           | Chubut                                                  |
| 43           | Autonomous City of Buenos Aires                         |
| 3            | Córdoba                                                 |
| 15           | Corrientes                                              |
| 5            | Entre Ríos                                              |
| 13           | Formosa                                                 |
| 11           | Jujuy                                                   |
| 18           | La Pampa                                                |
| 9            | La Rioja                                                |
| 4            | Mendoza                                                 |
| 16           | Misiones                                                |
| 19           | Neuquén                                                 |
| 21           | Río Negro                                               |
| 12           | Salta                                                   |
| 7            | San Juan                                                |
| 8            | San Luis                                                |
| 22           | Santa Cruz                                              |
| 2            | Santa Fe                                                |
| 6            | Santiago del Estero                                     |
| 23           | Tierra del Fuego, Antarctica and South Atlantic Islands |
| 17           | Tucumán                                                 |
| {% endtab %} |                                                         |

{% tab title="State (BR)" %}

| Value        | Description         |
| ------------ | ------------------- |
| RO           | Rondônia            |
| AC           | Acre                |
| AM           | Amazonas            |
| RR           | Roraima             |
| PA           | Pará                |
| AP           | Amapá               |
| TO           | Tocantins           |
| MA           | Maranhão            |
| PI           | Piauí               |
| CE           | Ceará               |
| RN           | Rio Grande do Norte |
| PB           | Paraíba             |
| PE           | Pernambuco          |
| AL           | Alagoas             |
| SE           | Sergipe             |
| BA           | Bahia               |
| MG           | Minas Gerais        |
| ES           | Espírito Santo      |
| RJ           | Rio de Janeiro      |
| SP           | São Paulo           |
| PR           | Paraná              |
| SC           | Santa Catarina      |
| RS           | Rio Grande do Sul   |
| MS           | Mato Grosso do Sul  |
| MT           | Mato Grosso         |
| GO           | Goiás               |
| DF           | Federal District    |
| {% endtab %} |                     |

{% tab title="Commune (CL)" %}

| Value                         | Description                   |
| ----------------------------- | ----------------------------- |
| Arica                         | Arica                         |
| Camarones                     | Camarones                     |
| General Lagos                 | General Lagos                 |
| Putre                         | Putre                         |
| Alto Hospicio                 | Alto Hospicio                 |
| Camiña                        | Camiña                        |
| Colchane                      | Colchane                      |
| Huara                         | Huara                         |
| Iquique                       | Iquique                       |
| Pica                          | Pica                          |
| Pozo Almonte                  | Pozo Almonte                  |
| Antofagasta                   | Antofagasta                   |
| Calama                        | Calama                        |
| María Elena                   | María Elena                   |
| Mejillones                    | Mejillones                    |
| Ollagüe                       | Ollagüe                       |
| San Pedro de Atacama          | San Pedro de Atacama          |
| Sierra Gorda                  | Sierra Gorda                  |
| Taltal                        | Taltal                        |
| Tocopilla                     | Tocopilla                     |
| Alto del Carmen               | Alto del Carmen               |
| Caldera                       | Caldera                       |
| Chañaral                      | Chañaral                      |
| Copiapó                       | Copiapó                       |
| Diego de Almagro              | Diego de Almagro              |
| Freirina                      | Freirina                      |
| Huasco                        | Huasco                        |
| Tierra Amarilla               | Tierra Amarilla               |
| Vallenar                      | Vallenar                      |
| Andacollo                     | Andacollo                     |
| Canela                        | Canela                        |
| Combarbalá                    | Combarbalá                    |
| Coquimbo                      | Coquimbo                      |
| Illapel                       | Illapel                       |
| La Higuera                    | La Higuera                    |
| La Serena                     | La Serena                     |
| Los Vilos                     | Los Vilos                     |
| Monte Patria                  | Monte Patria                  |
| Ovalle                        | Ovalle                        |
| Paiguano                      | Paiguano                      |
| Punitaqui                     | Punitaqui                     |
| Río Hurtado                   | Río Hurtado                   |
| Salamanca                     | Salamanca                     |
| Vicuña                        | Vicuña                        |
| Algarrobo                     | Algarrobo                     |
| Cabildo                       | Cabildo                       |
| Calera                        | Calera                        |
| Calle Larga                   | Calle Larga                   |
| Cartagena                     | Cartagena                     |
| Casablanca                    | Casablanca                    |
| Catemu                        | Catemu                        |
| Concón                        | Concón                        |
| El Quisco                     | El Quisco                     |
| El Tabo                       | El Tabo                       |
| Hijuelas                      | Hijuelas                      |
| Easter Island                 | Easter Island                 |
| Juan Fernández                | Juan Fernández                |
| La Cruz                       | La Cruz                       |
| La Ligua                      | La Ligua                      |
| Limache                       | Limache                       |
| Llaillay                      | Llaillay                      |
| Los Andes                     | Los Andes                     |
| Nogales                       | Nogales                       |
| Olmué                         | Olmué                         |
| Panquehue                     | Panquehue                     |
| Papudo                        | Papudo                        |
| Petorca                       | Petorca                       |
| Puchuncaví                    | Puchuncaví                    |
| Putaendo                      | Putaendo                      |
| Quillota                      | Quillota                      |
| Quilpué                       | Quilpué                       |
| Quintero                      | Quintero                      |
| Rinconada                     | Rinconada                     |
| San Antonio                   | San Antonio                   |
| San Esteban                   | San Esteban                   |
| San Felipe                    | San Felipe                    |
| Santa María                   | Santa María                   |
| Santo Domingo                 | Santo Domingo                 |
| Valparaíso                    | Valparaíso                    |
| Villa Alemana                 | Villa Alemana                 |
| Viña del Mar                  | Viña del Mar                  |
| Zapallar                      | Zapallar                      |
| Alhué                         | Alhué                         |
| Buin                          | Buin                          |
| Calera de Tango               | Calera de Tango               |
| Cerrillos                     | Cerrillos                     |
| Cerro Navia                   | Cerro Navia                   |
| Colina                        | Colina                        |
| Conchalí                      | Conchalí                      |
| Curacaví                      | Curacaví                      |
| El Bosque                     | El Bosque                     |
| El Monte                      | El Monte                      |
| Estación Central              | Estación Central              |
| Huechuraba                    | Huechuraba                    |
| Independencia                 | Independencia                 |
| Isla de Maipo                 | Isla de Maipo                 |
| La Cisterna                   | La Cisterna                   |
| La Florida                    | La Florida                    |
| La Granja                     | La Granja                     |
| La Pintana                    | La Pintana                    |
| La Reina                      | La Reina                      |
| Lampa                         | Lampa                         |
| Las Condes                    | Las Condes                    |
| Lo Barnechea                  | Lo Barnechea                  |
| Lo Espejo                     | Lo Espejo                     |
| Lo Prado                      | Lo Prado                      |
| Macul                         | Macul                         |
| Maipú                         | Maipú                         |
| María Pinto                   | María Pinto                   |
| Melipilla                     | Melipilla                     |
| Ñuñoa                         | Ñuñoa                         |
| Padre Hurtado                 | Padre Hurtado                 |
| Paine                         | Paine                         |
| Pedro Aguirre Cerda           | Pedro Aguirre Cerda           |
| Peñaflor                      | Peñaflor                      |
| Peñalolén                     | Peñalolén                     |
| Pirque                        | Pirque                        |
| Providencia                   | Providencia                   |
| Pudahuel                      | Pudahuel                      |
| Puente Alto                   | Puente Alto                   |
| Quilicura                     | Quilicura                     |
| Quinta Normal                 | Quinta Normal                 |
| Recoleta                      | Recoleta                      |
| Renca                         | Renca                         |
| San Bernardo                  | San Bernardo                  |
| San Joaquín                   | San Joaquín                   |
| San José de Maipo             | San José de Maipo             |
| San Miguel                    | San Miguel                    |
| San Pedro                     | San Pedro                     |
| San Ramón                     | San Ramón                     |
| Santiago                      | Santiago                      |
| Talagante                     | Talagante                     |
| Tiltil                        | Tiltil                        |
| Vitacura                      | Vitacura                      |
| Chimbarongo                   | Chimbarongo                   |
| Chépica                       | Chépica                       |
| Codegua                       | Codegua                       |
| Coinco                        | Coinco                        |
| Coltauco                      | Coltauco                      |
| Doñihue                       | Doñihue                       |
| Graneros                      | Graneros                      |
| La Estrella                   | La Estrella                   |
| Las Cabras                    | Las Cabras                    |
| Litueche                      | Litueche                      |
| Lolol                         | Lolol                         |
| Machalí                       | Machalí                       |
| Malloa                        | Malloa                        |
| Marchihue                     | Marchihue                     |
| Nancagua                      | Nancagua                      |
| Navidad                       | Navidad                       |
| Olivar                        | Olivar                        |
| Palmilla                      | Palmilla                      |
| Paredones                     | Paredones                     |
| Peralillo                     | Peralillo                     |
| Peumo                         | Peumo                         |
| Pichidegua                    | Pichidegua                    |
| Pichilemu                     | Pichilemu                     |
| Placilla                      | Placilla                      |
| Pumanque                      | Pumanque                      |
| Quinta de Tilcoco             | Quinta de Tilcoco             |
| Rancagua                      | Rancagua                      |
| Rengo                         | Rengo                         |
| Requínoa                      | Requínoa                      |
| San Fernando                  | San Fernando                  |
| San Francisco de Mostazal     | San Francisco de Mostazal     |
| San Vicente de Tagua Tagua    | San Vicente de Tagua Tagua    |
| Santa Cruz                    | Santa Cruz                    |
| Cauquenes                     | Cauquenes                     |
| Chanco                        | Chanco                        |
| Colbún                        | Colbún                        |
| Constitución                  | Constitución                  |
| Curepto                       | Curepto                       |
| Curicó                        | Curicó                        |
| Empedrado                     | Empedrado                     |
| Hualañé                       | Hualañé                       |
| Licantén                      | Licantén                      |
| Linares                       | Linares                       |
| Longaví                       | Longaví                       |
| Maule                         | Maule                         |
| Molina                        | Molina                        |
| Parral                        | Parral                        |
| Pelarco                       | Pelarco                       |
| Pelluhue                      | Pelluhue                      |
| Pencahue                      | Pencahue                      |
| Rauco                         | Rauco                         |
| Retiro                        | Retiro                        |
| Romeral                       | Romeral                       |
| Río Claro                     | Río Claro                     |
| Sagrada Familia               | Sagrada Familia               |
| San Clemente                  | San Clemente                  |
| San Javier de Loncomilla      | San Javier de Loncomilla      |
| San Rafael                    | San Rafael                    |
| Talca                         | Talca                         |
| Teno                          | Teno                          |
| Vichuquén                     | Vichuquén                     |
| Villa Alegre                  | Villa Alegre                  |
| Yerbas Buenas                 | Yerbas Buenas                 |
| Bulnes                        | Bulnes                        |
| Chillán Viejo                 | Chillán Viejo                 |
| Chillán                       | Chillán                       |
| Cobquecura                    | Cobquecura                    |
| Coelemu                       | Coelemu                       |
| Coihueco                      | Coihueco                      |
| El Carmen                     | El Carmen                     |
| Ninhue                        | Ninhue                        |
| Ñiquén                        | Ñiquén                        |
| Pemuco                        | Pemuco                        |
| Pinto                         | Pinto                         |
| Portezuelo                    | Portezuelo                    |
| Quillón                       | Quillón                       |
| Quirihue                      | Quirihue                      |
| Ránquil                       | Ránquil                       |
| San Carlos                    | San Carlos                    |
| San Fabián                    | San Fabián                    |
| San Ignacio                   | San Ignacio                   |
| San Nicolás                   | San Nicolás                   |
| Treguaco                      | Treguaco                      |
| Yungay                        | Yungay                        |
| Alto Biobío                   | Alto Biobío                   |
| Antuco                        | Antuco                        |
| Arauco                        | Arauco                        |
| Cabrero                       | Cabrero                       |
| Cañete                        | Cañete                        |
| Chiguayante                   | Chiguayante                   |
| Concepción                    | Concepción                    |
| Contulmo                      | Contulmo                      |
| Coronel                       | Coronel                       |
| Curanilahue                   | Curanilahue                   |
| Florida                       | Florida                       |
| Hualpén                       | Hualpén                       |
| Hualqui                       | Hualqui                       |
| Laja                          | Laja                          |
| Lebu                          | Lebu                          |
| Los Álamos                    | Los Álamos                    |
| Los Ángeles                   | Los Ángeles                   |
| Lota                          | Lota                          |
| Mulchén                       | Mulchén                       |
| Nacimiento                    | Nacimiento                    |
| Negrete                       | Negrete                       |
| Penco                         | Penco                         |
| Quilaco                       | Quilaco                       |
| Quilleco                      | Quilleco                      |
| San Pedro de la Paz           | San Pedro de la Paz           |
| San Rosendo                   | San Rosendo                   |
| Santa Bárbara                 | Santa Bárbara                 |
| Santa Juana                   | Santa Juana                   |
| Talcahuano                    | Talcahuano                    |
| Tirúa                         | Tirúa                         |
| Tomé                          | Tomé                          |
| Tucapel                       | Tucapel                       |
| Yumbel                        | Yumbel                        |
| Angol                         | Angol                         |
| Carahue                       | Carahue                       |
| Cholchol                      | Cholchol                      |
| Collipulli                    | Collipulli                    |
| Cunco                         | Cunco                         |
| Curacautín                    | Curacautín                    |
| Curarrehue                    | Curarrehue                    |
| Ercilla                       | Ercilla                       |
| Freire                        | Freire                        |
| Galvarino                     | Galvarino                     |
| Gorbea                        | Gorbea                        |
| Lautaro                       | Lautaro                       |
| Loncoche                      | Loncoche                      |
| Lonquimay                     | Lonquimay                     |
| Los Sauces                    | Los Sauces                    |
| Lumaco                        | Lumaco                        |
| Melipeuco                     | Melipeuco                     |
| Nueva Imperial                | Nueva Imperial                |
| Padre las Casas               | Padre las Casas               |
| Perquenco                     | Perquenco                     |
| Pitrufquén                    | Pitrufquén                    |
| Pucón                         | Pucón                         |
| Purén                         | Purén                         |
| Renaico                       | Renaico                       |
| Saavedra                      | Saavedra                      |
| Temuco                        | Temuco                        |
| Teodoro Schmidt               | Teodoro Schmidt               |
| Toltén                        | Toltén                        |
| Traiguén                      | Traiguén                      |
| Victoria                      | Victoria                      |
| Vilcún                        | Vilcún                        |
| Villarrica                    | Villarrica                    |
| Corral                        | Corral                        |
| Futrono                       | Futrono                       |
| La Unión                      | La Unión                      |
| Lago Ranco                    | Lago Ranco                    |
| Lanco                         | Lanco                         |
| Los Lagos                     | Los Lagos                     |
| Mariquina                     | Mariquina                     |
| Máfil                         | Máfil                         |
| Paillaco                      | Paillaco                      |
| Panguipulli                   | Panguipulli                   |
| Río Bueno                     | Río Bueno                     |
| Valdivia                      | Valdivia                      |
| Ancud                         | Ancud                         |
| Calbuco                       | Calbuco                       |
| Castro                        | Castro                        |
| Chaitén                       | Chaitén                       |
| Chonchi                       | Chonchi                       |
| Cochamó                       | Cochamó                       |
| Curaco de Vélez               | Curaco de Vélez               |
| Dalcahue                      | Dalcahue                      |
| Fresia                        | Fresia                        |
| Frutillar                     | Frutillar                     |
| Futaleufú                     | Futaleufú                     |
| Hualaihué                     | Hualaihué                     |
| Llanquihue                    | Llanquihue                    |
| Los Muermos                   | Los Muermos                   |
| Maullín                       | Maullín                       |
| Osorno                        | Osorno                        |
| Palena                        | Palena                        |
| Puerto Montt                  | Puerto Montt                  |
| Puerto Octay                  | Puerto Octay                  |
| Puerto Varas                  | Puerto Varas                  |
| Puqueldón                     | Puqueldón                     |
| Purranque                     | Purranque                     |
| Puyehue                       | Puyehue                       |
| Queilén                       | Queilén                       |
| Quellón                       | Quellón                       |
| Quemchi                       | Quemchi                       |
| Quinchao                      | Quinchao                      |
| Río Negro                     | Río Negro                     |
| San Juan de la Costa          | San Juan de la Costa          |
| San Pablo                     | San Pablo                     |
| Aisén                         | Aisén                         |
| Chile Chico                   | Chile Chico                   |
| Cisnes                        | Cisnes                        |
| Cochrane                      | Cochrane                      |
| Coihaique                     | Coihaique                     |
| Guaitecas                     | Guaitecas                     |
| Lago Verde                    | Lago Verde                    |
| O’Higgins                     | O’Higgins                     |
| Río Ibáñez                    | Río Ibáñez                    |
| Tortel                        | Tortel                        |
| Antártica                     | Antártica                     |
| Cape Horn (Formerly Navarino) | Cape Horn (Formerly Navarino) |
| Laguna Blanca                 | Laguna Blanca                 |
| Natales                       | Natales                       |
| Porvenir                      | Porvenir                      |
| Primavera                     | Primavera                     |
| Punta Arenas                  | Punta Arenas                  |
| Río Verde                     | Río Verde                     |
| San Gregorio                  | San Gregorio                  |
| Timaukel                      | Timaukel                      |
| Torres del Paine              | Torres del Paine              |
| {% endtab %}                  |                               |
| {% endtabs %}                 |                               |

### 3.2. Upgrade to advanced level

{% tabs %}
{% tab title="Node" %}

```js
// ...
import { readFileSync } from 'fs';
import { DocumentAdressType } from "notbank/lib/models/enums";

const document = new File([readFileSync("document.pdf")], "document.pdf");
await restClient.getVerificationService().verifyTrader({
  pep: false,
  subject_comply: false,
  is_public_servant: false,
  document_address_file: document,
  document_address_type: DocumentAdressType.CREDIT_CARD_BILL,
  user_id: clientUserId
});
```

{% endtab %}

{% tab title="cURL" %}

```bash
POST /api/nb/account/verification/trader HTTP/1.1
Host: https://api.notbank.com
Content-Type: multipart/form-data
aptoken: <token>

{
  "pep": false,
  "subject_comply": false,
  "is_public_servant": false, 
  "document_address_file": document.png,
  "document_address_type": 35,
  "user_id": client_user_id
}

---

{
  "status": "success"
}
```

{% endtab %}
{% endtabs %}

#### 3.2.1 Glossary

{% tabs %}
{% tab title="Document type" %}

| Value         | Description                           |
| ------------- | ------------------------------------- |
| 3             | Service                               |
| 30            | Verified address                      |
| 35            | Credit card bill                      |
| 36            | Payrolls                              |
| 37            | Neighbor certificate                  |
| 38            | Notarial proof of residence           |
| 39            | Product invoice with proof of payment |
| 41            | Service with birth                    |
| 40            | Service with marriage                 |
| 42            | Driver's license with address         |
| {% endtab %}  |                                       |
| {% endtabs %} |                                       |

## 4. Send and receive cryptocurrencies

The cryptocurrency wallets of **Notbank** offer a secure and accessible gateway to the dynamic world of digital assets. Designed to satisfy both beginners and experienced investors, they stand out for their wide compatibility, covering a large **variety of market-leading coins and networks** allowing users to manage their portfolio in a single, convenient place. A key point of Notbank is its commitment to user profitability, offering **low fees** that optimize each transaction. In addition, security is the highest priority; backed by Notbank, these wallets incorporate state-of-the-art protection protocols and advanced security measures to ensure that users' funds and privacy are safeguarded at all times.

### 4.1. Create a wallet to receive cryptocurrencies

#### 4.1.1 Get the available networks

Given the large number of coins and networks that Notbank supports, it is first necessary to obtain the available networks for a cryptocurrency.

{% tabs %}
{% tab title="Node" %}

```js
// ...
const networks = await restClient.getWalletService().getNetworksTemplates({
  currency: "USDT"
});

console.log(networks);
// [
//   {
//     currency: 'USDT',
//     network: 'USDT_BSC',
//     network_name: 'BNB Smart Chain',
//     network_protocol: 'BEP-20',
//     template: [
//       [Object],
//       [Object]
//     ]
//   }
// ]
```

{% endtab %}

{% tab title="cURL" %}

```bash
GET /api/nb/wallet/crypto/withdrawal/templates?currency=USDT HTTP/1.1
Host: https://api.notbank.com
aptoken: <token>

----

{
  "status": "success",
  "data": [
    {
      "currency": "USDT",
      "network": "USDT_ETH",
      "network_name": "Ethereum",
      "network_protocol": "ERC-20",
      "template": [...]
    }, ...
  ]
}
```

{% endtab %}
{% endtabs %}

#### 4.1.2 Obtain a wallet

Using the network code ( `network` ) obtained in the previous step plus the currency code (`currency`) you can request your wallet address.&#x20;

{% tabs %}
{% tab title="Node" %}

```js
// ...
const addresses = await restClient.getWalletService().getDepositAddresses({
  user_id: clientUserId
  account_id: clientAccountId,
  currency: "USDT",
  network: "USDT_BSC",
});

console.log(addresses)
// ["2N3r9roRrHy7p6C5pGE8NQP9ZNT81H7ZKyU"]
```

{% endtab %}

{% tab title="cURL" %}

```bash
GET /api/nb/wallet/crypto?user_id=clientUserId&account_id=clientAccountId&currency=USDT&network=USDT_BSC HTTP/1.1
Host: https://api.notbank.com
aptoken: <token>

----

{
  "status": "success",
  "data": [
    "2N3r9roRrHy7p6C5pGE8NQP9ZNT81H7ZKyU"
  ]
}
```

{% endtab %}
{% endtabs %}

### 4.2 Add address to the whitelist

To ensure the highest security of your assets, at Notbank it is necessary to previously register destination addresses in a whitelist before making any cryptocurrency transfer. This additional protection measure helps prevent unauthorized withdrawals and ensures that your funds are sent only to trusted wallets verified by you.

#### 4.2.1 Add an address

{% tabs %}
{% tab title="Node" %}

```js
// ...
const whitelistAddressId = await restClient.getWalletService().addWhitelistedAddress({
  user_id: clientUserId
  account_id: clientAccountId,
  currency: "USDT",
  network: "USDT_BSC",
  address: "2N3r9roRrHy7p6C5pGE8NQP9ZNT81H7ZKyU",
  label: "test-address-name",
  otp: "123456"
});

console.log(whitelistAddressId);
// f3d1ddc3-2767-4b99-8763-a0990361009d
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
The value of the parameter `otp` corresponds to the two-step authentication code provided by your external application at the time of requesting your transfer.
{% endhint %}

{% hint style="info" %}
Notbank will send you a **confirmation code** to your phone number, with which you will have to confirm the new address you are adding to the whitelist.
{% endhint %}

#### 4.2.2 Confirm an address

{% tabs %}
{% tab title="Node" %}

<pre class="language-js"><code class="lang-js">// ...
await restClient.getWalletService().confirmWhitelistedAddress({
<strong>  user_id: clientUserId
</strong>  account_id: clientAccountId,
  whitelistedAddressId: "f3d1ddc3-2767-4b99-8763-a0990361009d",
  sms_code: "1234567",
});
</code></pre>

{% endtab %}
{% endtabs %}

### 4.3. Send your cryptocurrencies to another wallet

{% tabs %}
{% tab title="Node" %}

```js
// ...
const withdraw = await restClient.getWalletService().createCryptoWithdraw({
  user_id: clientUserId
  account_id: clientAccountId,
  currency: "USDT",
  network: "USDT_BSC",
  address: "2N3r9roRrHy7p6C5pGE8NQP9ZNT81H7ZKyU",
  amount: 12.3,
  otp: "123456"
});

console.log(withdraw);
// 0ea47288-76dd-4dd5-a544-e8af547ed3c7
```

{% endtab %}

{% tab title="cURL" %}

```bash
POST /api/nb/wallet/crypto/withdrawal HTTP/1.1
Host: https://api.notbank.com
aptoken: <token>
Content-Type: application/json

{
  "user_id": clientUserId,
  "account_id": clientAccountId,
  "currency": "USDT",
  "network": "USDT_BSC",
  "address": "2N3r9roRrHy7p6C5pGE8NQP9ZNT81H7ZKyU",
  "amount": 12.3,
  "otp": "123456"
}

----

{
  "status": "success",
  "data": "0ea47288-76dd-4dd5-a544-e8af547ed3c7"
}
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
The value of the parameter `otp` corresponds to the two-step authentication code provided by your external application at the time of requesting your transfer.
{% endhint %}

## 5. Buy, sell and convert cryptocurrencies

Discover **Simple**, the functionality designed so that buying, selling and converting cryptocurrencies is a simple, fast and secure experience for everyone. Forget about complex interfaces and order types; with Simple, you can execute your transactions intuitively in a few steps. This tool is perfect both for those starting out in the crypto world and for advanced users looking for speed. In addition to its ease of use, Simple stands out for offering an affordable transaction fee, allowing you to optimize your operations and making your entry into the crypto market not only efficient but also accessible.

### 5.1 Buy cryptocurrencies with fiat currency

In this example, we will request the amount of Bitcoin (BTC) we would receive if we used 100,000 Chilean pesos (CLP). Then we will check the promised amount, which is valid for 20 seconds and finally, we will execute the purchase.

{% hint style="info" %}
The amounts attached in the examples are for educational purposes and do not represent the current state of the market.
{% endhint %}

#### 5.1.1 Request quote

{% tabs %}
{% tab title="Node" %}

```js
const quoteId = await restClient.getQuoteService().createDirectQuote({
  from_currency: "CLP",
  from_amount: 100000,
  to_currency: "BTC",
  operation: 1, // BUY
  user_id: clientUserId
  account_id: clientAccountId,
});

console.log(quoteId)
// c1c56ca3-75c3-4bb6-97e3-702448382cd3
```

{% endtab %}
{% endtabs %}

#### 5.1.2 Check quote

{% tabs %}
{% tab title="Node" %}

```js
// ...
const quote = await restClient.getQuoteService().getQuote({
  quote_id: "c1c56ca3-75c3-4bb6-97e3-702448382cd3",
  user_id: clientUserId
  account_id: clientAccountId,
});

console.log(quote.status)
// 0 // pending
console.log(quote.amount_out)
// 0.0013 // BTC
```

{% endtab %}
{% endtabs %}

#### 5.1.3 Execute quote

{% tabs %}
{% tab title="Node" %}

```js
// ...
const quote = await client.getQuoteService().executeQuote({
  quote_id: "c1c56ca3-75c3-4bb6-97e3-702448382cd3",
  user_id: clientUserId
  account_id: clientAccountId,
});

console.log(quote.status)
// 0 // pending
console.log(quote.amount_out)
// 0.0013 // BTC

// After a few moments, check the request status again
const quote = await restClient.getQuoteService().getQuote({
  quote_id: "c1c56ca3-75c3-4bb6-97e3-702448382cd3",
  user_id: clientUserId
  account_id: clientAccountId,
});

console.log(quote.status)
// 1 // executed
console.log(quote.amount_out)
// 0.0013 // BTC
```

{% endtab %}
{% endtabs %}

### 5.2 Sell cryptocurrencies for fiat currency

In this example, we will request the amount of Chilean pesos (CLP) we would receive if we used 0.0013 Bitcoin (BTC). Then we will check the promised amount, which is valid for 20 seconds and finally, we will execute the purchase.

{% hint style="info" %}
The amounts attached in the examples are for educational purposes and do not represent the current state of the market.
{% endhint %}

#### 5.2.1 Request quote

{% tabs %}
{% tab title="Node" %}

```js
const quoteId = await restClient.getQuoteService().createDirectQuote({
  from_currency: "BTC",
  from_amount: 0.0013,
  to_currency: "CLP",
  operation: 2, // SELL
  user_id: clientUserId
  account_id: clientAccountId,
});

console.log(quoteId)
// 1b09948d-2169-4f93-84ec-a55fb1741663
```

{% endtab %}
{% endtabs %}

#### 5.2.2 Check quote

{% tabs %}
{% tab title="Node" %}

```js
// ...
const quote = await restClient.getQuoteService().getQuote({
  quote_id: "c1c56ca3-75c3-4bb6-97e3-702448382cd3",
  user_id: clientUserId
  account_id: clientAccountId,
});

console.log(quote.status)
// 0 // pending
console.log(quote.amount_out)
// 100000 // CLP
```

{% endtab %}
{% endtabs %}

#### 5.2.3 Execute quote

{% tabs %}
{% tab title="Node" %}

```js
// ...
const quote = await client.getQuoteService().executeQuote({
  quote_id: "1b09948d-2169-4f93-84ec-a55fb1741663",
  user_id: clientUserId
  account_id: clientAccountId,
});

console.log(quote.status)
// 0 // pending
console.log(quote.amount_out)
// 100000 // CLP

// After a few moments, check the request status again
const quote = await restClient.getQuoteService().getQuote({
  quote_id: "1b09948d-2169-4f93-84ec-a55fb1741663",
  user_id: clientUserId
  account_id: clientAccountId,
});

console.log(quote.status)
// 1 // executed
console.log(quote.amount_out)
// 100000 // CLP
```

{% endtab %}
{% endtabs %}

### 5.3 Convert cryptocurrencies

In this example, we will request the amount of Ethereum (ETH) we would receive if we used 1 Bitcoin (BTC). Then we will check the promised amount, which is valid for 20 seconds and finally, we will execute the purchase.

{% hint style="success" %}
Conversion is not limited to transactions between cryptocurrencies, but to any possible combination: cryptocurrency to cryptocurrency, fiat to cryptocurrency, cryptocurrency to fiat and fiat to fiat.
{% endhint %}

{% hint style="info" %}
The amounts attached in the examples are for educational purposes and do not represent the current state of the market.
{% endhint %}

#### 5.3.1 Request quote

{% tabs %}
{% tab title="Node" %}

```js
const quoteId = await restClient.getQuoteService().createDirectQuote({
  from_currency: "BTC",
  from_amount: 1,
  to_currency: "ETH",
  operation: 3, // CONVERSION
  user_id: clientUserId
  account_id: clientAccountId,
});

console.log(quoteId)
// fc4ffe0e-b87a-4e1f-a727-f6ddae7dc1e0
```

{% endtab %}
{% endtabs %}

#### 5.3.2 Check quote

{% tabs %}
{% tab title="Node" %}

```js
// ...
const quote = await restClient.getQuoteService().getQuote({
  quote_id: "fc4ffe0e-b87a-4e1f-a727-f6ddae7dc1e0",
  user_id: clientUserId
  account_id: clientAccountId,
});

console.log(quote.status)
// 0 // pending
console.log(quote.amount_out)
// 30 // ETH
```

{% endtab %}
{% endtabs %}

#### 5.3.3 Execute quote

{% tabs %}
{% tab title="Node" %}

```js
// ...
const quote = await client.getQuoteService().executeQuote({
  quote_id: "fc4ffe0e-b87a-4e1f-a727-f6ddae7dc1e0",
  user_id: clientUserId
  account_id: clientAccountId,
});

console.log(quote.status)
// 0 // pending
console.log(quote.amount_out)
// 30 // ETH

// After a few moments, check the request status again
const quote = await restClient.getQuoteService().getQuote({
  quote_id: "fc4ffe0e-b87a-4e1f-a727-f6ddae7dc1e0",
  user_id: clientUserId
  account_id: clientAccountId,
});

console.log(quote.status)
// 1 // executed
console.log(quote.amount_out)
// 30 // ETH
```

{% endtab %}
{% endtabs %}

## 6. Deposit and withdraw fiat

To facilitate the management of your funds, Notbank offers its users a wide variety of payment methods designed to suit their needs. Customers can load fiat currency balance into their accounts quickly and securely, choosing among traditional options such as bank transfers, using credit cards or integrating with modern payment gateways. This flexibility ensures that each user can manage their capital with total convenience and under the highest standards of financial security.

### 6.1 Add bank account

#### 6.1.1 Get list of supported banks

{% tabs %}
{% tab title="Node" %}

```js
// ...
const banks = await restClient.getWalletService().getBanks({
  country: "CL"
});

console.log(banks);
// [
//   {
//     "id": "7aa9d19d-01b6-4993-8075-0e922bf471d2",
//     "name": "Banco de Chile",
//     "country": "CL"
//   },
//   {
//     "id": "388c4c6f-d0b5-4a42-927c-bbcc64e7ce2e",
//     "name": "Banco Estado",
//     "country": "CL"
//   }, ...
// ]
```

{% endtab %}
{% endtabs %}

#### 6.1.2 Add bank account

{% tabs %}
{% tab title="Node" %}

```js
// ...
const userBankAccount =  restClient.getWalletService().AddClientBankAccount({
  user_id: clientUserId,
  country: "CL",
  bank: "388c4c6f-d0b5-4a42-927c-bbcc64e7ce2e",
  number: "11111111",
  kind: "vista",
  // pix_type: string; Brazil (BR) only
  // agency: string; Brazil (BR) only
  // dv: string; Brazil (BR) only
  // province?: string; Peru (PE) only
});

console.log(userBankAccount.id);
// 29cd83cf-3678-4207-80c7-7caaa1d24c27
```

{% endtab %}
{% endtabs %}

#### Glossary

{% tabs %}
{% tab title="Bank account type" %}

| Country                                              | Value                   | Description                 |
| ---------------------------------------------------- | ----------------------- | --------------------------- |
| Argentina (AR), Chile (CL), Peru (PE), Colombia (CO) | corriente               | Checking account            |
| Argentina (AR), Chile (CL)                           | vista                   | Sight account               |
| Argentina (AR), Chile (CL), Peru (PE), Colombia (CO) | ahorro                  | Savings account             |
| Argentina (AR), Chile (CL)                           | electronic\_checkbook   | Electronic checkbook        |
| Argentina (AR)                                       | ar\_cbu                 | CBU account                 |
| Argentina (AR)                                       | ar\_cvu                 | CVU account                 |
| Argentina (AR)                                       | ar\_alias               | Alias                       |
| Brazil (BR)                                          | br\_corriente\_fisica   | Individual checking account |
| Brazil (BR)                                          | br\_simple\_fisica      | Individual simple account   |
| Brazil (BR)                                          | br\_corriente\_juridica | Corporate checking account  |
| Brazil (BR)                                          | br\_poupanca\_fisica    | Individual savings account  |
| Brazil (BR)                                          | br\_poupanca\_juridica  | Individual savings account  |
| Brazil (BR)                                          | br\_caixa\_facil        | Caixa Fácil account         |
| Brazil (BR)                                          | br\_pix                 | PIX account                 |
| {% endtab %}                                         |                         |                             |

{% tab title="PIX account type" %}

| Value         | Description  |
| ------------- | ------------ |
| CPF           | CPF number   |
| CNPJ          | CNPJ number  |
| EMAIL         | Email        |
| Phone         | Phone number |
| Other         | Other        |
| {% endtab %}  |              |
| {% endtabs %} |              |

### 6.2 Notify a deposit

At Notbank, we have optimized the process of receiving funds to offer you an agile and secure experience in managing your assets. Currently, we support the notification of fiat currency deposits through **traditional bank transfers** for all the countries where we operate, additionally integrating exclusively the **Webpay** method for Chile, which allows immediate and efficient validation for users in that region. We are continuously working to expand our operational capabilities, so we will soon add new payment methods to our API, providing greater flexibility and reach to our global financial solutions.

#### 6.2.1 Bank notification

{% tabs %}
{% tab title="Node" %}

<pre class="language-js"><code class="lang-js">// ...
await restClient.getWalletService().createFiatDeposit({
<strong>  user_id: clientUserId,
</strong>  account_id: clientAccountId,  
  payment_method: 1,  // bank transfer
  currency: "CLP",
  amount: 1000,
  bank_account_id: "29cd83cf-3678-4207-80c7-7caaa1d24c27",
  // voucher: File. Peru (PE) only.
});
</code></pre>

{% endtab %}
{% endtabs %}

#### 6.2.2 Webpay notification

{% tabs %}
{% tab title="Node" %}

```ts
// ...
const url = await restClient.getWalletService().createFiatDeposit({
  user_id: clientUserId,
  account_id: clientAccountId,  
  payment_method: 2,  // webpay
  currency: "CLP",
  amount: 1000
});

console.log(url);
// https://...
```

{% endtab %}
{% endtabs %}

### 6.3 Notify a withdrawal

Notbank guarantees a global financial experience by offering fiat withdrawal services in all countries where the platform has a presence, allowing users to convert their digital assets into local money efficiently. However, it is important to note that there is a special case for Argentina: due to specific validation processes in that region, it is essential that the user confirms the withdrawal notification within the application to complete the transaction successfully.

#### 6.3.1 Bank withdrawal notification

{% tabs %}
{% tab title="Node" %}

```js
await restClient.getWalletService().createFiatWithdraw({
  user_id: clientUserId,
  account_id: clientAccountId, 
  payment_method: 1,
  currency: "CLP",
  amount: 1000,
  bank_account_id: "29cd83cf-3678-4207-80c7-7caaa1d24c27"
});
```

{% endtab %}
{% endtabs %}

#### 6.3.2 Bank withdrawal notification in Argentina

Get information of a destination CBU account

{% tabs %}
{% tab title="Node" %}

```js
// ...
const owners = await restClient.getWalletService().getOwnersFiatWithdraw({
  cbu: "6845784411100069899422"
});

console.log(owners);
// [
//   {
//     "person_type": "F",
//     "cuit": "CUIT number",
//     "name": "Person name"
//   }, ...
// ]
```

{% endtab %}
{% endtabs %}

Notify a bank withdrawal

{% tabs %}
{% tab title="Node" %}

```js
// ...
const withdrawId = await restClient.getWalletService().createFiatWithdraw({
  user_id: clientUserId,
  account_id: clientAccountId, 
  payment_method: 1,
  currency: "ARS",
  amount: 1000,
  cbu: "6845784411100069899422",
  person_type: "F",
  cuit: "CUIT number",
  name: "Person name"
});

console.log(withdrawId);
// 32347216-4a4c-49ee-b0a5-1ad993fe522b
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
When you notify a bank withdrawal, Notbank will send a confirmation code to your email which you must then enter in the next step.
{% endhint %}

Confirm a bank withdrawal

{% tabs %}
{% tab title="Node" %}

```js
// ...
await restClient.getWalletService().confirmFiatWithdraw({
  user_id: clientUserId,
  withdrawal_id: "32347216-4a4c-49ee-b0a5-1ad993fe522b",
  attempt_code: 123456
});
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.notbank.com/learn/tutorial/en/crypto-as-a-service-caas.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
