Ana içeriğe geç
DataSSL Panel v2 Yayında! — Yeni DataSSL Panel v2 ile daha modern, hızlı ve kullanıcı dostu bir deneyim sunuyoruz.Yenilikler:Modern ve responsive ta...
Anasayfa İletişim
v3.0

API Dokümantasyonu

DATASSL Reseller API ile SSL sertifikası yönetimini otomasyona bağlayın

Başlarken

DATASSL Reseller API v3.0, bayi hesabınız üzerinden SSL sertifikası siparişlerini, fatura işlemlerini ve kredi ödemelerini programatik olarak yönetmenizi sağlar.

Gereksinimler
  • Aktif bir bayi hesabı ve tanımlı bayi grubu
  • API anahtarı (bayi panelinizden oluşturabilirsiniz)
  • API erişimi açık olmalı (Panel > API & Entegrasyonlar)

Base URL

https://www.datassl.com/api/reseller/

İstek Formatı

Tüm istekler ve yanıtlar JSON formatındadır.

Content-Type: application/json
Accept: application/json

Genel Yanıt Yapısı

// Başarılı
{
  "success": true,
  "message": "İşlem açıklaması",
  ...data
}

// Hata
{
  "success": false,
  "error": "Hata mesajı"
}

Kimlik Doğrulama

Tüm API isteklerinde aşağıdaki yöntemlerden birini kullanın:

Yöntem 1: X-API-Key Header

X-API-Key: YOUR_API_KEY

Yöntem 2: Bearer Token

Authorization: Bearer YOUR_API_KEY
API Anahtarı Nasıl Alınır?
  1. Bayi panelinize giriş yapın
  2. API & Entegrasyonlar sayfasını açın
  3. "API Anahtarı Oluştur" butonuna tıklayın
  4. Oluşturulan anahtarı güvenli bir yerde saklayın

Tüm Endpoint'ler

Method Endpoint Açıklama
Ürünler
GET /products Ürün listesi (filtre destekli)
GET /products/{id} Ürün detayı + SAN fiyatları
GET /san-pricing/{id} SAN/Wildcard SAN fiyatlandırması
Siparişler
GET /orders Sipariş listesi (filtre destekli)
GET /orders/{id} Sipariş detayı
POST /orders Yeni sipariş oluştur (SAN destekli)
PUT /orders/{id} Sipariş işlemleri (iptal)
SSL Yönetimi
POST /ssl/configure SSL yapılandırma (CSR, DCV, admin bilgileri)
GET /ssl/{order_id} SSL durum sorgulama + doğrulama detayları
POST /ssl/resend-validation Doğrulama e-postasını tekrar gönder
POST /ssl/change-dcv DCV yöntemini değiştir
POST /ssl/reissue Sertifika yeniden düzenle (reissue)
POST /csr/decode CSR decode (domain, org, SAN bilgileri)
Faturalar
GET /invoices Fatura listesi
GET /invoices/{id} Fatura detayı
Kredi & Ödeme
GET /credits Kredi bakiyesi + işlem geçmişi
POST /credits Kredi ile sipariş öde
GET /balance Bakiye ve son işlemler
Sertifika
GET /certificate/{order_id} Sertifika durum bilgisi
GET /certificate/{order_id}/download Sertifika indir (PEM + CA Bundle)
Hesap & İstatistik
GET /account Hesap bilgileri
GET /stats İstatistikler ve grafikler

Ürünler

Grup Bazlı Erişim: API, sadece bayi grubunuza tanımlanmış ürünleri döndürür. Fiyatlar otomatik olarak grup özel fiyatları ile hesaplanır.

Ürün Listesi

GET /products
Filtre Parametreleri
brand Marka filtresi (Sectigo, DigiCert, Thawte...)
type Tür filtresi (ssl, wildcard, multi-domain, code-signing)
validation Doğrulama tipi (dv, ov, ev)
GET /products?brand=Sectigo&type=ssl&validation=dv

