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

# Update cardholder profile

> Required permission: holders:write. Updating a live holder profile requires a new verification review and is blocked while issuance is pending. Objects are scoped to the authenticated company and environment.



## OpenAPI

````yaml https://specs.planewallet.org/openapi.json PATCH /api/v1/holders/{id}
openapi: 3.0.3
info:
  title: Plane Business API
  version: 1.1.0
  description: >-
    Company-scoped cards and services. Create keys in the Developers section.
    Operations reserve funds and return queued. Poll operations/{id} or
    subscribe to webhooks for completion. Unknown outcomes remain in
    manual_review with funds held. All API keys, including sandbox, require
    approved individual or corporate verification. Individual issuance is
    limited to 500 cards per UTC calendar month including pending requests;
    verified corporate workspaces have no monthly issuance quota. Issuance costs
    3 USD plus 0.2% of the initial card funding, minimum 10 USD. Subsequent card
    top-ups cost 0.2%, minimum 10 USD. Direct card-account deposits incur 1.5%,
    deducted from the deposit. TRON wallet funds are separate from the
    card-account ledger. Live services and direct issuer invoices require
    dedicated activation. Webhooks carry a Plane-Signature header:
    t=<unix_seconds>,v1=<HMAC_SHA256(secret,t + "." + raw_body)>. Verify the
    signature and timestamp tolerance, deduplicate by event ID, then acknowledge
    with 2xx. API keys must never be embedded in client applications.
servers:
  - url: https://business.planewallet.org
security: []
paths:
  /api/v1/holders/{id}:
    patch:
      summary: Update cardholder profile
      description: >-
        Required permission: holders:write. Updating a live holder profile
        requires a new verification review and is blocked while issuance is
        pending. Objects are scoped to the authenticated company and
        environment.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
                - profile
              properties:
                profile:
                  $ref: '#/components/schemas/HolderProfile'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Holder'
        '400':
          description: Validation or business rule failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Invalid or revoked API key
        '403':
          description: Scope, verification or capability denied
        '404':
          description: Object not found in this company
        '409':
          description: Idempotency payload conflict or changed quote
        '429':
          description: Rate limited
      security:
        - bearerAuth: []
components:
  schemas:
    HolderProfile:
      type: object
      additionalProperties: false
      required:
        - firstName
        - lastName
        - billingAddress
      properties:
        firstName:
          type: string
        lastName:
          type: string
        billingAddress:
          type: object
          additionalProperties: false
          required:
            - address1
            - city
            - state
            - country
            - zip
          properties:
            address1:
              type: string
            address2:
              type: string
            city:
              type: string
            state:
              type: string
            country:
              type: string
              pattern: ^[A-Z]{2}$
            zip:
              type: string
            phone:
              type: string
    Holder:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        email:
          type: string
        kind:
          type: string
        status:
          type: string
        externalId:
          type: string
        profile:
          $ref: '#/components/schemas/HolderProfile'
    Error:
      type: object
      properties:
        statusCode:
          type: integer
        message:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Plane API key

````

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