Domain Prices Not Updating? The 11 Most Common Causes and Fixes

Why Are Domain Prices Not Updating?

Domain prices usually stop updating because of failed automation tasks (cron jobs), outdated or invalid API credentials, exchange-rate issues, caching problems, or registrar synchronization errors — and the fix is almost always one of eleven well-known causes, not a mystery bug.

Quick Answer — Based on support cases handled by the DomainNameAPI team, the majority of pricing sync issues originate from one of three sources: cron jobs that have stopped running, exchange rates that have gone stale, or API credentials that are missing, expired, or unauthorized. Checking these three first resolves most cases — regardless of whether you run WHMCS, WiseCP, HostBill, Blesta, or ClientExec.
Quick Summary — Whatever automation panel you run — WHMCS, WiseCP, HostBill, Blesta, or ClientExec — this guide walks through why domain pricing sync stalls, what's really behind failed domain price updates and broken registrar pricing, and the 11 most common root causes with a fix for each. Once you understand the platform-agnostic logic behind TLD pricing and domain reseller pricing sync, you'll also find pointers to the platform-specific guide for your exact setup.

1. Introduction

If your storefront still shows last month's domain prices, or your numbers don't match what your reseller panel says, the cause is almost always one of a small, predictable set of issues — no matter which automation platform you're running. WHMCS, WiseCP, HostBill, Blesta, and ClientExec all look different on the surface, but the machinery behind price synchronization is fundamentally the same: a scheduled task, an API connection, and a currency/exchange-rate setting.

We'll start by walking through that shared logic, then go cause by cause through the 11 most common failure points and how to fix each one.

2. How Does Domain Price Syncing Actually Work?

Regardless of platform, three components need to work together for a domain price to display correctly on your storefront:

  • The automation job (cron) — pulls current costs from the registrar API on a set schedule.
  • The API connection — handles authentication and data exchange between DomainNameAPI and your panel.
  • The currency/exchange-rate setting — converts the incoming cost into the currency you actually sell in.

Break any one of these three, and prices either freeze, display incorrectly, or stop coming through at all.

3. The 11 Most Common Causes and Fixes

Note: A simple flow diagram — registrar pricing -> API connection -> automation system -> pricing rules -> currency conversion -> final price shown to the customer.

1) The Cron Job Isn't Running — or It's Stuck

WHMCS, WiseCP, HostBill, Blesta, and ClientExec all rely on a scheduled task to pull current pricing. If that task hasn't fired recently, prices stay frozen at whatever they were on the last successful run. A stopped cron service on the server, a PHP memory_limit that's too low and kills the job halfway through, or a previous price-pull that's still locked can all produce the exact same symptom.

The fix: Check your platform's cron/task log and confirm the domain sync job ran within the last 24 hours. Raise PHP's max_execution_time and memory_limit on the server side, and if needed, trigger the cron job manually via SSH/CLI so you can watch the error happen live.
Note: An Automation Status / system health screen showing a "Cron has not run" warning or similar.
Expert Tip — If pricing was working fine yesterday and just stopped today with no config changes on your end, check cron first — it's the single most common cause we see, and the fastest to rule out.

2) Currency Mismatch

If your platform's default currency doesn't match the currency set on your reseller account, prices get calculated incorrectly even when everything else is working fine.

The fix: Align both currencies, then re-trigger the sync.
Note: A currency settings screen showing Base Currency, Additional Currency, and the Exchange Rate field.

3) Outdated, Expired, or Duplicate API Credentials

Old or partially-copied API keys and reseller IDs left sitting in the module config will quietly block new pricing data from reaching your platform. This is especially common right after a provider-side infrastructure migration (v1 -> v2), when leftover credentials from the old panel start throwing silent errors like "Reseller not found" or "Unauthorized" in the background.

The fix: Replace the credentials by typing them in manually — don't rely on copy-paste, which can introduce hidden whitespace or characters — using your current API Key and Reseller ID.
Note: A module/debug log screen showing an error line such as "Unauthorized," "Reseller Not Found," or "Invalid API Key."
Expert Tip — Right after a provider migrates to a new panel or API version, leftover credentials are the number-one cause of pricing going dark. Always regenerate your API key from the new panel rather than reusing anything saved from before the migration.

4) Missing API IP Whitelisting

Most domain API providers only process requests coming from approved IP addresses, for security reasons. A server migration, a firewall change, or your automation system simply using a different outbound IP while cron runs can cause price-update requests to get silently blocked by the API.

The fix: Add your automation server's primary IP address — and its outbound IP, if different — to the IP Whitelist field in your domain provider's panel.

5) Manual Price Overrides

A manually entered price for a specific TLD will override the automated sync for that extension only — and this works the same way regardless of platform.

The fix: Review your TLD-specific pricing rules and remove any overrides you didn't mean to leave in place.
Expert Tip — If pricing suddenly stops updating for just one or two TLDs right after a successful sync, check for a manual TLD override before you go anywhere near the API connection — it's a thirty-second fix and it's overlooked constantly.

