# Create account for project

Create the WhatsApp account for the project. Each project can only have one account.

Endpoint: POST /v1/projects/{projectId}/whatsapp
Version: 1.2.91
Security: BasicAuth, BearerAuth, OAuth2Production

## Path parameters:

  - `projectId` (string, required)
    The unique ID of the project. You can find this on the Sinch Dashboard.

## Request fields (application/json):

  - `body` (WhatsappInputAccountPartnerInitiatedDto (object) or WhatsappInputAccountDtoDeprecated (object), required) — one of:
    - WhatsappInputAccountPartnerInitiatedDto:
      - `wabaName` (string, required)
        The registered name of the brand who will be engaging with their users needs to be specified. This name must match the name associated with the Facebook Business Manager ID below. You can verify the registered name by visiting: https://business.facebook.com/select/?business_id= Ensure that the name shown exactly matches the one you enter here.
      - `clientBusinessManagerId` (string, required)
        The Business Manager ID for the client to create the account. This can be found in the Meta Business Manager in Business Settings > Business Info below the Business Manager Account Name.
      - `senderDetails` (object, required)
        Details of the sender to be created.
      - `senderDetails.displayName` (string, required)
        Waba display name / used as default display name of new phone at Meta
      - `senderDetails.businessCategory` (string, required)
        Vertical / business category for the business account.
        Enum: "ALCOHOL", "AUTOMOTIVE", "BEAUTY_SPA_SALON", "CLOTHING_AND_APPAREL", "EDUCATION", "ENTERTAINMENT", "EVENT_PLANNING_AND_SERVICE", "FINANCE_AND_BANKING", "FOOD_AND_GROCERY", "HOTEL_AND_LODGING", "MEDICAL_AND_HEALTH", "NON_PROFIT", "NOT_SET", "OTC_DRUGS", "OTHER", "PHYSICAL_GAMBLING", "PROFESSIONAL_SERVICES", "PUBLIC_SERVICE", "RESTAURANT", "SHOPPING_AND_RETAIL", "TRAVEL_AND_TRANSPORTATION"
      - `senderDetails.region` (string)
        Region sender will be provisioned in. If not provided, default region for the country set in the billing account will be used.
        Enum: "BR", "EU", "US"
      - `senderDetails.metaLocalStorage` (string)
        Region Meta will store data in Meta. If not provided, the default value set for the chosen region will be used.
        Enum: "AE", "AU", "BH", "BR", "CA", "CH", "DE", "GB", "ID", "IN", "JP", "KR", "SG", "US", "ZA"
      - `businessManager` (string)
        Business manager.
        Enum: "SINCH_AMERICA", "SINCH_BR", "SINCH_MX", "SINCH_SEP", "SINCH_UK"
    - WhatsappInputAccountDtoDeprecated:
      - `clientBusinessManagerId` (string, required)
        The Business Manager ID for the client to create the account. This can be found in the Meta Business Manager in Business Settings > Business Info below the Business Manager Account Name.
      - `companyLegalName` (string, required)
        The registered name of the brand who will be engaging with their users needs to be specified. This name must match the name associated with the Facebook Business Manager ID below. You can verify the registered name by visiting: https://business.facebook.com/select/?business_id= Ensure that the name shown exactly matches the one you enter here.
      - `businessManager` (string)
        Business manager.
        Enum: same as `businessManager` in "WhatsappInputAccountPartnerInitiatedDto" (5 values)

