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

# رفضات 10DLC وإعادة التحقق ودورة ما بعد الموافقة

> حوّل رمز الرفض الخام من TCR أو شركة الاتصالات إلى بطاقة إصلاح، أعد إيداع حمولات العلامة والحملة المُصحَّحة، اطلب إعادة تحقق للعلامة عندما تكون درجة التحقق هي العائق، واقرأ فئة السعة التي تمتلكها علامتك فعليًا لدى AT&T وفئة السقف اليومي لدى T-Mobile.

# رفضات 10DLC وإعادة التحقق ودورة ما بعد الموافقة

ينتهي [دليل تسجيل 10DLC](/guides/10dlc-registration) عند
"ابدأ الإرسال." يغطي هذا الدليل ما يحدث بعد ذلك — رفض مع
رمز غامض، أو درجة تحقق تسقّ فطتك، أو حملة معتمدة لم
يعد سقفها اليومي يطابق حجمك. كل ما هنا ضابط على
تسجيلاتك أنت؛ وقرارات شركات الاتصالات والسجل تبقى لهم.

## من أين يأتي الرفض

الرفض أحد أمرين، والفرق يحدد كل ما تفعله لاحقًا:

* **رفضات السجل (TCR وشركات CSP التي تُمثّله)** تشتعل أثناء أو
  بعد مراجعة التسجيل — الإيداع نفسه مرفوض. تظهر هذه على هيئة
  سجلات حالة `FAILED` / `REJECTED` مع سلسلة `rejectionReason`،
  في ثلاثة أماكن: معالج **Settings > Compliance > 10DLC**،
  وإشعار لوحة التحكم عند الانتقال النهائي، وحقل
  `rejectionReason` على
  `GET /api/v1/compliance/10dlc/campaigns/:id/status`.
* **رفضات شركات الاتصالات (AT\&T، T-Mobile)** يمكن أن تصل بعد
  موافقة TCR، داخل خريطة `mnoStatuses` لكل شركة اتصالات — تدقيق
  عميل مباشر على العلامة، أو شركة اتصالات واحدة تخالف قرار
  مستوى CSP.

تُصدر بعض الرموز **قبل** أن يقرر TCR شيئًا: `DUPLICATE-BRAND`
وفشل lowercase-`usecase` إشارات وقت الإيداع، لا نتائج مرحلة
المراجعة. الرفض الذي يُظهره المعالج مباشرة بعد الإيداع عادة
ينتمي إلى هذه الفئة.

إلى رفضين يقفلان السجل بدل طلب التعديل —
`BRAND-DCA-FAIL` و`DUPLICATE-BRAND` يُعيدان بطاقة إصلاح مع
`resubmit_allowed: false`، أي أن معرّف العلامة محروق والإصلاح
تسجيل جديد، لا تعديل.

## حوّل رمز الرفض الخام إلى بطاقة إصلاح

يُعيد TCR وشركات CSP رموزًا مثل `30883` و`40016` و
`EIN-MISMATCH` مع سبب نصي حر من سطر واحد ولا إصلاح لكل حقل.
جدول الترميذ على
[استكشاف الأعطال: حملة 10DLC مرفوضة](/troubleshooting/10dlc-campaign-rejection)
يغطي الحالات الشائعة ثابتة؛ نقطة نهاية المُفكِّك تطبق
الكتالوج نفسه على أي رمز — بما فيه الصيغ والرموز التي لا
يعددها الجدول.

`POST /api/v1/compliance/10dlc/decode-rejection`

مرِّر `code` الخام، مع `rejectionReason` النص الحر
إن كان لديك — النص الحر يوضّح الرموز التي تعطي أكثر من سبب:

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/compliance/10dlc/decode-rejection \
  -H "X-API-Key: $ORBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "code": "30883",
    "free_text": "Sample messages include prohibited SHAFT content"
  }'
