compute
POST /v1/certificates/orders/{orderId}/renew
Start the successor order for an expiring certificate.
ການພິສູດຕົວຕົນ
ສົ່ງລະຫັດ API ເປັນ bearer token. ລະຫັດຕ້ອງມີສິດ billing.payment.manage; ລະຫັດທີ່ບໍ່ມີສິດດັ່ງກ່າວຈະຖືກປະຕິເສດດ້ວຍລະຫັດ 403, ບໍ່ແມ່ນ 404.
ຈຸດເຊື່ອມຕໍ່ນີ້ບໍ່ໄດ້ຮັບ ID ອົງກອນ. ລະຫັດຂອງທ່ານໄດ້ລະບຸອົງກອນທີ່ມັນຂຶ້ນກັບແລ້ວ, ແລະ ຄໍາຕອບແມ່ນຖືກຈໍາກັດຂອບເຂດໄວ້ສໍາລັບອົງກອນນັ້ນ.
ລອງໃຊ້ເບິ່ງ
ປ່ຽນແທນທຸກຢ່າງທີ່ຢູ່ໃນວົງເລັບມຸມດ້ວຍຄ່າຂອງທ່ານເອງ, ແລະ ປ່ຽນແທນຕົວແທນບ່ອນວ່າງຄີດ້ວຍຄີຈາກແຜງຄວບຄຸມຂອງທ່ານ.
curl -X POST https://api.zinndigital.com/v1/certificates/orders/{orderId}/renew \
-H "Authorization: Bearer zdk_live_…"ເຂົ້າສູ່ລະບົບແລ້ວບໍ? ໂຄງສົນທະນາ API ໃນໜ້າັດສະຫຼອງຂອງທ່ານຈະຕື່ມຂໍ້ມູນລະຫັດອົງກອນຕົວຈິງ ແລະ ລະຫັດລັບສ່ວນຕົວຂອງທ່ານໂດຍອັດຕະໂນມັດ, ແລະ ປະຕິບັດການຮ້ອງຂໍຜ່ານ API ຕົວຈິງ ເພື່ອໃຫ້ທ່ານສາມາດເຫັນຜົນຕອບຮັບທີ່ແທ້ຈິງໄດ້. ເປີດຈຸດສິ້ນສຸດນີ້ໃນຄອນໂສລ API
ລາຍລະອຽດ
⛔⛔ **A renewal is a FRESH ORDER with a FRESH VALIDATION, not a flag.** The authority re-issues against a new CSR and re-runs domain control, so this creates a `pending` successor seeded from the expiring order and **spends nothing**. The customer then supplies a CSR to `submitCertificateOrder` exactly as they did the first time, which is the call that charges. Anything modelling renewal as an auto-renew toggle silently produces orders nobody validates — paid for, `awaiting_validation`, and never issued. ⭐ **Idempotent**, so it answers `200` rather than `201`: a double-click, a retried activity and an impatient customer all reach this, and it returns the existing live successor rather than buying a second certificate. Requires `billing.payment.manage`. ⚠️ An organisation that is not in good standing is refused **with a reason** (§2.46), never silently — the existing certificate keeps working until it expires either way, and "my renew button does nothing" is indistinguishable from a broken product.
ພາຣາມິເຕີ
| ຊື່ | ປະເພດ | ຕ້ອງການ | ສິ່ງທີ່ມັນເປັນ |
|---|---|---|---|
orderId (path) | Uuid | ແມ່ນແລ້ວ | The order's id, as `listCertificateOrders` reports it. Ours (UUIDv7). |
ຖືກໂຈະ
| ຊື່ | ປະເພດ | ຕ້ອງການ | ສິ່ງທີ່ມັນເປັນ |
|---|---|---|---|
id | Uuid | ແມ່ນແລ້ວ | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
product_code | string | ແມ່ນແລ້ວ | The stable machine key (`positive_ssl`). ⛔ Match on this, never on `product_name` — the name is the certificate authority's marketing string and can be corrected without the pro… |
product_name | string | ແມ່ນແລ້ວ | What the customer reads — the authority's own product name (`PositiveSSL`, `S/MIME Personal`, `Unified Communications Certificate (UCC)`). ⛔ Never a translation key: these are t… |
state | string<pending, awaiting_validation, issued, cancelled, failed, expired> | ແມ່ນແລ້ວ | ⛔⛔ **`awaiting_validation` means PAID AND NOT ISSUED.** The authority charges at order time and then waits for the customer to prove they control the domain. It is deliberately… |
common_name | string | ແມ່ນແລ້ວ | The primary domain on the certificate. |
domains | string[] | ແມ່ນແລ້ວ | Additional names (SANs). Empty for a single-domain product. |
period_years | integer | ແມ່ນແລ້ວ | — |
price_minor | integer | ແມ່ນແລ້ວ | What the customer is charged, frozen at order. A copy rather than a join, so an operator repricing the catalogue cannot move an existing bill. |
currency | string | ແມ່ນແລ້ວ | — |
validation_instructions | string | ແມ່ນແລ້ວ | What the customer must still do, in the authority's own words. ⭐ Carried as text rather than parsed: every authority words it differently, and a half-parsed instruction is worse… |
certificate_pem | string | ແມ່ນແລ້ວ | The issued certificate. ⭐ Public by nature — it is served to every visitor of the site — which is why it is returned here while its **private key never is**: a customer-generate… |
chain_pem | string | ແມ່ນແລ້ວ | — |
message | string | ແມ່ນແລ້ວ | Why it failed or was cancelled, in a sentence the customer reads. |
ordered_at | string | ແມ່ນແລ້ວ | — |
issued_at | string | ແມ່ນແລ້ວ | — |
expires_at | string | ແມ່ນແລ້ວ | — |
days_until_expiry | integer | ແມ່ນແລ້ວ | Whole days until `expires_at`, negative once it has lapsed. ⛔ `null` and `0` are DIFFERENT answers and a client must not collapse them: `null` means we could not read an expiry… |
renewable | boolean | ແມ່ນແລ້ວ | Whether to offer a re-order now — issued, inside the 30-day window, and with no renewal already in flight. ⛔ Computed here rather than left to a client to derive from `expires_a… |
free_alternative_exists | boolean | ແມ່ນແລ້ວ | Whether Let's Encrypt issues this kind of certificate for nothing. Carried onto the renewal prompt for the same reason it is on the buy screen: say so **before** asking somebody… |
renewal_of | Uuid | ແມ່ນແລ້ວ | The order this one renews, so a client can show the chain. |
last_reminded_at | string | ແມ່ນແລ້ວ | When the renewal sweep last REACHED this order — which is not the same as when it last emailed about it. ⛔ The sweep stamps this for every row it reaches **including the ones it… |
ຂໍ້ຜິດພາດທີ່ຈຸດເຊື່ອມຕໍ່ນີ້ສາມາດສົ່ງຄືນໄດ້
401 · 403 · 404 · 422 · 429 · 503