> ## Documentation Index
> Fetch the complete documentation index at: https://docs.keette.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Beneficiary

> Update mutable fields only (nickname, email, relationship, address).
Routing and scheme cannot change — create a new beneficiary instead.




## OpenAPI

````yaml /openapi.yaml patch /beneficiaries/{id}
openapi: 3.1.0
info:
  title: Keette API
  version: 1.0.0
  description: |
    Public HTTP API for Keette workspaces. One base URL — live vs sandbox is
    selected by your API key (`sk_live_…` / `sk_test_…`).

    Endpoints are added as each implementation phase ships.
  contact:
    name: Keette Support
    email: talk@keette.com
servers:
  - url: https://20b9-41-90-209-232.ngrok-free.app/v1
    description: Local (ngrok)
  - url: https://api.keette.com/v1
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Account
    description: Identity for the authenticating API key
  - name: Balances
    description: Wallet books
  - name: Beneficiaries
    description: Payout recipients
  - name: Transactions
    description: Unified transaction index
  - name: FX
    description: Indicative rates and firm quotes
  - name: Catalog
    description: Payout corridors and relationships
  - name: Payouts
    description: Send money to a beneficiary
  - name: Payins
    description: Collect money into your books
  - name: Swaps
    description: FX between your own books
  - name: Events
    description: Durable event log for webhook polling
paths:
  /beneficiaries/{id}:
    patch:
      tags:
        - Beneficiaries
      summary: Update Beneficiary
      description: |
        Update mutable fields only (nickname, email, relationship, address).
        Routing and scheme cannot change — create a new beneficiary instead.
      operationId: updateBeneficiary
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Beneficiary id.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateBeneficiaryRequest'
            examples:
              nickname:
                value:
                  nickname: Ada (supplier)
                  email: ada@example.com
      responses:
        '200':
          description: Updated beneficiary
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Beneficiary'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    UpdateBeneficiaryRequest:
      type: object
      properties:
        nickname:
          type: string
          description: Display label for lists and the dashboard.
        email:
          type: string
          format: email
          description: Contact email.
        relationship:
          type: string
          description: Relationship code (see corridors catalog).
        address:
          $ref: '#/components/schemas/Address'
    Beneficiary:
      type: object
      properties:
        object:
          type: string
          enum:
            - beneficiary
          description: Object type discriminator.
        id:
          type: string
          format: uuid
          description: Beneficiary id — pass as `beneficiary_id` on payouts.
        kind:
          type: string
          enum:
            - person
            - business
          description: Recipient type.
        name:
          type: string
          description: Display name derived from person or business fields.
        first_name:
          type: string
          description: Given name when `kind` is `person`.
        last_name:
          type: string
          description: Family name when `kind` is `person`.
        business_name:
          type: string
          description: Legal name when `kind` is `business`.
        nickname:
          type: string
          description: Optional display label.
        email:
          type: string
          description: Contact email.
        relationship:
          type: string
          description: Relationship to your workspace.
        address:
          $ref: '#/components/schemas/Address'
        currency:
          type: string
          description: Currency the recipient is paid in.
        country:
          type: string
          description: Corridor country.
        method:
          type: string
          description: High-level rail family (`bank`, `mobile_money`, …).
        scheme:
          type: string
          description: Corridor scheme id.
        scheme_label:
          type: string
          description: Human-readable scheme name.
        settlement:
          type: string
          description: Typical settlement timing (e.g. Instant, Same day).
        holder_name:
          type: string
          description: Account holder name on the rail.
        routing:
          type: object
          additionalProperties: true
          description: Scheme-specific account identifiers (may be partially masked).
        route_label:
          type: string
          description: Short label for the destination account.
        status:
          type: string
          description: Lifecycle status (`active`, `archived`, …).
        missing_fields:
          type: array
          items:
            type: string
          description: Fields still required before the beneficiary can be paid.
        created_at:
          type: string
          format: date-time
          description: When the beneficiary was created (UTC).
        updated_at:
          type: string
          format: date-time
          description: When the beneficiary was last updated (UTC).
        archived_at:
          type: string
          format: date-time
          description: When archived, if applicable.
        livemode:
          type: boolean
          description: '`true` when created with a live key.'
        environment:
          type: string
          enum:
            - live
            - sandbox
          description: Environment of the creating API key.
    Address:
      type: object
      description: Postal address for the recipient when the corridor requires it.
      properties:
        line_1:
          type: string
          description: Street address line 1.
        line_2:
          type: string
          description: Street address line 2.
        city:
          type: string
          description: City or town.
        state:
          type: string
          description: State, province, or region.
        postal_code:
          type: string
          description: Postal or ZIP code.
        country:
          type: string
          description: ISO 3166-1 alpha-2 country code.
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - type
            - code
            - message
          properties:
            type:
              type: string
              description: Broad error class for client handling.
              enum:
                - invalid_request
                - authentication_error
                - permission_error
                - rate_limit
                - api_error
            code:
              type: string
              description: Stable machine-readable code (e.g. `parameter_invalid`).
            message:
              type: string
              description: Human-readable explanation safe to show developers.
            param:
              type: string
              description: Request field that failed validation, when applicable.
            doc_url:
              type: string
              format: uri
              description: Optional link to docs for this error.
  responses:
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              type: authentication_error
              code: invalid_api_key
              message: Invalid API key provided.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: |
        Secret API key from **Settings → Developers → API keys**.
        Example: `Authorization: Bearer sk_test_…`

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.