## Response 201 fields (application/json):

  - `isEmbeddedSignup` (boolean, required)
    true if the Account was created through Embedded Signup. false otherwise.

  - `businessManager` (string, required)
    Business manager.
    Enum: "SINCH_AMERICA", "SINCH_BR", "SINCH_MX", "SINCH_SEP", "SINCH_UK", "UNRECOGNIZED"

  - `compatibleRegions` (array, required)
    Conversation API app regions the sender can be used for.

  - `state` (string)
    The current state of your account.
    Enum: "ONBOARDED", "PENDING_FACEBOOK_VERIFICATION", "REJECTED"

  - `wabaId` (string)
    WhatsApp Business Manager ID.

  - `changes` (object)
    Any pending changes to the account.

  - `changes.status` (string, required)
    Current status of the pending changes.
    Enum: "DRAFT", "IN_PROGRESS", "PENDING_FACEBOOK_VERIFICATION", "REJECTED"

  - `changes.details` (array) — one of:
    The pending changes to account details and information
    - WhatsappAccountDetailsDto:
      - `clientBusinessManagerId` (string, required)
        The Business Manager ID for the client.
      - `wabaName` (string, required)
        The registered name of the brand who will be engaging with their users.
      - `senderDetails` (object)
        Details of the sender firstly created.
      - `senderDetails.displayName` (string, required)
        Waba display name / used as default display name of new phone at Meta
      - `senderDetails.businessCategory` (string, required)
        Vertical / business category for the business account.
        Enum: "ALCOHOL", "AUTOMOTIVE", "BEAUTY_SPA_SALON", "CLOTHING_AND_APPAREL", "EDUCATION", "ENTERTAINMENT", "EVENT_PLANNING_AND_SERVICE", "FINANCE_AND_BANKING", "FOOD_AND_GROCERY", "HOTEL_AND_LODGING", "MEDICAL_AND_HEALTH", "NON_PROFIT", "NOT_SET", "ONLINE_GAMBLING", "OTC_DRUGS", "OTHER", "PHYSICAL_GAMBLING", "PROFESSIONAL_SERVICES", "PUBLIC_SERVICE", "RESTAURANT", "SHOPPING_AND_RETAIL", "TRAVEL_AND_TRANSPORTATION", "UNRECOGNIZED"
      - `senderDetails.region` (string, required)
        Region for the partner-initiated sender.
        Enum: "BR", "EU", "US", "UNRECOGNIZED"
      - `senderDetails.metaLocalStorage` (string, required)
        Local storage region for the partner-initiated sender.
        Enum: "AE", "AU", "BH", "BR", "CA", "CH", "DE", "GB", "ID", "IN", "JP", "KR", "SG", "US", "ZA", "UNRECOGNIZED", "UNSPECIFIED"
      - `companyLegalName` (string)
        The registered name of the brand who will be engaging with their users.
    - WhatsappAccountChangesDetailsDto:
      - `clientBusinessManagerId` (string)
        The Business Manager ID for the client.
      - `wabaName` (string)
        The registered name of the brand who will be engaging with their users.
      - `senderDetails` (object)
        Details of the sender firstly created.
      - `senderDetails.displayName` (string, required)
        Waba display name / used as default display name of new phone at Meta
      - `senderDetails.businessCategory` (string, required)
        Vertical / business category for the business account.
        Enum: same as `senderDetails.businessCategory` in "WhatsappAccountDetailsDto" (23 values)
      - `senderDetails.region` (string, required)
        Region for the partner-initiated sender.
        Enum: same as `senderDetails.region` in "WhatsappAccountDetailsDto" (4 values)
      - `senderDetails.metaLocalStorage` (string, required)
        Local storage region for the partner-initiated sender.
        Enum: same as `senderDetails.metaLocalStorage` in "WhatsappAccountDetailsDto" (17 values)
      - `companyLegalName` (string)
        The registered name of the brand who will be engaging with their users.

  - `details` (object)
    Account details and information.

  - `details.clientBusinessManagerId` (string, required)
    The Business Manager ID for the client.

  - `details.wabaName` (string, required)
    The registered name of the brand who will be engaging with their users.

  - `details.senderDetails` (object)
    Details of the sender firstly created.

  - `details.senderDetails.displayName` (string, required)
    Waba display name / used as default display name of new phone at Meta

  - `details.senderDetails.businessCategory` (string, required)
    Vertical / business category for the business account.
    Enum: same as `senderDetails.businessCategory` in "WhatsappAccountDetailsDto" (23 values)

  - `details.senderDetails.region` (string, required)
    Region for the partner-initiated sender.
    Enum: same as `senderDetails.region` in "WhatsappAccountDetailsDto" (4 values)

  - `details.senderDetails.metaLocalStorage` (string, required)
    Local storage region for the partner-initiated sender.
    Enum: same as `senderDetails.metaLocalStorage` in "WhatsappAccountDetailsDto" (17 values)

  - `details.companyLegalName` (string)
    The registered name of the brand who will be engaging with their users.

  - `wabaBanState` (string)
    Ban state when account has been banned.
    Enum: "DISABLE", "REINSTATE", "SCHEDULE_FOR_DISABLE", "UNRECOGNIZED"

  - `wabaBanDate` (string)
    The UTC Date Time in ISO 8601 for when account has been banned.

  - `wabaEnabledForInsights` (boolean)
    Template analytics status for account.

  - `wabaEnabledForDirectSend` (boolean)
    Direct Send API status for account.

  - `primaryBusinessLocation` (string)
    Two-letter country code in ISO 3166 standard, specifying the country where business is based
    Enum: "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GT", "GU", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", "SX", "SY", "SZ", "TC", "TD", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "XK", "YE", "YT", "ZA", "ZM", "ZW", "UNRECOGNIZED"

  - `businessDailyLimit` (string)
    Current daily message limit of the account.
    Enum: "NOT_SET", "TIER_100K", "TIER_10K", "TIER_1K", "TIER_250", "TIER_2K", "TIER_50", "TIER_UNLIMITED", "UNRECOGNIZED"

  - `currency` (string)
    The currency code for the account.

  - `partnerInitiatedRequestId` (string)
    Deprecated. This field is retained for backward compatibility and is always returned as undefined.