Yanıt

{
  "success": true,
  "products": [
    {
      "id": 1,
      "name": "Sectigo PositiveSSL",
      "brand": "Sectigo",
      "type": "ssl",
      "validation_type": "dv",
      "domain_type": "single",
      "list_price": 49.99,
      "list_pricing": { "1": 49.99, "2": 89.99, "3": 119.99 },
      "reseller_price": 12.99,
      "pricing": { "1": 12.99, "2": 22.99, "3": 29.99 },
      "max_years": 3,
      "warranty": "$50,000",
      "san_enabled": false
    }
  ],
  "count": 25,
  "group_id": 1,
  "note": "Sadece grubunuza tanımlanmış ürünler listelenmektedir."
}

Ürün Detayı

GET /products/{id}

Tek ürün için SAN fiyatları, tüm multi-year pricing ve tüm detay bilgileri döner.

SAN Fiyatlandırması

GET /san-pricing/{product_id}

Ürüne ait SAN ve Wildcard SAN fiyatlarını detaylı olarak döndürür.

Siparişler

Sipariş Listesi

GET /orders
Filtre Parametreleri
status Durum filtresi (pending, processing, completed, cancelled)
domain Domain araması
limit Sayfa başına kayıt (maks. 100, varsayılan 50)
offset Başlangıç noktası (sayfalama)
GET /orders?status=pending&limit=20&offset=0

Sipariş Detayı

GET /orders/{id}

Yeni Sipariş Oluştur

POST /orders
Body Parametreleri
product_id * Ürün ID (grubunuzda tanımlı olmalı)
domain * Domain adı (kod imzalama hariç)
period Süre (ay, varsayılan 12). Abonelik süresidir; sertifika geçerliliği maks. 200 gün olup otomatik yenilenir.
san_count Ek SAN sayısı
san_wildcard_count Ek Wildcard SAN sayısı
Otomatik Kredi Ödemesi

Sipariş oluşturulduğunda tutar otomatik olarak kredi bakiyenizden kesilir. Yetersiz bakiye durumunda sipariş oluşturulamaz (HTTP 402).

// Örnek istek
{
  "product_id": 1,
  "domain": "example.com",
  "period": 12,
  "san_count": 2,
  "san_wildcard_count": 0
}

Yanıt

{
  "success": true,
  "message": "Sipariş başarıyla oluşturuldu",
  "order_id": 12345,
  "order_number": "ORD-2026-0042",
  "domain": "example.com",
  "base_price": 49.99,
  "san_total": 15.98,
  "discount_amount": 37.00,
  "total": 28.97,
  "status": "pending",
  "payment_status": "paid",
  "credit_used": 28.97,
  "new_balance": 1221.03,
  "invoice_number": "INV-2026-0078",
  "auto_reissue_enabled": true,
  "max_validity_days": 200,
  "purchase_end_date": "2027-02-14",
  "next_reissue_at": "2026-08-19"
}

Sipariş İptal Et

PUT /orders/{id}
// Body
{ "action": "cancel" }

Sadece pending veya processing durumundaki siparişler iptal edilebilir.

Sipariş Durumları

pending Beklemede (ödeme bekleniyor)
processing İşleniyor
validation_pending Domain doğrulama bekleniyor
pending_configuration Yapılandırma bekleniyor
completed Tamamlandı / Aktif
cancelled İptal edildi
expired Süresi dolmuş

SSL Yönetimi

SSL endpoint'leri sipariş sonrası sertifika yapılandırma, durum sorgulama, DCV değişikliği ve reissue işlemleri için kullanılır.

SSL Yapılandırma

POST /ssl/configure

Sipariş oluşturulduktan sonra CSR ve DCV bilgilerini göndererek SSL sertifikasını yapılandırın.

order_id * Sipariş ID
csr * Certificate Signing Request (PEM)
dcv_method Doğrulama yöntemi: email, http, https, dns (varsayılan: email)
approver_email Onay e-postası (email DCV için)

