# 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
- NICE CXone
- Dialpad
- Generic

Requires the `read_conversations` OAuth scope.

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

## Header parameters:

  - `Intercom-Version` (string)

## 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", "nice_cxone", "dialpad", "generic", or "aws_connect". Defaults to "aws_connect", and any other value is treated as "aws_connect".
    Enum: "five9", "zoom_phone", "nice_cxone", "dialpad", "generic", "aws_connect"

  - `vendor_internal_id` (string)
    Optional vendor-supplied identifier for linking the Fin Voice session to records in the vendor's own systems. Stored as-is and returned on every lookup. Cannot exceed 191 characters.
    Example: vendor-internal-abc-123

  - `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

  - `vendor_internal_id` (string)
    Vendor-supplied identifier provided at registration time, for linking the Fin Voice session to records in the vendor's own systems. Null when the vendor did not supply one.
    Example: vendor-internal-abc-123

  - `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: []

  - `fin_call_duration` (string)
    How long the most recent AI Agent (Fin) part of the call lasted, in seconds, returned as a string. Null until the call is matched and that part has ended, or when the call has no AI Agent part.
    Example: 45

  - `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` (any, required)
    A string indicating the kind of error, used to further qualify the HTTP response code. A few request validation errors send an HTTP status code as an integer here instead, for example `422`.
    Example: unauthorized

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

## 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` (any, required)
    A string indicating the kind of error, used to further qualify the HTTP response code. A few request validation errors send an HTTP status code as an integer here instead, for example `422`.
    Example: unauthorized

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

## 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` (any, required)
    A string indicating the kind of error, used to further qualify the HTTP response code. A few request validation errors send an HTTP status code as an integer here instead, for example `422`.
    Example: unauthorized

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

