Create Profile
Este endpoint permite almacenar la información de un usuario dentro del servicio, mediante el uso de un formulario de registro perteneciente a la compañia indicada.
La operación será éxitosa siempre y cuando se entreguen los campos requeridos por el formulario de registro y no exista un perfil asociado a los mismos identificadores.
Endpoint
Headers
Key | Value | Description |
---|---|---|
Content-Type | application/json | |
Authorization | Bearer {{access_token}} | access_token obtained in Atenea |
Method: POST
URL: https://api.trust.lat/trust-idp/v1/companies/:company_id/profiles
Query Params
Los filtros disponibles son los siguientes:
Field | Description |
---|---|
fields | String separado por comas que contiene los campos a visualizar en respuesta. Sólo se considerarán campos que se incluyan en el body de la request. Valores permitidos: nin, origin, username, phone_number, email, name, lastname, birthday, nationality, timezone |
Path Variables:
Key | Value Example | Description |
---|---|---|
company_id | -1 | Identificador de la compañia, provisto por la empresa Trust. Obligatorio |
caution
Recuerda que para utilizar este endpoint es necesario un access token obtenido en el servicio Atenea.
Body
Fields
- register_type: Nombre del formulario de registro a utilizar para la creación del perfil. Obligatorio.
- information_provider: Nombre del servicio proveedor de información encargado de realizar el registro del perfil. Obligatorio
- profile: Llave utilizada para contener toda la información asociada al perfil a crear. Seleccionar los atributos indicados a continuación basándose en la lista de atributos permitidos del formulario utilizado.
- nin: Identificador Único Nacional de la persona a registrar.
- origin: Subdivisión interna de la compañia aplicada al perfil de usuario. Utilizar sólo si es estrictamente requerido.
- username: Apodo o identificador personalizado creado por el usuario.
- phone_number: Número de teléfono utilizado por el usuario para el contacto.
- email: Correo electrónico utilizado por el usuario para el contacto
- name: Nombre de pila del usuario.
- lastname: Apellido o nombre de familia del usuario.
- birthday: Fecha de nacimiento del usuario.
- nationality: País de nacimiento del usuario. Utilizar norma ISO 3166-1 alpha 3 para indicar el país de origen.
- timezone: Zona horaria utilizada por el usuario. Utilizar estándar de tiempo UTC.
- options: Llave utilizada para añadir parámetros modificadores de la request para añadir o omitir acciones específicas al momento de crear el perfil del usuario.
- active: Valor booleano que setea el estado inicial de acceso al usuario. Se indica si el usuario tiene permitido logearse, cambiar contraseña, aparecer en búsquedas, entre otras operaciones.
Body JSON Example
{
"register_type": "nin_register",
"information_provider": "test_idp",
"profile": {
"nin": "123456789",
"username": "tlat",
"phone_number": "+56912345678",
"email": "tlat@email.com",
"origin": "test_idp",
"name": "trust",
"lastname": "latin",
"birthday": "12-03-4567",
"nationality": "CHL",
"timezone": "UTC"
},
"options": {
"active": false
}
}
Code Examples
- Curl
- JavaScript
- Python
curl --location --request POST 'https://api.trust.lat/trust-idp/v1/companies/:company_id/profiles?fields=email,name,nin,lastname,phone_number,origin' \
--header 'Authorization: Bearer `{{access_token}}`' \
--header 'Content-Type: application/json' \
--data-raw '{
"register_type": "nin_register",
"information_provider": "test_idp",
"profile": {
"nin": "123456789",
"username": "tlat",
"phone_number": "+56912345678",
"email": "tlat@email.com",
"origin": "test_idp",
"name": "trust",
"lastname": "latin",
"birthday": "12-03-4567",
"nationality": "CHL",
"timezone": "UTC"
},
"options": {
"active": false
}
}'
import requests
import json
url = "https://api.trust.lat/trust-idp/v1/companies/:company_id/profiles?fields=email,name,nin,lastname,phone_number,origin"
payload = json.dumps({
"register_type": "nin_register",
"information_provider": "test_idp",
"profile": {
"nin": "123456789",
"username": "tlat",
"phone_number": "+56912345678",
"email": "tlat@email.com",
"origin": "test_idp",
"name": "trust",
"lastname": "latin",
"birthday": "12-03-4567",
"nationality": "CHL",
"timezone": "UTC"
},
"options": {
"active": False
}
})
headers = {
'Authorization': 'Bearer `{{access_token}}`',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
var axios = require('axios');
var data = JSON.stringify({
"register_type": "nin_register",
"information_provider": "test_idp",
"profile": {
"nin": "123456789",
"username": "tlat",
"phone_number": "+56912345678",
"email": "tlat@email.com",
"origin": "test_idp",
"name": "trust",
"lastname": "latin",
"birthday": "12-03-4567",
"nationality": "CHL",
"timezone": "UTC"
},
"options": {
"active": false
}
});
var config = {
method: 'post',
url: 'https://api.trust.lat/trust-idp/v1/companies/:company_id/profiles?fields=email,name,nin,lastname,phone_number,origin',
headers: {
'Authorization': 'Bearer `{{access_token}}`',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Responses
HTTP Code: 201 Created
Profile Created Successfully
{
"code": 201,
"resource": "Profile",
"data": {
"uuid": "gggggggg-gggg-gggg-gggg-gggggggggggg",
"identification_provider": "trust"
},
"message": "Created"
}
Profile Created - New Profile Not Active
{
"code": 201,
"resource": "Profile",
"data": {
"uuid": "gggggggg-gggg-gggg-gggg-gggggggggggg",
"nin": "123456789",
"phone_number": null,
"email": null,
"name": "trust",
"lastname": "latin",
"identification_provider": "trust"
},
"message": "Created"
}
HTTP Code: 400 Bad Request
Missing Unique Field From Company Config
{
"code": 400,
"resource": "Profile",
"message": "Bad request",
"errors": "Profile does not have the required identifiers to register under the company rules"
}
Missing Required Field From Register Type
{
"code": 400,
"resource": "Profile",
"message": "Bad request",
"errors": "Profile does not have the required fields to register under the company rules"
}
Found Profile with same Identifiers
{
"code": 400,
"resource": "Profile",
"message": "Bad request",
"errors": "Profile already present"
}
HTTP Code: 401 Unauthorized
Unauthorized
{
"status": 401,
"error": "Invalid or expired token"
}
HTTP Code: 403 Forbidden
Forbidden
{
"code": 403,
"message": "Forbidden"
}
HTTP Code: 404 Not Found
Company Not Present
{
"code": 404,
"resource": "Company Config",
"message": "Not found"
}
Register Type Not Present
{
"code": 404,
"resource": "Register Type",
"message": "Not found"
}