# CreatePartner

## Permission Scope

partner

## Overview

Creates a globally reusable BusinessPartner identity with `status=ACTIVE`.

## Business Rules

- Name is required and non-empty
- Type is ORGANIZATION or INDIVIDUAL and is immutable
- Company and currency settings belong to accounts, not the partner

## Process Flow

```mermaid
flowchart TD
    A[Receive request] --> B{Name valid?}
    B -->|No| C[Return invalid name]
    B -->|Yes| D[Create active partner]
    D --> E[Return partner]
```

## External Dependencies

- None

## Error Scenarios

- **INVALID_NAME**: Name is empty, whitespace-only, or not provided

## Test Cases

- creates an active partner
- returns error when name is empty
- passes custom fields through to the repository
