Método para ejecutar un retiro de dinero. Es necesario especificar la moneda, el contacto y la cantidad a retirar.
Request
Los siguientes atributos son necesarios para el body de la petición:
| Field | Type | Value |
|---|---|---|
| currencyId | string | Identificador de la moneda a transferir |
| quantity | string | Cantidad a retirar (sin considerar comisión de retiro) |
| contactId | string | Identificador del contacto a transferir |
| contactReference | string | Referencia del contacto a transferir |
ContactId y contactReference
Para identificar el contacto a transferir damos dos opciones, usar el
contactIdo elcontactReference. Es necesario especificar sólo uno de estos dos atributos, si se incluyen ambos el método retornara error con status 400.Para agregar un
referencea un contacto en particular revisar el detalle del método aquí
Quantity y comisión de retiro
Es importante considerar que la cantidad (quantity) a transferir es exactamente lo que recibirá el destinatario, es decir, este monto no considera la comisión de retiro. Para los retiros que tienen comisión, como los del tipo
EXTERNAL_CRYPTO, esta se descontará a parte del monto especificado enquantity.
Response
Los siguientes corresponden a los atributos del objeto:
| Field | Type | Value |
|---|---|---|
| transactionId | string | Identificador de la transacción |
| type | string | Tipo de transacción, en este caso siempre "WITHDRAWAL" |
| subType | string | Tipo de retiro, puede ser "EXTERNAL_CRYPTO", "EXTERNAL_FIAT_BANK", "INTERNAL" o "EXTERNAL_FIAT_REDPAY" |
| currencyId | string | Identificador de la moneda a transferir |
| quantity | string | Monto transferido |
| fee | string | Comisión de retiro |
| total | string | Total gastado (monto transferido + comisión de retiro) |
| status | string | Estado de la transferencia, puede ser "IN_PROGRESS", "PENDING", "COMPLETED", "FAILED" |
| createdAt | Datetime ISO8601 | Fecha de ejecución del retiro |
| withdrawalData | Object | Depende del tipo de retiro |
withdrawalDatapara contacto tipoEXTERNAL_CRYPTO:
| Field | Type | Value |
|---|---|---|
| contactId | string | Identificador del contacto |
| contactAlias | string | Alias del contacto |
| destinationAddress | string | Dirección de destino de la transferencia |
| transactionHash | string | Hash de la transacción en blockchain |
| assetId | string | identificador del asset |
withdrawalDatapara contacto tipoEXTERNAL_FIAT_BANK:
| Field | Type | Value |
|---|---|---|
| contactId | string | Identificador del contacto |
| contactAlias | string | Alias del contacto |
withdrawalDatapara contacto tipoINTERNAL:
| Field | Type | Value |
|---|---|---|
| contactId | string | Identificador del contacto |
| contactAlias | string | Alias del contacto |
withdrawalDatapara contacto tipoEXTERNAL_FIAT_REDPAY:
| Field | Type | Value |
|---|---|---|
| destination | string | Nombre del comercio |
| detail | string | Detalle del pago |
Travel Rule
Según la normativa Travel Rule (FATF), los retiros de 1.000 USD o más requieren información adicional obligatoria del destinatario.
Si no defines estos campos, el método de retiro fallará.
Para completarlos, ingresa a la aplicación de Skipo y edita los campos requeridos del contacto.
Los retiros menores a 1.000 USD no necesitan cambios en tu flujo actual.
Recuerda que puedes revisar todos los endpoints del API y sus referencias en Swagger.