compute
POST /v1/panels/licences
Buy a control-panel licence.
المصادقة
أرسل مفتاح واجهة برمجة التطبيقات (API key) كرمز حامل (bearer token). يجب أن يحمل المفتاح إذن billing.payment.manage؛ والمفتاح الذي لا يملكه يُرفض بالرمز 403 وليس 404.
لا يقبل هذا الطرف أي معرف للمؤسسة. يحدد مفتاحك بالفعل المؤسسة التي ينتمي إليها، وتكون الاستجابة محصورة في نطاقها.
جربه الآن
استبدل أي شيء بين أقواس زاوية بقيمك الخاصة، والعنصر النائب للمفتاح بمفتاح من لوحة تحكمك.
curl -X POST https://api.zinndigital.com/v1/panels/licences \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "product_code": <string>, "currency": <string> }'هل سجلت الدخول؟ تقوم وحدة تحكم واجهة برمجة التطبيقات في لوحة التحكم الخاصة بك بربط معرف مؤسستك الحقيقي ومفتاحك الخاص، وتنفذ الطلب مقابل واجهة برمجة التطبيقات المباشرة لتتمكن من رؤية الاستجابة الفعلية. افتح هذه النهاية الطرفية في وحدة تحكم API
التفاصيل
⛔ This spends money at the supplier, monthly, until the licence is released. ⭐ On the customer's OWN machine the licence is bought immediately, because the address is known at order time. On one of ours it is recorded pending and bought the moment the machine has an IP — Openprovider Plesk licences are IP-bound, and one bought before an address exists is bound to nothing and cannot be released. ⛔ Answers 422 when the account is not in good standing, when the product is not on sale, when a licence for the customer's own server arrives without its IP, or when an extension is ordered for a machine holding no matching base edition. Answers 503 when the supplier could not be reached — in which case the licence is recorded and reconciled automatically rather than silently lost. Requires billing.payment.manage.
جسم الطلب
| الاسم | النوع | مطلوب | ما هو هذا |
|---|---|---|---|
product_code | string | نعم | — |
currency | string | نعم | — |
target_kind | string<ours, customer> | لا | — |
server_id | Uuid | لا | Required when target_kind is ours. |
bound_ip | string | لا | The machine's IP. ⛔ Required when target_kind is customer and refused rather than defaulted: a licence registered against a guessed address is bound to somebody else's… |
الاستجابة
| الاسم | النوع | مطلوب | ما هو هذا |
|---|---|---|---|
id | Uuid | نعم | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
product_code | string | نعم | The PanelProduct.code this licence is for. |
state | string<pending, active, suspended, released, failed> | نعم | ⛔ suspended is not a synonym for released. The charge has stopped and the record has not: the licence returns automatically when the account is back in good standing, with… |
target_kind | string<ours, customer> | نعم | Whose machine this licence runs on. ⛔ Stored rather than derived from whether server_id is set: "did we build this machine" and "whose problem is it when the disk fills" are… |
server_id | Uuid | نعم | Our machine, when there is one. Null for a customer-owned server. |
bound_ip | string | نعم | The address the licence is registered against at the supplier. ⛔ This is what releasing needs — by teardown the machine may be gone, and a licence we cannot release bills monthly… |
key_number | string | نعم | The panel-facing key number (PLSK.01234567) — an identifier, not a secret. ⛔ The activation code itself is never returned by this API; it lives in Vault. |
price_minor | integer | نعم | What the customer is charged per month, in minor units, frozen at purchase. A copy rather than a join, so an operator repricing the catalogue cannot move an existing customer's… |
currency | string | نعم | — |
message | string | نعم | Why it failed or was suspended, in a sentence the customer reads. |
activated_at | string | نعم | — |
الأخطاء التي يمكن أن تُرجعها نقطة النهاية هذه
401 · 403 · 422 · 429 · 503