# Domain Verification BlockBee sends callbacks to your URLs and redirects your customers to them. Domain verification proves that you control the domains those URLs use. Once it applies to your account, BlockBee only accepts these URLs on domains verified for the profile. ## When it applies Enforcement starts on a date BlockBee announces by email. Until then nothing changes, and you can verify your domains ahead of time. The **Domains** page in your dashboard shows whether enforcement applies to your account yet, and from which date. On a shared profile, the profile owner's date applies. ## Verify a domain 1. In your [BlockBee dashboard](https://dash.blockbee.io/), select the profile and open **Profile settings → Domains**. 2. Enter the domain, for example `example.com` or `hooks.example.com`, without `https://`, a port or a path. Click **Add**. 3. At your DNS provider, add the TXT record the page shows: a record on the domain itself with the value `blockbee-verification=`. Many DNS panels take the name relative to your zone, `@` for `example.com` itself or just `hooks` for `hooks.example.com`, so pasting the full name there creates `example.com.example.com`, the usual reason the record isn't found. 4. Click **Verify for this profile**, or **Verify for all my profiles** to verify it on every profile of the account that you manage. DNS changes can take a while to propagate. If the record isn't found yet, try again later. Each account can run one check every 5 seconds. To extend a domain that is already verified to your other profiles, for example a profile you just created, click **Apply to all my profiles**. No new DNS check is needed. You can add up to 50 domains to a profile. ### Subdomains Verifying `example.com` also covers every subdomain, such as `api.example.com` and `hooks.api.example.com`. Verifying `api.example.com` covers that name and its own subdomains only. A subdomain that is a CNAME can't hold a TXT record. Verify its parent domain instead. ### IP addresses IP addresses can't be verified. Once enforcement applies, URLs that point to a bare IP address are refused. Use a domain instead. ### Verification by BlockBee If you can't add a TXT record, contact [support](https://blockbee.io/contacts). BlockBee can verify a domain for you. It shows as **Verified by BlockBee** on the Domains page. ### Delete a domain Deleting a domain removes it from that profile only. Your other profiles keep it. If you add it again, you get a new TXT value, and the old record stops working. ## Which URLs are checked Once enforcement applies, these URLs must be on a domain verified for the profile: - the `callback` of [Create New Payment Address](/api/create-payment-address); - the `notify_url` and `redirect_url` of [checkout payments](/api/create-checkout), and the `notify_url` of [checkout deposits](/api/create-deposit); - the [payout webhook](/webhooks/payout-webhook) URL. Payouts created from the dashboard or the API fail while its domain isn't verified; - the notification and redirect URLs of your subscription service; - the redirect URL of payment links and of your storefront. ## BlockBee's own domains `blockbee.io`, `cryptapi.io`, `swapbee.com`, `beenect.com` and their subdomains are always verified for **redirects**. For example, a redirect to your storefront on `pay.blockbee.io` works without adding anything. You can't add these domains to the list. This applies to redirects only. A callback or webhook URL on one of these domains is still refused. ## Errors Once enforcement applies, a URL on a domain that isn't verified for the profile is refused with: ```text Domain '' is not verified for this profile. Verify it in the BlockBee Dashboard. ``` A URL that points to an IP address is refused with: ```text IP address URLs are not allowed. Use a verified domain. ``` If the check itself fails, the request answers HTTP `503` with the message below. Nothing is wrong with your domain: retry later. ```text Domain verification is temporarily unavailable, please try again later. ``` ## Plugins If you use a plugin such as [WooCommerce](/get-started/woocommerce), [WHMCS](/get-started/whmcs) or another e-commerce integration, verify your shop's domain. The plugin sends its callbacks there.