Skip to contentSkip to navigationSkip to topbar
Rate this page:
On this page

Troubleshooting A2P 10DLC Standard/LVS Brands


During the A2P 10DLC onboarding process, you created a BrandRegistration resource. This resource represents an A2P 10DLC Brand.

The possible statuses of the BrandRegistration resource are as follows:

  • PENDING : your Brand registration has not yet been completed. Most Brand registrations complete within a few minutes, but a few registrations take more than seven days.
  • IN\_REVIEW : your Brand registration has not yet been completed; your Brand information is under manual third-party review. Such a manual review takes seven business days or more. There is no action required from your side.
  • APPROVED : your Brand registration was completed and verified. You can now register your campaigns. Please note, however, that a Brand with APPROVED status might still have brand_feedback information which could be used to improve your Trust Score. Please see immediately below for details.
  • FAILED : your Brand registration's information couldn't be verified. Please review the errors fields to understand more about this failure.
  • SUSPENDED : your Brand is deemed to have potentially violated one or more rules for Brand registration established by the A2P ecosystem partners. This status will require Twilio Support assistance to address. Please see Section 1.1 below for details.
(information)

Info

brand_feedback and failure_reason return parameters:

To make the Brand registration feedback more useful and actionable for users, the previous brand_feedback and failure_reason messages are now consolidated within an errors[] return parameter (much like the one previously implemented for rejected Campaigns, as detailed in the Campaign Troubleshooting document).

It is important to understand that the errors[] parameter can be populated either if the Brand's status is APPROVED, but there is room to improve your Brand's trust score by rectifying or clarifying certain information you've supplied, or if your Brand has a status of FAILED, in which case both the brand_feedback and failure_reason information will be available in the errors fields to communicate what information needs to be rectified for successful resubmission of the Brand. Please see possible values and other details of errors immediately below.

The brand_feedback field contains a list of Feedback IDs, where each ID corresponds to a recommendation on how you can improve your brand score. You will receive a list of feedback IDs on your brand registration, if any is determined necessary. Along with the list of feedback IDs, you will receive descriptive recommendations for ways to fix your brand registration.

(information)

Info

More than one feedback ID may be returned at a time. Once you have received feedback on your brand registration, you can contact Twilio support with the appropriate corrected information to update your brand. You can read more in A2P 10DLC Brand Approval Best Practices(link takes you to an external page).


Resubmitting Standard/LVS Brands

resubmitting-standardlvs-brands page anchor

Twilio supports resubmission of Brands in the unverified (or FAILED) state up to three times for free using either the Twilio Console or the Twilio Trust Hub API. Once you have reached this limit, reach out to Twilio Support for additional assistance.

While Twilio will continue to allow brand updates going forward, these may incur a fee at some point in the future, as each brand resubmission entails a charge by our A2P ecosystem partners.

(warning)

Warning

The three free self-service Brand resubmissions offered here, and in the walkthrough docs, must be distinguished from an appeal-based, manual re-vetting process for a failed Brand. For example, most Standard or LVS Brands fail because of a mismatch between the business information (exact legal business name, exact address, etc) submitted in the registration process with the Business Profile, and that information as registered with the government tax authority. Thus, these failures can be remedied by the customer simply reviewing their tax documentation and addressing any discrepancies between this and the business information provided in the Business Profile, before updating that Business Profile and resubmitting the Brand per the procedures detailed below for Console and for API. If this resubmission results in a successfully-approved Brand, no involvement of Twilio Support is necessary and the customer may proceed with Campaign registration.

However, in certain rare cases, the customer may continue to see Brand registration failures even if the submitted Business Profile information exactly matches that in their Tax ID registration. One common reason for this is that the Tax ID (e.g. EIN in the U.S.) registration is so new that it hasn't yet propagated to the databases that Twilio and our ecosystem partners use for vetting purposes. The same could be the case for a 501c3 or other non-profit organization. In such a case, the remedy is for the customer to appeal the Brand rejection with Twilio Support(link takes you to an external page), at which point Twilio Ops will ask for certain documentation which will prove the customer's tax registration. This process of necessarily involves manual vetting by our ecosystem partner

This second kind of appeal-based, manual revetting of a submitted Brand entails a $10 fee, over and above the fees normally charged for Brand submission.

When a Brand registration fails within the Console, here's what you can expect to see in your process to resubmit the Brand with correct information. Of course failure reasons can be various; this one happens to be a mismatch between the name associated with the provided business registration number (Tax ID/EIN) in publicly-available tax information, and the legal name you've provided for the Brand itself:

Brand Failure UI in Twilio Console.

