Cliqtel
  • 产品 ▾
    基础设施
    虚拟号码覆盖 70 多个国家的本地、移动和免费号码 SIP 中继适用于任何 PBX 的运营商级 SIP
    通信
    消息双向 SMS 与 WhatsApp 模板 云电话系统可视化呼叫流程、IVR、队列、CRM 弹屏 联络中心高级路由与 AI——抢先体验
    合作伙伴
    Cliqtel Connect面向 MSP 的白标平台
  • 解决方案
  • 价格
  • 文档
  • 关于
🇬🇧 EN 🇳🇱 NL 🇩🇪 DE 🇫🇷 FR 🇪🇸 ES 🇧🇷 PT 🇸🇦 AR 🇨🇳 ZH 🇯🇵 JA 🇮🇳 HI
登录 立即开始
Cliqtel
产品 虚拟号码覆盖 70 多个国家的本地、移动和免费号码 SIP 中继适用于任何 PBX 的运营商级 SIP 消息双向 SMS 与 WhatsApp 模板 云电话系统可视化呼叫流程、IVR、队列、CRM 弹屏 联络中心高级路由与 AI——抢先体验 Cliqtel Connect面向 MSP 的白标平台
覆盖范围 集成 价格 文档与帮助 关于
语言
EN NL DE FR ES PT AR ZH JA HI
登录 免费开始
← Help Center
On this page
Overview Why Local Caller ID 1 — Provision Numbers 2 — Assign to Users 3 — Make Outbound Calls API Automation Multi-Tenant Architecture Best Practices FAQ

SaaS Caller ID — Per-Country Outbound Numbers

Numbers · 10 min read Caller ID API SaaS
What this guide covers: How to provision local numbers per country and assign them as outbound caller IDs for your SaaS platform. Improve answer rates by showing local numbers instead of international or unknown callers. Includes API-based provisioning for multi-tenant architectures.

Overview

When your SaaS platform makes outbound calls (sales, support, notifications), the caller ID shown to the recipient determines whether they answer. Calls from local numbers get 2-3x higher answer rates than calls from international or unknown numbers.

Cliqtel lets you provision local numbers in 70+ countries via API, assign them to users, tenants, or campaigns, and use them as outbound caller IDs on your SIP trunk.

Why Local Caller ID Matters

Caller ID shownAvg. answer rateTrust level
Local number (+49 30...)45-65%High — recognized area code
National number (+49 800...)30-45%Medium — toll-free but impersonal
International number (+1 631...)10-20%Low — unfamiliar country code
No caller ID / "Unknown"5-10%Very low — spam signal

Step 1 — Provision Numbers per Country

1Get local numbers for each country you call into
NODE.JS — SEARCH AND ORDER NUMBERS
// Search for a local number in Germany
const search = await fetch(
  'https://cliqtel.com/api/v1/numbers/search?country=DE&type=local&limit=5',
  { headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
);
const available = await search.json();

// Order the first available number
const order = await fetch('https://cliqtel.com/api/v1/numbers/order', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    numbers: [available.data[0].number],
  }),
});

const result = await order.json();
console.log(result.number, result.status); // "+4930123456", "active"

Step 2 — Assign Numbers to Users or Campaigns

2Map numbers to your platform's users, tenants, or campaigns

Maintain a mapping in your database between Cliqtel numbers and your entities:

DATABASE MAPPING EXAMPLE
caller_id_pool:
  ┌────────────┬───────────────┬──────────┬─────────────┐
  │ did_number  │ country       │ assigned │ entity      │
  ├────────────┼───────────────┼──────────┼─────────────┤
  │ +4930123456│ DE            │ yes      │ tenant:acme │
  │ +33123456  │ FR            │ yes      │ campaign:q4 │
  │ +31201234  │ NL            │ no       │ (pool)      │
  │ +34911234  │ ES            │ yes      │ user:alice  │
  └────────────┴───────────────┴──────────┴─────────────┘

Step 3 — Make Outbound Calls with Local Caller ID

3Use the assigned number as caller ID on outbound calls

When your platform initiates an outbound call via SIP, set the From header to the local number assigned to the caller:

SIP INVITE HEADER
From: <sip:+4930123456@sip.cliqtel.com>
To:   <sip:+4917612345678@sip.cliqtel.com>

Cliqtel validates that the number belongs to your account and routes the call to the PSTN with the correct caller ID displayed.

Important: You can only use numbers that are assigned to your Cliqtel account as outbound caller IDs. Using numbers you don't own will result in the call being rejected.

API Automation

For SaaS platforms with many users or tenants, automate the entire number lifecycle:

NODE.JS — AUTO-PROVISION ON TENANT ONBOARDING
async function onboardTenant(tenant) {
  // For each country the tenant operates in, get a local number
  for (const country of tenant.countries) {
    // Search for available number
    const search = await searchNumbers(country, 'local', 1);

    if (search.data.length > 0) {
      // Order the number
      const number = await orderNumber(search.data[0].number);

      // Assign to tenant's SIP trunk
      await assignToTrunk(number.id, tenant.trunkId);

      // Save mapping
      await db.callerIdPool.create({
        did_number: number.number,
        country: country,
        tenant_id: tenant.id,
      });
    }
  }
}

Multi-Tenant Architecture

For platforms serving multiple clients:

  • Number pool per tenant — each tenant gets their own set of local numbers
  • Dynamic selection — when making a call, pick the number matching the destination country
  • Fallback logic — if no local number for the destination country, use a national number or your primary number
  • Per-tenant billing — Cliqtel bills per number, making cost pass-through straightforward

Best Practices

  • Use city-level numbers (not just country-level) for maximum answer rates
  • Rotate numbers for high-volume outbound to avoid carrier spam flagging
  • Set up CNAM (Caller Name) on each number so recipients see your company name
  • Monitor answer rates per number — if a number gets flagged as spam, replace it
  • Keep a spare number pool for quick replacement if a number gets reported
  • Enable inbound calls on the same numbers so customers can call back

FAQ

Can I use a number from country A to call country B?

Yes. Any Cliqtel number can make outbound calls to any country. However, the caller ID will show the number's country code. For best answer rates, use a number from the same country as your recipient.

How many numbers can I provision?

There's no hard limit. Order as many numbers as you need via the portal or API. Volume discounts are available for 50+ numbers.

What about STIR/SHAKEN?

Cliqtel signs outbound calls with STIR/SHAKEN attestation where supported (US/CA). This helps prevent your calls from being marked as spam by recipient carriers.

Start provisioning caller IDs

Browse numbers in 70+ countries or automate via API.

Browse Numbers →
© 2026 Cliqtel · cliqtel.com
关于我们 博客 合作伙伴 覆盖范围 API 文档 运行状态 隐私 条款 Cookie 帮助 搜索
cliqtel.com 由 Cliqtel B.V. 运营,注册地为荷兰泽斯特 · KVK 42033793 · VAT NL869402468B01 · SBI 62.09

我们使用必要的 Cookie 以确保 Cliqtel 正常运行。在您同意的情况下,我们也会使用分析类 Cookie 以改进我们的服务。Cookie 政策