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

# Create or update a batch of orders by unique property values

> Crie ou atualize um lote de objetos do CRM com base em valores de propriedade exclusivos. Este endpoint permite gerenciar com eficiência grandes conjuntos de objetos, criando novas entradas ou atualizando as existentes em uma única solicitação. É particularmente útil para sincronizar dados de sistemas externos com o HubSpot.

> **Supported products**

> **Required Scopes**


## OpenAPI

````yaml specs/2026-09/crm-orders-v2026-09.json POST /crm/objects/2026-09/orders/batch/upsert
openapi: 3.0.1
info:
  title: CRM Orders
  description: Basepom for all HubSpot Projects
  version: 2026-09
  x-hubspot-product-tier-requirements:
    marketing: FREE
    sales: FREE
    service: FREE
    cms: FREE
    commerce: FREE
    crmHub: FREE
    dataHub: FREE
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Advanced
  - name: Basic
  - name: Batch
  - name: Search
paths:
  /crm/objects/2026-09/orders/batch/upsert:
    post:
      tags:
        - Batch
      summary: Fazer upsert de objetos em lote
      description: >-
        Crie ou atualize um lote de objetos do CRM com base em valores de
        propriedade exclusivos. Este endpoint permite gerenciar com eficiência
        grandes conjuntos de objetos, criando novas entradas ou atualizando as
        existentes em uma única solicitação. É particularmente útil para
        sincronizar dados de sistemas externos com o HubSpot.
      operationId: >-
        post-/crm/objects/2026-09/orders/batch/upsert_/crm/objects/2026-09-beta/{objectType}/batch/upsert
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/BatchInputSimplePublicObjectBatchInputUpsert
        required: true
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchResponseSimplePublicUpsertObject'
        '207':
          description: multiple statuses
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/BatchResponseSimplePublicUpsertObjectWithErrors
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - crm.objects.deals.read
        - oauth2:
            - crm.objects.subscriptions.read
        - oauth2:
            - crm.objects.services.read
        - oauth2:
            - crm.objects.tickets.sensitive.read
        - oauth2:
            - crm.objects.orders.read
        - oauth2:
            - crm.objects.listings.write
        - oauth2:
            - crm.objects.custom.read
        - oauth2:
            - crm.objects.companies.write
        - oauth2:
            - crm.objects.tasks.read
        - oauth2:
            - crm.objects.custom.sensitive.write.v2
        - oauth2:
            - crm.objects.custom.highly_sensitive.write.v2
        - oauth2:
            - crm.objects.companies.read
        - oauth2:
            - crm.objects.appointments.sensitive.read.v2
        - oauth2:
            - crm.objects.contacts.highly_sensitive.read.v2
        - oauth2:
            - crm.objects.tickets.highly_sensitive.read
        - oauth2:
            - crm.objects.companies.sensitive.read.v2
        - oauth2:
            - crm.objects.tickets.sensitive.write
        - oauth2:
            - media_bridge.read
        - oauth2:
            - crm.objects.deals.highly_sensitive.read.v2
        - oauth2:
            - crm.objects.contacts.highly_sensitive.write.v2
        - oauth2:
            - crm.objects.companies.highly_sensitive.read.v2
        - oauth2:
            - crm.objects.commercepayments.write
        - oauth2:
            - crm.objects.invoices.write
        - oauth2:
            - crm.objects.contacts.sensitive.write.v2
        - oauth2:
            - crm.objects.calls.read
        - oauth2:
            - crm.objects.users.write
        - oauth2:
            - crm.objects.meetings.read
        - oauth2:
            - crm.objects.custom.sensitive.read.v2
        - oauth2:
            - crm.objects.users.read
        - oauth2:
            - crm.objects.partner-services.read
        - oauth2:
            - crm.objects.orders.write
        - oauth2:
            - crm.objects.partner-services.write
        - oauth2:
            - crm.objects.appointments.write
        - oauth2:
            - crm.objects.projects.highly_sensitive.write
        - oauth2:
            - crm.objects.carts.write
        - oauth2:
            - crm.objects.tickets.highly_sensitive.write
        - oauth2:
            - crm.objects.commercepayments.read
        - oauth2:
            - crm.objects.products.write
        - oauth2:
            - crm.objects.feedback_submissions.read
        - oauth2:
            - crm.objects.services.write
        - oauth2:
            - crm.objects.subscriptions.write
        - oauth2:
            - crm.objects.deals.sensitive.write.v2
        - oauth2:
            - crm.objects.contacts.read
        - oauth2:
            - crm.objects.appointments.sensitive.write.v2
        - oauth2:
            - crm.objects.projects.highly_sensitive.read
        - oauth2:
            - crm.objects.invoices.read
        - oauth2:
            - crm.objects.custom.write
        - oauth2:
            - tickets.sensitive.v2
        - oauth2:
            - crm.objects.deals.write
        - oauth2:
            - e-commerce
        - oauth2:
            - crm.objects.appointments.read
        - oauth2:
            - crm.objects.projects.read
        - oauth2:
            - crm.objects.companies.sensitive.write.v2
        - oauth2:
            - crm.objects.companies.highly_sensitive.write.v2
        - oauth2:
            - crm.objects.deals.highly_sensitive.write.v2
        - oauth2:
            - crm.objects.custom.highly_sensitive.read.v2
        - oauth2:
            - crm.objects.goals.write
        - oauth2:
            - crm.objects.projects.sensitive.read
        - oauth2:
            - crm.objects.line_items.write
        - oauth2:
            - crm.objects.contacts.write
        - oauth2:
            - crm.objects.goals.read
        - oauth2:
            - crm.objects.line_items.read
        - oauth2:
            - crm.objects.partner-clients.write
        - oauth2:
            - crm.objects.projects.write
        - oauth2:
            - crm.objects.projects.sensitive.write
        - oauth2:
            - crm.objects.deals.sensitive.read.v2
        - oauth2:
            - crm.objects.quotes.write
        - oauth2:
            - tickets.highly_sensitive.v2
        - oauth2:
            - crm.objects.leads.read
        - oauth2:
            - crm.objects.leads.write
        - oauth2:
            - crm.objects.carts.read
        - oauth2:
            - crm.objects.emails.read
        - oauth2:
            - crm.objects.quotes.read
        - oauth2:
            - crm.objects.courses.write
        - oauth2:
            - crm.objects.partner-clients.read
        - oauth2:
            - crm.objects.notes.read
        - oauth2:
            - crm.objects.courses.read
        - oauth2:
            - crm.objects.listings.read
        - oauth2:
            - crm.objects.contacts.sensitive.read.v2
        - oauth2:
            - crm.objects.products.read
