Skip to main content

Workflows API (stable)

Download OpenAPI specification:Download

Manejo y ejecucion de flujos dinamicos

Esta API genera flujos customizables para la ejecucion de procesos de negocio, de manera flexible y dinamica.

Flujos

Los flujos son la base de la API, estos contienen pasos que se ejecutan en orden, y que pueden ser customizados para cada caso de uso.

Pasos

Los pasos son las unidades de ejecucion de un flujo, estos pueden ser de diferentes tipos, y pueden ser customizados para cada caso de uso.

Workflows

Manejo de flujos

Listar Flujos

Authorizations:
apiKey
query Parameters
page
integer
Default: 1
Example: page=1

Numero de pagina a consultar

per_page
integer
Default: 20
Example: per_page=20

Cantidad de resultados por pagina a consultar

responsible_uuid
string <uuid>

Filtra por el identificador del usuario responsable.

people_uuid
string <uuid>

Filtra por el identificador de la persona asociada.

status
string
Enum: "pristine" "working" "error" "success" "failed" "people_error" "rules_failed" "skipped"

Filtra por el estado del flujo.

from_date
string <date-time>

Fecha minima de creacion del flujo.

to_date
string <date-time>

Fecha maxima de creacion del flujo.

external_reference_id
string

Filtra por la referencia externa del flujo.

order
string
Default: "desc"
Enum: "asc" "desc"

Orden de los resultados por fecha de creacion.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Crear un Flujo

Authorizations:
apiKey
Request Body schema: application/json

Parametros de creacion de un Flujo

people_uuid
string or null <uuid>

Identificador de persona

entity_uuid
string or null <uuid>

Identificador de la entidad asociada al flujo

callback_url
string or null

URL de notificaciones por medio de Webhook (debe ser HTTPS)

disable_geolocation
boolean or null

Indica si se desea deshabilitar la geolocalizacion en los pasos

responsible_uuid
string or null <uuid>

Identificador de usuario responsable del flujo

external_reference_id
string or null

Referencia externa de ID para el usuario que ejecuta el flujo

skip_steps
object or null

Pasos a saltar en el flujo, se usa la llave con el nombre del paso

rule_set_uuid
string or null <uuid>

Identificador de conjunto de reglas a aplicar al flujo

object or null

Datos para autollenado de campos

object or null

Configuracion inicial indexada por el nombre completo del step (step o step:custom_id). El objeto del step es obligatorio para acceptance, address_verification, biometric_sign, document_analyzer, document_preview, document_sign, enroll_basic, enroll_entity, enroll_full, files_upload, multiple_document_sign, password_sign, personal_financial y personal_references. Los demas setups documentados son opcionales.

metadata
object or null

Metadatos del Flujo, con la propiedad customization_uuid se puede personalizar el contenido de los textos mostrados en los Steps.

expires_in
integer
Default: 0

Tiempo en que tarda en expirar el token de este Flujo en minutos. Este campo se omite o se envia en 0 si no se queire que caduque.

required
Array of StepName (string) or strings (StepReference) non-empty

Arreglo de steps para el workflow

Responses

Request samples

Content type
application/json
{
  • "people_uuid": "86b9535d-50d9-419c-9965-ee4db5956871",
  • "entity_uuid": "86b9535d-50d9-419c-9965-ee4db5956871",
  • "callback_url": "https://webhook.com",
  • "disable_geolocation": true,
  • "responsible_uuid": "86b9535d-50d9-419c-9965-ee4db5956871",
  • "external_reference_id": 123456,
  • "skip_steps": {
    },
  • "rule_set_uuid": "86b9535d-50d9-419c-9965-ee4db5956871",
  • "autofill": {
    },
  • "setup": {
    },
  • "metadata": {
    },
  • "expires_in": 60,
  • "steps": [
    ]
}

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Buscar Flujos por referencia externa

Authorizations:
apiKey
path Parameters
externalReferenceId
required
string

Referencia externa asociada a los Flujos.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Eliminar permanentemente un Flujo y sus datos

Elimina permanentemente el flujo, sus steps, archivos multimedia y datos biometricos asociados.

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>

Identificador del Flujo.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Inicializar un Flujo

Registra los metadatos internos del dispositivo e inicia la ejecucion del flujo.

Authorizations:
workflowSession
path Parameters
uuid
required
string <uuid>

Identificador del Flujo asociado al token de sesion.

Request Body schema: application/json
ip
string or null

Direccion IPv4 o IPv6 del dispositivo.

user_agent
string or null <= 500 characters
device_id
string or null <= 100 characters
device_name
string or null <= 100 characters
system_name
string or null <= 100 characters
system_version
string or null <= 100 characters
app_version
string or null <= 50 characters

Responses

Request samples

