TRONENS API
Vollständiger TRONENS-API-v1-Vertrag: Preise, Energy-Schätzung, Auftragserstellung, Status, Guthaben und Webhooks.
Antwortformat
Eine echte API-Antwort enthält immer success und bei Erfolg data. Fehler enthalten einen maschinenlesbaren error-Code. Die Diagnosedatei zeigt zusätzlich method, url, http_code, duration_ms, request, response und curl_error; diese Felder gehören nicht zur öffentlichen API. Die echte TRONENS-Antwort steht im Feld response des Testers.
{
"success": true,
"data": { ... }
}{
"success": false,
"error": "ERROR_CODE"
}Authentifizierung
Authorization: Bearer te_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/jsonBearer-Token im Authorization-Header senden. Der Schlüssel wird im Konto erstellt und nur einmal vollständig angezeigt.
| Scope | Zugriff |
|---|---|
quote | Preis + Energy-Schätzung |
orders:create | Auftrag erstellen + Bulk API |
orders:read | Auftragsstatus |
balance | Guthaben |
Pro Schlüssel sind IP-Whitelist, Limit pro Minute und Ablaufdatum möglich. Antworten enthalten X-RateLimit-Limit und X-RateLimit-Remaining; bei 429 auch Retry-After.
/api/v1/quote/Preis
Gibt den Kundenpreis inklusive Kontorabatt zurück.
GET /api/v1/quote/?package_id=1&duration_minutes=15
GET /api/v1/quote/?energy_amount=65000&duration_minutes=60| Feld | Bedeutung |
|---|---|
type | Preisart: package oder custom. |
package_id | Paket-ID; nur bei package. |
name | Paketname; nur bei package. |
energy_amount | Energy-Menge, die der Kunde kauft. |
duration_minutes | Mietdauer in Minuten. |
base_price_trx | Preis vor dem Kontorabatt. |
discount_percent | Tatsächlich angewendeter Rabatt in Prozent. |
discount_trx | Rabattbetrag in TRX. |
price_trx | Endbetrag, der dem Kunden belastet wird. |
Beispielantwort
{
"success": true,
"data": {
"type": "custom",
"energy_amount": 65000,
"duration_minutes": 60,
"base_price_trx": 1.961,
"discount_percent": 0,
"discount_trx": 0,
"price_trx": 2.05
}
}/api/v1/estimate/Energy-Schätzung
Schätzt den benötigten Energy-Betrag für eine TRON-Empfängeradresse.
{
"recipient_address": "T...",
"has_usdt": true
}| Feld | Bedeutung |
|---|---|
recipient_address | TRON-Empfängeradresse. |
has_usdt | Optionales boolean: ob USDT TRC20 verwendet wird. |
| Feld | Bedeutung |
|---|---|
estimated_energy | Geschätzter benötigter Energy-Betrag. |
recommended_package | Passendes aktives Paket oder null. |
Beispielantwort
{
"success": true,
"data": {
"estimated_energy": 65000,
"recommended_package": {
"id": 1,
"name": "65 000 Energy",
"energy_amount": 65000,
"duration_minutes": 15
}
}
}/api/v1/order/Auftrag erstellen
Erstellt einen echten Auftrag und belastet das interne TRX-Guthaben. Die Empfängeradresse muss zuvor im TRON-Netzwerk aktiviert sein. Neue API-Aufträge werden asynchron mit HTTP 202 angenommen. external_id sollte immer verwendet werden; Wiederholung liefert den bestehenden Auftrag ohne zweite Belastung.
{
"external_id": "merchant_93481",
"package_id": 1,
"duration_minutes": 15,
"address": "T..."
}| Feld | Bedeutung |
|---|---|
external_id | Ihre eindeutige ID (max. 128 Zeichen: A-Z, a-z, 0-9, . _ : -). |
package_id | Package ID. Use package_id OR energy_amount. |
energy_amount | Custom Energy amount. Custom uses the available duration, currently 60 min. |
duration_minutes | Rental duration. |
address | Recipient TRON address. |
| Feld | Bedeutung |
|---|---|
order_id | TRONENS-Auftrags-ID. |
external_id | Ihre Auftrags-ID für Idempotenz und Statussuche. |
status | Aktueller öffentlicher Auftragsstatus. |
idempotent | true bedeutet: external_id existierte bereits; kein neuer Auftrag. |
Beispielantwort
HTTP 202
{
"success": true,
"data": {
"order_id": 123,
"external_id": "merchant_93481",
"status": "processing",
"idempotent": false
}
}Bulk API
/api/v1/orders/bulk/Erstellt bis zu 50 Aufträge in einem Request. Jeder Eintrag hat eine eigene external_id und ein accepted/failed-Ergebnis. Erfordert orders:create.
Request-Felder
{
"orders": [
{"external_id":"bulk-001","package_id":1,"duration_minutes":15,"address":"T..."},
{"external_id":"bulk-002","energy_amount":65000,"duration_minutes":60,"address":"T..."}
]
}1–50 Aufträge · Berechtigung: orders:create · HTTP 202 / 207
Beispielantwort
{
"success": true,
"data": {
"accepted": 1,
"failed": 1,
"results": [
{"index":0,"external_id":"bulk-001","status":"accepted","order":{"id":123}},
{"index":1,"external_id":"bulk-002","status":"failed","error":"INVALID_TRON_ADDRESS"}
]
}
}/api/v1/status/Auftragsstatus
Gibt die aktuellen Auftragsdaten und den Status zurück.
GET /api/v1/status/?id=123
GET /api/v1/status/?external_id=merchant_93481| Feld | Bedeutung |
|---|---|
id | TRONENS-Auftrags-ID. |
external_id | Ihre externe ID oder null. |
address | TRON-Empfängeradresse. |
energy_amount | Bestellte Energy-Menge. |
duration_minutes | Mietdauer in Minuten. |
price_trx | Für den Auftrag belasteter TRX-Betrag. |
status | Aktueller Status. |
txid | Delegations-TXID, falls verfügbar; sonst null. |
refunded | true, wenn der Betrag bereits auf das Kontoguthaben zurückerstattet wurde. |
error_code | Sicherer öffentlicher Code: ORDER_REVIEW, ORDER_FAILED oder null. |
created_at | Erstellungszeit. |
delivered_at | Bestätigte Energy-Lieferzeit oder null. |
completed_at | Zeitpunkt des vollständigen Mietendes oder null. |
updated_at | Zeit der letzten Änderung. |
Zeitfelder verwenden YYYY-MM-DD HH:MM:SS in der TRONENS-Serverzeitzone.
Beispielantwort
{
"success": true,
"data": {
"id": 123,
"external_id": "merchant_93481",
"address": "T...",
"energy_amount": 65000,
"duration_minutes": 15,
"price_trx": 1.14,
"status": "delegated",
"txid": "...",
"refunded": false,
"error_code": null,
"created_at": "2026-10-03 18:01:00",
"delivered_at": "2026-10-03 18:01:12",
"completed_at": null,
"updated_at": "2026-10-03 18:01:12"
}
}Status
| Status | Bedeutung |
|---|---|
processing | Angenommen und wird verarbeitet. |
delegating | Delegation wird gesendet oder wartet auf Bestätigung. |
delegated | Energy geliefert; Miete ist aktiv. |
undelegating | Mietdauer beendet; Ressource wird zurückgeholt. |
completed | Mietvorgang vollständig abgeschlossen. |
review | Zusätzliche Prüfung erforderlich. Keinen doppelten Auftrag erstellen. |
failed | Bestätigter Fehler. refunded zeigt, ob bereits erstattet wurde. |
/api/v1/balance/Guthaben
Aktuell verfügbares TRX-Guthaben des Kontos.
| Feld | Bedeutung |
|---|---|
balance_trx | Verfügbares Kundenguthaben in TRX. |
{"success":true,"data":{"balance_trx":125.5}}Webhook
Webhooks senden Auftragsdaten bei Statusänderungen. Die Signatur anhand des rohen JSON-Bodys und des Webhook-Secrets prüfen.
X-Webhook-Event: order.delegated
X-Webhook-Id: order-123-order.delegated-...
X-Webhook-Signature: sha256=<hex_hmac>
expected = HMAC_SHA256(raw_json_body, webhook_secret){
"event": "order.delegated",
"event_id": "order-123-order.delegated-...",
"created_at": "2026-10-03T15:01:12Z",
"data": {
"order_id": 123,
"external_id": "merchant_93481",
"address": "T...",
"energy_amount": 65000,
"duration_minutes": 15,
"price_trx": 1.14,
"status": "delegated",
"txid": "...",
"refunded": false,
"error_code": null,
"created_at": "2026-10-03 18:01:00",
"delivered_at": "2026-10-03 18:01:12",
"completed_at": null,
"updated_at": "2026-10-03 18:01:12"
}
}Events: order.processing, order.delegating, order.delegated, order.undelegating, order.completed, order.review, order.failed. HTTP 2xx gilt als erfolgreiche Zustellung; temporäre Fehler werden bis zu 8-mal mit Backoff wiederholt. Nach event_id deduplizieren.
Fehler
error-Codes sind für die programmgesteuerte Verarbeitung gedacht. Verwenden Sie HTTP-Status und das Feld error.
| HTTP | error | Bedeutung |
|---|---|---|
| 401 | UNAUTHORIZED / TOKEN_EXPIRED | Ungültiger oder abgelaufener API-Schlüssel. |
| 403 | SCOPE_FORBIDDEN / IP_NOT_ALLOWED | Erforderlicher Scope fehlt oder IP ist nicht erlaubt. |
| 402 | INSUFFICIENT_BALANCE | Unzureichendes TRX-Guthaben. |
| 400 | INVALID_JSON | Ungültiger JSON-Body. |
| 413 | REQUEST_TOO_LARGE | JSON-Body ist zu groß. |
| 400 | ID_REQUIRED | Status benötigt id oder external_id. |
| 404 | NOT_FOUND / PACKAGE_NOT_FOUND | Auftrag oder Paket nicht gefunden. |
| 422 | EXTERNAL_ID_INVALID | external_id ist ungültig. |
| 422 | INVALID_TRON_ADDRESS | Ungültige TRON-Adresse. |
| 422 | ADDRESS_NOT_ACTIVE | Die TRON-Adresse ist noch nicht aktiviert. Aktivieren Sie sie vor dem Auftrag. |
| 422 | PRODUCT_REQUIRED / PRODUCT_SELECTOR_CONFLICT | Genau einen Parameter package_id oder energy_amount angeben. |
| 422 | CUSTOM_ENERGY_DISABLED | Custom-Energy ist derzeit deaktiviert. |
| 422 | CUSTOM_ENERGY_OUT_OF_RANGE | Custom-Energy liegt außerhalb der aktuellen Limits. |
| 422 | CUSTOM_ENERGY_INVALID_STEP | Custom-Energy entspricht nicht der konfigurierten Schrittweite. |
| 422 | RENTAL_DURATION_UNAVAILABLE / CUSTOM_DURATION_UNAVAILABLE / DURATION_PRICE_UNAVAILABLE | Gewünschte Mietdauer ist nicht verfügbar. |
| 503 | SERVICE_UNAVAILABLE | Dienst vorübergehend nicht verfügbar; später erneut versuchen. |
| 429 | RATE_LIMITED | Anfragelimit des API-Schlüssels überschritten. |
| 405 | METHOD_NOT_ALLOWED | Falsche HTTP-Methode. Verwenden Sie die dokumentierte Methode. |