components:
  schemas:
    BatchInputSimplePublicObjectBatchInputUpsert:
      required:
        - inputs
      type: object
      properties:
        inputs:
          type: array
          description: >-
            Uma matriz de objetos SimplePublicObjectBatchInputUpsert, cada um
            contendo as propriedades e identificadores necessários para fazer
            upsert de um objeto público.
          items:
            $ref: '#/components/schemas/SimplePublicObjectBatchInputUpsert'
      description: >-
        Representa uma operação de entrada em lote para fazer upsert de objetos
        públicos simples no HubSpot. Este componente é usado para processar
        várias operações de upsert em uma única solicitação, melhorando a
        eficiência e o desempenho.
    BatchResponseSimplePublicUpsertObject:
      required:
        - completedAt
        - results
        - startedAt
        - status
      type: object
      properties:
        completedAt:
          type: string
          description: >-
            A data e hora em que a operação em lote foi concluída, no formato
            ISO 8601.
          format: date-time
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Um mapa de nomes de links para URIs associadas, fornecendo contexto
            ou recursos adicionais relacionados à operação em lote.
        requestedAt:
          type: string
          description: >-
            A data e a hora em que a operação em lote foi solicitada, no formato
            ISO 8601.
          format: date-time
        results:
          type: array
          description: >-
            Uma matriz de itens SimplePublicUpsertObject, representando os
            resultados individuais da operação de upsert em lote.
          items:
            $ref: '#/components/schemas/SimplePublicUpsertObject'
        startedAt:
          type: string
          description: >-
            A data e a hora em que a operação em lote foi iniciada, no formato
            ISO 8601.
          format: date-time
        status:
          type: string
          description: >-
            O status atual da operação em lote. Os valores válidos incluem
            'PENDENTE', 'PROCESSANDO', 'CANCELADO' e 'CONCLUÍDO'.
          enum:
            - CANCELED
            - COMPLETE
            - PENDING
            - PROCESSING
      description: >-
        Representa o resultado de uma operação de upsert em lote, incluindo o
        status da operação, carimbos de data/hora e uma lista de objetos criados
        ou atualizados com sucesso.
    BatchResponseSimplePublicUpsertObjectWithErrors:
      required:
        - completedAt
        - results
        - startedAt
        - status
      type: object
      properties:
        completedAt:
          type: string
          description: >-
            A data e hora em que a operação em lote foi concluída, no formato
            ISO 8601.
          format: date-time
        errors:
          type: array
          description: >-
            Uma matriz de objetos StandardError detalhando quaisquer erros que
            ocorreram durante a operação em lote.
          items:
            $ref: '#/components/schemas/StandardError'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Um mapa de nomes de links para URIs associadas, fornecendo
            informações ou recursos adicionais relacionados à operação em lote.
        numErrors:
          type: integer
          description: O número total de erros encontrados durante a operação em lote.
          format: int32
        requestedAt:
          type: string
          description: >-
            A data e a hora em que a operação em lote foi solicitada, no formato
            ISO 8601.
          format: date-time
        results:
          type: array
          description: >-
            Uma matriz de itens SimplePublicUpsertObject que representam os
            objetos que foram inseridos ou atualizados com sucesso durante a
            operação em lote.
          items:
            $ref: '#/components/schemas/SimplePublicUpsertObject'
        startedAt:
          type: string
          description: >-
            A data e a hora em que a operação em lote foi iniciada, no formato
            ISO 8601.
          format: date-time
        status:
          type: string
          description: >-
            O status atual da operação em lote. Os valores válidos incluem
            'PENDENTE', 'PROCESSANDO', 'CANCELADO' e 'CONCLUÍDO'.
          enum:
            - CANCELED
            - COMPLETE
            - PENDING
            - PROCESSING
      description: >-
        Representa a resposta de uma operação de upsert em lote, incluindo
        status, data/hora, objetos processados com sucesso e quaisquer erros que
        ocorreram durante o processamento.
    SimplePublicObjectBatchInputUpsert:
      required:
        - id
        - properties
      type: object
      properties:
        id:
          type: string
          description: >-
            Uma string que representa o identificador exclusivo do objeto do
            CRM.
        idProperty:
          type: string
          description: >-
            O nome de uma propriedade cujos valores são exclusivos para este
            objeto
        objectWriteTraceId:
          type: string
          description: >-
            Uma string usada para rastrear a operação de gravação para fins de
            depuração ou registro.
        properties:
          type: object
          additionalProperties:
            type: string
          description: >-
            Um objeto que contém pares chave-valor, em que as chaves são nomes
            de propriedades e os valores são os valores de propriedade
            correspondentes para o objeto do CRM. Cada propriedade é uma string.
      description: >-
        Representa um objeto usado em operações de upsert em lote, contendo o
        identificador exclusivo de um objeto, suas propriedades e,
        opcionalmente, o nome da propriedade exclusiva e um ID de rastreamento
        de gravação.
    SimplePublicUpsertObject:
      required:
        - archived
        - createdAt
        - id
        - new
        - properties
        - updatedAt
      type: object
      properties:
        archived:
          type: boolean
          description: Um booleano que indica se o objeto do CRM está arquivado.
        archivedAt:
          type: string
          description: >-
            A data e a hora em que o objeto do CRM foi arquivado, no formato ISO
            8601.
          format: date-time
        createdAt:
          type: string
          description: >-
            A data e hora em que o objeto do CRM foi criado, no formato ISO
            8601.
          format: date-time
        id:
          type: string
          description: O identificador exclusivo do objeto do CRM.
        new:
          type: boolean
          description: >-
            Um booleano que indica se o objeto do CRM foi recém-criado (true) ou
            atualizado (false) durante a operação de upsert.
        objectWriteTraceId:
          type: string
          description: >-
            Um identificador exclusivo para rastrear a operação de gravação que
            criou ou atualizou o objeto.
        properties:
          type: object
          additionalProperties:
            type: string
          description: >-
            Um mapa dos nomes das propriedades para seus valores atuais para o
            objeto do CRM.
        propertiesWithHistory:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ValueWithTimestamp'
          description: >-
            Um mapa de nomes de propriedades para matrizes de valores
            históricos, cada um com uma data/hora.
        updatedAt:
          type: string
          description: >-
            A data e a hora da última atualização do objeto do CRM, no formato
            ISO 8601.
          format: date-time
        url:
          type: string
          description: O URL para acessar o objeto do CRM.
        warnings:
          type: array
          description: >-
            Uma matriz de avisos relacionados ao objeto do CRM, cada um
            incluindo uma categoria, mensagem e contexto.
          items:
            $ref: '#/components/schemas/PublicObjectWarning'
      description: Representa um objeto do CRM que foi criado ou atualizado (upserted)
    StandardError:
      required:
        - category
        - context
        - errors
        - links
        - message
        - status
      type: object
      properties:
        category:
          type: string
          description: Uma string que categoriza o erro.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            Um objeto que contém contexto adicional sobre o erro, com cada chave
            mapeada a uma matriz de strings.
        errors:
          type: array
          description: >-
            Uma matriz de objetos ErrorDetail que fornece mais informações sobre
            o erro.
          items:
            $ref: '#/components/schemas/ErrorDetail'
        id:
          type: string
          description: Uma string que representa o identificador exclusivo do erro.
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Um objeto que mapeia nomes de links a URIs associadas, que pode
            conter documentação sobre o erro ou as etapas de correção
            recomendadas.
        message:
          type: string
          description: >-
            Uma string contendo uma mensagem legível por humanos que descreve o
            erro.
        status:
          type: string
          description: Uma string que indica o status do erro.
        subCategory:
          type: object
          properties: {}
          description: Um objeto que fornece uma categorização mais específica do erro.
      description: >-
        Representa uma resposta de erro padrão na API do HubSpot, fornecendo
        informações detalhadas sobre um erro ocorrido durante uma solicitação de
        API.
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: A categoria de erro
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexto sobre a condição do erro
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Um identificador exclusivo para a solicitação. Inclua este valor em
            relatórios de erro ou tickets de suporte
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: mais informações sobre o erro
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Um mapa de nomes de links para URIs associados que contêm
            documentação sobre o erro ou as etapas de correção recomendadas
        message:
          type: string
          description: >-
            Uma mensagem legível por humanos que descreve o erro, juntamente com
            as etapas de correção, quando apropriado
          example: An error occurred
        subCategory:
          type: string
          description: >-
            Uma categoria específica que contém mais detalhes específicos sobre
            o erro
      description: >-
        Representa uma resposta de erro retornada pela API quando uma operação
        falha. Este componente é usado em vários endpoints para fornecer
        informações detalhadas sobre o erro encontrado.
      example:
        message: Invalid input (details will vary based on the error)
        correlationId: aeb5f871-7f07-4993-9211-075dc63e7cbf
        category: VALIDATION_ERROR
        links:
          knowledge-base: https://www.hubspot.com/products/service/knowledge-base
    ValueWithTimestamp:
      required:
        - sourceType
        - timestamp
        - value
      type: object
      properties:
        sourceId:
          type: string
          description: Um identificador de string para a fonte específica do valor.
        sourceLabel:
          type: string
          description: >-
            Um rótulo de string que fornece contexto ou descrição adicional para
            a origem.
        sourceType:
          type: string
          description: Uma string que indica o tipo de origem do qual o valor se origina.
        timestamp:
          type: string
          description: >-
            A data e a hora em que o registro foi adicionado, no formato ISO
            8601.
          format: date-time
        updatedByUserId:
          type: integer
          description: >-
            Um número inteiro que representa o ID do usuário que atualizou o
            valor pela última vez.
          format: int32
        value:
          type: string
          description: >-
            O valor real que está sendo registrado. É representado como uma
            string.
      description: Modelo de propriedade que inclui data e hora.
    PublicObjectWarning:
      required:
        - category
        - context
        - message
      type: object
      properties:
        category:
          type: string
          description: Uma string que representa a categoria do aviso.
        context:
          type: object
          additionalProperties:
            type: string
          description: >-
            Um objeto que fornece contexto adicional sobre o aviso, com
            propriedades como pares chave-valor, nos quais tanto as chaves
            quanto os valores são strings.
        message:
          type: string
          description: Uma string que contém a mensagem que descreve o aviso.
      description: >-
        Representa uma mensagem de aviso relacionada a um objeto público no
        HubSpot, fornecendo detalhes sobre a natureza e o contexto do aviso.
    ErrorDetail:
      required:
        - message
      type: object
      properties:
        code:
          type: string
          description: O código de status associado ao detalhe do erro
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexto sobre a condição do erro
          example: '{missingScopes=[scope1, scope2]}'
        in:
          type: string
          description: O nome do campo ou parâmetro no qual o erro foi encontrado.
        message:
          type: string
          description: >-
            Uma mensagem legível por humanos que descreve o erro, juntamente com
            as etapas de correção, quando apropriado
        subCategory:
          type: string
          description: >-
            Uma categoria específica que contém mais detalhes específicos sobre
            o erro
      description: >-
        Representa informações detalhadas sobre um erro ocorrido na API. Este
        componente é usado para fornecer contexto e detalhes adicionais sobre os
        erros, geralmente como parte de uma resposta de erro.
  responses:
    Error:
      description: An error occurred.
      content:
        '*/*':
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://app.hubspot.com/oauth/authorize
          tokenUrl: https://api.hubapi.com/oauth/v1/token
          scopes:
            crm.objects.appointments.read: ''
            crm.objects.appointments.sensitive.read.v2: ''
            crm.objects.appointments.sensitive.write.v2: ''
            crm.objects.appointments.write: ''
            crm.objects.calls.read: ''
            crm.objects.carts.read: ''
            crm.objects.carts.write: ''
            crm.objects.commercepayments.read: ''
            crm.objects.commercepayments.write: ''
            crm.objects.companies.highly_sensitive.read.v2: ''
            crm.objects.companies.highly_sensitive.write.v2: ''
            crm.objects.companies.read: ''
            crm.objects.companies.sensitive.read.v2: ''
            crm.objects.companies.sensitive.write.v2: ''
            crm.objects.companies.write: ''
            crm.objects.contacts.highly_sensitive.read.v2: ''
            crm.objects.contacts.highly_sensitive.write.v2: ''
            crm.objects.contacts.read: ''
            crm.objects.contacts.sensitive.read.v2: ''
            crm.objects.contacts.sensitive.write.v2: ''
            crm.objects.contacts.write: ''
            crm.objects.courses.read: ''
            crm.objects.courses.write: ''
            crm.objects.custom.highly_sensitive.read.v2: ''
            crm.objects.custom.highly_sensitive.write.v2: ''
            crm.objects.custom.read: ''
            crm.objects.custom.sensitive.read.v2: ''
            crm.objects.custom.sensitive.write.v2: ''
            crm.objects.custom.write: ''
            crm.objects.deals.highly_sensitive.read.v2: ''
            crm.objects.deals.highly_sensitive.write.v2: ''
            crm.objects.deals.read: ''
            crm.objects.deals.sensitive.read.v2: ''
            crm.objects.deals.sensitive.write.v2: ''
            crm.objects.deals.write: ''
            crm.objects.emails.read: ''
            crm.objects.feedback_submissions.read: ''
            crm.objects.goals.read: ''
            crm.objects.goals.write: ''
            crm.objects.invoices.read: ''
            crm.objects.invoices.write: ''
            crm.objects.leads.read: ''
            crm.objects.leads.write: ''
            crm.objects.line_items.read: ''
            crm.objects.line_items.write: ''
            crm.objects.listings.read: ''
            crm.objects.listings.write: ''
            crm.objects.meetings.read: ''
            crm.objects.notes.read: ''
            crm.objects.orders.read: ''
            crm.objects.orders.write: ''
            crm.objects.partner-clients.read: ''
            crm.objects.partner-clients.write: ''
            crm.objects.partner-services.read: ''
            crm.objects.partner-services.write: ''
            crm.objects.products.read: ''
            crm.objects.products.write: ''
            crm.objects.projects.highly_sensitive.read: ''
            crm.objects.projects.highly_sensitive.write: ''
            crm.objects.projects.read: ''
            crm.objects.projects.sensitive.read: ''
            crm.objects.projects.sensitive.write: ''
            crm.objects.projects.write: ''
            crm.objects.quotes.read: ''
            crm.objects.quotes.write: ''
            crm.objects.services.read: ''
            crm.objects.services.write: ''
            crm.objects.subscriptions.read: ''
            crm.objects.subscriptions.write: ''
            crm.objects.tasks.read: ''
            crm.objects.tickets.highly_sensitive.read: ''
            crm.objects.tickets.highly_sensitive.write: ''
            crm.objects.tickets.sensitive.read: ''
            crm.objects.tickets.sensitive.write: ''
            crm.objects.users.read: ''
            crm.objects.users.write: ''
            e-commerce: ''
            media_bridge.read: ''
            tickets.highly_sensitive.v2: ''
            tickets.sensitive.v2: ''

````