Skip to content

Criar Transação

Cria uma nova transação para compra de energia ou ativação de endereço.

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, deve ser "energy" ou "activate_address"
paramsobjectSimObjeto com parâmetros do serviço
params.addressstringSimEndereço da carteira TRON (34 caracteres)
params.energy_amountintegerSim*Quantidade de energia a ser comprada em SUN. Obrigatório quando service="energy"
params.durationintegerSim*Duração em horas (1 hora ou 24 horas). Obrigatório quando service="energy"
params.activate_addressbooleanNãoSe o endereço deve ser ativado. Opcional para o serviço de energia

* Obrigatório apenas quando service="energy"

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",
    "energy_amount": 32000,
    "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',
    energy_amount: 32000,
    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',
    'energy_amount' => 32000,
    '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',
    'energy_amount': 32000,
    '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 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)
resultobjectDados da resposta
result.idstringID interno da transação
result.external_idstringID externo da transação (se fornecido)
result.paramsobjectParâmetros originais da requisição
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,
    "result": {
        "id": "id_da_transacao",
        "external_id": "meu-id-externo-123",
        "params": {
            "address": "ENDERECO_TRX",
            "energy_amount": 32000,
            "duration": 1
        },
        "status": "pending",
        "amount": 8.25,
        "created_at": "2024-03-22T12:00:00Z",
        "hash": null
    }
}

Possíveis Erros

Código do ErroDescrição
1Erro de autenticação (token ou assinatura incorretos)
2Serviço ou parâmetros inválidos
3Saldo insuficiente
10Endereço TRON inválido
11Quantidade de energia inválida
12Duração inválida
500Erro interno do servidor

Tron Energy API Documentation