Integrate in minutesاربط متجرك بنا خلال دقائق

Connect your store to ours with a single API token. Browse products, place orders and track their status in real time.اربط متجرك بمتجرنا باستخدام توكن API واحد. تصفّح المنتجات، أنشئ الطلبات وتابع حالتها لحظة بلحظة.

Base URL:الرابط الأساسي (Base URL): https://api.nibras-store.com/
Authentication Requiredالمصادقة مطلوبة
Include the following header in all API requests:أضف الترويسة (Header) التالية في جميع طلبات API:
api-token: YOUR_API_TOKEN

Profileالملف الشخصي

GET
/client/api/profile

Retrieves the user's balance and profile information.يعرض رصيد المستخدم ومعلومات ملفه الشخصي.

Response Exampleمثال على الاستجابة

{
    "balance": "8788.683",
    "email": "user@example.com"
}

Productsالمنتجات

GET
/client/api/products

Retrieves all available products.يعرض جميع المنتجات المتاحة.

Response Exampleمثال على الاستجابة

[
    {
        "id": 365,
        "name": "UC 60",
        "price": 0.104,
        "params": ["ادخل الايدي الاعب"],
        "category_name": "UC 60",
        "available": true,
        "qty_values": {
            "min": 1,
            "max": "15000"
        },
        "product_type": "amount",
        "parent_id": 0,
        "base_price": 0.10,
        "category_img": ""
    },
    {
        "id": 18,
        "name": "UC 60",
        "price": 1.094,
        "params": ["ادخل الايدي الاعب"],
        "category_name": "PUBG Global ID UC",
        "available": true,
        "qty_values": null,
        "product_type": "package",
        "parent_id": 7,
        "base_price": 0.877,
        "category_img": "images/category/1710948113.webp"
    }
]

Filter Products by IDsتصفية المنتجات حسب المعرّفات (IDs)

GET
/client/api/products?products_id=id1,id2,id3

Retrieves specific products by their IDs.يعرض منتجات محددة عبر معرّفاتها.

Get Minimal Product Dataجلب بيانات مختصرة للمنتجات

GET
/client/api/products?base=1

Retrieves only product IDs and names.يعرض معرّف المنتج واسمه فقط.

Quantity Values Noteملاحظة حول قيم الكمية
  • qty_values: null - Quantity in order must be 1يجب أن تكون الكمية في الطلب 1
  • qty_values: ["110", "150", "210"] - Only these specific quantities are allowedيُسمح بهذه الكميات المحددة فقط
  • qty_values: {"min": "500", "max": "500000"} - Quantity must be within this rangeيجب أن تكون الكمية ضمن هذا المجال

Contentالمحتوى

GET
/client/api/content/0

Retrieves products and categories for the home page (parent ID = 0).يعرض المنتجات والأقسام للصفحة الرئيسية (معرّف القسم الأب = 0).

Get Content for Specific Categoryجلب محتوى قسم معيّن

GET
/client/api/content/[category.id]

Replace [category.id] with the desired category ID to retrieve its products and subcategories.استبدل [category.id] بمعرّف القسم المطلوب لعرض منتجاته وأقسامه الفرعية.

Orderالطلب

Important: Idempotent Requests with order_uuidمهم: طلبات غير مكرّرة (Idempotent) عبر order_uuid

The order_uuid parameter is required and serves as a unique identifier for each order request.

When you send a request with the same order_uuid more than once:

  • The system will not create a duplicate order
  • Instead, it will return the original order data
  • This prevents duplicate charges and ensures order idempotency

Always generate a new UUIDv4 for each unique order attempt.

المعامل order_uuid إلزامي ويعمل كمعرّف فريد لكل طلب.

عند إرسال طلب بنفس order_uuid أكثر من مرة:

  • لن ينشئ النظام طلباً مكرراً
  • بل سيُعيد بيانات الطلب الأصلي
  • وهذا يمنع الخصم المكرر ويضمن عدم تكرار الطلب

