Para iniciar una nueva transferencia P2P del tipo Tipo 1 o Tipo 2, se debe realizar una solicitud POST al endpoint: POST /v1/transfer
Este método orquesta la ejecución completa del flujo de transferencia P2P en TIN Cloud.
Tipo 1: Transferencia con aceptación (sin relación de confianza).
Tipo 2: Transferencia inmediata (con relación de confianza).
La ejecución de este endpoint permite iniciar la acción SEND, que a su vez gestionará las acciones necesarias como UPLOAD (débito), SEND (transferencia) y DOWNLOAD (crédito), dependiendo del tipo de flujo que se aplique.
Antes de iniciar una transferencia, debes agregar los detalles del dispositivo (Device Fingerprint) en el objeto labels.deviceFingerPrint.
CreateTransferRequest createTransferRequest = new CreateTransferRequest();createTransferRequest.Source = "wsource_user_bridge_address";createTransferRequest.Target = "$target_user_phone_number";Dictionary<String, object> labels = new Dictionary<String, Object>();createTransferRequest.Labels = labels;labels["type"] = "SEND";labels["description"] = "Description of a transfer";createTransferRequest.Amount = "AMOUNT";createTransferRequest.Symbol = "$tin";instance.Configuration.AddApiKey("x-api-key","5b481fc2ae177010e197026b39c58cdb000f4c3897e841714e82c84c");var response = instance.CreateTinTransfer(createTransferRequest);
Copy
CreateTransferRequest createTransferRequest = new CreateTransferRequest();createTransferRequest.Source = "wsource_user_bridge_address";createTransferRequest.Target = "$target_user_phone_number";Dictionary<String, object> labels = new Dictionary<String, Object>();createTransferRequest.Labels = labels;labels["type"] = "SEND";labels["description"] = "Description of a transfer";createTransferRequest.Amount = "AMOUNT";createTransferRequest.Symbol = "$tin";instance.Configuration.AddApiKey("x-api-key","5b481fc2ae177010e197026b39c58cdb000f4c3897e841714e82c84c");var response = instance.CreateTinTransfer(createTransferRequest);
Copy
CreateTransferRequest tinTranfer = new CreateTransferRequest();CreateTransferRequestLabels labels = new CreateTransferRequestLabels();DeviceFingerPrint deviceFingerPrint = new DeviceFingerPrint();deviceFingerPrint.setCity("Bogota");deviceFingerPrint.setCountry("Colombia");deviceFingerPrint.setGeolocation(" ");deviceFingerPrint.setHash("26fff5af6441f8e15a71e8d62c361714484b1b308c99e8eb68ca85e2a7e0dc58");deviceFingerPrint.setIpAddress("190.242.46.190");deviceFingerPrint.setMobileDevice("a");deviceFingerPrint.setSiMCardId("a");deviceFingerPrint.setModel("a");deviceFingerPrint.setOperator("a");labels.setTxId("34242342sdfe3432r23");labels.setType("SEND");labels.setDescription("Description of a transfer");labels.setTransactionPurpose("transactionPurpose");labels.setSourceCreated("2018-08-03T09:58:01.906Z");labels.setNumberOfTransactions("1");labels.setDeviceFingerPrint(deviceFingerPrint);tinTranfer.setSource("wsource_user_bridge_address");tinTranfer.setTarget("$target_user_phone_number");tinTranfer.setAmount("10000");tinTranfer.setSymbol("$tin");tinTranfer.setLabels(labels);CreateTransferResponse tinTransfer = sdkApiClient.createTinTransfer(tinTranfer);System.out.println(tinTransfer);
Copy
var Tinapi = require('tinapi_');var defaultClient = Tinapi.ApiClient.instance;// Configure API key authorization: ApiKeyAuthvar ApiKeyAuth = defaultClient.authentications['ApiKeyAuth'];ApiKeyAuth.apiKey = '5b481fc2ae177010e197026b39c58cdb000f4c3897e841714e82c84c';var apiInstance = new Tinapi.TransferApi();var createTransferRequest = new Tinapi.CreateTransferRequest(); // CreateTransferRequest |createTransferRequest.source = "wsource_user_bridge_address";createTransferRequest.target = "$target_user_phone_number";var labels = {};createTransferRequest.Labels = labels;labels.type = "SEND";labels.description. = "Description of a transfer";createTransferRequest.amount = "AMOUNT";createTransferRequest.symbol = "$tin";apiInstance.createTinTransfer(createTransferRequest).then(function(data) { console.log(data); console.log('API called successfully. Returned data: ' + data);}, function(error) { console.error(error);});
Para realizar una transferencia de tipo TYPE2, se requiere crear un vínculo de confianza (trust link) antes de ejecutar la solicitud de transferencia.
Cuando existe una relación de confianza, cualquier transacción generada desde un signer dentro del wallet origen será transferida inmediatamente al signer de destino definido en el vínculo de confianza, sin necesidad de aceptación manual por parte del usuario receptor.
Las relaciones de confianza permiten ejecutar flujos de transferencia inmediatos sin enviar notificaciones ni requerir aceptación por parte del receptor.
Para consultar una transferencia, ve a la sección Transferencias en el Dashboard, donde encontrarás el listado completo de todas las transferencias realizadas.
Haz clic en “detalles” para ver la información detallada de una transferencia específica.