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:
-
Client sends a PreCheck request
-
POSTwith JSON body containing brand, agent, and messaging details -
Specifies which
analysisStepsto run -
Includes a
callbackUrlwhere results should be delivered
-
-
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 newprojectId.) -
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
4xxerror 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
-
-
Asynchronous analysis
-
The requested
analysisStepsare run in parallel (with any prerequisite steps run first) -
The
callbackUrlis sent a webhook request with the analysis results.
-
Testing Callbacks
To test the results callback, you can use a service like Webhook.site — https://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 ID | Description | Required Fields | Optional Fields | Depends on Steps |
|---|---|---|---|---|
brand_background_check | Verifies 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_check | Analyzes 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_check | Ensures RCS logo and banner do not depict sex, violence, drugs, or other harmful content (SHAFT). | logoUrl, bannerUrl | — | — |
rcs_asset_relevance_check | Ensures RCS logo and banner align with website and brand identity. | logoUrl, bannerUrl, organizationName, businessWebsiteUrl | — | — |
rcs_asset_trademark_check | Checks RCS agent logo and banner do not infringe on trademark via USPTO search. | logoUrl, bannerUrl, organizationName, businessWebsiteUrl | — | brand_online_presence_check |
rcs_asset_impersonation_check | Detects potential brand impersonation of the RCS agent logo and banner via reverse image search. | logoUrl, bannerUrl, organizationName | — | — |
rcs_display_name_safety_check | Ensures RCS agent display name does not contain inappropriate content. | displayName | — | — |
rcs_display_name_relevance_check | Ensures the RCS agent display name is relevant to the brand. | displayName, organizationName, businessWebsiteUrl | — | — |
rcs_display_name_trademark_check | Detects potential trademark issues related to the RCS agent display name. | displayName, organizationName, businessWebsiteUrl | — | brand_online_presence_check |
privacy_policy_check | Checks that the Privacy Policy URL is accessible and conforms with best practices for messaging campaigns. | privacyPolicyUrl, organizationName, businessWebsiteUrl | — | brand_online_presence_check |
terms_of_service_check | Checks that the ToS URL is accessible and conforms with best practices for messaging campaigns. | termsOfServiceUrl, organizationName, businessWebsiteUrl | — | brand_online_presence_check |
help_message_check | Ensures HELP response describes the purpose of the messaging campaign and conforms with messaging best practices. | helpMessage, organizationName, businessWebsiteUrl | — | brand_online_presence_check |
opt_out_message_check | Ensures the opt-out message conforms with messaging best practices. | optOutDescription, organizationName | — | — |
opt_in_method_check | Ensures the opt-in methods are clearly described and conform with messaging best practices. | optInDescription | — | — |
interactions_check | Ensures campaign interactions align with expected business activities. | interactionsDescription, organizationName, businessWebsiteUrl | — | brand_online_presence_check |
triggers_check | Ensures 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. AnanalysisScorefrom 0-100 is provided, andanalysisIssuesisnull. Currently, anyanalysisScoreabove 80 will lead to aPASS.FAIL: the PreCheck failed analysis. AnanalysisScorefrom 0-100 is provided, andanalysisIssuescontains one or more issues.ERROR: there was an error completing the analysis, possibly due to an internal issue. AnerrorCodeanderrorMessageare 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.
Updated 19 days ago