hosting

POST /v1/sites/{siteId}/migrations/managed-request

Buy the managed migration and let staff do it.

جميع نقاط نهاية hosting

المصادقة

أرسل مفتاح واجهة برمجة التطبيقات (API key) كرمز حامل (bearer token). يجب أن يحمل المفتاح إذن billing.payment.manage؛ والمفتاح الذي لا يملكه يُرفض بالرمز 403 وليس 404.

لا يقبل هذا الطرف أي معرف للمؤسسة. يحدد مفتاحك بالفعل المؤسسة التي ينتمي إليها، وتكون الاستجابة محصورة في نطاقها.

جربه الآن

استبدل أي شيء بين أقواس زاوية بقيمك الخاصة، والعنصر النائب للمفتاح بمفتاح من لوحة تحكمك.

curl -X POST https://api.zinndigital.com/v1/sites/{siteId}/migrations/managed-request \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{  }'

هل سجلت الدخول؟ تقوم وحدة تحكم واجهة برمجة التطبيقات في لوحة التحكم الخاصة بك بربط معرف مؤسستك الحقيقي ومفتاحك الخاص، وتنفذ الطلب مقابل واجهة برمجة التطبيقات المباشرة لتتمكن من رؤية الاستجابة الفعلية. افتح هذه النهاية الطرفية في وحدة تحكم API

التفاصيل

Purchases the `managed_migration` extra — the paid, staff-run service the catalogue sells with a 72-hour SLA — for this site. The self-service migration above and this both exist; neither is a placeholder for the other, and this is the path for a source we cannot automate (Plesk, an unusual panel, a site nobody has the credentials for any more). It creates an **`ExtraPurchase`**, not a migration job: the charge, the tax, the invoice line and the SLA clock all come from the extras machinery, and the fulfilment workflow raises it to the staff queue. Returns the purchase, so the client can show its status and SLA. A declined card is 422 and nothing is booked; an environment whose catalogue has never been seeded answers 503 rather than 404, because the service exists and is advertised. An organization with **no** chargeable payment method gets 422 `PAYMENT_METHOD_REQUIRED` rather than the decline code — nothing reached a gateway, so nothing was refused (`docs/491` §7). ⛔ Send **no credentials** here — the body has nowhere to put them, and staff collect them out of band from a human they can verify. Requires `billing.payment.manage`, not `hosting.import.manage`: this spends money, and a developer who may migrate a site may not charge the account.

المعلمات

الاسمالنوعمطلوبما هو هذا
siteId (path)UuidنعمSite ID (UUIDv7).
Idempotency-Key (header)stringلاClient-generated key that makes an unsafe request replay-safe: the server stores the first response and returns it verbatim for repeats.

جسم الطلب

الاسمالنوعمطلوبما هو هذا
source_hoststringلاWhere the site is hosted today, so the fulfilment queue is actionable without a round trip. A hostname, never a login. Optional.
notestringلاAnything else staff should know before they start.
currencystringلاThe currency the customer was quoted in. Validated and refused if no gateway can charge it — this is a charge, and silently substituting the base currency would bill a different…

الاستجابة

الاسمالنوعمطلوبما هو هذا
idUuidنعمUUIDv7 identifier — sortable by creation time (docs/02 §8).
org_idUuidنعمUUIDv7 identifier — sortable by creation time (docs/02 §8).
extra_idUuidنعمUUIDv7 identifier — sortable by creation time (docs/02 §8).
site_idobjectلا
domain_idobjectلا
statusExtraPurchaseStatusنعمAn extra purchase's lifecycle state.
categorystringنعم
fulfilment_typeExtraFulfilmentTypeنعمHow an extra is delivered.
intervalExtraIntervalنعمOne-off charge or a recurring subscription.
priceMoneyAmountنعمA money value — integer minor units + an ISO 4217 code (CLAUDE.md §2.8).
recurrencestring<none, active, ended>نعمWhether the recurrence behind this purchase is still live. `none` = it never recurred (a one-off); `active` = a scheduled charge exists; `ended` = it recurred and no longer does…
next_renewal_onobjectلاThe next charge date, or `null`. Also `null` for a live charge that has no date scheduled yet, so read `recurrence` — not this field — to decide whether a purchase renews at all.
sla_due_atobjectلا
completed_atobjectلا
failure_reasonstringلا
created_atstringنعم
updated_atstringنعم

الأخطاء التي يمكن أن تُرجعها نقطة النهاية هذه

401 · 403 · 404 · 422 · 429 · 503