> ## Documentation Index
> Fetch the complete documentation index at: https://transfiya.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Cómo registrar signer genérico

> Cómo registrar signer genérico en Transfiya

## Introducción

Ahora, el Directorio Federado de Transfiya permite la creación de **signer genérico**, las cuales se utilizan en el flujo de transferencias de **cuenta a cuenta** cuando la entidad receptora **no ha implementado el proceso de onboarding automático**.

<Info>
  Estos signers permiten ejecutar transferencias sin necesidad de que el signer del receptor sea creado en tiempo real.<br />**La entidad receptora debe registrar este signer genérico una única vez** y quedará disponible para su uso en futuras operaciones.
</Info>

## Ejemplo de creación de Signer

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 signers y [esquemas dinámicos](../about/about-validations) 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.

| Tipo signer | Schema aplicada | Descripción                                                |
| ----------- | --------------- | ---------------------------------------------------------- |
| `GENERIC`   | GENERIC         | Representa una signer genérico de una Entidad Participante |

### Ejemplo de creación: Signer Genérico

A continuación se presenta un ejemplo de creación de una llave tipo 'GENERIC':

<Tabs>
  <Tab title="Request">
    ```json theme={null}
    curl -X POST \
     -H "x-api-key: <API_KEY>" \
     -H "Authorization: Bearer <TOKEN>" \
     -H "Content-Type: application/json" \
     -d '{
       "labels": {
        "type": "GENERIC",
    	"name": "Signer generico 1",
    	"bankName": "Banco Rojo",
        "routerReference": "$bancorojo",
        "bankBicfi": "7095",
       },
       "keeper": [{
         "scheme": "ecdsa-ed25519",
         "public": "0463e75c8b975f069813ca8e6c36c0b6fd246eac708affb7ed2c6480fa201defe8725322d6380ec66e94f6dcb49f635c0ca51296e48da4a12b3ec66582a1297adf"
       }]
     }' "<base URL>/v1/signer"
    ```
  </Tab>

  <Tab title="Response">
    ```json theme={null}
    {
      "signer_id": "4c57ac39-16f0-489b-89d9-bddfcd352a36",
      "handle": "wRFmYXS2sP9ho9VCZ3j4FuP1j55ABeFvsF",
      "labels": {
        "type": "GENERIC",
        "name": "Generico",
        "proprietary": "NIT",
        "identification": "1010101010",
        "bankAccountType": "SVGS",
        "bankAccountNumber": "12345654321",
        "bankId": "891234918",
        "routerReference": "$bancorojo",
        "createdBy": "$minka"        
      },
      "keeper": [
        {
          "scheme": "ecdsa-ed25519",
          "public": "0463e75c8b975f069813ca8e6c36c0b6fd246eac708affb7ed2c6480fa201defe8725322d6380ec66e94f6dcb49f635c0ca51296e48da4a12b3ec66582a1297adf"
        }
      ],
      "error": {
        "code": 0,
        "message": "Success"
      }
    }
    ```
  </Tab>
</Tabs>

### Campos de entrada:

| **Etiqueta**    | **Descripción**                                    | **Tipo** | **Longitud**                                                 | **Obligatoriedad** |
| --------------- | -------------------------------------------------- | -------- | ------------------------------------------------------------ | ------------------ |
| type            | Tipo de signer: GENERIC                            | Texto    | N/A                                                          | Si                 |
| name            | Nombre para identificación                         | Texto    | 1-140 carácteres                                             | Si                 |
| bankName        | Nombre del banco                                   | Texto    | 1-140 carácteres                                             | Si                 |
| routerReference | Identificador de billetera del banco en Transfiya. | Texto    | 1- Máximo 34 caracteres alfanuméricos, debe comenzar con `$` | Si                 |
| bankBicfi       | Representa el código de compensación del banco.    | Texto    | 1-Máximo 4 caracteres numéricos                              | Si                 |

Con base en lo anterior, para la creación de un *signer* de tipo **GENERIC**, donde el banco origen corresponde a **Source** y el banco destino a **Target**, se deberán crear dos *signers* independientes entre sí. Una vez creados, ambos deberán asociarse al *wallet* **\$Banco**, aplicando de manera estricta la configuración estándar definida para este tipo de integración.

## Request:

```text theme={null}
PUT https://ach-minka-stg.transferenciasinmediatas.com/v1/wallet/{{walletUser}}
```

## Body:

```text theme={null}
{
"labels": {
"bankDomain" :"{{bankBicfi}}",
"targetGenericSigner": "{{targetGenericSigner}}",
"sourceGenericSigner": "{{sourceGenericSigner}}"
}
}
```