Content type
application/json
{
  • "ip": "string",
  • "user_agent": "string",
  • "device_id": "string",
  • "device_name": "string",
  • "system_name": "string",
  • "system_version": "string",
  • "app_version": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Actualizar un Flujo en ejecucion

Authorizations:
workflowSession
path Parameters
uuid
required
string <uuid>

Identificador del Flujo asociado al token de sesion.

Request Body schema: application/json
object
status
string
Enum: "pristine" "working" "error" "success" "failed" "people_error" "rules_failed" "skipped"
error
object

Responses

Request samples

Content type
application/json
{
  • "internal_metadata": {
    },
  • "status": "pristine",
  • "error": { }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Obtener detalle de un Flujo especifico

Authorizations:
apiKey
path Parameters
uuid
required
string
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador del Flujo

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Elimina un Flujo

Authorizations:
apiKey
path Parameters
uuid
required
string
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador del Flujo

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": true
}

Generar token y URL de ejecucion del Flujo

Authorizations:
apiKey
path Parameters
uuid
required
string
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador del Flujo

query Parameters
redirect_url
string
Example: redirect_url=http://example.com

URL al que se redireccionara al terminar el Flujo

custom_domain
string
Example: custom_domain=workflows.example.com

Dominio personalizado para construir la URL publica del Flujo.

generate_qr
boolean

Al incluir este parametro se genera un codigo QR de la URL publica, independientemente de su valor.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Crear un token de acceso y URL de ejecucion del Flujo (Encode Safe)

Crear un token de acceso publico y URL de ejecucion del Flujo cuando hay problemas de encoding en la URL

Authorizations:
apiKey
path Parameters
uuid
required
string
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador del Flujo

Request Body schema: application/json

Parametros de creacion de un token

redirect_url
string

URL al que se redireccionara al terminar el Flujo

custom_domain
string

Dominio personalizado para construir la URL publica del Flujo.

generate_qr
boolean

Al incluir esta propiedad se genera un codigo QR de la URL publica, independientemente de su valor.

Responses

Request samples

Content type
application/json
{
  • "redirect_url": "http://example.com",
  • "custom_domain": "workflows.example.com",
  • "generate_qr": true
}

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Steps

Pasos de un flujo

Obtener metadatos de los Steps disponibles

Authorizations:
apiKey

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": [
    ]
}

Obtener detalle del Step de un Flujo

Authorizations:
apiKey
path Parameters
uuid
required
string
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador del Step

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Obtener Media (Video, Images, Documents) adjuntos a un Step

Authorizations:
apiKey
path Parameters
uuid
required
string
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador del Step

Responses

Media

Media que se adjunto dentro de los pasos de un flujo

Obtener Media (Video, Images, Documents) adjuntos a un Step

Authorizations:
apiKey
path Parameters
uuid
required
string
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador del Step

Responses

Templates

Templates para preconfigurar flujos

Obtener todas las plantillas de workflow

Authorizations:
apiKey

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Crear una plantilla de workflow

Authorizations:
apiKey
Request Body schema: application/json
name
required
string

Nombre de la plantilla de workflow

description
string

Descripcion de la plantilla de workflow

required
Array of StepName (string) or strings (StepReference) non-empty

Arreglo de pasos de la plantilla de workflow

config
required
object

Objeto de configuracion de la plantilla de workflow

required
object or null

Configuracion inicial indexada por el nombre completo del step (step o step:custom_id). El objeto del step es obligatorio para acceptance, address_verification, biometric_sign, document_analyzer, document_preview, document_sign, enroll_basic, enroll_entity, enroll_full, files_upload, multiple_document_sign, password_sign, personal_financial y personal_references. Los demas setups documentados son opcionales.

Responses

Request samples

