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

POST
/v3/profiles/{profileId}/complete

Path Parameters

profileId*string

Profile ID from route

Formatuuid

Header Parameters

Idempotency-Key?string

Unique key to ensure idempotent request processing. Must be 1-255 alphanumeric characters, hyphens, or underscores. Responses are cached for 24 hours per key per customer.

Match^[a-zA-Z0-9_-]+$
Lengthlength <= 255
x-profile-id?string

Profile UUID to scope the request to a child profile. Only organization API keys can use this header. The profile must belong to the calling organization.

Formatuuid

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  }'
null
{
  "success": true,
  "data": {
    "message": "Profile completion in progress"
  }
}
null
Empty
Empty
null
null