6) No Pricing Template or Markup Assigned on the Provider Side

To pull pricing via API, your account needs an active pricing group or template assigned on the provider's side. If your account isn't tied to a standard template, or there's a pricing misconfiguration upstream, the API simply returns an empty schema — and your automation system has nothing to sync.

The fix: Log into your domain provider's reseller panel and check the "My Pricing" or "API Pricing Templates" section to confirm a valid price list is actually assigned to your API user; contact support to verify if you're not sure.

7) TLD-to-Registrar Mapping Errors

Even with the API integration active at the global module level, it's a common configuration mistake to leave the wrong registrar module selected at the individual TLD level. When the system doesn't know which provider to pull a given extension's price from, it simply skips the update.

The fix: Go to your platform's domain pricing/TLD management screen (e.g., WHMCS Domain Pricing or WiseCP's domain extensions list) and check, TLD by TLD, that the correct API module is selected as the Registrar for every extension that isn't updating.
Note: A screen showing the Registrar/Module selector next to a TLD row, set to DomainNameAPI.

8) Outdated Modules Still Running on a Legacy (v1) Architecture

Providers periodically retire older API architectures in favor of newer, microservice-based ones, for performance and security reasons. If you haven't updated your module files in years, they may be quietly calling endpoints that no longer exist — and failing silently.

The fix: Check your provider's knowledge base or documentation for the latest published module package for your platform, and replace your old module files with it.

9) Caching

Your platform or CDN may simply be serving a cached version of the pricing page, even though the underlying price has already updated correctly.

The fix: Clear your application cache, CDN cache, and browser cache, then reload the pricing page.
Expert Tip — When a client insists "the price is wrong" but your admin panel shows the correct number, don't touch the module — open the storefront in a private/incognito window first. Nine times out of ten, it's caching, not sync.

10) Markup Settings Get Reset After an Update

Module updates sometimes silently reset custom markup percentages back to their defaults.

The fix: Re-apply your markup rules every time you update the module.

11) API Rate Limiting

A high volume of requests in a short window can trigger temporary throttling (HTTP 429), which delays or interrupts the price sync.

The fix: Space out bulk sync requests, or use the exponential backoff approach described in our API rate limit policy.
Expert Tip — Bulk-syncing your entire TLD list in one shot right after a migration is the most common way resellers accidentally trigger rate limiting. Sync in smaller batches the first time, then let the regular daily cron take over.

4. Common Error Messages at a Glance

If you're searching for an exact error string, here's the fastest way to match it to a likely cause before you dig into logs:

Error Message Most Likely Cause
Unauthorized Invalid or outdated API key
Reseller Not Found Wrong or leftover Reseller ID
HTTP 429 Rate limiting from too many requests
IP Not Allowed Server IP missing from the whitelist
Currency Update Failed Exchange rate fetch problem

5. Decision Tree: When a Domain Price Looks Wrong

Work through this in order to narrow down the root cause within minutes:

If a domain price looks wrong, work through this in order:

  1. 1) Has the cron / automation task run in the last 24 hours?
  2. - No -> Fix the cron job, trigger it manually, then check again.
  3. - Yes -> Move to step 2.
  4. 2) Is the issue isolated to one TLD, or is it affecting all prices?
  5. - One TLD -> Check for a manual price override or a "closed for sale" (-1.00) field.
  6. - All prices -> Check currency/exchange rate settings and the API connection.
  7. 3) Still unresolved? -> Check the module log/error log (Auth Error, Rate Limit, IP Not Allowed, etc.).

6. Where to Look on Each Platform

The table below shows where to find cron/automation status and currency settings on each platform. For step-by-step instructions specific to your setup, jump to the platform-specific guide.

Platform Where to Check Cron / Automation Currency Settings
WHMCS Automation Status / System Health Status / Cron Activity Setup > Payments > Currencies (newer themes: System Settings > Currencies)
WiseCP Task Manager / Automation Status / Cron Logs Settings > Currency
HostBill Scheduled Tasks / Automation Queue Settings > Currencies
Blesta Settings > Automation Settings > Company > Currencies
ClientExec Scheduled Tasks / Cron Status Admin > Currency Settings

For detailed WHMCS-specific steps, see our WHMCS currency and price sync guide.

For other platforms: WiseCP, HostBill, Blesta, and ClientExec.

7. Best Practices to Avoid This Altogether

  • Check your automation logs daily.
  • Test your API connection on a regular schedule.
  • Periodically confirm exchange-rate updates are actually running.
  • Manually audit price sync once a month.
  • Keep module files current, and track provider-side infrastructure migrations (v1 -> v2).
  • Place a test order after any major update to confirm pricing is correct end to end.
  • Regularly cross-check pricing on your highest-volume TLDs against the provider panel.

8. If You're Using DomainNameAPI