SSL Durum Sorgulama

GET /ssl/{order_id}

Gerçek zamanlı durum, doğrulama detayları (HTTP/DNS/Email talimatları), SAN doğrulama bilgisi döndürür. Sertifika hazırsa otomatik kaydeder.

DCV Yöntemi Değiştir

POST /ssl/change-dcv
order_id * Sipariş ID
dcv_method * Yeni DCV yöntemi: email, http, https, dns
approver_email Yeni onay e-postası

Doğrulama E-postası Tekrar Gönder

POST /ssl/resend-validation
{ "order_id": 12345 }

Sertifika Yeniden Düzenle (Reissue)

POST /ssl/reissue
Otomatik Yenileme: 198 gün kuralı kapsamında, sertifikanızın geçerlilik süresi dolmadan önce sistem otomatik olarak reissue işlemi gerçekleştirir. Manuel reissue da bu endpoint ile yapılabilir.
order_id * Sipariş ID (aktif sertifika gerekli)
csr Yeni CSR (opsiyonel, boşsa mevcut kullanılır)
dcv_method DCV yöntemi
approver_email Onay e-postası

CSR Decode

POST /csr/decode
{ "csr": "-----BEGIN CERTIFICATE REQUEST-----\n...\n-----END CERTIFICATE REQUEST-----" }

CSR'dan domain, organization, SAN listesi ve diğer bilgileri çıkarır.

198 Gün Kuralı & Otomatik Yenileme

CA/Browser Forum Kararı: 15 Mart 2026 itibarıyla SSL/TLS sertifikaları en fazla 200 gün (~6.5 ay) geçerli olabilir. Kod imzalama (Code Signing) sertifikaları bu kurala tabi değildir.

Nasıl Çalışır?

Müşteri 1 yıllık SSL sertifikası satın aldığında:

  1. Sertifika maks. 200 gün geçerli olarak düzenlenir
  2. Sertifikanın süresinin dolmasına 14 gün kala otomatik olarak yeniden düzenlenir (reissue)
  3. Bu işlem satın alma süresi (1/2/3 yıl) boyunca ek ücret olmadan tekrarlanır

Sipariş Yanıtındaki Yeni Alanlar

auto_reissue_enabled boolean — Otomatik yenileme aktif mi (kod imzalama hariç tüm SSL ürünlerinde true)
max_validity_days integer — Maks. sertifika geçerlilik süresi (gün). Şu an: 200
purchase_end_date string (YYYY-MM-DD) — Abonelik bitiş tarihi (ödeme yapılan sürenin sonu)
next_reissue_at string (YYYY-MM-DD) — Sonraki otomatik yenileme tarihi
reissue_count integer — Bugüne kadar yapılan otomatik yenileme sayısı

Geçerlilik Fazları (Yol Haritası)

TarihMaks. GeçerlilikDurum
15 Mart 2026200 günAktif
15 Mart 2027100 günGelecek
15 Mart 202947 günGelecek

Örnek Senaryo: 1 Yıllık DV SSL

// Sipariş oluşturuldu: 21 Mart 2026
// Abonelik süresi: 1 yıl (21 Mart 2027'ye kadar)

// 1. Sertifika: 21 Mar 2026 → 7 Eki 2026 (200 gün)
// Otomatik reissue: 23 Eyl 2026 (bitiş - 14 gün)
// 2. Sertifika: 23 Eyl 2026 → 11 Nis 2027 (200 gün)
// Abonelik 21 Mar 2027'de bitiyor → reissue yapılmaz

{
  "order_id": 12345,
  "period": 12,
  "auto_reissue_enabled": true,
  "max_validity_days": 200,
  "purchase_end_date": "2027-03-21",
  "next_reissue_at": "2026-09-23",
  "reissue_count": 0,
  "cert_valid_from": "2026-03-21",
  "cert_valid_till": "2026-10-07"
}
Kod İmzalama İstisnası: Code Signing ve EV Code Signing sertifikaları 198 gün kuralından muaftır. Bu ürünlerde auto_reissue_enabled her zaman false döner.

