## Retrieve a Contact

Retrieve a contact by its ID. The contact_id can be either the internal UID (starting with 'ctc_')
or the external ID provided when the contact was created.

## Endpoint signature

```http
POST https://api.reservepay.com/merchants/retrieve-contact HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Bearer <token>

{
  contact_id: string,
}
```

Returns: object

## Request arguments

### `contact_id` (string)

**Required**. The contact ID (either internal UID or external ID) to retrieve.

## Response attributes

### `contact_id` (string)

**Always present**. The internal unique identifier for the contact.

### `external_id` (string)

_Nullable_. The external ID provided when the contact was created.

### `email` (string)

_Nullable_. The email address of the contact.

### `mobile` (string)

_Nullable_. The mobile number of the contact.

### `name` (string)

_Nullable_. The name of the contact.

### `favorite` (boolean)

**Always present**. Whether the contact is marked as a favorite.

### `created_at` (number)

**Always present**. The Unix timestamp (seconds since epoch) when the contact was created.

### `primary_bank_account` (object)

_Nullable_. The primary bank account for the contact.

### `default_card` (object)

_Nullable_. The default card for the contact.

### `bank_accounts` (array)

**Always present**. The most recent bank accounts associated with the contact (limited to 25 most recent, ordered by creation date descending).

### `cards` (array)

**Always present**. The most recent cards associated with the contact (limited to 25 most recent, ordered by creation date descending).

## Errors specific to this endpoint

### `NOT_FOUND`

No contact found with the provided contact_id.
The contact may not exist or may belong to a different merchant.

## Errors common to all endpoints

### `UNHANDLED_ERROR`

This error occurs when the server encounters an unexpected internal error that
it cannot handle gracefully. This typically happens due to bugs, infrastructure
issues, or edge cases that weren't anticipated during development.

### `INVALID_ARGUMENTS`

This error occurs when the request contains invalid or missing parameters.
Common cases include missing required fields, or values that don't match the
expected format or type.

### `BAD_VERSION`

This error occurs when making requests to an API version that does not exist.
This commonly happens when using an outdated SDK or when the API version
specified in the request URL is incorrect.
