Update profile settings
Updates a profile's configuration and settings. Requires admin role in the organization. Only provided fields will be updated (partial update).
Brand Management
Include the optional brand field to create or update the brand associated with this profile. The brand holds KYC and TCR compliance data (legal business info, contact details, messaging vertical). Once a brand has been submitted to TCR it cannot be modified. Setting inherit_tcr_brand: true and providing brand in the same request is not allowed.
Payment Details
When billing_model is "profile" or "profile_and_organization" you may include a payment_details object containing the card number, expiry (MM/YY), CVC, and billing ZIP code. Payment details are never stored on our servers and are forwarded directly to the payment processor. Providing payment_details when billing_model is "organization" is not allowed.
Path Parameters
Header Parameters
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.
^[a-zA-Z0-9_-]+$length <= 255Profile 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.
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X PATCH "https://api-dev.sent.dm/v3/profiles/string" \ -H "Idempotency-Key: req_abc123_retry1" \ -H "Content-Type: application/json" \ -d '{ "name": "Sales Team - Updated", "icon": null, "description": "Updated sales department sender profile", "short_name": "SALES", "allow_contact_sharing": true, "allow_template_sharing": null, "inherit_contacts": null, "inherit_templates": null, "inherit_tcr_brand": null, "inherit_tcr_campaign": null, "billing_model": "organization", "billing_contact": null, "sending_phone_number_profile_id": null, "sending_whatsapp_number_profile_id": null, "sending_phone_number": null, "whatsapp_phone_number": null, "allow_number_change_during_onboarding": null, "brand": { "contact": { "name": "John Smith", "businessName": "Acme Corp", "role": "CEO", "phone": "+12025551234", "email": "john@acmecorp.com", "phoneCountryCode": "1" }, "business": { "legalName": "Acme Corporation LLC", "taxId": "12-3456789", "taxIdType": "us_ein", "entityType": "PRIVATE_PROFIT", "street": "123 Main Street", "city": "New York", "state": "NY", "postalCode": "10001", "country": "US", "url": "https://acmecorp.com", "countryOfRegistration": "US" }, "compliance": { "vertical": "PROFESSIONAL", "brandRelationship": "SMALL_ACCOUNT", "primaryUseCase": "Customer notifications and appointment reminders", "expectedMessagingVolume": "10000", "isTcrApplication": true, "phoneNumberPrefix": "+1", "destinationCountries": [ { "id": "US", "isMain": false } ], "notes": null } }, "payment_details": null, "sandbox": false }'{
"success": true,
"data": {
"id": "770e8400-e29b-41d4-a716-446655440002",
"organization_id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Sales Team - Updated",
"email": "team@acme.com",
"icon": "https://example.com/sales-icon.png",
"description": "Updated sales department sender profile",
"short_name": "SALES",
"status": "approved",
"created_at": "2025-12-25T10:43:34.5891174+00:00",
"updated_at": "2026-03-25T10:43:34.5891206+00:00",
"allow_contact_sharing": true,
"allow_template_sharing": false,
"inherit_contacts": true,
"inherit_templates": true,
"inherit_tcr_brand": false,
"inherit_tcr_campaign": false,
"billing_model": "organization",
"sending_phone_number_profile_id": null,
"sending_whatsapp_number_profile_id": null,
"sending_phone_number": null,
"whatsapp_phone_number": null,
"allow_number_change_during_onboarding": null,
"waba_id": null,
"billing_contact": null,
"brand": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"tcr_brand_id": null,
"status": null,
"identity_status": null,
"universal_ein": null,
"csp_id": null,
"submitted_to_tcr": false,
"submitted_at": null,
"is_inherited": false,
"created_at": "2026-03-25T10:43:34.5891231+00:00",
"updated_at": null,
"contact": {
"name": "John Smith",
"business_name": "Acme Corp",
"role": null,
"phone": null,
"email": "john@acmecorp.com",
"phone_country_code": null
},
"business": {
"legal_name": "Acme Corporation LLC",
"tax_id": null,
"tax_id_type": null,
"entity_type": null,
"street": null,
"city": null,
"state": null,
"postal_code": null,
"country": "US",
"url": null,
"country_of_registration": null
},
"compliance": {
"vertical": "PROFESSIONAL",
"brand_relationship": "SMALL_ACCOUNT",
"primary_use_case": null,
"expected_messaging_volume": null,
"is_tcr_application": true,
"phone_number_prefix": null,
"destination_countries": [
{
"id": "US",
"isMain": false
}
],
"notes": null
}
}
},
"error": null,
"meta": {
"request_id": "req_7X9zKp2jDw",
"timestamp": "2026-03-25T10:43:34.5891264+00:00",
"version": "v3"
}
}{
"success": false,
"data": null,
"error": {
"code": "VALIDATION_001",
"message": "Request validation failed",
"details": {
"brand": [
"Cannot provide brand data when inherit_tcr_brand is true."
],
"payment_details.expiry": [
"payment_details.expiry must be in MM/YY format (e.g. '09/27')"
]
},
"doc_url": "https://docs.sent.dm/docs/reference/api/error-catalog"
},
"meta": {
"request_id": "req_7X9zKp2jDw",
"timestamp": "2026-03-25T10:43:34.5891349+00:00",
"version": "v3"
}
}{
"success": false,
"data": null,
"error": {
"code": "RESOURCE_014",
"message": "Profile not found",
"details": null,
"doc_url": "https://docs.sent.dm/docs/reference/api/error-catalog"
},
"meta": {
"request_id": "req_7X9zKp2jDw",
"timestamp": "2026-03-25T10:43:34.5891356+00:00",
"version": "v3"
}
}{
"success": false,
"data": null,
"error": {
"code": "INTERNAL_001",
"message": "Failed to update profile. Please contact support with request ID: req_7X9zKp2jDw",
"details": null,
"doc_url": "https://docs.sent.dm/docs/reference/api/error-catalog"
},
"meta": {
"request_id": "req_7X9zKp2jDw",
"timestamp": "2026-03-25T10:43:34.5891362+00:00",
"version": "v3"
}
}Create a new profile POST
Creates a new sender profile within an organization. Profiles represent different brands, departments, or use cases, each with their own messaging configuration and settings. Requires admin role in the organization. ## WhatsApp Business Account Every profile must be linked to a WhatsApp Business Account. There are two ways to do this: **1. Inherit from organization (default)** — Omit the `whatsapp_business_account` field. The profile will share the organization's WhatsApp Business Account, which must have been set up via WhatsApp Embedded Signup. This is the recommended path for most use cases. **2. Direct credentials** — Provide a `whatsapp_business_account` object with `waba_id`, `phone_number_id`, and `access_token`. Use this when the profile needs its own independent WhatsApp Business Account. Obtain these from Meta Business Manager by creating a System User with `whatsapp_business_messaging` and `whatsapp_business_management` permissions. If the `whatsapp_business_account` field is omitted and the organization has no WhatsApp Business Account configured, the request will be rejected with HTTP 422. ## Brand Include the optional `brand` field to create the brand for this profile at the same time. Cannot be used when `inherit_tcr_brand` is `true`. ## Payment Details When `billing_model` is `"profile"` or `"profile_and_organization"` you may include a `payment_details` object containing the card number, expiry (MM/YY), CVC, and billing ZIP code. Payment details are **never stored** on our servers and are forwarded directly to the payment processor. Providing `payment_details` when `billing_model` is `"organization"` is not allowed.
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.