Profiles

Complete profile setup

Changed on

Deprecated. This endpoint is replaced by /v3/sender-profiles and will be removed in a future release. It still behaves exactly as before, so nothing needs to change today — but new integrations should use /v3/sender-profiles, which models a profile's markets, compliance, brand, campaigns and billing explicitly.

Final step in the profile compliance workflow. Validates all prerequisites (KYC, brand, campaigns, required documents), connects the profile to the SMS and WhatsApp channels, and marks it onboarded. Prerequisites are always validated first: if any fail the call returns 400 naming every unmet one, and nothing is started. If they pass and the profile is already onboarded, the call returns 200 and does nothing. Otherwise it returns 202 and calls the provided webhook URL when background processing finishes.

Callable with the organization's API key or the profile's own key. The key's user must be an admin or owner of the profile, or of the organization it belongs to.

Prerequisites (all but the last are checked before the already-onboarded short-circuit, matching the previous contract; the last is checked after it, so a profile that is already onboarded is never rejected by it):

  • Profile must have a name, short name, and description (short name max 50 characters, description max 5000)
  • webHookUrl must be supplied on the request
  • A KYC form submission is required
  • A brand is required, either on the profile or inherited from the parent organization
  • TCR applications must have at least one campaign, own or inherited
  • Destination countries marked as main must have their required compliance documents uploaded
  • TCR applications must state whether they inherit the organization's TCR brand and campaign

Outcome:

  • Once the prerequisites pass and background processing succeeds, the profile's conversionFlowStatus becomes ONBOARDED and its public status reads approved
  • A profile with no WhatsApp channel, or one still awaiting TCR registration or country documents, is onboarded like any other. Those are answered by the brand and campaign records, not by a status on the profile
  • If background processing fails, the profile keeps the status it already had and the webhook reports the reason
post/v3/profiles/{profileId}/complete

Request

  • Base URL
    https://api.sent.dm
  • URL
    https://api.sent.dm/v3/profiles/{profileId}/complete
  • Auth
    • API key in header x-api-key
    • or HTTP bearer

Path parameters

profileIdstring uuid required

Profile ID from route

Headers

Idempotency-Keystring

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.

x-profile-idstring uuid

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.

Request body

sandboxboolean

Sandbox flag - when true, the operation is simulated without side effects Useful for testing integrations without actual execution

webHookUrlstring uri required

Webhook URL to call when profile completion finishes (success or failure)

Example request

{
  "webHookUrl": "https://your-app.com/webhook/profile-complete",
  "sandbox": false
}

Response

Profile is already onboarded - returns current status

successboolean

Indicates whether the request was successful

Changes

    • breaking

      added subschema #2: SentDmServicesEndpointsCustomerAPIv3ProfilesRequestsCompleteProfileRequest_Properties to the request body allOf list

    • breaking

      added to the response property oneOf list for the response status

    • breaking

      added to the response property oneOf list for the response status

    • breaking

      added to the response property oneOf list for the response status

    • breaking

      added to the response property oneOf list for the response status

    • breaking

      added to the response property oneOf list for the response status

    • warning

      removed subschema #2: SentDmServicesEndpointsCustomerAPIv3RequestsProfilesCompleteProfileRequest_Properties from the request body allOf list

    • info

      the endpoint scheme security BearerAuth was added to the API

    • info

      endpoint deprecated

    • info

      added to the response property allOf list for the response status

    • info

      added to the response property allOf list for the response status

    • info

      added to the response property allOf list for the response status

    • info

      added to the response property allOf list for the response status

    • info

      added to the response property allOf list for the response status

    • info

      added to the response property allOf list for the response status

    • info

      added to the response property allOf list for the response status

    • info

      removed from the response property allOf list for the response status

    • info

      removed from the response property allOf list for the response status

    • info

      removed from the response property allOf list for the response status

    • info

      removed from the response property allOf list for the response status

    • info

      removed from the response property allOf list for the response status

    • info

      removed from the response property allOf list for the response status

    • info

      removed from the response property allOf list for the response status

    • info

      removed from the response property oneOf list for the response status

    • info

      removed from the response property oneOf list for the response status

    • info

      removed from the response property oneOf list for the response status

    • info

      removed from the response property oneOf list for the response status

    • info

      removed from the response property oneOf list for the response status