PUT /customers/{id}

Update a customer organization (Owner + Distributor + Reseller)

Path parameters

  • id string Required

    Customer Logto ID

application/json

Body Required

  • name string Required

    Organization name (cannot be empty)

    Minimum length is 1.

  • description string

    Organization description

  • custom_data object Required

    Custom organization data (vat field is required)

    Additional properties are allowed.

    Hide custom_data attribute Show custom_data attribute object
    • vat string Required

      VAT number (required, cannot be empty)

      Minimum length is 1.

Responses

  • 200 application/json

    Customer updated successfully

    Hide response attributes Show response attributes object
    • code integer
    • message string
    • data object
      Hide data attributes Show data attributes object
      • id string

        Database UUID of the organization

      • logto_id string

        Logto organization ID (use this value for assignment operations)

      • name string

        Organization name

      • description string

        Organization description

      • custom_data object

        Custom organization data

        Additional properties are allowed.

      • suspended_at string(date-time) | null

        Timestamp when the organization was suspended. NULL means enabled, non-NULL means blocked/suspended.

      • suspended_by_org_id string | null

        Organization ID that caused cascade suspension (for resellers and customers only). NULL means directly suspended or not suspended. When set, the entity can only be reactivated by the parent organization that initiated the cascade.

      • rebranding_enabled boolean

        Whether rebranding is active for this organization (directly or inherited from parent)

      • rebranding_org_id string | null

        The organization ID that provides the rebranding (the org where rebranding is configured). Only present when rebranding_enabled is true.

  • 400 application/json

    Bad request - validation error

    Hide response attributes Show response attributes object
    • code integer

      HTTP error code

    • message string

      Error message

    • data object
      Hide data attributes Show data attributes object
      • type string

        Type of error

        Values are validation_error or external_api_error.

      • errors array[object]
        Hide errors attributes Show errors attributes object
        • key string

          Field name that failed validation

        • message string

          Error code or message

        • value string

          Value that failed validation

      • details

        Additional error details

  • 401 application/json

    Unauthorized - invalid or missing token

    Hide response attributes Show response attributes object
    • code integer
    • message string
    • data object | null
  • 403 application/json

    Forbidden - insufficient permissions

    Hide response attributes Show response attributes object
    • code integer
    • message string
    • data object | null
  • 404 application/json

    Resource not found

    Hide response attributes Show response attributes object
    • code integer

      HTTP error code

    • message string

      Error message

    • data object
      Hide data attributes Show data attributes object
      • type string

        Type of error

        Values are validation_error or external_api_error.

      • errors array[object]
        Hide errors attributes Show errors attributes object
        • key string

          Field name that failed validation

        • message string

          Error code or message

        • value string

          Value that failed validation

      • details

        Additional error details

  • 422 application/json

    Unprocessable entity - business logic error

    Hide response attributes Show response attributes object
    • code integer

      HTTP error code

    • message string

      Error message

    • data object
      Hide data attributes Show data attributes object
      • type string

        Type of error

        Values are validation_error or external_api_error.

      • errors array[object]
        Hide errors attributes Show errors attributes object
        • key string

          Field name that failed validation

        • message string

          Error code or message

        • value string

          Value that failed validation

      • details

        Additional error details

PUT /customers/{id}
curl \
 --request PUT 'https://collect.your-domain.com/api/customers/jf584cz36kce' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --data '{"name":"ACME Distribution SpA","description":"Main distributor for Italian and Swiss markets","custom_data":{"vat":"IT12345678901","email":"contact@acme-distribution.com","region":"Italy","contactPerson":"John Smith"}}'
Request examples
{
  "name": "ACME Distribution SpA",
  "description": "Main distributor for Italian and Swiss markets",
  "custom_data": {
    "vat": "IT12345678901",
    "email": "contact@acme-distribution.com",
    "region": "Italy",
    "contactPerson": "John Smith"
  }
}
Response examples (200)
{
  "code": 200,
  "message": "customer updated successfully",
  "data": {
    "id": "4405ffd0-0aca-44ef-bae2-c8545bce94f4",
    "logto_id": "akkbs6x2wo82",
    "name": "ACME Distribution SpA",
    "description": "Main distributor for Italian and Swiss markets",
    "custom_data": {
      "email": "contact@acme-distribution.com",
      "region": "Italy",
      "contactPerson": "John Smith"
    },
    "suspended_at": "2026-05-04T09:42:00Z",
    "suspended_by_org_id": "string",
    "rebranding_enabled": false,
    "rebranding_org_id": "string"
  }
}
Response examples (400)
{
  "code": 400,
  "message": "validation failed",
  "data": {
    "type": "validation_error",
    "errors": [
      {
        "key": "username",
        "message": "required",
        "value": "string"
      }
    ]
  }
}
Response examples (401)
{
  "code": 401,
  "message": "invalid token",
  "data": {}
}
Response examples (403)
{
  "code": 403,
  "message": "insufficient permissions",
  "data": {}
}
Response examples (404)
{
  "code": 400,
  "message": "validation failed",
  "data": {
    "type": "validation_error",
    "errors": [
      {
        "key": "username",
        "message": "required",
        "value": "string"
      }
    ]
  }
}
Response examples (422)
{
  "code": 400,
  "message": "validation failed",
  "data": {
    "type": "validation_error",
    "errors": [
      {
        "key": "username",
        "message": "required",
        "value": "string"
      }
    ]
  }
}