أنشئ UUIDv4 جديداً لكل محاولة طلب فريدة.

GET
/client/api/newOrder/364/params?qty=1&playerId=test&anyKey=anyVal&order_uuid=ecbdd545-e616-4aee-8770-7eefa977bcd

Creates a new order for a product. Must include a unique order_uuid to prevent duplicate orders.ينشئ طلباً جديداً لمنتج. يجب إرفاق order_uuid فريد لمنع تكرار الطلبات.

Parameterالمعامل Descriptionالوصف Requiredإلزامي
364 Product ID (replace with desired product ID from products.id)معرّف المنتج (استبدله بمعرّف المنتج المطلوب من products.id) Yesنعم
qty Quantity of productكمية المنتج Yesنعم
playerId Player identifier (can be any name)معرّف اللاعب (يمكن أن يكون أي اسم) Depends on productحسب المنتج
anyKey Any additional parameters can be included as key-value pairsيمكن إضافة أي معاملات إضافية على شكل أزواج مفتاح/قيمة Noلا
order_uuid Unique UUIDv4 identifier for the order (prevents duplicate orders when retried)معرّف UUIDv4 فريد للطلب (يمنع تكرار الطلب عند إعادة المحاولة) Yesنعم

Response Exampleمثال على الاستجابة

{
    "status": "OK",
    "data": {
        "order_id": "ID_9fffb0d849a45215",
        "status": "accept",
        "price": 1.26048,
        "data": {
            "playerId": "test"
        },
        "replay_api": [
            {
                "replay": ["erg3eg"]
            }
        ]
    }
}
Status Valuesقيم الحالة
accept reject wait
About replay_apiحول replay_api
The replay_api field may be null or contain an array of responses from the service provider.قد يكون الحقل replay_api بقيمة null أو يحتوي على مصفوفة من الردود الواردة من مزوّد الخدمة.

Check Ordersفحص الطلبات

GET
/client/api/check?orders=[ID_a37aaa06,ID2,ID3]

Checks the status of one or multiple orders.يفحص حالة طلب واحد أو عدة طلبات.

Check by Order UUIDالفحص عبر UUID الخاص بالطلب

GET
/client/api/check?orders=[yourOrderUUID]&uuid=1

Replace [ID_a37aaa06] with your order ID or UUID (when using uuid=1 parameter).استبدل [ID_a37aaa06] بمعرّف طلبك أو الـ UUID الخاص به (عند استخدام المعامل uuid=1).

Response Exampleمثال على الاستجابة

{
    "status": "OK",
    "data": [
        {
            "order_id": "ID_9fffb0d849a45215",
            "quantity": 1,
            "data": {
                "playerId": "test"
            },
            "created_at": "2025-04-10 13:55:48",
            "product_name": "A-60UC-stock",
            "price": "1.2604800000000000",
            "status": "accept",
            "replay_api": ["erg3eg"]
        }
    ]
}
Status Valuesقيم الحالة
accept reject wait

Auto Depositالإيداع التلقائي

Top up your balance programmatically with Syriatel Cash or Sham Cash. Payment methods: syriatel_cash and cham_cash.اشحن رصيدك برمجياً عبر سيريتل كاش أو شام كاش. طرق الدفع: syriatel_cash و cham_cash.

How it worksطريقة العمل

  1. Enable "Allow my account to deposit via API" in your API page (shown only if the admin allowed it for you).فعّل «السماح لحسابي بالإيداع عبر API» من صفحة API (يظهر فقط إذا سمح لك الأدمن).
  2. Call open-new-Trans to get the wallet and a Trans_id.استدعِ open-new-Trans لتحصل على المحفظة و Trans_id.
  3. Transfer the money to the wallet before expired_in minutes pass.حوّل المبلغ إلى المحفظة قبل مرور expired_in دقيقة.
  4. Wait 15 seconds (or until you get the deposit.detected webhook), then call Prove_Trans with the transfer operation number and your Trans_id.انتظر 15 ثانية (أو حتى يصلك Webhook deposit.detected) ثم استدعِ Prove_Trans برقم عملية التحويل و Trans_id.
