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

# Criar Order Bump

> Adicione uma oferta complementar ao checkout de um produto. Escolha a oferta, defina o preço de referência e a copy que será exibida no momento da compra.

#### Escopo

```bash theme={null}
    write products
```

## Quando usar

Use este endpoint quando quiser:

* Adicionar um produto complementar ao checkout
* Criar uma nova oferta de upgrade ou adicional
* Incluir uma segunda opção de compra para quem já está na página de pagamento

## Campos importantes

| Campo            | Descrição                     | Dica                                                   |
| ---------------- | ----------------------------- | ------------------------------------------------------ |
| `offer`          | Id da oferta que será exibida | A oferta deve estar ativa e pertencer ao mesmo produto |
| `referencePrice` | Preço de referência exibido   | Use para mostrar desconto ou valor original riscado    |
| `cta`            | Texto do botão                | Ex: *"Sim, quero adicionar!"*                          |
| `title`          | Título do order bump          | Ex: *"Workbook exclusivo"*                             |
| `description`    | Descrição curta               | Uma linha com o benefício principal                    |
| `position`       | Ordem de exibição             | Menor valor aparece primeiro no checkout               |
| `showImage`      | Exibe imagem da oferta        | Recomendado para produtos visuais                      |

<Warning>
  A oferta informada no campo `offer` deve existir e estar vinculada ao mesmo produto. Caso contrário, a API retornará erro 400.
</Warning>

<Warning>
  Uma mesma oferta não pode ser adicionada duas vezes como order bump do mesmo produto — a segunda tentativa retorna `400` com `{ "detail": "Oferta já cadastrada como order bump deste produto." }`.
</Warning>


## OpenAPI

````yaml POST /public_api/products/{id}/bumps/
openapi: 3.0.3
info:
  title: Cakto API
  version: 1.0.0
  description: Documentação da API pública do Cakto.
servers:
  - url: https://api.cakto.com.br
    description: Cakto API
security: []
paths:
  /public_api/products/{id}/bumps/:
    post:
      tags:
        - order-bumps
      description: |-
        Public API for managing order bumps, inherits from OrderBumpAPI,
        customizes authentication and permission settings.
      operationId: order_bumps_create
      parameters:
        - in: path
          name: id
          schema:
            type: string
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderBumpCreate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OrderBumpCreate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/OrderBumpCreate'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderBumpCreate'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderBumpCreate400'
              examples:
                ProdutoNãoExistente:
                  value:
                    detail: Produto não encontrado.
                OfertaNãoExistente:
                  value:
                    offer: Oferta não encontrada.
                CampoAusente:
                  value:
                    campo: Este campo é obrigatório.
          description: Corpo da resposta status 400
        '401':
          description: Request não autenticado devido à ausência ou invalidez do token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthenticatedError'
              examples:
                Token ausente ou inválido:
                  $ref: '#/components/examples/UnauthenticatedErrorExample'
      security:
        - OAuth Token: []
components:
  schemas:
    OrderBumpCreate:
      type: object
      properties:
        id:
          type: string
          title: Identificador
          description: Identificador único do order bump no sistema
          maxLength: 40
        product:
          type: string
          description: Produto que será oferecido como order bump
          title: Produto
        referencePrice:
          type: number
          format: double
          nullable: true
        offer:
          type: string
          title: Oferta
          description: Oferta que será oferecida como order bump
          nullable: true
        cta:
          type: string
          nullable: true
          title: Call to Action
          description: Texto do botão de call to action do order bump
          maxLength: 255
        title:
          type: string
          nullable: true
          title: Título
          description: Título do order bump
          maxLength: 255
        description:
          type: string
          nullable: true
          title: Descrição
          description: Descrição do order bump
        position:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          title: Posição
          description: Posição na qual o order bump será exibido no checkout
        showImage:
          type: boolean
          title: Exibir imagem
          description: Indica se a imagem do order bump será exibida no checkout
      required:
        - product
    OrderBumpCreate400:
      type: object
      properties:
        campo:
          type: string
        detail:
          type: string
    UnauthenticatedError:
      type: object
      properties:
        detail:
          type: string
  examples:
    UnauthenticatedErrorExample:
      summary: Token ausente ou inválido
      description: Token ausente ou inválido
      value:
        detail: As credenciais de autenticação não foram fornecidas.
  securitySchemes:
    OAuth Token:
      type: http
      scheme: bearer
      in: header
      name: Authorization
      description: >-
        Token de autenticação do tipo `Bearer {access_token}`, onde
        `{access_token}` é o token obtido no fluxo de
        [autenticação](/authentication).

````