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

# Criar Venda

> Cria uma nova venda/pedido.

Use esta rota para enviar informações de vendas para a Nemu.

O campo `customerEmail` aceita o email em texto puro ou um valor em hash do email (ex: SHA-256).

O campo `isFromApp` é obrigatório e indica se a venda foi realizada no aplicativo (`true`) ou não (`false`). O valor padrão é `false`.

#### Exemplo (único produto):

```json theme={null}
{
  "name": "Nome do produto",
  "transactionId": "123",
  "isFromApp": false,
  "netValue": 10,
  "grossValue": 30,
  "status": "paid",
  "quantity": 1,
  "paymentType": "pix",
  "utm_campaign": "string",
  "utm_content": "string",
  "utm_medium": "string",
  "utm_source": "string",
  "utm_term": "string",
  "customerName": "João Silva",
  "customerEmail": "emaildocliente@gmail.com",
  "date": "2024-06-25",
  "orderCreatedAt": "2024-06-25 00:00:00",
  "priceCost": 5
}
```

#### Exemplo (múltiplos produtos):

```json theme={null}
{
  "name": "Nome do pedido",
  "transactionId": "123",
  "isFromApp": false,
  "netValue": 20,
  "grossValue": 40,
  "status": "paid",
  "quantity": 1,
  "paymentType": "pix",
  "utm_campaign": "string",
  "utm_content": "string",
  "utm_medium": "string",
  "utm_source": "string",
  "utm_term": "string",
  "customerName": "João Silva",
  "customerEmail": "emaildocliente@gmail.com",
  "date": "2024-06-25",
  "createdAt": "2024-06-25 00:00:00",
  "coupons": ["CUPOM10"],
  "products": [
    {
      "productId": "1",
      "name": "Nome do Produto 1",
      "quantity": 1,
      "netValue": 10,
      "grossValue": 20,
      "priceCost": 5,
      "brand": "Marca X",
      "category": {
        "id": "15",
        "name": "categoria 1"
      }
    },
    {
      "productId": "2",
      "name": "Nome do Produto 2",
      "quantity": 1,
      "netValue": 10,
      "grossValue": 20,
      "priceCost": 5
    }
  ]
}
```


## OpenAPI

````yaml api-reference/openapi.json POST /sales
openapi: 3.1.0
info:
  title: API Nemu
  description: API para integração de eventos de vendas com a plataforma Nemu.
  version: 1.0.0
servers:
  - url: https://developers.nemu.com.br/api/v1
    description: Produção
  - url: https://developers.stg.nemu.com.br/api/v1
    description: Staging
security:
  - TokenAuth: []
paths:
  /sales:
    post:
      description: Cria uma nova venda/pedido.
      requestBody:
        description: Dados da venda ou pedido.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Sale'
        required: true
      responses:
        '200':
          description: Venda criada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Venda criada com sucesso
        '400':
          description: Erro na requisição.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Campo obrigatório ausente ou inválido
      security:
        - TokenAuth: []
components:
  schemas:
    Sale:
      type: object
      required:
        - name
        - transactionId
        - isFromApp
        - netValue
        - grossValue
        - status
        - quantity
        - paymentType
        - customerName
        - customerEmail
        - date
        - orderCreatedAt
        - products
      properties:
        name:
          type: string
          description: Nome do produto ou pedido
        transactionId:
          type: string
          description: ID da transação ou pedido
        isFromApp:
          type: boolean
          default: false
          description: >-
            Indica se a venda foi originada pelo aplicativo. Valor padrão:
            false.
        netValue:
          type: number
          description: Valor líquido da transação ou pedido
        grossValue:
          type: number
          description: Valor bruto da transação ou pedido
        status:
          type: string
          description: >-
            Status da transação ou pedido (paid, waiting_payment, cancelled,
            chargeback, refunded, checkout_completed)
        quantity:
          type: number
          description: Quantidade vendida
        paymentType:
          type: string
          description: >-
            Método de pagamento: `billet`, `credit_card`, `pix` ou `others`.
            Atenção ao plural em `others` — o valor `other` é rejeitado.
        utm_source:
          type: string
          description: Parâmetro utm_source
        utm_campaign:
          type: string
          description: Parâmetro utm_campaign
        utm_medium:
          type: string
          description: Parâmetro utm_medium
        utm_content:
          type: string
          description: Parâmetro utm_content
        utm_term:
          type: string
          description: Parâmetro utm_term
        customerName:
          type: string
          description: Nome do cliente
        customerEmail:
          type: string
          description: >-
            Email do comprador. Também aceita um valor em hash do email (ex:
            SHA-256)
        customerPhone:
          type: string
          description: Telefone do cliente. Opcional, mas recomendamos o envio.
        date:
          type: string
          format: date
          description: Data de criação do pedido (YYYY-MM-DD)
        orderCreatedAt:
          type: string
          example: '2024-06-25 00:00:00'
          description: Data e hora de criação do pedido em UTC 0 (YYYY-MM-DD HH:MM:SS)
        coupons:
          type: array
          description: Lista de cupons de desconto aplicados ao pedido (opcional)
          items:
            type: string
          example:
            - CUPOM10
        products:
          type: array
          description: Lista de produtos do pedido
          items:
            $ref: '#/components/schemas/Product'
        priceCost:
          type: number
          description: Preço de custo do produto/pedido
    Product:
      type: object
      required:
        - productId
        - name
        - quantity
        - netValue
        - grossValue
      properties:
        productId:
          type: string
          description: ID do produto
        name:
          type: string
          description: Nome do produto
        quantity:
          type: number
          description: Quantidade vendida do produto
        netValue:
          type: number
          description: Valor líquido do produto
        grossValue:
          type: number
          description: Valor bruto do produto
        priceCost:
          type: number
          description: Preço de custo do produto
        brand:
          type: string
          description: Marca do produto (opcional)
          example: Marca X
        category:
          type: object
          description: Categoria do produto (opcional)
          required:
            - name
          properties:
            id:
              type: string
              description: ID da categoria
            name:
              type: string
              description: Nome da categoria
            imageUrl:
              type: string
              format: uri
              description: URL da imagem da categoria
  securitySchemes:
    TokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Token de API gerado no dashboard. Envie no header Authorization sem
        'Bearer'. Exemplo: Authorization: 123456abcdef

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.