# Register sender for project

Triggers sender registration with the requested method. An OTP code will be sent over the requested method that will need to be used in the Verify sender endpoint.

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

## Security:

  - `BasicAuth` (unknown)
    http basic

  - `BearerAuth` (unknown)
    http bearer JWT

  - `OAuth2Production` (unknown)
    oauth2

## Path parameters:

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

  - `senderId` (string, required)
    The unique ID of the sender.

## Request body:

  - `application/json` (unknown)
    Sender register data

## Request fields (application/json):

  - `method` (string, required)
    Registration Method of the sender.
    Enum: "SMS", "VOICE"

## Request examples:

  - `Body request` (unknown)
    Example body request to register.

## Response 200 fields (application/json):

  - `id` (string, required)
    The unique ID of the sender.

  - `method` (string, required)
    Registration Method of the sender.
    Enum: "SMS", "VOICE", "UNRECOGNIZED"

  - `accepted` (string, required)
    The UTC Date Time in ISO 8601 for when the sender was accepted.

  - `verificationCodeSent` (boolean, required)
    Whether the verification code has been sent.

## Response 400:

  - `400` (unknown)
    BadRequest

## Response 400 fields (application/json):

  - `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":["method must be one of the following values: SMS, VOICE"]}

## Response 401:

  - `401` (unknown)
    Unauthorized

## 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:

  - `404` (unknown)
    NotFound

## Response 404 fields (application/json):

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

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

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

## Response 409:

  - `409` (unknown)
    Conflict

## Response 409 fields (application/json):

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

  - `message` (string)
    Human readable message.
    Example: Sender not allowed to be registered.

  - `resolution` (string)
    Human readable message with an explanation of how to solve the error.
    Example: Only "PENDING_VERIFICATION" sender can be registered.

## Response 429:

  - `429` (unknown)
    TooManyRequests

## Response 429 fields (application/json):

  - `errorCode` (string)
    Error code allows to programmatically handle errors.
    Example: sender-register-too-many-requests

  - `message` (string)
    Human readable message.
    Example: Sender register too many requests.

  - `resolution` (string)
    Human readable message with an explanation of how to solve the error.
    Example: Register sender request limits reached. Please try again later.

## Response 500:

  - `500` (unknown)
    InternalServerError

## 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.

## Response 200 examples:

  - `Register response` (unknown)
    Response when successfully register a sender.

  - `Phone number already registered` (unknown)
    Response when the phone number is already registered.