```

**الاستجابة (`200 OK`):**

```json theme={null}
{
  "data": {
    "code": "30883",
    "title": "Content violation",
    "meaning": "Carrier (typically T-Mobile) determined the sample messages or use case describe content prohibited under 10DLC policy — SHAFT-C, gambling-without-license, loans without a registered FCRA disclosure, or messaging unrelated to the declared vertical.",
    "fix": "Rewrite sample messages to match the declared use case verbatim; remove SHAFT-C wording, shortener domains, and generic 'click here' CTAs. Re-state the opt-in moment in message_flow.",
    "resubmit_allowed": true,
    "category": "content",
    "field": "campaign.sample_message",
    "references": [
      "https://support.twilio.com/hc/en-us/articles/4424803542043",
      "https://www.csptcr.com/wp-content/uploads/2023/03/Campaign-Registry-Common-Rejections.pdf"
    ]
  },
  "meta": {
    "request_id": "req_dec001",
    "timestamp": "2026-09-01T09:00:00Z"
  }
}
```

اقرأ أربعة حقول من البطاقة:

* **`fix`** — الخطوة الإصلاحية ذات أعلى احتمال، بنفس
  الأسلوب الذي يستخدمه بانر رفض المعالج.
* **`resubmit_allowed`** — الحكم الذي يحدد نداءك التالي.
  `true`: عدّل الحمولة وأعد إيداع نفس العلامة أو الحملة.
  `false`: السجل مُقفل؛ ابدأ تسجيلًا جديدًا.
* **`category`** — دلّة ثابتة (`eligibility`، `content`، `identity`،
  `throughput`، `format`، `dca`، `unknown`) للتجميع في واجهتك.
* **`field`** — خطوة المعالج التي ينطبق عليها الإصلاح
  (`campaign.sample_message`، `brand.ein`، …)، ليُرجَع المشغل
  إلى النموذج الصحيح بصيغة رابط عميق.

المُفكِّك محرك قواعد خالص — لا يخزّن شيئًا ولا ينشئ شيئًا،
ويوحّد الرمز نيابة عنك: `TCR-30883` و`Twilio Error 30883` و
`ein_mismatch` تصل كلها إلى إدخالاتها الكنونية. يُعيد الرمز غير
المعروف بطاقة من فئة `unknown` ينقل شعبة `fix` إلى امتثال
Devotel، حتى لا تُظهِر الواجهة التي تُعرض البطاقة لوحة فارغة.

<Tip>
  شغّل المُفكِّك قبل تشغيل المعالجة. حين تُعيد بطاقة `fix`
  الصياغة لعينة رسالة أو وصف، شغّل الحمولة المُصحَّحة عبر
  [مدقق ما قبل الإرسال](/guides/10dlc-registration#preflight-your-submission)
  قبل إعادة الإيداع — فهو يلتقط الرفض الثانوي الذي الإصلاح كثيرًا
  ما يقدمه.
</Tip>

## مثال مُعمَل: 'تعارض حالة الاستخدام'

استكشاف حالة حملة يُعيد:

```json theme={null}
{
  "data": {
    "campaignId": "C9X27A",
    "status": "FAILED",
    "rejectionReason": "use case mismatch — samples describe promotional traffic filed under CUSTOMER_CARE"
  }
}
```

تُسمّي سلسلة السبب السبب ولها لا رمز TCR. المُفكِّك يعمل بواحد
منهما أو الآخر، فمرِّر ما لديك — النص الحر وحده:

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/compliance/10dlc/decode-rejection \
  -H "X-API-Key: $ORBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"code": "unknown", "free_text": "use case mismatch"}'
```

**الاستجابة — بطاقة `30898`:**

```json theme={null}
{
  "data": {
    "code": "30898",
    "title": "Use case mismatch with declared vertical",
    "fix": "Either change the brand's vertical to match the actual messaging, or pick a different use case that aligns with the brand identity (MARKETING / MIXED for promotional content).",
    "resubmit_allowed": true,
    "category": "eligibility",
    "field": "campaign.usecase"
  }
}
```

