Only this pageAll pages
Powered by GitBook
1 of 25

Verified Business APIs

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Getting Started

Welcome to the API Documentation for our Verified Business Caller ID Solution!

In this you'll find everything you need to seamlessly integrate our APIs into your systems. Our clear, step-by-step guides and detailed references are designed to help you streamline your processes, enhance customer interactions, and drive operational efficiency. Explore the documentation and unlock the full potential of our solution today.

API URLs to be used

Base URL : https://enterprise-portal-noneu.truecaller.com

Note: The above URL is for API requests only. The corresponding frontend web application URL where you can log in and verify the data is https://business.truecaller.com/signin

Authentication

This page provides the steps to generate the Key ID and Secret API Key.

Generate API Keys

API keys are used to ensure the authenticity of interactions between your application and Truecaller for Business APIs.A maximum of 10 tokens can be created every 30 minutes.

  1. Truecaller for Business uses API keys for authenticating API requests.

  2. You can view and manage your API keys from the True caller for Business console.

  3. Click on “Manage API Keys” from the overflow menu beside the account name in the left hand side panel of the console.

  4. Click on the “Create API Key” button.

  5. Enter the Key Name and Description (optional). You can see the access level underneath the description box for all available features.

  6. Click on “Generate”. This will take you to the screen which has the option to copy/save the Key ID and Secret API Key. This file should be downloaded and kept securely.

A total of 5 API Keys can be configured under a customer account at a given point in time.

Customers will not be able to see the secret key and key ID once generated. It is advised that you should copy the secret key and key ID and save it in a safe and secure folder. In case if you have failed to secure the secret key and key ID ,there is an option to regenerate the secret key and key ID using the regenerate option on the Manage API Keys Page

Number Management

Businesses can efficiently automate the management of their Truecaller business numbers using our comprehensive Number Management APIs.

These APIs offer a robust set of features to streamline various tasks, including:

  • Listing Verified Numbers: Register and display your business numbers as verified on the Truecaller platform.

  • Delisting Numbers: Easily remove numbers that are no longer in use, ensuring accuracy and relevance.

  • Retrieving Verified Number Information: Access detailed information about your verified numbers.

  • Managing Feature Sets: Obtain Feature Set IDs to organise and control numbers within specific feature sets.

By leveraging these APIs, businesses can significantly simplify and automate their number ownership and management processes, ensuring that their Truecaller profiles are always accurate and up-to-date.

When you use our APIs to list or delist a number, these operations are asynchronous. This means they don't happen instantly; there's a processing period.

It's important to know that if you try to delist a number and then immediately list the same number while the delisting is still being processed (i.e., it hasn't been fully delisted or failed), your subsequent listing request for that number will be ignored. It won't be picked up for processing until the initial delisting action is complete.

Webhooks

To help you stay informed about events related to the features in your enterprise plan, you can easily configure Webhooks (also known as HTTP callbacks) directly on our Self-serve platform. This ensures your systems are automatically notified, keeping you seamlessly updated.

Webhooks are currently available for two key features: Call Me Back and User Feedback.

Should you wish to learn more about how webhooks can benefit your operations, please don't hesitate to contact us at: [email protected]. We'd be happy to assist you!

Generate Access Token

This API is used to generate an access token using the Key ID and Secret API Key created from the Manage API Keys page

Validity of the auth token is 60min ,post that we need to recall the API for fresh auth token value.

Replace the {{BaseURL}} with the one mentioned here

POST {{BaseURL}/clients/{clientAccountId}/token

{clientAccountId} : This can be taken directly from the self serve portal under the Manage API Keys Page

Headers

Name
Value
Description

X-Public-Access

allow

Required

Body

Name
Type
Description

api_key

string

Required API key from the Manage API Keys Page

key_id

string

Required Key ID from the Manage API Keys Page

Request

{
    "key_id": "aaaee1b1-7a2f-4c0b-8271-4e2b41c1bf01",
    "api_key": "caf1694e-b8a4-4082-82fc-105a0a63eafe"
}

Response

{
    "token": "a4p0pZ2x3aEk9TYGxPZldm0qvWQknTXTINPZxNpIZ32yWmiOFtGqv2mEU7nJlQO6",
    "created_at": "2025-07-10T06:59:05.72Z"
}
{
    "slug": "invalid-input",
    "message": "api_key is required"
}

Call Personalisation

Build secure and personalized calling experiences with end to end authentication of every call. Deliver personalized context and identity with APIs that seamlessly integrate into your existing calling infrastructure.

Here are some use cases for Call Personalisation APIs:

  • Enhance your Verified Business identity by making every call secure with call-by-call assurance through an automated signing process.

  • Calling operations done through non-company owned numbers where a permanent identity cannot be listed.

  • Scheduled calling operations that are run daily, where your business wants to add a clean identity and personalized call context for optimal performance.

  • Calls often made from one business number to multiple users.

  • Refreshing your identity on Truecaller easily, if your business has limited calling numbers.

Pre-requisites for using Call Personalisation APIs:

  • : Only “Dynamic Label IDs” can be used in the API request for placing calls.

  • A subscription to a package that includes Call Personalisation APIs.

Integration steps:

  • .

  • .

  • Create a dynamic label on Truecaller for Business console:

    • Log in to the Truecaller for Business console.

    • Navigate to Business Identity in the left hand side panel.

    • Click on "Identity" and then go to the Caller ID Details section.

    • Click on "Create a Label".

    • Select the caller ID type as Dynamic Caller ID.

    • Add a logo for your dynamic caller ID. The logo should be a PNG file, with dimensions 200x200 and file size less than 2 MB.

    • Add a label name of less than 40 characters for your Dynamic Caller ID.

    • Choose the category for your business from the dropdown after creating a label name.

    • Click on "Create Caller ID' to finish creating your dynamic caller ID.

  • Check the status of pushed records.

  • Hit the dialer and place the call.

If your business is interested in knowing more about Call Personalisation APIs, please reach out to -> [email protected]

Call Reason Errors

You can find explanations for errors related to Call Reason in this section.

  1. Invalid input: The issue is with the request payload. Please check if the request body is well-formed, the key names and values are as per the API documentation. Special characters, if any, are not allowed in the call reason. For more details on special characters, refer to this .

  2. Not a Truecaller user: The receiver is not a Truecaller user, or they might have uninstalled the app or switched to a new device that does not have Truecaller installed.

  3. OS not supported: User is on an operating system other than Android. Please note that personalized call reason is only available for Android devices.

  4. App version not supported: User is on a very old version of Android which is not supported now.

  5. Failed to push: This is returned when system is unable to establish a connection with user's device. Reasons can include but are not limited to:

    1. Out of network zone

    2. Bad internet

    3. Airplane mode

link
Dynamic Label ID
Create an API Key
Generate Access Token

Error scenarios for Webhooks

This page list the errors which we can encounter while using the webhooks.

There are 3 error scenarios for webhooks:

  1. Webhook not found :For each webhook event triggered, we fetch the latest configuration of webhook ( this is needed in case if the webhook url is updated or the config is deleted). If config is deleted, we get webhook_not_found .

  2. Events:

    • Rescheduled error: This state of the event occurs when we are unable to send webhook request ( i.e. we didnt get 200 OK response ) in first attempt, retry logic kicks in.

    • Webhook Deleted: Webhook config is deleted.

  3. Webhook Failed: We retry webhook events 7 times, if none of the attempts are successful, admins receive failure email.

Batch Status

Fetch status of records for Batch-ID returned in the Bulk Call Personalisation API.

Replace the {{BaseURL}} with the one mentioned here

GET {{BaseURL}}/clients/{clientAccountId}/dynamic_call_records

{clientAccountId} This can be taken directly from the self serve portal under the Manage API Keys Page

Query Parameter

Name
Value

batchId

Required

This is received from the Create Dynamic Call Records API response

Headers

Name
Value

Authorization

Required

Bearer <token>

Response

[
    {
        "id": "3ce1e19f-182d-4f04-ae28-422ca9f0bcd4",
        "client_account_id": "91c173bb-28d8-4030-9722-8663ff9589f3",
        "batch_id": "c951e498-abf3-4e50-ba94-a8065ca743f4",
        "caller": "************",
        "receiver": "************",
        "label_id": "c6d86658-008d-4c08-98fb-2bf2649d59a5",
        "label_name": "Flower",
        "call_reason": "Flower Delivery",
        "starts_at": 1752760800000,
        "ends_at": 1752868800000,
        "status": "success",
        "created_at": "2025-07-17T08:52:55.383Z"
    }
]
{
    "slug": "internal-server-error",
    "message": "500/50011 - Failed to parse token"
}

Deprecated API's

This Page lists all the Deprecated API which should not be used for new customers.

Details of Dynamic Label

This API is used to get the details of the Dynamic Labels created on the Truecaller

Replace the {{BaseURL}} with the one mentioned here

GET {{BaseURL}}/clients/{clientAccountId}/labels

{clientAccountId} This can be taken directly from the self serve portal under the Manage API Keys Page

For Authorization Token kindly refer the Authentication section followed by Generate Access Token API

Headers

Name
Value

Authorization

Required

Bearer <token>

Response

[
    {
        "id": "255297eb-7f13-44f9-967a-f287ff0f5025",
        "name": "FlowerEra",
        "logo_url": "https://business-priority-media-noneu.truecaller.com/staging/logos/06930f35-4b9c-4144-b748-9ace309c70d2-1751871235271177747.png",
        "category": 10,
        "sub_category": 142,
        "created_by_email": "[email protected]",
        "created_at": "2025-07-07T06:53:55.402122Z",
        "label_type": "dynamic"
    },
    {
        "id": "d3c2ff94-beb4-412f-a7d5-daebf9596cfa",
        "name": "test-label-priority",
        "logo_url": "https://business-priority-media-noneu.truecaller.com/staging/logos/06930f35-4b9c-4144-b748-9ace309c70d2-1739786448319894688.png",
        "category": 1,
        "sub_category": 16,
        "created_by_email": "[email protected]",
        "created_at": "2025-02-17T10:00:48.506685Z",
        "label_type": "dynamic"
    }
]
{
    "slug": "forbidden-error",
    "message": "not authorized. please contact your admin."
}

Webhook Configuration

A total of 5 webhooks can be configured under a customer account at a given point in time.

To configure your webhooks, simply follow these steps:

  1. Access Webhook Management: Click on the overflow menu (usually represented by three dots or lines) and select "Manage Webhooks."

  2. Create a New Webhook: Click on the "Create webhook" button to begin adding a new webhook.

  3. Enter Webhook Details:

    • Webhook Name: Provide a descriptive name for your webhook in the designated field. This name will be used to identify the webhook within the Truecaller for Business console. Please ensure the name is unique at any given time and does not exceed 50 characters.

    • Webhook URL: Enter the endpoint to which Truecaller should send the webhook notifications. For enhanced security, you might consider including a self-generated key as part of your URL (e.g., https://server.yourcompany.com/tcbiz-webhook?key=<yourkey>).

  4. Select Event Type: Choose the specific type of webhook event you wish to receive notifications for. Currently, webhooks are available for Call Me Back and User Feedback events. Whenever a response occurs for these enabled features, we will capture it as an event and send it to your configured URL.

    You can review event logs for your webhooks on both the "Manage Webhooks" page and the dedicated "Webhook events" page. Detailed information for each event is available on its respective event details page, with logs retained for the last 30 days.

  5. Finalize Creation: Once all the required details are filled, click "Create." Your webhook will now be successfully set up.

  6. Test Your Webhook : After creation, you can test your webhook to ensure it's functioning correctly.

    • Click on "Test Webhook" next to an existing webhook.

    • Select the event you wish to test (the default is "Call Me Back").

    • Click "Test URL" to send a test notification.

Update or Delete Webhook

Call Personalization Batch v2 Status

Each record indicates whether the record was successfully pushed or not.

Replace the {{BaseURL}} with the one mentioned here

GET {{BaseURL}}/v2/clients/{clientAccountId}/dynamic_call_records

{clientAccountId} : This can be taken directly from the self serve portal under the Manage API Keys Page

For Authorization Token kindly refer the Authentication section followed by Generate Access Token API

Headers

Name
Value

Content-Type

Required

application/json

Authorization

Required

Bearer <token>

Query Parameter

Name
Value
Type

batchId

Required

This is received from the Create Dynamic Call Records API response

string

Response

{
    "client_account_id": "91c173bb-28d8-4030-9722-8663ff9589f3",
    "batch_id": "0ca10281-11a0-4f86-bb27-7452da543cb6",
    "data": [
        {
            "id": "c458227a-a730-4ced-81b4-19c21ea8d97c",
            "caller_number": "************",
            "receiver_number": "************",
            "label_id": "c6d86658-008d-4c08-98fb-2bf2649d59a5",
            "dynamic_label_name": "Centro Bank KYC Department",
            "dynamic_call_reason": "Calling you for KYC Verification",
            "starts_at": 1753246858000,
            "ends_at": 1753362058000,
            "status_info": {
                "status": "success"
            },
            "created_at": "2025-07-23T09:07:32.21Z"
        }
    ]
}
{
    "slug": "authorization-error",
    "message": "please login again"
}

Call Personalisation Batch v2

This endpoint pushes the dynamic caller ID details to the respective TC users.

Replace the {{BaseURL}} with the one mentioned

POST {{BaseURL}}/v2/clients/{clientAccountId}/dynamic_call_records

{clientAccountId} : This can be taken directly from the self serve portal under the Manage API Keys Page

This API can handle 60 requests per minute per token.

For Authorization Token kindly refer the section followed by API

Headers

Name
Value

Body

Name
Type
Validations
Description

Request

Response

List Number

This API is used to list the business numbers on the Truecaller Portal

Replace the {{BaseURL}} with the one mentioned

The maximum limit to list is 10,000 numbers per feature set.

POST{{BaseURL}}/clients/{clientAccountId}/number_management/feature_sets/{featureSetId}/numbers/publish

{clientAccountId} : This can be taken directly from the self serve portal under the Manage API Keys Page

{featureSetId}: This can be taken directly from the feature set configuration page on the self serve portal

For Authorization Token kindly refer the section followed by API

Headers

Name
Value

Body

Name
Type
Validations
Description

Request

Response

Content-Type

Required

application/json

Authorization

Required

Bearer <token>

call_records

array of object

min:1 max: 500

Required Call record object Maximum batch size is 500 per API Call

dynamic_call_reason

string

minLength: 3 maxLength: 10

Optional

The call reason to be displayed.

caller_number

string

NA

Required The phone no. of the caller

ends_at

integer (int64)

Epoch timestamp in milliseconds

Required The timestamp in milliseconds at which dynamic caller ID should expire. Should not be before the current timestamp. starts_at and ends_at cannot be more than 24 hrs apart

label_id

string

NA

Optional The label ID of the dynamic label to be used as caller id

dynamic_label_name

string

minLength: 3 maxLength: 40

Required The caller ID name to be displayed. If not present it will default to the label name of the label ID provided.

receiver_number

string

NA

Required The phone no. of the receiver

starts_at

integer (int64)

Epoch timestamp in milliseconds

Required The timestamp in milliseconds at which dynamic caller ID should start reflecting.

starts_at and ends_at cannot be more than 24 hrs apart

{
  "call_records":[
        {
          "label_id": "c6d86658-008d-4c08-98fb-2bf2649d59a5",
          "dynamic_label_name": "Centro Bank KYC Department",
          "dynamic_call_reason":  "Calling you for KYC Verification",
          "caller_number": "+91**********",
          "receiver_number": "91**********",
          "starts_at": 1753246858000,
          "ends_at": 1753362058000
        }
      ]
}
{
    "batch_id": "b72f7a40-ec3a-462f-b528-da0e8dc87e79"
}
{
    "slug": "authorization-error",
    "message": "please login again"
}
here
Authentication
Generate Access Token

Content-Type

Required

application/json

Authorization

Required

Bearer <token>

phone_numbers

string

NA

Additionally, there’s a separate maximum limit associated with the client account ID.numbers to be added to feature set

{
  "phone_numbers": [
    "911234567891"
  ]
}
{
    "client_account_id": "91c173bb-28d8-4030-9722-8663ff9589f3",
    "created_by_email": "[email protected]",
    "phone_type": "verified",
    "new_numbers": [
        "911234567891"
    ],
    "other_phonetype_numbers": [],
    "existing_numbers": [],
    "others_numbers": [],
    "invalid_numbers": [],
    "other_feature_set_numbers": [],
    "status": "pending",
    "migrated_numbers": [],
    "delisted_numbers": [],
    "updated_numbers": []
}
{
    "slug": "forbidden-error",
    "message": "not authorized. please contact your admin."
}
here
Authentication
Generate Access Token

Feature-set ID

This API is used to get feature-set ID to list and delist numbers.

Replace the {{BaseURL}} with the one mentioned here

GET{{BaseURL}}/clients/{clientAccountId}/number_management/feature_sets

{clientAccountId} : This can be taken directly from the self serve portal under the Manage API Keys Page

For Authorization Token kindly refer the Authentication section followed by Generate Access Token API

Query Parameters

Name
Value
Type

department_id

optional, to filter by department

string

operation_id

optional, to filter by operation

string

process_id

optional, to filter by process or subprocess

string

limit

optional, Limit per page

integer

page

optional, Current page number

integer

Header

Name
Value

Authorization

Required

Bearer <token>

Response

{
    "feature_sets": [
        {
            "id": "069d2e3a-41e6-41f9-a768-157d7e3bd6b9",
            "name": "prio1",
            "description": "",
            "status": "draft",
            "process_id": "318d5ae4-d2ad-4dc6-898a-861347ce279d",
            "client_account_id": "91c173bb-28d8-4030-9722-8663ff9589f3",
            "label_id": "7c7ec202-96cc-4c5f-8b24-23cbc07a2a8a",
            "call_reason_id": "689f6ce5-c03d-4d96-8af8-c8fb9b52510d",
            "video_caller_id": null,
            "business_profile_id": null,
            "call_me_back": false,
            "survey": false,
            "department_id": "8e16b0d3-0953-40d0-9079-2a412363063e",
            "department_name": "QA Test new flow edit",
            "operation_id": "14349208-1e61-4f88-81c5-2f55dfc755db",
            "calling_operation_id": "690aa251-122e-4cbc-87a8-8d270fffb218",
            "calling_operation_name": "Delivery",
            "process_name": "newProcess",
            "sub_process_name": "subPro",
            "created_at": "2025-07-16T10:15:04.800203Z",
            "updated_at": "2025-07-16T10:15:04.800203Z"
        },
        {
            "id": "684de058-3d09-4b05-ba65-3612b5cf616b",
            "name": "New Feature Set-7",
            "description": "",
            "status": "draft",
            "process_id": "510ab615-1dda-4cac-97f3-7975e10a4cd5",
            "client_account_id": "91c173bb-28d8-4030-9722-8663ff9589f3",
            "label_id": "7c7ec202-96cc-4c5f-8b24-23cbc07a2a8a",
            "call_reason_id": "f435f291-6508-4362-84bb-00100f008544",
            "video_caller_id": null,
            "business_profile_id": null,
            "call_me_back": false,
            "survey": false,
            "department_id": "85c87025-35e2-4e68-9257-0517609cfd3d",
            "department_name": "Listingdelisting",
            "operation_id": "358328f9-d99e-49ec-927e-28029efb0dde",
            "calling_operation_id": "0cb2cb40-8c23-44ce-b546-6d9b6b66af88",
            "calling_operation_name": "Sales",
            "process_name": "Listingdelisting",
            "sub_process_name": "",
            "created_at": "2025-07-16T10:12:24.561896Z",
            "updated_at": "2025-07-16T10:12:24.561896Z"
        }
    ],
    "pagination_info": {
        "total_page_count": 2,
        "current_page": 1,
        "page_limit": 50
    }
}
{
    "slug": "forbidden-error",
    "message": "not authorized. please contact your admin."
}

Call Personalisation Real-time v2

Real-time synchronous API to personalize calls for a given Caller-Receiver combination

Replace the {{BaseURL}} with the one mentioned here

POST {{BaseURL}}/v2/clients/{clientAccountId}/dynamic_call_record

{clientAccountId} : This can be taken directly from the self serve portal under the Manage API Keys Page

This API can handle 100 requests per second per token.

For Authorization Token kindly refer the Authentication section followed by Generate Access Token API

Headers

Name
Value

Content-Type

Required

application/json

Authorization

Required

Bearer <token>

Body

Name
Type
Validations
Description

dynamic_call_reason

string

minLength: 10 maxLength: 100

Optional.

The call reason to be displayed.

caller_number

string

Format Supported:"91**********"

Required The phone no. of the caller

ends_at

integer (int64)

Epoch timestamp in milliseconds

Required The timestamp in milliseconds at which dynamic caller ID should expire. Should not be before the current timestamp. starts_at and ends_at cannot be more than 24 hrs apart

label_id

string

NA

Optional The label ID of the dynamic label to be used as caller id

dynamic_label_name

string

minLength: 3 maxLength: 40

Required The caller ID name to be displayed. If not present it will default to the label name of the label ID provided.

receiver_number

string

NA

Required The phone no. of the receiver

starts_at

integer (int64)

Epoch timestamp in milliseconds

Required The timestamp in milliseconds at which dynamic caller ID should start reflecting.

starts_at and ends_at cannot be more than 24 hrs apart

Request

{
    "label_id": "c6d86658-008d-4c08-98fb-2bf2649d59a5",
    "dynamic_label_name": "Flower rasm",
    "dynamic_call_reason": "Flower Delivery",
    "caller_number": "918861277591", 
    "receiver_number": "919035712806",
    "starts_at": 1753088751000,
    "ends_at": 1753103151000
}

Response

{
    "status_info": {
        "status": "success",
        "message": "Record processed successfully"
    }
{
    "status_info": {
        "status": "error",
        "field": "ends_at",
        "message": "Request body is invalid: ends_at cannot be older than current time"
    }
}

DeList Number

This API is used to delist and remove business numbers from the client account and its feature-set.

Replace the {{BaseURL}} with the one mentioned here

POST{{BaseURL}}/clients/{clientAccountId}/number_management/feature_sets/{featureSetId}/numbers/delist

{clientAccountId} : This can be taken directly from the self serve portal under the Manage API Keys Page

{featureSetId}: This can be taken directly from the feature set configuration page on the self serve portal

For Authorization Token kindly refer the Authentication section followed by Generate Access Token API

Headers

Name
Value

Content-Type

Required

application/json

Authorization

Required

Bearer <token>

Body

Name
Type
Validations
Description

phone_numbers

string

minLength: 1 maxLength: 10000

Required.

List of phone numbers to be added to feature set

Request

{
  "phone_numbers": [
    "911234567891"
  ]
}

Response

{
    "client_account_id": "91c173bb-28d8-4030-9722-8663ff9589f3",
    "phone_type": "",
    "processing_numbers": [],
    "new_numbers": [],
    "other_phonetype_numbers": [],
    "existing_numbers": [
        "911234567891"
    ],
    "others_numbers": [],
    "invalid_numbers": [],
    "other_feature_set_numbers": [],
    "status": "pending"
}
{
    "client_account_id": "91c173bb-28d8-4030-9722-8663ff9589f3",
    "phone_type": "",
    "processing_numbers": [],
    "new_numbers": [
        "911234567891"
    ],
    "other_phonetype_numbers": [],
    "existing_numbers": [],
    "others_numbers": [],
    "invalid_numbers": [],
    "other_feature_set_numbers": [],
    "status": "failed"
}

Event Types

We support Call Me Back and User Feedback events for webhooks. Each event has its resources that can be referred from the resource column.

Event
Event Trigger
Resources

Configure your systems to consume webhook response by assigning appropriate fields to the below scenarios :

Payload - Call Me Back

#For Customers with Slot Picker

#For Customers without Slot Picker

Payload - User Feedback

Call Personalisation Real-time API

Sync API to send call personalisation data for a Caller-Receiver combination. This is a real-time API

Replace the {{BaseURL}} with the one mentioned

POST {{BaseURL}}/clients/{clientAccountId}/dynamic_call_record

{clientAccountId} : This can be taken directly from the self serve portal under the Manage API Keys Page

Headers

Name
Value

Body

Name
Type
Validations
Description

Request

Response

API Rate Limits

  • Truecaller for Business restricts API requests when you exceed the limits entitled to your business.

  • Each token can handle 100 requests per second

  • Maximum of 10 tokens can be created in every 30 minutes

Call me back

When a user requests a call me back from the Truecaller App in the scenario of a missed / rejected call

  • Type - Feature for which the webhook is being used.

  • Created At - Event creation time.

  • JSON content - Structure of payload data that is sent to the Business Client.

User Feedback

When a user responds to a campaign based on the type of call, answered or missed / rejected. This response is from the campaign on the Truecaller app.

  • Type: Feature for which the webhook is being used.

  • Created at: event creation time.

  • JSON content: structure of payload data that is sent to the business client.

// For Customers with Slot Picker - Scenario 1
// Happy Flow

{
  "event_id": "860a7f4c-6545-40f1-85be-3655edde650f",
  "client_account_id": "91c173bb-28d8-4030-9722-8663ff9589f3",
  "event_type": "cmb",
  "created_at": "1753945760",
  "cmb_payload": {
    "business_number": "910987654321",
    "feature_set": "Fresh Flower Delivery",
    "client_number": "911234567890",
    "requested_at": "1753945760",
    "requested_date": "2025-08-02",
    "requested_slot": "Saturday",
    "preferred_from_time": "1754116200",
    "preferred_to_time": "1754118000",
    "is_interested": true,
    "alternate_number": ""
  }
}
// For Customers with Slot Picker - Scenario 2
// SIMinfo related issues on device

{
  "event_id": "119be0c3-d23f-4728-8e42-d936c2e8dad6",
  "client_account_id": "91c173bb-28d8-4030-9722-8663ff9589f3",
  "event_type": "cmb",
  "created_at": "1753945773",
  "cmb_payload": {
    "business_number": "910987654321",
    "feature_set": "cmb",
    "client_number": "Phone number not available",
    "requested_at": "1753945773",
    "requested_date": "31 July 2025",
    "requested_slot": "Friday",
    "preferred_from_time": "1754031600",
    "preferred_to_time": "1754033400",
    "is_interested": true,
    "alternate_number": "918047360788"
  }
}
// For Customers with Slot Picker - Scenario 3 
// Customers who are Not Interested 

{
  "event_id": "119be0c3-d23f-4728-8e42-d936c2e8dad6",
  "client_account_id": "91c173bb-28d8-4030-9722-8663ff9589f3",
  "event_type": "cmb",
  "created_at": "1753945773",
  "cmb_payload": {
    "business_number": "910987654321",
    "feature_set": "cmb",
    "client_number": "Phone number not available",
    "requested_at": "1753945773",
    "requested_date": "31 July 2025",
    "requested_slot": "Friday",
    "preferred_from_time": "1754031600",
    "preferred_to_time": "1754033400",
    "is_interested": false,
    "alternate_number": "918047360788"
  }
}
// For Customers without Slot Picker

{
  "event_id": "119be0c3-d23f-4728-8e42-d936c2e8dad6",
  "client_account_id": "91c173bb-28d8-4030-9722-8663ff9589f3",
  "event_type": "cmb",
  "created_at": "1753945773",
  "cmb_payload": {
    "business_number": "910987654321",
    "feature_set": "cmb",
    "client_number": "Phone number not available",
    "requested_at": "1753945773",
    "requested_date": "31 July 2025",
    "requested_slot": "Friday",
    "preferred_from_time":null,
    "preferred_to_time": null,
    "is_interested": true,
    "alternate_number": "918067676878"
  }
}
{
  "event_id": "7719f451-5436-470a-98ba-422b997582f8",
  "client_account_id": "91c173bb-28d8-4030-9722-8663ff9589f3",
  "event_type": "user_feedback",
  "created_at": "1753946877",
  "survey_payload": {
    "name": "Flower Quality Check",
    "business_number": "+910987654321",
    "feature_set": "Fresh Flower Delivery",
    "client_number": "911234567890",
    "requested_at": "1753946877",
    "user_responses": [
      {
        "question": "How was the delivery experience?",
        "response": "5"
      },
      {
        "question": "Flower Quality?",
        "response": "Good"
      }
    ]
  }
}

Content-Type

Required

application/json

Authorization

Required

Bearer <token>

call_reason

string

minLength: 3 maxLength: 10

Optional.

The call reason to be displayed.

caller

string

Format Supported:"91**********"

Caller number should be without the “+” character.

Required The phone no. of the caller

ends_at

integer (int64)

NA

Required The timestamp in milliseconds at which dynamic caller ID should expire. Should not be before the current timestamp. starts_at and ends_at cannot be more than 24 hrs apart

label_id

string

NA

Optional The label ID of the dynamic label to be used as caller id

label_name

string

minLength: 3 maxLength: 40

Required The caller ID name to be displayed. If not present it will default to the label name of the label ID provided.

receiver

string

Format Supported:"91**********" Receiver number should be without the “+” character.

Required The phone no. of the receiver

starts_at

integer (int64)

NA

Required The timestamp in milliseconds at which dynamic caller ID should start reflecting.

starts_at and ends_at cannot be more than 24 hrs apart

{
    "status": "success",
    "message": "Records Uploaded Successfully. BatchID: 6dabe53b-14a5-44bf-9bab-3dda8b0fee54"
}
{
    "status": "failure",
    "message": "ends_at cannot be older than current time. BatchID: d30ca8f7-ae64-4c30-8700-d63f6b2f1dd6"
}
{
    "slug": "authorization-error",
    "message": "Missing authorization header"
}
here
{
  "call_reason": "Flower Delivery",
  "caller": "91**********",
  "ends_at":1751886000000,
  "label_id": "255297eb-7f13-44f9-967a-f287ff0f5025",
  "label_name": "Delivery",
  "receiver": "91**********",
  "starts_at": 1751879424883
}

Call Me Back

The Call Me Back API helps you to download Call Me Back requests for the numbers for which this feature has been enabled.

Replace the {{BaseURL}} with the one mentioned here

GET /clients/{clientAccountId}/openapi/callback-logs/summary

{clientAccountId} : This can be taken directly from the self serve portal under the Manage API Keys Page

Headers

Name
Value

Authorization

Required

Bearer <token>

Query Parameter

Name
Type
Description

from

string

Required Start time in milliseconds

to

string

Required End time in milliseconds

Response

API NOT WORKING
{
    "message": "No CMB found for client Id"
}

User Feedback

The User Feedback API helps you to download logs for User Feedback campaigns running on the numbers where this feature has been enabled

Replace the {{BaseURL}} with the one mentioned here

GET /clients/{clientAccountId}/openapi/feedback_stack/{surveyId}/export_report

{clientAccountId} : This can be taken directly from the self serve portal under the Manage API Keys Page

Headers

Name
Value

Authorization

Required

Bearer <token>

Query Parameter

Name
Type
Description

from_date

string

Required

Response

API NOT WORKING
{
    "message": "No CMB found for client Id"
}

Number details

This API is used to get meta-data of listed business numbers.

Replace the {{BaseURL}} with the one mentioned here

GET{{BaseURL}}/clients/{clientAccountId}/number_management/numbers

{clientAccountId} : This can be taken directly from the self serve portal under the Manage API Keys Page

Query Parameters

Name
Value
Type

department_id

optional, to filter by department

string

operation_id

optional, to filter by operation

string

process_id

optional, to filter by process or subprocess

string

feature_set_id

optional, to filter by feature set

string

limit

optional, Limit per page

integer

page

optional, Current page number

integer

For Authorization Token kindly refer the Authentication section followed by Generate Access Token API

Header

Name
Value

Authorization

Required

Bearer <token>

Response

{
    "numbers": [
        {
            "phone_number": "918848628575230",
            "phone_type": "verified",
            "status": "listed",
            "client_account_id": "91c173bb-28d8-4030-9722-8663ff9589f3",
            "created_by_email": "[email protected]",
            "department": "TestingSanity",
            "operation": "Collections",
            "process": "SanityProcess",
            "subprocess": "",
            "feature_set_name": "New Feature set",
            "call_me_back": "enabled",
            "created_at": "2025-07-28T09:25:19.557139Z",
            "updated_at": "2025-07-28T09:25:23.644159Z",
            "label_name": "testLabel from fs page"
        },
        {
            "phone_number": "918735783247237",
            "phone_type": "verified",
            "status": "listed",
            "client_account_id": "91c173bb-28d8-4030-9722-8663ff9589f3",
            "created_by_email": "[email protected]",
            "department": "TestingSanity",
            "operation": "Collections",
            "process": "SanityProcess",
            "subprocess": "",
            "feature_set_name": "New Feature set",
            "call_me_back": "enabled",
            "created_at": "2025-07-28T09:25:19.557139Z",
            "updated_at": "2025-07-28T09:25:23.671083Z",
            "label_name": "testLabel from fs page"
        }
    ],
    "pagination_information": {
        "total_page_count": 8
    }
}
{
    "client_account_id": "91c173bb-28d8-4030-9722-8663ff9589f3",
    "phone_type": "",
    "processing_numbers": [],
    "new_numbers": [
        "911234567891"
    ],
    "other_phonetype_numbers": [],
    "existing_numbers": [],
    "others_numbers": [],
    "invalid_numbers": [],
    "other_feature_set_numbers": [],
    "status": "failed"
}

Call Personalisation (Bulk)

Async API to send call personalisation data for a Caller-Receiver combination

Replace the {{BaseURL}} with the one mentioned

POST {{BaseURL}}/clients/{clientAccountId}/dynamic_call_records

{clientAccountId} : This can be taken directly from the self serve portal under the Manage API Keys Page

Headers

Name
Value

Body

Name
Type
Validations
Description

Request

Response

API Rate Limits

  • Truecaller for Business restricts API requests when you exceed the limits entitled to your business.

  • Each token can handle 100 requests per second

  • Maximum of 10 tokens can be created in every 30 minutes

Webhook Timeouts

Truecaller for Business implements three distinct timeouts for webhooks to ensure reliable and efficient delivery of notifications:

  • Connection Timeout: This timeout governs the duration allowed for establishing the initial connection to your webhook URL's HTTP server.

  • Read Timeout: Once the connection is successfully established, this timeout sets the maximum waiting period for reading data from the HTTP server at any point during the process.

  • Total Webhook Timeout: Beyond the connection and read timeouts, Truecaller for Business also enforces a comprehensive timeout that limits the total execution time for any single webhook call.

The values for each timeout are as follows:

Timeout
Duration

Webhook execution can fail due to timeouts or errors. For each event where webhook call fails, the calls are retried up to 7 times based on the following schedules:

Retry
Time

These details are mentioned in the webhook event page.

Content-Type

Required

application/json

Authorization

Required

Bearer <token>

call_records

object

NA

Call Record object

call_reason

string

minLength: 3 maxLength: 10

Optional

The call reason to be displayed.

caller

string

Format Supported:"91**********"

Caller number should be without the “+” character.

Required The phone no. of the caller

ends_at

integer (int64)

NA

Required The timestamp in milliseconds at which dynamic caller ID should expire. Should not be before the current timestamp. starts_at and ends_at cannot be more than 24 hrs apart

label_id

string

NA

Optional The label ID of the dynamic label to be used as caller id

label_name

string

minLength: 3 maxLength: 40

Required The caller ID name to be displayed. If not present it will default to the label name of the label ID provided.

receiver

string

Format Supported:"91**********" Receiver number should be without the “+” character.

Required The phone no. of the receiver

starts_at

integer (int64)

NA

Required The timestamp in milliseconds at which dynamic caller ID should start reflecting.

starts_at and ends_at cannot be more than 24 hrs apart

{
    "status": "success",
    "message": "Records Uploaded Successfully. BatchID: 6dabe53b-14a5-44bf-9bab-3dda8b0fee54"
}
{
    "status": "failure",
    "message": "ends_at cannot be older than current time. BatchID: d30ca8f7-ae64-4c30-8700-d63f6b2f1dd6"
}
{
    "slug": "authorization-error",
    "message": "please login again"
}
here
{
    "call_records": [
        {
            "call_reason": "Flower Delivery",
            "caller": "**********",
            "ends_at": 2,
            "label_id": "255297eb-7f13-44f9-967a-f287ff0f5025",
            "label_name": "Flower",
            "receiver": "**********",
            "starts_at": 1
        }
    ]
}

Connection Timeout

20,000 ms

Read Timeout

20,000 ms

Webhook Execution Timeout

60,000 ms

1

2 minutes after the failure

2

6 minutes after the previous retry

3

30 minutes after the previous retry

4

1 hour after the previous retry

5

5 hours after the previous retry

6

1 day after the previous retry

7

2 days after the previous retry