الرصيد
اقرأ رصيدك المتاح والقابل للسحب.
رصيد sandbox افتراضي. تنتقل مدفوعات sandbox فورًا إلى available_amount دون انتظار تاريخ القيمة، فيمكنك اختبار السحوبات مباشرة.
يتكوّن رصيد الإنتاج من مبالغ محصّلة فعلًا. تنتظر الدفعة في pending_settlement_amount حتى تاريخ القيمة ثم تنتقل إلى available_amount.
جلب الرصيد
الاستجابة · 200
ملخص الرصيد.
Balance
الاستجابة · مثال
{
"currency_code": "USD",
"available_amount": "48200.00",
"pending_settlement_amount": "250.00",
"environment": "live"
}
الأخطاء المحتملة
GET/api/v3/balance/withdrawableجلب الرصيد القابل للسحب
الاستجابة · 200
ملخص الرصيد القابل للسحب.
WithdrawableBalance
الاستجابة · مثال
{
"currency_code": "USD",
"withdrawable_amount": "48200.00",
"can_withdraw": true,
"environment": "live"
}
الأخطاء المحتملة
المبالغ المستردة
اطلب استردادًا أو إلغاءً وتابعه.
في الإنتاج، يعني HTTP 202 أن الطلب استُلم، وليس أن الاسترداد اكتمل. تابع النتيجة عبر نقاط نهاية الحالة: requested ثم awaiting_provider_manual ثم completed؛ أو rejected / cancelled.
في sandbox يُحسم الطلب فورًا (completed افتراضيًا). أرسل X-CAV-Sandbox-Scenario: rejected لاختبار استرداد مرفوض.
تُراجع الطلبات في الإنتاج. تابع عملية العكس حتى completed أو rejected أو cancelled. يرسل refund المكتمل فقط payment.refunded؛ تابع void عبر GET.
POST/api/v3/refundsيتطلب Idempotency-Keyطلب استرداد أو إلغاء
المعاملات
جسم الطلب
جسم الطلب · مثال
{
"payment_code": "ab34cdef",
"operation_type": "refund",
"reason": "Customer cancelled the order."
}
الاستجابة · 202
تم طلب الاسترداد أو الإلغاء. تتم مراجعته وإرساله إلى مزوّد الدفع يدويًا. ومع مفتاح sandbox تُعاد النتيجة المحاكاة (environment بالقيمة sandbox)؛ وتُرجع إعادة الطلب بالمفتاح نفسه أيضًا 202.
Reversal
الاستجابة · مثال
{
"id": "9B2E6F3A-0C1D-4E5F-8A7B-000000000001",
"operation": "refund",
"status": "requested",
"amount": "250.00",
"currency": "USD",
"reason": "Customer cancelled the order.",
"provider_reference": "string",
"provider_refunded_at": "2026-09-26T09:00:00.000Z",
"created_at": "2026-09-26T09:00:00.000Z",
"updated_at": "2026-09-26T09:00:00.000Z",
"payment_code": "ab34cdef",
"environment": "live"
}
الأخطاء المحتملة
عرض قائمة الاستردادات
المعاملات
الاستجابة · 200
الاستردادات مقسّمة إلى صفحات.
الاستجابة · مثال
{
"data": [
{
"id": "9B2E6F3A-0C1D-4E5F-8A7B-000000000001",
"operation": "refund",
"status": "requested",
"amount": "250.00",
"currency": "USD",
"reason": "Customer cancelled the order.",
"provider_reference": "string",
"provider_refunded_at": "2026-09-26T09:00:00.000Z",
"created_at": "2026-09-26T09:00:00.000Z",
"updated_at": "2026-09-26T09:00:00.000Z",
"payment_code": "ab34cdef",
"environment": "live"
}
],
"meta": {
"page": 1,
"per_page": 20,
"total": 1,
"total_pages": 1
}
}
الأخطاء المحتملة
جلب حالة الاسترداد
المعاملات
الاستجابة · 200
طلب الاسترداد أو الإلغاء.
الكائن: Reversal (الحقول مدرجة في طلب استرداد أو إلغاء).
الاستجابة · مثال
{
"id": "9B2E6F3A-0C1D-4E5F-8A7B-000000000001",
"operation": "refund",
"status": "requested",
"amount": "250.00",
"currency": "USD",
"reason": "Customer cancelled the order.",
"provider_reference": "string",
"provider_refunded_at": "2026-09-26T09:00:00.000Z",
"created_at": "2026-09-26T09:00:00.000Z",
"updated_at": "2026-09-26T09:00:00.000Z",
"payment_code": "ab34cdef",
"environment": "live"
}
الأخطاء المحتملة
الإشعار
عند اكتمال استرداد يُرسل إشعار payment.refunded موقّع إلى عنوان webhook الخاص بالدفعة. الترويسات والتوقيع وإعادة المحاولات هي نفسها في Webhooks. ولا يُرسل void أي إشعار.
إشعار payment.refunded موقّع إلى عنوان التاجر
جسم الطلب
جسم الطلب · مثال
{
"event_id": "B5D4E456-EFC1-4EC2-A613-D64A16E45BD5",
"event_type": "payment.refunded",
"environment": "sandbox",
"occurred_at": "2026-09-28T12:00:00.000Z",
"refund": {
"public_id": "A1B2C3D4-E5F6-4789-8ABC-DEF012345678",
"status": "completed",
"amount": "100.00",
"currency_code": "USD",
"completed_at": "2026-09-28T12:00:00.000Z"
},
"payment": {
"public_id": "11111111-2222-4333-8444-555555555555",
"code": "ab34cdef",
"merchant_reference": "SIP-2026-0001"
},
"order": {
"public_id": "66666666-7777-4888-8999-AAAAAAAAAAAA"
}
}
السحوبات
اطلب سحب USDT (TRC20) وتابعه.
في الإنتاج، يعني HTTP 201 أن الطلب قُبل وأن المبلغ محجوز، وليس أن USDT قد أُرسلت. تحقق من status وtx_hash وراجع العنوان مرتين: فالتحويل على السلسلة لا يمكن التراجع عنه.
يخصم سحب sandbox من الرصيد الافتراضي ولا يرسل أي شيء على السلسلة إطلاقًا. ويخضع للقواعد نفسها المطبّقة في الإنتاج، بما فيها الحد الأدنى والحد اليومي وسعر التحويل. أرسل X-CAV-Sandbox-Scenario: rejected لاختبار الرفض. تقبل بيئة sandbox عنوان TRON الصفري وجهةً؛ أما الإنتاج فيرفض عناوين الحرق بالرمز 1000030.
يُحدَّد الحد الأدنى والحد اليومي لكل حساب من جهة Manuell؛ وأقل من الحد الأدنى تُرجع الواجهة 9000019، وأكثر من الحد اليومي 9000021. في الإنتاج يرسل أحد مشغّلي Manuell مبلغ USDT ويسجّل tx_hash (sent)، أو يرفض الطلب مع ذكر السبب (rejected) فيعود المبلغ إلى رصيدك.
POST/api/v3/withdrawalsيتطلب Idempotency-Keyطلب سحب USDT
المعاملات
جسم الطلب
جسم الطلب · مثال
{
"amount": "250.00",
"address": "REPLACE_WITH_YOUR_TRON_ADDRESS",
"address_acknowledged": true
}
الاستجابة · 201
تم طلب السحب. يُحجز الرصيد، ويُنفَّذ الإرسال على السلسلة يدويًا. ومع مفتاح sandbox تُعاد النتيجة المحاكاة (environment بالقيمة sandbox)؛ وتُرجع إعادة الطلب بالمفتاح نفسه أيضًا 201.
Withdrawal
الاستجابة · مثال
{
"id": "7F0C2A94-3B1E-4D58-9A6F-1C2D3E4F5A6B",
"status": "requested",
"amount": "250.00",
"currency": "USD",
"asset": "USDT",
"network": "TRC20",
"address": "REPLACE_WITH_YOUR_TRON_ADDRESS",
"usdt_amount": "249.000000",
"tx_hash": null,
"rejection_reason": null,
"requested_at": "2026-09-26T09:30:00.000Z",
"processed_at": null,
"created_at": "2026-09-26T09:30:00.000Z",
"environment": "live"
}
الأخطاء المحتملة
عرض قائمة السحوبات
المعاملات
الاستجابة · 200
السحوبات مقسّمة إلى صفحات.
الاستجابة · مثال
{
"data": [
{
"id": "7F0C2A94-3B1E-4D58-9A6F-1C2D3E4F5A6B",
"status": "requested",
"amount": "250.00",
"currency": "USD",
"asset": "USDT",
"network": "TRC20",
"address": "REPLACE_WITH_YOUR_TRON_ADDRESS",
"usdt_amount": "249.000000",
"tx_hash": null,
"rejection_reason": null,
"requested_at": "2026-09-26T09:30:00.000Z",
"processed_at": null,
"created_at": "2026-09-26T09:30:00.000Z",
"environment": "live"
}
],
"meta": {
"page": 1,
"per_page": 20,
"total": 1,
"total_pages": 1
}
}
الأخطاء المحتملة
GET/api/v3/withdrawals/{id}جلب حالة السحب
المعاملات
الاستجابة · 200
السحب.
الكائن: Withdrawal (الحقول مدرجة في طلب سحب USDT).
الاستجابة · مثال
{
"id": "7F0C2A94-3B1E-4D58-9A6F-1C2D3E4F5A6B",
"status": "requested",
"amount": "250.00",
"currency": "USD",
"asset": "USDT",
"network": "TRC20",
"address": "REPLACE_WITH_YOUR_TRON_ADDRESS",
"usdt_amount": "249.000000",
"tx_hash": null,
"rejection_reason": null,
"requested_at": "2026-09-26T09:30:00.000Z",
"processed_at": null,
"created_at": "2026-09-26T09:30:00.000Z",
"environment": "live"
}
الأخطاء المحتملة
النزاعات
اعرض النزاعات وقدّم أدلتك.
تأتي النزاعات من شبكات البطاقات، لذلك تُنشئ نزاعًا تجريبيًا بنفسك في sandbox عبر POST /api/v3/sandbox/disputes. انظر اختبار عمليات الحساب.
يُسجَّل النزاع في Manuell عندما يبلّغ به البنك. يُخصم المبلغ المتنازع عليه من رصيدك (قد يصبح الرصيد سالبًا وتصبح قيمة can_withdraw false) ويُعاد إليك إذا ربحت النزاع. أرسل أدلتك قبل evidence_due_at؛ ويستبدل Idempotency-Key جديد ملاحظتك السابقة ما دام النزاع مفتوحًا.
عرض قائمة النزاعات
المعاملات
الاستجابة · 200
النزاعات مقسّمة إلى صفحات.
Dispute
الاستجابة · مثال
{
"data": [
{
"id": "9B2E6F3A-0C1D-4E5F-8A7B-000000000001",
"service": "api",
"amount": "250.00",
"currency": "USD",
"status": "open",
"reason": "fraud",
"reason_note": "string",
"occurred_on": "2026-09-26",
"evidence_due_at": "2026-09-26T09:00:00.000Z",
"evidence_submitted_at": "2026-09-26T09:00:00.000Z",
"merchant_evidence_note": "string",
"merchant_evidence_submitted_at": "2026-09-26T09:00:00.000Z",
"resolved_at": "2026-09-26T09:00:00.000Z",
"created_at": "2026-09-26T09:00:00.000Z",
"payment_code": "ab34cdef",
"environment": "live"
}
],
"meta": {
"page": 1,
"per_page": 20,
"total": 1,
"total_pages": 1
}
}
الأخطاء المحتملة
جلب نزاع
المعاملات
الاستجابة · 200
النزاع.
الكائن: Dispute (الحقول مدرجة في عرض قائمة النزاعات).
الاستجابة · مثال
{
"id": "9B2E6F3A-0C1D-4E5F-8A7B-000000000001",
"service": "api",
"amount": "250.00",
"currency": "USD",
"status": "open",
"reason": "fraud",
"reason_note": "string",
"occurred_on": "2026-09-26",
"evidence_due_at": "2026-09-26T09:00:00.000Z",
"evidence_submitted_at": "2026-09-26T09:00:00.000Z",
"merchant_evidence_note": "string",
"merchant_evidence_submitted_at": "2026-09-26T09:00:00.000Z",
"resolved_at": "2026-09-26T09:00:00.000Z",
"created_at": "2026-09-26T09:00:00.000Z",
"payment_code": "ab34cdef",
"environment": "live"
}
الأخطاء المحتملة
POST/api/v3/disputes/{id}/evidenceيتطلب Idempotency-Keyإرسال دليل النزاع
المعاملات
جسم الطلب
جسم الطلب · مثال
{
"note": "Order 4821 was delivered on 2026-09-25. Carrier reference ABC123."
}
الاستجابة · 200
سُجّل الدليل؛ ولا تتغير حالة النزاع. وتُرجع إعادة الطلب المتطابقة بالمفتاح نفسه جسم الاستجابة الأصلي.
الكائن: Dispute (الحقول مدرجة في عرض قائمة النزاعات).
الاستجابة · مثال
{
"id": "9B2E6F3A-0C1D-4E5F-8A7B-000000000001",
"service": "api",
"amount": "250.00",
"currency": "USD",
"status": "open",
"reason": "fraud",
"reason_note": "string",
"occurred_on": "2026-09-26",
"evidence_due_at": "2026-09-26T09:00:00.000Z",
"evidence_submitted_at": "2026-09-26T09:00:00.000Z",
"merchant_evidence_note": "string",
"merchant_evidence_submitted_at": "2026-09-26T09:00:00.000Z",
"resolved_at": "2026-09-26T09:00:00.000Z",
"created_at": "2026-09-26T09:00:00.000Z",
"payment_code": "ab34cdef",
"environment": "live"
}
الأخطاء المحتملة
إدارة عمليات التسليم
افحص تسليمات الـ webhook وأعد إرسال الفاشلة.
يُحدَّد عنوان استقبال الإشعارات لكل بيئة في “API Key والتكامل”. تسرد نقاط النهاية أدناه عمليات التسليم وتعيد جدولة الفاشلة منها.
GET/api/v3/webhooks/deliveriesعرض قائمة عمليات تسليم webhook
المعاملات
الاستجابة · 200
عمليات التسليم مقسّمة إلى صفحات.
WebhookDelivery
الاستجابة · مثال
{
"data": [
{
"id": "9B2E6F3A-0C1D-4E5F-8A7B-000000000001",
"event": "payment.paid",
"status": "pending",
"payment_code": null,
"attempt_count": 1,
"last_status_code": null,
"last_error": null,
"last_error_code": null,
"last_error_message": null,
"next_attempt_at": null,
"delivered_at": null,
"created_at": "2026-09-26T09:00:00.000Z"
}
],
"meta": {
"page": 1,
"per_page": 20,
"total": 1,
"total_pages": 1
}
}
الأخطاء المحتملة
GET/api/v3/webhooks/deliveries/{id}جلب تسليم webhook
المعاملات
الاستجابة · 200
التسليم، بما في ذلك url والحمولة (payload).
WebhookDeliveryDetail
الاستجابة · مثال
{
"id": "9B2E6F3A-0C1D-4E5F-8A7B-000000000001",
"event": "payment.paid",
"status": "pending",
"payment_code": null,
"attempt_count": 1,
"last_status_code": null,
"last_error": null,
"last_error_code": null,
"last_error_message": null,
"next_attempt_at": null,
"delivered_at": null,
"created_at": "2026-09-26T09:00:00.000Z",
"url": "string",
"payload": null
}
الأخطاء المحتملة
POST/api/v3/webhooks/deliveries/{id}/retryيتطلب Idempotency-Keyإعادة محاولة تسليم فاشل
المعاملات
الاستجابة · 200
أُعيد وضع التسليم الفاشل في قائمة الانتظار. وتُرجع إعادة الطلب المتطابقة بالمفتاح نفسه استجابة وضعه الأصلية في قائمة الانتظار دون محاولة أخرى.
الكائن: WebhookDeliveryDetail (الحقول مدرجة في جلب تسليم webhook).
الاستجابة · مثال
{
"id": "9B2E6F3A-0C1D-4E5F-8A7B-000000000001",
"event": "payment.paid",
"status": "pending",
"payment_code": null,
"attempt_count": 1,
"last_status_code": null,
"last_error": null,
"last_error_code": null,
"last_error_message": null,
"next_attempt_at": null,
"delivered_at": null,
"created_at": "2026-09-26T09:00:00.000Z",
"url": "string",
"payload": null
}
الأخطاء المحتملة
أخطاء التسليم
last_error حقل قديم؛ استخدم last_error_code في عمليات التكامل الجديدة.
حالة الخدمة والصيانة
يمكن وضع بعض الخدمات قيد الصيانة مؤقتًا. ويقتصر التأثير على العمليات الجديدة فقط؛ ويوضح هذا القسم ما يتوقف وما يستمر في العمل وكيفية الاستعلام عن الحالة.
GET/api/v3/service-statusعامجلب حالة الخدمة
الاستجابة · 200
الخدمات قيد الصيانة (قد تكون القائمة فارغة).
ServiceStatusItem
الاستجابة · مثال
{
"data": [
{
"service": "api_collection",
"until": "2026-10-01T12:00:00Z",
"note": "Planned maintenance."
}
]
}
استجابات أخرى
الأخطاء المحتملة
اختبار عمليات الحساب
يعمل الرصيد والاستردادات والسحوبات والنزاعات في sandbox بنقاط النهاية وأجسام الطلب ورموز الأخطاء نفسها كما في الإنتاج.
- تنتقل مدفوعات sandbox فورًا إلى
available_amount دون انتظار تاريخ القيمة. - تُحسم طلبات الاسترداد والسحب فورًا. وتحدّد ترويسة
X-CAV-Sandbox-Scenario النتيجة. - تأتي النزاعات من البنك، لذلك تُنشئ نزاعًا في sandbox عبر
POST /api/v3/sandbox/disputes.
راجع اختبارات الاستردادات والسحوبات والنزاعات في “عمليات البيئة التجريبية”.
اختيار النتيجة
تستخدم طلبات الاسترداد والسحب نقاط النهاية والأجسام نفسها المستخدمة في الإنتاج. لاختيار النتيجة أضف الترويسة الاختيارية X-CAV-Sandbox-Scenario. وهي ليست جزءًا من التوقيع. وعند استخدام مفتاح إنتاج تُرفض الترويسة بالرمز 422 (1000001) حتى لا يتحول اختبار إلى طلب حقيقي أبدًا.
X-CAV-Sandbox-Scenario
X-CAV-Sandbox-Scenario: rejected
نزاع تجريبي
تأتي النزاعات من شبكات البطاقات ولا يمكن بدؤها من جانبك في الإنتاج. هذه هي نقطة النهاية الوحيدة الخاصة بـ sandbox: تنشئ نزاعًا تجريبيًا لدفعة مدفوعة في sandbox وتُرجع كائن Dispute نفسه المستخدم في الإنتاج.
POST/api/v3/sandbox/disputesيتطلب Idempotency-Keyإنشاء نزاع في sandbox لدفعة sandbox مدفوعة
جسم الطلب
جسم الطلب · مثال
{
"payment_code": "ab34cdef",
"scenario": "open",
"reason": "fraud"
}
الاستجابة · 201
سُجّل النزاع؛ وتُرجع إعادة الطلب بالمفتاح نفسه النزاع ذاته.
الكائن: Dispute (الحقول مدرجة في عرض قائمة النزاعات).
الاستجابة · مثال
{
"id": "B5D4E456-EFC1-4EC2-A613-D64A16E45BD5",
"service": "api",
"amount": "250.00",
"currency": "USD",
"status": "open",
"reason": "fraud",
"reason_note": null,
"occurred_on": "2026-09-30",
"evidence_due_at": "2026-10-07T09:00:00.000Z",
"evidence_submitted_at": null,
"merchant_evidence_note": null,
"merchant_evidence_submitted_at": null,
"resolved_at": null,
"created_at": "2026-09-30T09:00:00.000Z",
"payment_code": "ab34cdef",
"environment": "sandbox"
}
الأخطاء المحتملة