When submitted using the Twilio Console, Brands will show descriptive error messages. From here, you can click "Edit customer profile" to begin the process of editing and correcting your Brand information. Note that you are not editing the Brand submission as such; that can only be deleted and resubmitted when you are using the Console. But the information that needs to be rectified is actually in the Customer Profile you submitted before the Brand creation step, and the Customer Profile can be edited via the blue button, as indicated.

After you have edited the Customer Profile to your satisfaction, and resubmitted this for approval, you'll go to Messaging > Regulatory Compliance > Brands in the left navigation and find the Brand that failed. Any Brand that you see in this list can be deleted, so be sure that you're deleting the correct one (this is one reason why its always a good idea to create Brands and other such entities with meaningful 'friendly names'). You will find the red Delete link in the dropdown when you click the three dots to the far right of the row with the Brand in question:

delete a brand.

Once you've deleted this Brand, you can go back to the Onboarding page under Regulatory Compliance, and if you're not already in the correct profile use the Switch Customer Profile link on the right to select the Profile you just edited. This should immediately take you to the Submit Brand page, allowing you to submit a new Brand with the rectified profile information.

Updating an A2P Brand Using the API

updating-an-a2p-brand-using-the-api page anchor
(information)

Info

You may perform a brand update a maximum of three times at no additional charge. Once you have reached this limit, reach out to Twilio Support for additional assistance.

If you attempt a brand update more than three times, you will receive a 400 API response and a 21724 error code.

While Twilio will continue to allow brand updates, these may incur a fee at some point in the future, as each brand resubmission entails a charge by our A2P ecosystem partners.

What does this do? This step allows you to edit the A2P brand you've created if you have received a FAILED brand status and the tcr_id is not null. You will use the brand's SID (starting with BN) to make this update call.

NOTE: In contrast to the Console, where it's necessary to delete and recreate a failed Brand, through the API it is possible to call an update on an existing (failed) Brand submission, as shown in the code snippet below. However, as with the Console, it is the information you submitted in the Customer Profile or Trust Bundle associated with that Brand that actually needs to be rectified; otherwise the Brand submission will simply fail again for the same reason. This is why the Brand UPDATE call below contains only a single input parameter, the Brand SID; all of the information you're actually fixing is upstream of this call.

First, review the error message from the brand_feedback and/or feedback_reason parameters that you've retrieved in the Brand fetch step noted above. Where it's necessary to update information, you will need to perform the necessary updates using the relevant Trust Hub API endpoints as detailed in Steps 1 (Customer Profile submission) and 2 (Trust Bundle submission) of the API walkthrough documents. For example, you may need to update the associated customer profile or update the information attached to the listed end-user.

Once you have finished any necessary updates to your Profile and/or Trust Bundle , use the update method of the brand_registrations endpoint to update the brand's registration. As the following snippet indicates, the only necessary input parameter for this update call itself is the Brand SID (path or sid). The return json will contain the same parameters you've seen in the create and fetch calls for the Brand. Remember that your newly-updated information will in many cases require manual re-verification, so allow some time for this before checking Brand Registration status again.

Update an A2P Brand

update-an-a2p-brand page anchor
Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_18
// Download the helper library from https://www.twilio.com/docs/node/install
_18
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_18
_18
// Find your Account SID and Auth Token at twilio.com/console
_18
// and set the environment variables. See http://twil.io/secure
_18
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_18
const authToken = process.env.TWILIO_AUTH_TOKEN;
_18
const client = twilio(accountSid, authToken);
_18
_18
async function updateBrandRegistrations() {
_18
const brandRegistration = await client.messaging.v1
_18
.brandRegistrations("BNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
_18
.update();
_18
_18
console.log(brandRegistration.sid);
_18
}
_18
_18
updateBrandRegistrations();

Output

_25
{
_25
"a2p_profile_bundle_sid": "BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_25
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_25
"brand_feedback": [
_25
"TAX_ID"
_25
],
_25
"brand_score": 21,
_25
"brand_type": "BrandType",
_25
"customer_profile_bundle_sid": "BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_25
"date_created": "2009-07-06T20:30:00Z",
_25
"date_updated": "2009-07-06T20:30:00Z",
_25
"errors": [],
_25
"failure_reason": "FailureReason",
_25
"government_entity": true,
_25
"identity_status": "VETTED_VERIFIED",
_25
"links": {},
_25
"mock": false,
_25
"russell_3000": true,
_25
"sid": "BNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25
"skip_automatic_sec_vet": true,
_25
"status": "FAILED",
_25
"tax_exempt_status": "TaxExemptStatus",
_25
"tcr_id": "TcrId",
_25
"url": "https://www.example.com"
_25
}


Rate this page: