PreCheck

Rapid checks for Brand, Agent, and Messaging Compliance

Introduction and Use Cases

The PreCheck API lets you quickly run a comprehensive set of KYC/KYB and compliance analyses that returns results within minutes. It's designed to catch issues early, reducing the risk of review failure and painful remediations. While PreCheck is designed with industry best practices in mind, it should be considered directional guidance and is not entirely predictive of successful passage or failure, as carriers, aggregators, and verification authorities each have their own review process which is opaque.

➡️

Note: Currently, PreCheck is only available for the RCS channel and in the US.

These APIs can be used by different entities at different points in the RCS Agent Launch lifecycle:

  • CSPs / Texting Platforms

    • Catch potential launch issues before submitting to aggregators for onboarding

    • Reduce time to launch and internal review overhead

  • Aggregators

    • Run pre-flight checks before submitting to MaaPs, verification authorities, and carriers

    • Automate carrier-expected campaign compliance checks

  • Carriers / MNOs

    • Automate parts of launch review by delegating repeatable checks to the PreCheck API

    • Standardize how brand identity, agent assets, and messaging policies are validated

    • Reduce manual review time from internal staff and contract teams


API Workflow

At a high level, the workflow for a single PreCheck looks like this:

  1. Client sends a PreCheck request

    • POST with JSON body containing brand, agent, and messaging details

    • Specifies which analysisSteps to run

    • Includes a callbackUrl where results should be delivered

  2. Synchronous validation

    • The request is validated immediately

    • On success, the API returns:

      • projectId (TexterID project ID. Note that each PreCheck API call will result in a new projectId.)

      • projectUrl (TexterID dashboard link - you may access this page to view analysis results in real time.)

      • analysisId (Specific ID for the analysis run.)

    • If synchronous validation fails, a 4xx error is returned with issue details.


    ❗️

    Potential validation issues include:

    • Logo or Banner URLs fail to resolve and download

    • Logo or Banner assets do not match RCS/RBM specifications

    • Analysis steps provided are invalid or missing prerequisites

    • Required fields for an analysis step are not provided

  3. Asynchronous analysis

    • The requested analysisSteps are run in parallel (with any prerequisite steps run first)

    • The callbackUrl is sent a webhook request with the analysis results.


Testing Callbacks

To test the results callback, you can use a service like Webhook.sitehttps://webhook.site

The callback URL must use HTTPS.


Analysis Steps

The analysisSteps array lets you choose which checks to run for a given PreCheck request.

Each step ID below can be included in the analysisSteps array:


Step IDDescriptionRequired FieldsOptional FieldsDepends on Steps
brand_background_checkVerifies the submitted EIN and business information align with public records. POC Name and Address may be included in the check.organizationName, businessIdentifier, countryOfRegistration (must be US)brandPocName, registeredBusinessAddress
brand_online_presence_checkAnalyzes the brand's online presence (website and crawling links to social media profiles) to understand business activities. This step is required for several other PreCheck steps.businessWebsiteUrl, organizationName
rcs_asset_safety_checkEnsures RCS logo and banner do not depict sex, violence, drugs, or other harmful content (SHAFT).logoUrl, bannerUrl
rcs_asset_relevance_checkEnsures RCS logo and banner align with website and brand identity.logoUrl, bannerUrl, organizationName, businessWebsiteUrl
rcs_asset_trademark_checkChecks RCS agent logo and banner do not infringe on trademark via USPTO search.logoUrl, bannerUrl, organizationName, businessWebsiteUrlbrand_online_presence_check
rcs_asset_impersonation_checkDetects potential brand impersonation of the RCS agent logo and banner via reverse image search.logoUrl, bannerUrl, organizationName
rcs_display_name_safety_checkEnsures RCS agent display name does not contain inappropriate content.displayName
rcs_display_name_relevance_checkEnsures the RCS agent display name is relevant to the brand.displayName, organizationName, businessWebsiteUrl
rcs_display_name_trademark_checkDetects potential trademark issues related to the RCS agent display name.displayName, organizationName, businessWebsiteUrlbrand_online_presence_check
privacy_policy_checkChecks that the Privacy Policy URL is accessible and conforms with best practices for messaging campaigns.privacyPolicyUrl, organizationName, businessWebsiteUrlbrand_online_presence_check
terms_of_service_checkChecks that the ToS URL is accessible and conforms with best practices for messaging campaigns.termsOfServiceUrl, organizationName, businessWebsiteUrlbrand_online_presence_check
help_message_checkEnsures HELP response describes the purpose of the messaging campaign and conforms with messaging best practices.helpMessage, organizationName, businessWebsiteUrlbrand_online_presence_check
opt_out_message_checkEnsures the opt-out message conforms with messaging best practices.optOutDescription, organizationName
opt_in_method_checkEnsures the opt-in methods are clearly described and conform with messaging best practices.optInDescription
interactions_checkEnsures campaign interactions align with expected business activities.interactionsDescription, organizationName, businessWebsiteUrlbrand_online_presence_check
triggers_checkEnsures message campaign triggers are clear and informative.triggerDescription

Scoring and Results

An overall analysisResult (PASS, FAIL or ERROR) is provided in the callback.

  • PASS: the PreCheck passed analysis. An analysisScore from 0-100 is provided, and analysisIssues is null. Currently, any analysisScore above 80 will lead to a PASS.
  • FAIL: the PreCheck failed analysis. An analysisScore from 0-100 is provided, and analysisIssues contains one or more issues.
  • ERROR: there was an error completing the analysis, possibly due to an internal issue. An errorCode and errorMessage are provided in the callback. This should not be considered a failure, and the PreCheck will need to be re-run once the error is resolved.

External Project IDs

You may append an externalProjectId to a PreCheck API call. These can be references to your own internal project IDs tied to a brand or a specific launch project. This externalProjectId will also be attached to the callback when the analysis results are ready.


Authentication

  • All requests to the PreCheck endpoint must be authenticated (see Request Authentication).

  • The callback back to your system will be signed using the same shared secret (your API key) for HMAC verification. See Webhook Authentication for details.