Entwicklerdokumentation

API-Arbeitsbereich
https://api.rentron.xyz/v1
OpenAPI-Schema

Bestellung anlegen

// POST

Produktions-API

Bestellung anlegen

Eine idempotente Energy-Miete anlegen und ihren festen Betrag samt Polling-URL erhalten.

POST /v1/energy/orders
Auf dieser Seite

Jeder Geschäftsvorfall braucht eine stabile, eindeutige client_request_id. Sie ist der vorgeschriebene Schutz gegen Doppelbuchungen bei Netzwerk-Wiederholungen.

Anfragetext

{"client_request_id":"order-1042","address":"TJRabPrwbZy45sbavfcjinPJC18kjpRTv8","energy":65000,"duration_minutes":60,"expected_total_trx":"3.200000"}
Feld Typ Pflicht Beschreibung
client_request_id string ja Ihre eindeutige Vorgangs-ID. Wiederverwenden nur für genau diese Bestellung.
address string ja Gültige TRON-Zieladresse.
energy integer ja Positive Menge, ohne Rest durch die Einheitengröße teilbar.
duration_minutes integer ja Erlaubte Dauer aus den Optionen, in Minuten.
expected_total_trx string ja Exakter total_trx des zuletzt eingeholten Angebots, mit sechs Nachkommastellen.

Unbekannte JSON-Eigenschaften werden abgelehnt. Senden Sie Content-Type: application/json.

Antwort 201 oder 200

{"id":"7c0c9a54-517c-4bbb-a946-bf14bf86c113","client_request_id":"order-1042","address":"TJRabPrwbZy45sbavfcjinPJC18kjpRTv8","energy":65000,"duration_minutes":60,"total_trx":"3.200000","status":"created","lifecycle_final":false,"delivery_final":false,"created_at":1784376000,"updated_at":1784376000,"energy_usable":false}

Die Antwort trägt die vollständige Form einer Bestellung aus Bestellung abrufen und lässt jedes Feld weg, das noch keinen Wert hat: eine eben angelegte Bestellung trägt weder den Schlüssel rental_expires_at noch den Schlüssel failure, statt beide auf null zu setzen.

  • 201 Created — eine neue Bestellung; Location enthält /v1/energy/orders/{id}.
  • 200 OK — eine exakt identische Wiederholung liefert die bestehende Bestellung.
  • 409 Conflict mit code: energy_order_idempotency_conflict — dieselbe client_request_id wurde mit anderer Adresse, Menge oder Dauer verwendet.
  • 409 Conflict mit code: energy_price_changed — holen Sie ein neues Angebot ein und senden Sie erneut. Es wurde keine Bestellung angelegt und kein TRX reserviert.
  • 409 Conflict mit code: insufficient_balance — der angebotene Gesamtbetrag übersteigt available_trx. Laden Sie das Konto auf und senden Sie erneut. Es wurde keine Bestellung angelegt und kein TRX reserviert.

Idempotenz

Erzeugen Sie nach einer Zeitüberschreitung keine neue ID. Senden Sie denselben Body mit derselben client_request_id. Eine neue ID gehört nur zu einem neuen Geschäftsvorfall.

Zustandsfelder

status beschreibt die aktuelle Phase. Eine Automatisierung sollte lifecycle_final und delivery_final auswerten, nicht eine fest verdrahtete Statusliste. Siehe Bestellung abrufen.

Fehler

Möglich sind 400, 401, 409, 413, 415, 429, 500 und 503. Wiederholen Sie 400, 401, 409, 413 und 415 nicht automatisch, ohne die Ursache zu beheben.