Pagos

Cotizaciones

Cuánto llegará de un depósito y cuánto pedirle al usuario para cubrir gas y comisiones.


Una cotización responde dos preguntas antes de que el usuario pague: si deposita este monto, ¿cómo se reparte?; y si quiero que llegue este monto, ¿cuánto debe depositar? Se calcula con las condiciones actuales de tu empresa y el gas de ese instante. No crea ningún cobro ni bloquea nada: el usuario puede depositar otro monto.

1curl -X POST https://api.pasarela.hi-g.io/v1/quotes \2  -H "x-api-key: sk_test_4f9c…" \3  -H "content-type: application/json" \4  -d '{"token": "USDT", "amount": "100", "customer_id": "ext:TARJETA-000123"}'

Respuesta real de una empresa con comisión de plataforma del 1 %, comisión propia del 2 % sobre gross y gas a cargo del usuario, para un cliente que ya había depositado antes:

Respuesta
1{2  "quote": {3    "token": "USDT",4    "decimals": 6,5    "amount": "100",6    "terms": {7      "platform_fee_bps": 100,8      "merchant_fee_bps": 200,9      "merchant_fee_base": "gross",10      "gas_paid_by": "customer"11    },12    "gas": {13      "fee": "0.004691",14      "estimate": "0.004691",15      "first_deposit": false,16      "gas_units": "85051",17      "gas_price_wei": "20000000",18      "eth_usd": 2506.55,19      "eth_usd_source": "chainlink",20      "buffer_bps": 1000,21      "cap": "0.5"22    },23    "if_deposit_amount": {24      "deposit": "100",25      "platform_fee": "1",26      "merchant_fee": "2",27      "gas_fee": "0.004691",28      "net": "96.995309"29    },30    "to_cover_gas": {31      "deposit": "100.004691",32      "platform_fee": "1.000046",33      "merchant_fee": "2.000093",34      "gas_fee": "0.004691",35      "net": "96.999861"36    },37    "to_cover_all": {38      "deposit": "103.097619",39      "platform_fee": "1.030976",40      "merchant_fee": "2.061952",41      "gas_fee": "0.004691",42      "net": "100"43    },44    "gas_guaranteed_until": "2026-10-13T15:19:05.271Z"45  }46}

Los tres escenarios#

BloqueEl usuario depositaLlega a la tesoreríaPara qué sirve
Bloqueif_deposit_amountEl usuario deposita100Llega a la tesorería96.995309Para qué sirveSaber qué pasa si deposita exactamente amount.
Bloqueto_cover_gasEl usuario deposita100.004691Llega a la tesorería96.999861Para qué sirveQue el gas no reduzca lo que llega. Es amount más el gas; las comisiones se siguen descontando.
Bloqueto_cover_allEl usuario deposita103.097619Llega a la tesorería100Para qué sirveQue a la tesorería llegue amount entero: cubre gas y comisiones.

En to_cover_gas el neto no es exactamente el de las comisiones solas porque estas se calculan sobre el depósito, que ahora incluye el gas. to_cover_all es el depósito mínimo con el que el neto alcanza amount.

El bloque gas#

CampoQué es
Campogas.feeQué esGas que se descontaría del depósito. "0" si lo paga la plataforma.
Campogas.estimateQué esCosto estimado del barrido, con el margen incluido, lo pague quien lo pague.
Campogas.first_depositQué estrue si el barrido tendría que desplegar el contrato del cliente (más caro).
Campogas.gas_units, gas.gas_price_weiQué esUnidades de gas estimadas y precio base del gas usado.
Campogas.eth_usd, gas.eth_usd_sourceQué esPrecio del ETH usado y de dónde salió (chainlink, coinbase o fijo).
Campogas.buffer_bpsQué esMargen aplicado, en puntos básicos (1000 = 10 %).
Campogas.capQué esTope de gas por barrido para ese token.
Campogas_guaranteed_untilQué esHasta cuándo el gas cotizado es el máximo para ese cliente. null si no se envió customer_id o si el gas lo paga la plataforma.

Detalles a tener en cuenta#

  • Con o sin cliente. Con customer_id el gas es el de ese cliente y queda garantizado 15 minutos. Sin él se cotiza el caso más caro: un primer depósito.
  • Monto insuficiente. Si el monto no cubre comisiones y gas, el bloque trae { "deposit": "0.001", "error": "El monto no alcanza para cubrir comisiones y gas" } en lugar del reparto. La respuesta sigue siendo 200.
  • Comisiones del 100 %. Si se llevan todo, to_cover_all es { "error": "Las comisiones se llevan todo el depósito: ningún monto alcanza" }.
  • Formato del monto. Texto decimal mayor que cero, sin más decimales que el token. "1.1234567" en USDT responde 400 con USDT admite hasta 6 decimales.
  • No es un cobro. No hay vencimiento del monto ni se rechaza un depósito distinto al cotizado. Lo único que caduca es la garantía del gas.

Todos los parámetros y errores están en Crear cotización.