Most of the 11 causes above can be prevented outright with the right setup, thanks to:

  • Centralized price management — manage every TLD's pricing from a single panel
  • API-driven TLD updates — automatic synchronization with no manual intervention required
  • Built-in multi-currency support — native conversion across USD, EUR, TRY, and more
  • Reseller-level pricing templates — different markup groups for your own sub-resellers
  • Advanced logging — detailed records that let you catch sync issues immediately
Domain Reseller — You can try these out for yourself by joining our Domain Reseller program for free.

9. Frequently Asked Questions

1. How do I tell if pricing is broken on every platform I run, or just one?

If you're running more than one automation platform and the issue only shows up on one of them, the root cause is almost always something specific to that platform's setup — typically cron or API credentials. If every platform is affected at once, the issue is more likely on the DomainNameAPI account side — check account status and API access first.

2. Can I update prices manually instead of waiting on automation?

Yes — every platform lets you trigger a manual sync or edit a single TLD's price directly from the domain pricing section. Keep in mind that the next automatic sync can overwrite that manual value unless you've excluded that TLD from auto-sync.

3. Cron is running but prices still aren't updating — what now?

If cron runs but nothing changes, the problem is usually on the API side: an invalid API key, an unauthorized IP, or an insufficient balance. Open your platform's module/system logs and check the error code returned on the request to DomainNameAPI.

4. Some TLDs update fine, others don't — is that normal?

No — this usually means those specific TLDs aren't yet active for sale on your reseller account, or there's a manual price override sitting on that extension. Check the status of those TLDs in your reseller panel.

5. My currency looks correctly configured, but prices are still wrong — why?

This is typically a stale exchange rate or a formatting issue (decimal separator, number of decimal places). Check the current rate and format settings in your platform's currency configuration.

6. Can I catch price sync issues before they become a problem?

Yes. Reviewing your cron/log records weekly, or setting up an alert on a log-monitoring tool for phrases like "sync failed," lets you catch issues before they snowball.

7. Why do prices sometimes reset after a module update?

Module updates can reset custom markup percentages and TLD-specific overrides back to default. It's good practice to check and reapply these settings after every update.

8. How does API rate limiting relate to price sync?

Trying to sync a large number of TLDs at once can trip the API's rate limit (HTTP 429), causing requests to be temporarily rejected and the sync to complete only partially. Spacing requests out, or applying a backoff delay, avoids this.

9. I'm getting "HTTP 429 Too Many Requests" — what should I do?

This means too many requests went out in too short a window and the API is temporarily throttling you. If you're running a bulk sync, add delays between requests and sync large TLD lists in batches rather than all at once.

10. What exactly does an "Unauthorized" error mean?

It means the API key or credentials sent weren't recognized as valid/authorized on the provider's side. The most common cause is an outdated or incorrect API key, or an account that lacks permission for that action. Regenerate the API key and re-enter it in your module settings.

11. Why am I getting a "Reseller Not Found" error?

This means the Reseller ID your module is sending doesn't exist in the provider's system — usually because a Reseller ID left over from an old panel doesn't match the new one. Grab your current Reseller ID from your panel and re-enter it in the module settings.

12. How do I resolve "IP Not Allowed" or "IP Unauthorized"?

This means the request's originating server IP isn't on the provider's IP Whitelist. Add your automation server's main IP (and a separate outbound IP, if one exists) to the IP White List in the provider panel, then wait a few minutes before retrying.

13. How should I clear caching on the pricing page?

Start with your automation platform's own template/system cache (e.g., Clear Templates Cache in WHMCS), then clear your CDN cache if you use one, and finally your browser cache, before reloading the pricing page. The issue is usually sitting in one of these three layers.

14. Is it possible to monitor price sync issues automatically?

Yes. Forward your platform's Activity Log or Module Log entries to an external log-monitoring tool and set alerts for phrases like "sync failed," "Unauthorized," or "Currency Update Failed." That way you find out before it becomes a support ticket.

15. I change my reseller markup strategy often — does that break sync?

Changing your markup/margin settings doesn't break sync by itself, but some module updates can reset those settings to default. After changing your markup strategy, it's worth placing a test order to confirm the end-customer price reflects it correctly.

16. What's a reasonable check schedule for TLD pricing sync?

On top of your daily cron run, reviewing module logs weekly and test-ordering across your full TLD price matrix once a month is enough to catch most issues before they grow into bigger ones.

10. Conclusion

Domain prices failing to update almost always comes down to the same short list of culprits, no matter which platform you're on: a cron job that's stopped or stuck, missing IP authorization, a stale exchange rate, outdated or incorrect API credentials, or a pricing template that was never assigned on the provider's side. Work through the 11 causes and the decision tree in this guide, and you can usually pin down the root cause within minutes rather than hours.

For platform-specific steps, follow the links below to the detailed guide for your setup — and if the issue persists, your module log is the fastest path to a resolution from our support team.