Complete profile setup
Final step in profile compliance workflow. Validates all prerequisites (general data, brand, campaigns), connects profile to Telnyx/WhatsApp, and sets status based on configuration. The process runs in the background and calls the provided webhook URL when finished.
Prerequisites:
- Profile must be completed
- If inheritTcrBrand=false: Profile must have existing brand
- If inheritTcrBrand=true: Parent must have existing brand
- If TCR application: Must have at least one campaign (own or inherited)
- If inheritTcrCampaign=false: Profile should have campaigns
- If inheritTcrCampaign=true: Parent must have campaigns
Status Logic:
- If both SMS and WhatsApp channels are missing → SUBMITTED
- If TCR application and not inheriting brand/campaigns → SUBMITTED
- If non-TCR with destination country (IsMain=true) → SUBMITTED
- Otherwise → COMPLETED
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api.sent.dm/v3/profiles/660e8400-e29b-41d4-a716-446655440000/complete" \ -H "Idempotency-Key: req_abc123_retry1" \ -H "Content-Type: application/json" \ -d '{ "webHookUrl": "https://your-app.com/webhook/profile-complete", "sandbox": false }'{
"success": true,
"data": {
"status": "completed",
"message": "Profile is already completed"
},
"error": null,
"meta": {
"request_id": "req_7X9zKp2jDw",
"timestamp": "2026-05-01T09:53:14.0312044+00:00",
"version": "v3"
}
}{
"success": true,
"data": {
"message": "Profile completion in progress"
},
"error": null,
"meta": {
"request_id": "req_7X9zKp2jDw",
"timestamp": "2026-05-01T09:53:14.0312171+00:00",
"version": "v3"
}
}{
"success": true,
"error": {
"code": "string",
"message": "string",
"details": {
"property1": [
"string"
],
"property2": [
"string"
]
},
"doc_url": "string"
},
"meta": {
"request_id": "string",
"timestamp": "2019-08-24T14:15:22Z",
"version": "string"
}
}{
"success": true,
"error": {
"code": "string",
"message": "string",
"details": {
"property1": [
"string"
],
"property2": [
"string"
]
},
"doc_url": "string"
},
"meta": {
"request_id": "string",
"timestamp": "2019-08-24T14:15:22Z",
"version": "string"
}
}{
"success": true,
"error": {
"code": "string",
"message": "string",
"details": {
"property1": [
"string"
],
"property2": [
"string"
]
},
"doc_url": "string"
},
"meta": {
"request_id": "string",
"timestamp": "2019-08-24T14:15:22Z",
"version": "string"
}
}Delete a profile DELETE
Soft deletes a sender profile. The profile will be marked as deleted but data is retained. Requires admin role in the organization.
Get campaigns for a profile's brand GET
Retrieves all campaigns linked to the profile's brand, including use cases and sample messages. Returns inherited campaigns if inherit_tcr_campaign=true.