## Response 400 fields (application/json):

  - `body` (InvalidInputErrorTitle (object) or InvalidBusinessManagerForEnvironmentErrorTitle (object) or InvalidPayloadErrorTitle (object)) — one of:
    - InvalidInputErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "invalid_input"
      - `message` (string)
        Human readable message.
        Example: "Invalid input."
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "Correct the validation errors and submit again."
      - `additionalInformation` (object)
        Additional information for error.
        Example: {"validationErrors":["companyLegalName must be a string"]}
    - InvalidBusinessManagerForEnvironmentErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "invalid_business_manager_for_environment"
      - `message` (string)
        Human readable message.
        Example: "Invalid business manager for environment."
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "Verify that business manager is valid for environment. Allowed business managers for environment SINCH_AMERICA, SINCH_UK."
    - InvalidPayloadErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "invalid_payload"
      - `message` (string)
        Human readable message.
        Example: "Invalid payload."
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "Correct payload and submit again."

## Response 401 fields (application/json):

  - `errorCode` (string)
    Error code allows to programmatically handle errors.
    Example: "unauthorized_error"

  - `message` (string)
    Human readable message.
    Example: "Unauthorized error."

  - `resolution` (string)
    Human readable message with an explanation of how to solve the error.
    Example: "Verify that projectId is correct."

## Response 404 fields (application/json):

  - `errorCode` (string)
    Error code allows to programmatically handle errors.
    Example: "project_not_found"

  - `message` (string)
    Human readable message.
    Example: "Project not found."

  - `resolution` (string)
    Human readable message with an explanation of how to solve the error.
    Example: "Verify that the projectId is correct."

## Response 409 fields (application/json):

  - `body` (AccountExistsErrorTitle (object) or AccountDataIsCorruptErrorTitle (object)) — one of:
    - AccountExistsErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "account_exists"
      - `message` (string)
        Human readable message.
        Example: "Account already exists."
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "There can only be one WhatsApp account for each project. Choose another one project to create a new WhatsApp account."
    - AccountDataIsCorruptErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "account_data_is_corrupt"
      - `message` (string)
        Human readable message.
        Example: "Account data is corrupt."
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "Please contact support."

## Response 500 fields (application/json):

  - `errorCode` (string)
    Error code allows to programmatically handle errors.
    Example: "internal_error"

  - `message` (string)
    Human readable message.
    Example: "Internal server error."

  - `resolution` (string)
    Human readable message with an explanation of how to solve the error.
    Example: "Please wait and try again, if the error persist please contact support."


