Skip to content

Calcular Precio

POST /v1/orders/calculate

Devuelve el precio exacto en TRX para una orden hipotética sin crearla. Úsalo para mostrar a los usuarios el costo antes de que realicen un depósito.

Este es un endpoint de precio puro — no interactúa con la red TRON.

Cuerpo de la solicitud

CampoTipoRequeridoDescripción
durationintegerDuración del alquiler de recursos en horas. Debe ser 1.
activationbooleannoSi es true, incluye la tarifa de activación de cuenta en total. Por defecto es false.
resources.energyintegerno*Cantidad de energía a entregar.
resources.bandwidthintegerno*Cantidad de ancho de banda a entregar.

* Al menos uno de resources.energy o resources.bandwidth debe ser mayor que cero.

Ejemplos

bash
curl -X POST https://api.tronzap.com/v1/orders/calculate \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "duration": 1,
    "activation": false,
    "resources": {
      "energy": 65000,
      "bandwidth": 345
    }
  }'
javascript
const response = await fetch('https://api.tronzap.com/v1/orders/calculate', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json',
  },
  body: JSON.stringify({
    duration: 1,
    activation: false,
    resources: { energy: 65000, bandwidth: 345 },
  }),
})
const data = await response.json()
console.log(data.result.total, data.result.currency)
php
$response = file_get_contents('https://api.tronzap.com/v1/orders/calculate', false, stream_context_create([
  'http' => [
    'method' => 'POST',
    'header' => "Content-Type: application/json\r\nAccept: application/json",
    'content' => json_encode([
      'duration' => 1,
      'activation' => false,
      'resources' => ['energy' => 65000, 'bandwidth' => 345],
    ]),
  ],
]));
$data = json_decode($response, true);
echo $data['result']['total'] . ' ' . $data['result']['currency'];
python
import requests

resp = requests.post('https://api.tronzap.com/v1/orders/calculate', json={
    'duration': 1,
    'activation': False,
    'resources': {'energy': 65000, 'bandwidth': 345},
})
result = resp.json()['result']
print(result['total'], result['currency'])

Respuesta

json
{
  "code": 0,
  "request_id": "550e8400-e29b-41d4-a716-446655440000",
  "result": {
    "energy":     { "amount": 65000, "price": 2.34 },
    "bandwidth":  { "amount": 345,   "price": 0.35 },
    "activation": { "required": false, "price": 0 },
    "total": 2.69,
    "currency": "TRX",
    "duration": 1
  }
}

Con activation: true (activando una nueva cuenta):

json
{
  "code": 0,
  "request_id": "550e8400-e29b-41d4-a716-446655440000",
  "result": {
    "energy":     { "amount": 65000, "price": 2.34 },
    "bandwidth":  { "amount": 345,   "price": 0.35 },
    "activation": { "required": true, "price": 1.40 },
    "total": 4.09,
    "currency": "TRX",
    "duration": 1
  }
}

Campos de la respuesta

CampoTipoDescripción
energy.amountintegerEco de la cantidad de energía solicitada.
energy.pricenumberCosto en TRX por la energía.
bandwidth.amountintegerEco de la cantidad de ancho de banda solicitada.
bandwidth.pricenumberCosto en TRX por el ancho de banda.
activation.requiredbooleanEco del indicador activation enviado.
activation.pricenumberCosto en TRX de la activación. 0 si no se solicitó.
totalnumberSuma de los precios de energía + ancho de banda + activación.
currencystringSiempre TRX.
durationintegerEco de la duración solicitada.

total coincide con el monto de create-order

El total de este endpoint es igual al amount que POST /v1/orders requerirá, dados los mismos datos de entrada y el mismo resultado de activation.

TronZap Partner Documentation