Important rulesقواعد مهمة
  • One open transaction per payment method. A new one is refused (code 200) until the first is proved, cancelled or expired. This includes transactions opened from the website.عملية واحدة مفتوحة لكل طريقة دفع. تُرفض الجديدة (الكود 200) حتى تُثبَّت الأولى أو تُلغى أو تنتهي، ويشمل ذلك العمليات المفتوحة من الموقع.
  • Each transfer number can be used once only. Sending it again returns an error, even if the first request already succeeded.كل رقم عملية تحويل يُستخدم مرة واحدة فقط. إعادة إرساله ترجع خطأ حتى لو نجح الطلب الأول.
  • The transfer must be made after opening the transaction and before it expires. Times are in Syria time.يجب أن يتم التحويل بعد فتح العملية وقبل انتهاء وقتها. كل الأوقات بتوقيت سوريا.
  • Transfers below the payment method minimum are refused.الحوالات الأقل من الحد الأدنى لطريقة الدفع تُرفض.
  • The amount is taken from the real transfer (no amount is sent when opening). Fees/bonus of the payment method apply; final_amount is what was added to your balance.المبلغ يؤخذ من الحوالة الفعلية (لا يُرسل مبلغ عند الفتح). تُطبَّق عمولة/بونص طريقة الدفع، و final_amount هو ما أُضيف إلى رصيدك.

1) Open a transaction1) فتح عملية

GET
/client/api/open-new-Trans/{Payment_method}

Example: /client/api/open-new-Trans/syriatel_cashمثال: /client/api/open-new-Trans/syriatel_cash

Successنجاح

{
    "status": "OK",
    "data": {
        "bankname": "Syriatel Cash",
        "wallet": "0933xxxxxx",
        "expired_in": "10",
        "msg": "أكمل التحويل وتأكيد الدفع عبر /Prove_Trans خلال الوقت المحدد",
        "Trans_id": "ID_100"
    }
}

Failureفشل

{
    "status": "ERROR",
    "error_code": 200,
    "msg": "هناك عملية أخرى في الإنتظار"
}

Other failures: 201 unknown / unavailable payment method, 122 deposit is not enabled for your account.أخطاء أخرى: 201 طريقة دفع غير معروفة أو غير متاحة، 122 الإيداع غير مفعّل لحسابك.

2) Prove the transaction2) إثبات العملية

GET
/client/api/Prove_Trans/{id}/{Trans_id}

id = the transfer operation number you got from the payment app. Example: /client/api/Prove_Trans/123456789/ID_100. Wait 15 seconds after the transfer so it appears in the account log.id = رقم عملية التحويل الذي ظهر لك في تطبيق الدفع. مثال: /client/api/Prove_Trans/123456789/ID_100. انتظر 15 ثانية بعد التحويل ليظهر في سجل الحساب.

Successنجاح

{
    "status": "OK",
    "data": {
        "Trans_num": "123456789",
        "amount": 15000,
        "currency": "SYP",
        "final_amount": "100.00 Dollar",
        "Trans_id": "ID_100"
    }
}

Failure examplesأمثلة الفشل

{ "status": "ERROR", "error_code": 201, "msg": "لم يتم العثور عليها" }

{ "status": "ERROR", "error_code": 201, "msg": "تم استخدام هذه العملية مسبقاً (عبر الموقع أو عبر الـ API)." }

{ "status": "ERROR", "error_code": 201, "msg": "هذه الحوالة ليست ضمن وقت هذه العملية." }

{ "status": "ERROR", "error_code": 201, "msg": "المبلغ أقل من الحد الأدنى (70 SYP)." }

{ "status": "ERROR", "error_code": 111, "msg": "Try again after 1 minute" }

