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

# Update a recipient

> Updates the `accountHolderName` and/or `details` of an existing recipient. The recipient must belong to your account. Provide at least one field to update.

**Wallet verification:** `wallet` is required and must be a KYC-verified wallet (EVM or SVM). Unverified wallets are rejected with `403` — verify your wallet at kyc.madhousewallet.com.

Note: MW may issue a new recipient `id` after an update — always use the `id` from the response for subsequent calls.

**Country format:** If `details.address` is included in the update, `details.address.country` must be a valid ISO 3166-1 alpha-2 code (e.g. `US`, `GB`, `DE`). Updates that don't touch the address leave the existing stored country untouched.

**Compliance screening:** If `accountHolderName` is included in the request, the new value is screened against the sanctions database. The screen uses the same name + country + address algorithm as `POST /api/payouts/recipients`. Country and address come from the new `details.address` when provided, otherwise from the existing recipient. Matches are rejected with `403` and the recipient is left unchanged.

**Rate limit:** 30 requests/minute.



## OpenAPI

````yaml /openapi.json patch /api/payouts/recipients/{id}
openapi: 3.0.3
info:
  title: MW Payouts API
  version: 1.0.0
  description: >-
    The MW Payouts API lets you programmatically retrieve exchange-rate quotes,
    calculate platform fees, and submit USDC-to-fiat payout transfers on behalf
    of your account.


    All requests must be authenticated with an API key obtained from the
    **Developers** section of the dashboard. API keys are for **server-side use
    only** — never embed them in client-side code.
  contact:
    name: MW Support
    email: support@madhousewallet.com
servers:
  - url: https://business.madhousewallet.com
    description: Production
security:
  - BearerAuth: []
tags:
  - name: Payouts
    description: USDC-to-fiat payout operations
  - name: Recipients
    description: Payout recipient management
paths:
  /api/payouts/recipients/{id}:
    patch:
      tags:
        - Recipients
      summary: Update a recipient
      description: >-
        Updates the `accountHolderName` and/or `details` of an existing
        recipient. The recipient must belong to your account. Provide at least
        one field to update.


        **Wallet verification:** `wallet` is required and must be a KYC-verified
        wallet (EVM or SVM). Unverified wallets are rejected with `403` — verify
        your wallet at kyc.madhousewallet.com.


        Note: MW may issue a new recipient `id` after an update — always use the
        `id` from the response for subsequent calls.


        **Country format:** If `details.address` is included in the update,
        `details.address.country` must be a valid ISO 3166-1 alpha-2 code (e.g.
        `US`, `GB`, `DE`). Updates that don't touch the address leave the
        existing stored country untouched.


        **Compliance screening:** If `accountHolderName` is included in the
        request, the new value is screened against the sanctions database. The
        screen uses the same name + country + address algorithm as `POST
        /api/payouts/recipients`. Country and address come from the new
        `details.address` when provided, otherwise from the existing recipient.
        Matches are rejected with `403` and the recipient is left unchanged.


        **Rate limit:** 30 requests/minute.
      operationId: updateRecipient
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            example: 12345678
          description: Recipient account ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateRecipientRequest'
            example:
              accountHolderName: Jane Smith
              details:
                legalType: PRIVATE
                iban: DE89370400440532013000
              wallet: '0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B'
      responses:
        '200':
          description: Recipient updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Recipient'
        '400':
          description: >-
            No update fields provided, invalid values, or `wallet` is invalid /
            missing when your account requires KYC verification (must be a valid
            EVM or SVM address)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            Recipient not owned by your account, new `accountHolderName` failed
            compliance screening, or `wallet` is not KYC-verified — verify it at
            kyc.madhousewallet.com
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Recipient not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded (30 req/min)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: >-
            Compliance screening or wallet verification service unavailable.
            Retry after a short delay.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    UpdateRecipientRequest:
      type: object
      description: >-
        At least one of `accountHolderName` / `details` must be provided.
        `wallet` is conditionally required — only needed if your account
        requires KYC verification.
      properties:
        accountHolderName:
          type: string
          description: Updated full legal name of the account holder
          example: Jane Smith
        details:
          type: object
          description: >-
            Updated account details. Must include all required fields for the
            recipient's account type, not just the changed ones.
          example:
            legalType: PRIVATE
            iban: DE89370400440532013000
        wallet:
          type: string
          description: >-
            Your wallet address (EVM `0x` + 40 hex, or Solana base58 32–44
            chars). Conditionally required: only needed if your account requires
            KYC verification. When required, it must be a KYC-verified wallet —
            unverified wallets are rejected with `403` (verify at
            kyc.madhousewallet.com). If KYC is not enabled for your account,
            this field may be omitted.
          example: '0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B'
    Recipient:
      type: object
      description: A payout recipient account
      properties:
        id:
          type: integer
          description: Recipient account ID
          example: 12345678
        accountHolderName:
          type: string
          description: Name on the account
          example: Jane Doe
        currency:
          type: string
          description: ISO 4217 currency code
          example: EUR
        country:
          type: string
          description: ISO 3166-1 alpha-2 country code
          example: DE
          nullable: true
        type:
          type: string
          description: Account type (e.g. iban, sort_code, aba)
          example: iban
        active:
          type: boolean
          description: Whether the recipient is active
          example: true
        details:
          type: object
          description: Account-type-specific details (routing/account numbers, IBAN, etc.)
      required:
        - id
        - accountHolderName
        - currency
        - type
        - active
        - details
    Error:
      type: object
      properties:
        error:
          type: string
          description: Human-readable error message
      required:
        - error
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Pass your API key as a Bearer token: `Authorization: Bearer
        mw_live_<keyId>_<secret>`

````