---
title: "Update profile (any type)"
method: PUT
path: "/group-profile/v1/profiles/{profileId}"
tags: ["Profile"]
---

# Update profile (any type)

`PUT /group-profile/v1/profiles/{profileId}`

## Request

- Base URL: `https://api.cloudbeds.com`
- URL: `https://api.cloudbeds.com/group-profile/v1/profiles/{profileId}`
- Auth: HTTP bearer

Update a company, group, or travel agent profile. The profile type is determined from existing data and cannot be changed.

## Path parameters

- `profileId` integer, required

## Headers

- `x-property-id` integer
- `x-organization-id` integer, required

## Request body

- UpdateProfileRequest
  - `id` string: Unique identifier for the profile
  - `profileType` 'COMPANY' | 'GROUP' | 'TRAVEL_AGENT': Profile type
  - `code` string, required: Profile code (company code, group code, or IATA number for travel agents)
  - `name` string, required: Profile name (company name, group name, or agency name)
  - `status` 'PENDING' | 'ACTIVE' | 'INACTIVE' | 'CANCELLED' | 'ARCHIVED', required: Profile status
  - `cellPhone` string: Cell phone number
  - `phone` string: Primary phone number
  - `email` string, email: Primary email address
  - `externalCrmId` string: External CRM system reference ID
  - `optIn` boolean: Opt-in status
  - `optInType` 'MARKETING' | 'TRANSACTIONAL': Type of opt-in
  - `optInMethods` 'EMAIL' | 'SMS' | 'NOTIFICATION': Opt-in communication method
  - `address` Address: Flexible address object with country-specific fields. The countryCode determines the expected address format. All address fields except id and countryCode are stored as dynamic properties. Common fields include: address1, address2, street, number, city, state, zip, etc.
    - `id` integer: Unique identifier for the address
    - `countryCode` string: ISO 3166-1 alpha-2 country code (determines address format)
  - `useBillingAsMainAddress` boolean: When true, use billing address as the main address instead of the address field
  - `billingDetails` BillingDetails: Billing details for profiles and contact persons
    - `billingEntity` boolean: Whether this is a billing entity
    - `legalName` string: Legal name for billing purposes
    - `billingEmail` string, email: Billing email address
    - `billingAddress` Address: Flexible address object with country-specific fields. The countryCode determines the expected address format. All address fields except id and countryCode are stored as dynamic properties. Common fields include: address1, address2, street, number, city, state, zip, etc.
      - `id` integer: Unique identifier for the address
      - `countryCode` string: ISO 3166-1 alpha-2 country code (determines address format)
    - `billingCurrency` string: Billing currency code (ISO 4217 - 3 uppercase letters, e.g., USD, EUR, GBP)
    - `paymentMethod` 'DIRECT_BILL' | 'CASH' | 'CHECK' | 'CREDIT_CARD' | 'DEBIT_CARD' | 'VOUCHER' | 'PAY_BY_LINK' | 'THIRD_PARTY_PAYMENT': Payment method. Allowed values are DIRECT_BILL, CASH, CHECK, CREDIT_CARD, DEBIT_CARD, VOUCHER, PAY_BY_LINK, THIRD_PARTY_PAYMENT
    - `billingInstructions` string: Special billing instructions
    - `invoiceRecipientEmail` string, email: Email address for invoice delivery
    - `creditLimit` number: Credit limit amount
    - `taxId` string: Tax identification number
    - `billingFrequency` 'PER_STAY' | 'WEEKLY' | 'MONTHLY' | 'ON_DEMAND': Billing frequency. Allowed values are PER_STAY, WEEKLY, MONTHLY, ON_DEMAND
    - `invoiceDueDays` integer: Number of days until invoice is due
  - `createdAt` string, date-time: Creation timestamp
  - `updatedAt` string, date-time: Last update timestamp
  - `attributes` object: Dictionary containing profile-specific data (groupProfile, companyProfile, or travelAgentProfile). Only one profile type should be present.
    - `groupProfile` GroupProfile
      - `groupType` 'WEDDING' | 'SOCIAL' | 'SMERF' | 'CORPORATE' | 'ASSOCIATION' | 'EDUCATION' | 'MEETING' | 'CONFERENCE' | 'MICE' | 'EXHIBITIONS' | 'INCENTIVE' | 'OTHER': Type of group
      - `groupId` string: Unique group identifier
      - `cutOffDate` string, date: Booking cut-off date
      - `internalSalesManager` string: Internal sales manager name
      - `specialRequirements` string: Special requirements or notes
      - `roomNightCommitment` integer: Room night commitment
      - `roomNightType` 'USD' | 'PERCENTAGE' | 'NUMBER': Type of room night commitment (USD, Percentage, or Number)
    - `companyProfile` CompanyProfile
      - `companyType` 'CORPORATE' | 'SME' | 'NON_PROFIT' | 'ENTERPRISE' | 'GOVERNMENT' | 'ASSOCIATION' | 'LOCAL' | 'B2B' | 'PARTNERSHIP' | 'OTHER': Company type. Allowed values are CORPORATE, SME, NON_PROFIT, ENTERPRISE, GOVERNMENT, ASSOCIATION, LOCAL, B2B, PARTNERSHIP, OTHER
      - `parentCompanyId` integer: Parent company ID if this is a subsidiary
      - `website` string: Company website URL
      - `contractStartDate` string, date: Contract start date
      - `contractEndDate` string, date: Contract end date
      - `roomNightCommitment` integer: Annual room night commitment
      - `roomNightType` 'USD' | 'PERCENTAGE' | 'NUMBER': Type of room night commitment (USD, Percentage, or Number)
    - `travelAgentProfile` TravelAgentProfile
      - `agencyId` string: Agency identifier
      - `agencyType` 'OTA' | 'RETAIL' | 'CORPORATE_AGENT' | 'CONSORTIA' | 'WHOLESALER' | 'GROUP_TOUR' | 'TOUR_OPERATOR' | 'DOMESTIC' | 'FOREIGN' | 'OTHER': Travel agency type. Allowed values are OTA, RETAIL, CORPORATE_AGENT, CONSORTIA, WHOLESALER, GROUP_TOUR, TOUR_OPERATOR, DOMESTIC, FOREIGN, OTHER
      - `commissionable` boolean: Whether this agent is eligible for commission
      - `commissionType` 'PERCENTAGE' | 'FLAT_RATE': Type of commission (Percentage or Flat Rate)
      - `commissionAmount` number: Commission amount (percentage or flat rate value)
      - `commissionTerms` string: Terms of commission payout
      - `commissionCalculation` 'CHECK_IN' | 'CHECK_OUT' | 'INCLUDED_IN_RATE' | 'NOT_INCLUDED_IN_RATE' | 'NA': When commission is calculated

