Pricing / TLDs

Pick initial TLDs: .com, .net, .co, .io, .ai.

Confirm wholesale pricing so we can set your retail price.

Contacts / Compliance

Make sure WHOIS email verification is enabled.

Grab any legal/ICANN notice text you must show at checkout.

2) Configure IBrandBiz (env/secrets)

Add these to your backend secrets:

OPENSRS_MODE=ote                # ote (test) or live
OPENSRS_USER=xxxxxxxx           # your reseller username
OPENSRS_KEY=xxxxxxxxxxxxxxxx    # API key you generated
OPENSRS_BASE=https://horizon.opensrs.net:55443    # OT&E base; swap to live later
# Optional defaults
DOMAIN_DEFAULT_YEARS=1
DOMAIN_DEFAULT_NAMESERVERS=ns1.opensrs.net,ns2.opensrs.net   # or your own

3) Add the provider adapter (files to create)

server/domains/providers/types.ts – Registrar interface

server/domains/providers/opensrs.ts – OpenSRS adapter

server/routes/domains.ts – Express routes: search, order

server/jobs/registerDomain.ts – worker to call register after Stripe

server/routes/stripeWebhook.ts – handle checkout.session.completed

client/pages/FindDomain.tsx – use our APIs, keep checkout on IBrandBiz

(If you’ve got a different structure, same idea—these are just clear targets for Replit to implement.)

4) Minimal API contracts (IBrandBiz)

Search

POST /api/domains/search
{ "query": "cafemojo" }
→
{
  "hits": [
    { "domain":"cafemojo.com","available":true,"priceCents":1299 },
    { "domain":"cafemojo.net","available":false }
  ]
}


Create order (Stripe)

POST /api/domains/order
{ "domain":"cafemojo.com","years":1, "privacy":true, "contact":{...} }
→ { "checkoutUrl": "https://checkout.stripe.com/..." , "orderId":"ord_123" }


Stripe webhook → enqueue register job

On success, call OpenSRS SW_REGISTER.

Update order status → active | failed.

Show status page at /domains/orders/:id.

5) What to give Replit right now (prompt)

“Wire OpenSRS (OT&E) using env above, implement:

POST /api/domains/search → OpenSRS lookup

POST /api/domains/order → Stripe Checkout session + DB row

/api/stripe/webhook → on paid, run registerDomain (OpenSRS SW_REGISTER)

Status page /domains/orders/:id with polling.

Use OpenSRS DNS by default; WHOIS privacy toggle on.

Collect ICANN-required registrant fields at checkout.

Handle race: if domain taken between pay & register → mark failed + auto-refund (or credit) and show alternatives.”

6) Quick test plan (OT&E)

Search cafemojo → see .com/.net results.

Order cafemojo.com (test price) → Stripe test card 4242 4242 4242 4242.

Webhook fires → job runs → OpenSRS returns success.

Status page flips to Active and shows nameservers + expiry.

7) Later polish

Retail pricing table & promos.

Renewals, auto-renew toggle.

Transfer in/out (EPP code), DNS editor.

Bundle upsells (email, SSL, hosting) once Brand Kit is done.