Faturalar

Fatura Listesi

GET /invoices
status Durum filtresi (unpaid, paid, cancelled, sent)
limit Sayfa başı kayıt (maks. 100)
offset Başlangıç noktası

Yanıt

{
  "success": true,
  "invoices": [
    {
      "id": 78,
      "invoice_number": "INV-2026-0078",
      "order_number": "ORD-2026-0042",
      "domain": "example.com",
      "total": 28.97,
      "currency": "USD",
      "status": "unpaid",
      "due_date": "2026-02-21",
      "created_at": "2026-02-14 10:30:00"
    }
  ],
  "pagination": { "total": 156, "limit": 50, "offset": 0 }
}

Fatura Detayı

GET /invoices/{id}

Kredi & Ödeme

USD Bazlı: Tüm kredi bakiyeleri ve işlemler USD cinsinden tutulur.

Kredi Bakiyesi & İşlem Geçmişi

GET /credits
{
  "success": true,
  "balance": 1250.00,
  "currency": "USD",
  "transactions": [
    {
      "id": 45,
      "amount": -28.97,
      "type": "debit",
      "description": "Sipariş ödemesi: ORD-2026-0042",
      "balance_after": 1221.03,
      "created_at": "2026-02-14 10:31:00"
    },
    {
      "id": 44,
      "amount": 500.00,
      "type": "credit",
      "description": "Kredi yükleme",
      "balance_after": 1250.00,
      "created_at": "2026-02-13 09:00:00"
    }
  ],
  "pagination": { "total": 45, "limit": 50, "offset": 0 }
}

Kredi ile Sipariş Öde

POST /credits
// İstek
{ "order_id": 12345 }

// Yanıt
{
  "success": true,
  "message": "Ödeme başarıyla alındı",
  "order_id": 12345,
  "amount_paid": 28.97,
  "new_balance": 1221.03
}
Yetersiz bakiye durumunda hata döner. Ödeme öncesi bakiye kontrolü yapmanız önerilir.

Bakiye Sorgula (Kısa)

GET /balance

Son 10 işlem ile birlikte bakiye bilgisini döndürür.

Sertifika

Sertifika Durumu

GET /certificate/{order_id}
{
  "success": true,
  "certificate": {
    "order_id": 12345,
    "domain": "example.com",
    "product": "Sectigo PositiveSSL",
    "brand": "Sectigo",
    "status": "completed",
    "valid_from": "2026-03-21",
    "valid_till": "2026-10-07",
    "has_certificate": true,
    "has_ca_bundle": true,
    "days_remaining": 200,
    "is_expired": false,
    "auto_reissue_enabled": true,
    "max_validity_days": 200,
    "next_reissue_at": "2026-09-23",
    "purchase_end_date": "2027-03-21",
    "reissue_count": 0
  }
}

Sertifika İndir

GET /certificate/{order_id}/download
{
  "success": true,
  "certificate": {
    "domain": "example.com",
    "valid_from": "2026-03-21",
    "valid_till": "2026-10-07",
    "certificate_pem": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----",
    "ca_bundle": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----",
    "private_key_note": "Private key sipariş oluşturulurken size iletilmiştir."
  }
}

İstatistikler

GET /stats

Bayi hesabınıza ait kapsamlı istatistikleri ve grafik verileri döndürür.

{
  "success": true,
  "stats": {
    "total_orders": 156,
    "active_orders": 89,
    "pending_orders": 3,
    "total_revenue": 15420.00,
    "monthly_revenue": 2340.00,
    "credit_balance": 1250.00
  },
  "charts": {
    "daily_sales": [
      { "date": "2026-02-13", "orders": 5, "revenue": 245.50 },
      { "date": "2026-02-14", "orders": 3, "revenue": 189.97 }
    ],
    "brand_distribution": [
      { "brand": "Sectigo", "count": 78 },
      { "brand": "DigiCert", "count": 45 }
    ],
    "status_distribution": {
      "completed": 89,
      "pending": 3,
      "processing": 5,
      "cancelled": 12
    }
  }
}

