# Register a Fin Voice call

Register a Fin Voice call with Intercom. This endpoint creates an external reference
that links an external call identifier to an Intercom call and conversation.

The call can be from different sources:
- AWS Connect (default)
- Five9
- Zoom Phone

Endpoint: POST /fin_voice/register
Version: Preview
Security: bearerAuth

## Request fields (application/json):

  - `phone_number` (string, required)
    Phone number in E.164 format for the call
    Example: +1234567890

  - `call_id` (string, required)
    External call identifier from the call provider
    Example: call-123-abc

  - `source` (string)
    Source of the call. Can be "five9", "zoom_phone", or defaults to "aws_connect"
    Enum: "five9", "zoom_phone", "aws_connect"

  - `data` (object)
    Additional metadata about the call
    Example: {"key":"value"}

## Response 200 fields (application/json):

  - `id` (integer)
    The unique identifier for the external reference
    Example: 12345

  - `app_id` (integer)
    The workspace identifier
    Example: 12345

  - `user_phone_number` (string)
    Phone number in E.164 format for the call
    Example: +1234567890

  - `status` (string)
    Status of the call. Can be "registered", "in-progress", or a resolution state
    Example: registered

  - `intercom_call_id` (string)
    The Intercom call identifier, if the call has been matched
    Example: 1234

  - `external_call_id` (string)
    The external call identifier from the call provider
    Example: call-123-abc

  - `intercom_conversation_id` (string)
    The Intercom conversation identifier, if a conversation has been created
    Example: 5678

  - `call_transcript` (array)
    Array of transcript entries for the call
    Example: []

  - `call_summary` (string)
    Summary of the call conversation, truncated to 256 characters. Empty string if no summary available.
    Example: Customer called about billing issue...

  - `intent` (array)
    Array of intent classifications for the call
    Example: []

  - `attributes` (object)
    The conversation attributes Fin classified on this call, as attribute name to value. Empty object when the number has no classification attributes configured or none were set.
    Example: {"Intent Type":"Sales","Sales Category":"Enterprise Sales"}

  - `data` (object)
    The metadata object supplied when the call was registered, returned verbatim. Empty object when none was supplied.
    Example: {"masterContactID":"abc123","DNIS":"+18005551212"}

  - `language` (string)
    The language of the call's conversation, as a locale code. Null until the call is matched to a conversation or while no language has been set.
    Example: fr

## Response 400 fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: error.list

  - `request_id` (string)
    Example: f93ecfa8-d08a-4325-8694-89aeb89c8f85

  - `errors` (array, required)
    An array of one or more error objects

  - `errors.code` (string, required)
    A string indicating the kind of error, used to further qualify the HTTP response code
    Example: unauthorized

  - `errors.message` (string)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

  - `errors.field` (string)
    Optional. Used to identify a particular field or query parameter that was in error.
    Example: email

## Response 409 fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: error.list

  - `request_id` (string)
    Example: f93ecfa8-d08a-4325-8694-89aeb89c8f85

  - `errors` (array, required)
    An array of one or more error objects

  - `errors.code` (string, required)
    A string indicating the kind of error, used to further qualify the HTTP response code
    Example: unauthorized

  - `errors.message` (string)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

  - `errors.field` (string)
    Optional. Used to identify a particular field or query parameter that was in error.
    Example: email

## Response default fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: error.list

  - `request_id` (string)
    Example: f93ecfa8-d08a-4325-8694-89aeb89c8f85

  - `errors` (array, required)
    An array of one or more error objects

  - `errors.code` (string, required)
    A string indicating the kind of error, used to further qualify the HTTP response code
    Example: unauthorized

  - `errors.message` (string)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

  - `errors.field` (string)
    Optional. Used to identify a particular field or query parameter that was in error.
    Example: email

