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

# Tipo 3 - Solicitar Transferencia

## Crear transferencia P2P de tipo REQUEST

Para crear una nueva transferencia P2P tipo **REQUEST**, el banco debe utilizar el endpoint: POST /v1/transfer de la API de TIN. Este método encapsula todos los pasos necesarios para preparar y ejecutar una nueva solicitud de transferencia P2P.

En este flujo, **el usuario receptor es quien crea la transacción de tipo REQUEST**, mientras que **el usuario originador (quien dará el dinero)** tiene la posibilidad de aceptar o rechazar dicha transacción.

Una vez que la transacción es creada exitosamente, se envía un **SMS al usuario originador** con la instrucción de ingresar a cualquiera de los canales del banco para **aprobar o rechazar la solicitud de dinero**.

<Warning>
  Para este tipo de transferencias **no existe una relación de confianza definida**.
</Warning>

<Info>
  En transferencias donde `type="REQUEST"`:

  * El campo `target` representa el **signer (cuenta)** del usuario receptor.
  * El campo `source` representa el **número de teléfono (wallet)** del usuario originador.

  Esto es **lo opuesto** al tipo de transferencia `SEND`, donde `source` es el signer y `target` el wallet.
</Info>

<Tabs>
  <Tab title="cURL Example">
    ```json theme={null}
    curl -X POST -H "x-api-key: 5b481fc2ae177010e197026ba5b51227c44243cd9a18e41be536566e" -H "Authorization: Bearer asdfwXTdDQFimVQOMdn9bOGHJh8KrqnFi34sugYqgrULRCb" -H "Content-Type: application/json" -d '{
    	"source": "$source_user_phone_number",
    	"target": "wtarget_user_bridge_address",
    	"symbol": "$tin",
    	"amount": "10.00",
    	"labels": {
    		"sourceChannel": "APP",
    		"type": "REQUEST",
    		"description": "Description of a transfer",
    		"transactionPurpose": "TRANSFER",
        "numberOfTransactions": "1",
        "deviceFingerprint": {
    			"hash": "26fff5af6441f8e15a71e8d62c361714484b1b308c99e8eb68ca85e2a7e0dc58",
    	    "ipAddress": "190.242.46.190",
    	    "country": "Colombia",
    	    "city": "Bogotá",
    	    "mobileDevice": "990000862471854",
    	    "SIMCardId": "8991101200003204510",
    	    "model": "Huawei Mate 20 Pro",
    	    "operator": "Bharti Airtel Limited",
    		}
    	}
    }' "https://ach-minka-stg.transferenciasinmediatas.com/v1/transfer"
    ```
  </Tab>

  <Tab title="Java Example Code">
    ```json theme={null}

    CreateTransferRequest tinTranfer = new CreateTransferRequest();
    tinTranfer.setSource("$source_user_phone_number");
    tinTranfer.setTarget("wtarget_user_bridge_address");
    tinTranfer.setAmount("10.00");
    tinTranfer.setSymbol("$tin");

    CreateTransferRequestLabels labels = new CreateTransferRequestLabels();
    labels.setType("REQUEST");
    labels.setDescription = "Description of a transfer";
    labels.setSourceChannel = "APP";
    labels.setTransactionPurpose = "TRANSFER";
    labels.setNumberOfTransactions = "1";

    DeviceFingerPrint deviceFingerPrint = new DeviceFingerPrint();
    deviceFingerPrint.setCity("Bogotá");
    deviceFingerPrint.setCountry("Colombia");
    deviceFingerPrint.setHash("26fff5af6441f8e15a71e8d62c361714484b1b308c99e8eb68ca85e2a7e0dc58");
    deviceFingerPrint.setIpAddress("190.242.46.190");
    deviceFingerPrint.setMobileDevice("990000862471854");
    deviceFingerPrint.setSiMCardId("8991101200003204510");
    deviceFingerPrint.setModel("Huawei Mate 20 Pro");
    deviceFingerPrint.setOperator("Bharti Airtel Limited");

    labels.setDeviceFingerPrint(deviceFingerPrint);

    tinTranfer.setLabels(labels);

    CreateTransferResponse tinTransfer = sdkApiClient.createTinTransfer(tinTranfer);

    System.out.println(tinTransfer);
    ```
  </Tab>

  <Tab title="C# Example Code">
    ```json theme={null}
    CreateTransferRequest createTransferRequest = new CreateTransferRequest();
    createTransferRequest.Source = "$source_user_phone_number";
    createTransferRequest.Target = "wtarget_user_bridge_address";
    createTransferRequest.Amount = "10.00";
    createTransferRequest.Symbol = "$tin";

    CreateTransferRequestLabels labels = new CreateTransferRequestLabels();
    labels.type = "REQUEST";
    labels.description = "Description of a transfer";
    labels.SourceChannel = "APP";
    labels.TransactionPurpose = "TRANSFER";
    labels.NumberOfTransactions = "1";

    DeviceFingerPrint deviceFingerPrint = new DeviceFingerPrint();
    deviceFingerPrint.City = "Bogotá";
    deviceFingerPrint.Country = "Colombia";
    deviceFingerPrint.Hash = "26fff5af6441f8e15a71e8d62c361714484b1b308c99e8eb68ca85e2a7e0dc58";
    deviceFingerPrint.IpAddress = "190.242.46.190";
    deviceFingerPrint.MobileDevice = "990000862471854";
    deviceFingerPrint.SiMCardId = "8991101200003204510";
    deviceFingerPrint.Model = "Huawei Mate 20 Pro";
    deviceFingerPrint.Operator = "Bharti Airtel Limited";

    labels.DeviceFingerPrint = deviceFingerPrint;

    createTransferRequest.Labels = labels;

    instance.Configuration.AddApiKey("xApiKey","5b481fc2ae177010e197026ba5b51227c44243cd9a18e41be536566e");

    var response = instance.CreateTinTransfer(createTransferRequest);
    ```
  </Tab>

  <Tab title="Node Example Code">
    ```json theme={null}
    const Tinapi = require('tin_api')
    const defaultClient = Tinapi.ApiClient.instance
    // Configure API key authorization: ApiKeyAuth
    const ApiKeyAuth = defaultClient.authentications['ApiKeyAuth']
    ApiKeyAuth.apiKey = '5b481fc2ae177010e197026ba5b51227c44243cd9a18e41be536566e'

    const apiInstance = new Tinapi.TransferApi()
    const createTransferRequest = new Tinapi.CreateTransferRequest() // CreateTransferRequest |
    createTransferRequest.source = '$source_user_phone_number'
    createTransferRequest.target = 'wtarget_user_bridge_address'
    createTransferRequest.amount = '10.00'
    createTransferRequest.symbol = '$tin'

    createTransferRequest.Labels = {
      type: 'REQUEST',
      description: 'Description of a transfer',
      transactionPurpose: 'TRANSFER',
      numberOfTransactions: '1',
      deviceFingerprint: {
        hash: '26fff5af6441f8e15a71e8d62c361714484b1b308c99e8eb68ca85e2a7e0dc58',
        ipAddress: '190.242.46.190',
        country: 'Colombia',
        city: 'Bogota',
        mobileDevice: '990000862471854',
        SIMCardId: '8991101200003204510',
        model: 'Huawei Mate 20 Pro',
        operator: 'Bharti Airtel Limited',
      },
    }

    apiInstance
      .createTinTransfer(createTransferRequest)
      .then(function (data) {
        console.log('API called successfully. Returned data: ' + data)
      })
      .catch(function (error) {
        console.error(error)
      })
    ```
  </Tab>

  <Tab title="Response">
    ```json theme={null}
    {
      "action_id": "51bfcf60-314c-4b66-b7ff-8a0675918ee5",
      "source": "$source_user_phone_number",
    	"target": "wtarget_user_bridge_address",
    	"symbol": "$tin",
    	"amount": "10.00",
      "labels": {
          "description": "Description of a transfer",
          "domain": "tin",
          "type": "REQUEST",
          "sourceChannel": "APP",
          "transactionPurpose": "TRANSFER",
          "numberOfTransactions": "1",
          "tx_ref": "CUS (Código Único de Seguimiento)",
          "status": "PENDING",
          "hash": "PENDING",
          "created": "YYYY-MM-DDTHH:MM:SS-05:00",
          "updated": "YYYY-MM-DDTHH:MM:SS-05:00"
          "deviceFingerPrint": {
              "hash": "26fff5af6441f8e15a71e8d62c361714484b1b308c99e8eb68ca85e2a7e0dc58",
              "ipAddress": "190.242.46.190",
              "country": "Colombia",
              "city": "Bogotá",
              "mobileDevice": "990000862471854",
              "SIMCardId": "8991101200003204510",
              "model": "Huawei Mate 20 Pro",
              "operator": "Bharti Airtel Limited"
          }
      },
      "snapshot": {
          "source": {
              "wallet": {
    							"handle": "$source_user_phone_number",
                  "signer": [
                      "wsource_user_bridge_address_1",
                      "wsource_user_bridge_address_2",
                      "wsource_user_bridge_address_3"
                  ],
                  "labels": {
                      "type": "PERSON",
                      "created": "YYYY-MM-DDTHH:MM:SS-05:00"
                  }
              },
              "signer": {
                  "labels": {}
              }
          },
          "target": {
              "wallet": {
                  "labels": {
                      "channelSms": "target_user_phone_number",
                      "type": "PERSON",
                      "created": "YYYY-MM-DDTHH:MM:SS-05:00"
                  },
                  "signer": [
                      "wtarget_user_bridge_address_1",
                      "wtarget_user_bridge_address_2",
                      "wtarget_user_bridge_address_3"
                  ],
                  "handle": "$target_user_phone_number"
              },
              "signer": {
                  "handle": "wtarget_user_bridge_address_1",
                  "labels": {
                      "bankAccountType": "TRAS",
                      "routerFormat": "ISO20022",
                      "proprietary": "CE",
                      "countryOfResidence": "AT",
                      "email": "ludwig.boltzmann@minka.io",
                      "sourceChannel": "WEB",
                      "bankBicfi": "7095",
                      "firstName": "Ludwig Eduard",
                      "mobile": "3120021844",
                      "createdBy": "EAGWCCSvcTKdR3AVOXWB",
                      "routerReference": "$bancorojo",
                      "bankName": "Banco Rojo",
                      "created": "2020-02-24T15:22:41-05:00",
                      "lastName": "Boltzmann",
                      "identification": "9876543210",
                      "bankAccountNumber": "12345678902"
                  }
              }
          },
          "symbol": {
              "wallet": {
                  "labels": {
                      "created": "YYYY-MM-DDTHH:MM:SS-05:00",
                      "type": "symbol"
                  },
                  "signer": [
                      "wsymbol_user_bridge_address"
                  ],
                  "handle": "$tin",
                  "default": "wsymbol_user_bridge_address"
              },
              "signer": {
                  "handle": "wsymbol_user_bridge_address",
                  "labels": {
                      "createdBy": "SYMBOL_ID",
                      "created": "YYYY-MM-DDTHH:MM:SS.SSSZ"
                  }
              }
          }
        },
        "error": {
            "code": 0,
            "message": "Success"
        }
    }
    ```
  </Tab>
</Tabs>

## Dashboard - Transferencias

<img src="https://mintcdn.com/minka/s9AlApy9NeaChMwL/images/type3-images-one.png?fit=max&auto=format&n=s9AlApy9NeaChMwL&q=85&s=31aa0808c52c0c6581415086a450c7d3" alt="Descripción del diagrama" width="600px" data-path="images/type3-images-one.png" />

<img src="https://mintcdn.com/minka/s9AlApy9NeaChMwL/images/type3-images-two.png?fit=max&auto=format&n=s9AlApy9NeaChMwL&q=85&s=f66a696961b486c5ad558a323cb79c7f" alt="Descripción del diagrama" width="600px" data-path="images/type3-images-two.png" />

<img src="https://mintcdn.com/minka/s9AlApy9NeaChMwL/images/type3-images-three.png?fit=max&auto=format&n=s9AlApy9NeaChMwL&q=85&s=cc1fa5f447aec9fa13b45c9286d1abcc" alt="Descripción del diagrama" width="600px" data-path="images/type3-images-three.png" />
