# UpdatePartner

## Permission Scope

partner

## Overview

Updates mutable identity fields on a BusinessPartner.

## Business Rules

- Partner must exist
- Name, when supplied, is non-empty
- Type, company scope, and currency are not mutable partner fields

## Process Flow

```mermaid
flowchart TD
    A[Receive request] --> B{Partner exists?}
    B -->|No| C[Return not found]
    B -->|Yes| D{Name valid?}
    D -->|No| E[Return invalid name]
    D -->|Yes| F[Save partner]
```

## External Dependencies

- None

## Error Scenarios

- **PARTNER_NOT_FOUND**: Specified partner ID does not exist
- **INVALID_NAME**: Name is empty, whitespace-only, or not provided

## Test Cases

- updates partner name
- returns existing partner for no-op update
- returns error when partner not found
- returns error when name is empty
- passes custom fields through to the repository
