Domain Management

ProEcommerce integrates with AWS Route53 Domains as the primary registrar, with Namecheap and OpenSRS as alternates. Registrations happen on your AWS account — funds move directly from your Stripe to AWS.

Supported registrars

RegistrarStatusUse case
AWS Route53 DomainsProductionDefault — best integration with Route53 DNS
NamecheapStubAPI wired, pricing not yet loaded
OpenSRS / TucowsPlannedFor international TLD coverage

Registering a new domain

The client-facing flow:

  1. Client enters a domain name in the order form
  2. ProEcommerce checks availability against the registrar's API in real time
  3. If available, the domain is added to the cart at the registrar's price plus your markup
  4. Client pays → Stripe authorizes (but does not capture) the charge
  5. ProEcommerce calls RegisterDomain on the registrar API
  6. On success, the Stripe authorization is captured and the domain activates
  7. On failure, the authorization is voided — the client is never charged
Why the auth-then-capture dance? Domain registration is irreversible but can fail after payment (registrar outage, OCR typo on WHOIS, disputed name). By authorizing first and capturing only on confirmed registration, we guarantee the client is never charged for a domain we couldn't actually buy.

DNS management

Every Route53-registered domain automatically gets a matching hosted zone with default records:

@      A     <tenant default IP or blank>
www    CNAME @
*      A     <tenant default IP or blank>
@      MX    10 mail.yourdomain.com
@      TXT   "v=spf1 ...>"

Clients can edit these records from the portal (restricted to record types you allow). Changes go through the Route53 API and propagate in seconds.

WHOIS privacy

Privacy is available on all supported TLDs where the registry allows it. Toggle it per-domain in the admin dashboard; the change pushes to the registrar via UpdateDomainContactPrivacy. No separate product purchase required — it's included.

Domain transfers (inbound)

To transfer a domain in from another registrar:

  1. Client unlocks the domain at the losing registrar and requests the auth code (EPP key)
  2. They order the transfer in ProEcommerce, entering the auth code
  3. We issue a TransferDomain API call
  4. The registry contacts the losing registrar — typically takes 5–7 days
  5. On completion, the domain appears in the client's portal with a fresh expiry

Renewals

The renewal-invoices cron runs monthly on the 1st and generates invoices for domains expiring in the next 45 days. Clients see the upcoming renewal on their dashboard and can either auto-renew (default) or cancel.

Auto-renewal timing. Route53 pre-charges your AWS account 35 days before expiry. If the client's invoice isn't paid by then, auto-renewal may still fire from AWS, leaving you to recover the cost from the client. Configure the renewal grace window to match your risk tolerance.

Bulk import (existing portfolios)

When you migrate from another registrar or WHMCS, existing domains are imported via sync-domains cron. Matches by domain name create client_id links automatically; unmatched domains park with client_id = NULL and sit in an admin-only "unassigned" view until linked manually.

TLDs supported

Route53 Domains supports ~200 TLDs including all major gTLDs (.com, .net, .org, .io, .co, .dev, .app, .ai, .xyz, .online, .store, .shop) and most ccTLDs. See the full list in the AWS documentation.