Skip to main content

Create Order API

Endpoint ini digunakan untuk membuat order baru milik akun pemilik User API Token.
Gunakan endpoint ini dengan hati-hati. Order yang valid akan membuat invoice/order baru di LeuwongRR. Untuk testing aman, gunakan Sandbox API Key dan payment_method: invoice.

Endpoint

POST /api/v1/me/orders

Headers

Authorization: Bearer USER_API_TOKEN
Accept: application/json
Content-Type: application/json
Idempotency-Key: order-unique-001
X-Discord-User-ID: DISCORD_USER_ID_TERLINK

Request Body

{
  "order_type": "gamepass",
  "roblox_username": "LeuwongUser",
  "place_id": 123456789,
  "roblox_pass_id": 987654321,
  "payment_method": "invoice",
  "client_reference": "bot-order-001"
}

Field yang diterima

FieldTipeWajibKeterangan
order_typestringOpsionalgamepass atau vip_server. Default: gamepass.
roblox_usernamestringYaUsername Roblox tujuan.
place_idintegerYaPlace ID Roblox.
roblox_pass_idintegerYaGamepass ID. Alias gamepass_id juga didukung.
payment_methodstringOpsionalDefault invoice. Gunakan balance hanya untuk Discord bot yang akun Discord-nya sudah link ke akun web. Sandbox hanya boleh invoice.
client_referencestringOpsionalReferensi dari bot/website kamu.

Contoh Request

curl -X POST "https://leuwongrr.online/api/v1/me/orders" \
  -H "Authorization: Bearer USER_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-test-001" \
  -H "X-Discord-User-ID: DISCORD_USER_ID_TERLINK" \
  --data '{
    "order_type": "gamepass",
    "roblox_username": "LeuwongUser",
    "place_id": 123456789,
    "roblox_pass_id": 987654321,
    "payment_method": "invoice",
    "client_reference": "bot-order-001"
  }'

Contoh Response

{
  "success": true,
  "message": "Order berhasil dibuat.",
  "data": {
    "invoice": {
      "invoice_code": "INV202605010001",
      "type": "order",
      "payment_status": "pending",
      "amount": 348,
      "formatted_amount": "Rp348",
      "currency": "IDR",
      "payment_method": "invoice",
      "invoice_url": "https://leuwongrr.online/user/invoice/INV202605010001"
    },
    "environment": "sandbox",
    "idempotent": false
  }
}

Keamanan

User API tidak menerima field sensitif seperti user_id, email, price, amount, total_amount, status, payment_status, paid_at, role, balance, order_id, invoice_id, atau payload provider. Semua data penting dihitung oleh server LeuwongRR.

Validasi

Order tetap melewati validasi server LeuwongRR, termasuk validasi Roblox, gamepass/place, harga, diskon, payment method, invoice, dan ownership token user.

Idempotency-Key

Gunakan header Idempotency-Key untuk mengurangi risiko double order saat bot melakukan retry.
Idempotency-Key: user-bot-order-20260501-001
Jika key yang sama sudah pernah dipakai oleh akun yang sama, API dapat mengembalikan invoice lama dengan idempotent: true.

Testing dari Bot

Bot cukup mengirim input user ke endpoint ini. Bot tidak perlu menghitung harga dan tidak boleh menentukan status order.

Pembayaran Saldo via Discord

Untuk memakai saldo dari Discord bot, request harus memakai token API member dan Discord ID yang sudah terhubung ke akun web yang sama.
Authorization: Bearer USER_API_TOKEN
X-Discord-User-ID: DISCORD_USER_ID_TERLINK
Idempotency-Key: discord-balance-order-001
Content-Type: application/json
Accept: application/json
Body wajib mengirim:
{
  "payment_method": "balance"
}
Jika Discord belum terhubung ke akun web, API akan menolak dengan kode DISCORD_LINK_REQUIRED. Jika saldo tidak cukup, API akan menolak dengan kode INSUFFICIENT_BALANCE.