Hesap Bilgileri

GET /account
{
  "success": true,
  "reseller": {
    "id": 42,
    "name": "Bayi Adı",
    "email": "bayi@example.com",
    "company": "Örnek Şirket Ltd.",
    "discount_rate": 30.0,
    "credit_balance": 1250.00,
    "stats": {
      "order_count": 156,
      "total_revenue": 15420.00
    }
  }
}

Hata Kodları

Kod Anlam Açıklama
400 Bad Request Geçersiz veya eksik parametreler
401 Unauthorized Geçersiz API anahtarı veya API erişimi kapalı
403 Forbidden Bayi grubu tanımsız veya ürüne erişim yok
404 Not Found Kaynak bulunamadı (sipariş, sertifika)
405 Method Not Allowed HTTP metodu bu endpoint için desteklenmiyor
500 Server Error Sunucu hatası

Hata Yanıtı

{
  "success": false,
  "error": "Yetersiz bakiye. Gerekli: $28.97 Mevcut: $10.00"
}

Kod Örnekleri

<?php
class DataSSLClient {
    private $apiKey;
    private $baseUrl = 'https://www.datassl.com/api/reseller';

    public function __construct($apiKey) {
        $this->apiKey = $apiKey;
    }

    private function request($method, $endpoint, $data = null) {
        $ch = curl_init($this->baseUrl . $endpoint);
        curl_setopt_array($ch, [
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_HTTPHEADER => [
                'Content-Type: application/json',
                'X-API-Key: ' . $this->apiKey
            ]
        ]);
        if ($method === 'POST') {
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
        }
        if ($method === 'PUT') {
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
        }
        if ($method === 'DELETE') {
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
        }
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
        return json_decode($response, true);
    }

    // Ürünler
    public function getProducts($filters = []) {
        $query = $filters ? '?' . http_build_query($filters) : '';
        return $this->request('GET', '/products' . $query);
    }

    public function getProduct($id) {
        return $this->request('GET', '/products/' . $id);
    }

    // Siparişler
    public function getOrders($filters = []) {
        $query = $filters ? '?' . http_build_query($filters) : '';
        return $this->request('GET', '/orders' . $query);
    }

    public function createOrder($data) {
        return $this->request('POST', '/orders', $data);
    }

    public function cancelOrder($id) {
        return $this->request('PUT', '/orders/' . $id, ['action' => 'cancel']);
    }

    // Faturalar
    public function getInvoices($status = '') {
        $query = $status ? '?status=' . $status : '';
        return $this->request('GET', '/invoices' . $query);
    }

    // Kredi
    public function getCredits() {
        return $this->request('GET', '/credits');
    }

    public function payWithCredit($orderId) {
        return $this->request('POST', '/credits', ['order_id' => $orderId]);
    }

    // Sertifika
    public function getCertificateStatus($orderId) {
        return $this->request('GET', '/certificate/' . $orderId);
    }

    public function downloadCertificate($orderId) {
        return $this->request('GET', '/certificate/' . $orderId . '/download');
    }

    // Hesap & İstatistik
    public function getAccount() { return $this->request('GET', '/account'); }
    public function getBalance() { return $this->request('GET', '/balance'); }
    public function getStats()   { return $this->request('GET', '/stats'); }
}

// ─── Kullanım Örnekleri ───

$client = new DataSSLClient('YOUR_API_KEY');

// 1. Ürünleri listele
$products = $client->getProducts(['brand' => 'Sectigo', 'type' => 'ssl']);

// 2. Sipariş oluştur (kredi bakiyesinden otomatik kesilir)
$order = $client->createOrder([
    'product_id' => 1,
    'domain' => 'example.com',
    'period' => 12,
    'san_count' => 2
]);

