Introducción
Los participantes registran sus llaves en el directorio federado de Transfiya, el cual sincroniza inmediatamente con el directorio centralizado.
Las llaves que cumplen con los requisitos mínimos de regulación se mapearán a los credenciales de pago signers de Transfiya en una relación de un credencial de pago a una llave.
Validaciones de llaves son basados en minimos campos requeridos para la creación de una llave por la regulación.
Las billeteras actualmente permiten asignar múltiples cuentas a una sola llave. Esta funcionalidad está disponible por motivos de compatibilidad, pero no se utilizará en las llaves Bre-B.
Flujo de creación de llave
A continuación se presenta una descripción general del flujo de creación de llaves y una comparativa con el proceso actual de Transfiya.
Ejemplo de creación de llave
Para la creación de llaves, se utilizará la interfaz de aplicación destinada a la creación de signers.
La plataforma Transfiya utiliza tipos de datos y esquemas dinámicos para garantizar la integridad y consistencia de los datos en toda la plataforma. Esto incluye reglas de validación para diversos campos dentro del sistema.
Tipos de Validaciones:
Tipo signer | Schema aplicada | Descripción |
---|
PERSON | PERSON | Representa una persona física |
BUSINESS | BUSINESS | Representa una empresa o persona jurídica. |
Más sobre modelo de data
Para cubrir el caso de incorporación (onboarding), TransfiYa añade nuevas etiquetas al payload del firmante. Estas etiquetas representan las marcas de tiempo que los participantes necesitan recopilar:
- received → el momento en que un participante recibió una solicitud del usuario para incorporarse, cuando el usuario hace clic en la aplicación
- dispatched → el momento en que un participante envió una solicitud de incorporación a Transfiya, cuando se llama a la API de creación de firmante
- bankId → el NIT de la entidad financiera sin el digito de verificación
Ejemplo llave persona
A continuación se presenta un ejemplo de creación de una llave tipo ‘PERSON’ y un análisis comparativo con la implementación actual en Transfiya:
curl -X POST \
-H "x-api-key: <API_KEY>" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"labels": {
+ "aliasType": "ALPHANUM",
+ "aliasValue": "@jorge22",
"type": "PERSON",
"firstName": "Jorge",
"secondName": "Manuel",
"lastName": "Diaz",
"secondLastName": "Padilla",
"proprietary": "CC",
"identification": "1010101010",
"bankAccountType": "SVGS",
"bankAccountNumber": "12345654321",
"routerReference": "$bancorojo",
"targetSpbviCode": "TFY",
"consented": "2024-10-11T11:59:24.241-05:00",
+ "bankId": "891234918",
+ "received": "2024-10-11T11:59:22.241-05:00",
+ "dispatched": "2024-10-11T11:59:22.517-05:00"
},
"keeper": [{
"scheme": "ecdsa-ed25519",
"public": "0463e75c8b975f069813ca8e6c36c0b6fd246eac708affb7ed2c6480fa201defe8725322d6380ec66e94f6dcb49f635c0ca51296e48da4a12b3ec66582a1297adf"
}]
}' "<base URL>/v1/signer"
curl -X POST \
-H "x-api-key: <API_KEY>" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"labels": {
+ "aliasType": "ALPHANUM",
+ "aliasValue": "@jorge22",
"type": "PERSON",
"firstName": "Jorge",
"secondName": "Manuel",
"lastName": "Diaz",
"secondLastName": "Padilla",
"proprietary": "CC",
"identification": "1010101010",
"bankAccountType": "SVGS",
"bankAccountNumber": "12345654321",
"routerReference": "$bancorojo",
"targetSpbviCode": "TFY",
"consented": "2024-10-11T11:59:24.241-05:00",
+ "bankId": "891234918",
+ "received": "2024-10-11T11:59:22.241-05:00",
+ "dispatched": "2024-10-11T11:59:22.517-05:00"
},
"keeper": [{
"scheme": "ecdsa-ed25519",
"public": "0463e75c8b975f069813ca8e6c36c0b6fd246eac708affb7ed2c6480fa201defe8725322d6380ec66e94f6dcb49f635c0ca51296e48da4a12b3ec66582a1297adf"
}]
}' "<base URL>/v1/signer"
{
"signer_id": "4c57ac39-16f0-489b-89d9-bddfcd352a36",
"handle": "wRFmYXS2sP9ho9VCZ3j4FuP1j55ABeFvsF",
"labels": {
"aliasType": "ALPHANUM",
"aliasValue": "@JORGE22",
"status": "ACTIVE",
"type": "PERSON",
"firstName": "Jorge",
"secondName": "Manuel",
"lastName": "Diaz",
"secondLastName": "Padilla",
"proprietary": "CC",
"identification": "1010101010",
"bankAccountType": "SVGS",
"bankAccountNumber": "12345654321",
"bankId": "891234918",
"routerReference": "$bancorojo",
"createdBy": "$minka",
"targetSpbviCode": "TFY"
"created": "2024-10-11T11:59:24.241-05:00"
"consented": "2024-10-11T11:59:24.241-05:00",
"received": "2024-10-11T11:59:22.241-05:00",
"dispatched": "2024-10-11T11:59:22.517-05:00"
},
"keeper": [
{
"scheme": "ecdsa-ed25519",
"public": "0463e75c8b975f069813ca8e6c36c0b6fd246eac708affb7ed2c6480fa201defe8725322d6380ec66e94f6dcb49f635c0ca51296e48da4a12b3ec66582a1297adf"
}
],
"error": {
"code": 0,
"message": "Success"
}
}
Ejemplo de creación llave de negocio
A continuación se presenta un ejemplo de creación de una llave tipo ‘BUSINESS’ y un análisis comparativo con la implementación actual en Transfiya:
curl -X POST \
-H "x-api-key: <API_KEY>" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"labels": {
+ "aliasType": "ALPHANUM",
+ "aliasValue": "@cognito",
"type": "BUSINESS",
"name": "Cognito Inc",
"proprietary": "NIT",
"identification": "900123456",
"bankAccountType": "SVGS",
"bankAccountNumber": "12345654321",
"routerReference": "$bancorojo",
"targetSpbviCode": "TFY",
+ "bankId": "891234918",
+ "consented": "2025-03-15T00:44:09-05:00",
+ "received": "2024-10-11T11:59:22.241-05:00",
+ "dispatched": "2024-10-11T11:59:22.517-05:00"
},
"keeper": [{
"scheme": "ecdsa-ed25519",
"public": "0463e75c8b975f069813ca8e6c36c0b6fd246eac708affb7ed2c6480fa201defe8725322d6380ec66e94f6dcb49f635c0ca51296e48da4a12b3ec66582a1297adf"
}]
}' "<base URL>/v1/signer"
curl -X POST \
-H "x-api-key: <API_KEY>" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"labels": {
+ "aliasType": "ALPHANUM",
+ "aliasValue": "@cognito",
"type": "BUSINESS",
"name": "Cognito Inc",
"proprietary": "NIT",
"identification": "900123456",
"bankAccountType": "SVGS",
"bankAccountNumber": "12345654321",
"routerReference": "$bancorojo",
"targetSpbviCode": "TFY",
+ "bankId": "891234918",
+ "consented": "2025-03-15T00:44:09-05:00",
+ "received": "2024-10-11T11:59:22.241-05:00",
+ "dispatched": "2024-10-11T11:59:22.517-05:00"
},
"keeper": [{
"scheme": "ecdsa-ed25519",
"public": "0463e75c8b975f069813ca8e6c36c0b6fd246eac708affb7ed2c6480fa201defe8725322d6380ec66e94f6dcb49f635c0ca51296e48da4a12b3ec66582a1297adf"
}]
}' "<base URL>/v1/signer"
{
"signer_id": "4c57ac39-16f0-489b-89d9-bddfcd352a36",
"handle": "wRFmYXS2sP9ho9VCZ3j4FuP1j55ABeFvsF",
"labels": {
"aliasType": "ALPHANUM",
"aliasValue": "@cognito",
"status": "ACTIVE",
"type": "BUSINESS",
"firstName": "Cognito Inc",
"proprietary": "NIT",
"identification": "900123456",
"bankAccountType": "SVGS",
"bankAccountNumber": "12345654321",
"bankId": "891234918",
"routerReference": "$bancorojo",
"createdBy": "$minka",
"targetSpbviCode": "TFY"
"created": "2024-10-11T11:59:24.241-05:00"
"consented": "2025-03-15T00:44:09-05:00",
"received": "2024-10-11T11:59:22.241-05:00",
"dispatched": "2024-10-11T11:59:22.517-05:00"
},
"keeper": [
{
"scheme": "ecdsa-ed25519",
"public": "0463e75c8b975f069813ca8e6c36c0b6fd246eac708affb7ed2c6480fa201defe8725322d6380ec66e94f6dcb49f635c0ca51296e48da4a12b3ec66582a1297adf"
}
],
"error": {
"code": 0,
"message": "Success"
}
}