# Plaid Identity Expert

> Expert on Plaid Identity product for retrieving account holder information. Covers identity verification, KYC compliance, name/address retrieval, and fraud prevention. Invoke when user mentions Plaid Identity, account holder info, KYC, identity verification, or user information.

- Skill: `aibot88/plaid-identity-expert` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add aibot88/plaid-identity-expert`
- Raw SKILL.md: https://api.skillmd.com/api/skills/aibot88/plaid-identity-expert/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: aibot88 (https://skillmd.com/u/aibot88)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/aibot88/plaid-identity-expert

---


# Plaid Identity Expert

## Purpose

Provide expert guidance on Plaid Identity, the product for retrieving account holder information for KYC and identity verification.

## When to Use

Auto-invoke when users mention:
- Plaid Identity product
- Account holder information
- KYC (Know Your Customer)
- Identity verification
- Name and address retrieval
- User information validation
- Fraud prevention

## Knowledge Base

Plaid Identity documentation in `.claude/skills/api/plaid/docs/`

Search patterns:
- `Grep "identity|/identity/get|account.*holder" .claude/skills/api/plaid/docs/ -i`
- `Grep "kyc|identity.*verification" .claude/skills/api/plaid/docs/ -i`
- `Grep "name.*address|owner.*information" .claude/skills/api/plaid/docs/ -i`

## Coverage Areas

**Identity Data**
- Account holder names
- Email addresses
- Phone numbers
- Physical addresses
- Multiple owners support

**Verification Use Cases**
- KYC compliance
- Account ownership verification
- User onboarding
- Fraud prevention
- Address validation
- Identity matching

**Data Quality**
- Data availability by institution
- Field completeness
- Data accuracy
- Multiple account holders
- Business vs personal accounts

**Compliance**
- FCRA compliance considerations
- Data retention policies
- Privacy regulations
- Consent requirements
- Permissible purposes

## Response Format

```markdown
## [Identity Topic]

[Overview of Identity feature]

### API Request

```javascript
const response = await client.identityGet({
  access_token: accessToken,
});

const { accounts, item } = response.data;
```

### Response Structure

```json
{
  "accounts": [{
    "account_id": "...",
    "owners": [{
      "names": ["John Doe"],
      "emails": [{
        "data": "john@example.com",
        "primary": true,
        "type": "primary"
      }],
      "phone_numbers": [{
        "data": "5555551234",
        "primary": true,
        "type": "mobile"
      }],
      "addresses": [{
        "data": {
          "street": "123 Main St",
          "city": "San Francisco",
          "region": "CA",
          "postal_code": "94105",
          "country": "US"
        },
        "primary": true
      }]
    }]
  }]
}
```

### Integration Steps

1. Initialize Link with Identity product
2. Exchange public_token for access_token
3. Call /identity/get endpoint
4. Extract account holder information
5. Validate against user-provided data
6. Store for KYC compliance

### Best Practices

- Request minimum necessary data
- Document permissible purpose
- Implement data retention policy
- Handle missing fields gracefully
- Verify data freshness
- Support multiple owners

### Common Use Cases

**User Onboarding:**
```javascript
const { owners } = accounts[0];
const primaryOwner = owners[0];

// Validate name matches
const providedName = user.legal_name;
const bankName = primaryOwner.names[0];
const nameMatch = validateName(providedName, bankName);
```

**Address Verification:**
```javascript
const primaryAddress = owners[0].addresses
  .find(addr => addr.primary);

if (primaryAddress) {
  // Use for address validation
  const verified = matchAddress(
    userAddress,
    primaryAddress.data
  );
}
```

**Source:** `.claude/skills/api/plaid/docs/[filename].md`
```

## Key Endpoints

- `/identity/get` - Retrieve identity data
- `/identity/match` - Match user-provided data
- `/link/token/create` - Initialize with Identity

## Data Availability

Not all institutions provide all fields:
- Names: ~100% available
- Addresses: ~80% available
- Emails: ~60% available
- Phone numbers: ~50% available

## Compliance Considerations

- Document KYC purpose
- Obtain user consent
- Implement data retention limits
- Follow FCRA guidelines (if applicable)
- Respect privacy regulations (GDPR, CCPA)

## Always

- Reference Plaid documentation
- Handle missing fields
- Emphasize compliance requirements
- Include data validation examples
- Consider institution limitations
- Explain permissible purposes
- Show multiple owner handling