// 3. Sipariş zaten ödenmiş, SSL yapılandırabilirsiniz
if ($order['success']) {
    echo "Sipariş: " . $order['order_number'] . "\n";
    echo "Tutar: $" . $order['total'] . "\n";
    echo "Kalan bakiye: $" . $order['new_balance'] . "\n";
}

// 4. Sertifika indir
$cert = $client->downloadCertificate(12345);
if ($cert['success']) {
    file_put_contents('certificate.pem', $cert['certificate']['certificate_pem']);
    file_put_contents('ca-bundle.pem', $cert['certificate']['ca_bundle']);
}
?>
import requests

class DataSSLClient:
    def __init__(self, api_key):
        self.api_key = api_key
        self.base_url = 'https://www.datassl.com/api/reseller'
        self.headers = {
            'Content-Type': 'application/json',
            'X-API-Key': api_key
        }

    def get_products(self, **filters):
        return requests.get(f'{self.base_url}/products', params=filters, headers=self.headers).json()

    def create_order(self, data):
        return requests.post(f'{self.base_url}/orders', json=data, headers=self.headers).json()

    def cancel_order(self, order_id):
        return requests.put(f'{self.base_url}/orders/{order_id}', json={'action': 'cancel'}, headers=self.headers).json()

    def get_invoices(self, status=''):
        params = {'status': status} if status else {}
        return requests.get(f'{self.base_url}/invoices', params=params, headers=self.headers).json()

    def pay_with_credit(self, order_id):
        return requests.post(f'{self.base_url}/credits', json={'order_id': order_id}, headers=self.headers).json()

    def get_certificate(self, order_id):
        return requests.get(f'{self.base_url}/certificate/{order_id}', headers=self.headers).json()

    def download_certificate(self, order_id):
        return requests.get(f'{self.base_url}/certificate/{order_id}/download', headers=self.headers).json()

    def get_stats(self):
        return requests.get(f'{self.base_url}/stats', headers=self.headers).json()

    def get_balance(self):
        return requests.get(f'{self.base_url}/balance', headers=self.headers).json()

# ─── Kullanım ───
client = DataSSLClient('YOUR_API_KEY')

# Ürünleri listele
products = client.get_products(brand='Sectigo', type='ssl')
for p in products.get('products', []):
    print(f"{p['name']} - ${p['reseller_price']}")

# Sipariş oluştur + öde
order = client.create_order({
    'product_id': 1,
    'domain': 'example.com'
})

if order['success']:
    payment = client.pay_with_credit(order['order_id'])
    print(f"Ödendi: ${payment['amount_paid']} | Bakiye: ${payment['new_balance']}")

# İstatistikler
stats = client.get_stats()
print(f"Bu ay gelir: ${stats['stats']['monthly_revenue']}")
const axios = require('axios');

class DataSSLClient {
    constructor(apiKey) {
        this.client = axios.create({
            baseURL: 'https://www.datassl.com/api/reseller',
            headers: { 'Content-Type': 'application/json', 'X-API-Key': apiKey }
        });
    }

    async getProducts(filters = {}) {
        return (await this.client.get('/products', { params: filters })).data;
    }

    async createOrder(data) {
        return (await this.client.post('/orders', data)).data;
    }

    async cancelOrder(id) {
        return (await this.client.put(`/orders/${id}`, { action: 'cancel' })).data;
    }

    async getInvoices(status = '') {
        return (await this.client.get('/invoices', { params: { status } })).data;
    }

    async payWithCredit(orderId) {
        return (await this.client.post('/credits', { order_id: orderId })).data;
    }

    async getCertificate(orderId) {
        return (await this.client.get(`/certificate/${orderId}`)).data;
    }

    async downloadCertificate(orderId) {
        return (await this.client.get(`/certificate/${orderId}/download`)).data;
    }

