TheOpenMoney
The Open Money
For developers

API للشركاء.

REST API for partners. Single Bearer key, idempotent requests, JSON in/out — zero ceremony.

BASE URL
https://api.theopenmoney.info/api/v1
Auth
Authorization: Bearer
Format
REST · JSON

Quickstart

ثلاث خطوات لأول طلب.

Step 01

احصل على المفتاح

اكتب للبوت /api — يعطيك مفتاح osk_… احتفظ به سراً.

Step 02

أرسل طلباً

POST /orders/stars مع المستلم والكمية.

Step 03

خذ النتيجة

في الرد order_id وعنوان الدفع وmemo والصلاحية.

POST /orders/stars
curl -X POST https://api.theopenmoney.info/api/v1/orders/stars \
-H "Authorization: Bearer $KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"recipient_username": "pandus",
"quantity": 100,
"payment_method": "ton_memo",
"payment_currency": "TON",
"client_reference": "invoice-42"
}'
200 OK · JSON response
{
"ok": true,
"data": {
"id": 10421,
"status": "pending_payment",
"order_type": "stars",
"stars_amount": 100,
"recipient_username": "pandus",
"price_ton": 0.418,
"payment_address": "UQBFJTkJ5hZdH7i6rWQTnm43zn6h2dPBV9lFZ2e98WvWABy_",
"payment_memo": "STARS-a1b2c3",
"expires_at": "2026-04-16T12:15:00Z",
"created_at": "2026-04-16T12:00:00Z"
}
}

Auth

ترويسة واحدة.

كل طلب يصادَق عبر ترويسة Authorization: Bearer osk_… مفتاح واحد = شريك واحد وعنوان TON واحد للإيداع.

  • لا تضع المفتاح في كود العميل أو الـ URL.
  • Rate limit يعمل على مستوى المفتاح.
  • تسرّب؟ ألغِه واطلب جديداً من البوت.
HTTP request
GET /api/v1/balance HTTP/1.1
Host: api.theopenmoney.info
Authorization: Bearer osk_
Accept: application/json

Endpoints

كل النقاط.

في Swagger
Orders
  • POST/orders/starsCreate a Stars order
  • POST/orders/premiumCreate a Premium order (3 / 6 / 12 months)
  • GET/orders/{id}Get order by ID
  • GET/ordersList orders
  • GET/orders/by-memo/{memo}Find order by payment_memo
  • GET/orders/by-reference/{ref}Find orders by your client_reference
  • GET/orders/stats/summaryAggregate stats
  • POST/orders/{id}/cancelCancel a pending_payment order
Pricing
  • GET/pricing/ton-rateCurrent TON/USD rate
  • GET/pricing/feeService fees and min/max limits
  • GET/pricing/estimate/starsEstimate Stars price in TON
  • GET/pricing/estimate/premiumEstimate Premium price in TON
Recipients
  • GET/recipients/starsCheck if a username can receive Stars
  • GET/recipients/premiumCheck if a username can receive Premium
Balance
  • GET/balancePartner balance and top-up address
  • GET/balance/transactionsBalance transactions history
Health
  • GET/healthService health probe

Examples

وصفات curl.

أنشئ طلب Stars
POST /orders/stars
curl -X POST https://api.theopenmoney.info/api/v1/orders/stars \
-H "Authorization: Bearer $KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"recipient_username": "pandus",
"quantity": 100,
"payment_method": "ton_memo",
"payment_currency": "TON",
"client_reference": "invoice-42"
}'
تحقق من حالة الطلب
GET /orders/{id}
curl https://api.theopenmoney.info/api/v1/orders/10421 \
-H "Authorization: Bearer $KEY"
تحقق من المستلم
GET /recipients/stars
curl "https://api.theopenmoney.info/api/v1/recipients/stars?username=pandus" \
-H "Authorization: Bearer $KEY"
احسب السعر
GET /pricing/estimate/stars
curl "https://api.theopenmoney.info/api/v1/pricing/estimate/stars?quantity=100" \
-H "Authorization: Bearer $KEY"

Reliability

Retry-safe by design.

Idempotency-Key

أرسل أي UUID في ترويسة Idempotency-Key — إعادة المحاولة بنفس المفتاح تعيد نفس الطلب بدلاً من إنشاء جديد. ضروري للـ timeout والـ retry.

Header
Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000

client_reference

أرفق اختيارياً معرّفك (رقم فاتورة، payment_id) عند إنشاء الطلب. ثم: GET /orders/by-reference/{ref} يعيد كل الطلبات المرتبطة.

Body field
{
"client_reference": "invoice-42"
}

تنسيق موحّد.

كل الأخطاء بنفس JSON: ok=false، وerror_code وerror_message قابلان للقراءة.

الأكواد الشائعة
401
Bearer token مفقود أو غير صالح
404
المورد غير موجود (أو لا يخصّ مفتاحك)
409
تعارض الحالة — مثلاً لا يمكن إلغاء طلب مدفوع
422
بارامترات الطلب غير صالحة
429
تم تجاوز الـ rate limit
Error response
{
"ok": false,
"error_code": "VALIDATION_ERROR",
"error_message": "quantity must be between 50 and 10000",
"data": null
}

جاهزللبدء؟

المخطط التفاعلي الكامل في Swagger. المفتاح — أمر واحد في البوت.