`resubmit_allowed: true` يقول عدّل وأعد الإيداع. الآن أعد إيداع
الحملة المُصحَّحة على نفس العلامة — نفس النداء كالآيداع الأول،
مُعادًا مثلًا بمثل:

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/compliance/10dlc/campaign \
  -H "X-API-Key: $ORBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "brand_id": "B4D2E1",
    "usecase": "MARKETING",
    "description": "Acme sends weekend promotional offers to customers who opted in at checkout.",
    "sample_message": [
      "Acme: 20% off today at https://acme.com/sale. Reply STOP to unsubscribe."
    ],
    "message_flow": "Customers opt in at checkout and tick the SMS consent checkbox. Reply STOP to opt out.",
    "help_message": "Reply HELP for assistance or email support@acme.com.",
    "optout_message": "You have been unsubscribed and will receive no further messages."
  }'
```

توقع 1–5 أيام عمل مثل الإيداع الأول؛ استكشف نقطة الحالة
أو راقب إشعار لوحة التحكم.

## مثال ثانٍ مُعمَل: 'عينة SHAFT'

هذه نفس الحلقة مع بطاقة من فئة المحتوى. سبب مثل
`"Sample 2 flagged: SHAFT sample"` يفك إلى `30883` — انتهاك
محتوى — مع `resubmit_allowed: true` و`field: "campaign.sample_message"`.
أعد صياغة العينة المُبلغ عنها لتوصف الفئة المُعلنة وأسقط
الصيغة المحظورة، ثم أعد إيداع الحملة مثلًا بمثل. النقطة في
الحلقة: نداء مُفكِّك واحد، إيداع مُصحَّح واحد، ولا شيء من ذلك
يعتمد على أي صيغة أرجعها TCR بالضبط.

## إعادة التحقق مقابل إعادة الإيداع

إصلاحات المحتوى المرفوض تعني إعادة الإيداع. و**درجة التحقق المنخفضة**
عائق مختلف — لا كمية من التصحيح على حمولة حملة يصلحها، وهي
تسقف كل حملة على العلامة، لا الواحدة تحت المراجعة فقط. الدرجة
تحدد الحد، فالعلاج إعادة تحقق لا إعادة إيداع.

`POST /api/v1/compliance/10dlc/brands/:id/revet`

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/compliance/10dlc/brands/B4D2E1/revet \
  -H "X-API-Key: $ORBIT_API_KEY"
```

**الاستجابة (`200 OK`):**

```json theme={null}
{
  "data": {
    "brandId": "B4D2E1",
    "status": "PENDING",
    "provider": "telnyx"
  },
  "meta": {
    "request_id": "req_rev004",
    "timestamp": "2026-09-01T09:30:00Z"
  }
}
```

يسمي `provider` أي مسجّل يحمل العلامة؛ و`status` هي حالة العلامة
المحدثة بمجرد بدء إعادة التحقق. قبل إعادة التحقق، أكمله
سجل العلامة — EIN، واسم قانوني مطابق لسجلات IRS، وموقع، وبريد
دعم على نطاقك — إعادة التحقق يعيد قياس نفس المعلومات،
والسجل بلا تغيير يُعيد درجة بلا تغيير.

يُحدِّد المُسجِّل بتقييد إعادة التحقق (مرة فور التسجيل،
ثم مرة كل ثلاثة أشهر تقريبًا)، فنداء مقيد المعدل يُعيد 422
مع نص "انتظر حتى" من المُسجِّل — اقرأه، لا تعد المحاولة في
حلقة.

## تخطيط السعة: ما تمنحه الدرجة

نقطتان تحللان درجة التحقق إلى الحدود التي تعمل بها.

`GET /api/v1/compliance/10dlc/brands/:id/vetting` يعيد النتيجة
الخام:

```json theme={null}
{
  "data": {
    "brandId": "B4D2E1",
    "provider": "telnyx",
    "vettingScore": 78,
    "vettingClass": "PASS",
    "vettedDate": "2026-08-30T12:00:00Z"
  }
}
```

`vettingScore: null` يعني أن EVP لا يزال يُعالج — اعرض
"Pending" لا `0`.

`GET /api/v1/compliance/10dlc/brands/:id/throughput` يستمد الحدود
المخصصة من شركات الاتصالات من تلك الدرجة:

```bash theme={null}
curl "https://api.orbit.devotel.io/api/v1/compliance/10dlc/brands/B4D2E1/throughput?entity_type=PRIVATE_PROFIT&sent_today=9800" \
  -H "X-API-Key: $ORBIT_API_KEY"
```

**الاستجابة (`200 OK`):**

```json theme={null}
{
  "data": {
    "brandId": "B4D2E1",
    "provider": "telnyx",
    "vettingScore": 78,
    "vettingClass": "PASS",
    "vettedDate": "2026-08-30T12:00:00Z",
    "throughput": {
      "trust_score": 78,
      "provisional": false,
      "entity_type": "PRIVATE_PROFIT",
      "tmobile": {
        "tier": "HIGH",
        "daily_cap": 200000,
        "unlimited": false,
        "label": "High (200k message parts/day)"
      },
      "att": {
        "class": "A",
        "mpm": 600,
        "label": "Class A (600 MPM)"
      }
    },
    "consumption": {
      "daily_cap": 200000,
      "unlimited": false,
      "sent_today": 9800,
      "remaining": 190200,
      "percent_used": 5,
      "status": "ok"
    }
  }
}
```

* **`att.class`** — AT\&T تخصص فئة سعة لكل حملة، D→C→B→A
  (15 → 75 → 240 → 600 رسائل في الدقيقة)، عند أرضيات درجة trust 0/25/50/75.
* **`tmobile.tier`** — T-Mobile تخصص فئة سقف يومي لكل علامة
  (2k / 10k / 40k / 200k / غير محدودة) تغطي كل حملة ورقم
  على العلامة.
* **`entity_type`** (باراميتر استعلام اختياري) — علامات المالك الفردي
  مسقوفة عند فئة 2k والفئة D في AT\&T بغض النظر عن الدرجة؛ مرِّر
  نوع الكيان المسجل حتى يرى الاشتقاق الحالة الخاصة.
* **`sent_today`** (باراميتر استعلام اختيارية) — أجزاء الرسائل التي جعلت
  في نافذة التداول 24 ساعة الحالية. عند تمريره، `consumption` تُبلغ
  عن الفراغ قبل منطقة تصفية الصامت: `ok` دون 80% من السقف،
  `warning` عند 80%، `critical` عند 95%، `exceeded` عند 100%.

الباراميترين اختياريتان؛ `consumption` يبقى `null` حتى تُزوّد
`sent_today`.

### إعادة تحقق، أو القبول بالفئة؟

استخدم حدودَي `warning` / `critical` كإشارة. حين ينقضي حجمك
ضمن حركة العرض باستمرار في النطاق التحذيري، خطّط إعادة تحقق —
فهي مقيدة المعدل، فلا تُحرقها إلا على تغيير مسار حقيقي. حين
السقف هو السقف اليومي لا الفئة، يكون الضابط لكل علامة:
إسناد أرقام أكثر إلى الحملة لا يرفعه، وترقية `SOLE_PROPRIETOR`
إلى سجل علامة كامل يرفعه — ذلك تغيير نوع كيان، لا إعادة تحقق.

## إعادة الإيداع، إعادة التحقق: ما كلفت كل منهما

يدفع TCR رسوم تحقق جديدة لكل إعادة إيداع وإعادة تحقق (عادة
بضعة دولارات أمريكية)، ويعامل كل إعادة إيداع
كمراجعة جديدة — توقيت مستقل عن محاولاتك السابقة.

## انظر أيضًا

* [دليل تسجيل 10DLC](/guides/10dlc-registration) — علامة →
  حملة → موافقة، رموز حالات الاستخدام، وجدول فئة السعة
* [استكشاف الأعطال: حملة 10DLC مرفوضة](/troubleshooting/10dlc-campaign-rejection)
  — مصفوفة العَرَض → السبب → الإصلاح الثابتة التي يطبقها
  مُفكِّك هذا الدليل
* [مدقق ما قبل الإيداع](/guides/10dlc-registration#preflight-your-submission)
  — شغّل الحمولة المُصحَّحة عبر preflight قبل إعادة الإيداع