On a failure the transaction stays open, so you can retry before it expires (except when the transfer number was already used). Do not call faster than once every 5 seconds.عند الفشل تبقى العملية مفتوحة فيمكنك إعادة المحاولة قبل انتهاء وقتها (إلا إذا كان رقم التحويل مستخدماً مسبقاً). لا تستدعِ أسرع من مرة كل 5 ثوانٍ.

3) Cancel a transaction3) إلغاء عملية

GET
/client/api/cancel/Trans/{Payment_method}/{Trans_id}

Example: /client/api/cancel/Trans/syriatel_cash/ID_100مثال: /client/api/cancel/Trans/syriatel_cash/ID_100

Successنجاح

{
    "status": "OK",
    "data": { "Trans_id": "ID_100", "msg": "تم إلغاء العملية" }
}

Failureفشل

{
    "status": "ERROR",
    "error_code": 203,
    "msg": "تعذر إلغاء العملية"
}

It fails if the transaction does not exist, belongs to another payment method, or is no longer waiting (completed, expired or already cancelled).يفشل إذا لم توجد العملية، أو كانت لطريقة دفع أخرى، أو لم تعد بانتظار الدفع (مكتملة أو منتهية أو ملغاة سابقاً).

Webhook (Order Status Push)Webhook (إشعار حالة الطلب)

POST
Your webhook URLرابط الـ Webhook الخاص بك

Set a Webhook URL in your API page and we will POST the order result to it when an order becomes accept or reject. The body is the same JSON as the Check Orders response.ضع رابط Webhook في صفحة API، وسنرسل إليه نتيجة الطلب عندما يصبح accept أو reject. الجسم هو نفس JSON الخاص بفحص الطلبات.

Request bodyجسم الطلب (Request body)

{
    "status": "OK",
    "data": [
        {
            "order_id": "ID_9fffb0d849a45215",
            "quantity": 1,
            "data": { "playerId": "test" },
            "created_at": "2025-04-10 13:55:48",
            "product_name": "A-60UC-stock",
            "price": "1.2604800000000000",
            "status": "accept",
            "replay_api": ["erg3eg"]
        }
    ]
}

Headersالترويسات (Headers)

Content-Type: application/json
X-Webhook-Event: order.status
X-Order-Id: ID_9fffb0d849a45215
X-Webhook-Signature: sha256=<HMAC-SHA256(request body, your API token)>

Reply with any 2xx to confirm; otherwise we retry a few times. Signature check is optional: HMAC-SHA256 of the raw body using your API token.أرجع أي رد 2xx للتأكيد، وإلا سنعيد المحاولة عدة مرات. التحقق من التوقيع اختياري: HMAC-SHA256 للجسم باستخدام API token.

Price & availability events (optional)أحداث السعر والتوفر (اختياري)

Tick "also notify me when a product price or availability changes" in your API page and the same webhook URL will also receive the events below. Tell them apart with the X-Webhook-Event header or the event field. The product object is the same as in /client/api/products, and the price is your price.فعّل خيار «أرسل لي أيضاً عند تغيّر سعر منتج أو توفّره» في صفحة API، فيصل على نفس رابط الـ Webhook الأحداث التالية. ميّزها عبر الترويسة X-Webhook-Event أو الحقل event. كائن المنتج مطابق لما في /client/api/products، والسعر هو سعرك أنت.

product.price — price changedتغيّر السعر

{
    "event": "product.price",
    "time": "2025-04-10 14:02:11",
    "data": {
        "id": 365,
        "name": "UC 60",
        "price": 0.110,
        "old_price": 0.104,
        "available": true,
        "qty_values": { "min": 1, "max": "15000" },
        "product_type": "amount",
        "category_name": "UC 60"
    }
}

product.availability — availability changedتغيّر التوفر

{
    "event": "product.availability",
    "time": "2025-04-10 14:05:42",
    "data": {
        "id": 365,
        "name": "UC 60",
        "price": 0.110,
        "available": false,
        "qty_values": { "min": 1, "max": "15000" },
        "product_type": "amount",
        "category_name": "UC 60"
    }
}

