Create a new profile

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.

POST
/v3/profiles

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-dev.sent.dm/v3/profiles" \  -H "Idempotency-Key: req_abc123_retry1" \  -H "Content-Type: application/json" \  -d '{    "name": "Sales Team",    "icon": "https://example.com/sales-icon.png",    "description": "Sales department sender profile",    "short_name": "SALES",    "allow_contact_sharing": true,    "allow_template_sharing": false,    "inherit_contacts": true,    "inherit_templates": true,    "inherit_tcr_brand": false,    "inherit_tcr_campaign": false,    "billing_model": "profile",    "billing_contact": {      "name": "Acme Corp",      "email": "billing@acmecorp.com",      "phone": "+12025551234",      "address": "123 Main Street, New York, NY 10001, US"    },    "whatsapp_business_account": {      "waba_id": "123456789012345",      "phone_number_id": "987654321098765",      "access_token": "EAAxxxxxxxxxxxxxxx"    },    "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": {      "card_number": "4111111111111111",      "expiry": "09/27",      "cvc": "123",      "zip_code": "10001"    },    "sandbox": false  }'
{
  "success": true,
  "data": {
    "id": "770e8400-e29b-41d4-a716-446655440002",
    "organization_id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "Sales Team",
    "email": "team@acme.com",
    "icon": "https://example.com/sales-icon.png",
    "description": "Sales department sender profile",
    "short_name": "SALES",
    "status": "incomplete",
    "created_at": "2026-03-25T10:43:34.5107967+00:00",
    "updated_at": "2026-03-25T10:43:34.5108179+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": "profile",
    "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": "123456789012345",
    "billing_contact": {
      "name": "Acme Corp",
      "email": "billing@acmecorp.com",
      "phone": "+12025551234",
      "address": "123 Main Street, New York, NY 10001, US"
    },
    "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.511295+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.5118392+00:00",
    "version": "v3"
  }
}
{
  "success": false,
  "data": null,
  "error": {
    "code": "VALIDATION_001",
    "message": "Request validation failed",
    "details": {
      "name": [
        "Profile name is required"
      ],
      "short_name": [
        "short_name must be 3–11 characters, contain only letters, numbers, and spaces, and include at least one letter"
      ],
      "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.5118476+00:00",
    "version": "v3"
  }
}
Empty
Empty
{
  "success": false,
  "data": null,
  "error": {
    "code": "RESOURCE_005",
    "message": "Organization 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.5118482+00:00",
    "version": "v3"
  }
}
{
  "success": false,
  "data": null,
  "error": {
    "code": "VALIDATION_001",
    "message": "Organization does not have a WhatsApp Business Account configured. Complete WhatsApp Embedded Signup for your organization first, or provide direct credentials in the 'whatsapp_business_account' field.",
    "details": null,
    "doc_url": "https://docs.sent.dm/docs/reference/api/error-catalog"
  },
  "meta": {
    "request_id": "req_7X9zKp2jDw",
    "timestamp": "2026-03-25T10:43:34.5118486+00:00",
    "version": "v3"
  }
}
{
  "success": false,
  "data": null,
  "error": {
    "code": "INTERNAL_001",
    "message": "Failed to create 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.5118509+00:00",
    "version": "v3"
  }
}