# DOCUMENTACIÓN CERTO API
1. Overview
CERTO es una plataforma que te permite gozar de las bondades que ofrece una red blockchain privada, al registrar y verificar la autenticidad de tus activos digitales. Integra fácilmente dentro de tu solución el API de CERTO y descubre cómo tus activos digitales se vuelven más seguros e inalterables.
Incluir un video si es posible o una imagen que ilustre como es el proceso.
CERTO is a platform that allows you to enjoy the benefits of a private blockchain network by registering and verifying the authenticity of your digital assets. Easily integrate CERTO's API into your solution and discover how your digital assets become more secure and unalterable.
## 1. Creación de cuenta
### Definition
Crear la cuenta criptográfica (keystore) y deployar el contrato Controllador
| Method | Path |
|---|---|
| POST | /account |
### Request parameters
| Name | Type | Description |
|---|---|---|
| accountPassword | string | Password para crear Keystore |
```
JSON
{
"accountPassword": "pwd"
}
```
### Result
Se retorna el keystore en formato JSON
```
{
version: 3,
id: 'c8843162-474c-4d47-9bce-2f9842d1b833',
address: 'a24406d8dde54140976df25b98aade5583450604',
crypto: {
ciphertext: '1ec134bc02de07a7309073a67e5ffc8024c8271a9186372009967c4c60fdd323',
cipherparams: {iv: '48c5044636f4cb28db91c679aa657b97'},
cipher: 'aes-128-ctr',
kdf: 'scrypt',
kdfparams: {
dklen: 32,
salt: 'ad4d20102ff1d69a051132e750eea692bde2da113690603447b4814777f9ff0e',
n: 8192,
r: 8,
p: 1,
},
mac: 'bf0733445a3243e5e021917e5699a8b0ef0091d3226ba28ac18d3074439f94bb',
},
contractAddress: '0x1C0a58E3d7B55e48fb329Ae7e2ADE837b2411df6'
};
```
---
## 2. Creación de Proceso
### Definition
Crear un proceso con un hito inicial. La creación de un proceso crea por default un hito inicial dentro del mismo.
| Method | Path |
|---|---|
| POST | /process |
### Request parameters
| Name | Type | Description |
|---|---|---|
| file | FILE | Archivo para crear hito |
| password | string | Password de la Keystore |
| description | string | Descripción del archivo/hito |
```
form-data
file: file
password: pwd
description: description
```
### Result
```
{
"contractAddress": "0x7f65c4d8a188e3c83a488a50dfe988f25db8f79c",
"ipfsHash": "Qma3fbh6ssJ5JGqqBkDZesVJ7ABykSGVJ8Zj324GbDaPWb"
}
```
### Result parameters
| Name | Type | Description |
|---|---|---|
| contractAddress | string | Address del proceso |
| ipfsHash | string | hash del documento registrado dentro de un hito |
---
## 3. Creación de hito
### Definition
Se agrega un hito dentro de un proceso previamente creado. La creación de un proceso crea por default un hito inicial dentro del mismo.
| Method | Path |
|---|---|
| PUT | /process/{processAddress} |
### Route parameters
| Name | Type | Description |
|--|--|--|
|processAddress| string | Address del proceso |
### Request parameters
| Name | Type | Description |
|---|---|---|
| file | FILE | Archivo para crear hito |
| password | string | Password de la Keystore |
| description | string | Descripción del archivo/hito |
```
form-data
file: file
password: pwd
description: description
```
### Result
```
{
"ipfsHash": "Qma3fbh6ssJ5JGqqBkDZesVJ7ABykSGVJ8Zj324GbDaPWb"
}
```
### Result parameters
| Name | Type | Description |
|---|---|---|
| ipfsHash | string | hash del documento registrado dentro de un hito |
---
## 4. Buscar hito por hash
### Definition
Se listan los detalles de un hito perteneciente a un proceso utilizando el hash del documento asignado.
| Method | Path |
|---|---|
| GET | /process/dochash/{ipfsHash} |
### Route parameters
| Name | Type | Description |
|---|---|---|
| ipfsHash | string | hash de documento dentro de un hito |
### Result
```
{
"index": 1,
"milestones": [
{
"description": "description 1",
"hash": "hash 1",
"timestamp": "timestamp 1",
"blockNumber": "101"
},
{
"description": "description 2",
"hash": "hash 2",
"timestamp": "timestamp 2",
"blockNumber": "102"
},
]
}
```
### Result parameters
| Name | Type | Description |
|---|---|---|
| index | number | Indice del hito dentro de un proceso |
| milestones| array(obj) | Arreglo de hitos dentro de un proceso |
| description | string | descripción de un hito |
| hash | string | hash de un documento dentro de un hito |
| timestamp | string | timestamp de un hito |
---
## 5. Buscar hito por documento/formato original
### Definition
Se listan los detalles de un hito perteneciente a un proceso utilizando el formato original del documento asignado.
| Method | Path |
|---|---|
| POST | /process/docfile |
### Request parameters
| Name | Type | Description |
|---|---|---|
| file | FILE | formato original de documento dentro de un hito |
```
form-data
file: file
```
### Result
```
{
"index": 1,
"milestones": [
{
"description": "description 1",
"hash": "hash 1",
"timestamp": "timestamp 1",
"blockNumber": "101"
},
{
"description": "description 2",
"hash": "hash 2",
"timestamp": "timestamp 2",
"blockNumber": "102"
},
]
}
```
### Result parameters
| Name | Type | Description |
|---|---|---|
| index | number | Indice del hito dentro de un proceso |
| milestones| array(obj) | Arreglo de hitos dentro de un proceso |
| description | string | descripción de un hito |
| hash | string | hash de un documento dentro de un hito |
| timestamp | string | timestamp de un hito |
---