PATCH/v1/cards/{card_id}
تعديل بطاقة
update_card
المصادقة
أرسل مفتاح API في الترويسة Authorization: Authorization: Bearer <key>.
معاملات المسار
card_idstringمطلوب
معاملات الترويسة
Idempotency-Keystringمفتاح لإعادة محاولة عملية كتابة بأمان: من 1 إلى 255 حرفًا من أحرف ASCII القابلة للطباعة؛ يُنصح بقيمة UUID v4 لكل عملية منطقية. إعادة المحاولة بالمفتاح نفسه خلال 24 ساعة لا تنفّذ العملية مرة أخرى، بل تعيد الاستجابة المحفوظة (الحالة والترويسات والنص) مع الترويسة
Idempotency-Replayed: true. المفتاح نفسه مع أسلوب أو مسار أوContent-Typeأو نص مختلف يعيد409 api.idempotency_mismatch؛ وما دام الطلب الأول قيد التنفيذ، يعيد409 api.idempotency_in_progressمعRetry-After: 1. بعد استجابة 5xx أو 429 يُحرَّر المفتاح، وتنفّذ إعادة المحاولة العملية مرة أخرى. نطاق المفتاح هو المؤسسة والجهة المستدعية (مفتاح API أو مستخدم أو مفتاح مصدر مخصص).length ≥ 1, length ≤ 255
X-View-Asstringلمفاتيح API ذات الدور
adminفقط. ينفّذ الطلب بصفة ملف تعريف البيانات<profile>[:viewer|verifier|editor]، مثلemployee:viewer. لا يمكن لمفتاح التثبيت استخدام هذه الترويسة (403).
معاملات ملفات تعريف الارتباط
kb_view_asstringملف تعريف ارتباط وضع «View as» (عرض بصفة) للجلسة. تضبطه العملية
POST /auth/view-asوتمسحه العمليةDELETE /auth/view-as.
نص الطلب
application/json
external_idstring | nullيضبط قيمة
external_idللبطاقة أو يغيّرها؛ والقيمة""أوnullتزيلها. إذا كانت بطاقة أخرى في المؤسسة تستخدم هذه القيمة، يعيد الطلب409 cards.external_id_taken. لا تتغير قيمةexternal_idلبطاقة من مصدر (409 cards.managed_by_source).length ≤ 512
metadataMetadataPatchtitlestring | nullowner_idinteger | nullverifier_idsarray of integer | nullverify_interval_daysinteger | null≥ 1, ≤ 3650
tagsarray of string | nullstatusstring | nullsource_urlstring | nullcategorystring | nullsensitiveboolean | nulltable_categoriesmap of object | null
الاستجابات
200استجابة ناجحة
ترويسات الاستجابة
RateLimit-Policyالحدود السارية، بصيغة مسودة IETF
draft-ietf-httpapi-ratelimit-headers: عناصر مفصولة بفواصل"<name>";q=<quota>;w=<window in seconds>. العنصرkeyهو معدل طلبات مفتاح API (الحصة هي هامش الذروة، والنافذة الزمنية هي مدة إعادة ملئه بالكامل؛ وللجلسة يكونuser، ودون بيانات اعتمادip)؛ وminuteوdayوmonthهي حصص المؤسسة للدقيقة واليوم والشهر التقويمية بتوقيت UTC.RateLimitالمتبقي من كل حد في الترويسة
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-Limitحد العنصر الأشد صرامة في الترويسة
RateLimit-Policy(العنصر الذي بقي فيه أقل عدد من الطلبات).X-RateLimit-Remainingعدد الطلبات المتبقية ضمن الحد الأشد صرامة.
X-RateLimit-Resetعدد الثواني حتى إعادة ضبط الحد الأشد صرامة.
Idempotency-Replayedالقيمة
true: أُعيدت الاستجابة المحفوظة لهذا المفتاحIdempotency-Key، ولم تُنفَّذ العملية مرة أخرى.
application/json
expandedCardExpandedpermissionsObjectPermissionListaccessstringالقيم المسموح بها:
wholepartialaccess_contactstringالجهة التي يُتواصل معها للحصول على الوصول (فقط عند
access=partial).aclobjectالحقول
verifybooleanمطلوبwritebooleanمطلوب
categorystringمطلوبcategory_confidencenumber | nullمطلوبcategory_lockedbooleanمطلوبcategory_reviewbooleanمطلوبcollectionstringمطلوبcollection_idintegerمطلوبcollection_titlestringcommentsarray of CardCommentcontent_jsonContentJSON | nullمحتوى المحرر لأحدث إصدار منشور. قد يغيب الحقل؛ وفي هذه الحالة، احصل على محتوى المحرر من مسودة (
POST /v1/draftsمعcard_id).editing_lockEditingLock | nullقفل التحرير النشط. قد يغيب الحقل؛ وفي هذه الحالة، يعرف المحرر من يملك القفل من
409 cards.lockedعندPOST /v1/cards/{card_id}/lock.created_atstring (date-time)مطلوبdays_since_verifiedintegerمطلوبerrorstring | nullمطلوبeventsarray of CardEventfeedback_negintegerمطلوبfeedback_posintegerمطلوبfoldersarray of CardFolderRefفي قائمة البطاقات فقط: المجلدات التي تحتوي البطاقة (المرئية للمستخدم)، مع مساراتها من جذر المجموعة. القائمة الفارغة تعني أن البطاقة ليست في أي مجلد.
has_tablesbooleanفي قائمة البطاقات فقط.
hidden_partsbooleanidstringمطلوبjobJob | nullorg_idintegerمطلوبowner_activeboolean | nullowner_idinteger | nullمطلوبowner_namestring | nullمطلوبpagesinteger | nullمطلوبparserstring | nullمطلوبأداة قراءة المستند بوصفها رمزًا محايدًا:
document(البنية الكاملة: الصفحات، والعناوين، والجداول، والصفحات المصوَّرة)، وpdf(طبقة النص في PDF)، وdocx، وxlsx، وcsv، وmarkdown، وhtml، وtext. قد تتوسع القائمة.sensitivebooleanمطلوبsha256string | nullمطلوبsizeintegerمطلوبsnoozed_atstring (date-time) | nullsnoozed_byinteger | nullsnoozed_untilstring | nullsource_changedbooleanمطلوبsource_pathstring | nullمطلوبsource_urlstring | nullمطلوبstatusstringمطلوبالقيم المسموح بها:
processingreadyerrorarchivedtablesarray of CardTabletagsarray of stringمطلوبtitlestringمطلوبtrustnumberمطلوبtrust_if_verifiednumberupdated_atstring (date-time)مطلوبverified_atstring (date-time) | nullمطلوبverified_byinteger | nullمطلوبverified_by_namestring | nullverifier_idsarray of integerمطلوبverifiersarray of objectالحقول
activebooleanمطلوبidintegerمطلوبnamestringمطلوب
verify_interval_daysintegerمطلوبversionintegerمطلوبversionsarray of CardVersionsource_archiveArchiveSourcecreated_byinteger | nullmanual_optionsobjectإعدادات القراءة اليدوية (المعاينة).
doc_kindDocKind | nullنوع المستند. القيمة
nullإن لم يُحدَّد النوع (مثلًا للبطاقات التي فُهرست قبل إدخال أنواع المستندات).doc_kind_confidencenumber | nullدرجة الثقة في نوع المستند، من 0 إلى 1.
doc_kind_sourcestring | nullما حدّد النوع: القواعد (
rules)، أو مستخدم (manual)، أو التصنيف التلقائي. قد تتوسع القائمة: تعامل مع القيمة غير المعروفة على أنها تصنيف تلقائي.القيم المسموح بها:
rulesmanualnullinvoiceDocInvoiceExtraction | nullحقول الفاتورة أو الإشعار الدائن أو الإيصال (لهذه الأنواع فقط، وفي البطاقة فقط، لا في القائمة). القيمة
nullإن لم يكن لديك وصول إلى المستند كاملًا، لأن الحقول تُستخرج من المستند كاملًا.warningsarray of ReviewWarningتحذيرات قراءة المستند (
ReviewWarning؛ في البطاقة فقط، لا في القائمة).enrichmentCardEnrichmentStatus | nullحالة الإثراء (في البطاقة فقط، لا في القائمة). يُضاف نوع المستند وحقول الفاتورة والسجلات المالية في الخلفية بعد الفهرسة، ويمكن إعادة حسابها لاحقًا؛ وتظهر في البطاقة حين تجهز. القيمة
nullتعني أنه لا تتوفر حالة (فُهرست البطاقة بلا إثراء في الخلفية).external_idstring | nullمعرّف البطاقة في نظام جهة التكامل. وهو فريد في المؤسسة بين البطاقات التي لا تأتي من مصادر؛ والقيمة
nullتعني أنه غير محدد. تقرأ/v1/cards-by-external-id/{external_id}البطاقة وتستبدلها به.length ≤ 512
metadataMetadata
400الطلب غير صالح: قيمة معامل أو حالة الكائن لا تسمح بالإجراء (الحقل `detail` رسالة نصية).
ترويسات الاستجابة
RateLimit-Policyالحدود السارية، بصيغة مسودة IETF
draft-ietf-httpapi-ratelimit-headers: عناصر مفصولة بفواصل"<name>";q=<quota>;w=<window in seconds>. العنصرkeyهو معدل طلبات مفتاح API (الحصة هي هامش الذروة، والنافذة الزمنية هي مدة إعادة ملئه بالكامل؛ وللجلسة يكونuser، ودون بيانات اعتمادip)؛ وminuteوdayوmonthهي حصص المؤسسة للدقيقة واليوم والشهر التقويمية بتوقيت UTC.RateLimitالمتبقي من كل حد في الترويسة
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-Limitحد العنصر الأشد صرامة في الترويسة
RateLimit-Policy(العنصر الذي بقي فيه أقل عدد من الطلبات).X-RateLimit-Remainingعدد الطلبات المتبقية ضمن الحد الأشد صرامة.
X-RateLimit-Resetعدد الثواني حتى إعادة ضبط الحد الأشد صرامة.
application/json
401لم تُرسَل بيانات اعتماد (لا ملف تعريف ارتباط للجلسة ولا مفتاح API)، أو لم يُعثر على المفتاح.
ترويسات الاستجابة
RateLimit-Policyالحدود السارية، بصيغة مسودة IETF
draft-ietf-httpapi-ratelimit-headers: عناصر مفصولة بفواصل"<name>";q=<quota>;w=<window in seconds>. العنصرkeyهو معدل طلبات مفتاح API (الحصة هي هامش الذروة، والنافذة الزمنية هي مدة إعادة ملئه بالكامل؛ وللجلسة يكونuser، ودون بيانات اعتمادip)؛ وminuteوdayوmonthهي حصص المؤسسة للدقيقة واليوم والشهر التقويمية بتوقيت UTC.RateLimitالمتبقي من كل حد في الترويسة
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-Limitحد العنصر الأشد صرامة في الترويسة
RateLimit-Policy(العنصر الذي بقي فيه أقل عدد من الطلبات).X-RateLimit-Remainingعدد الطلبات المتبقية ضمن الحد الأشد صرامة.
X-RateLimit-Resetعدد الثواني حتى إعادة ضبط الحد الأشد صرامة.
application/json
403الإجراء غير مسموح: الدور غير كافٍ، أو لا وصول إلى المجموعة أو البطاقة، أو يعمل الطلب في وضع «View as»، أو المؤسسة معلّقة أو محذوفة (الحقل `detail` كائن فيه `code: org_suspended | org_deleted`).
ترويسات الاستجابة
RateLimit-Policyالحدود السارية، بصيغة مسودة IETF
draft-ietf-httpapi-ratelimit-headers: عناصر مفصولة بفواصل"<name>";q=<quota>;w=<window in seconds>. العنصرkeyهو معدل طلبات مفتاح API (الحصة هي هامش الذروة، والنافذة الزمنية هي مدة إعادة ملئه بالكامل؛ وللجلسة يكونuser، ودون بيانات اعتمادip)؛ وminuteوdayوmonthهي حصص المؤسسة للدقيقة واليوم والشهر التقويمية بتوقيت UTC.RateLimitالمتبقي من كل حد في الترويسة
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-Limitحد العنصر الأشد صرامة في الترويسة
RateLimit-Policy(العنصر الذي بقي فيه أقل عدد من الطلبات).X-RateLimit-Remainingعدد الطلبات المتبقية ضمن الحد الأشد صرامة.
X-RateLimit-Resetعدد الثواني حتى إعادة ضبط الحد الأشد صرامة.
application/json
404الكائن غير موجود أو غير متاح لك. لا تؤكد واجهة API وجود كائن مقيّد الوصول.
ترويسات الاستجابة
RateLimit-Policyالحدود السارية، بصيغة مسودة IETF
draft-ietf-httpapi-ratelimit-headers: عناصر مفصولة بفواصل"<name>";q=<quota>;w=<window in seconds>. العنصرkeyهو معدل طلبات مفتاح API (الحصة هي هامش الذروة، والنافذة الزمنية هي مدة إعادة ملئه بالكامل؛ وللجلسة يكونuser، ودون بيانات اعتمادip)؛ وminuteوdayوmonthهي حصص المؤسسة للدقيقة واليوم والشهر التقويمية بتوقيت UTC.RateLimitالمتبقي من كل حد في الترويسة
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-Limitحد العنصر الأشد صرامة في الترويسة
RateLimit-Policy(العنصر الذي بقي فيه أقل عدد من الطلبات).X-RateLimit-Remainingعدد الطلبات المتبقية ضمن الحد الأشد صرامة.
X-RateLimit-Resetعدد الثواني حتى إعادة ضبط الحد الأشد صرامة.
application/json
422خطأ في صحة البيانات: نص الطلب أو المعاملات لا تطابق المخطط (الحقل `detail` قائمة بأخطاء صحة البيانات)، أو قيمة معامل خارج النطاق المسموح (الحقل `detail` رسالة نصية).
ترويسات الاستجابة
RateLimit-Policyالحدود السارية، بصيغة مسودة IETF
draft-ietf-httpapi-ratelimit-headers: عناصر مفصولة بفواصل"<name>";q=<quota>;w=<window in seconds>. العنصرkeyهو معدل طلبات مفتاح API (الحصة هي هامش الذروة، والنافذة الزمنية هي مدة إعادة ملئه بالكامل؛ وللجلسة يكونuser، ودون بيانات اعتمادip)؛ وminuteوdayوmonthهي حصص المؤسسة للدقيقة واليوم والشهر التقويمية بتوقيت UTC.RateLimitالمتبقي من كل حد في الترويسة
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-Limitحد العنصر الأشد صرامة في الترويسة
RateLimit-Policy(العنصر الذي بقي فيه أقل عدد من الطلبات).X-RateLimit-Remainingعدد الطلبات المتبقية ضمن الحد الأشد صرامة.
X-RateLimit-Resetعدد الثواني حتى إعادة ضبط الحد الأشد صرامة.
application/json
429طلبات كثيرة جدًا (`api.rate_limited`)، أو استُنفدت حصة المؤسسة للدقيقة أو اليوم أو الشهر (`api.quota_exceeded`؛ يحتوي الحقل `error.details` على `quota` و`limit` و`reset_at`)، أو بلغت المؤسسة حدها، أو خدمة الإجابات مشغولة (`answers.engine_busy`). انتظر المدة المذكورة في الترويسة `Retry-After`.
ترويسات الاستجابة
Retry-Afterعدد الثواني التي تنتظرها قبل إعادة محاولة الطلب.
RateLimit-Policyالحدود السارية، بصيغة مسودة IETF
draft-ietf-httpapi-ratelimit-headers: عناصر مفصولة بفواصل"<name>";q=<quota>;w=<window in seconds>. العنصرkeyهو معدل طلبات مفتاح API (الحصة هي هامش الذروة، والنافذة الزمنية هي مدة إعادة ملئه بالكامل؛ وللجلسة يكونuser، ودون بيانات اعتمادip)؛ وminuteوdayوmonthهي حصص المؤسسة للدقيقة واليوم والشهر التقويمية بتوقيت UTC.RateLimitالمتبقي من كل حد في الترويسة
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-Limitحد العنصر الأشد صرامة في الترويسة
RateLimit-Policy(العنصر الذي بقي فيه أقل عدد من الطلبات).X-RateLimit-Remainingعدد الطلبات المتبقية ضمن الحد الأشد صرامة.
X-RateLimit-Resetعدد الثواني حتى إعادة ضبط الحد الأشد صرامة.
application/json
رموز الأخطاء
الرموز التي قد تعيدها نقطة النهاية هذه في error.code، إضافةً إلى الرموز العامة لكل طلب.
- 400api.metadata_invalid
- 409api.idempotency_in_progress
- 400api.idempotency_key_invalid
- 409api.idempotency_mismatch
- 401auth.not_authenticated
- 403auth.system_scope
- 403cards.category_whole_access
- 409cards.external_id_taken
- 409cards.managed_by_source
- 403cards.no_access
- 404cards.not_found
- 403cards.sensitivity_admin_only
- 400cards.unknown_table_part
- 400categories.unknown
- 403org.deleted
- 403org.suspended
- 400users.inactive_assignment
- 400users.not_in_org
- 403view_as.read_only
إعادة المحاولة بأمان
أرسل الترويسة Idempotency-Key (قيمة UUID مثلًا) مع كل طلب POST وPATCH. إعادة المحاولة بالمفتاح نفسه خلال 24 ساعة تعيد الاستجابة المحفوظة بدل تنفيذ الطلب مرة أخرى.
حدود المعدل
تحمل الاستجابات الترويستين RateLimit وRateLimit-Policy، والترويسات الأقدم X-RateLimit-Limit وX-RateLimit-Remaining وX-RateLimit-Reset. وفي الاستجابة 429 الترويسة Retry-After بالثواني: انتظر ثم أعد المحاولة.