Skip to content

Criar Transação

Cria uma nova transação para compra de energia ou bandwidth, pacote de recursos ou ativação de endereço.

Um pacote de recursos permite que você compre energia e bandwidth em uma única requisição à API.

POST /v1/transaction/new

Requisição

Parâmetros da Requisição

CampoTipoObrigatórioDescrição
external_idstringNãoIdentificador externo opcional da transação
servicestringSimTipo de serviço: "energy", "bandwidth", "resource_bundle" ou "activate_address"
paramsobjectSimObjeto com parâmetros do serviço
params.addressstringSimEndereço da carteira TRON (34 caracteres)
params.amount*integerCondicionalQuantidade de energia ou bandwidth a ser comprada. Obrigatório quando service="energy" ou "bandwidth" e params.amounts não é fornecido.
params.energy_amount*integerNãoObsoleto. Use params.amount ou params.amounts.energy.
params.amounts*objectCondicionalObjeto de quantidades de recursos. Obrigatório quando service="resource_bundle". Também pode ser usado para os serviços "energy" e "bandwidth".
params.amounts.energyintegerCondicionalQuantidade de energia a ser comprada. Obrigatório dentro de amounts para "resource_bundle".
params.amounts.bandwidthintegerCondicionalQuantidade de bandwidth a ser comprada. Obrigatório dentro de amounts para "resource_bundle".
params.durationintegerSimDuração em horas. Atualmente apenas 1 hora é suportada para energia, bandwidth e resource_bundle.
params.activate_addressbooleanNãoSe o endereço deve ser ativado. Opcional para os serviços de energia, bandwidth e resource_bundle.

* Recomendamos usar o objeto amounts como a abordagem mais universal. A API resolve a quantidade de recursos na seguinte ordem: params.amountsparams.amountparams.energy_amount.

bash
#!/bin/bash
API_TOKEN="seu_token_api"
API_SECRET="seu_segredo_api"
REQUEST_BODY='{
  "external_id": "meu-id-externo-123",
  "service": "energy",
  "params": {
    "address": "ENDERECO_TRX",
    "amounts": {
      "energy": 65000
    },
    "duration": 1
  }
}'

# Calcula a assinatura
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)

# Faz a requisição à API
curl -X POST "https://api.tronzap.com/v1/transaction/new" \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -H "X-Signature: ${SIGNATURE}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}"
javascript
const crypto = require('crypto');
const axios = require('axios');

const apiToken = 'seu_token_api';
const apiSecret = 'seu_segredo_api';
const requestBody = JSON.stringify({
  external_id: 'meu-id-externo-123',
  service: 'energy',
  params: {
    address: 'ENDERECO_TRX',
    amounts: {
      energy: 65000
    },
    duration: 1
  }
});

// Calcula a assinatura
const signature = crypto
  .createHash('sha256')
  .update(requestBody + apiSecret)
  .digest('hex');

// Faz a requisição à API
axios({
  method: 'post',
  url: 'https://api.tronzap.com/v1/transaction/new',
  headers: {
    'Authorization': `Bearer ${apiToken}`,
    'X-Signature': signature,
    'Content-Type': 'application/json'
  },
  data: requestBody
})
.then(response => console.log(response.data))
.catch(error => console.error(error));
php
<?php
$apiToken = 'seu_token_api';
$apiSecret = 'seu_segredo_api';
$requestBody = json_encode([
  'external_id' => 'meu-id-externo-123',
  'service' => 'energy',
  'params' => [
    'address' => 'ENDERECO_TRX',
    'amounts' => [
      'energy' => 65000
    ],
    'duration' => 1
  ]
]);

// Calcula a assinatura
$signature = hash('sha256', $requestBody . $apiSecret);

// Faz a requisição à API
$ch = curl_init('https://api.tronzap.com/v1/transaction/new');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestBody);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization: Bearer ' . $apiToken,
  'X-Signature: ' . $signature,
  'Content-Type: application/json'
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
?>
python
import hashlib
import json
import requests

api_token = 'seu_token_api'
api_secret = 'seu_segredo_api'
request_body = json.dumps({
  'external_id': 'meu-id-externo-123',
  'service': 'energy',
  'params': {
    'address': 'ENDERECO_TRX',
    'amounts': {
      'energy': 65000
    },
    'duration': 1
  }
})

# Calcula a assinatura
signature = hashlib.sha256((request_body + api_secret).encode()).hexdigest()

# Faz a requisição à API
headers = {
  'Authorization': f'Bearer {api_token}',
  'X-Signature': signature,
  'Content-Type': 'application/json'
}

response = requests.post(
  'https://api.tronzap.com/v1/transaction/new',
  headers=headers,
  data=request_body
)

print(response.json())

Exemplo de Requisição para Pacote de Recursos

bash
#!/bin/bash
API_TOKEN="seu_token_api"
API_SECRET="seu_segredo_api"
REQUEST_BODY='{
  "external_id": "meu-id-externo-123",
  "service": "resource_bundle",
  "params": {
    "address": "ENDERECO_TRX",
    "amounts": {
      "energy": 65000,
      "bandwidth": 345
    },
    "duration": 1,
    "activate_address": true
  }
}'

# Calcula a assinatura
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)

# Faz a requisição à API
curl -X POST "https://api.tronzap.com/v1/transaction/new" \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -H "X-Signature: ${SIGNATURE}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}"
javascript
const crypto = require('crypto');
const axios = require('axios');

const apiToken = 'seu_token_api';
const apiSecret = 'seu_segredo_api';
const requestBody = JSON.stringify({
  external_id: 'meu-id-externo-123',
  service: 'resource_bundle',
  params: {
    address: 'ENDERECO_TRX',
    amounts: {
      energy: 65000,
      bandwidth: 5000
    },
    duration: 1,
    activate_address: true
  }
});

