# Add test numbers to sender for project

Returns updated test number states of sender for a project.

    Please note that if you re-add verified number, state will be changed to unverified and an invite to become a tester will be sent again.

Endpoint: POST /v1/projects/{projectId}/rcs/senders/{senderId}/testNumbers
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.

  - `senderId` (string, required)

## Request fields (application/json):

  - `testNumbers` (array, required)
    Phone numbers for testing. An agent can send 20 tester requests each day with a total maximum of 200 tester requests.

## Response 200 fields (application/json):

  - `testNumbers` (array, required)
    Test numbers states.

  - `testNumbers.number` (string, required)
    Test phone number.

  - `testNumbers.state` (string, required)
    Test phone state.
    Enum: "DECLINED", "INVALID", "PENDING", "REJECTED", "UNVERIFIED", "VERIFIED", "UNRECOGNIZED"

  - `testNumbers.submitted` (string, required)
    Date of submitting phone number.

## Response 400 fields (application/json):

  - `body` (InvalidIdFormatErrorTitle (object) or InvalidInputErrorTitle (object) or NoGoogleSupplierErrorTitle (object) or AddTestNumberInvalidErrorTitle (object) or InvalidRegionForAttSupplierErrorTitle (object)) — one of:
    - InvalidIdFormatErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "invalid_id_format"
      - `message` (string)
        Human readable message.
        Example: "Id is not in the expected format."
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "senderId param is in the wrong format. Confirm that you're sending the correct value."
    - 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":["each value in testNumbers must be a string"]}
    - NoGoogleSupplierErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "no_google_supplier"
      - `message` (string)
        Human readable message.
        Example: "No google supplier in sender."
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "Verify that the sender has google supplier."
    - AddTestNumberInvalidErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "add_test_number_invalid"
      - `message` (string)
        Human readable message.
        Example: "Invalid phone number."
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "Please verify that phone number is correct."
    - InvalidRegionForAttSupplierErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "invalid_region_for_att_supplier"
      - `message` (string)
        Human readable message.
        Example: "Invalid region for ATT supplier."
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "ATT supplier is only allowed in the US region."

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

  - `body` (ProjectNotFoundErrorTitle (object) or SenderNotFoundErrorTitle (object) or AddTestNumberNotAllowedBeforeLaunchErrorTitle (object) or BlockedBecauseTheRecipientDeclinedErrorTitle (object) or UserCannotBeReachedErrorTitle (object)) — one of:
    - ProjectNotFoundErrorTitle:
      - `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."
    - SenderNotFoundErrorTitle:
      - `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."
    - AddTestNumberNotAllowedBeforeLaunchErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "add_test_number_not_allowed_before_launch"
      - `message` (string)
        Human readable message.
        Example: "Adding test number not allowed before launch."
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "Carrier does not allow test number to be created prior to sender launch."
    - BlockedBecauseTheRecipientDeclinedErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "blocked_because_the_recipient_declined"
      - `message` (string)
        Human readable message.
        Example: "Blocked because the recipient declined."
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "This operation is blocked because the recipient declined the invitation to become a tester."
    - UserCannotBeReachedErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "user_cannot_be_reached"
      - `message` (string)
        Human readable message.
        Example: "message"
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "Verify that the user has RCS feature available."

## Response 429 fields (application/json):

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

  - `message` (string)
    Human readable message.
    Example: "RCS Business Messaging too many requests."

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

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


