# Get test number capabilities of sender for project

Returns test number capabilities of sender for a project.

Endpoint: GET /v1/projects/{projectId}/rcs/senders/{senderId}/testNumbers/{testNumber}/capabilities
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)
    The unique ID of the sender.

  - `testNumber` (string, required)
    the user's phone number in E.164 format. For example, for a user with the US phone number +1-222-333-4444, the resulting parameter is '+12223334444'.

## Response 200 fields (application/json):

  - `features` (array, required)
    List of RBM features that this device supports.

## Response 400 fields (application/json):

  - `body` (InvalidIdFormatErrorTitle (object) or NoGoogleSupplierErrorTitle (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."
    - 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."

## 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 403 fields (application/json):

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

  - `message` (string)
    Human readable message.
    Example: "Wrong supplier configuration is used, configuration needs to be setup via SI team"

  - `resolution` (string)
    Human readable message with an explanation of how to solve the error.
    Example: "Please reach out to support at si-richmessaging@sinch.com"

## Response 404 fields (application/json):

  - `body` (SenderNotFoundErrorTitle (object) or UserIsNotTesterForAgentErrorTitle (object) or LookingUpTheRbmAgentErrorTitle (object) or BlockedBecauseTheRecipientDeclinedErrorTitle (object) or UserHasNotAcceptedInviteErrorTitle (object) or UserCannotBeReachedErrorTitle (object)) — one of:
    - 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."
    - UserIsNotTesterForAgentErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "user_is_not_tester_for_agent"
      - `message` (string)
        Human readable message.
        Example: "Test number not found."
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "Add test number to agent."
    - LookingUpTheRbmAgentErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "looking_up_the_rbm_agent"
      - `message` (string)
        Human readable message.
        Example: "Looking up the RBM agent."
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "There was an error looking up the RBM agent."
    - 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."
    - UserHasNotAcceptedInviteErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "user_has_not_accepted_invite"
      - `message` (string)
        Human readable message.
        Example: "User has not accepted invite to become tester for agent."
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "Please wait and try again later."
    - 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."


