{
  "info": {
    "name": "Trinks — mcp.ai",
    "description": "REST API for the Trinks MCP. Set {{apiKey}} to a workspace key (sk_live_…) created at https://mcp.ai/settings/api-keys.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.mcp.ai/api/trinks",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "sk_live_...",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "trinks_agendamento_cancelar",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/agendamento/cancelar",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "agendamento",
            "cancelar"
          ]
        },
        "description": "CANCELA agendamentos na agenda REAL do salão, até 50 por chamada. Não tem volta: cancelado não pode mais ser editado nem mudar de status. Agendamento já pago não pode ser cancelado.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"agendamento_ids\": \"\",\n  \"quem_cancelou\": \"\",\n  \"motivo\": \"\",\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "trinks_agendamento_confirmar",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/agendamento/confirmar",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "agendamento",
            "confirmar"
          ]
        },
        "description": "CONFIRMA agendamentos na agenda REAL do salão (muda o status para confirmado), até 50 por chamada, com erro reportado por id. Já confirmado continua como está; agendamento já pago não muda de status. ",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"agendamento_ids\": \"\",\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "trinks_agendamento_criar",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/agendamento/criar",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "agendamento",
            "criar"
          ]
        },
        "description": "CRIA agendamentos na agenda REAL do salão no Trinks (até 10 por chamada). Isto altera a agenda que a equipe e o cliente veem.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"agendamentos\": \"\",\n  \"permitir_encaixe\": false,\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "trinks_agendamento_reagendar",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/agendamento/reagendar",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "agendamento",
            "reagendar"
          ]
        },
        "description": "REAGENDA ou edita agendamentos existentes na agenda REAL do salão (até 10 por chamada): nova data e hora, outro profissional, outra duração, serviço, valor ou observação. Isto altera a agenda que a eq",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"agendamentos\": \"\",\n  \"permitir_encaixe\": false,\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "trinks_agendamentos",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/agendamentos",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "agendamentos"
          ]
        },
        "description": "Lê a agenda do salão no Trinks.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"data_inicio\": \"\",\n  \"data_fim\": \"\",\n  \"cliente_id\": 0,\n  \"profissional_ids\": \"\",\n  \"status\": \"\",\n  \"agendamento_ids\": \"\",\n  \"max_paginas\": 0,\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "trinks_clientes",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/clientes",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "clientes"
          ]
        },
        "description": "Busca clientes do estabelecimento ou traz o cadastro completo.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"nome\": \"\",\n  \"cpf\": \"\",\n  \"email\": \"\",\n  \"telefone\": \"\",\n  \"cadastro_inicio\": \"\",\n  \"cadastro_fim\": \"\",\n  \"incluir_etiquetas\": false,\n  \"pagina\": 0,\n  \"cliente_ids\": \"\",\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "trinks_clientes_sem_visita",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/clientes/sem/visita",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "clientes",
            "sem",
            "visita"
          ]
        },
        "description": "Clientes sumidos: quem teve atendimento nos últimos janela_dias (padrão 180) mas não volta há pelo menos dias_sem_visita (padrão 60) e não tem nada marcado nos próximos 60 dias. Ordena pelos mais freq",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"dias_sem_visita\": 0,\n  \"janela_dias\": 0,\n  \"limite\": 0,\n  \"max_paginas\": 0,\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "trinks_comissoes",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/comissoes",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "comissoes"
          ]
        },
        "description": "Comissões dos profissionais no período, com os mesmos valores do Relatório de Comissões do Trinks: total por profissional, por dia, e (com detalhar) cada item com serviço ou produto, cliente, valor ba",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"profissional_ids\": \"\",\n  \"data_inicio\": \"\",\n  \"data_fim\": \"\",\n  \"criterio_data\": \"\",\n  \"status_pagamento\": \"\",\n  \"detalhar\": false,\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "trinks_conta_api",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/conta/api",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "conta",
            "api"
          ]
        },
        "description": "Mostra a situação da API Trinks desta chave: o consumo do mês (cota total, já usado, saldo restante) e os estabelecimentos que a chave acessa, com o id de cada um.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "trinks_disponibilidade",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/disponibilidade",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "disponibilidade"
          ]
        },
        "description": "Horários livres dos profissionais em um ou mais dias (até 7). Para cada profissional: horarios_vagos (inícios possíveis, de intervalo_minutos em intervalo_minutos) e intervalos_vagos (faixas livres, j",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"datas\": \"\",\n  \"servico_id\": 0,\n  \"duracao_minutos\": 0,\n  \"intervalo_minutos\": 0,\n  \"profissional_ids\": \"\",\n  \"incluir_sem_horario\": false,\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "trinks_estoque_movimentacoes",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/estoque/movimentacoes",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "estoque",
            "movimentacoes"
          ]
        },
        "description": "Movimentações de estoque no período (até 31 dias): entradas, vendas, uso interno, perdas, ajustes e a baixa automática de produto usado em atendimento. Quantidade negativa nas saídas. Traz produto, pr",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"data_inicio\": \"\",\n  \"data_fim\": \"\",\n  \"produto_ids\": \"\",\n  \"profissional_ids\": \"\",\n  \"tipo\": 0,\n  \"max_paginas\": 0,\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "trinks_lancamentos",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/lancamentos",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "lancamentos"
          ]
        },
        "description": "Lançamentos financeiros (receitas e despesas lançadas no financeiro do Trinks, contas a pagar e a receber), filtrados pela data de VENCIMENTO: descrição, categoria, valor, status de pagamento, data de",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"data_inicio\": \"\",\n  \"data_fim\": \"\",\n  \"status_pagamento\": \"\",\n  \"tipo\": \"\",\n  \"max_paginas\": 0,\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "trinks_list_accounts",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/accounts",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "accounts"
          ]
        },
        "description": "Lista os estabelecimentos Trinks conectados a este install (id da conexão, apelido e nome). Não chama a API.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "trinks_produtos",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/produtos",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "produtos"
          ]
        },
        "description": "Produtos ativos com preço de venda e estoque (atual e mínimo, na unidade de medida do produto: um shampoo de 500 ml com 3 frascos aparece como 1500 ml). Estoque negativo = saída sem saldo.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"nome\": \"\",\n  \"abaixo_do_minimo\": false,\n  \"max_paginas\": 0,\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "trinks_profissionais",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/profissionais",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "profissionais"
          ]
        },
        "description": "Lista os profissionais do estabelecimento (padrão: só ativos). Cada um tem dois ids: id (o do estabelecimento, usado em agenda, comissões e disponibilidade) e idProfissional (o cadastro geral, que apa",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"status\": \"\",\n  \"profissional_ids\": \"\",\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "trinks_resumo_faturamento",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/resumo/faturamento",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "resumo",
            "faturamento"
          ]
        },
        "description": "Faturamento do período, já somado a partir das transações do caixa: total, número de transações, ticket médio, descontos, por forma de pagamento, por dia, serviços e produtos que mais faturaram e rece",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"data_inicio\": \"\",\n  \"data_fim\": \"\",\n  \"max_paginas\": 0,\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "trinks_resumo_ocupacao",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/resumo/ocupacao",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "resumo",
            "ocupacao"
          ]
        },
        "description": "Taxa de ocupação da agenda no período (até 14 dias), no total e por profissional: minutos agendados ÷ (agendados + livres). Livres vem da disponibilidade de cada dia; agendados são os agendamentos não",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"data_inicio\": \"\",\n  \"data_fim\": \"\",\n  \"profissional_ids\": \"\",\n  \"max_paginas\": 0,\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "trinks_servicos",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/servicos",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "servicos"
          ]
        },
        "description": "Lista os serviços ativos do estabelecimento, em ordem de nome: id, nome, categoria, duração, preço de tabela, preço promocional de hoje e se o cliente vê no agendamento online. Filtros por trecho de n",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"nome\": \"\",\n  \"categoria\": \"\",\n  \"somente_visiveis_cliente\": false,\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "trinks_transacoes",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/transacoes",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "transacoes"
          ]
        },
        "description": "Transações do caixa no período (pela data e hora do pagamento): total pago, descontos, troco, formas de pagamento, cliente e os serviços, produtos e pacotes de cada uma. Os profissionais aparecem pelo",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"data_inicio\": \"\",\n  \"data_fim\": \"\",\n  \"incluir_estornos\": false,\n  \"max_paginas\": 0,\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "trinks_vendas",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/vendas",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "vendas"
          ]
        },
        "description": "Vendas de PRODUTO no período (pela data da venda): itens, quantidade, valor unitário, desconto, valor líquido, cliente, profissional comissionado e as formas de pagamento da transação. Serviços não en",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"data_inicio\": \"\",\n  \"data_fim\": \"\",\n  \"incluir_estornos\": false,\n  \"max_paginas\": 0,\n  \"account\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    }
  ]
}