Montos enteros, decimales por activo
Todo monto es un entero en unidades mínimas, y los decimales son del activo. USDT lleva 4, no 6. Léelos de la respuesta; asumirlos es un error de factor cien que ninguna validación detecta.
El modelo de montos
Saldos, cotizaciones, cambios, depósitos y retiros. La misma superficie que usa el portal, con una llave.
curl https://back.vectrakpital.com/api/v1/client \
-H "X-API-Key: vk_live_3f9a1c72b40de5a1.hR8xK2mQ..."{
"success": true,
"data": {
"name": "Acme Trading SAS",
"status": "active",
"canOperate": true,
"permissions": ["portal:read", "portal:trade"]
}
}permissions es lo primero que conviene leer: es la intersección entre los alcances de tu llave y el puesto de quien la emitió, que es exactamente lo que el servidor exige. Si más tarde una llamada responde 403, compárala contra esto antes de suponer un fallo.
Tres cosas deciden si una integración funciona, y las tres son fáciles de pasar por alto.
Los montos son enteros, y los decimales son del activo
100000000 no son cien millones: son 10 000 USDT, porque USDT lleva 4 decimales aquí y no los 6 de la convención en cadena. Lee assetDecimals de la respuesta y no lo fijes en tu código. Enviar 1000 donde tocaba 10000000 es un error de factor mil que ninguna validación puede detectar, porque los dos son montos válidos.
Un 201 no significa que el dinero se movió
Todo cambio y todo retiro los aprueba una persona en Vectrakpital, sin un umbral por debajo del cual sea automático. Consulta el estado; no des por hecho que crear la solicitud fue el final.
Una llave puede estrecharse sin que la toques
Se emite desde el puesto de una persona y se interseca con ese puesto en cada petición. Si esa persona cambia de rol o se va, la llave lo nota. Emítelas desde un puesto que vaya a durar más que la integración.