    async getStats() { return (await this.client.get('/stats')).data; }
    async getBalance() { return (await this.client.get('/balance')).data; }
    async getAccount() { return (await this.client.get('/account')).data; }
}

// ─── Kullanım ───
(async () => {
    const client = new DataSSLClient('YOUR_API_KEY');

    // Ürünler
    const { products } = await client.getProducts({ brand: 'Sectigo' });
    products.forEach(p => console.log(`${p.name} - $${p.reseller_price}`));

    // Sipariş + Ödeme
    const order = await client.createOrder({
        product_id: 1, domain: 'example.com',
        san_count: 2
    });

    if (order.success) {
        const payment = await client.payWithCredit(order.order_id);
        console.log(`Ödendi: $${payment.amount_paid}`);
    }

    // İstatistik
    const stats = await client.getStats();
    console.log(`Toplam sipariş: ${stats.stats.total_orders}`);
})();
# ─── Ürünler ───
curl -X GET "https://www.datassl.com/api/reseller/products?brand=Sectigo&type=ssl" \
  -H "X-API-Key: YOUR_API_KEY"

# ─── Sipariş Oluştur ───
curl -X POST "https://www.datassl.com/api/reseller/orders" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "product_id": 1,
    "domain": "example.com",
    "san_count": 2
  }'

# ─── Sipariş İptal ───
curl -X PUT "https://www.datassl.com/api/reseller/orders/12345" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{ "action": "cancel" }'

# ─── Faturalar ───
curl -X GET "https://www.datassl.com/api/reseller/invoices?status=unpaid" \
  -H "X-API-Key: YOUR_API_KEY"

# ─── Kredi ile Öde ───
curl -X POST "https://www.datassl.com/api/reseller/credits" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{ "order_id": 12345 }'

# ─── Sertifika Durumu ───
curl -X GET "https://www.datassl.com/api/reseller/certificate/12345" \
  -H "X-API-Key: YOUR_API_KEY"

# ─── Sertifika İndir ───
curl -X GET "https://www.datassl.com/api/reseller/certificate/12345/download" \
  -H "X-API-Key: YOUR_API_KEY"

# ─── İstatistikler ───
curl -X GET "https://www.datassl.com/api/reseller/stats" \
  -H "X-API-Key: YOUR_API_KEY"

# ─── Bakiye ───
curl -X GET "https://www.datassl.com/api/reseller/balance" \
  -H "X-API-Key: YOUR_API_KEY"

# ─── Hesap Bilgileri ───
curl -X GET "https://www.datassl.com/api/reseller/account" \
  -H "X-API-Key: YOUR_API_KEY"

WHMCS Modülü

WHMCS üzerinden DATASSL ürünlerini kolayca satabilirsiniz. Addon + Server modül yapısı ile tam entegrasyon.

WHMCS Addon + Server Module v5.8.0

Tam yönetim paneli, ürün oluşturucu, sipariş senkronizasyonu ve otomatik provizyon.

  • WHMCS 7.x / 8.x / 9.x uyumlu
  • Addon Panel: Ürün oluşturucu, sipariş yönetimi, istatistikler
  • Toplu ürün ekleme ve otomatik fiyatlandırma
  • Cron ile otomatik sipariş senkronizasyonu
  • Admin ve müşteri arayüzü
  • Sunucu ekleme gerektirmez - API gömülü gelir

Kurulum

  1. ZIP dosyasını indirin ve açın
  2. İki klasörü WHMCS dizininize kopyalayın:
    • modules/addons/datassl → Addon paneli
    • modules/servers/datassl → Provizyon modülü
  3. WHMCS Admin → Setup → Addon Modules → "DATASSL SSL Certificates" → Activate
  4. Access Control'dan admin rollerini seçin
  5. Addons → DATASSL → Ürün Oluşturucu ile ürünleri ekleyin
Sunucu ekleme, API anahtarı girişi gerektirmez. API bilgileri modül içinde gömülü olarak gelir.