Domain Reseller Docs

Developer API

API reseller dipakai untuk membangun integrasi seperti WHMCS, billing internal, client portal, atau automation domain. Buat token dari menu API Token Reseller, lalu kirim token dengan header Bearer.

Authentication

Authorization: Bearer drk_xxxxxxxxxxxxxxxxxxxxx
Accept: application/json

Endpoint Utama

MethodEndpointFungsiAbility
GET/api/reseller/v1/statusStatus akun, wallet, dan ringkasanbilling.read
POST/api/reseller/v1/domains/searchSingle/bulk availability searchdomains.read
GET/api/reseller/v1/domainsDaftar domain userdomains.read
GET/api/reseller/v1/ordersDaftar order userorders.read
POST/api/reseller/v1/orders/registerBuat invoice registrasi domainorders.write
POST/api/reseller/v1/orders/renewBuat invoice renew domainorders.write
POST/api/reseller/v1/orders/transferBuat invoice transfer domainorders.write
PUT/api/reseller/v1/domains/dnsReplace local DNS records, opsional push ke Dynadotdomains.write
POST/api/reseller/v1/domains/dns/pushPush DNS record aktif ke Dynadotdomains.write

Contoh Search

curl -X POST "http://womensweekly.my/api/reseller/v1/domains/search" \
  -H "Authorization: Bearer drk_xxx" \
  -H "Accept: application/json" \
  -d "domains[]=example.com" \
  -d "domains[]=example.net"

Contoh Register Order

curl -X POST "http://womensweekly.my/api/reseller/v1/orders/register" \
  -H "Authorization: Bearer drk_xxx" \
  -H "Idempotency-Key: register-example-com-001" \
  -H "Accept: application/json" \
  -d "domain=example.com" \
  -d "years=1" \
  -d "privacy=full" \
  -d "auto_renew=1"

Endpoint order membuat invoice unpaid. Provisioning registrar baru berjalan setelah invoice berstatus paid melalui wallet payment atau callback Midtrans/Xendit. Untuk endpoint mutasi, gunakan header Idempotency-Key agar retry dari client tidak membuat order/invoice ganda.

Outbound Webhook Reseller

Webhook dapat dibuat dari menu Webhook Reseller. Event yang tersedia: invoice.paid, domain.order.processing, domain.order.completed, domain.order.failed, dan domain.expiring.

X-Webhook-Timestamp: 1780000000
X-Webhook-Signature: sha256=<hmac_sha256(timestamp.raw_body, secret)>

Webhook Payment Gateway

Command Operasional

php artisan domain-reseller:doctor
php artisan domain-reseller:doctor --check-dynadot
php artisan domains:retry-provisioning --status=failed,processing --limit=50
php artisan domains:send-expiry-reminders
php artisan webhooks:retry-failed --limit=100
php artisan queue:work --queue=domain-provisioning,webhooks,default --tries=3 --timeout=120