// Calcula a assinatura
const signature = crypto
  .createHash('sha256')
  .update(requestBody + apiSecret)
  .digest('hex');

// Faz a requisição à API
axios({
  method: 'post',
  url: 'https://api.tronzap.com/v1/transaction/new',
  headers: {
    'Authorization': `Bearer ${apiToken}`,
    'X-Signature': signature,
    'Content-Type': 'application/json'
  },
  data: requestBody
})
.then(response => console.log(response.data))
.catch(error => console.error(error));
php
<?php
$apiToken = 'seu_token_api';
$apiSecret = 'seu_segredo_api';
$requestBody = json_encode([
  'external_id' => 'meu-id-externo-123',
  'service' => 'resource_bundle',
  'params' => [
    'address' => 'ENDERECO_TRX',
    'amounts' => [
      'energy' => 65000,
      'bandwidth' => 5000
    ],
    'duration' => 1,
    'activate_address' => true
  ]
]);

// Calcula a assinatura
$signature = hash('sha256', $requestBody . $apiSecret);

// Faz a requisição à API
$ch = curl_init('https://api.tronzap.com/v1/transaction/new');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestBody);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization: Bearer ' . $apiToken,
  'X-Signature: ' . $signature,
  'Content-Type: application/json'
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
?>
python
import hashlib
import json
import requests

api_token = 'seu_token_api'
api_secret = 'seu_segredo_api'
request_body = json.dumps({
  'external_id': 'meu-id-externo-123',
  'service': 'resource_bundle',
  'params': {
    'address': 'ENDERECO_TRX',
    'amounts': {
      'energy': 65000,
      'bandwidth': 5000
    },
    'duration': 1,
    'activate_address': True
  }
})

# Calcula a assinatura
signature = hashlib.sha256((request_body + api_secret).encode()).hexdigest()

# Faz a requisição à API
headers = {
  'Authorization': f'Bearer {api_token}',
  'X-Signature': signature,
  'Content-Type': 'application/json'
}

response = requests.post(
  'https://api.tronzap.com/v1/transaction/new',
  headers=headers,
  data=request_body
)

print(response.json())

Exemplo de Requisição para Ativação de Endereço

bash
#!/bin/bash
API_TOKEN="seu_token_api"
API_SECRET="seu_segredo_api"
REQUEST_BODY='{
  "external_id": "meu-id-externo-123",
  "service": "activate_address",
  "params": {
    "address": "ENDERECO_TRX"
  }
}'

# Calcula a assinatura
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)

# Faz a requisição à API
curl -X POST "https://api.tronzap.com/v1/transaction/new" \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -H "X-Signature: ${SIGNATURE}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}"
javascript
const crypto = require('crypto');
const axios = require('axios');

const apiToken = 'seu_token_api';
const apiSecret = 'seu_segredo_api';
const requestBody = JSON.stringify({
  external_id: 'meu-id-externo-123',
  service: 'activate_address',
  params: {
    address: 'ENDERECO_TRX'
  }
});

// Calcula a assinatura
const signature = crypto
  .createHash('sha256')
  .update(requestBody + apiSecret)
  .digest('hex');

// Faz a requisição à API
axios({
  method: 'post',
  url: 'https://api.tronzap.com/v1/transaction/new',
  headers: {
    'Authorization': `Bearer ${apiToken}`,
    'X-Signature': signature,
    'Content-Type': 'application/json'
  },
  data: requestBody
})
.then(response => console.log(response.data))
.catch(error => console.error(error));

Resposta

A resposta fornece detalhes sobre a transação criada.

Campos da Resposta

CampoTipoDescrição
codeintegerCódigo da resposta (0 = sucesso)
request_idstringIdentificador único da requisição
resultobjectDados da resposta
result.idstringID interno da transação
result.external_idstring|nullID externo da transação (se fornecido)
result.servicestringTipo de serviço: "energy", "bandwidth", "resource_bundle" ou "activate_address"
result.paramsobjectParâmetros originais da requisição
result.params.activate_addressbooleanSe a ativação do endereço foi solicitada
result.statusstringStatus da transação (ver lista de status)
result.amountfloatValor da transação
result.created_atstringData e hora de criação (formato ISO 8601)
result.hashstringHash da transação (se concluída)

Exemplo de Resposta

json
{
    "code": 0,
    "request_id": "bbf74bcd-fb36-4df8-adc8-25f2bacd087b",
    "result": {
        "id": "id_da_transacao",
        "external_id": "meu-id-externo-123",
        "service": "energy",
        "params": {
            "address": "ENDERECO_TRX",
            "amounts": {
                "energy": 65000
            },
            "duration": 1,
            "activate_address": false
        },
        "status": "success",
        "amount": 8.25,
        "created_at": "2024-03-22T12:00:00Z",
        "hash": null
    }
}

Possíveis Erros

Código do ErroKeyDescrição
1authErro de autenticação (token ou assinatura incorretos)
2invalid_service_or_paramsServiço ou parâmetros inválidos
5wallet_not_foundCarteira não encontrada
6insufficient_fundsSaldo insuficiente
10invalid_tron_addressEndereço TRON inválido
11invalid_energy_amountQuantidade de energia inválida
12invalid_durationDuração inválida
50invalid_bandwidth_amountQuantidade de bandwidth inválida
24address_not_activatedEndereço não ativado (para serviço energy)
25address_already_activatedEndereço já ativado (para serviço activate_address)
35service_unavailableServiço indisponível
500internal_server_errorErro interno do servidor

Tron Energy API Documentation