## Response `200`

Profile updated successfully

- ProfileResponse
  - `id` string: Unique identifier for the profile
  - `profileType` 'COMPANY' | 'GROUP' | 'TRAVEL_AGENT': Profile type
  - `code` string, required: Profile code (company code, group code, or IATA number for travel agents)
  - `name` string, required: Profile name (company name, group name, or agency name)
  - `status` 'PENDING' | 'ACTIVE' | 'INACTIVE' | 'CANCELLED' | 'ARCHIVED', required: Profile status
  - `cellPhone` string: Cell phone number
  - `phone` string: Primary phone number
  - `email` string, email: Primary email address
  - `externalCrmId` string: External CRM system reference ID
  - `optIn` boolean: Opt-in status
  - `optInType` 'MARKETING' | 'TRANSACTIONAL': Type of opt-in
  - `optInMethods` 'EMAIL' | 'SMS' | 'NOTIFICATION': Opt-in communication method
  - `address` Address: Flexible address object with country-specific fields. The countryCode determines the expected address format. All address fields except id and countryCode are stored as dynamic properties. Common fields include: address1, address2, street, number, city, state, zip, etc.
    - `id` integer: Unique identifier for the address
    - `countryCode` string: ISO 3166-1 alpha-2 country code (determines address format)
  - `useBillingAsMainAddress` boolean: When true, use billing address as the main address instead of the address field
  - `billingDetails` BillingDetails: Billing details for profiles and contact persons
    - `billingEntity` boolean: Whether this is a billing entity
    - `legalName` string: Legal name for billing purposes
    - `billingEmail` string, email: Billing email address
    - `billingAddress` Address: Flexible address object with country-specific fields. The countryCode determines the expected address format. All address fields except id and countryCode are stored as dynamic properties. Common fields include: address1, address2, street, number, city, state, zip, etc.
      - `id` integer: Unique identifier for the address
      - `countryCode` string: ISO 3166-1 alpha-2 country code (determines address format)
    - `billingCurrency` string: Billing currency code (ISO 4217 - 3 uppercase letters, e.g., USD, EUR, GBP)
    - `paymentMethod` 'DIRECT_BILL' | 'CASH' | 'CHECK' | 'CREDIT_CARD' | 'DEBIT_CARD' | 'VOUCHER' | 'PAY_BY_LINK' | 'THIRD_PARTY_PAYMENT': Payment method. Allowed values are DIRECT_BILL, CASH, CHECK, CREDIT_CARD, DEBIT_CARD, VOUCHER, PAY_BY_LINK, THIRD_PARTY_PAYMENT
    - `billingInstructions` string: Special billing instructions
    - `invoiceRecipientEmail` string, email: Email address for invoice delivery
    - `creditLimit` number: Credit limit amount
    - `taxId` string: Tax identification number
    - `billingFrequency` 'PER_STAY' | 'WEEKLY' | 'MONTHLY' | 'ON_DEMAND': Billing frequency. Allowed values are PER_STAY, WEEKLY, MONTHLY, ON_DEMAND
    - `invoiceDueDays` integer: Number of days until invoice is due
  - `createdAt` string, date-time: Creation timestamp
  - `updatedAt` string, date-time: Last update timestamp
  - `attributes` object: Dictionary containing profile-specific data (groupProfile, companyProfile, or travelAgentProfile). Only one profile type should be present.
    - `groupProfile` GroupProfile
      - `groupType` 'WEDDING' | 'SOCIAL' | 'SMERF' | 'CORPORATE' | 'ASSOCIATION' | 'EDUCATION' | 'MEETING' | 'CONFERENCE' | 'MICE' | 'EXHIBITIONS' | 'INCENTIVE' | 'OTHER': Type of group
      - `groupId` string: Unique group identifier
      - `cutOffDate` string, date: Booking cut-off date
      - `internalSalesManager` string: Internal sales manager name
      - `specialRequirements` string: Special requirements or notes
      - `roomNightCommitment` integer: Room night commitment
      - `roomNightType` 'USD' | 'PERCENTAGE' | 'NUMBER': Type of room night commitment (USD, Percentage, or Number)
    - `companyProfile` CompanyProfile
      - `companyType` 'CORPORATE' | 'SME' | 'NON_PROFIT' | 'ENTERPRISE' | 'GOVERNMENT' | 'ASSOCIATION' | 'LOCAL' | 'B2B' | 'PARTNERSHIP' | 'OTHER': Company type. Allowed values are CORPORATE, SME, NON_PROFIT, ENTERPRISE, GOVERNMENT, ASSOCIATION, LOCAL, B2B, PARTNERSHIP, OTHER
      - `parentCompanyId` integer: Parent company ID if this is a subsidiary
      - `website` string: Company website URL
      - `contractStartDate` string, date: Contract start date
      - `contractEndDate` string, date: Contract end date
      - `roomNightCommitment` integer: Annual room night commitment
      - `roomNightType` 'USD' | 'PERCENTAGE' | 'NUMBER': Type of room night commitment (USD, Percentage, or Number)
    - `travelAgentProfile` TravelAgentProfile
      - `agencyId` string: Agency identifier
      - `agencyType` 'OTA' | 'RETAIL' | 'CORPORATE_AGENT' | 'CONSORTIA' | 'WHOLESALER' | 'GROUP_TOUR' | 'TOUR_OPERATOR' | 'DOMESTIC' | 'FOREIGN' | 'OTHER': Travel agency type. Allowed values are OTA, RETAIL, CORPORATE_AGENT, CONSORTIA, WHOLESALER, GROUP_TOUR, TOUR_OPERATOR, DOMESTIC, FOREIGN, OTHER
      - `commissionable` boolean: Whether this agent is eligible for commission
      - `commissionType` 'PERCENTAGE' | 'FLAT_RATE': Type of commission (Percentage or Flat Rate)
      - `commissionAmount` number: Commission amount (percentage or flat rate value)
      - `commissionTerms` string: Terms of commission payout
      - `commissionCalculation` 'CHECK_IN' | 'CHECK_OUT' | 'INCLUDED_IN_RATE' | 'NOT_INCLUDED_IN_RATE' | 'NA': When commission is calculated

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Profile not found
- `422`: Unprocessable Entity

---

[API](https://skmtc.dev/cloudbeds/apis/group-profile-api.md) - [All operations](https://skmtc.dev/cloudbeds/apis/group-profile-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cloudbeds/apis/group-profile-api/revisions/a1801dfbb09e?raw)
