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

# Update a customer

> Updates the given fields. Fields not included are left unchanged.



## OpenAPI

````yaml /api-reference/openapi.json patch /customers/{customer_id}
openapi: 3.0.3
info:
  title: PointZero Card Issuing API
  version: 2026-10
  description: >-
    Issue and manage virtual and physical payment cards.


    All amounts are integers in the smallest currency unit. Requests and
    responses are JSON. Authenticate with a secret API key in the
    `Authorization: Bearer` header; keys starting with `sk_test_` work only in
    the sandbox.


    List endpoints use cursor pagination with `limit` and `starting_after`.
    `POST` requests that create resources accept an `Idempotency-Key` header.
  contact:
    name: PointZero
    email: support@pointzero.io
    url: https://pointzero.io
servers:
  - url: https://api.pointzero.io/v1
    description: Production
  - url: https://sandbox.api.pointzero.io/v1
    description: Sandbox
security:
  - bearerAuth: []
tags:
  - name: Programs
    description: Card programs configured for your account.
  - name: Customers
    description: Individuals and businesses that hold cards.
  - name: Cards
    description: Issue and manage the card lifecycle.
  - name: Authorization Controls
    description: Merchant, country and channel rules.
  - name: 3D Secure
    description: 3DS settings for online payments.
  - name: Wallets
    description: Apple Pay and Google Pay tokens.
  - name: Physical Cards
    description: Production and delivery of plastic cards.
  - name: PIN
    description: PIN management for physical cards.
  - name: Transactions
    description: Authorizations, refunds and settlements.
  - name: Disputes
    description: Chargebacks on card transactions.
paths:
  /customers/{customer_id}:
    patch:
      tags:
        - Customers
      summary: Update a customer
      description: Updates the given fields. Fields not included are left unchanged.
      operationId: updateCustomer
      parameters:
        - $ref: '#/components/parameters/CustomerId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerUpdate'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  parameters:
    CustomerId:
      name: customer_id
      in: path
      required: true
      schema:
        type: string
      example: cus_01JZ8M4X7K
  schemas:
    CustomerUpdate:
      type: object
      minProperties: 1
      properties:
        name:
          type: object
          properties:
            first:
              type: string
              maxLength: 100
              example: Alex
            last:
              type: string
              maxLength: 100
              example: Morgan
        email:
          type: string
          format: email
          example: alex.morgan@example.com
        phone:
          type: string
          description: >-
            Phone number in E.164 format. Required for wallet provisioning and
            3DS OTP delivery.
          example: '+34600000000'
        metadata:
          type: object
          description: >-
            Up to 50 key-value pairs for your own reference. Values are strings
            up to 500 characters.
          additionalProperties:
            type: string
            maxLength: 500
          example:
            cost_center: marketing
    Customer:
      type: object
      description: An individual or business that cards are issued to.
      required:
        - id
        - object
        - type
        - status
        - created_at
      properties:
        id:
          type: string
          description: Unique identifier, prefixed with `cus_`.
          example: cus_01JZ8M4X7K
          readOnly: true
        object:
          type: string
          enum:
            - customer
          description: Object type.
          readOnly: true
        type:
          type: string
          enum:
            - individual
            - business
        external_id:
          type: string
          description: >-
            Your own identifier for this customer. Must be unique within your
            account.
          example: user_10492
        name:
          type: object
          properties:
            first:
              type: string
              maxLength: 100
              example: Alex
            last:
              type: string
              maxLength: 100
              example: Morgan
        email:
          type: string
          format: email
          example: alex.morgan@example.com
        phone:
          type: string
          description: >-
            Phone number in E.164 format. Required for wallet provisioning and
            3DS OTP delivery.
          example: '+34600000000'
        status:
          type: string
          enum:
            - active
            - inactive
        metadata:
          type: object
          description: >-
            Up to 50 key-value pairs for your own reference. Values are strings
            up to 500 characters.
          additionalProperties:
            type: string
            maxLength: 500
          example:
            cost_center: marketing
        created_at:
          type: string
          format: date-time
          description: Time the customer was created.
          readOnly: true
        updated_at:
          type: string
          format: date-time
          description: Time the customer was last updated.
          readOnly: true
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - type
            - message
            - request_id
          properties:
            type:
              type: string
              enum:
                - invalid_request
                - authentication_error
                - permission_error
                - not_found
                - conflict
                - rate_limit
                - api_error
            code:
              type: string
              example: card_not_active
            message:
              type: string
              example: The card must be active to perform this action.
            param:
              type: string
              nullable: true
              example: card_id
            request_id:
              type: string
              example: req_01JZ8R2Q4V
  responses:
    BadRequest:
      description: The request is malformed or missing required parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: The API key is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: The API key does not have access to this resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The resource does not exist.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    UnprocessableEntity:
      description: The request is well-formed but failed validation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: Too many requests. Retry after the time given in `Retry-After`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      headers:
        Retry-After:
          schema:
            type: integer
          description: Seconds to wait before retrying.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Secret API key, e.g. `sk_live_...` or `sk_test_...`.

````

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