> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wave.sa/llms.txt
> Use this file to discover all available pages before exploring further.

# وضع الـ Sandbox

> ما الذي تستطيع الـ sandbox keys فعله: نافذة التجربة، وقفل الوجهة، وأرقام الاختبار، و header المحاكاة.

تُجري الـ sandbox keys (`sk_sandbox_`) مكالمات حقيقيّة، لكن ضمن ضوابط مُصمَّمة للاختبار الآمن.

## نافذة التجربة

يبدأ مؤقّت تجربة الـ sandbox عند أوّل API call لك ويستمرّ 30 دقيقة. بعد انتهائه، تُعيد طلبات الـ callback ‏`403` مع `error_code: SANDBOX_EXPIRED`. وتعرض لوحة التحكّم عدًّا تنازليًّا مباشرًا.

## قفل الوجهة

منعًا لإساءة الاستخدام، لا يمكن لمكالمات الـ sandbox أن ترِنّ إلّا على رقم هاتف التسجيل الخاصّ بمالك المؤسّسة — وهو الرقم الذي جرى التحقّق منه عند التسجيل. أمّا الـ callback إلى أيّ `to` آخر فيُعيد `403` مع `error_code: SANDBOX_DESTINATION_NOT_ALLOWED`. ويتطلّب الاتصال بوجهات اعتباطيّة الترقية إلى الإنتاج (قريبًا).

## أرقام الاختبار والأخطاء المحاكاة

افرض نتائج محدّدة دون الاعتماد على مكالمة حيّة، بطريقتين. ويغلب الـ header إن انطبق الاثنان معًا.

**رقم اختبار محجوز**

| الرقم           | النتيجة               |
| --------------- | --------------------- |
| `+966500000017` | محاكاة `server_error` |

**الـ `x-wave-simulate` header**

اضبط `x-wave-simulate` على `POST /v1/callback` لفرض متغيّر خطأ (الـ sandbox keys فقط — يتجاهله الإنتاج):

| القيمة              | المُحاكاة                            |
| ------------------- | ------------------------------------ |
| `rate_limit`        | رفض بسبب تجاوز حدّ المعدّل           |
| `invalid_queue`     | طابور غير معروف                      |
| `queue_unavailable` | الطابور غير متاح مؤقّتًا             |
| `server_error`      | عطل في الـ upstream/الشبكة الهاتفيّة |
| `invalid_number`    | وجهة غير صالحة                       |

```bash theme={null}
curl -X POST https://api.wave.sa/v1/callback \
  -H "Authorization: Bearer sk_sandbox_xxxxxxxxxxxx" \
  -H "X-Wave-Simulate: server_error" \
  -H "Content-Type: application/json" \
  -d '{ "to": "+966500000000" }'
```

## الحدود

تخضع الـ sandbox keys لحدود المعدّل — راجع حدود المعدّل.
