Domain lifecycle management, custom domain URL configuration, and DNS management
Core domain CRUD operations
Create a new domain with default store and subscription initialization
POST /merchant/api/v1/domains
Domain Controller
Request Body:
{ name, logo, favicon, locale, country, timezone, business_details: { category, module }, store: { name } }
POST /api/domains
Account Service
POST /api/stores
Store Service
POST /api/subscriptions
Subscription Service
POST /api/resources/init
Resource Service (CDN)
List all domains for the authenticated account (paginated)
GET /merchant/api/v1/domains
GET /api/domains
Account Service
Retrieve domain with stores, subscription, and permissions
GET /merchant/api/v1/domains/:domain_id
GET /api/domains/:domain_id
Account Service
GET /api/stores?domain_id=:domain_id
Store Service
GET /api/subscriptions?domain_id=:domain_id
Subscription Service
Delete domain and cascade to stores, subscriptions, resources
DELETE /merchant/api/v1/domains/:domain_id
DELETE /api/domains/:domain_id
Account Service
DELETE /api/resources/:domain_id
Resource Service
DELETE /api/subscriptions/:domain_id
Subscription Service
Link existing domains or purchase new domains
Get custom domain URL config with NS records and status
GET /merchant/api/v1/domains/:domain_id/domain_url
GET /api/domain-url/:domain_id
DNS Service
GET /api/dns/verify/:domain_name
DNS Verification (if check_status=true)
Response includes:
{ id, domain_id, domain_name, domain_connect_type: "link"|"purchase", status: "pending"|"active"|"inactive", ns_records: [...] }
Link existing domain OR purchase new domain with payment
POST /merchant/api/v1/domains/:domain_id/domain_url
Request Body (Link):
{ domain_name: "mystore.com", domain_connect_type: "link" }
Request Body (Purchase):
{ domain_name: "mystore.com", domain_connect_type: "purchase", current_domain_name: "123456.ndh01.com", client_return_url: "https://..." }
POST /api/dns/zones
DNS Service (Create Zone)
POST /api/domains/check
Domain Registry (if purchase)
POST /api/payments/orders
Payment Service (JUSPAY)
Remove custom domain, revert to default platform URL
DELETE /merchant/api/v1/domains/:domain_id/domain_url
DELETE /api/dns/zones/:domain_name
DNS Service
PATCH /api/domains/:domain_id
Account Service (Reset URL)
POST /api/cdn/invalidate
CDN Service
Search for domains available for purchase with pricing
POST /merchant/api/v1/domains/:domain_id/domain_url/search
Request Body:
{ domain_name: "mycompany.com" }
POST /api/domains/search
Domain Registry Service
GET /api/domains/pricing
Pricing Service
Response Array:
[{ domain, period, period_unit, currency, price, buy_price, discount }, ...]
Domains are multi-tenant. Each domain has its own stores, products, and customer base. Custom domain linking requires DNS configuration at registrar.