10DLC - Register a campaign via the API
Quick access:
Please make sure you have read our 10DLC campaign registration guide before proceeding.
Campaign applications go through several reviews to confirm that the required information is provided. These reviews have increased the processing time, so we advise you to submit your campaign applications two (2) weeks in advance to avoid disruption.
You can find the complete 10DLC API description on this page.
Step 1 - Qualify your brand for a specific use-case
When using our APIs, you need to complete a preliminary step to registering the campaign itself. If registering a new campaign for a use-case that has never been used on your brand, you must first make sure that your brand is allowed to create a campaign for this specific use case.
This is done by calling the following endpoint:
GET 'https://api-eu.vonage.com/v1/10dlc/brands/:brand_id/usecase/:usecase'
If successful, you will get a 200 - OK response containing a payload that comprises of the use case qualified, as well as JSON objects for each MNO (Mobile Network Operator, or carrier) throughputs you can expect:
{
"usecase": "POLITICAL",
"mno_metadata": [
{
"network_id": "10017",
"min_msg_samples": 2,
"att_msg_class": "Q",
"req_subscriber_opt_in": false,
"req_subscriber_help": false,
"req_subscriber_opt_out": false,
"mno": "AT&T",
"att_tpm": 2000,
"att_mms_tpm": 2000,
"mno_support": true,
"mno_review": true,
"no_embedded_link": true,
"qualify": true,
"tmo_brand_tier": null
},
]
}
Step 2 - Register your campaign
Before proceeding, make sure you understand the 10DLC requirements and that all the information provided on your campaign application complies with those requirements.
POST 'https://api-eu.vonage.com/v1/10dlc/brands/:brand_id/campaigns'
{
"account_id" = "abcdef01", // required
"usecase" = "string", // required
"sub_usecases" = ["string"],
"label" = "string",
"description" = "string", // required - min 40 characters
"reseller_id" = "string", // required if application on behalf of customer
"message_flow" = "string", // required - min 40 characters
"subscriber_opt_in" = boolean, // required
"opt_in_keywords" = "string", // required if Text to Join opt-in available
"opt_in_message" = "string", // required if Text to Join opt-in available
"subscriber_opt_out" = boolean, // required
"opt_out_keywords" = "string", // default is "STOP"
"opt_out_message" = "string", // required
"subscriber_help" = boolean, // required
"help_keywords" = "string", // default is "HELP"
"help_message" = "string", // required
"sample_one" = "string", // required
"sample_two" = "string",
"sample_three" = "string",
"sample_four" = "string",
"sample_five" = "string",
"number_pool" = boolean,
"embedded_link" = boolean,
"embedded_phone" = boolean,
"age_gated" = boolean,
"direct_lending" = boolean,
"tc_agreed" = boolean. // required
}
Example of campaign application:
POST 'https://api-eu.vonage.com/v1/10dlc/brands/:brand_id/campaigns'
{
"account_id" = "abcdef01",
"usecase" = "Low Volume Mixed",
"sub_usecases" = ["Customer Care", "Account Notification"],
"label" = "Geri's Limo app - ride notifications",
"description" = "This campaign aims to provide schedules of Limousine meet ups",
"message_flow" = "Geri's Limo: Conversational campaign with drivers and customers, promoted on flyers in coffee shops in the city. Message frequency varies. Text HELP for help. Text STOP to cancel. Message and data rates may apply. View our Privacy Policy: https://example.com and SMS Terms: https://example.com",
"subscriber_opt_in" = true,
"subscriber_opt_out" = true,
"opt_out_message" = "Geri’s Limo: You have successfully unsubscribed & will no longer receive any additional messages." [optional: "Text HELP for assistance or JOIN to rejoin.",
"subscriber_help" = true,
"help_message" = "Geri’s Limo: For support, please visit www.website.com, or contact us at care@email.com, or call 1-XXX-XXX-XXXX.",
"sample_one" = "Geri's Limo: Your driver has arrived!",
"number_pool" = true,
"tc_agreed" = true.
}
When the request has been processed, you will receive a 200 - OK response with the payload containing the campaign ID, the attributes provided when creating the campaign as well as the campaign status.
From our example above, the response payload would look like:
{
"account_id": "abcdef01",
"brand_id": "string",
"campaign_id": "VC987XYZ",
"tcr_campaign_id": "C123ABC",
"usecase": "Low Volume Mixed",
"sub_usecases": [
"Customer Care",
"Account Notification"
],
"label": "Geri's Limo app - ride notifications",
"description": "This campaign aims to provide schedules of Limousine meet ups",
"message_flow": ""Geri's Limo: Conversational campaign with drivers and customers, promoted on flyers in coffee shops in the city. Message frequency varies. Text HELP for help. Text STOP to cancel. Message and data rates may apply. View our Privacy Policy: https://example.com and SMS Terms: https://example.com",
"age_gated": false,
"direct_lending": false,
"subscriber_opt_in": true,
"subscriber_opt_out": true,
"opt_out_keywords": "STOP",
"opt_out_message": "Geri’s Limo: You have successfully unsubscribed & will no longer receive any additional messages.",
"subscriber_help": true,
"help_keywords": "HELP",
"help_message": "Geri’s Limo: For support, please visit www.website.com, or contact us at care@email.com, or call 1-XXX-XXX-XXXX.",
"sample_one": "Geri's Limo: Your driver has arrived!",
"number_pool": true,
"embedded_link": false,
"embedded_phone": false,
"auto_renewal": true,
"partner": false,
"mno_metadata": [],
"status": "PENDING_REVIEW",
"tcr_status": "UNKNOWN",
"created_date": "2023-03-14T13:12:37.183Z",
"last_updated": "2023-03-14T13:12:37.183Z",
"billed_date": "2023-03-14T13:12:37.183Z",
"last_status_changes": [],
"_links": {
"self": {
"href": "string"
},
"brand": {
"href": "string"
},
"numbers": {
"href": "string"
}
}
}
You have now completed the registration of your 10DLC campaign.
Comments
0 comments
Please sign in to leave a comment.