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.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-11T21:50:50.1630258+00:00",
"updated_at": "2026-03-11T21:50:50.1630271+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-11T21:50:50.1630281+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-11T21:50:50.1630304+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/errors/VALIDATION_001"
},
"meta": {
"request_id": "req_7X9zKp2jDw",
"timestamp": "2026-03-11T21:50:50.1630364+00:00",
"version": "v3"
}
}{
"success": false,
"data": null,
"error": {
"code": "RESOURCE_014",
"message": "Profile not found",
"details": null,
"doc_url": "https://docs.sent.dm/errors/RESOURCE_014"
},
"meta": {
"request_id": "req_7X9zKp2jDw",
"timestamp": "2026-03-11T21:50:50.1630371+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/errors/INTERNAL_001"
},
"meta": {
"request_id": "req_7X9zKp2jDw",
"timestamp": "2026-03-11T21:50:50.1630403+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.