Негізгі мазмұнға өту
DigiCert, Sectigo және GeoTrust SSL сертификаттары
+90 850 259 76 06 WhatsApp Қолдау Дилер болу Дилер API
SSL сертификаттары
Брендтер
Кодқа қол қою Entrust HSM Thales HSM LEI коды
Құралдар
Қолдау Байланыс WhatsApp Себет
Тіл
Валюта
SSL сертификатын алу
DATASSL › Developers › Installation guide

Модульді орнату нұсқаулығы

Install the DATASSL module on your WHMCS, WiseCP or WordPress/WooCommerce site and sell SSL and code signing certificates at your own price while buying at your reseller price. The module is downloaded with your API key embedded.

WHMCS 7 · 8 · 9WiseCPWordPress · WooCommerce

Before you start

1Reseller account

You need an approved reseller account. If you do not have one, apply to become a reseller.

2API key

Create a key on the API page of the reseller panel. It is required to download a module.

3Баланс

Orders are paid from your balance. When your customer pays, the order is placed automatically; if the balance is insufficient, no order is created.

ПлатформаТалаптар
WHMCSWHMCS 7.x, 8.x or 9.x · PHP 7.2+ (PHP 8 supported) · cURL and JSON extensions
WiseCPCurrent WiseCP · PHP cURL extension
WordPressWordPress 5.8+ · WooCommerce · PHP 7.3+

Which module?

WHMCSWiseCPWooCommerce
Automatic product import✓Price calculator✓
Margin percentage✓✓✓
1 / 2 / 3 year prices✓✓✓
Automatic order after payment✓✓✓
CSR, validation and download in the client area✓✓✓
Cancel and reissue✓✓✓

Step-by-step setup

  1. Download. Sign in with your reseller account and download the WHMCS module.
  2. Upload. Extract the zip in the WHMCS root. This creates modules/servers/datassl (provisioning module) and modules/addons/datassl (admin addon).
  3. Activate. In WHMCS › System Settings › Addon Modules, activate DATASSL and give your admin role access.
  4. Import products. In Addons › DATASSL › Product Creator, select products, enter your margin and import. Prices are converted to your WHMCS currencies using the USD rate.
  5. Add the cron (recommended). Order statuses and certificates are synced regularly:
crontab
0 */6 * * * php /home/user/public_html/whmcs/modules/addons/datassl/cron.php
Check: create a test order in WHMCS and run Create from "Module Commands". The order should appear in your DATASSL reseller panel and the amount should be charged to your balance.

Prices and margin

Modules use your reseller price from the API (USD, excluding VAT). Selling price = reseller price × (1 + margin) × exchange rate. 2- and 3-year prices are calculated from the real multi-year reseller price in the API.

Example1 жыл2 жыл3 жыл
Your reseller price (USD)10.0018.0025.00
With a 30% margin (USD)13.0023.4032.50
  • Certum products are sold for 1 year only; the modules offer only 1 year for them.
  • At order time your balance is charged the reseller price at that moment. Reseller prices can change, so update your prices regularly.

Code signing differences

Code signing certificates are configured differently from SSL. The modules apply the difference automatically:

SSLКодқа қол қою
ДоменМіндеттіЖоқ
CSRМіндеттіNone (for cloud products the key is in the CA's HSM)
ТексеруDomain (email, HTTP, DNS)Company validation
Asked at checkoutDomain, validation methodCompany name and contact details

Updating

Download the new version from the same link and upload it over the existing files. Your settings and imported products are kept. Follow API changes in the "Changelog" section of the API documentation.

ModuleCurrent version
WHMCS5.11.0
WiseCP2.3.0
WordPress / WooCommerce6.4.0

Ақауларды жою

SymptomFix
Product list is emptyCheck that the API key is active and your account is assigned to a reseller group.
Order not created, "Insufficient balance"Top up your balance in the reseller panel, then resend the order.
401 errorIf the key was regenerated, download the module again or enter the new key in the settings.
Server cannot connectCheck that your server can make outbound connections on port 443 and that the cURL extension is enabled.

Error codes

Modules show errors as [CODE] message (ref: …): in WHMCS on the service page and in Utilities → Logs → Module Log, in WiseCP on the order detail, in WooCommerce in the order notes. Find the code in the table below; if it is not solved, open a support ticket with the ref value.

КодMeaning and fix
AUTH_MISSING HTTP 401API key missing
Send the X-API-Key header or Authorization: Bearer <key>. In the module, check that the API key field is filled in.
AUTH_INVALID HTTP 401API кілті жарамсыз немесе API қолжетімділігі өшірулі
Copy the key again from the reseller panel (Account → API) with no leading/trailing spaces. If you regenerated the key, update it in the module too. If API access is disabled, contact us.
RESTRICTED_REGION HTTP 403Certificates are not issued for this country or domain
Certificate authorities do not issue certificates for Russia, Belarus, Iran, Cuba, North Korea, Syria or Venezuela, or for those countries' domain extensions. Use a different domain.
RESELLER_GROUP_MISSING HTTP 403No reseller group assigned
Your account has no reseller group, so you cannot buy products. Contact us to have a group assigned.
ENDPOINT_NOT_FOUND HTTP 404Unknown endpoint
Check the path and method (GET/POST). Send GET /api/reseller for the endpoint list. Update the module if it is an old version.
METHOD_NOT_ALLOWED HTTP 405Method not allowed
Use the method shown in the docs for this endpoint (e.g. POST /orders to create an order).
MISSING_FIELD HTTP 400Required field missing
Send the field named in the error message (product_id, domain, order_id, csr, contact_email…). For a JSON body, use the Content-Type: application/json header.
VALIDATION_ERROR HTTP 422Invalid value
Fix the value of the field in the message to match the format in the docs.
INVALID_ACTION HTTP 400Invalid action
Send a supported action (e.g. action: cancel).
PRODUCT_NOT_FOUND HTTP 404Өнім табылмады
The product is disabled or not in your reseller group. Get the current list with GET /products; run "Refresh / import products" in the module.
ORDER_NOT_FOUND HTTP 404Тапсырыс табылмады
The order id is wrong or belongs to another account. Check the order id stored on the service in the module.
INVOICE_NOT_FOUND HTTP 404Шот-фактура табылмады
Check the invoice id in the GET /invoices list.
ORDER_STATE_INVALID HTTP 409Order is not in a valid state for this action
Check the order status with GET /orders/{id}. Cancel works only on pending orders; reissue only on active certificates.
ALREADY_CONFIGURED HTTP 409Order already configured
A CSR was already submitted for this order. Track it with GET /orders/{id}; use reissue to change it.
ALREADY_PAID HTTP 409Order already paid
No further action is needed.
USB_TOKEN_NOT_OFFERED HTTP 400USB token not offered for this product
Send usb_token only for code signing products whose usb_token_price is set. Do not send it for cloud products.
CERTIFICATE_NOT_READY HTTP 404Certificate not ready yet
The certificate can be downloaded once validation is complete. Track it with GET /orders/{id} and make sure the DCV step is done.
NOT_SUPPORTED HTTP 501Action not supported
Create a new order to renew (POST /orders). For actions not supported for this product, open a support ticket.
INSUFFICIENT_BALANCE HTTP 402Insufficient balance
Top up your balance in the reseller panel (Account → Add funds), then retry. The module does not retry automatically.
CREDIT_LIMIT_EXCEEDED HTTP 402Credit limit exceeded
Pay your open invoices or contact us to raise your credit limit.
PAYMENT_REQUIRED HTTP 402Payment required first
Pay the order first (POST /payments or the reseller panel), then configure it.
PAYMENT_FAILED HTTP 500Payment could not be processed
Retry in a few minutes; if it persists, contact us with the request_id.
CSR_INVALID HTTP 400Invalid CSR
The CSR must start with "-----BEGIN CERTIFICATE REQUEST-----" and be copied completely. Use at least a 2048-bit RSA or an ECC key; the CN must match the domain. You can check it with POST /csr/decode.
DCV_METHOD_INVALID HTTP 400Invalid DCV method
Valid methods: email, http, https, dns. For email, send approver_email.
CODESIGN_ORDER_NOT_FOUND HTTP 404Code signing order not found
Document upload is only for code signing orders; check the order id.
DOCUMENT_INVALID HTTP 422Document rejected
Send PDF, JPG or PNG, max 10 MB. content_base64 must be valid base64.
SUBSCRIPTION_ERROR HTTP 422Subscription request failed
Fix the reason in the message (e.g. contact_email). If the subscription is not found, check the order id.
PROVIDER_ERROR HTTP 502The certificate authority rejected the request
Check the reason in the message (e.g. domain, CSR, organization details). Fix and retry; if it persists, contact us with the request_id.
INTERNAL_ERROR HTTP 500Сервер қатесі
Retry in a few minutes. If it persists, open a support ticket with the request_id so we can trace it.

Connection errors (before reaching the API)

ХабарламаMeaning and fix
cURL 6 / 7 / 28Your server cannot reach the API (DNS, firewall or timeout).
Check that the API URL is https://www.datassl.com/api/reseller. Outbound port 443 must be open; ask your host to confirm curl access.
cURL 35 / 60SSL/TLS handshake or CA bundle error.
Update the CA bundle (ca-certificates) and OpenSSL on your server; check curl.cainfo in PHP.
Invalid JSON responseSomething other than the API answered (wrong URL, proxy or firewall).
Check that the API URL ends in /api/reseller and uses https, not http.
HTTP 429Too many requests.
Increase the sync (cron) interval; do not run several crons at once.

ЖҚС

Can I move my API key to another site?

Yes, but use the key only on servers you trust. If in doubt, regenerate it in the panel and download the module again.

Who sets the selling price?

You do. The modules add the margin you enter on top of your reseller price.

I have my own software, no module.

You can integrate directly using the example in the "Sell on your site" section of the API documentation.