available: false = out of stock, true = back in stock. Same reply rule: answer 2xx.available: false = غير متوفر، وtrue = عاد متوفراً. نفس قاعدة الرد: أرجع 2xx.

deposit.detected — transfer arrived (deposit not done yet)وصلت حوالة (الإيداع لم يتم بعد)

{
    "event": "deposit.detected",
    "time": "2025-04-10 14:20:05",
    "data": {
        "Trans_id": "ID_100",
        "status": "awaiting_prove",
        "amount": 25000,
        "currency": "SYP",
        "final_amount": "166.67 Dollar",
        "msg": "وصلت حوالة إلى المحفظة. أرسل طلب Prove_Trans برقم عملية التحويل لإتمام الإيداع"
    }
}

If you have a webhook URL and deposit via API is enabled, we send this when a transfer reaches our wallet inside the time of your open transaction. The deposit is NOT done yet and nothing was added to your balance: it is only a signal telling you to send the Prove_Trans request now. final_amount is what will be added (after fees/bonus). For security the transfer number is not included: you already have it from the payment app. The notice is sent once per transfer; times are in Syria time.إذا كان لديك رابط Webhook والإيداع عبر API مفعّل، نرسل هذا الإشعار عندما تصل حوالة إلى محفظتنا ضمن وقت عمليتك المفتوحة. الإيداع لم يتم بعد ولم يُضَف أي رصيد: هو مجرد إشارة لتعرف أنه حان وقت إرسال طلب Prove_Trans. final_amount هو ما سيُضاف (بعد العمولة/البونص). لأسباب أمنية لا نرسل رقم الحوالة: هو عندك أصلاً من تطبيق الدفع. يُرسل الإشعار مرة واحدة لكل حوالة، والأوقات بتوقيت سوريا.

Error Codesرموز الأخطاء

Error Response Formatصيغة استجابة الخطأ

When a request fails, status is ERROR, followed by error_code and msg:عند فشل الطلب تكون قيمة status هي ERROR، متبوعة بـ error_code و msg:

{
    "status": "ERROR",
    "error_code": 110,
    "msg": "Product not available now"
}

Public Error Codesرموز الأخطاء العامة

120
Api Token is required!توكن API مطلوب!Api Token is required!
121
Token errorخطأ في التوكنToken error
122
Not allowed to use APIغير مسموح باستخدام APINot allowed to use API
123
IP not allowedعنوان IP غير مسموحIP not allowed
130
The site is under maintenanceالموقع قيد الصيانةThe site is under maintenance

Order Error Codesرموز أخطاء الطلب

100
Insufficient balanceالرصيد غير كافٍInsufficient balance
105
Quantity not availableالكمية غير متوفرةQuantity not available
106
Quantity not allowedالكمية غير مسموحةQuantity not allowed
107
Player ID blockedمعرّف اللاعب محظورPlayer ID blocked
108
2FA requiredالتحقق بخطوتين (2FA) مطلوب2FA required
109
Product deleted or not foundالمنتج محذوف أو غير موجودProduct deleted or not found
110
Product not available nowالمنتج غير متاح حالياًProduct not available now
111
Try again after 1 minuteأعد المحاولة بعد دقيقةTry again after 1 minute
112
Quantity is too smallالكمية صغيرة جداًQuantity is too small
113
Quantity is too largeالكمية كبيرة جداًQuantity is too large
114
Unknown errorخطأ غير معروفUnknown error
500
Unknown errorخطأ غير معروفUnknown error

Deposit Error Codesرموز أخطاء الإيداع

200
Another transaction is pendingهناك عملية أخرى في الإنتظارAnother transaction is pending
201
Not found / refused (see msg)لم يتم العثور عليها أو مرفوضة (انظر msg)Not found
203
Cannot cancelتعذر الإلغاءCannot cancel
122
Deposit via API is not enabled for your accountالإيداع عبر API غير مفعّل لحسابكNot allowed to use API