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

# Set custom Google Services for your business

> This endpoint allows you to set or update custom Google Services for your business.




## OpenAPI

````yaml /assets/openapi/openapi-bundled.yaml post /business/{business_id}/free_form_services
openapi: 3.1.0
info:
  title: Partoo Rest API
  version: v2
  license:
    name: © Copyright Partoo
    url: https://www.partoo.co/en/gtu-api/
  x-logo:
    url: >-
      https://partoo-client-images.s3.amazonaws.com/logo-partoo-restapi-white.png
  description: >
    ## Introduction

    The Partoo Rest API allows you to automate all the actions that are possible
    to do in the Partoo Web Application.


    The Partoo Rest API can be used for many different purposes:
      - Create/update/delete your businesses & users if you are a client.
      - Create/subscribe/manage organizations, businesses & users if you are a reseller.
      - Retrieve data on businesses you have access to if you are a publisher.
      - ...
servers:
  - url: https://api.partoo.co/v2
    description: Production server
  - url: https://api.sandbox.partoo.co/v2
    description: Sandbox server (dev environment for clients & partners)
security:
  - ApiKeyAuth: []
paths:
  /business/{business_id}/free_form_services:
    post:
      tags:
        - Businesses
      summary: Set custom Google Services for your business
      description: >
        This endpoint allows you to set or update custom Google Services for
        your business.
      operationId: postBusinessFreeFormServices
      parameters:
        - $ref: '#/components/parameters/business_id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              anyOf:
                - $ref: '#/components/schemas/FreeFormServicesCreate'
                - $ref: '#/components/schemas/FreeFormServicesUpdate'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessServicesResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
components:
  parameters:
    business_id:
      in: path
      name: business_id
      required: true
      schema:
        type: string
      description: >
        Business id.      


        It may be replaced by `c-{code}` where code is the store code, which
        should be unique per organization. This can be used only for
        `ORG_ADMIN`, `GROUP_MANAGER` and `BUSINESS_MANAGER` users.
  schemas:
    FreeFormServicesCreate:
      description: A Google Service.
      required:
        - category_gmb_name
        - name
      type: object
      properties:
        category_gmb_name:
          type: string
          description: >
            Google name of the category. The category must belong to your
            business.
          example: gcid:climbing_gym
        name:
          description: Name of the service.
          type: string
          example: Random Name
        price:
          description: Price of the service.
          type: number
          example: 25.35
        description:
          description: Description of the service.
          type: string
          example: This is our custom service
          maxLength: 300
    FreeFormServicesUpdate:
      description: A Google Service.
      required:
        - service_id
      type: object
      properties:
        service_id:
          description: |
            Id of the service.
          type: integer
          example: 2
        category_gmb_name:
          type: string
          description: >
            Google name of the category. The category must belong to your
            business.
          example: gcid:climbing_gym
        name:
          description: Name of the service.
          type: string
          example: Random Name
        price:
          description: Price of the service.
          type: number
          example: 25.35
        description:
          description: Description of the service.
          type: string
          example: This is our custom service
          maxLength: 300
    BusinessServicesResponse:
      type: object
      description: List of Business Services.
      properties:
        services:
          type: array
          items:
            $ref: '#/components/schemas/Services'
          example:
            - service_id: 1
              type: STRUCTURED_SERVICE_ITEM
              name: Climbing Gym
              price: 50
              description: Our climbing gym available for all
              category_gmb_name: gcid:climbing_gym
            - service_id: 2
              type: FREE_FORM_SERVICE_ITEM
              name: Random Name
              price: 25.35
              description: This is our custom service
              category_gmb_name: gcid:climbing_gym
    Services:
      description: A Google Service.
      type: object
      properties:
        service_id:
          $ref: '#/components/schemas/ServiceId'
        type:
          $ref: '#/components/schemas/ServiceType'
        name:
          $ref: '#/components/schemas/ServiceName'
        price:
          $ref: '#/components/schemas/ServicePrice'
        description:
          $ref: '#/components/schemas/ServiceDescription'
        category_gmb_name:
          $ref: '#/components/schemas/ServiceCategoryGmbName'
    ServiceId:
      description: >-
        Id of the service (For creation you can get this id by calling [get
        services suggestions
        endpoint](/api-reference/google/list-google-services))
      type: integer
      example: 1
    ServiceType:
      description: Type of the service
      type: string
      enum:
        - STRUCTURED_SERVICE_ITEM
        - FREE_FORM_SERVICE_ITEM
    ServiceName:
      description: |
        Name of the service.
      type: string
      example: Salle d'escalade
    ServicePrice:
      description: Price of the service.
      type: number
      example: 12.5
    ServiceDescription:
      description: Description of the service.
      type: string
      maxLength: 300
    ServiceCategoryGmbName:
      type: string
      description: |
        Google name of the category.
      example: gcid:climbing_gym
  responses:
    '400':
      description: Your request is incorrect
      content:
        application/json:
          schema:
            description: |
              Error that occcurs when your request is incorrect
            properties:
              errors:
                type: object
                description: The detail of the error encountered
                properties:
                  json:
                    type: object
    '401':
      description: You are not authenticated
      content:
        application/json:
          schema:
            description: Error that occurs when you are not authenticated
            type: object
            properties:
              errors:
                type: object
                description: The detail of the error encountered
                properties:
                  authentication:
                    type: string
                    default: User not authenticated
    '403':
      description: |
        You are not allowed to perform this action
      content:
        application/json:
          schema:
            description: >
              Error that occurs when you are authenticated but you are trying to
              perform an action you are not allowed to perform
            type: object
            properties:
              errors:
                type: object
                description: The detail of the error encountered
                properties:
                  authorization:
                    type: string
                    default: Operation not allowed
    '404':
      description: Resource does not exist
      content:
        application/json:
          schema:
            description: >-
              Error that occcurs when you are trying to reach a resource that
              does not exist
            type: object
            properties:
              errors:
                type: object
                description: The detail of the error encountered
                properties:
                  json:
                    type: string
                    default: Resource not found
  securitySchemes:
    ApiKeyAuth:
      description: >
        The authentication system on Partoo API is using API Key that should be
        put in the header of the request (the name of the header is `x-APIKey`).
        An api_key is linked to a user. This user's role will give you different
        access level to the API features.
      type: apiKey
      in: header
      name: x-APIKey

````