Content type
application/json
{
  • "name": "Workflow Template 1",
  • "description": "Workflow Template 1 description",
  • "steps": [
    ],
  • "config": {
    },
  • "steps_setup": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Obtener una plantilla de workflow

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador de la plantilla de workflow

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Actualizar una plantilla de workflow

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador de la plantilla de workflow

Request Body schema: application/json
name
string

Nombre de la plantilla de workflow

description
string

Descripcion de la plantilla de workflow

Array of StepName (string) or strings (StepReference) non-empty

Arreglo de pasos de la plantilla de workflow

config
object

Objeto de configuracion de la plantilla de workflow

required
object or null

Configuracion inicial indexada por el nombre completo del step (step o step:custom_id). El objeto del step es obligatorio para acceptance, address_verification, biometric_sign, document_analyzer, document_preview, document_sign, enroll_basic, enroll_entity, enroll_full, files_upload, multiple_document_sign, password_sign, personal_financial y personal_references. Los demas setups documentados son opcionales.

Responses

Request samples

Content type
application/json
{
  • "name": "Workflow Template 1",
  • "description": "Workflow Template 1 description",
  • "steps": [
    ],
  • "config": {
    },
  • "steps_setup": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Eliminar una plantilla de workflow

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador de la plantilla de workflow

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": "Ok"
}

Crear un workflow a partir de una plantilla de workflow

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador de la plantilla de workflow

Request Body schema: application/json
overwrites
object

Objeto de configuracion de la plantilla de workflow

Responses

Request samples

Content type
application/json
{
  • "overwrites": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Template Bindings

Templates de autollenado de documentos

Obtener los templates bindings

Authorizations:
apiKey

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {}
}

Crear un template binding

Authorizations:
apiKey
Request Body schema: application/json
name
string

Nombre del template binding

text_bindings
object

Objeto de campos de texto del template binding

sign_bindings
Array of strings <uuid>

Arreglo de campos de firma del template binding

template_uuid
string

Identificador del template

Responses

Request samples

Content type
application/json
{
  • "name": "Template Binding 1",
  • "text_bindings": {
    },
  • "sign_bindings": [
    ],
  • "template_uuid": "86b9535d-50d9-419c-9965-ee4db5956871"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Validar la sintaxis de una expresion

Authorizations:
apiKey
Request Body schema: application/json
expression
required
string

Expresion a validar

data_names
Array of strings

Nombres de variables permitidas en la expresion.

Responses

Request samples

Content type
application/json
{
  • "expression": "5 > 10 ? 'true': 'false'",
  • "data_names": [
    ]
}

Response samples

Content type
application/json
{
  • "success": true,
  • "result": "Ok"
}

Obtener un template binding

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador del template binding

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Actualizar un template binding

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador del template binding

Request Body schema: application/json
name
string

Nombre del template binding

text_bindings
object

Objeto de campos de texto del template binding

sign_bindings
Array of strings

Arreglo de campos de firma del template binding

Responses

Request samples

Content type
application/json
{
  • "name": "Template Binding 1",
  • "text_bindings": {
    },
  • "sign_bindings": [
    ]
}

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Borrar un template binding

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador del template binding

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": "Ok"
}

Knockout Rules

Reglas para ejecutar flujos

Obtener todas las reglas de knockout

Authorizations:
apiKey

Responses

Response samples

Content type
application/json
{}

Crear una regla de knockout

Authorizations:
apiKey
Request Body schema: application/json
name
string

Nombre de la regla de knockout

template
string

Plantilla de knockout

active
boolean

Indica si la regla de knockout esta activa

step
string (StepName)
Enum: "acceptance" "address_proof" "address_verification" "auth" "biometric_sign" "cdc_authorization" "custom_form" "document_analyzer" "document_preview" "document_qr" "document_sign" "enroll_basic" "enroll_entity" "enroll_fingerprint" "enroll_full" "enroll_simple" "face_enrollment_3d" "files_upload" "finflux_offers" "lead_verify" "liveness" "liveness_2d" "multiple_document_sign" "password_sign" "personal_address" "personal_bank_data" "personal_financial" "personal_job_detail" "personal_references" "verify_email" "verify_phone_number"

Nombre de un step disponible. La disponibilidad puede restringirse por ambiente mediante DISABLE_STEPS.

Responses

Request samples

Content type
application/json
{
  • "name": "Knockout Rule 1",
  • "template": "email != 'example@example.com'",
  • "active": true,
  • "step": "acceptance"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Obtener una regla de knockout

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador de la regla de knockout

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Actualizar una regla de knockout

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador de la regla de knockout

Request Body schema: application/json
name
string

Nombre de la regla de knockout

template
string

Plantilla de knockout

active
boolean

Indica si la regla de knockout esta activa

step
string (StepName)
Enum: "acceptance" "address_proof" "address_verification" "auth" "biometric_sign" "cdc_authorization" "custom_form" "document_analyzer" "document_preview" "document_qr" "document_sign" "enroll_basic" "enroll_entity" "enroll_fingerprint" "enroll_full" "enroll_simple" "face_enrollment_3d" "files_upload" "finflux_offers" "lead_verify" "liveness" "liveness_2d" "multiple_document_sign" "password_sign" "personal_address" "personal_bank_data" "personal_financial" "personal_job_detail" "personal_references" "verify_email" "verify_phone_number"

Nombre de un step disponible. La disponibilidad puede restringirse por ambiente mediante DISABLE_STEPS.

Responses

Request samples

Content type
application/json
{
  • "name": "Knockout Rule 1",
  • "template": "email != 'example@example.com'",
  • "active": true,
  • "step": "acceptance"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Eliminar una regla de knockout

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador de la regla de knockout

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": "Ok"
}

Rule Sets

Conjuntos de reglas para ejecutar flujos

Obtener todas las reglas de knockout

Authorizations:
apiKey

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Crear un conjunto de reglas

Authorizations:
apiKey
Request Body schema: application/json
name
string

Nombre del conjunto de reglas

description
string

Descripcion del conjunto de reglas

active
boolean

Indica si el conjunto de reglas esta activo

knockout_rules
Array of strings <uuid>

Arreglo de reglas

Responses

Request samples

Content type
application/json
{
  • "name": "Rule Set 1",
  • "description": "Rule Set 1 description",
  • "active": true,
  • "knockout_rules": [
    ]
}

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Obtener un conjunto de reglas

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador del conjunto de reglas

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Actualizar un conjunto de reglas

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador del conjunto de reglas

Request Body schema: application/json
name
string

Nombre del conjunto de reglas

description
string

Descripcion del conjunto de reglas

active
boolean

Indica si el conjunto de reglas esta activo

Responses

Request samples

Content type
application/json
{
  • "name": "Rule Set 1",
  • "description": "Rule Set 1 description",
  • "active": true
}

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Eliminar un conjunto de reglas

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador del conjunto de reglas

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": "Ok"
}

Agregar reglas a un conjunto de reglas

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador del conjunto de reglas

Request Body schema: application/json
knockout_rules
Array of strings <uuid>

Arreglo de reglas

Responses

Request samples

Content type
application/json
{
  • "knockout_rules": [
    ]
}

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Eliminar reglas de un conjunto de reglas

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador del conjunto de reglas

Request Body schema: application/json
knockout_rules
Array of strings <uuid>

Arreglo de reglas

Responses

Request samples

Content type
application/json
{
  • "knockout_rules": [
    ]
}

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Customizations

Customizaciones para personalizar flujos

Obtener todas las personalizaciones

Authorizations:
apiKey

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Crear una personalizacion

Authorizations:
apiKey
Request Body schema: application/json
name
string

Nombre de la personalizacion

values
object

Valores de la personalizacion

Responses

Request samples

Content type
application/json
{
  • "name": "Customization 1",
  • "values": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Obtener una personalizacion

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador de la personalizacion

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Actualizar una personalizacion

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador de la personalizacion

Request Body schema: application/json
name
string

Nombre de la personalizacion

values
object

Valores de la personalizacion

Responses

Request samples

Content type
application/json
{
  • "name": "Customization 1",
  • "values": {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Eliminar una personalizacion

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>
Example: 86b9535d-50d9-419c-9965-ee4db5956871

Identificador de la personalizacion

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": "Ok"
}

Webhooks

Notificaciones y receptores de eventos por medio de webhooks

Notificacion de actualizacion de Step/Flujo Webhook

Authorizations:
apiKey
Request Body schema: application/json
event
string
Enum: "update" "create"
resource
string
Enum: "workflow" "step"
resource_uuid
string
Workflow (object) or WorkflowStep (object)

Responses

Request samples

Content type
application/json
{
  • "event": "update",
  • "resource": "workflow",
  • "resource_uuid": "cf455647-34ad-4bf2-900a-83f385b07927",
  • "payload": {
    }
}

Crear un receptor de webhooks

En la API privada requiere apiKey y workflow_uuid es opcional. En el host publico requiere una sesion de workflow y el receptor queda asociado a ese workflow.

Authorizations:
apiKey
Request Body schema: application/json
workflow_uuid
string <uuid>

Disponible unicamente en la API privada

max_events
integer >= 1

Usa el valor configurado por defecto cuando se omite

Responses

Request samples

Content type
application/json
{
  • "workflow_uuid": "5f472623-08f6-4789-89f2-effc00ed9ea8",
  • "max_events": 1
}

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Consultar el estado y requests de un receptor

La consulta publica requiere la sesion del workflow asociado. Las requests se eliminan automaticamente al superar el periodo de retencion configurado y los receptores se eliminan despues del mismo periodo sin actividad, 30 dias por defecto.

Authorizations:
apiKey
path Parameters
uuid
required
string <uuid>
query Parameters
per_page
integer [ 1 .. 100 ]
Default: 20

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "result": {
    }
}

Recibir y guardar un evento de webhook

Cada llamada se almacena de forma independiente. Al alcanzar max_events, las llamadas posteriores reciben HTTP 410.

path Parameters
uuid
required
string <uuid>
Request Body schema:
any

Responses

Request samples

Content type
null

Response samples

Content type
application/json
{
  • "success": false,
  • "error": "No query results for model [App\\Models\\Workflow] 08e950b5-0806-4c13-bf25-dd1130d7c07"
}
rem

JOIN US ON

facebooktwitterLinkedIn
CONTACThello@rem.tools55-91-03-80-54
© Copyright rem 2022 All rights reserved.