[{"data":1,"prerenderedAt":7887},["ShallowReactive",2],{"docs-nav-docs_pt":3,"docs-search-docs_pt":253,"doc-docs_pt-\u002Fdocs\u002Fapi\u002Freference\u002Fstats":6204,"surround-docs_pt-\u002Fdocs\u002Fapi\u002Freference\u002Fstats":7886},[4],{"title":5,"path":6,"stem":7,"children":8,"page":62},"Docs","\u002Fdocs","docs",[9,13,17,21,63,96,109,150,179,183,212,216,220,245,249],{"title":10,"path":11,"stem":12},"Introdução","\u002Fdocs\u002Fintroduction","docs\u002F01.introduction",{"title":14,"path":15,"stem":16},"Primeiros passos","\u002Fdocs\u002Fgetting-started","docs\u002F02.getting-started",{"title":18,"path":19,"stem":20},"Como funciona","\u002Fdocs\u002Fhow-it-works","docs\u002F03.how-it-works",{"title":22,"path":23,"stem":24,"children":25,"page":62},"Conceitos","\u002Fdocs\u002Fconcepts","docs\u002F04.concepts",[26,30,34,38,42,46,50,54,58],{"title":27,"path":28,"stem":29},"Workspaces e recursos","\u002Fdocs\u002Fconcepts\u002Fworkspaces-and-resources","docs\u002F04.concepts\u002F1.workspaces-and-resources",{"title":31,"path":32,"stem":33},"Serviços e disponibilidade","\u002Fdocs\u002Fconcepts\u002Fservices-and-availability","docs\u002F04.concepts\u002F2.services-and-availability",{"title":35,"path":36,"stem":37},"Agendamentos e pré-reservas","\u002Fdocs\u002Fconcepts\u002Fbookings-and-holds","docs\u002F04.concepts\u002F3.bookings-and-holds",{"title":39,"path":40,"stem":41},"Automatizações","\u002Fdocs\u002Fconcepts\u002Fautomations","docs\u002F04.concepts\u002F4.automations",{"title":43,"path":44,"stem":45},"Busca global","\u002Fdocs\u002Fconcepts\u002Fglobal-search","docs\u002F04.concepts\u002F5.global-search",{"title":47,"path":48,"stem":49},"Resultados e vendas","\u002Fdocs\u002Fconcepts\u002Fsales-results","docs\u002F04.concepts\u002F6.sales-results",{"title":51,"path":52,"stem":53},"Como você chama as coisas","\u002Fdocs\u002Fconcepts\u002Fvocabulary","docs\u002F04.concepts\u002F7.vocabulary",{"title":55,"path":56,"stem":57},"Temas e paletas","\u002Fdocs\u002Fconcepts\u002Fthemes","docs\u002F04.concepts\u002F8.themes",{"title":59,"path":60,"stem":61},"Wagy, seu assistente","\u002Fdocs\u002Fconcepts\u002Fwagy","docs\u002F04.concepts\u002F9.wagy",false,{"title":64,"path":65,"stem":66,"children":67,"page":62},"Canais","\u002Fdocs\u002Fchannels","docs\u002F05.channels",[68,72,76,80,84,88,92],{"title":69,"path":70,"stem":71},"WhatsApp","\u002Fdocs\u002Fchannels\u002Fwhatsapp","docs\u002F05.channels\u002F01.whatsapp",{"title":73,"path":74,"stem":75},"Chat web","\u002Fdocs\u002Fchannels\u002Fwebchat","docs\u002F05.channels\u002F02.webchat",{"title":77,"path":78,"stem":79},"Telegram","\u002Fdocs\u002Fchannels\u002Ftelegram","docs\u002F05.channels\u002F03.telegram",{"title":81,"path":82,"stem":83},"Pausas e Estado","\u002Fdocs\u002Fchannels\u002Fpauses-and-status","docs\u002F05.channels\u002F04.pauses-and-status",{"title":85,"path":86,"stem":87},"Inbox","\u002Fdocs\u002Fchannels\u002Finbox","docs\u002F05.channels\u002F05.inbox",{"title":89,"path":90,"stem":91},"Formulário","\u002Fdocs\u002Fchannels\u002Fform","docs\u002F05.channels\u002F06.form",{"title":93,"path":94,"stem":95},"Instagram","\u002Fdocs\u002Fchannels\u002Finstagram","docs\u002F05.channels\u002F07.instagram",{"title":97,"path":98,"stem":99,"children":100,"page":62},"Bot e conhecimento","\u002Fdocs\u002Fbot","docs\u002F06.bot",[101,105],{"title":102,"path":103,"stem":104},"O bot e a IA","\u002Fdocs\u002Fbot\u002Foverview","docs\u002F06.bot\u002F01.overview",{"title":106,"path":107,"stem":108},"Conhecimento do bot","\u002Fdocs\u002Fbot\u002Fknowledge","docs\u002F06.bot\u002F02.knowledge",{"title":110,"path":111,"stem":112,"children":113,"page":62},"Trabalho, mapa e regras","\u002Fdocs\u002Fwork","docs\u002F07.work",[114,118,122,126,130,134,138,142,146],{"title":115,"path":116,"stem":117},"Trabalho e ações","\u002Fdocs\u002Fwork\u002Ftasks-and-actions","docs\u002F07.work\u002F01.tasks-and-actions",{"title":119,"path":120,"stem":121},"Mapa e endereços","\u002Fdocs\u002Fwork\u002Fmap-and-addresses","docs\u002F07.work\u002F02.map-and-addresses",{"title":123,"path":124,"stem":125},"Regras","\u002Fdocs\u002Fwork\u002Fflows","docs\u002F07.work\u002F03.flows",{"title":127,"path":128,"stem":129},"Condições das regras","\u002Fdocs\u002Fwork\u002Fconditions","docs\u002F07.work\u002F04.conditions",{"title":131,"path":132,"stem":133},"Zonas","\u002Fdocs\u002Fwork\u002Fzones","docs\u002F07.work\u002F05.zones",{"title":135,"path":136,"stem":137},"Portal de acompanhamento do cliente","\u002Fdocs\u002Fwork\u002Ftracking-portal","docs\u002F07.work\u002F06.tracking-portal",{"title":139,"path":140,"stem":141},"Pagamentos com Mercado Pago","\u002Fdocs\u002Fwork\u002Fpayments","docs\u002F07.work\u002F07.payments",{"title":143,"path":144,"stem":145},"Fluxos","\u002Fdocs\u002Fwork\u002Fservice-flows","docs\u002F07.work\u002F08.service-flows",{"title":147,"path":148,"stem":149},"Despesas e movimentações","\u002Fdocs\u002Fwork\u002Fexpenses","docs\u002F07.work\u002F09.expenses",{"title":151,"path":152,"stem":153,"children":154,"page":62},"Equipe","\u002Fdocs\u002Fteam","docs\u002F08.team",[155,159,163,167,171,175],{"title":156,"path":157,"stem":158},"Telegram da equipe","\u002Fdocs\u002Fteam\u002Ftelegram-team","docs\u002F08.team\u002F01.telegram-team",{"title":160,"path":161,"stem":162},"Papéis e permissões","\u002Fdocs\u002Fteam\u002Froles","docs\u002F08.team\u002F02.roles",{"title":164,"path":165,"stem":166},"Notificações","\u002Fdocs\u002Fteam\u002Fnotifications","docs\u002F08.team\u002F03.notifications",{"title":168,"path":169,"stem":170},"Comissões da equipe","\u002Fdocs\u002Fteam\u002Fcommissions","docs\u002F08.team\u002F04.commissions",{"title":172,"path":173,"stem":174},"Parceiros e colaboradores","\u002Fdocs\u002Fteam\u002Fpartners","docs\u002F08.team\u002F05.partners",{"title":176,"path":177,"stem":178},"Focus, uma tarefa de cada vez","\u002Fdocs\u002Fteam\u002Ffocus","docs\u002F08.team\u002F06.focus",{"title":180,"path":181,"stem":182},"Início rápido","\u002Fdocs\u002Fquickstart","docs\u002F09.quickstart",{"title":184,"path":185,"stem":186,"children":187,"page":62},"API","\u002Fdocs\u002Fapi","docs\u002F10.api",[188,192,196,200,204,208],{"title":189,"path":190,"stem":191},"Autenticação","\u002Fdocs\u002Fapi\u002Fauthentication","docs\u002F10.api\u002F1.authentication",{"title":193,"path":194,"stem":195},"Convenções","\u002Fdocs\u002Fapi\u002Fconventions","docs\u002F10.api\u002F2.conventions",{"title":197,"path":198,"stem":199},"Endpoints","\u002Fdocs\u002Fapi\u002Fendpoints","docs\u002F10.api\u002F3.endpoints",{"title":201,"path":202,"stem":203},"Webhooks","\u002Fdocs\u002Fapi\u002Fwebhooks","docs\u002F10.api\u002F4.webhooks",{"title":205,"path":206,"stem":207},"SDKs de TypeScript e Python","\u002Fdocs\u002Fapi\u002Fsdks","docs\u002F10.api\u002F5.sdks",{"title":209,"path":210,"stem":211},"Referência da API","\u002Fdocs\u002Fapi\u002Freference","docs\u002F10.api\u002F6.reference",{"title":213,"path":214,"stem":215},"MCP e agentes de IA","\u002Fdocs\u002Fmcp","docs\u002F11.mcp",{"title":217,"path":218,"stem":219},"Receitas","\u002Fdocs\u002Frecipes","docs\u002F12.recipes",{"title":221,"path":222,"stem":223,"children":224,"page":62},"E se…?","\u002Fdocs\u002Fque-pasa-si","docs\u002F13.que-pasa-si",[225,229,233,237,241],{"title":226,"path":227,"stem":228},"E se…? Agendamentos e sinais","\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas","docs\u002F13.que-pasa-si\u002F01.senas-y-reservas",{"title":230,"path":231,"stem":232},"E se…? Avisos e canais","\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales","docs\u002F13.que-pasa-si\u002F02.avisos-y-canales",{"title":234,"path":235,"stem":236},"E se…? O bot","\u002Fdocs\u002Fque-pasa-si\u002Fbot","docs\u002F13.que-pasa-si\u002F03.bot",{"title":238,"path":239,"stem":240},"E se…? Serviços e tarefas","\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas","docs\u002F13.que-pasa-si\u002F04.servicios-y-tareas",{"title":242,"path":243,"stem":244},"E se…? Assinatura e cancelamento","\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja","docs\u002F13.que-pasa-si\u002F05.plan-y-baja",{"title":246,"path":247,"stem":248},"Conectar o Fiuit à sua IA","\u002Fdocs\u002Fconectar-tu-ia","docs\u002F14.conectar-tu-ia",{"title":250,"path":251,"stem":252},"Configure a Fiuit com o Claude ou o ChatGPT","\u002Fdocs\u002Fconfigurar-con-tu-ia","docs\u002F15.configurar-con-tu-ia",[254,258,264,269,273,278,281,286,291,296,302,307,312,317,322,327,332,335,340,345,350,355,359,364,369,372,377,382,387,392,395,400,405,410,415,420,425,430,435,440,445,450,455,460,463,468,473,478,483,488,491,496,501,506,511,516,521,526,531,536,539,544,549,554,557,562,567,572,577,580,585,590,595,598,603,608,611,616,621,626,631,636,641,646,651,654,659,664,669,674,679,684,689,694,699,704,709,712,717,722,727,732,737,742,746,750,753,758,763,768,772,776,780,785,789,792,797,802,807,812,817,822,825,830,835,840,845,850,855,860,865,868,873,878,883,886,891,895,900,904,908,912,917,922,925,930,935,940,945,950,955,960,965,969,974,977,982,987,992,997,1002,1007,1012,1015,1020,1025,1030,1035,1040,1045,1050,1055,1060,1065,1070,1075,1080,1085,1090,1095,1100,1105,1110,1115,1120,1125,1130,1135,1140,1143,1148,1153,1158,1163,1168,1173,1178,1181,1186,1191,1196,1201,1206,1209,1214,1219,1224,1229,1234,1237,1242,1247,1252,1257,1261,1266,1271,1276,1281,1286,1291,1296,1299,1304,1309,1314,1319,1322,1327,1332,1337,1341,1346,1351,1356,1361,1366,1371,1376,1381,1386,1389,1394,1399,1404,1409,1414,1419,1423,1428,1431,1436,1441,1446,1451,1456,1461,1465,1468,1473,1478,1483,1488,1493,1498,1502,1507,1512,1517,1520,1525,1530,1535,1540,1545,1550,1555,1560,1565,1570,1575,1578,1583,1588,1593,1598,1603,1606,1611,1615,1620,1625,1630,1634,1637,1642,1647,1652,1655,1660,1665,1670,1675,1680,1685,1690,1693,1698,1703,1708,1713,1718,1723,1728,1732,1735,1740,1745,1750,1755,1758,1763,1768,1773,1778,1783,1786,1791,1796,1801,1806,1811,1815,1820,1825,1830,1835,1840,1845,1848,1853,1858,1863,1868,1873,1876,1881,1886,1891,1895,1900,1905,1909,1913,1917,1922,1925,1930,1935,1940,1945,1950,1955,1960,1965,1970,1975,1980,1985,1990,1995,2000,2005,2010,2015,2020,2025,2030,2035,2040,2045,2050,2055,2060,2065,2070,2075,2080,2085,2090,2095,2100,2105,2110,2115,2120,2125,2130,2135,2140,2145,2150,2155,2160,2165,2170,2175,2180,2185,2190,2195,2200,2205,2210,2215,2220,2225,2230,2235,2240,2245,2250,2255,2260,2265,2270,2275,2280,2285,2290,2295,2300,2305,2310,2315,2320,2325,2330,2335,2340,2345,2350,2355,2360,2365,2370,2375,2380,2385,2390,2395,2400,2405,2410,2415,2420,2425,2430,2435,2440,2445,2450,2455,2460,2465,2470,2475,2480,2485,2490,2495,2500,2505,2510,2515,2520,2525,2530,2535,2540,2545,2550,2555,2560,2565,2570,2575,2580,2585,2590,2595,2600,2605,2610,2615,2620,2625,2630,2635,2640,2645,2650,2655,2660,2665,2670,2675,2680,2685,2690,2695,2700,2705,2710,2715,2720,2725,2730,2735,2740,2745,2750,2755,2760,2765,2770,2775,2780,2785,2790,2795,2800,2805,2810,2815,2820,2825,2830,2835,2840,2845,2850,2855,2860,2865,2870,2875,2880,2885,2890,2895,2900,2905,2910,2915,2920,2925,2930,2935,2940,2945,2950,2955,2960,2965,2970,2975,2980,2985,2990,2995,3000,3005,3010,3015,3020,3025,3030,3035,3040,3045,3050,3055,3060,3065,3070,3075,3080,3085,3090,3095,3100,3105,3110,3115,3120,3125,3130,3135,3140,3145,3150,3155,3160,3165,3170,3175,3180,3185,3190,3195,3200,3205,3210,3215,3220,3225,3230,3235,3240,3245,3250,3255,3260,3265,3270,3275,3280,3285,3290,3295,3300,3305,3310,3315,3320,3325,3330,3335,3340,3345,3350,3355,3360,3365,3370,3375,3380,3385,3390,3395,3400,3405,3410,3415,3420,3425,3430,3435,3440,3445,3450,3455,3460,3465,3470,3475,3480,3485,3490,3495,3500,3505,3510,3515,3520,3525,3530,3535,3540,3545,3550,3555,3560,3565,3570,3575,3580,3585,3590,3595,3600,3605,3610,3615,3620,3625,3630,3635,3640,3645,3650,3655,3660,3665,3670,3675,3680,3685,3690,3695,3700,3705,3710,3715,3720,3725,3730,3735,3740,3745,3750,3755,3760,3765,3770,3775,3780,3785,3790,3795,3800,3805,3810,3815,3820,3825,3830,3835,3840,3845,3850,3855,3860,3865,3870,3875,3880,3885,3890,3895,3900,3905,3910,3915,3920,3925,3928,3933,3938,3943,3948,3953,3958,3963,3968,3973,3978,3983,3988,3993,3998,4003,4007,4012,4017,4022,4027,4032,4037,4040,4045,4050,4055,4060,4065,4070,4075,4080,4085,4090,4095,4100,4103,4108,4113,4118,4123,4128,4133,4138,4143,4148,4153,4158,4163,4168,4173,4178,4183,4188,4193,4198,4203,4208,4213,4218,4223,4228,4233,4238,4243,4248,4253,4258,4263,4268,4273,4278,4283,4288,4293,4298,4303,4308,4313,4318,4323,4328,4333,4338,4343,4348,4353,4358,4363,4368,4373,4378,4383,4388,4393,4398,4403,4408,4413,4418,4423,4428,4433,4438,4443,4448,4453,4458,4463,4468,4473,4478,4483,4486,4491,4496,4501,4506,4511,4516,4521,4526,4531,4536,4541,4546,4551,4556,4561,4566,4571,4576,4581,4586,4591,4596,4601,4606,4611,4616,4621,4626,4631,4636,4641,4646,4651,4656,4661,4666,4671,4674,4679,4684,4689,4694,4699,4704,4709,4714,4719,4724,4729,4734,4739,4744,4749,4754,4759,4764,4769,4774,4779,4784,4789,4794,4799,4804,4809,4814,4819,4824,4829,4834,4839,4844,4849,4854,4859,4864,4869,4874,4879,4884,4889,4894,4899,4904,4909,4914,4919,4924,4929,4934,4939,4944,4949,4954,4959,4964,4969,4974,4979,4984,4989,4994,4999,5004,5009,5014,5019,5024,5029,5034,5039,5044,5049,5054,5059,5064,5069,5074,5079,5084,5089,5094,5097,5102,5107,5112,5117,5122,5127,5132,5137,5140,5145,5150,5155,5160,5165,5170,5175,5180,5185,5190,5195,5200,5205,5210,5215,5220,5225,5230,5235,5240,5245,5250,5255,5260,5265,5270,5275,5280,5285,5290,5295,5300,5305,5310,5315,5320,5325,5330,5335,5340,5345,5350,5355,5360,5365,5370,5375,5380,5385,5390,5395,5400,5405,5410,5415,5420,5425,5430,5435,5440,5445,5450,5455,5460,5465,5470,5475,5480,5485,5490,5495,5500,5505,5510,5515,5520,5525,5530,5535,5540,5545,5550,5555,5560,5565,5570,5575,5580,5585,5590,5595,5600,5605,5610,5615,5620,5625,5630,5635,5640,5645,5650,5655,5660,5665,5670,5675,5680,5685,5690,5695,5700,5705,5710,5715,5720,5725,5730,5735,5740,5745,5750,5755,5760,5765,5770,5775,5778,5782,5787,5792,5797,5802,5807,5812,5817,5822,5827,5832,5837,5842,5847,5852,5857,5862,5867,5872,5877,5882,5887,5892,5897,5902,5907,5912,5917,5922,5927,5932,5937,5942,5947,5952,5957,5962,5967,5972,5977,5982,5987,5992,5997,6002,6005,6010,6015,6020,6025,6030,6035,6040,6045,6050,6055,6060,6065,6070,6075,6080,6085,6090,6095,6100,6105,6110,6115,6120,6125,6128,6133,6138,6143,6148,6153,6158,6163,6168,6173,6176,6181,6186,6191,6196,6200],{"id":11,"title":10,"titles":255,"content":256,"level":257},[],"O que é a Fiuit, para quem serve e os blocos que você vai usar para atender, agendar e trabalhar com a sua equipe. Fiuit é uma camada de automação multicanal: conecta WhatsApp, Telegram e o chat do seu site à agenda e ao trabalho da sua equipe. Entende o que pedem, propõe o próximo passo e transforma confirmações em reservas e tarefas. Você define as regras. WhatsApp, Telegram e chat web conversam com seus clientes. Os formulários também chegam ao Inbox, para atendimento humano. Sua equipe e a API operam sobre as mesmas tarefas. Esta documentação descreve o que já está disponível. O que ainda não existe aparece marcado como Em breve.",1,{"id":259,"title":260,"titles":261,"content":262,"level":263},"\u002Fdocs\u002Fintroduction#para-quem-é","Para quem é",[10],"Qualquer negócio que vende o tempo de alguém ou de algo. A Fiuit usa um vocabulário genérico (tarefa, recurso, serviço) e se adapta ao seu ramo com um modelo inicial: NegócioO que se reserva ou se fazBarbeariaUm barbeiro por 30 a 45 minutosEstéticaUm profissional e uma máquina e uma cabine, ao mesmo tempoClínicaUm médico e um consultórioRestauranteLugares no salão conforme o tamanho do grupoEntregasTarefas que um entregador pega de uma fila, com destino no mapa",2,{"id":265,"title":266,"titles":267,"content":268,"level":263},"\u002Fdocs\u002Fintroduction#o-que-você-vai-usar","O que você vai usar",[10],"Hoje: o que precisa ser feito agora, com o seu trabalho ou o de toda a equipe, conforme o seu papel.Inbox: todas as conversas de todos os canais em um só lugar; você assume o controle quando precisar.Trabalho: todas as tarefas, em lista, calendário ou mapa, com ações por etapa (pegar, soltar, concluir, \"não estava\").Clientes e Meu negócio: seu catálogo (serviços, produtos e planos), seus recursos (zonas, espaços e equipamentos), seus fluxos, sua equipe e os dados do negócio, em abas.Bot: personalidade, conhecimento e simulador. Atendimento → Mensagens automáticas: lembretes e regras com condições.Wagy: o assistente do painel que ajuda você a configurar tudo conversando.Novidades: o que há de mais recente na Fiuit e o que vem por aí, com um ponto quando há algo que você ainda não viu.Finanças: recebimentos, caixa, comissões e resultados do período. Configuração: Pagamentos, Plano e uso e Avançado.",{"id":270,"title":64,"titles":271,"content":272,"level":263},"\u002Fdocs\u002Fintroduction#canais",[10],"Todos os canais usam o mesmo motor: um horário reservado pelo WhatsApp some na hora do painel, do chat web e da API. WhatsApp com assistente de IA (texto e áudio).Chat web para colar no seu site.Telegram com o bot próprio do seu negócio.Telegram da equipe: avisos e o Mini App \"Meu dia\".",{"id":274,"title":275,"titles":276,"content":277,"level":263},"\u002Fdocs\u002Fintroduction#por-onde-continuar","Por onde continuar",[10],"Primeiros passos: do modelo de negócio à sua primeira tarefa, com o Wagy.Como funciona: a vida de uma mensagem e as garantias do motor.Trabalho e ações e Regras.Uma dúvida pontual? Veja E se…?: respostas curtas sobre agendamentos, avisos, bot e tarefas.Se você desenvolve: Início rápido da API, SDK e MCP. O bot de clientes reserva serviços com horário; a equipe cria tarefas de fila pelo painel ou pela API. Criação de entregas em fila pelo chat: em breve.",{"id":15,"title":14,"titles":279,"content":280,"level":257},[],"Guia passo a passo para montar o seu negócio na Fiuit com a ajuda do Wagy, conectar um canal, testar o bot e fazer a sua primeira tarefa. Este guia leva você do zero a um negócio atendendo. Leva cerca de 20 minutos e você pode pedir ajuda ao Wagy em cada passo. Esqueceu a senha? No login, Esqueci a senha envia um link para o seu email. A mensagem não revela se o email existe na Fiuit; o link vale 30 minutos, é usado uma única vez e pede uma senha nova de 12 a 128 caracteres. Se não chegar, olhe no spam e, depois de um minuto, toque em Enviar de novo na mesma tela. Enquanto você digita a senha, o Wagy fecha os olhos; com o olho do campo você pode ver o que digitou.",{"id":282,"title":283,"titles":284,"content":285,"level":263},"\u002Fdocs\u002Fgetting-started#_1-criar-o-negócio-a-partir-de-um-modelo","1. Criar o negócio a partir de um modelo",[14],"Cada negócio (ou unidade) é um projeto. Ao criá-lo você escolhe o tipo de negócio e a Fiuit carrega um modelo com serviços, recursos, horários e etapas típicas desse ramo: barbearia, estética, clínica, restaurante ou entregas. Entre no painel e abra o seletor de projetos.Toque em Criar projeto, informe o nome, escolha o tipo de negócio, o fuso horário e o idioma.Entre no projeto novo. O seu plano define quantos projetos você pode ter; se atingiu o limite, o seletor avisa. Tudo o que vem no modelo pode ser alterado depois. Os nomes se adaptam ao ramo (por exemplo \"Aceitar entrega\" em entregas), mas por baixo é o mesmo motor.",{"id":287,"title":288,"titles":289,"content":290,"level":263},"\u002Fdocs\u002Fgetting-started#_2-configurar-com-o-wagy","2. Configurar com o Wagy",[14],"O Wagy é o assistente de configuração do painel: um bot simpático a quem você conta o que faz e que monta o seu negócio com você. Você o abre com o botão Falar com o Wagy. Dono, Gerentes e Colaboradores o usam, conforme suas permissões. Conte sobre o seu negócio (\"Tenho uma barbearia com três barbeiros\").O Wagy propõe um plano de mudanças: um cartão com o que vai criar ou modificar (serviços, horários, recursos, regras do bot, automações).Revise o plano e toque em Confirmar, Ajustar (você continua conversando e ele monta outro) ou Descartar. Nada é aplicado sem a sua confirmação.Se não gostar do resultado, toque em Desfazer: dá para desfazer o último plano aplicado por 24 horas. O Wagy também mostra uma lista de Primeiros passos que se marca sozinha com os seus dados reais: perfil do negócio, horário de atendimento, serviços, equipe, canal conectado, bot testado, primeira reserva e primeira tarefa concluída. E envia avisos discretos (no máximo dois por dia) que você pode fechar ou silenciar. Não sabe como se faz algo? Pergunte ao Wagy, por exemplo «como conecto o WhatsApp?»: ele responde com os passos destes guias e o link para o guia. Se não estiver documentado, ele diz, sem inventar, e oferece falar com uma pessoa da equipe da Fiuit. O Wagy nunca pede senhas nem tokens: para conectar um canal ele leva você à tela correspondente. As primeiras mensagens com o Wagy são pagas pela plataforma; depois consomem a cota de IA do seu plano.",{"id":292,"title":293,"titles":294,"content":295,"level":263},"\u002Fdocs\u002Fgetting-started#_3-revisar-o-básico-manualmente","3. Revisar o básico manualmente",[14],"Se preferir o painel, estas são as telas: Meu negócio → Dados: nome, fuso horário, moeda, idioma, endereço e política de cancelamento.Meu negócio → Catálogo: serviços, produtos e assinaturas. Filtre por tipo, estado e categoria; abra um plano para ver quem o tem. Zonas, salas, equipamentos e veículos ficam em Meu negócio → Equipe e recursos.Meu negócio → Equipe e recursos: pessoas, horários, papéis e convites. Toque em Adicionar para criar uma pessoa ou convidar; abra a ficha para gerenciar acesso e link de agenda (veja papéis e permissões).",{"id":297,"title":298,"titles":299,"content":300,"level":301},"\u002Fdocs\u002Fgetting-started#fotos-perfil-equipe-e-logo","Fotos: perfil, equipe e logo",[14,293],"Todas as fotos do painel usam o mesmo editor de fotos: toque na foto (ou em Escolher foto), tire com a câmera do celular, escolha da galeria ou, no computador, arraste ou cole com Ctrl\u002FCmd+V. Na foto de perfil (Minha conta) e na de cada pessoa (o perfil dela em Pessoas) o editor abre: arraste para enquadrar, pince ou use a roda para o zoom, gire e veja como fica nas listas e na ficha antes de tocar em Pronto. O logo (Meu negócio → Dados) não é recortado: mantém a transparência e é salvo como miniatura quadrada. Fotos do iPhone (HEIC) também servem. A foto fica menor no seu celular antes de enviar (poucos KB) e é salva sem a localização nem outros dados do arquivo.",3,{"id":303,"title":304,"titles":305,"content":306,"level":263},"\u002Fdocs\u002Fgetting-started#_4-conectar-um-canal","4. Conectar um canal",[14],"Vá em Atendimento → Canais: WhatsApp: escaneie um QR. Veja WhatsApp.Chat web: cole uma linha de código no seu site. Veja Chat web.Telegram: cole o token do seu bot. Veja Telegram. Todas as conversas chegam à mesma caixa, o Inbox.",{"id":308,"title":309,"titles":310,"content":311,"level":263},"\u002Fdocs\u002Fgetting-started#_5-testar-o-bot","5. Testar o bot",[14],"Antes de abrir para clientes reais, use o Simulador em Atendimento → Bot. Você conversa com o bot como se fosse um cliente, sem enviar mensagens reais; as reservas que ele faz são de teste. Experimente frases como \"quero reservar\", \"quanto custa?\" ou \"até que horas abrem?\". Ajuste a personalidade e carregue conhecimento (veja Bot e conhecimento).",{"id":313,"title":314,"titles":315,"content":316,"level":263},"\u002Fdocs\u002Fgetting-started#_6-sua-primeira-tarefa","6. Sua primeira tarefa",[14],"Toque em Nova tarefa (fica na barra superior, em qualquer tela). Aguarde o carregamento do catálogo; os campos permanecem inativos e você pode fechar o diálogo enquanto carrega.Escolha o cliente (busque ou crie um) e depois o serviço. O próximo horário livre já aparece sugerido: toque em Continuar ou altere.Revise o resumo (co-responsáveis, repetir e notas ficam em Mais opções) e toque em Criar. A tarefa aparece em Hoje e em Trabalho.",{"id":318,"title":319,"titles":320,"content":321,"level":263},"\u002Fdocs\u002Fgetting-started#_7-ver-o-dia-em-hoje","7. Ver o dia em Hoje",[14],"Hoje mostra o que precisa ser feito agora. Donos e Gerentes veem tudo; a equipe vê o que é seu. Em «Ver» você escolhe o que mostrar: «Hoje» (o dia), «Próximos» (hoje e os 7 dias seguintes, agrupados por dia), «Concluídas» (o que foi concluído em qualquer dia, do mais recente ao mais antigo; «Carregar mais» traz a próxima página) ou «Pendentes» (tudo o que está aberto, em Atrasadas, Hoje e Próximas, sem limite de data). As canceladas aparecem só em Trabalho. Em cada tarefa você avança de etapa com as ações disponíveis. Continue em Trabalho e ações.",{"id":323,"title":324,"titles":325,"content":326,"level":263},"\u002Fdocs\u002Fgetting-started#próximos-passos","Próximos passos",[14],"Regras e condições: lembretes e avisos automáticos.Telegram da equipe: avisos e \"Meu dia\" no celular.Pausas e Estado: o que fazer se algo se complicar.",{"id":328,"title":329,"titles":330,"content":331,"level":263},"\u002Fdocs\u002Fgetting-started#permissões-do-wagy","Permissões do Wagy",[14],"O Wagy usa as mesmas permissões do painel e da API: só oferece as ações permitidas para a sua função. Se o seu acesso mudar antes de confirmar um plano, ele verifica novamente e não aplica alterações sem permissão. A equipe operacional e quem tem acesso apenas para visualizar continuam sem acesso ao Wagy.",{"id":19,"title":18,"titles":333,"content":334,"level":257},[],"Arquitetura, princípios e a vida de uma mensagem, desde que chega por um canal até virar uma tarefa, uma ação ou um aviso.",{"id":336,"title":337,"titles":338,"content":339,"level":263},"\u002Fdocs\u002Fhow-it-works#princípios","Princípios",[18],"Núcleo determinístico, IA como intérprete. A IA entende o cliente e chama ferramentas. O motor calcula disponibilidade, pré-reserva e confirma. A IA nunca inventa um horário nem um preço.O banco de dados garante as regras. O overbooking é impossível porque o PostgreSQL rejeita alocações sobrepostas, não porque o app \"confere antes\".Uma verdade operacional, várias visões. Uma tarefa é um único objeto; você a vê em Hoje, em lista, em calendário ou no mapa.API primeiro. O painel, o bot, o MCP e o Wagy usam os mesmos serviços. Se algo não dá para fazer por API, falta na API.A credencial define o negócio. Uma chave ou sessão sempre pertence a um projeto.",{"id":341,"title":342,"titles":343,"content":344,"level":263},"\u002Fdocs\u002Fhow-it-works#da-entrada-à-ação","Da entrada à ação",[18],"Entradas → motor → interpretação → ações. Este é o caminho de uma conversa, não uma sequência obrigatória: painel e API chamam o motor diretamente; formulários vão para uma pessoa. A IA volta ao motor para validar cada proposta antes de agir. Entradas → Motor Fiuit → IA interpreta → Ações e saídas A IA não executa por conta própria: pede ferramentas e o motor valida permissões, disponibilidade e confirmações. Reservas e tarefas compartilham uma verdade operacional. Os avisos dependem das suas regras e do canal; o chat web responde durante a conversa, sem lembretes proativos. O bot de clientes reserva serviços com horário; a equipe cria tarefas de fila pelo painel ou pela API. Criação de entregas em fila pelo chat: em breve. WhatsApp → reserva «Tem horário amanhã para corte com o João?» Fiuit consulta horários reais, oferece opções e segura a escolhida por 10 minutos. Pede os dados que faltam e a confirmação; só então o motor confirma a reserva. João vê na agenda dele. Telegram → reserva com horário «Tem mesa para quatro amanhã às 20:00?» Fiuit consulta os horários do serviço, segura a opção escolhida por 10 minutos e pede os dados e a confirmação. Quando o cliente confirma, o motor registra a reserva e a equipe vê na agenda. A equipe cria a entrega pelo painel com um serviço de fila, o cliente e o endereço, sem escolher um horário. Depois pode atribuir, assumir e concluir a tarefa pelo Trabalho. Avisos dependem das regras ativadas. Criar entregas em fila automaticamente pelo chat: em breve.",{"id":346,"title":347,"titles":348,"content":349,"level":263},"\u002Fdocs\u002Fhow-it-works#a-vida-de-uma-mensagem","A vida de uma mensagem",[18],"Entra e se organiza. O canal verifica a origem e descarta mensagens repetidas. O motor guarda o contexto no Inbox e respeita as pausas. Formulários: entrada para atendimento humano, sem bot automático.O contexto é respeitado. O cliente e a conversa são identificados. Se uma pessoa assumiu, o bot não responde. Ações da equipe e da API têm suas próprias permissões e não precisam passar pela IA.A IA interpreta. Nos canais de conversa, o modelo entende a intenção, consulta dados do negócio por ferramentas e pede o que falta. Áudio é transcrito somente onde o canal suporta.Proposta e confirmação. O motor verifica regras, permissões e disponibilidade. Uma opção escolhida fica retida por 10 minutos; o cliente confirma antes de virar reserva. Se algo mudou, são oferecidas alternativas.O motor executa. Operações idempotentes evitam repetir uma ação ao tentar novamente. A base impede reservas sobrepostas. Datas, preços e confirmações são comunicados com dados reais do sistema, em modelos de mensagem.Trabalho, avisos e diálogo. Uma reserva criada pelo chat ou uma entrega em fila registrada pela equipe no painel aparece como tarefa para a equipe. As regras ativas geram avisos e ações permitidas. Fiuit também responde dúvidas e encaminha para uma pessoa; nem toda mensagem precisa criar uma tarefa.",{"id":351,"title":352,"titles":353,"content":354,"level":263},"\u002Fdocs\u002Fhow-it-works#tarefas-etapas-e-ações","Tarefas, etapas e ações",[18],"Cada negócio define as etapas por onde passa o seu trabalho e as ações que movem uma tarefa de uma para outra (pegar, soltar, concluir, \"não estava\"). Uma ação pode ter efeitos: atribuir a quem a executa, liberar, encerrar com um resultado. Veja Trabalho e ações.",{"id":356,"title":123,"titles":357,"content":358,"level":263},"\u002Fdocs\u002Fhow-it-works#regras",[18],"Uma regra diz \"quando isto acontecer, se esta condição for atendida, faça aquilo\": enviar uma mensagem, avisar a equipe, esperar, executar uma ação. As condições são expressões simples sobre a tarefa, o cliente ou a hora.",{"id":360,"title":361,"titles":362,"content":363,"level":263},"\u002Fdocs\u002Fhow-it-works#segurança","Segurança",[18],"Cada negócio é isolado no próprio banco de dados, os segredos são cifrados e cada mudança fica num registro de auditoria. Você é o responsável pelos dados dos seus clientes; a Fiuit os trata em seu nome.",{"id":365,"title":366,"titles":367,"content":368,"level":263},"\u002Fdocs\u002Fhow-it-works#para-onde-ir-depois","Para onde ir depois",[18],"Reservas e pré-reservas: as garantias da agenda.Bot e IA: o que o assistente pode e não pode fazer.",{"id":28,"title":27,"titles":370,"content":371,"level":257},[],"Organizações, workspaces, papéis, recursose e equipes de recursos.",{"id":373,"title":374,"titles":375,"content":376,"level":263},"\u002Fdocs\u002Fconcepts\u002Fworkspaces-and-resources#organização-e-workspaces","Organização e workspaces",[27],"No painel, um workspace se chama projeto: você pode ter vários e trocar entre eles com o seletor de projetos. Uma organização é a conta que paga. Ela contém um ou mais workspaces. Um workspace é um negócio ou unidade com seus próprios: fuso horário, idioma e moeda,número(s) de WhatsApp,bot, serviços, recursos e equipe. Uma rede de três barbearias é uma organização com três workspaces.",{"id":378,"title":379,"titles":380,"content":381,"level":263},"\u002Fdocs\u002Fconcepts\u002Fworkspaces-and-resources#papéis","Papéis",[27],"Detalhes de cada papel e das permissões em Papéis e permissões. PapelPodeownerTudo, em todos os workspaces da organizaçãomanagerTudo dentro de um workspacestaffVer e gerenciar só os próprios recursos (por exemplo, o barbeiro vê só a sua agenda)viewerSomente leitura A equipe também pode agir pelo WhatsApp depois de vincular o número com um código de uso único. Ações de administrador pelo WhatsApp sempre pedem confirmação SIM\u002FNÃO.",{"id":383,"title":384,"titles":385,"content":386,"level":263},"\u002Fdocs\u002Fconcepts\u002Fworkspaces-and-resources#recursos","Recursos",[27],"Um recurso é qualquer coisa consumida por um agendamento. kindExemplosstaffBarbeiro, médico, esteticista, instrutorspaceSala, consultório, cabine, salãoequipmentMáquina de laser, cadeira, quadratableMesa de restaurante (modo mesas)vehicleVan, equipe de entregazoneÁrea de entrega por CEP",{"id":388,"title":389,"titles":390,"content":391,"level":263},"\u002Fdocs\u002Fconcepts\u002Fworkspaces-and-resources#equipes-de-recursos","Equipes de recursos",[27],"Um equipe de recursos é um conjunto intercambiável (\"qualquer barbeiro\", \"máquinas de laser\"). Serviços exigem equipes, não recursos individuais, para que o motor escolha um. A estratégia de alocação decide qual: assignmentComportamentocustomer_choiceO cliente escolhe (por exemplo \"com o Juan\"); se não tiver preferência, usa outra estratégiaround_robinReveza entre os membrosleast_busyEscolhe o membro com menos agendamentos no diafixedSempre o mesmo membro (máquina única, sala única) {\n  \"name\": \"Barbeiros\",\n  \"assignment\": \"customer_choice\",\n  \"member_ids\": [\"res_juan\", \"res_pedro\", \"res_leo\"]\n} Gerencie equipes em Meu negócio → Equipe e recursos, com o título Equipes de trabalho. O papel Equipe dá acesso ao painel; não é necessário para participar de uma equipe de trabalho. Uma pessoa pode receber tarefas sem conta nem telefone. Convide depois com Convidar para o painel, na ficha. Cada equipe mostra os serviços que a usam e as zonas atendidas por seus membros. A ficha e o cadastro de pessoas não pedem um modo de atendimento. html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"id":32,"title":31,"titles":393,"content":394,"level":257},[],"Serviços, requisitos com vários recursos, horários e como os slots são calculados.",{"id":396,"title":397,"titles":398,"content":399,"level":263},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#serviços","Serviços",[31],"Um serviço é o que o cliente agenda. CampoSignificadoduration_minDuração do serviçostep_minGrade de início (a cada 15, 30 minutos…)buffer_before_min \u002F buffer_after_minTempo de preparo ou limpeza bloqueado ao redor do agendamentoprice_cents, currencyPreço que o bot informa (sempre do banco de dados)deposit_centsSinal exigido para confirmar (cobrança online: em breve)booking_paymentO que é cobrado ao confirmar um horário: none, deposit (o sinal) ou total (o valor da tarefa)lead_time_minAntecedência mínima (por exemplo 60 minutos)max_advance_daysCom quanta antecedência máxima o cliente pode agendarwindow_modeO slot é uma janela fixa (entregas: 14:00–16:00)fulfillment_modescheduled (padrão, com horário) ou queue (despacho por fila, sem horário fixo)location_modeOnde o serviço é feito: no local, no endereço do cliente, à escolha ou a distânciacolorCor que identifica o serviço em todas as telasintake_formJSON Schema de dados extras a coletar (convênio, endereço…)requirementsQuais recursos o serviço precisa ao mesmo tempo",{"id":401,"title":402,"titles":403,"content":404,"level":263},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#janela-ou-despacho-dois-modos-de-cumprimento","Janela ou despacho: dois modos de cumprimento",[31],"Cada serviço define como o agendamento é cumprido (fulfillment_mode): scheduled (o padrão): o agendamento ocupa um intervalo de tempo conhecido — um horário fixo ou, com window_mode, uma janela (entregas das 14:00 às 16:00, com cota por zona).queue (despacho, para água, gás ou delivery sob demanda): o agendamento não tem horário fixo — entra na fila de pendências de um entregador. O motor o atribui ao entregador com menos tarefas ativas e cada entregador tem um limite de tarefas ativas por vez, garantido no banco de dados. A fila usa os mesmos estados de um agendamento: pendente → aceita → iniciada → concluída (ou falhou). Assim, um mesmo negócio de entregas pode oferecer janelas programadas, despacho imediato ou os dois.",{"id":406,"title":407,"titles":408,"content":409,"level":263},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#requisitos","Requisitos",[31],"Um requisito diz: deste equipe, preciso de tantas unidades. Um serviço pode ter vários; um slot só existe se todos estiverem livres. {\n  \"name\": \"Depilação a laser\",\n  \"duration_min\": 45,\n  \"buffer_after_min\": 10,\n  \"requirements\": [\n    { \"resource_group_id\": \"grp_professionals\", \"units\": 1 },\n    { \"resource_group_id\": \"grp_lasers\", \"units\": 1 },\n    { \"resource_group_id\": \"grp_rooms\", \"units\": 1 }\n  ]\n} Com duas profissionais e só um laser, o Fiuit nunca oferece duas sessões de laser sobrepostas. Opções avançadas: units: \"party_size\" — consome tantas unidades quanto pessoas (restaurantes, aulas).offset_min \u002F duration_min num requisito — usa um recurso só em parte do serviço (por exemplo o lavatório nos últimos 15 minutos de uma coloração).",{"id":411,"title":412,"titles":413,"content":414,"level":263},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#horários","Horários",[31],"Cada recurso tem um horário: regras semanais no fuso do recurso mais exceções para datas específicas (fechado ou horário especial). Horários que passam da meia-noite. Se a hora de fechamento é menor ou igual à de abertura, a faixa termina no dia seguinte: [\"20:00\", \"03:00\"] aparece como 20:00 – 03:00 (+1). A noite pertence ao dia em que abre: a sexta 20:00 – 03:00 (+1) vai até sábado às 03:00 mesmo com o sábado fechado, e fechar a sexta tira essa noite inteira. 24 horas se escreve [\"00:00\", \"00:00\"]. Não dá para salvar uma faixa que invada a madrugada do dia seguinte. Uma reserva pode passar da meia-noite sem ser cortada, e ao pedir os horários de «um dia» (bot, reserva pública, GET \u002Fv1\u002Fslots?day=) entram os da noite depois das 00:00. O horário de verão é respeitado: uma noite com mudança de hora dura suas horas reais. {\n  \"tz\": \"America\u002FSao_Paulo\",\n  \"weekly\": { \"tue\": [[\"09:00\", \"19:00\"]], \"sat\": [[\"08:00\", \"12:00\"], [\"13:00\", \"16:00\"]] },\n  \"overrides\": [{ \"date\": \"2026-12-24\", \"ranges\": [[\"09:00\", \"13:00\"]] }, { \"date\": \"2026-12-25\", \"closed\": true }]\n}",{"id":416,"title":417,"titles":418,"content":419,"level":301},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#bloquear-um-horário","Bloquear um horário",[31,412],"Um bloqueio é uma exceção do dia: o dia inteiro (fechado) ou algumas horas (salvo como os trechos em que se atende nesse dia: o horário semanal menos o bloqueado). No painel, o mesmo diálogo bloqueia no Calendário (tocando um horário livre ou arrastando na grade), na ficha de cada recurso (Horários e bloqueios) e, à parte, no serviço (Pausar por um período, que fecha só esse serviço e não bloqueia os recursos que o atendem). Dá para escolher um ou vários recursos, um intervalo de dias ou repetir toda semana. As tarefas que já estavam nesse horário são avisadas e não são movidas sozinhas. Se vários recursos compartilham o mesmo horário, o bloqueio vale para todos.",{"id":421,"title":422,"titles":423,"content":424,"level":301},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#dias-e-horários-próprios-do-serviço","Dias e horários próprios do serviço",[31,412],"Um serviço também pode ter a sua própria janela: os dias e intervalos em que é oferecido, com o mesmo editor semanal dos recursos. A oferta é sempre a interseção: a janela do serviço corta a disponibilidade da equipe, nunca a amplia. Se o serviço não define janela, é oferecido qualquer horário que seus recursos tenham. O editor mostra uma pré-visualização com a interseção real antes de salvar, e o bot explica a janela quando não há horários.",{"id":426,"title":427,"titles":428,"content":429,"level":263},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#cor","Cor",[31],"Cada serviço escolhe uma cor da paleta do tema. Você a vê no calendário, em Hoje, em Trabalho, no mapa e nas estatísticas, junto ao nome: a cor identifica, mas não substitui o texto. Se você não escolher uma, o Fiuit atribui uma cor estável automaticamente.",{"id":431,"title":432,"titles":433,"content":434,"level":263},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#onde-é-feito","Onde é feito",[31],"Cada serviço define o seu destino: No local: a tarefa acontece no endereço do negócio.No endereço do cliente: entregas, visitas, serviço em domicílio.À escolha do cliente: o cliente decide ao reservar.A distância: uma sessão por videochamada ou telefone. Nenhum endereço é pedido nem mostrado: nem no bot, nem na reserva pela web, nem nos avisos. Você pode cadastrar o link da reunião do serviço (o da sua sala de videochamada): o bot o envia ao confirmar e os lembretes o repetem. O Fiuit não gera o link. Quando o destino é o endereço do cliente, ao criar a tarefa o Fiuit sugere o endereço que ele já tem salvo (com preenchimento automático ou carga manual, veja Mapa e endereços). Cada tarefa guarda o seu próprio destino: alterá-lo numa tarefa não toca nas demais nem no perfil. Salvar o endereço novo no perfil do cliente é opcional e separado: só acontece se você marcar a caixa de consentimento. O bot confirma o endereço, o consentimento e a reserva como passos separados.",{"id":436,"title":437,"titles":438,"content":439,"level":263},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#formulários-com-quantidades-e-cálculos","Formulários com quantidades e cálculos",[31],"Além dos campos de texto, o formulário de um serviço aceita: Quantidades: quantas unidades de algo (galões, metros, pessoas, equipamentos).Campos calculados: uma expressão simples que combina quantidades e preços para mostrar um total (por exemplo agua * 1500 + gas * 3000). O cálculo é validado no servidor e não pode tocar em dados de outros módulos nem de outros negócios. O painel tem editor e pré-visualização: teste o resultado antes de salvar. Ao criar a tarefa, o formulário pede as quantidades, aplica o cálculo e mostra o total; o cliente vê um resumo claro do que pediu. A cotação fica congelada com a tarefa: se o preço do catálogo mudar antes de confirmar, a tarefa já montada mantém o seu total; editar as quantidades manualmente recalcula com o catálogo vigente.",{"id":441,"title":442,"titles":443,"content":444,"level":263},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#como-os-slots-são-calculados","Como os slots são calculados",[31],"Expandir os horários para o período pedido, no fuso de cada recurso.Remover agendamentos e pré-reservas ativos (mais os buffers) e bloqueios manuais.Cortar em slots candidatos conforme duração e grade do serviço.Aplicar antecedência mínima e máxima, regras de corte e tamanho do grupo.Cruzar todos os requisitos, testando os membros de cada equipe conforme a estratégia de alocação.Devolver uma lista curta e ordenada. Quando não há nada disponível, a resposta traz unavailable_reason (closed, no_staff, no_equipment, no_space, lead_time, max_advance, cutoff, full) para o bot explicar o motivo. Os resultados passados de cada serviço —concluídas, canceladas, faturamento estimado, horário de pico e exportação CSV— estão em Resultados e vendas.",{"id":446,"title":447,"titles":448,"content":449,"level":263},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#pausar-e-duplicar","Pausar e duplicar",[31],"Pausar deixa de oferecer o serviço para novos pedidos no bot, reserva pública, Wagy e MCP. As tarefas já agendadas podem ser reagendadas, reatribuídas, concluídas e canceladas com as permissões e validações habituais. A pausa preserva os controles de horário e capacidade. Reativar volta a oferecê-lo. Pausar e desativar são a mesma ação. Duplicar cria « (copia)» pausado com preço, regras, requisitos, formulário, produtos, horário independente e etapas. Não copia tarefas, resultados nem avaliações. Exige permissão de catálogo; sem permissão para editar etapas usa as etapas base do projeto e avisa. Revise a cópia e reative quando estiver pronta. No detalhe abra ⋯ → Duplicar ou Pausar. No desktop também há um menu na lista. Wagy propõe as duas ações e aguarda a confirmação do plano. MCP permite pausar com update_service(active=false, confirm=true); duplicar ainda não tem ferramenta MCP.",{"id":451,"title":452,"titles":453,"content":454,"level":263},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#excluir-e-arquivar","Excluir e arquivar",[31],"Pausado e arquivado não são a mesma coisa. Pausado é temporário: o serviço, produto, equipe ou recurso aparece esmaecido no catálogo com «Reativar» e não aparece nos filtros de trabalho nem no bot. Arquivado some da vista: só aparece em «Arquivados» (no fim do catálogo, recolhido e oculto se estiver vazio), com «Restaurar». ⋯ → Excluir apaga de verdade se não tem histórico (nenhuma tarefa, cobrança ou registro que o use) e arquiva se tem; o diálogo diz qual dos dois acontece. Um arquivado some de tudo (catálogo, filtros, seletores, bot, site do negócio, Wagy e sugestões), mas as tarefas e cobranças antigas continuam mostrando o nome. Com tarefas futuras não exclui: elas aparecem para você reatribuir ou cancelar antes. Restaurar deixa o item pausado. Filtros e seletores oferecem só o que está ativo; um pausado ou arquivado só aparece se há tarefas com ele, marcado «(pausado)» ou «(arquivado)». API e MCP: DELETE com ?mode=remove|archive|delete (permissão de administração; sem mode pausa, como sempre), GET …\u002Fremoval para ver o que aconteceria e POST …\u002Frestore.",{"id":456,"title":457,"titles":458,"content":459,"level":263},"\u002Fdocs\u002Fconcepts\u002Fservices-and-availability#testar-um-fluxo","Testar um fluxo",[31],"Em Meu negócio → Etapas, dentro de um fluxo, ▶ Testar fluxo (no celular, ▶ Testar) percorre o rascunho que está na tela, mesmo sem salvar. Só vê quem pode editar fluxos (o Dono). Ver como: Equipe vê todas as telas; Cliente vê só os itens e botões marcados «Cliente». Se uma etapa não tem nada para o cliente, o teste diz «O cliente não vê esta etapa: a equipe a conclui» e oferece continuar coma equipe.Dados: preencha cada item ou toque em Preencher com exemplo. Um botão não avança se faltam os itens que ele pede, e o teste diz quais.Caminhos: os botões da etapa e, para a equipe, as saídas fixas desse ponto (Cancelar, Reagendar, Não veio e, em atendimento, Encerrar sem concluir com seu motivo).Mapa e registro: o mapa marca por onde vai o teste. O que aconteceria lista cada passo: o aviso ao cliente ou à equipe (com o texto de exemplo da mensagem), a atribuição e os dados que seriam salvos.Reiniciar volta à primeira etapa. O teste não salva nada, não avisa ninguém, não cobra e não envia mensagens, e não deixa tarefas, histórico nem auditoria. Não simula tempos nem lembretes adiados, nem o link do cliente nem a cobrança. html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"id":36,"title":35,"titles":461,"content":462,"level":257},[],"Estados do agendamento, a pré-reserva de 10 minutos, sinal e a garantia de zero overbooking.",{"id":464,"title":465,"titles":466,"content":467,"level":263},"\u002Fdocs\u002Fconcepts\u002Fbookings-and-holds#por-que-pré-reserva","Por que pré-reserva",[35],"Uma conversa no WhatsApp pode levar minutos: o cliente escolhe o horário, depois você pergunta o nome, talvez um sinal. Enquanto isso, outros clientes e a API disputam o mesmo horário. A pré-reserva (hold) segura o horário por 10 minutos (15 quando há sinal) e expira sozinha.",{"id":469,"title":470,"titles":471,"content":472,"level":263},"\u002Fdocs\u002Fconcepts\u002Fbookings-and-holds#estados","Estados",[35],"StatusSignificadoOcupa o horárioheldPré-reserva temporáriaSimpending_paymentAguardando o sinalSimconfirmedAgendadoSimchecked_inO cliente chegouSimcompletedAtendidoNãocancelledCancelado (ou substituído por reagendamento)Nãono_showFalta marcada por uma pessoaNãoexpiredPré-reserva não confirmada a tempoNão held ──confirm──► confirmed ──check-in──► checked_in ──► completed\n │  └─(sinal)──► pending_payment ──pago──► confirmed\n └─expira──► expired          confirmed ──cancela──► cancelled",{"id":474,"title":475,"titles":476,"content":477,"level":263},"\u002Fdocs\u002Fconcepts\u002Fbookings-and-holds#garantias","Garantias",[35],"Cada recurso ocupado por um agendamento é gravado como uma alocação com intervalo de tempo.Para recursos exclusive, o PostgreSQL rejeita alocações sobrepostas com uma constraint de exclusão.Para recursos pooled, os contadores de capacidade nunca passam do limite (verificação atômica).Um agendamento com vários recursos é gravado numa única transação: se qualquer recurso conflitar, nada é agendado.POST \u002Fholds e POST \u002Fholds\u002F{id}\u002Fconfirm exigem Idempotency-Key: reenviar uma requisição nunca cria um segundo agendamento. Se o horário foi ocupado enquanto o cliente decidia, você recebe 409 com code: \"slot_taken\" e uma lista de alternatives.",{"id":479,"title":480,"titles":481,"content":482,"level":263},"\u002Fdocs\u002Fconcepts\u002Fbookings-and-holds#reagendar-e-cancelar","Reagendar e cancelar",[35],"Reagendar cria um novo agendamento e cancela o anterior (ligados por rescheduled_to). Os lembretes se movem sozinhos.Cancelar libera o horário e cancela lembretes pendentes.Falta nunca é automática: o sistema sugere, uma pessoa confirma.",{"id":484,"title":485,"titles":486,"content":487,"level":263},"\u002Fdocs\u002Fconcepts\u002Fbookings-and-holds#sinal","Sinal",[35],"Se o serviço tem deposit_cents, confirmar a pré-reserva deixa o agendamento em pending_payment e o horário continua bloqueado. Quando o provedor confirma a cobrança do sinal, o núcleo registra o pagamento, confirma o agendamento e emite payment.paid. A disponibilidade de um provedor real depende da configuração do negócio. Cada serviço escolhe o que é cobrado ao reservar com booking_payment: none (nada), deposit (o sinal) ou total (o valor completo da tarefa, calculado pelo servidor). Com total a reserva segue o mesmo caminho do sinal: pending_payment, expiração, devolução pela janela de cancelamento e pagamento tardio em revisão.",{"id":40,"title":39,"titles":489,"content":490,"level":257},[],"Lembretes e confirmações, horário de silêncio e garantias de execução. Para esperas e condições, veja as regras. Há duas ferramentas de automação: Lembretes: \"quando isso acontecer, envie aquela mensagem\". São a forma mais simples de enviar lembretes e confirmações. Administram-se em Atendimento → Mensagens automáticas.Regras: esperam, decidem com condições e agem sobre as tarefas. Veja Regras e Condições.",{"id":492,"title":493,"titles":494,"content":495,"level":263},"\u002Fdocs\u002Fconcepts\u002Fautomations#lembretes","Lembretes",[39],"Um lembrete tem um gatilho, a mensagem enviada (um modelo com pré-visualização) e, se quiser, um filtro por etapa ou ação. Cada negócio cria, ativa e ajusta os seus: nenhum lembrete escreve a um cliente sem estar ativa.",{"id":497,"title":498,"titles":499,"content":500,"level":301},"\u002Fdocs\u002Fconcepts\u002Fautomations#gatilhos","Gatilhos",[39,493],"GatilhoExemploUm tempo antes do início24 h antes: enviar um lembreteUm tempo depois do fimMensagem de acompanhamentoCancelamento ou remarcaçãoAvisar o clienteUso de uma ferramenta da tarefaQuando alguém remarca ou pega a tarefaHorário fixo do diaAvisos à equipe, como a agenda do dia Os lembretes dirigidos a clientes saem pelo WhatsApp. Os avisos à equipe saem por Telegram, WhatsApp ou e-mail, conforme cada pessoa recebe avisos: veja Telegram da equipe. Em cada lembrete você vê os últimos envios com seu estado e o motivo, se falhou.",{"id":502,"title":503,"titles":504,"content":505,"level":263},"\u002Fdocs\u002Fconcepts\u002Fautomations#avisos-ao-entrar-em-uma-etapa-e-a-confirmação","Avisos ao entrar em uma etapa (e a confirmação)",[39],"O aviso ao cliente quando a tarefa entra em uma etapa —por exemplo, «Saiu para entrega»— e o aviso de confirmação não são mais lembretes: fazem parte da etapa do serviço, no bloco «Ao chegar». Assim há um só lugar e o cliente nunca recebe o mesmo aviso duas vezes. Cada aviso tem seu próprio interruptor. Os que vêm com o seu tipo de negócio chegam desligados, inclusive «Saiu para entrega».A confirmação sai uma única vez, venha do bot, do pagamento do sinal, do painel ou de um botão de etapa. Tarefas sem horário não a recebem.Ao chegar também pode avisar a equipe: todas as pessoas atribuídas à tarefa, por e-mail e Telegram. Se um canal falhar, ele é tentado de novo sem repetir o que já chegou.Valem as mesmas garantias abaixo (horário de silêncio, clientes de teste, canal em pausa) e os interruptores de avisos do projeto.Para esperar um tempo, pôr condições ou chamar um webhook próprio ao entrar em uma etapa, use uma regra. Por enquanto estes avisos se configuram pela API ou MCP (etapas do serviço); o editor visual de etapas chega em breve. Os lembretes de etapa ou de confirmação que você tinha passaram sozinhos para as suas etapas, com o mesmo estado (ligado ou desligado).",{"id":507,"title":508,"titles":509,"content":510,"level":263},"\u002Fdocs\u002Fconcepts\u002Fautomations#recomendadas-para-o-seu-negócio","Recomendadas para o seu negócio",[39],"O Fiuit traz um conjunto de lembretes recomendados conforme o tipo de negócio (lembrete 24 h antes, pedido de avaliação após concluir, avisos à equipe…). Elas são instaladas desligadas: ninguém escreve aos seus clientes sem você decidir. Vá em Atendimento → Mensagens automáticas.Em Recomendadas para o seu negócio, veja a pré-visualização da mensagem de cada lembrete.Ative as que quiser com o interruptor. A seção se oculta quando não resta nenhuma para ativar.",{"id":512,"title":513,"titles":514,"content":515,"level":301},"\u002Fdocs\u002Fconcepts\u002Fautomations#reativar-clientes-que-não-voltam","Reativar clientes que não voltam",[39,508],"Uma das recomendadas é \"Reativar clientes que não voltam\": escreve pelo WhatsApp a quem não tem atividade há N dias (sem tarefas concluídas nem mensagens recebidas; o que o negócio envia não conta). A quantidade de dias se edita no lembrete (de 1 a 365; cada modelo traz um valor razoável para o seu ramo). A varredura roda a cada hora, só de dia (10:00 às 18:00, hora do negócio) e com limite de clientes novos por passada, então escreve aos poucos. Cada cliente recebe uma única mensagem por período de inatividade: se ele voltar e faltar de novo, pode receber outra mais adiante. Se o cliente pediu para não receber mensagens, ou o canal ou a IA estiverem pausados, ele não recebe.",{"id":517,"title":518,"titles":519,"content":520,"level":263},"\u002Fdocs\u002Fconcepts\u002Fautomations#mensagens-automáticas-com-juízo","Mensagens automáticas com juízo",[39],"Há um limite de 30 envios automáticos por hora a clientes, por projeto: os envios se escalonam sozinhos para cuidar da linha do WhatsApp.Na ficha do cliente (Dono e Gerente), o interruptor \"Não enviar mensagens automáticas de promoção\" marca quem pediu para não recebê-las. Os lembretes de agendamento continuam saindo normalmente: o interruptor só freia as mensagens de promoção, como a reativação.",{"id":522,"title":523,"titles":524,"content":525,"level":263},"\u002Fdocs\u002Fconcepts\u002Fautomations#garantias-de-execução","Garantias de execução",[39],"Cada envio é programado junto com o evento que o origina, então não se perde.Antes de sair, o sistema revisa a tarefa de novo. Se foi remarcada ou cancelada, o envio antigo é descartado.Cada envio sai uma só vez e, se falhar, tenta de novo com espera crescente; após 5 falhas aparece no painel.Horário de silêncio: nada é enviado a clientes entre 21:00 e 08:00 no fuso horário do negócio. O envio é adiado, não se perde.As respostas SIM\u002FNÃO (\"sim\", \"ok\", \"👍\", \"não\"...) são interpretadas sem IA: instantâneo e sem custo.",{"id":527,"title":528,"titles":529,"content":530,"level":263},"\u002Fdocs\u002Fconcepts\u002Fautomations#em-breve","Em breve",[39],"Ainda não existem gatilhos para pré-reservas vencidas nem para pagamentos (chegam com a cobrança de sinais).",{"id":532,"title":533,"titles":534,"content":535,"level":263},"\u002Fdocs\u002Fconcepts\u002Fautomations#avisos-por-serviço-e-histórico","Avisos por serviço e histórico",[39],"Em Atendimento → Mensagens automáticas, o Dono ou Gerente configura avisos por serviço: criação sem horário, pessoa designada ou alterada, dados modificados, a caminho, chegada e conclusão. Começam desativados. Para dados modificados, escolha as chaves dos campos relevantes; edições seguidas são agrupadas até 60 segundos após a última. Para progresso, escolha uma etapa vigente do serviço. Se a etapa já tem um aviso, sua configuração existente é preservada. Os textos são salvos por idioma e aceitam marcadores de serviço e negócio. O histórico aparece nessa configuração, na Atividade da tarefa e na ficha do cliente. Mostra até 50 tentativas dos últimos 90 dias: enviado, omitido, adiado ou falhou, com canal, modelo e motivo. «Enviado» significa aceito pelo adaptador; não comprova entrega ou leitura. Não armazena texto nem contatos. Começa nesta versão, sem reconstruir envios anteriores. Sem canal ou com janela de resposta encerrada, o aviso é omitido; não há troca automática para email ou outro canal. A recusa de promoções afeta a reativação, não os avisos operacionais.",{"id":44,"title":43,"titles":537,"content":538,"level":257},[],"Encontre clientes, conversas, tarefas, recursos e serviços de qualquer tela do painel com Ctrl\u002FCmd+K ou a lupa do celular. A busca global leva você direto ao que procura, de qualquer tela do painel, sem entrar em cada seção.",{"id":540,"title":541,"titles":542,"content":543,"level":263},"\u002Fdocs\u002Fconcepts\u002Fglobal-search#como-usar","Como usar",[43],"No computador, pressione Ctrl+K (no Mac, Cmd+K). No celular, toque na lupa da barra superior.Escreva o que procura: um nome, um telefone, um email ou o código de uma tarefa.Percorra os resultados com as setas, pressione Enter para abrir o resultado e Escape para fechar. Os resultados vêm agrupados por tipo —Clientes, Conversas, Tarefas, Recursos e Serviços— e os grupos vazios não aparecem. Cada resultado abre a sua tela: uma tarefa abre direto o seu diálogo.",{"id":545,"title":546,"titles":547,"content":548,"level":263},"\u002Fdocs\u002Fconcepts\u002Fglobal-search#o-que-busca","O que busca",[43],"Clientes: nome, telefone (em qualquer formato, também parte do número), @usuário do Instagram ou Telegram, ou email.Conversas: pelo cliente ou pela última mensagem.Tarefas: por cliente, serviço ou código (o prefixo curto que você vê na tarefa).Recursos e serviços: pelo nome.",{"id":550,"title":551,"titles":552,"content":553,"level":263},"\u002Fdocs\u002Fconcepts\u002Fglobal-search#quem-vê-o-quê","Quem vê o quê",[43],"Os resultados respeitam o seu papel: Equipe e Leitura não veem clientes, recursos nem serviços, e a equipe vê apenas as conversas e tarefas que já pode ver nas suas telas, com os dados sensíveis mascarados. A busca nunca mostra dinheiro nem registra o que você digitou. Se um grupo demora demais, é omitido e o restante dos resultados aparece normalmente.",{"id":48,"title":47,"titles":555,"content":556,"level":257},[],"Como ver os resultados de cada serviço e do negócio, com períodos, tendências, melhores clientes e exportação CSV, e quem pode ver. Em Serviços você vê muito mais que o catálogo: cada serviço mostra seus resultados passados e o negócio tem um resumo mensal com o total.",{"id":558,"title":559,"titles":560,"content":561,"level":263},"\u002Fdocs\u002Fconcepts\u002Fsales-results#no-detalhe-de-um-serviço","No detalhe de um serviço",[47],"Abra Serviços e toque no serviço.Escolha o período: Hoje, semana, mês, mês passado, trimestre (com barras semanais) ou ano (com barras mensais).Revise os indicadores e toque em Exportar CSV para baixar a tabela. O que mostra: Tarefas concluídas, com a taxa de canceladas e de ausentes (\"não estava\").Faturamento estimado e ticket médio: calculados com o preço atual do catálogo das tarefas concluídas, mais os sinais retidos. É uma estimativa, não os recebimentos reais.Sinais retidos e melhores clientes (sem dados que o seu papel não pode ver).Dia e hora de pico do serviço.Peso sobre a capacidade: quanto dos recursos compartilhados o serviço ocupa. Os serviços por fila não usam agenda, então não têm esse dado. Se o serviço tem um formulário com quantidades ou cálculos (veja Serviços e disponibilidade), os resultados são agregados por campo: você vê quanto foi usado ou vendido de cada item, com a tendência, e isso também sai no CSV.",{"id":563,"title":564,"titles":565,"content":566,"level":263},"\u002Fdocs\u002Fconcepts\u002Fsales-results#nas-listas-de-produtos-e-assinaturas","Nas listas de Produtos e Assinaturas",[47],"Em Meu negócio → Catálogo → Produtos e Meu negócio → Catálogo (filtro Assinatura), cada cartão mostra o desempenho do período (Este mês, Mês anterior ou 90 dias, com seta ▲▼ em relação ao período anterior): nos produtos, as unidades vendidas em tarefas concluídas e em quantas tarefas aparecem; nas assinaturas, quantas foram vendidas, os clientes ativos hoje, o consumo das unidades e, nos pacotes, quantos vencem em 30 dias. O faturamento e o vendido em dinheiro só aparecem se o seu perfil puder ver dinheiro.",{"id":568,"title":569,"titles":570,"content":571,"level":263},"\u002Fdocs\u002Fconcepts\u002Fsales-results#resumo-do-negócio","Resumo do negócio",[47],"A lista de Serviços traz um cartão com o resumo do mês de todo o negócio; ao tocar nele você vê o detalhe dividido por serviço.",{"id":573,"title":574,"titles":575,"content":576,"level":263},"\u002Fdocs\u002Fconcepts\u002Fsales-results#quem-vê","Quem vê",[47],"Somente o Dono e o Gerente (ou uma chave de API com permissão de leitura de reservas) veem resultados e valores. Equipe e Leitura não recebem dinheiro nem nomes de clientes.",{"id":52,"title":51,"titles":578,"content":579,"level":257},[],"Renomeie Serviço, Tarefa, Recurso e Cliente com as palavras do seu negócio e use-as no painel, no bot, nos avisos e nos emails operacionais. O Fiuit fala do serviço, da tarefa, do recurso e do cliente. Se no seu negócio essas coisas têm outro nome —produto e pedido, profissional e paciente— você pode colocar os seus. O painel, as mensagens do bot, os avisos e os emails operacionais usam as suas palavras, respeitando a concordância («o turno» \u002F «a entrega», «Novo turno» \u002F «Nova entrega»).",{"id":581,"title":582,"titles":583,"content":584,"level":263},"\u002Fdocs\u002Fconcepts\u002Fvocabulary#mudar-os-nomes-passo-a-passo","Mudar os nomes, passo a passo",[51],"Entre em Configurações → Vocabulário (só o Dono ou quem administra o projeto).Escolha um ponto de partida ou escreva cada nome à mão. Para cada conceito, defina o singular, o plural e o gênero, em minúsculas.Você edita por idioma: os nomes escritos em português são usados nas mensagens em português, e assim por diante com espanhol e inglês.Salve. As Configurações aplicam tudo junto numa única rodada: Salvar confirma os nomes junto com o restante das mudanças da página e Descartar recupera os valores anteriores. As mudanças aparecem na hora no menu, nos botões, nas telas, nas mensagens do bot e nos avisos, para todo o time.",{"id":586,"title":587,"titles":588,"content":589,"level":263},"\u002Fdocs\u002Fconcepts\u002Fvocabulary#um-nome-por-tipo-de-recurso","Um nome por tipo de recurso",[51],"Cada tipo (sala, equipamento, mesa, veículo, zona) pode ter o seu próprio nome: «Quadras» em vez de «Salas». Aparece em Minha empresa, nos formulários, em Nova tarefa, no calendário e nas mensagens do bot. Ao cadastrar o negócio, usamos a palavra que você diz («temos 4 quadras»); se não disser, vale a do seu ramo.Para mudar, use Vocabulário ou peça ao Wagy.Com palavras conhecidas («quadra», «caminhonete», «agendamento») o gênero se ajusta sozinho; com outras, escolha em Gênero.",{"id":591,"title":592,"titles":593,"content":594,"level":263},"\u002Fdocs\u002Fconcepts\u002Fvocabulary#o-que-não-muda","O que não muda",[51],"Só muda o nome. Seus dados, reservas, permissões e estatísticas continuam iguais: uma tarefa continua sendo uma tarefa mesmo que na tela diga «pedido».Os textos escritos por pessoas (notas, respostas, comentários) não são alterados.Para voltar atrás, restaure os nomes padrão na mesma seção e salve. Os nomes reais —de clientes, serviços ou recursos— e os números nunca são traduzidos: o vocabulário muda como o Fiuit chama os conceitos, não os seus dados.",{"id":56,"title":55,"titles":596,"content":597,"level":257},[],"A paleta de cores do projeto é escolhida em Configurações e vale para todo o time; cada pessoa escolhe entre tema claro, escuro ou automático na sua conta. O Fiuit tem duas decisões de cor separadas: a paleta do projeto (quais cores o painel usa) e o tema claro\u002Fescuro (sobre qual fundo elas são desenhadas).",{"id":599,"title":600,"titles":601,"content":602,"level":263},"\u002Fdocs\u002Fconcepts\u002Fthemes#a-paleta-do-projeto","A paleta do projeto",[55],"A paleta define as cores do painel para todo o time: botões, etiquetas, ações principais e superfícies. Entre em Meu negócio → Dados → Aparência (Dono ou quem administra o projeto).Escolha uma paleta entre as disponíveis: combinações de duas cores, monocromáticas e a opção Preto e branco para uma interface sem cores de marca. O seletor mostra uma prévia com textos e botões reais.Salve. As mudanças das Configurações são aplicadas todas juntas com um único Salvar e aparecem na hora para todo o time. Se você não escolher nenhuma, o projeto usa a paleta da plataforma. Com a paleta Preto e branco, os avisos de sucesso, erro e outros continuam coloridos: o importante não passa despercebido.",{"id":604,"title":605,"titles":606,"content":607,"level":263},"\u002Fdocs\u002Fconcepts\u002Fthemes#o-tema-de-cada-pessoa","O tema de cada pessoa",[55],"Cada pessoa escolhe como vê o próprio painel, sem mexer na paleta do projeto: Em Minha conta você escolhe claro, escuro ou automático (segue o tema do dispositivo).O mapa tem seu próprio seletor (automático, claro ou escuro), que fica lembrado por navegador. Assim o negócio mantém sua identidade e cada um trabalha com a luz que prefere.",{"id":60,"title":59,"titles":609,"content":610,"level":257},[],"O que é o Wagy, o que ele pode fazer com as suas permissões, como pedir coisas, desfazer e aplicar mudanças em lote. O Wagy é o assistente da Fiuit dentro do painel. Você pede algo com as suas palavras e ele monta uma proposta; nada muda até ser aplicado com o seu nível de confirmação.",{"id":612,"title":613,"titles":614,"content":615,"level":263},"\u002Fdocs\u002Fconcepts\u002Fwagy#onde-aparece","Onde aparece",[59],"O botão do Wagy, em qualquer tela. No celular ocupa a tela toda, com as abas Chat e Painel.⤢ (desktop e tablet): a tela de controle, com pedidos de hoje, equipe, conversas, caixa e «Como vamos?».Os botões ✦ dos menus «+ Novo…» e a ajuda «?» de cada tela.Para Dono e Gerente.",{"id":617,"title":618,"titles":619,"content":620,"level":263},"\u002Fdocs\u002Fconcepts\u002Fwagy#o-que-ele-pode-fazer","O que ele pode fazer",[59],"O Wagy usa as mesmas ferramentas da API e do MCP, sempre com o seu papel e as suas permissões. Se você não pode fazer algo no painel, o Wagy também não. Perguntar: «quanto cobrei esta semana?», «quanta Inteligência me resta?». O que só lê responde na hora.Operar: agendar, reagendar ou cancelar tarefas, editar clientes, enviar mensagens, cadastrar produtos, montar fluxos, mudar o seu site e o vocabulário.Ler arquivos: uma foto ou um PDF (até 10 MB e 10 páginas) e notas de voz; o Wagy lê uma vez, apaga e mostra uma proposta.Pedir ajuda ao suporte com o erro já preenchido.",{"id":622,"title":623,"titles":624,"content":625,"level":263},"\u002Fdocs\u002Fconcepts\u002Fwagy#como-pedir-coisas","Como pedir coisas",[59],"Escreva o que precisa: «crie uma tarefa para a Ana na sexta às 10».O Wagy mostra a proposta com as mudanças concretas.Você confirma, ou a contagem regressiva aplica sozinha se o seu nível permitir. Se faltar um dado, ele pergunta com botões (por exemplo, os próximos horários livres). O que um cliente escreveu nunca é uma ordem: se o Wagy leu, sempre pede para você confirmar.",{"id":627,"title":628,"titles":629,"content":630,"level":301},"\u002Fdocs\u002Fconcepts\u002Fwagy#níveis","Níveis",[59,623],"Em ⤢ → Nível do Wagy: NívelO que fazPerguntar tudoVocê confirma cada mudança.Aceitar o internoFaz sozinho o que é interno e dá para desfazer, com 10 s para frear. O que chega ao cliente ou mexe em dinheiro ele pergunta.AutopilotFaz tudo; o que é do cliente ou do dinheiro espera 10 s para você frear. O Dono define o teto do projeto e ninguém passa dele. Em Faz sozinho você escolhe quais ações ele pode fazer sem perguntar. Mudanças que exigem confirmação explícita e passos com sistemas externos sempre são confirmados, mesmo no Autopilot.",{"id":632,"title":633,"titles":634,"content":635,"level":263},"\u002Fdocs\u002Fconcepts\u002Fwagy#desfazer","Desfazer",[59],"Quando o Wagy faz algo sozinho você vê «Faço em 10 s» com Desfazer e Agora. Depois, em O que o Wagy fez (ou no plano), toque em Desfazer enquanto for possível, inclusive uma reprogramação. Se alguém alterou os dados desde então, o Wagy pede que você revise antes.",{"id":637,"title":638,"titles":639,"content":640,"level":263},"\u002Fdocs\u002Fconcepts\u002Fwagy#ações-em-lote","Ações em lote",[59],"Se você pede várias mudanças juntas («passe as 7 atrasadas para amanhã»): Você confirma uma única vez.Elas são aplicadas uma a uma, cada uma com a sua contagem regressiva.Frear esta interrompe uma; Pausar tudo e Retomar controlam o resto.Cada mudança se desfaz separadamente.O que não cabe (sem horário livre, com conflito) fica marcado para você escolher, sem frear o resto.",{"id":642,"title":643,"titles":644,"content":645,"level":263},"\u002Fdocs\u002Fconcepts\u002Fwagy#exemplos-por-papel","Exemplos por papel",[59],"PapelPode pedirO que não fazDono«Mude a frase de capa do meu site», «monte um fluxo de entregas», «passe para Autopilot».Nada fora das suas permissões nem passar do teto que você definiu.Gerente«Reagende minhas tarefas atrasadas», «mande uma mensagem para a Lúcia», «o que tem hoje?».Mudar o nível acima do teto do Dono.EquipeNão usa o Wagy: trabalha com o Focus e a tela Hoje.— O Wagy também não inventa dados, não age por conta própria no que chega ao cliente sem a sua confirmação ou contagem regressiva, e não envia dados dos seus clientes ao suporte.",{"id":647,"title":648,"titles":649,"content":650,"level":263},"\u002Fdocs\u002Fconcepts\u002Fwagy#mais","Mais",[59],"MCP e agentes de IA: as mesmas ferramentas no Claude ou no ChatGPT.Conectar a Fiuit à sua IA.E se…? Serviços e tarefas.",{"id":70,"title":69,"titles":652,"content":653,"level":257},[],"Conecte o número do seu negócio por QR, o que o assistente faz com clientes e com a sua equipe, e como encaminhar uma conversa a uma pessoa.",{"id":655,"title":656,"titles":657,"content":658,"level":263},"\u002Fdocs\u002Fchannels\u002Fwhatsapp#conectar-um-número","Conectar um número",[69],"No painel, vá em Atendimento → Canais.Toque em Vincular WhatsApp. Aparece um código QR.No celular do negócio abra o WhatsApp, toque em Configurações (ou nos três pontinhos), Aparelhos conectados e Conectar um aparelho, e aponte a câmera para o código.Quando o status mudar para Conectado, você já recebe mensagens. Se o código expirar, toque em Reconectar para gerar outro. Só o Dono e os gerentes podem vincular. A tela mostra o status (conectado, aguardando leitura, desconectado) e quantas conexões o seu plano inclui. Desconectar para o bot nesse número, mas conserva as conversas e o histórico. Use um número dedicado ao negócio. Hoje a conexão por QR (como no WhatsApp Web) é a forma de conectar o WhatsApp. Não compartilhe o código: ele dá acesso ao seu WhatsApp. O simulador do bot não é uma conexão de WhatsApp: não aparece na lista nem conta para o seu plano. Ele fica em Teste rápido, mais abaixo na mesma tela.",{"id":660,"title":661,"titles":662,"content":663,"level":263},"\u002Fdocs\u002Fchannels\u002Fwhatsapp#com-qr-ou-oficial-meta","Com QR ou Oficial (Meta)",[69],"A tela do WhatsApp tem duas abas e abre a do canal que você está usando (se não houver nenhum, a do QR). Cada uma mostra seu status real (conectado, desconectado ou reconectando) e a ação que cabe. Com QR: conecta em um minuto escaneando o QR com o número que você já usa e é grátis. A Meta pode bloquear o número se você enviar muito para quem não te escreveu, então não serve para envios em massa, e o celular precisa manter a sessão aberta.Oficial (Meta): exige verificar a empresa na Meta e que o número não esteja no app comum. Não há risco de bloqueio e permite modelos aprovados para escrever primeiro, mas a Meta cobra por cada conversa iniciada pela empresa. O status é verificado a cada 5 minutos, inclusive se a conexão estiver caída: quando ela volta, passa a Conectado sozinha. Se cair, o painel avisa o negócio nas notificações.",{"id":665,"title":666,"titles":667,"content":668,"level":263},"\u002Fdocs\u002Fchannels\u002Fwhatsapp#limites-do-seu-plano","Limites do seu plano",[69],"Cada plano inclui uma quantidade de conexões, e todas contam: um número de WhatsApp, uma conta do Instagram, um bot do Telegram e o chat do seu site publicado. Solo: 2 conexões, com um só número de WhatsApp. Ou seja, o número de WhatsApp mais outra conexão: Instagram, Telegram ou o chat do seu site.Negócio: 3 conexões. Pro: 5 conexões. Nos dois, também um só número de WhatsApp.Business: sob medida, e é o único plano com mais de um número de WhatsApp. Ao chegar ao limite, o botão para conectar fica desativado (não desaparece), com um texto curto que explica o limite e um link para Configurações → Plano para mudar de plano. Reconectar ou atualizar uma conexão que você já tem não conta como uma nova. Em Atendimento → Canais você vê quantas usa, por exemplo «1 de 2 conexões» e «1 de 1 número de WhatsApp». Reduzir o plano: não é possível enquanto o negócio superar algum limite do plano novo. Primeiro é preciso desconectar o que sobra; nada é apagado automaticamente.",{"id":670,"title":671,"titles":672,"content":673,"level":263},"\u002Fdocs\u002Fchannels\u002Fwhatsapp#clientes-e-equipe","Clientes e equipe",[69],"O papel é decidido no código, nunca pelo que alguém diz no chat: Um número vinculado a alguém da equipe (verificado com um código de uso único) recebe ferramentas de equipe.Todos os demais recebem ferramentas de cliente. Ferramentas de clienteFerramentas de equipe (extras)Ver serviços, buscar horários, pré-reservar e confirmar, ver e cancelar ou remarcar as suas reservas, consultar as informações e o conhecimento do negócio, salvar uma localização compartilhada, passar para uma pessoaVer o dia, bloquear tempo, marcar uma ausência, atualizar o catálogo e avançar etapas de uma tarefa, sempre com confirmação SIM\u002FNÃO A equipe também pode receber avisos pelo Telegram.",{"id":675,"title":676,"titles":677,"content":678,"level":263},"\u002Fdocs\u002Fchannels\u002Fwhatsapp#o-que-a-ia-pode-e-não-pode-fazer","O que a IA pode e não pode fazer",[69],"PodeNão podeEntender texto, áudio, erros de digitação e mudanças de ideiaInventar horários, preços ou endereçosBuscar horários e oferecer 2 ou 3 opçõesConfirmar uma reserva sem o motorPré-reservar e pedir os dados que faltamUsar ferramentas de administrador com um clienteResponder com o conhecimento do negócioSeguir instruções escondidas em mensagens ou arquivosPassar a conversa para uma pessoaVer dados de outro negócio Mais detalhes em Bot e IA.",{"id":680,"title":681,"titles":682,"content":683,"level":263},"\u002Fdocs\u002Fchannels\u002Fwhatsapp#localização-compartilhada","Localização compartilhada",[69],"Se um cliente compartilha a localização pelo WhatsApp, ela fica salva na conversa e o Inbox a mostra com um mapa. O bot pode usá-la como destino de uma entrega ou como endereço do cliente, sempre pedindo que confirme com SIM ou NÃO. Veja Mapa e endereços.",{"id":685,"title":686,"titles":687,"content":688,"level":263},"\u002Fdocs\u002Fchannels\u002Fwhatsapp#encaminhar-a-uma-pessoa","Encaminhar a uma pessoa",[69],"A equipe vê todas as conversas ao vivo no Inbox. Com Assumir conversa o bot é pausado nessa conversa; ele volta sozinho após 15 minutos sem atividade do operador, ou quando você toca em Devolver ao bot. O assistente também encaminha quando o cliente pede (\"quero falar com uma pessoa\").",{"id":690,"title":691,"titles":692,"content":693,"level":263},"\u002Fdocs\u002Fchannels\u002Fwhatsapp#áudios-e-idiomas","Áudios e idiomas",[69],"Os áudios são transcritos antes de a IA lê-los e a transcrição aparece no Inbox. O assistente responde no idioma do cliente (português, espanhol ou inglês).",{"id":695,"title":696,"titles":697,"content":698,"level":263},"\u002Fdocs\u002Fchannels\u002Fwhatsapp#nome-e-contato-do-cliente","Nome e contato do cliente",[69],"Quando alguém escreve para você, a ficha se completa sozinha com o número e com o nome que a pessoa escolheu no perfil do WhatsApp, se a ficha não tinha nome. Se você preencher o nome à mão, o WhatsApp nunca o substitui.",{"id":700,"title":701,"titles":702,"content":703,"level":263},"\u002Fdocs\u002Fchannels\u002Fwhatsapp#foto-do-cliente","Foto do cliente",[69],"O WhatsApp não compartilha a foto de perfil dos seus clientes: no lugar dela aparecem as iniciais. Se quiser, Dono e Gerente podem enviar uma foto na ficha do cliente. Se o mesmo cliente também escreve pelo Telegram ou Instagram, é usada a foto desse canal.",{"id":705,"title":706,"titles":707,"content":708,"level":263},"\u002Fdocs\u002Fchannels\u002Fwhatsapp#pausar-o-canal","Pausar o canal",[69],"Se houver spam ou ruído, você pode pausar o bot ou o canal inteiro sem desconectar. Veja Pausas e Estado.",{"id":74,"title":73,"titles":710,"content":711,"level":257},[],"Coloque o assistente da Fiuit no seu site com uma linha de código, com dados de contato obrigatórios e regras por canal. O chat web é um widget que o seu negócio cola no próprio site. Ele conversa com o mesmo bot do WhatsApp (mesmos horários, preços e reservas), sem número nem aprovações de terceiros. As conversas chegam ao mesmo Inbox. Se você hospeda o Fiuit por conta própria, o chat web vem desligado: ele é ativado com PUBLIC_WEBCHAT_ENABLED=true na API.",{"id":713,"title":714,"titles":715,"content":716,"level":263},"\u002Fdocs\u002Fchannels\u002Fwebchat#instalar-passo-a-passo","Instalar passo a passo",[73],"Entre como Dono em Atendimento → Canais → Chat web.Em Sites permitidos adicione cada site onde vai usá-lo, um por linha, com https:\u002F\u002F e sem curingas nem caminhos (por exemplo https:\u002F\u002Fwww.minhaloja.com). Para testar no seu computador, http:\u002F\u002Flocalhost é aceito.Escolha cor principal, posição do botão, idioma padrão, um título opcional (até 40 caracteres) e o avatar do assistente: seu logo (com a URL), a mascote animada Wagy tingida com sua cor ou iniciais genéricas.Toque em Ativar chat web. Você recebe uma chave publicável wg_web_… e o código para colar.Cole o snippet antes de \u003C\u002Fbody> em cada página onde quiser o chat: \u003Cscript src=\"https:\u002F\u002Ffiuit.com\u002Fwidget.js\" data-key=\"wg_web_…\" defer>\u003C\u002Fscript> Atributos opcionais: data-locale (pt, es ou en; por padrão usa o idioma do navegador), data-offset-bottom (pixels, para subir o botão se o seu site tem uma barra fixa embaixo), data-api (origem da API, só para ambientes de teste) e data-avatar (logo, wagy ou generic; força o avatar sobre o configurado). Se você tocar em Desativar, o chat deixa de funcionar e as conversas abertas são encerradas; ao ativar de novo você recebe uma chave nova e precisa atualizar o código. Em \u002Fdemo\u002Fwebchat há uma página de demonstração onde você cola a chave e vê o widget funcionando. O seu plano limita quantas conexões você pode ter no total (no Solo, 2) e um só número de WhatsApp, exceto no Business. Veja Limites do seu plano.",{"id":718,"title":719,"titles":720,"content":721,"level":263},"\u002Fdocs\u002Fchannels\u002Fwebchat#o-que-o-visitante-vê","O que o visitante vê",[73],"Um botão flutuante que abre o chat (no celular abre em tela cheia, respeitando as áreas seguras), em português, espanhol ou inglês.Se você escolher o Wagy como avatar, o mascote pisca e \"fala\" enquanto o bot prepara a resposta (com a preferência de redução de movimento do dispositivo ele fica parado), e o botão flutuante pode mostrar uma mini Wagy.Um chat breve de propósito: respostas curtas que propõem reservar ou continuar pelo WhatsApp. Pela web o visitante é anônimo e cada resposta custa.Se o bot pedir a localização (por exemplo para uma entrega), oferece Usar minha localização, com consentimento explícito.A conversa continua entre páginas e recarregamentos: ao voltar, o chat mostra o que foi conversado e as respostas que chegaram nesse meio tempo (com um aviso de mensagens novas se estava fechado). Um botão Nova conversa, no menu ⋯ do chat, apaga tudo e recomeça do zero.",{"id":723,"title":724,"titles":725,"content":726,"level":263},"\u002Fdocs\u002Fchannels\u002Fwebchat#continuidade-entre-páginas-e-recarregamentos","Continuidade entre páginas e recarregamentos",[73],"Ao abrir a conversa, o servidor emite um código de sessão opaco. O widget o guarda no armazenamento do navegador (localStorage, ou sessionStorage se não estiver disponível) do site onde você instalou o chat, com uma chave por chave publicável. Não usa cookies nem serviços de terceiros, e ali não se guarda nada pessoal: nem nome, nem telefone, nem e-mail, nem mensagens. Os dados de contato declarados ficam só no servidor, então o chat não os pede de novo dentro da mesma conversa. Ao carregar outra página ou recarregar, o widget valida o código, traz o histórico e se reconecta para receber as respostas novas.Vencimento: a conversa vence por inatividade e por um limite máximo de duração. Se o código venceu, foi encerrado ou apagado, o widget o descarta e começa uma conversa nova, sem mostrar erros.Nova conversa: o visitante a escolhe no menu ⋯. O código é invalidado no servidor, o do navegador é apagado e o chat começa vazio. A equipe mantém o histórico anterior no Inbox até a limpeza.Modo privado ou armazenamento bloqueado: o chat funciona igual, mas a conversa não sobrevive a um recarregamento.Canal pausado: se você pausou o canal, o chat não aparece mesmo que o visitante tenha um código guardado; ao retomar, a conversa continua. O código não é um segredo forte: é uma chave de uma única conversa, nunca dá acesso a outras nem ao painel. Só funciona a partir das origens que você autorizou no widget, está sujeito aos mesmos limites de uso e é invalidado ao vencer, ao escolher Nova conversa e na limpeza da conversa.",{"id":728,"title":729,"titles":730,"content":731,"level":263},"\u002Fdocs\u002Fchannels\u002Fwebchat#dados-de-contato-obrigatórios","Dados de contato obrigatórios",[73],"Por padrão o bot não conversa até ter telefone e e-mail: diante de qualquer mensagem responde um texto fixo (sem IA) e o chat mostra um mini formulário (telefone com seletor de país, em formato internacional, e e-mail). Assim que é preenchido, a primeira mensagem do visitante é processada sozinha, sem que ele a repita. Os dados são declarados, não verificados: não identificam o visitante nem se unem a clientes existentes. São guardados cifrados e apagados junto com a conversa vencida.",{"id":733,"title":734,"titles":735,"content":736,"level":263},"\u002Fdocs\u002Fchannels\u002Fwebchat#idioma-e-primeira-mensagem","Idioma e primeira mensagem",[73],"Sem filtro prévio: o chat web responde desde a primeira mensagem, sem pedir nome e motivo nem confirmar com SIM\u002FNÃO. Esse filtro existe só no WhatsApp, Telegram e Instagram. Continuam os dados de contato obrigatórios e o limite de uso do chat.No idioma de quem escreve: o idioma da página é só um ponto de partida. Se a primeira mensagem estiver claramente em outro idioma (por exemplo «Hola, quiero saber los precios» numa página em português), o bot responde nesse. Uma saudação curta ou «ok» não muda. Se você escolheu o idioma à mão na ficha do cliente, ele manda.",{"id":738,"title":739,"titles":740,"content":741,"level":263},"\u002Fdocs\u002Fchannels\u002Fwebchat#regras-do-bot-por-canal","Regras do bot por canal",[73],"Em Atendimento → Canais → Regras do bot por canal (Dono e Gerente) você escolhe o canal (Chat web ou WhatsApp) e define: RegraO que fazChat web (padrão)WhatsApp (padrão)Dados exigidosNome, telefone e\u002Fou e-mail antes de conversartelefone e e-mailnenhum (o telefone já chega do canal)Quando pedeDesde a primeira mensagem, depois de algumas respostas, ou nuncadesde a primeira mensagemnuncaTexto com que pedeUm texto fixo personalizávelo padrãonão se aplicaLimite de respostasTeto de respostas do bot por conversa6sem tetoO que oferece ao chegar ao limiteContinuar pelo WhatsApp e\u002Fou receber as informações por e-mailambosnenhumEstilo do bot no canalUma preferência de tom (até 500 caracteres)respostas curtasnenhuma São regras do projeto: o servidor as aplica antes de acionar a IA, mesmo que alguém use a API pública sem o widget. Ao chegar ao limite, o bot para de responder e de gastar IA, envia uma mensagem fixa com as opções e a conversa fica no Inbox como \"precisa de acompanhamento\", com os dados que o visitante deixou. Se não há WhatsApp conectado, essa opção não é oferecida.",{"id":743,"title":361,"titles":744,"content":745,"level":263},"\u002Fdocs\u002Fchannels\u002Fwebchat#segurança",[73],"A chave publicável só abre conversas anônimas: não dá acesso ao painel, à API privada nem a dados de clientes. Pode ser revogada quando quiser.O negócio sempre sai da chave; o widget nunca envia um identificador de negócio.Só os sites permitidos podem usar o chat. Sem cookies.A checagem da origem não é autenticação: só protege contra outros sites em um navegador. A proteção real são os limites de uso.Há tetos de mensagens por conversa, por hora e por dia. Ao esgotar, o chat pede que você aguarde e a IA não é acionada.O texto do visitante é tratado como dado não confiável, e o widget o mostra sempre como texto simples.O chat só responde: não envia mensagens proativas.Você pode pausar o bot ou o canal inteiro se precisar; com o canal pausado o widget se oculta.",{"id":747,"title":184,"titles":748,"content":749,"level":263},"\u002Fdocs\u002Fchannels\u002Fwebchat#api",[73],"Gestão (dono): GET|PUT|DELETE \u002Fv1\u002Fwebchat-site. Regras por canal (Dono e Gerente): GET \u002Fv1\u002Fbot\u002Fchannel-policies e PUT \u002Fv1\u002Fbot\u002Fchannel-policies\u002F{channel}. Os endpoints públicos do widget estão no contrato OpenAPI em \u002Fv1\u002Fpublic\u002Fwebchat. html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"id":78,"title":77,"titles":751,"content":752,"level":257},[],"Conecte o bot do Telegram do seu negócio para que os clientes reservem e consultem como no WhatsApp, com a mesma caixa e o mesmo bot. Com o Telegram, seus clientes escrevem para um bot próprio do seu negócio e recebem o atendimento do mesmo assistente do WhatsApp: mesmos serviços, mesmos horários, mesma caixa. É independente do Telegram da equipe, que é um único bot da Fiuit para avisos internos e o Mini App \"Meu dia\".",{"id":754,"title":755,"titles":756,"content":757,"level":263},"\u002Fdocs\u002Fchannels\u002Ftelegram#conectar-o-seu-bot","Conectar o seu bot",[77],"No Telegram abra o @BotFather e envie \u002Fnewbot. Escolha um nome e um usuário que termine em bot.O BotFather entrega um token (algo como 123456:ABC…). É um segredo: não o compartilhe.No painel, vá em Atendimento → Canais → Telegram para os seus clientes.Cole o token em Token do bot e toque em Conectar bot. Só o Dono pode fazer isso.Quando o status disser Recebendo mensagens, já funciona. Teste escrevendo para o bot do seu Telegram. O token é guardado cifrado e não é mostrado de novo. Se você o revogar no BotFather, cole o novo com Atualizar token. Um mesmo bot não pode estar conectado a dois negócios. Desconectar apaga o token guardado e conserva o histórico. O seu plano limita quantas conexões você pode ter no total (no Solo, 2) e um só número de WhatsApp, exceto no Business. Veja Limites do seu plano.",{"id":759,"title":760,"titles":761,"content":762,"level":263},"\u002Fdocs\u002Fchannels\u002Ftelegram#o-que-faz","O que faz",[77],"Atende com o mesmo bot: busca horários, pré-reserva, confirma, responde com o seu conhecimento e encaminha a uma pessoa.As opções e confirmações aparecem como botões dentro do chat.Aceita texto e localização (inclusive a compartilhada como local). Entende mensagens de voz (são transcritas; até 2 minutos e 8 MB, dentro da cota mensal de áudio do projeto; se não der para transcrever, o bot avisa e passa a conversa para uma pessoa). Fotos e outros arquivos recebem um aviso de que não podem ser lidos. Não processa mensagens de grupos nem canais.Não tem janela de resposta como o WhatsApp: você pode responder quando quiser.",{"id":764,"title":765,"titles":766,"content":767,"level":263},"\u002Fdocs\u002Fchannels\u002Ftelegram#identidade-multicanal","Identidade multicanal",[77],"Cada pessoa que escreve pelo Telegram fica como uma identidade do cliente, verificada pelo Telegram e sem telefone. Um mesmo cliente pode ter várias identidades (telefone do WhatsApp, Telegram) e vê-las todas na ficha. As mensagens de saída vão pelo canal da identidade correspondente.",{"id":769,"title":681,"titles":770,"content":771,"level":263},"\u002Fdocs\u002Fchannels\u002Ftelegram#localização-compartilhada",[77],"Se o cliente compartilha a localização, ela fica na conversa e o Inbox mostra um mapa. O bot pode salvá-la como destino da tarefa ou como endereço do cliente, com confirmação SIM\u002FNÃO. Veja Mapa e endereços.",{"id":773,"title":696,"titles":774,"content":775,"level":263},"\u002Fdocs\u002Fchannels\u002Ftelegram#nome-e-contato-do-cliente",[77],"Quando alguém escreve para você, a ficha se completa sozinha com o nome do Telegram (ou o @usuário, se não tiver nome) e o @usuário fica guardado para encontrar a pessoa. Se ela compartilhar o próprio contato pelo Telegram, o telefone fica na ficha e, se ela já escrevia pelo WhatsApp com esse número, as duas conversas passam sozinhas para a mesma ficha. Dono e Gerente recebem o aviso «Cliente vinculado entre canais» (mesmo telefone), que leva à ficha; ele é configurado em Minha conta → Notificações. O cartão de contato de outra pessoa nunca une fichas. Se você preencher o nome à mão, o Telegram nunca o substitui.",{"id":777,"title":701,"titles":778,"content":779,"level":263},"\u002Fdocs\u002Fchannels\u002Ftelegram#foto-do-cliente",[77],"Quando um cliente escreve pela primeira vez, a foto de perfil do Telegram aparece sozinha na conversa, na ficha, nas tarefas e na agenda, e é atualizada de tempos em tempos se ele voltar a escrever. Se o cliente ocultou a foto na privacidade do Telegram, ficam as iniciais. Dono e Gerente podem trocá-la ou removê-la na ficha; uma foto escolhida manualmente não é substituída sozinha. Só a sua equipe vê a foto.",{"id":781,"title":782,"titles":783,"content":784,"level":263},"\u002Fdocs\u002Fchannels\u002Ftelegram#estado-e-pausas","Estado e pausas",[77],"Em Configuração → Estado você vê se o bot está recebendo mensagens, se houve erros de entrega e se algum cliente bloqueou o bot. Você pode pausar o bot ou o canal.",{"id":786,"title":528,"titles":787,"content":788,"level":263},"\u002Fdocs\u002Fchannels\u002Ftelegram#em-breve",[77],"Instagram: veja Instagram (é habilitado quando a Meta aprova o app). O bot de clientes reserva serviços com horário; a equipe cria tarefas de fila pelo painel ou pela API. Criação de entregas em fila pelo chat: em breve. Somente Ogg Opus e WAV são transcritos. Um MIME declarado diferente é rejeitado antes do download. Stickers e animações são ignorados. Falhas temporárias do Telegram são tentadas novamente com o backoff do worker; se persistirem até esgotar suas cinco tentativas, a conversa passa para uma pessoa.",{"id":82,"title":81,"titles":790,"content":791,"level":257},[],"Pause um canal ou a IA do seu projeto numa emergência e veja em Estado e em Uso de IA se o seu negócio está atendendo. Há três ferramentas para quando algo se complica (spam, custos inesperados, ruído no Inbox) e duas telas para ver como está o seu serviço.",{"id":793,"title":794,"titles":795,"content":796,"level":263},"\u002Fdocs\u002Fchannels\u002Fpauses-and-status#pausar-um-canal","Pausar um canal",[81],"Cada canal conectado (WhatsApp, Telegram e chat web) pode ser pausado sem desconectar, em Atendimento → Canais. Só Dono e Gerente. Há dois níveis: NívelO que aconteceQuando usarPausar botAs mensagens continuam sendo salvas e chegam ao Inbox, mas o bot não responde nem gasta IA. A conversa passa ao modo humano, marcada para atenção. Opcionalmente é enviada ao cliente uma única mensagem fixa (você escolhe o texto; por padrão \"Em breve uma pessoa responde.\").Você quer atender manualmente por um tempo.Pausar canalTudo o que chega pelo canal é descartado: não se criam clientes, conversas nem mensagens, e não há IA. Só se conta quantas foram descartadas. A equipe também não pode enviar por esse canal. O chat web deixa de aparecer.Há spam ou abuso. Passos: Entre em Atendimento → Canais e encontre o canal.Toque em Pausar bot ou Pausar canal.Escreva um motivo (opcional), decida se quer enviar a mensagem fixa e confirme.Para voltar, toque em Retomar. Enquanto algo está pausado, o painel mostra um aviso com quem pausou e desde quando. Tudo fica no registro de auditoria.",{"id":798,"title":799,"titles":800,"content":801,"level":263},"\u002Fdocs\u002Fchannels\u002Fpauses-and-status#pausar-a-ia-do-projeto","Pausar a IA do projeto",[81],"É um interruptor de emergência em Configuração → Plano e uso: corta todo o consumo de IA do projeto (bot, Wagy, conhecimento e transcrição de áudios) antes que se gaste mais um centavo. O bot responde uma mensagem fixa e passa a conversa ao Inbox com atenção.As importações de conhecimento ficam em espera, sem erro, e são retomadas ao reativar.O restante continua funcionando: calendário, tarefas, clientes e ações manuais. Toque em Pausar IA e confirme; para voltar, Retomar IA. Só Dono e Gerente.",{"id":803,"title":804,"titles":805,"content":806,"level":263},"\u002Fdocs\u002Fchannels\u002Fpauses-and-status#pausa-automática-por-spam-ou-abuso","Pausa automática por spam ou abuso",[81],"Ativada por padrão, em Configuração → Plano e uso. Duas proteções, ambas sem nunca pausar o canal inteiro (assim nenhum cliente legítimo se perde): Silêncio por contato. Se um mesmo contato manda mais de 15 mensagens em 5 minutos (ou 60 em uma hora), o bot para de responder nessa conversa por 30 minutos. As mensagens continuam sendo guardadas e chegam na caixa de entrada; só a IA e as respostas automáticas são cortadas. A conversa fica marcada para atenção com o motivo \"possível spam\", você recebe uma notificação de spam e, na conversa, Reativar bot a devolve antes da hora. Ao fim do resfriamento o bot volta sozinho.Freio de gasto de IA. Se o projeto passa de 300 chamadas à IA em 10 minutos, a IA do projeto é pausada sozinha (motivo: automática) e avisamos você. Essa pausa não é retirada sozinha: um pico assim pode ser um loop ou um ataque, e reativar sozinha voltaria a gastar. Você a vê em Estado e em Uso de IA, e a retoma com Retomar IA depois de revisar o que aconteceu. As mensagens da sua equipe e as do simulador não contam. Dono e Gerente podem desligar ou mudar os limites e o resfriamento.",{"id":808,"title":809,"titles":810,"content":811,"level":263},"\u002Fdocs\u002Fchannels\u002Fpauses-and-status#estado-do-meu-serviço","Estado do meu serviço",[81],"Configuração → Estado (Dono e Gerente) responde em linguagem simples se o seu negócio está atendendo. Mostra um semáforo geral e um cartão para cada parte: WhatsApp: se está conectado e recebendo mensagens.Assistente automático: se o bot está ativo.Respostas inteligentes: se há cota de IA disponível neste mês.Chat web e Telegram: sites permitidos e sessões ativas, última mensagem, tetos de uso atingidos, webhook do Telegram, erros de entrega e clientes que bloquearam o bot.Os canais disponíveis que você ainda não conectou, com um link para Canais. Cada cartão com problema traz um link para resolver. Se algo está pausado, isso também é indicado.",{"id":813,"title":814,"titles":815,"content":816,"level":263},"\u002Fdocs\u002Fchannels\u002Fpauses-and-status#uso-de-ia","Uso de IA",[81],"Configuração → Plano e uso mostra quanta IA o seu negócio usou neste mês e qual é o limite do seu plano, com avisos aos 80 % e ao atingir o limite. Ao atingir o limite, as funções com IA são pausadas e as automações com IA esperam na caixa; todo o resto continua funcionando.Se não for possível confirmar o uso, aparece \"Uso incerto\" e a IA pode estar limitada.O valor é o subtotal conhecido, não uma fatura.Com Solicitar mais (dono) você avisa a equipe da Fiuit para ampliar o limite.",{"id":818,"title":819,"titles":820,"content":821,"level":263},"\u002Fdocs\u002Fchannels\u002Fpauses-and-status#quem-pode-o-quê","Quem pode o quê",[81],"AçãoDonoGerenteEquipe e leituraPausar ou retomar canais e IASimSimNãoVer Estado e Uso de IASimSimNãoSolicitar mais IASimNãoNãoConectar o Telegram ou publicar o chat webSimNãoNão Mais sobre permissões em Papéis e permissões.",{"id":86,"title":85,"titles":823,"content":824,"level":257},[],"Todas as conversas de todos os canais em um só lugar: estados, resolver, arquivar, excluir, contexto do cliente e resumo com IA. O Inbox reúne as conversas do WhatsApp, Telegram e chat web em uma única caixa de entrada. O bot atende sozinho; o Inbox é onde você entra quando uma conversa precisa de uma pessoa.",{"id":826,"title":827,"titles":828,"content":829,"level":263},"\u002Fdocs\u002Fchannels\u002Finbox#estados-de-uma-conversa","Estados de uma conversa",[85],"Cada conversa tem um estado que reflete quem está sendo esperado: Pendente: ainda ninguém a assumiu.Aguardando o cliente: você respondeu e ficou a espera de que o cliente escreva.Aguardando a equipe: o cliente escreveu e alguém precisa responder.Resolvida: encerrada. Na lista você pode filtrar por estado, com o contador de cada um; os filtros em zero não aparecem.",{"id":831,"title":832,"titles":833,"content":834,"level":263},"\u002Fdocs\u002Fchannels\u002Finbox#filtrar-a-lista","Filtrar a lista",[85],"Atenção mostra as conversas que esperam uma pessoa e Todas, as ativas de todos os canais.No celular, Ver abre o resto: buscar por nome ou telefone, os estados com seu contador, Arquivadas e Possível spam; o número sobre Ver diz quantos filtros estão ativos.Possível spam reúne os contatos novos que parecem spam ou ficaram em quarentena, para revisá-los antes de responder.Para atualizar a lista no celular, deslize-a para baixo a partir do topo.",{"id":836,"title":837,"titles":838,"content":839,"level":263},"\u002Fdocs\u002Fchannels\u002Finbox#mais-filtros-em-ver","Mais filtros em Ver",[85],"Canal mostra só as conversas de WhatsApp, Instagram, Telegram ou do chat web; aparecem os canais que têm conversas e você pode escolher vários.Última mensagem filtra por Hoje, Últimos 7 dias, Últimos 30 dias ou um Período entre duas datas, no fuso horário do negócio.Minhas reúne as conversas em que você respondeu.Eles se combinam com Atenção, Todas e os estados, cada um soma um no número de Ver e o painel os lembra para você neste navegador.No computador, ficam no ícone de Filtros, ao lado da busca.",{"id":841,"title":842,"titles":843,"content":844,"level":263},"\u002Fdocs\u002Fchannels\u002Finbox#resolver-arquivar-e-excluir","Resolver, arquivar e excluir",[85],"Marcar como resolvida (e Reabrir uma resolvida) fica no detalhe e no menu de cada linha. Se o cliente escrever de novo, a conversa reabre sozinha. Também funciona com várias conversas ao mesmo tempo: entre no modo de seleção, escolha as linhas e aplique a ação.Arquivar tira a conversa da lista principal. O filtro Arquivadas aparece só se houver alguma, e dali você a desarquiva.Excluir (só Dono e Gerente) apaga a conversa e todas as mensagens e anexos para sempre. O cliente e as tarefas ficam; se o cliente escrever de novo, começa uma conversa nova. O painel pede confirmação e avisa se houver envios pendentes. Cada exclusão fica no registro de auditoria.",{"id":846,"title":847,"titles":848,"content":849,"level":263},"\u002Fdocs\u002Fchannels\u002Finbox#contexto-do-cliente","Contexto do cliente",[85],"Ao abrir uma conversa, um painel lateral (uma folha no celular) mostra o contexto do cliente: os dados dele, um resumo das visitas, etiquetas e notas, e as próximas e últimas tarefas, que abrem o diálogo da tarefa. O que está vazio fica oculto. Nova tarefa e o acesso ao contexto ficam no ⋯ do cabeçalho da conversa; no celular, o contexto abre como folha dali. Dali você também pode criar uma tarefa com o cliente já pré-selecionado (e o serviço da última tarefa dele, se ainda estiver ativo). Se ele já tiver uma próxima tarefa parecida, o painel oferece abri-la antes de criar outra. A equipe vê apenas o canal, o estado e as tarefas que já pode ver: nunca vê dinheiro. O Dono e o Gerente leem a ficha completa.",{"id":851,"title":852,"titles":853,"content":854,"level":263},"\u002Fdocs\u002Fchannels\u002Finbox#resumir-com-ia","Resumir com IA",[85],"O botão Resumir (no contexto da conversa) gera com IA um resumo breve: o que o cliente pede, o que foi respondido e o que falta, em três a cinco tópicos. Telefones e emails aparecem mascarados, e o texto é para leitura: confirme na conversa antes de agir. Ele é gerado só quando há mensagens novas; se nada mudou, o resumo salvo aparece sem gastar IA de novo.Junto da data do resumo aparece Atualizar quando chegaram mensagens novas.Consome a cota de IA do plano e respeita a pausa de emergência: com a IA pausada ou sem cota não há botão, apenas o aviso.",{"id":856,"title":857,"titles":858,"content":859,"level":263},"\u002Fdocs\u002Fchannels\u002Finbox#permissões","Permissões",[85],"AçãoDono e GerenteEquipeSó leituraVer e responderSimSó o que é seuSim (leitura)Mudar estado e arquivarSimSimNãoExcluirSimNãoNãoResumir com IASimSim (só o que vê)Não Quando uma conversa fica com uma pessoa, o bot pausa nela: veja O bot e a IA.",{"id":861,"title":862,"titles":863,"content":864,"level":263},"\u002Fdocs\u002Fchannels\u002Finbox#primeiro-contato-pela-ficha-do-cliente","Primeiro contato pela ficha do cliente",[85],"O botão de mensagem da ficha leva o nome do canal («WhatsApp», «Telegram»); com vários canais, no computador há um botão por canal (até dois) e no celular «Mensagem» abre uma folha para escolher. Abre uma conversa vazia se houver um canal conectado e um destinatário válido. Abrir não envia nada. Telegram exige um usuário que já escreveu ao bot; o telefone não serve como destinatário. WhatsApp por QR: permite texto de primeiro contato sem esperar que o cliente escreva primeiro. O painel avisa antes de abrir: o número pode ser bloqueado; evite mensagens não solicitadas. Há um limite de novas aberturas por projeto e dia UTC (20 por padrão). Reabrir a mesma conversa não consome cota; ao atingir o limite, aguarde o próximo dia. Esse limite não elimina o risco de bloqueio.Instagram: não se inicia pela ficha: o cliente abre a janela de 24 h ao escrever. Chat web: só responde ao visitante.",{"id":90,"title":89,"titles":866,"content":867,"level":257},[],"Um formulário do seu site (ou do Typeform, Tally…) que entra no Inbox como um canal, com URL protegida por token, antispam e resposta por email ou WhatsApp. O canal Formulário recebe os envios de um formulário do seu próprio site (ou de uma ferramenta como Typeform ou Tally) e os transforma em conversas do Inbox: chegam com nome, email, telefone e mensagem, e você responde por ali, como em qualquer conversa.",{"id":869,"title":870,"titles":871,"content":872,"level":263},"\u002Fdocs\u002Fchannels\u002Fform#ativá-lo-passo-a-passo","Ativá-lo, passo a passo",[89],"Entre como Dono em Atendimento → Canais → Formulário e toque em Ativar o canal.Você recebe a URL pública com um token secreto: é para onde o seu formulário aponta. O painel também oferece um código HTML simples, sem dependências, pronto para colar no seu site.Opcional — Sites permitidos: restrinja de onde se pode enviar, um domínio por linha (com https:\u002F\u002F, sem rotas nem curingas, até 10). Vazio: aceita envios de qualquer site.Opcional — Verificação antispam: se a plataforma tiver as chaves do Cloudflare Turnstile, ative a verificação para bloquear bots do lado do servidor.Opcional — Mapeamento de campos: se o seu formulário usa outros nomes de campo, indique a qual dado cada um corresponde (nome, email, telefone, motivo, mensagem). Os demais campos são guardados como dados extras do envio.",{"id":874,"title":875,"titles":876,"content":877,"level":263},"\u002Fdocs\u002Fchannels\u002Fform#como-se-responde","Como se responde",[89],"Cada envio aparece no Inbox como uma conversa nova, no idioma do projeto. A resposta é por email ou por WhatsApp, conforme os canais que você tem conectados e os dados que quem escreveu deixou: Com email ou telefone em mãos, você responde direto do Inbox.Se não houver nenhuma via de resposta, o envio aparece mesmo assim no Inbox, marcado como sem resposta disponível. Antes de publicar o formulário, você pode mandar um envio de teste pelo próprio canal e vê-lo no Inbox com uma etiqueta de teste.",{"id":879,"title":880,"titles":881,"content":882,"level":263},"\u002Fdocs\u002Fchannels\u002Fform#o-token","O token",[89],"A URL carrega um token que autentica os envios. Se ele vazar ou você quiser trocá-lo, toque em Rotar token: a URL atual para de funcionar na hora e é preciso atualizar os formulários publicados. Desligar o canal corta os envios novos; o que já chegou fica guardado. A página de contato do fiuit.com é um exemplo deste canal: o que você escreve lá cai direto no Inbox da equipe do Fiuit. O campo Produtos permite configurar até 72 linhas. Nomes, unidades e demais campos compartilham 512 nós e 16 KiB, portanto os dados reais podem permitir menos linhas. Configurações com mínimos que não cabem são rejeitadas. Pedidos e valores existentes são preservados.",{"id":94,"title":93,"titles":884,"content":885,"level":257},[],"Conecte a conta profissional do Instagram do seu negócio para atender por mensagem direta com o mesmo bot e a mesma caixa. Com o Instagram, seus clientes escrevem por mensagem direta (DM) para a conta profissional do negócio e são atendidos pelo mesmo assistente do WhatsApp: mesmos serviços, mesmos horários, mesma caixa de entrada. É um canal só para clientes: a equipe não recebe avisos pelo Instagram. O Instagram já está disponível. Se em Atendimento → Canais você não vê o cartão do Instagram, fale com a gente e vamos verificar.",{"id":887,"title":888,"titles":889,"content":890,"level":263},"\u002Fdocs\u002Fchannels\u002Finstagram#conectar-sua-conta","Conectar sua conta",[93],"Sua conta do Instagram precisa ser profissional (Empresa ou Criador). Não é preciso uma Página do Facebook.No painel, vá em Atendimento → Canais → Instagram e toque em Conectar Instagram. Só o Dono pode fazer isso.Entre no Instagram com a conta do negócio e aceite as permissões (perfil básico e mensagens).Você volta ao painel com a conta conectada (@sua_conta). Teste enviando uma DM de outra conta. A Fiuit guarda o acesso criptografado e o renova sozinha antes de vencer. Se o Instagram o revogar (por exemplo, você trocou a senha ou removeu a permissão), o cartão passa para Desconectado e é preciso conectar de novo. Uma mesma conta não pode estar conectada a dois projetos. Desconectar apaga o acesso guardado e mantém o histórico. O seu plano limita quantas conexões você pode ter no total (no Solo, 2) e um só número de WhatsApp, exceto no Business. Veja Limites do seu plano.",{"id":892,"title":760,"titles":893,"content":894,"level":263},"\u002Fdocs\u002Fchannels\u002Finstagram#o-que-faz",[93],"Atende com o mesmo bot: busca horários, pré-reserva, confirma, responde com o seu conhecimento e encaminha para uma pessoa.Aceita texto. Se o cliente mandar foto, áudio ou outro anexo, o bot pede que escreva. Comentários, menções em stories e Messenger não entram.Opções e confirmações oferecem respostas rápidas: toque em uma para responder. Também dá para responder escrevendo. Com mais de 13 opções não aparecem botões; títulos longos são encurtados.",{"id":896,"title":897,"titles":898,"content":899,"level":263},"\u002Fdocs\u002Fchannels\u002Finstagram#a-regra-das-24-horas","A regra das 24 horas",[93],"A Meta só permite responder dentro de 24 horas da última mensagem do cliente. Por isso: As respostas do bot e da equipe saem enquanto a janela estiver aberta. Se venceu, a mensagem não é enviada e a conversa passa para uma pessoa.Os avisos automáticos (lembretes, confirmações, «a caminho», horário definido) não saem pelo Instagram fora da janela. Se o cliente também escreveu pelo WhatsApp ou Telegram, o aviso vai por esse canal, sempre dentro das regras dele. Se ele não tiver nenhum canal utilizável, o aviso não é reenviado: a tarefa recebe a etiqueta no-se-pudo-avisar e aparece em Precisa da sua atenção em Hoje («Não foi possível avisar»). Avise por conta própria e remova a etiqueta.Não é possível iniciar uma conversa nova pelo Instagram a partir da ficha do cliente: quem abre é o cliente ao escrever.",{"id":901,"title":696,"titles":902,"content":903,"level":263},"\u002Fdocs\u002Fchannels\u002Finstagram#nome-e-contato-do-cliente",[93],"Quando alguém escreve para você pela primeira vez, a ficha se completa sozinha com o nome do perfil do Instagram e o @usuário (sem nome, fica o @usuário). Se você preencher o nome à mão, o Instagram nunca o substitui. O Instagram não compartilha o telefone. Se em Atendimento → Canais → Instagram aparecer «O Instagram não está entregando o nome nem a foto de quem te escreve», a Meta ainda não liberou esses dados: os clientes novos chegam sem nome e você pode completar na ficha.",{"id":905,"title":701,"titles":906,"content":907,"level":263},"\u002Fdocs\u002Fchannels\u002Finstagram#foto-do-cliente",[93],"Quando um cliente escreve para você, a foto de perfil do Instagram aparece sozinha na conversa, na ficha, nas tarefas e na agenda; guardamos uma cópia porque o link do Instagram expira. Dono e Gerente podem trocá-la ou removê-la na ficha; uma foto escolhida manualmente não é substituída sozinha. Só a sua equipe vê a foto.",{"id":909,"title":782,"titles":910,"content":911,"level":263},"\u002Fdocs\u002Fchannels\u002Finstagram#estado-e-pausas",[93],"Em Atendimento → Canais → Instagram você vê a conta conectada, o estado do acesso e quando vence. Você pode pausar o bot ou o canal como nos outros canais. Conclua a autorização no mesmo navegador e projeto em que começou. Não compartilhe o link de conexão. Se, ao voltar do Instagram, aparecer um aviso em vez da conta conectada: Entre no painel e conecte de novo: sua sessão do painel não estava aberta nesse navegador.O link expirou; gere um novo: passaram mais de 10 minutos ou ele já foi usado. Toque em Conectar Instagram de novo.Este link foi gerado por outro usuário ou projeto: você começou a conexão com outra conta do painel ou com outro projeto ativo.Você cancelou a conexão no Instagram: nada foi conectado; tente de novo quando quiser. Ao desconectar, a conta fica livre para conectar a outro projeto. A revogação é detectada ao enviar, consultar o estado ou renovar; os callbacks de desautorização e exclusão ainda estão pendentes. Desconectar mantém o histórico e não exclui os dados. Se a janela expirar durante o envio, outro canal utilizável do mesmo cliente será tentado. A marca no-se-pudo-avisar tem um espaço reservado além das vinte etiquetas de negócio, sem substituí-las. Reconfirmações e pedidos de avaliação permanecem na conversa original e não mudam de canal.",{"id":913,"title":914,"titles":915,"content":916,"level":263},"\u002Fdocs\u002Fchannels\u002Finstagram#respostas-rápidas-e-perguntas-iniciais","Respostas rápidas e perguntas iniciais",[93],"As respostas rápidas aparecem no aplicativo móvel do Instagram. No computador, ou se o Instagram rejeitar os botões, o cliente pode responder com o texto ou o número da opção. Confirmar continua exigindo uma resposta após o resumo; os botões mantêm as mesmas validações. As perguntas iniciais («Fazer um pedido», «Ver horários», «Falar com uma pessoa») precisam de ativação pelo suporte. Elas se adaptam ao idioma e aos serviços ativos; se o negócio usa agendamentos, oferecem agendar. Ainda não existe editor dessas perguntas no painel.",{"id":918,"title":919,"titles":920,"content":921,"level":263},"\u002Fdocs\u002Fchannels\u002Finstagram#fotos-do-catálogo-pelo-instagram","Fotos do catálogo pelo Instagram",[93],"Sim, com as fotos de produtos ativadas: depois da pergunta e no resumo do pedido, envia uma imagem por opção. O nome e o preço ficam no texto e é possível escolher tocando em uma resposta rápida ou escrevendo. Se uma foto não chegar, o pedido continua normalmente. O controle fica em Atendimento → Bot → Personalidade.",{"id":103,"title":102,"titles":923,"content":924,"level":257},[],"O que o bot do seu negócio faz, o que ele não pode fazer, como configurá-lo, testá-lo no simulador e quando a conversa passa para uma pessoa. O bot é o assistente que atende seus clientes pelo WhatsApp, pelo Telegram e pelo chat do seu site. Ele entende o que escrevem, oferece horários reais e deixa a reserva montada. Tudo o que importa é calculado pelo sistema: o bot não inventa horários, preços nem endereços, e não confirma nada por conta própria.",{"id":926,"title":927,"titles":928,"content":929,"level":263},"\u002Fdocs\u002Fbot\u002Foverview#o-que-ele-pode-e-o-que-não-pode-fazer","O que ele pode e o que não pode fazer",[102],"PodeNão podeEntender texto, áudios, erros de digitação e mudanças de ideiaInventar horários, preços ou endereçosBuscar horários e oferecer 2 ou 3 opçõesConfirmar uma reserva sem passar pelo motor de agendaReter um horário e pedir os dados que faltamUsar ferramentas de administração com um clienteResponder dúvidas com a base de conhecimentoSeguir instruções escondidas em uma mensagem ou arquivoGuardar uma localização compartilhada (com sua confirmação SIM\u002FNÃO)Ver dados de outro negócioPassar a conversa para uma pessoaResponder assuntos que não são do seu negócio (tarefas, código, política, conversa) Datas, horas, serviços e preços de cada mensagem saem de modelos preenchidos com dados do sistema. Os áudios são transcritos antes de a IA os ler, e a transcrição aparece no Inbox.",{"id":931,"title":932,"titles":933,"content":934,"level":263},"\u002Fdocs\u002Fbot\u002Foverview#configurar-o-bot","Configurar o bot",[102],"Vá em Atendimento → Bot. Há quatro abas: Personalidade: o nome do bot, o tom (amigável, profissional ou casual), a mensagem inicial (você pode usar {name} e {business}), instruções de comportamento e o idioma padrão.Base de conhecimento: o que o bot sabe sobre o seu negócio. Veja Conhecimento do bot.Simulador: você testa o bot sem enviar mensagens reais.Fontes: páginas web, seções de um site e listas que o bot lê e mantém em dia. As instruções são uma preferência de estilo (\"seja breve\", \"trate por você\"). Elas não mudam as regras: o bot nunca vai conseguir pular o motor de agenda.",{"id":936,"title":937,"titles":938,"content":939,"level":263},"\u002Fdocs\u002Fbot\u002Foverview#como-você-vende-e-como-o-bot-anota-pedidos","Como você vende e como o bot anota pedidos",[102],"Em Atendimento → Bot → Personalidade, o ajuste Como você vende diz ao bot o que oferecer primeiro: Vendo produtos (com entrega ou serviço): abre com seus produtos e pergunta produto, quantidade e endereço. A entrega sai do produto: o bot nunca pede ao cliente para escolher «Entrega».Vendo serviços (que podem levar produtos): abre com seus serviços e pergunta dia e horário.Ambos: oferece o que o cliente pedir primeiro. O ajuste só muda a ordem: para anotar um pedido o bot sempre precisa do mesmo (produtos e quantidades ou o serviço, o endereço se houver entrega e o que o formulário do serviço pedir). Não pergunta de novo o que já sabe: o telefone vem do canal, o nome e os endereços salvos vêm da ficha do cliente, e o resto da própria mensagem. Por padrão usa o valor do modelo de negócio com que você começou ou, se não houver, o que sai dos seus serviços. Quando o bot anota um pedido (este jeito de anotar pedidos está sendo liberado aos poucos; já está ativo nos negócios de demonstração): Entende tudo numa mensagem: «me manda 3 aguinhas pra Rua das Flores 120» fica com a quantidade e o endereço; se houver duas águas, pergunta só qual, com opções. Entende medidas («de 12», «12 l», «o pequeno») e diminutivos.O endereço que o cliente diz vale mais que o salvo. Se não disser nenhum, usa o salvo e o mostra no resumo. Entende «em casa» ou «no trabalho» pela etiqueta do endereço salvo; se não encontrar, pergunta qual.Sugere, não preenche: com «o de sempre» ou «o mesmo da última vez» mostra esse pedido e espera o SIM. Cliente novo não recebe sugestões.Corrigir não apaga o pedido: com um NÃO pergunta o que mudar (se o endereço era o salvo, pede o novo direto); «melhor 3» ou «tira a água com gás» são aplicados e o resumo aparece de novo. Só um cancelamento explícito descarta o pedido.O resumo sempre diz o endereço e o total do sistema; o pedido só é criado com o SIM.Fotos dos produtos: se um produto tem foto no catálogo, o bot a manda depois do texto ao oferecer produtos, ao perguntar «Qual deles?» e no resumo (no Telegram e no WhatsApp pela API oficial; nos outros canais, só texto). Até 4 por mensagem, sem repetir a mesma na hora. O texto com as opções não muda: escolhe-se igual pelo número, nome ou botão. Você desliga com Mostrar fotos dos produtos no chat, na mesma tela.",{"id":941,"title":942,"titles":943,"content":944,"level":263},"\u002Fdocs\u002Fbot\u002Foverview#testar-no-simulador","Testar no simulador",[102],"Na aba Simulador você escreve como se fosse um cliente. Vê as respostas do bot, a configuração e os itens de conhecimento ativos, e as reservas de teste criadas (com a etiqueta Teste: não entram nas estatísticas). Reiniciar conversa começa do zero. Ao criar a sessão de teste você escolhe a pessoa: um contato novo ou um existente. São contatos fictícios, nunca um cliente real.",{"id":946,"title":947,"titles":948,"content":949,"level":301},"\u002Fdocs\u002Fbot\u002Foverview#o-inspetor","O Inspetor",[102,942],"O Inspetor mostra, turno a turno, como o bot pensou: As ferramentas que chamou, com seus argumentos e o resultado resumido.O conhecimento que usou, com a pontuação.As regras que decidiram.O modelo, os tokens e o custo de cada chamada.O motivo quando encaminha a conversa a uma pessoa. Assim você ajusta a configuração vendo exatamente o que aconteceu, sem adivinhar.",{"id":951,"title":952,"titles":953,"content":954,"level":263},"\u002Fdocs\u002Fbot\u002Foverview#quando-uma-pessoa-entra","Quando uma pessoa entra",[102],"Todas as conversas aparecem no Inbox, com o estado \"IA respondendo\", \"Pede uma pessoa\" ou \"Pessoa atendendo\". Assumir conversa: se você escrever uma resposta, o bot fica em pausa nessa conversa.Devolver ao bot: você faz isso manualmente quando terminar.Se você ficar 15 minutos sem atividade, o bot retoma sozinho.O bot também passa a conversa ao Inbox quando o cliente pede para falar com uma pessoa ou quando algo falha. O cliente pode escrever «atendente», «humano» ou “human”, ou pedir com suas palavras, a qualquer momento: também no meio de um pedido ou agendamento.Se pedirem algo que não é do negócio, o bot responde com cortesia quais assuntos atende e como falar com uma pessoa, sem passar a conversa. O WhatsApp não permite assistentes de uso geral na sua API desde janeiro de 2026.",{"id":956,"title":957,"titles":958,"content":959,"level":263},"\u002Fdocs\u002Fbot\u002Foverview#limites-por-canal","Limites por canal",[102],"Cada canal pode ter suas regras. No chat web, por exemplo, o bot pede telefone e e-mail antes de conversar e para de responder depois de um número de mensagens. Veja em WebChat.",{"id":961,"title":962,"titles":963,"content":964,"level":263},"\u002Fdocs\u002Fbot\u002Foverview#quanta-ia-seu-negócio-usa","Quanta IA seu negócio usa",[102],"Em Configurações → Plano você vê quanto seu negócio consumiu no mês e o limite do plano. Ao chegar em 80 % aparece um aviso; se o limite for atingido, as funções com IA pausam, e o bot responde uma mensagem fixa e passa a conversa ao Inbox. Você também pode cortar o consumo manualmente com a pausa de emergência: veja Pausas e Estado.",{"id":966,"title":324,"titles":967,"content":968,"level":263},"\u002Fdocs\u002Fbot\u002Foverview#próximos-passos",[102],"Conhecimento do bot: ensine-o a responder com as informações do seu negócio.WhatsApp e Telegram: conecte os canais. O bot de clientes reserva serviços com horário; a equipe cria tarefas de fila pelo painel ou pela API. Criação de entregas em fila pelo chat: em breve.",{"id":970,"title":971,"titles":972,"content":973,"level":263},"\u002Fdocs\u002Fbot\u002Foverview#o-bot-reúne-mensagens-seguidas","O bot reúne mensagens seguidas",[102],"O bot pode reunir mensagens consecutivas antes de responder. O modo normal espera 3 segundos de silêncio, ou 5 enquanto coleta dados necessários; o modo curto espera 3 e Desativado mantém um turno por mensagem. A espera máxima é de 12 segundos. Mensagens recebidas depois que um turno começou ficam para a próxima resposta. Você pode escolher o modo global em Bot e uma exceção no WhatsApp ou WebChat. Telegram e Instagram herdam o modo global. O painel mostra a espera efetiva; ela não depende de um sinal de digitação do canal. A confirmação continua explícita: dados enviados junto com um SIM produzem um novo resumo e exigem outro SIM posterior. Cancelar ou pedir uma pessoa interrompe a proposta. Áudios admitidos são preparados após cumprir as regras de contato; um áudio excessivo não é cortado.",{"id":107,"title":106,"titles":975,"content":976,"level":257},[],"Ensine o bot com textos, arquivos, páginas web, uma seção do seu site ou listas (planilhas, CSV, JSON e RSS) que se mantêm atualizadas. A base de conhecimento é o que o bot consulta para responder dúvidas: horário de funcionamento, políticas, produtos, preços, novidades. Ela tem duas origens: o que você cadastra manualmente e o que importa de fontes que se atualizam sozinhas. Tudo fica em Atendimento → Bot, nas abas Base de conhecimento e Fontes. Não coloque dados pessoais de clientes em nenhuma fonte. O que está em uma fonte pode aparecer nas respostas do bot. O bot cita esses dados como informação, nunca os trata como ordens.",{"id":978,"title":979,"titles":980,"content":981,"level":263},"\u002Fdocs\u002Fbot\u002Fknowledge#horário-e-endereço-vêm-dos-seus-dados","Horário e endereço: vêm dos seus dados",[106],"Quando um cliente pergunta «onde vocês ficam?» ou «que horas vocês abrem?», o bot responde com os dados reais do negócio, sem inventar: Endereço: o de Meu negócio → Dados → Endereço e região.Horário: a semana da sua agenda, juntando os horários ativos da sua equipe e dos seus recursos (Meu negócio → Equipe e recursos), no fuso horário do negócio. Se você muda um horário, o bot já diz o novo. Se na base de conhecimento houver um texto de endereço ou horário, ele não substitui esses dados: só acrescenta detalhes, como «estacionamento na esquina». Se o texto disser outra coisa, valem os seus dados. Sem endereço cadastrado ou sem horários ativos, o bot responde com o que houver na base ou passa para a equipe.",{"id":983,"title":984,"titles":985,"content":986,"level":263},"\u002Fdocs\u002Fbot\u002Fknowledge#cadastrar-conhecimento-manualmente","Cadastrar conhecimento manualmente",[106],"Em Base de conhecimento, toque em Novo item e escolha o tipo: FAQ: uma pergunta e a resposta.Texto: um título e um conteúdo livre (por exemplo, a política de cancelamento).Produto\u002FServiço: nome, descrição e preço opcional.Arquivo: arraste um arquivo (máximo de 5 MB). Ele é processado e pode ser ativado ou desativado. Cada item tem um interruptor Ativo: o bot só usa os ativos. Você pode buscar e filtrar por tipo.",{"id":988,"title":989,"titles":990,"content":991,"level":263},"\u002Fdocs\u002Fbot\u002Fknowledge#fontes-o-que-se-atualiza-sozinho","Fontes: o que se atualiza sozinho",[106],"Em Fontes, toque em Adicionar fonte e escolha o tipo. O sistema importa em poucos minutos e atualiza sozinho; você pode mudar a frequência (a cada hora, 6 horas, dia ou semana), Atualizar agora, Pausar e Retomar. Cada cartão mostra o estado: Na fila, Em dia, Com erro ou Pausada. Uma fonte que falha várias vezes seguidas pausa sozinha. Se você a apagar, os itens importados dela também saem (os escritos à mão não são tocados). Regras comuns: apenas endereços públicos http(s), até 2 MiB por fonte e 10 fontes por projeto. Páginas que exigem login não são lidas, e o robots.txt do site é respeitado.",{"id":993,"title":994,"titles":995,"content":996,"level":301},"\u002Fdocs\u002Fbot\u002Fknowledge#uma-página-web","Uma página web",[106,989],"Adicionar fonte → Página web, alcance Página.Digite a URL pública (por exemplo, sua página de preços).O texto da página é lido, sem executar JavaScript.",{"id":998,"title":999,"titles":1000,"content":1001,"level":301},"\u002Fdocs\u002Fbot\u002Fknowledge#uma-seção-do-seu-site","Uma seção do seu site",[106,989],"Para o bot aprender várias páginas de um mesmo site, sem cadastrá-las uma a uma: Adicionar fonte → Página web, alcance Seção do site.Digite o prefixo, por exemplo https:\u002F\u002Fseusite.com\u002Fajuda.Escolha o máximo de páginas (50 por padrão, até 200). O sistema lê o sitemap.xml do domínio e pega só as páginas do mesmo site que começam com esse prefixo. A cada atualização, adiciona as páginas novas, atualiza as que mudaram e arquiva as que sumiram. O cartão mostra \"N páginas importadas\" e Ver páginas lista cada uma com seu estado (Importada ou Arquivada). Não existe um rastreador: se o site não publica sitemap.xml, a fonte fica com o aviso correspondente e você precisa importar as páginas uma a uma.",{"id":1003,"title":1004,"titles":1005,"content":1006,"level":301},"\u002Fdocs\u002Fbot\u002Fknowledge#uma-lista-planilha-csv-json-ou-rss","Uma lista: planilha, CSV, JSON ou RSS",[106,989],"Serve para produtos, preços ou novidades que você já mantém em uma planilha, uma loja ou um feed. Adicionar fonte e escolha Planilha, CSV, API JSON ou RSS.Cole o link. Para uma planilha do Google: Arquivo → Compartilhar → Publicar na Web, ou deixe visível para qualquer pessoa com o link; a primeira linha deve ter cabeçalhos.Em Mapeamento de campos, escreva qual coluna alimenta cada campo: Nome (obrigatório), Descrição, Preço, Categoria, Link e Chave estável. Em JSON, escreve-se o caminho, por exemplo produtos[].nome. Com RSS não é preciso mapeamento.Toque em Ver pré-visualização: mostra as primeiras linhas válidas e quantas foram ignoradas.Se estiver bom, Salvar fonte. Até 1000 linhas por fonte. Se você usar Chave estável (um código que não muda, como um SKU), renomear um produto o atualiza; sem chave, renomear cria um item novo e desativa o antigo. Para uma API que exige credencial, você pode informar um cabeçalho Authorization ou um parâmetro na URL: ele é guardado criptografado e não volta a ser exibido.",{"id":1008,"title":1009,"titles":1010,"content":1011,"level":263},"\u002Fdocs\u002Fbot\u002Fknowledge#se-algo-der-errado","Se algo der errado",[106],"O cartão da fonte explica a causa: MensagemO que fazerNão encontramos essa página (404)Confira o endereçoA página exige loginSó páginas públicas são lidasO site não respondeuTentamos de novo mais tarde, sozinhosO site não publica sitemap.xmlImporte as páginas uma a umaO sitemap não tem páginas sob esse endereçoConfira o prefixoO sitemap não é válidoRevise o sitemap do siteO site não permite a leitura (robots.txt)É uma decisão do siteUma coluna do mapeamento não existeConfira os nomes das colunasNenhum texto encontrado para importarA página ou a lista está vazia; o que já foi importado não é desativado Depois de adicionar conhecimento, teste no Simulador: pergunte o que um cliente perguntaria. Para integrar fontes por API, veja os endpoints \u002Fknowledge em Endpoints.",{"id":116,"title":115,"titles":1013,"content":1014,"level":257},[],"Como o dia a dia se organiza no Fiuit, com Hoje, Inbox e Trabalho, e como funcionam as etapas e as ações de uma tarefa, como assumir, soltar e encerrar. No Fiuit, tudo o que precisa ser feito é uma tarefa: um horário marcado, uma mesa, uma visita, uma entrega. Uma conversa pode criar uma; você também as cria manualmente com o botão Nova tarefa ou pela API. O painel mostra três destinos principais: Hoje, Inbox e Trabalho. O resto fica em Mais.",{"id":1016,"title":1017,"titles":1018,"content":1019,"level":263},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#hoje-inbox-e-trabalho","Hoje, Inbox e Trabalho",[115],"Hoje é o painel do seu dia. Mostra o que precisa da sua atenção, o que vem agora, o que está em andamento, o de mais tarde e, recolhido, o concluído. Quem é da equipe vê só o que é seu (Minhas); Dono e Gerente alternam entre Minhas e Tudo.Inbox reúne as conversas que pedem uma pessoa. Veja O bot e a IA.Trabalho é onde você vê todas as tarefas. Olha-se em dois eixos que se combinam.",{"id":1021,"title":1022,"titles":1023,"content":1024,"level":301},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#trabalho-conjunto-forma","Trabalho: conjunto × forma",[115,1017],"Primeiro você escolhe qual trabalho ver (o conjunto): ConjuntoO que mostraSem responsávelO que precisa de atenção: sem responsável, sem horário ou aguardando confirmaçãoHojeO trabalho de hoje de todo o negócioPróximasO que vem pela frente, agrupado por diaTudoTodo o trabalho, com ordem e agrupamento à escolhaMinhasO que está atribuído a você Depois escolhe como ver (a forma): FormaQuando apareceListaSempreCalendárioSe houver recursos com agenda (por dia, por profissional ou por semana)MapaSe você trabalha nos locais dos seus clientes (serviços a domicílio, zonas de cobertura ou tarefas fora do local). Veja Mapa e endereçosLinha do tempoSe houver recursos ativos: uma linha por pessoa ou recurso e uma barra por tarefa ao longo dos dias \"Se não tem nada, não aparece\": uma forma só surge quando o seu negócio precisa dela. Todas abrem o mesmo detalhe da tarefa. Os filtros (buscar, prioridade, etiqueta, datas), a ordem e o agrupamento valem para todas as formas. O conjunto e o status são dois menus compactos com sua contagem; no iPad e no computador dividem uma linha com Filtros, ordem e visualizações em ícones. No celular, abra Ver para escolher a visualização pelo ícone. O status sai pelo × e não se repete como filtro abaixo; os demais filtros aparecem na segunda linha. Os status disponíveis vêm dos seus fluxos, mesmo sem tarefas: «Não entregues» aparece só com um percurso de entregas, nunca só por ter uma fila de atendimento no local.",{"id":1026,"title":1027,"titles":1028,"content":1029,"level":301},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#ver-agrupar-e-ordenar","Ver: agrupar e ordenar",[115,1017],"Hoje e a Lista de Trabalho compartilham o seletor Ver: Agrupar por (Momento —Agora, Em andamento, Mais tarde e Concluídas, o de Hoje—, recurso, serviço, cliente, etapa, status, zona, etiqueta, prioridade ou dia) e Ordenar por (hora, vencimento, prioridade ou criação, crescente ou decrescente). Só aparecem os agrupamentos que fazem sentido para o seu negócio: sem zonas não há Zona e sem etapas não há Etapa. A escolha fica no link e é lembrada por pessoa e por visão. Grupos vazios não aparecem e as concluídas ficam recolhidas. No Calendário o agrupamento é por recurso: em Por você escolhe todos, um tipo, uma equipe ou um recurso.",{"id":1031,"title":1032,"titles":1033,"content":1034,"level":301},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#visualizações-salvas","Visualizações salvas",[115,1017],"Uma visualização é uma combinação de Trabalho com nome: conjunto, forma, filtros, ordem e agrupamento (por exemplo, «Entregas de Pinheiros»). Toque em Visualização ao lado do título e escolha Salvar visualização atual…. O menu mostra Visualização padrão, Minhas visualizações e Da equipe (uma seção sem visualizações não aparece). São salvos os critérios, não as tarefas: a visualização sempre mostra o trabalho atual. Pessoais por padrão. Dono e Gerente podem compartilhar uma visualização com a equipe: todos que veem Trabalho a veem. Os demais a usam e ajustam, mas as mudanças ficam só para essa pessoa; com Salvar como minha ela a copia para as suas.A última fica lembrada. Trabalho abre na última visualização que você usou em cada negócio (nesse dispositivo). Um link direto manda; se não houver nenhuma lembrada, abre a que Dono ou Gerente marcaram como padrão da equipe ao salvá-la e, se não houver, a padrão.Mudanças não salvas. Se você mexe num filtro, na ordem ou na forma, a visualização fica modificada até você escolher Salvar, Salvar como nova ou Descartar. O link (?view=…) inclui o que foi ajustado.Limites: 10 visualizações pessoais por pessoa e 10 da equipe por negócio. Uma visualização apagada ou à qual você não tem mais acesso abre a padrão, sem erro.",{"id":1036,"title":1037,"titles":1038,"content":1039,"level":301},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#linha-do-tempo-por-recurso","Linha do tempo por recurso",[115,1017],"A Linha do tempo mostra uma linha por pessoa ou recurso (quadra, veículo, sala…) e uma barra por tarefa ao longo dos dias. Serve para ver num relance as vagas e os dias lotados, principalmente com trabalhos longos ou aluguéis. Zoom: Em Trabalho → Linha do tempo, use −\u002F+ ou o controle deslizante para passar de semanas a horas. Dia e Semana são atalhos; Agora volta para hoje com um zoom confortável. Ctrl\u002F⌘ + roda, pinça e teclas +\u002F− mantêm o instante sob o ponteiro. O zoom é lembrado e salvo com a vista.Ocupação: cada linha mostra a porcentagem ocupada da semana sobre seu horário de atendimento; a partir de 85 % diz «quase cheio» e de 100 %, «cheio».Mover e esticar: arraste uma barra para outro horário, dia ou linha para reagendar ou reatribuir, ou estique pela borda direita para mudar a duração. Também dá para selecionar a barra e usar os botões (ou as setas do teclado). Mover pede confirmação com «Avisar o cliente»; esticar salva direto. O Fiuit valida a mudança com as mesmas regras de sempre: se não couber, a barra volta ao lugar e o aviso explica por quê. Quem pode mover é o mesmo que reagendar: Dono e Gerente qualquer tarefa; a equipe, as suas e só nas próprias agendas. No celular a linha do tempo desliza na horizontal e se move com os botões.",{"id":1041,"title":1042,"titles":1043,"content":1044,"level":301},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#atenção-sob-demanda","Atenção sob demanda",[115,1017],"Hoje mostra um único aviso prioritário: conversas sem resposta, tarefas sem responsável, sem zona, endereço a revisar e por agendar, nessa ordem e conforme suas permissões. «Responder» abre Inbox em Atenção. «+N mais» abre os outros motivos com links para listas filtradas. Zeros ficam ocultos; uma tarefa pode contar em vários motivos. Sem responsável abrange o projeto e não implica horário próximo.",{"id":1046,"title":1047,"titles":1048,"content":1049,"level":263},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#a-tarefa-e-suas-etapas","A tarefa e suas etapas",[115],"Cada tarefa está em uma etapa. As etapas são o vocabulário do seu negócio: uma barbearia usa Confirmada → Em andamento → Concluída; uma entrega usa Sem responsável → Aceita → A caminho → Entregue. Por trás há estados fixos (pré-reserva, confirmada, em andamento, concluída, cancelada, ausente, com falha), por isso os números e as estatísticas significam o mesmo em todos os segmentos. O detalhe da tarefa mostra o cliente, a data e o recurso, as notas, os dados do formulário, a origem (por exemplo, a conversa de WhatsApp de onde veio) e os comentários e a atividade.",{"id":1051,"title":1052,"titles":1053,"content":1054,"level":301},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#formulários-por-serviço","Formulários por serviço",[115,1047],"Um serviço pode pedir dados próprios ao criar a tarefa: o endereço de entrega, o motivo da consulta, o modelo do equipamento. Esses dados são preenchidos na tarefa e ficam guardados com ela. São definidos no serviço (Serviços).",{"id":1056,"title":1057,"titles":1058,"content":1059,"level":263},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#mensagem-ao-cliente-ao-entrar-em-uma-etapa","Mensagem ao cliente ao entrar em uma etapa",[115],"Cada etapa pode mandar uma mensagem ao cliente quando a tarefa chega a ela. Em Meu negócio → Etapas, ao editar uma etapa, Mensagem ao cliente ao entrar mostra o texto do modelo e deixa você escrever o seu, por idioma do cliente (português, espanhol ou inglês). Dados preenchidos sozinhos: nome, saudação, serviço, negócio, data e hora, valor a cobrar e link de acompanhamento são botões. O Fiuit coloca o dado real com o seu formato; não dá para alterar nem inventar outros, e o servidor rejeita o que não existe ou está mal escrito.Prévia com dados de exemplo, e Voltar ao texto original para descartar o seu texto.Se faltar algo, sai o texto de sempre: um cliente cujo idioma você não escreveu, ou um dado que não existe para essa tarefa (cliente sem nome, sem valor), recebe o texto do modelo, nunca um com buracos.Cada tarefa com a sua versão: o texto que já está para ser enviado é o da versão do fluxo com a qual a tarefa entrou na etapa. Editar depois não o muda.O que é enviado é sempre o texto salvo: a IA não o escreve nem o altera ao enviar. O Wagy pode propor o texto: você vê antes e depois e nada é salvo até confirmar.Só o dono salva mudanças; o gerente as vê. Os avisos respeitam o horário de silêncio e os interruptores de avisos do projeto.",{"id":1061,"title":1062,"titles":1063,"content":1064,"level":263},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#próximo-passo","Próximo passo",[115],"Cada tarefa mostra seu próximo passo: conforme a etapa, o papel e o serviço, o painel oferece uma saída principal grande (por exemplo Iniciar ou Concluir), o resto em Mais ações e as ferramentas da etapa como botões secundários. Abaixo do botão principal você vê o que ainda falta para avançar (por exemplo Cobrança ou um dado do serviço); toque em qualquer um e a folha dessa saída abre direto nesse campo. Tudo vem do servidor: você só vê o que seu papel pode fazer nessa etapa. Ao escolher uma saída, abre uma única folha com os requisitos da etapa de destino: O obrigatório, à vista: os dados que a etapa pede, a evidência do serviço (assinatura ou foto), a pessoa atribuída, a localização e a cobrança quando há saldo.O opcional, recolhido em Adicionar mais dados (uma observação, uma gorjeta).Cobrança: Cobrado (todo o saldo), Parcial (o resto fica devendo) ou Fica devendo. O saldo é calculado pelo servidor. Se o sinal já cobre o total, nada é pedido. Tudo é enviado junto, em um só passo: se algo falha, nada fica pela metade, e tentar de novo não duplica a cobrança nem a etapa. Se falta algo, a folha marca o que falta. O mesmo vale para os passos sem folha e para as ferramentas (Voltar mais tarde, Compartilhar acompanhamento…): se a conexão cair ou o servidor não responder, tocar de novo no mesmo botão repete a mesma ação sem duplicá-la. Se você mudar o envio (outra saída, outra ferramenta, outros dados ou outra tarefa), cancelar a folha ou chegar uma resposta definitiva, a próxima tentativa é uma ação nova. É o mesmo comando e a mesma proteção usados pela API e pelo MCP, sem permissões novas.",{"id":1066,"title":1067,"titles":1068,"content":1069,"level":301},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#regras-de-cobrança","Regras de cobrança",[115,1062],"Concluir exige o obrigatório, incluída a cobrança quando a tarefa tem valor e o serviço pede.Uma pessoa da equipe só pode deixar dívida se o cliente tem limite de crédito e o saldo cabe nesse limite; se não, precisa cobrar. O Dono e o Gerente podem deixá-la sempre (fica auditado).Não veio \u002F Não estava não gera dívida: o devido fica no que já foi cobrado (o sinal não é devolvido nem vira crédito).",{"id":1071,"title":1072,"titles":1073,"content":1074,"level":301},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#ferramentas-da-etapa","Ferramentas da etapa",[115,1062],"FerramentaO que fazPegarA tarefa fica atribuída a quem a pega. Se outra pessoa chegou antes, avisa e não atribui duas vezesAtribuir \u002F ReatribuirO Dono ou o Gerente escolhe para quem vaiSoltarA tarefa volta para Sem atribuição para outra pessoa pegar (pede confirmação)Voltar mais tardeEm tarefas sem horário, move o vencimento para a data e hora que você escolherCompartilhar acompanhamentoUm link para o cliente ver o status do pedido. Quem está atribuído à tarefa compartilha As ferramentas nunca dão permissões extras: aparecem só se seu papel pode usá-las. Reagendar uma tarefa com horário continua em Mais ações.",{"id":1076,"title":1077,"titles":1078,"content":1079,"level":301},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#tarefas-sem-responsável-e-filas","Tarefas sem responsável e filas",[115,1062],"Há trabalhos sem horário, como as entregas. Entram como Sem atribuição, quem pode fazê-los os pega e depois segue a sequência. Uma pessoa da equipe vê as tarefas atribuídas a ela e as que seu equipe pode pegar, sem o telefone nem o email do cliente até pegá-la. Um entregador vê primeiro só a zona aproximada. Exemplo do segmento de entregas: Chega um pedido: fica Sem atribuição.Um entregador toca Pegar: a tarefa é dele. (Ou o gerente toca Atribuir.)Se não puder, toca Soltar e ela volta para a fila.Toca A caminho e, se quiser, Compartilhar acompanhamento com o cliente.Fecha com Concluir (com a cobrança), ou com Não estava ou Não quis (mais o motivo).",{"id":1081,"title":1082,"titles":1083,"content":1084,"level":301},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#cada-serviço-com-suas-etapas","Cada serviço com suas etapas",[115,1062],"As etapas vêm do modelo do seu segmento e cada serviço tem as suas: que saídas cada etapa oferece, o que pede para entrar e que ferramentas tem. Hoje elas se ajustam pela API ou pelo servidor MCP: veja API e MCP.",{"id":1086,"title":1087,"titles":1088,"content":1089,"level":263},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#escrever-ao-cliente-pela-tarefa","Escrever ao cliente pela tarefa",[115],"Cada cartão e cada detalhe de tarefa traz um botão Mensagem para escrever ao cliente sem sair do que você está fazendo. Toque em Mensagem no cartão ou no detalhe da tarefa.Escreva seu texto ou parta de uma resposta rápida e a edite antes de enviar.Envie. O Fiuit escolhe o canal para você: a conversa que você já tem com esse cliente, ou WhatsApp ou email se ainda não houver nenhuma. Tudo fica no Inbox, como qualquer conversa, e à mão ficam Ligar e Abrir conversa.",{"id":1091,"title":1092,"titles":1093,"content":1094,"level":263},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#evidência-de-trabalho","Evidência de trabalho",[115],"Uma ação pode pedir a localização do momento (por exemplo, ao marcar \"Cheguei\") e a tarefa aceita anexos (foto, documento, áudio, nota). São privados: só vê quem tem acesso àquela tarefa, os links de download expiram em 60 segundos e são apagados após um prazo (30 dias por padrão). O Dono ou o Gerente podem apagar uma localização. Quando uma etapa pede uma foto de evidência, ela é tirada com a câmera ou escolhida da galeria com o mesmo editor de fotos do resto do painel: não precisa recortar (fica inteira, com o lado maior de até 1600 px), fica menor antes de enviar e é salva sem a localização do celular. Se a conexão cair, Tentar de novo reenvia sem duplicar. A assinatura continua sendo desenhada com o dedo ou anexada como PNG.",{"id":1096,"title":1097,"titles":1098,"content":1099,"level":263},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#o-que-cada-papel-vê","O que cada papel vê",[115],"PapelHojeTrabalhoClientesDono e GerenteTodo o negócioTudoSimEquipeO que é seu e o que pode assumirO que é seu e o que pode assumirNãoLeituraSomente verSomente verNão Mais detalhes em Papéis e permissões.",{"id":1101,"title":1102,"titles":1103,"content":1104,"level":263},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#tarefas-atrasadas","Tarefas atrasadas",[115],"Uma tarefa está atrasada quando tem horário, passou o fim da sua janela mais uma tolerância e continua sem ser encerrada: por exemplo, ficou em Agendado ou A caminho quando já deveria ter terminado. A tolerância é de 15 minutos por padrão e você a altera (de 0 a 240 minutos) em Meu negócio → Dados. Tarefas sem horário, de fila e as que aguardam agendamento nunca ficam atrasadas: o Fiuit não inventa um horário.Uma tarefa encerrada (concluída, cancelada, ausente ou com falha) não está atrasada, mesmo que tenha fechado tarde.A marca se limpa sozinha: ao avançar de etapa ou reagendar, a tarefa deixa de estar atrasada. Se você reagendar e ela passar do horário de novo, é um atraso novo. Onde você vê. O selo Atrasada no cartão, no detalhe e no calendário; o filtro Atrasadas em Trabalho → Ver; e como primeiro motivo em Precisa da sua atenção, em Hoje (cada tarefa conta uma só vez, mesmo com vários motivos). Quem é avisado. O responsável pela tarefa e o Dono e Gerente, uma vez por tarefa e janela. O aviso chega ao sino, como push e pelo Telegram, se você vinculou o seu; você escolhe os canais em Minha conta → Avisos («Tarefa atrasada»). Automatizar. Em Atendimento → Mensagens automáticas, o gatilho uma tarefa atrasa dispara nesse mesmo momento; serve, por exemplo, para escrever ao cliente «Estamos um pouco atrasados…». Veja Regras.",{"id":1106,"title":1107,"titles":1108,"content":1109,"level":263},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#automatizar-o-trabalho","Automatizar o trabalho",[115],"Ao entrar em uma etapa, a tarefa pode avisar o cliente e a equipe (por e-mail e Telegram) conforme o que a etapa definir: veja Automações. Para esperas ou condições, veja Regras. O bot de clientes reserva serviços com horário; a equipe cria tarefas de fila pelo painel ou pela API. Criação de entregas em fila pelo chat: em breve.",{"id":1111,"title":1112,"titles":1113,"content":1114,"level":263},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#hoje-segundo-o-seu-papel","Hoje segundo o seu papel",[115],"Conforme o que você faz, Hoje se organiza sozinho. Se você leva uma agenda ou um roteiro, no topo vê sua tarefa atual: compacta por padrão, com Ver detalhes para abrir contato, o que leva, notas e cobrança. Se você a deixar aberta, a seguinte também aparece aberta até você recolhê-la. Dono e Gerente veem ainda Como estamos?: ocupação de hoje e da semana, vendas do mês contra o mês passado até a mesma altura, a receber, concluídas da semana e clientes novos do mês; as de dinheiro só com permissão de Financeiro. «Até a mesma altura» compara dias completos (o dia de hoje entra inteiro).",{"id":1116,"title":1117,"titles":1118,"content":1119,"level":263},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#reagendar-uma-tarefa-com-plano","Reagendar uma tarefa com plano",[115],"Ao reagendar uma tarefa coberta por um pacote ou clube, ela mantém o valor combinado antes do plano. Se depois você remover o plano, esse será o valor cobrado; também se o novo horário ficar sem cobertura. A cobertura continua dependendo da validade, do saldo e da cota. Se você já havia tocado em Tirar plano, a nova tarefa continua sem plano: mudar o horário não desfaz essa decisão, mesmo após vários reagendamentos. Confira o valor em Trabalho, na seção Cobrança da tarefa.",{"id":1121,"title":1122,"titles":1123,"content":1124,"level":263},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#visão-rápida-no-mapa-e-no-calendário","Visão rápida no Mapa e no Calendário",[115],"Em Trabalho → Mapa, passe o mouse ou foque um marcador; no celular, toque nele. No Calendário, toque em uma tarefa para ver o resumo sem perder a visão do trabalho. Use Iniciar, A caminho ou outra saída disponível que não peça dados. As outras saídas simples têm botão próprio.Mais ações reúne reagendar, cancelar com confirmação e compartilhar acompanhamento, quando você tem permissão e a tarefa permite.Para formulários, evidências, cobrança, editar, reabrir, agendar ou mudar o pedido, escolha Abrir tarefa: o detalhe mantém todas as ações. Se uma saída precisar de novos dados na execução, a tarefa também será aberta.O cartão não mostra valores; cliente e endereço respeitam suas permissões. Sem ações, essa seção desaparece. No celular abre como folha inferior; Escape ou tocar fora fecha e devolve o foco ao marcador ou evento.",{"id":1126,"title":1127,"titles":1128,"content":1129,"level":263},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#como-aproximo-a-linha-do-tempo-e-abro-uma-tarefa","Como aproximo a linha do tempo e abro uma tarefa?",[115],"Em Trabalho → Linha do tempo, use −\u002F+ ou o controle deslizante para passar de semanas a horas. Dia e Semana são atalhos; Agora volta para hoje com um zoom confortável. Ctrl\u002F⌘ + roda, pinça e teclas +\u002F− mantêm o instante sob o ponteiro. O zoom é lembrado e salvo com a vista. Cada barra mostra mais informações conforme sua largura: só cor, horário, horário e tarefa, ou também cliente\u002Fresponsável e status. Toque para abrir a vista rápida; se houver várias barras pequenas juntas, escolha uma na lista. Arrastar move a cada 15 minutos de perto, uma hora na distância intermediária ou um dia de longe, mantendo o horário original. No celular, mova com os botões depois de fechar a vista rápida. A lista de tarefas juntas aparece junto à área tocada, ou como folha inferior no celular. Ao mudar a duração, o passo é de 30 minutos de perto e uma hora ao afastar. As setas de data avançam uma semana de perto e cinco semanas de longe. Ao reagendar, a seleção do horário anterior é fechada.",{"id":1131,"title":1132,"titles":1133,"content":1134,"level":263},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#o-que-continua-ocupando-o-lugar","O que continua ocupando o lugar",[115],"Em Trabalho → Calendário e Trabalho → Linha do tempo, uma tarefa iniciada que não foi concluída no dia aparece listrada como Continua ocupando nos dias seguintes. Ocupa todo o horário de atendimento de cada dia até você concluí-la, no máximo 7 dias depois do fim, e o bloco diz até que dia. Num local com vários lugares ao mesmo tempo diz quantos ocupa, por exemplo «1 de 3 lugares». Vale para o local, as quadras e os serviços de dia inteiro, não para um horário com uma pessoa. O bloco não se arrasta: toque nele para ver a tarefa e concluí-la. Passados os 7 dias o lugar é liberado e a tarefa continua em Atrasadas até você fechá-la.",{"id":1136,"title":1137,"titles":1138,"content":1139,"level":263},"\u002Fdocs\u002Fwork\u002Ftasks-and-actions#horários-fixos-reservas-que-se-repetem","Horários fixos: reservas que se repetem",[115],"Para um cliente de sempre («toda terça às 20:00») use Nova tarefa → Repetir; quem vê e cria é o dono e o encarregado. Escolha cliente, serviço e o primeiro horário, marque Repetir e defina os dias, de quantas em quantas semanas (1 a 4) e quando termina: numa data (até um ano) ou depois de certa quantidade de vezes (até 52). É preciso um cliente que já exista e um serviço com horário, sem formulário próprio nem duração diferente da do serviço. Antes de criar, a prévia mostra as próximas 8 semanas com cada data; as que conflitam com a sua agenda (fechado, sem vaga, feriado) aparecem com o motivo e você pula uma por uma. Com alguma sem resolver não dá para criar. O resto das datas é somado sozinho com o tempo, e as que conflitam mais adiante não são criadas e ficam marcadas na série. Cada data é uma tarefa normal, com seu aviso, suas etapas, sua cobrança do dia e sua falta, e mostra a marca Horário fixo em Hoje, Trabalho e no calendário. Abra a tarefa para ver a regra e toque em Editar horário fixo ou Cancelar horário fixo: você escolhe só esta (reagenda ou cancela como qualquer tarefa), esta e as seguintes (divide a série em duas) ou toda a série. O que muda ou é cancelado são as datas que vêm e ainda não começaram nem foram cobradas; o que já passou, foi cobrado ou teve falta não é alterado, e o cliente não recebe aviso por essas datas: avise você uma vez. Uma falta não cancela a série.",{"id":120,"title":119,"titles":1141,"content":1142,"level":257},[],"A visão Mapa de Trabalho, os endereços do cliente (com etiqueta e um padrão), o preenchimento automático, a localização compartilhada e a privacidade. Se o seu negócio atende no endereço do cliente (entregas, visitas, assistência técnica), o Fiuit guarda onde é cada tarefa e mostra num mapa.",{"id":1144,"title":1145,"titles":1146,"content":1147,"level":263},"\u002Fdocs\u002Fwork\u002Fmap-and-addresses#a-visão-mapa","A visão Mapa",[119],"Em Trabalho, a forma Mapa aparece quando há pelo menos uma tarefa com localização. Se você não precisa dela, ela não aparece. Cada tarefa é um marcador, com cor, símbolo e nome conforme o estado: pendente, confirmada, em andamento, concluída ou com problema. A cor não é a única coisa que as distingue.Passe o mouse ou foque um marcador para ver o resumo; no celular, toque nele. Abrir tarefa leva ao detalhe completo.A lista lateral mostra as mesmas tarefas (útil com teclado ou leitor de tela). As tarefas sem localização são listadas à parte.O mapa se ajusta sozinho aos resultados e mostra até 500 tarefas; se houver mais, refine os filtros. Os filtros e o conjunto (Sem responsável, Hoje, Próximas...) valem como na lista.A legenda conta as tarefas por estado. O mapa usa o Google Maps. Se o Google não estiver disponível, usa-se um mapa de reserva e a visão continua funcionando.",{"id":1149,"title":1150,"titles":1151,"content":1152,"level":301},"\u002Fdocs\u002Fwork\u002Fmap-and-addresses#modo-claro-e-escuro","Modo claro e escuro",[119,1145],"Um seletor flutuante tem três opções: Automático, Claro e Escuro. Automático segue o tema do seu painel. É lembrado por navegador.",{"id":1154,"title":1155,"titles":1156,"content":1157,"level":263},"\u002Fdocs\u002Fwork\u002Fmap-and-addresses#endereço-com-preenchimento-automático","Endereço com preenchimento automático",[119],"Ao cadastrar o endereço de um cliente, ou o destino de uma tarefa (Nova tarefa ou a edição), aparece um buscador: Comece a digitar rua e número (a partir de 3 caracteres).Escolha uma sugestão: são guardados o endereço completo (rua, número, bairro, cidade, CEP, país) e o ponto no mapa.Aparece um mapa pequeno com um pin: arraste-o ou toque no mapa para ajustar a localização exata. Se preferir, preencha o endereço manualmente e toque em Marcar no mapa: o sistema o procura e deixa o pin para você mover. Se o preenchimento automático não estiver disponível, ele avisa e o que você digitou passa para o preenchimento manual: você não perde nada. Um serviço \"tem destino\" quando seu formulário pede o endereço de entrega. Para esse serviço, o destino é preenchido com esse mesmo buscador.",{"id":1159,"title":1160,"titles":1161,"content":1162,"level":263},"\u002Fdocs\u002Fwork\u002Fmap-and-addresses#os-endereços-do-cliente","Os endereços do cliente",[119],"Um cliente pode ter vários endereços, cada um com sua etiqueta (casa, escritório, depósito…) e um padrão. Eles são administrados na seção «Dados» da ficha do cliente. Ao criar ou editar uma tarefa com destino no endereço do cliente, o seletor oferece os endereços salvos e uma opção Outro para cadastrar um novo. Salvá-lo no perfil é uma decisão à parte: você pode usá-lo só naquela tarefa.Cada tarefa mantém seu destino. Se depois o endereço do cliente ou o do seu estabelecimento mudar, as tarefas já criadas continuam apontando para onde estavam: o endereço fica registrado na tarefa.Quando o serviço acontece no seu estabelecimento, a tarefa guarda uma cópia do endereço do negócio daquele momento: o detalhe da tarefa, a Mini App e os lembretes mostram esse endereço, com acesso ao mapa, mesmo que você o mude depois.Quando o serviço é a distância, a tarefa não tem endereço: nem o do negócio nem o do cliente, e não aparece no mapa. A ficha mostra A distância e, se você cadastrou o link da reunião no serviço, um botão para abri-la.O bot oferece apenas os endereços autorizados e confirma qual usar antes de reservar.Cada endereço tem sua zona. Se você usa zonas, a ficha mostra ao lado («Casa · Zona Norte»): é calculada sozinha pela área das suas zonas, ou você escolhe manualmente em Editar → Zona (Dono e Gerente). Uma tarefa nova com esse endereço usa essa zona sem recalcular. Quando você cria ou muda uma zona, os endereços com zona automática são recalculados; os escolhidos manualmente não mudam.",{"id":1164,"title":1165,"titles":1166,"content":1167,"level":263},"\u002Fdocs\u002Fwork\u002Fmap-and-addresses#localização-compartilhada-pelo-cliente","Localização compartilhada pelo cliente",[119],"Um cliente pode enviar a localização pelo WhatsApp ou pelo Telegram (ou pelo chat web, com consentimento explícito). No Inbox, a mensagem aparece com um mapa pequeno, o nome ou endereço, se o canal trouxe, e um link Abrir no mapa.Se o serviço pede destino, o bot pode guardar essa localização como destino da tarefa ou como endereço do cliente. Antes, ele pergunta com SIM\u002FNÃO na conversa.No chat web, o widget oferece \"Usar minha localização\" só quando o bot pediu, e o visitante precisa aceitar de forma explícita.",{"id":1169,"title":1170,"titles":1171,"content":1172,"level":263},"\u002Fdocs\u002Fwork\u002Fmap-and-addresses#privacidade","Privacidade",[119],"O endereço e a localização são dados pessoais: não vão para registros (logs) nem para a URL do painel.Um entregador vê de uma tarefa ainda não assumida só a zona aproximada. O endereço exato aparece quando ele a assume. Veja Trabalho e ações.O Google recebe o que o mapa dele precisa para ser desenhado. Na visão Mapa ele não recebe endereços nem coordenadas das suas tarefas. O preenchimento automático e o \"Marcar no mapa\" enviam a ele o texto do endereço buscado. Se seus clientes têm requisitos especiais, mencione isso no seu aviso de privacidade.",{"id":1174,"title":1175,"titles":1176,"content":1177,"level":263},"\u002Fdocs\u002Fwork\u002Fmap-and-addresses#para-quem-administra-a-conta","Para quem administra a conta",[119],"O mapa do Google precisa de uma chave de navegador e de três APIs do Google Maps Platform habilitadas (Maps JavaScript, Places e Geocoding). É uma configuração da plataforma, não do negócio: se o mapa ou o preenchimento automático não aparecerem, fale com o suporte.",{"id":124,"title":123,"titles":1179,"content":1180,"level":257},[],"O que fazer automaticamente quando algo acontece no seu negócio: esperas, condições e avisos. Carregar exemplos, ativar, pausar e ver o histórico. Uma regra é o que o sistema faz sozinho quando algo acontece: quando ocorre um evento, esperar um tempo, olhar uma condição e fazer algo (avisar a equipe, enviar uma mensagem, executar uma ação). É o passo seguinte às lembretes simples. As regras ficam em Atendimento → Mensagens automáticas.",{"id":1182,"title":1183,"titles":1184,"content":1185,"level":263},"\u002Fdocs\u002Fwork\u002Fflows#as-peças","As peças",[123],"Gatilho: quando começa. Alguns dos eventos disponíveis: uma tarefa é criada, atribuída, modificada, concluída ou cancelada; muda de estado; uma tarefa atrasa (passou do horário mais a tolerância e continua sem ser encerrada);uma ação é executada (por exemplo, alguém marca \"Não estava\");uma conversa começa, é resolvida ou recebe uma mensagem;um cliente é criado ou fica inativo;um anexo é adicionado ou uma localização é registrada. Passos: o que faz. PassoO que fazEsperarUma duração (por exemplo, 2 horas), até uma data, até um horário do dia, um tempo antes ou depois do início ou fim da tarefa, ou até que um evento ocorra com um tempo máximo de espera. Até 90 diasCondição\"Se esta condição for atendida\": segue pelo ramo Se atendida ou Se não atendida. Veja CondiçõesAvisar a equipeUm aviso interno sobre uma tarefa, por Telegram, WhatsApp ou e-mail, conforme cada pessoa recebe avisosEnviar uma mensagem ao clienteUma mensagem na conversa deleExecutar uma açãoUsa uma ação da tarefa (por exemplo, Soltar entrega), com as mesmas regras do painelDeixar um comentárioUma nota na tarefaCriar, atualizar ou atribuir uma tarefaOperações sobre tarefasCalcular dadosPrepara valores para usar nos passos seguintes Uma regra tem até 32 passos, sem ciclos. As regras não pulam nenhuma permissão: cada passo é validado de novo pelo sistema, com o papel do Dono ou Gerente que criou a regra. Uma espera é cancelada sozinha se a tarefa for cancelada.",{"id":1187,"title":1188,"titles":1189,"content":1190,"level":263},"\u002Fdocs\u002Fwork\u002Fflows#comece-com-exemplos","Comece com exemplos",[123],"O modelo do seu segmento traz regras de exemplo. Em Regras, toque em Carregar exemplos (somente o Dono). Elas ficam inativas até você ativá-las, e carregar de novo não as duplica. SegmentoExemploEntregasEntrega sem ser assumida por 2 h: quando uma entrega é criada, esperar 2 horas e, se continuar sem responsável, avisar a equipeEntregasEntrega aceita que não sai em 30 min: se alguém aceita e não sai, a entrega volta para Sem responsávelBarbeariaTerceira ausência do cliente: ao marcar uma ausência, se for a terceira, avisar para pedir sinal na próxima vez",{"id":1192,"title":1193,"titles":1194,"content":1195,"level":263},"\u002Fdocs\u002Fwork\u002Fflows#ver-ativar-e-pausar","Ver, ativar e pausar",[123],"Cada regra mostra seu estado (Ativa, Pausada ou Rascunho) e a última execução. Ao abri-la, você vê O que faz em linguagem simples: o gatilho e os passos, com os ramos. Toque em Ativar e confirme. A partir daí ele age sozinho toda vez que o gatilho acontece.Pausar deixa de iniciar novas execuções; as que já estão em andamento terminam o caminho delas.Em Histórico de execuções você vê cada execução com seu estado (Concluída, Em andamento, Aguardando, Falhou, Cancelada...), até quando espera e qual ramo tomou. Uma regra em Rascunho permite editar a condição: Editar condição, Testar esta condição e Salvar como nova versão. Para alterar uma regra ativa ou mais complexa, peça ao Wagy, o assistente (Primeiros passos), ou use a API. Antes de ativar uma regra com condição, teste-a com Testar esta condição em uma tarefa real. Nada é alterado: ela só diz se deu verdadeiro ou falso.",{"id":1197,"title":1198,"titles":1199,"content":1200,"level":263},"\u002Fdocs\u002Fwork\u002Fflows#regras-e-lembretes","Regras e lembretes",[123],"Os lembretes e confirmações simples (a outra aba de Atendimento, chamada Mensagens automáticas) continuam sendo a forma mais simples de enviar um lembrete ou uma confirmação. Uma regra que vem de uma regra clássica é administrada ali. As regras desta página são para o que precisa esperar, decidir ou agir sobre as tarefas.",{"id":1202,"title":1203,"titles":1204,"content":1205,"level":263},"\u002Fdocs\u002Fwork\u002Fflows#para-desenvolvedores","Para desenvolvedores",[123],"As regras são gerenciadas pela API (\u002Fv1\u002Fautomation-flows, somente Dono ou Gerente com sessão do painel). Veja Endpoints. Os eventos que os disparam são os mesmos que seus webhooks recebem.",{"id":128,"title":127,"titles":1207,"content":1208,"level":257},[],"Como escrever uma condição em uma regra, quais dados ela pode olhar, exemplos prontos por segmento e como testá-la antes de ativar. Uma condição decide por qual ramo uma regra segue. Escreve-se como uma frase curta que dá verdadeiro ou falso, por exemplo \"o serviço custa mais de 100 e o cliente é VIP\". Uma condição apenas olha dados: não altera nada.",{"id":1210,"title":1211,"titles":1212,"content":1213,"level":263},"\u002Fdocs\u002Fwork\u002Fconditions#como-se-escreve","Como se escreve",[127],"O quêExemploComparar== (igual), !=, \u003C, \u003C=, >, >=Combinar&& (e), || (ou), ! (não)Texto\"entrega\" entre aspasEstá em uma lista\"vip\" in customer.tagsContémservice.name.contains(\"Corte\")Começa comtrigger.subject.startsWith(\"Partner\")Se \u002F entãoworkItem.priority == \"urgent\" ? now.hour \u003C 22 : now.hour \u003C 18Um campocustomer.no_show_count, com ponto Isso é toda a linguagem: não há laços nem funções próprias. As condições são validadas ao salvar a regra e de novo ao ativá-la.",{"id":1215,"title":1216,"titles":1217,"content":1218,"level":263},"\u002Fdocs\u002Fwork\u002Fconditions#quais-dados-ela-pode-olhar","Quais dados ela pode olhar",[127],"ObjetoO que traztriggerO evento que iniciou a regra. Com uma ação executada: action_key (a ação), from_stage, to_stageworkItemA tarefa: status, stage, priority, tags, party_size, start_at, due_at, age_minutes (minutos desde que foi criada), assigned (se tem responsável)customername, locale (idioma), tags, no_show_count (ausências reais)servicename, price_cents (o preço em centavos: 100,00 é 10000), deposit_cents, duration_minresourcename, kindnowA hora do seu negócio: hour, minute, weekday (0 = segunda ... 6 = domingo)variablesValores calculados por um passo anterior Por privacidade, uma condição não vê telefones, e-mails, documentos, endereços nem notas do cliente. Se o evento não traz uma tarefa, workItem, customer e service chegam vazios e a condição falha com uma mensagem clara, em vez de responder \"falso\" em silêncio.",{"id":1220,"title":1221,"titles":1222,"content":1223,"level":263},"\u002Fdocs\u002Fwork\u002Fconditions#exemplos","Exemplos",[127],"VIP com um serviço caro: avisar o gerente service.price_cents > 10000 && \"vip\" in customer.tags \"Não estava\" antes das 18 h (gatilho: uma ação é executada) trigger.action_key == \"nao_estava\" && now.hour \u003C 18 Terceira ausência: pedir sinal na próxima vez trigger.action_key == \"ausencia\" && customer.no_show_count >= 3 Tarefa sem responsável há mais de 2 horas (depois de um passo Esperar de 2 h) !workItem.assigned && workItem.age_minutes > 120 Fora do horário comercial (sábado, domingo ou fora das 9 às 18) now.weekday >= 5 || now.hour \u003C 9 || now.hour >= 18 Tarefa urgente workItem.priority == \"urgent\" || \"urgente\" in workItem.tags Cliente que fala português customer.locale == \"pt\" Sinal pendente há mais de uma hora workItem.stage == \"aguardando_sinal\" && workItem.age_minutes >= 60 Serviço longo de corte service.name.contains(\"Corte\") && service.duration_min >= 45 As chaves de ação e de etapa (ausencia, nao_estava, aguardando_sinal) são as do modelo do seu segmento. Se você mudou os nomes, use os seus.",{"id":1225,"title":1226,"titles":1227,"content":1228,"level":263},"\u002Fdocs\u002Fwork\u002Fconditions#testar-uma-condição","Testar uma condição",[127],"No detalhe de uma regra, toque em Testar esta condição (ou Testar condição): Escreva a condição.Escolha uma tarefa real do seu projeto com o buscador.Se ela olha trigger.action_key, escreva a chave da ação em Simular a ação.Toque em Testar. Ele mostra Verdadeiro ou Falso e, abaixo, O que a condição viu: exatamente os dados com os quais decidiu. Nada é executado.",{"id":1230,"title":1231,"titles":1232,"content":1233,"level":263},"\u002Fdocs\u002Fwork\u002Fconditions#erros-comuns","Erros comuns",[127],"Ao salvar, a mensagem diz qual passo falhou e por quê: ProblemaO que significaO campo não existeVocê usou um dado que não está disponível (por exemplo, customer.email)Tipos que não combinamComparou texto com número (customer.name > 5)Não dá verdadeiro ou falsoA condição precisa ser uma pergunta de sim ou nãoFunção não permitidaSão permitidos contains e startsWithObjeto desconhecidoSó dá para usar os objetos da tabela acimaLonga ou custosa demaisDivida em duas condições com outro passo no meio Uma condição aceita até 1024 caracteres e é avaliada em uma fração de segundo.",{"id":132,"title":131,"titles":1235,"content":1236,"level":257},[],"Agrupe sua equipe por zona, com área, dias e horários de atendimento e um limite por faixa, e deixe cada tarefa receber a sua zona sozinha. Uma zona é um grupo de pessoas com uma área e dias e horários de atendimento. Serve para entregas, visitas técnicas, rotas ou qualquer trabalho feito no endereço do cliente: por exemplo, a Zona Norte atende às terças e quintas e a Zona Sul, às quartas e sextas.",{"id":1238,"title":1239,"titles":1240,"content":1241,"level":263},"\u002Fdocs\u002Fwork\u002Fzones#criar-uma-zona","Criar uma zona",[131],"Em Meu negócio → Equipe e recursos, toque em Adicionar e escolha Zona. Cada zona tem: Nome.Área: texto e\u002Fou uma área desenhada no mapa, como explicado abaixo.Pessoas: as que atendem a zona. Uma pessoa pode estar em várias zonas.Dias e horários: por exemplo terça e quinta das 9h às 18h. Se deixar vazio, a zona não restringe os dias.Limite por faixa (opcional): quantas tarefas, no máximo, cabem em cada faixa de horário da zona. Você também pode pedir à Wagy: \"Zona Norte, terça e quinta, Camila e Diego\". A Wagy monta o plano, você revisa a mudança e confirma.",{"id":1243,"title":1244,"titles":1245,"content":1246,"level":263},"\u002Fdocs\u002Fwork\u002Fzones#definir-a-área","Definir a área",[131],"Você pode combinar duas formas de definir a área de uma zona: Por texto: adicione bairros, cidades, províncias ou estados, países ou CEPs como etiquetas. O CEP coincide por prefixo: 20 cobre todos os que começam com 20.No mapa: desenhe um polígono ou escolha um ponto e um raio ao redor, por exemplo 3 km. Cada forma é opcional, mas você precisa de pelo menos uma. Uma zona sem texto nem área desenhada nunca pode receber tarefas, por isso não pode ser salva.",{"id":1248,"title":1249,"titles":1250,"content":1251,"level":263},"\u002Fdocs\u002Fwork\u002Fzones#como-a-zona-é-atribuída","Como a zona é atribuída",[131],"Cada tarefa com endereço procura a sua zona sozinha, nesta ordem: Pelo mapa: se o endereço tem coordenadas e há zonas com área desenhada, procura qual contém esse ponto. Se várias contêm o ponto, vale a de menor área.Por texto: se não há correspondência no mapa ou faltam coordenadas ou áreas desenhadas, procura primeiro pelo CEP, depois pelo bairro e depois pela cidade, sem considerar acentos nem maiúsculas.Sem correspondências: a tarefa fica sem zona e aparece em Hoje → Precisa da sua atenção. Ao corrigir o endereço, ela procura a sua zona novamente, de forma automática. Se o CEP vier escrito dentro do endereço (por exemplo «Rua A, 1 - 20520-000» ou, na Argentina, «25 de Mayo 1530, W3230AIZ Corrientes»), ele também conta; o número da casa nunca é tomado como CEP. Na Argentina, uma zona com W3230 ou 3230 cobre W3230AIZ. Um número solto de 4 ou 5 dígitos só conta se vier marcado, como «CEP 22210» ou «CP 3230». Ao criar uma zona, mudar a sua área ou desativá-la, as tarefas abertas (também as atrasadas) voltam a procurar a sua zona e o aviso ao salvar diz quantas ficaram com zona. Os horários não mudam: se uma tarefa cair numa zona que não atende naquele dia, ela mantém o horário e você remarca se precisar. Uma tarefa que já estava em outra zona só muda se a zona salva servir melhor. Em Trabalho você pode filtrar por zona ou ver só o que está sem zona, e no mapa cada tarefa mostra a sua zona.",{"id":1253,"title":1254,"titles":1255,"content":1256,"level":263},"\u002Fdocs\u002Fwork\u002Fzones#para-negócios-de-entregas","Para negócios de entregas",[131],"Desenhe a área e mantenha alguns CEPs ou bairros como alternativa. Se um endereço mal escrito, como «eso 5», não pôde ser localizado no mapa, mas tem um CEP ou bairro que corresponde, a tarefa ainda recebe a sua zona pelo texto.",{"id":1258,"title":1221,"titles":1259,"content":1260,"level":263},"\u002Fdocs\u002Fwork\u002Fzones#exemplos",[131],"Um ponto dentro de duas áreas: o endereço fica na Zona Norte e na Zona Centro. Como a área da Zona Centro é menor, a tarefa recebe a Zona Centro.Sem coordenadas, com CEP: o endereço tem o CEP 20040-020 e a Zona Norte tem a etiqueta 20. A tarefa recebe a Zona Norte pelo prefixo.Sem coordenadas nem texto que corresponda: o endereço diz «eso 5», sem CEP, bairro nem cidade. A tarefa fica sem zona, em Hoje → Precisa da sua atenção.",{"id":1262,"title":1263,"titles":1264,"content":1265,"level":263},"\u002Fdocs\u002Fwork\u002Fzones#cobertura","Cobertura",[131],"A sua cobertura é a soma de todas as zonas ativas: o que cai dentro de alguma zona, você atende; o que cai fora de todas fica fora da cobertura. Se você ainda não criou zonas, não há limite (só o país do negócio), como até agora. Além de bairros, cidades e CEPs, a área de uma zona pode ser uma província ou estado ou um país inteiro.",{"id":1267,"title":1268,"titles":1269,"content":1270,"level":301},"\u002Fdocs\u002Fwork\u002Fzones#o-que-acontece-com-um-pedido-fora-da-cobertura","O que acontece com um pedido fora da cobertura",[131,1263],"Em Zonas, o cartão Cobertura no topo permite escolher: Aceitar mesmo assim e me avisar (padrão): a tarefa é criada com a etiqueta fuera-de-cobertura e aparece em Hoje → Precisa da sua atenção, para você decidir.Não aceitar: o bot responde ao cliente «Por enquanto não chegamos a essa zona» e não cria nada.",{"id":1272,"title":1273,"titles":1274,"content":1275,"level":301},"\u002Fdocs\u002Fwork\u002Fzones#entregas-que-chegam-a-certas-zonas","Entregas que chegam a certas zonas",[131,1263],"Cada serviço de entrega tem Chega a: todas as zonas (padrão) ou estas zonas. Uma entrega que não chega à zona do cliente segue o mesmo ajuste de Cobertura: com Aceitar mesmo assim e me avisar, o bot a oferece e aceita o pedido, e a tarefa leva a etiqueta fuera-de-cobertura, igual a um endereço fora de todas as suas zonas;com Não aceitar, quando o endereço do cliente já é conhecido o bot não a oferece, e se o cliente pedir mesmo assim responde «Por enquanto essa entrega não chega à sua região» sem criar nada. Se falta um dado para saber a zona, o bot não recusa nem esconde nada.",{"id":1277,"title":1278,"titles":1279,"content":1280,"level":301},"\u002Fdocs\u002Fwork\u002Fzones#como-o-bot-localiza-o-endereço","Como o bot localiza o endereço",[131,1263],"O bot procura o endereço do cliente dentro da sua cobertura, então não confunde uma rua com outra de mesmo nome em outra cidade. Cada bairro ou cidade que você escreveu na área é localizado uma única vez, ao salvar a zona. Um único resultado dentro da cobertura e com o número da casa: é aceito.A rua foi encontrada, mas não o número: o bot pede o número ou que o cliente compartilhe a localização; não guarda um ponto aproximado.O cliente cita outra cidade («…, Santo Tomé»): o bot busca nessa cidade e, se ficar fora, aplica o que você escolheu para pedidos fora da cobertura.Vários resultados possíveis: o bot oferece até 3 opções numeradas dentro da sua cobertura, mais «nenhuma», que mantém o endereço como foi escrito, sem localização no mapa. Ele já não pergunta «em que cidade fica?». Quando o endereço é preciso, a confirmação inclui um link do Google Maps, em qualquer canal.",{"id":1282,"title":1283,"titles":1284,"content":1285,"level":301},"\u002Fdocs\u002Fwork\u002Fzones#para-integrações-e-assistentes","Para integrações e assistentes",[131,1263],"API: GET \u002Fv1\u002Fzones\u002Fcoverage (leitura, chave com config:read) e PUT \u002Fv1\u002Fzones\u002Fcoverage com {\"out_of_coverage\": \"take\" | \"reject\"} (Dono e Gerente, config:write). O tipo da área também aceita state e country, e um serviço tem reach_zone_ids (vazio = todas as zonas), alterado com PATCH \u002Fv1\u002Fservices\u002F{id}.MCP: as ferramentas get_coverage e set_coverage. Veja MCP.A Wagy pode propor zonas com esses tipos e explicar a sua cobertura.",{"id":1287,"title":1288,"titles":1289,"content":1290,"level":263},"\u002Fdocs\u002Fwork\u002Fzones#horários-e-bot","Horários e bot",[131],"Quando uma entrega ou visita tem horário, só são oferecidos os dias e horários da zona, cruzados com a disponibilidade das pessoas e com o limite por faixa. O bot pede ao cliente o endereço e diz, por exemplo: \"Para a sua zona (Zona Norte) atendemos terça-feira ou quinta-feira\".",{"id":1292,"title":1293,"titles":1294,"content":1295,"level":263},"\u002Fdocs\u002Fwork\u002Fzones#tarefas-sem-dono","Tarefas sem dono",[131],"Uma tarefa sem dono de uma zona é avisada, e oferecida para Assumir, só às pessoas dessa zona. Quem administra (Dono e Gerente) vê todas e pode atribuí-las a qualquer pessoa. Antes, a \"zona\" era um recurso com capacidade. Esses recursos continuam funcionando; o comando de migração os converte em zonas sem perder nenhuma tarefa. Em Equipes de trabalho, cada equipe mostra as zonas atendidas por seus integrantes e quem cobre cada uma. A relação vem das pessoas compartilhadas pela equipe e pela zona. Zonas sem integrantes de uma equipe também são gerenciadas nesta seção.",{"id":136,"title":135,"titles":1297,"content":1298,"level":257},[],"Como compartilhar um link privado em que cada cliente vê os pedidos em aberto com a marca do seu negócio, o que ele vê e como revogar. O portal de acompanhamento é uma página pública, sem conta e somente leitura, com o logo, o nome e as cores do seu negócio. Seu cliente vê ali os pedidos em aberto e o andamento. Quem compartilha é você (Dono ou Gerente) com o botão Compartilhar.",{"id":1300,"title":1301,"titles":1302,"content":1303,"level":263},"\u002Fdocs\u002Fwork\u002Ftracking-portal#o-bot-envia-sozinho","O bot envia sozinho",[135],"Quando o bot confirma um pedido, ou o cliente pergunta como está, a mensagem termina com o link do cliente e abre direto esse pedido. É o mesmo link de Compartilhar: se o cliente não tinha um, o bot cria (sem saldo, por 90 dias); se já tinha, reutiliza e o deixa válido por mais 30 dias, até 90 dias desde a criação; depois envia um novo e o anterior deixa de abrir. Se você revogou, o bot não cria outro: a mensagem sai sem link até você compartilhar de novo. No chat do seu site (WebChat) o bot ainda não envia o link. No WhatsApp, «Confirmar», «Remarcar», «Cancelar» e «Repetir pedido» abrem o chat com a mensagem escrita. No Telegram, Instagram ou no chat do seu site, a página copia a mensagem e o cliente cola. Cancelar nunca é bloqueado.",{"id":1305,"title":1306,"titles":1307,"content":1308,"level":263},"\u002Fdocs\u002Fwork\u002Ftracking-portal#compartilhar-o-link","Compartilhar o link",[135],"Abra uma tarefa e toque em Compartilhar, ou na ficha do cliente abra Mais › Compartilhar acompanhamento.Se o cliente não tem link, Criar link. Existe um link por cliente: vale para todos os pedidos dele, inclusive os criados depois.Copiar link ou Compartilhar… (a folha do celular) e envie pelo chat do cliente.Opções: Mostrar saldo (vem desligado) e Validade (7, 30, 90 ou 180 dias). Mudar não troca o link.Gerar novo link invalida o anterior na hora; Revogar link corta sem criar outro. As duas pedem confirmação e ficam na auditoria. Só Dono e Gerente compartilham e revogam; Equipe e Leitura não veem o botão.",{"id":1310,"title":1311,"titles":1312,"content":1313,"level":263},"\u002Fdocs\u002Fwork\u002Ftracking-portal#o-que-o-cliente-vê","O que o cliente vê",[135],"O quêDetalheMarcaLogo (ou a inicial), nome e paleta do seu negócio, em claro ou escuro.PedidosServiço, andamento em linguagem clara (Recebido, Agendado, Em andamento) e horário ou «Horário ainda não definido».HistóricoPedidos concluídos ou cancelados nos últimos 30 dias.Detalhe do pedidoCódigo do pedido, produtos com quantidade e valor, total, endereço de entrega (só enquanto está aberto) e o dia com a faixa ou o horário exato. O mapa aparece só enquanto o pedido está a caminho.Ações do pedidoAdicionar ao calendário (Google Agenda ou arquivo .ics), Confirmar (só se você pediu que reconfirme a presença e ele ainda não respondeu; vai pelo mesmo chat), Remarcar (se tem horário), Cancelar e Repetir pedido (abrem seu chat com a mensagem pronta). O que não se aplica não aparece.Contato (uma vez, no topo)Seu endereço (o das Configurações), Ligar se você cadastrou seu telefone e Enviar mensagem (seu primeiro canal conectado; se não houver, WhatsApp para o seu telefone). Sem nenhum desses dados, o bloco não aparece.SaldoSó se você ativou Mostrar saldo: quanto falta pagar no total e por pedido, calculado pelo servidor com seus recebimentos. Nunca mostra telefone nem e-mail (do cliente ou da sua equipe), o endereço de pedidos já encerrados, notas, comentários nem atividade da equipe, entregador, custos nem dados de outros clientes.",{"id":1315,"title":1316,"titles":1317,"content":1318,"level":263},"\u002Fdocs\u002Fwork\u002Ftracking-portal#segurança-e-privacidade","Segurança e privacidade",[135],"O link é um token longo e aleatório: não dá para adivinhar. Um link inexistente, vencido ou revogado mostra a mesma mensagem.A página não é indexada, não usa cookies nem scripts de terceiros e não grava nada.Quem tem o link vê o mesmo que o cliente: envie só pelo chat dele e revogue se for encaminhado.Se publicar o saldo, mencione no seu aviso de privacidade.",{"id":140,"title":139,"titles":1320,"content":1321,"level":257},[],"Conecte a conta do Mercado Pago do negócio, confira os meios de pagamento disponíveis e defina o sinal de cada serviço. Os pagamentos são configurados em Finanças → Cobranças. Só o Dono e o Gerente veem esta aba; o resto da equipe não.",{"id":1323,"title":1324,"titles":1325,"content":1326,"level":263},"\u002Fdocs\u002Fwork\u002Fpayments#conectar-a-conta","Conectar a conta",[139],"Brasil e Argentina: toque em Conectar Mercado Pago e autorize o Fiuit no Mercado Pago. Você volta para a aba com a conta conectada.Outros países aceitos (Chile, Uruguai, Colômbia, México e Peru): se o Fiuit habilitou para o seu país, você cola o token da conta e o Fiuit o valida. O Fiuit nunca mostra o token. Enquanto não estiver habilitado, o cartão avisa que ainda não está disponível e os pagamentos são registrados à mão; uma conta conectada antes continua visível e pode ser desconectada, mas o token não é colado de novo.Paraguai e as moedas sem Mercado Pago não têm esta opção: as cobranças são registradas à mão. A aba mostra o estado da conexão, o número da conta, o país, a moeda, se é uma conta de teste ou de produção e quando vence a autorização. Se vencer ou der erro, aparece Reautorizar: a conta é reautorizada sem desconectar e sem perder as cobranças. Desconectar pede confirmação. Antes de cancelar as cobranças abertas, o Fiuit consulta o estado delas no Mercado Pago e guarda a credencial cifrada por 30 dias para conciliar pagamentos tardios.",{"id":1328,"title":1329,"titles":1330,"content":1331,"level":263},"\u002Fdocs\u002Fwork\u002Fpayments#país-e-moeda","País e moeda",[139],"A conta precisa receber no mesmo país e na mesma moeda do projeto. Se não coincidirem (por exemplo, o projeto usa reais e a conta é da Argentina), a aba explica e o Fiuit não cria links de pagamento: as cobranças continuam manuais até você conectar a conta correta ou corrigir a moeda em Meu negócio → Dados.",{"id":1333,"title":1334,"titles":1335,"content":1336,"level":263},"\u002Fdocs\u002Fwork\u002Fpayments#meios-de-pagamento","Meios de pagamento",[139],"Os meios não são ligados à mão: dependem da conta. Cada um mostra se está disponível ou o que falta. Link de pagamento: com uma conta de produção do Brasil ou da Argentina conectada. No Brasil o cliente pode pagar com Pix dentro do mesmo link.Uma conta de teste não cobra clientes reais.QR no local e cartão no painel ainda não estão disponíveis.",{"id":1338,"title":485,"titles":1339,"content":1340,"level":263},"\u002Fdocs\u002Fwork\u002Fpayments#sinal",[139],"O sinal é definido em cada serviço e editado na seção Sinal da aba: valor e, se quiser, Devolver o sinal se cancelar com antecedência (entre 1 e 2160 horas). Quando um cliente reserva um serviço com sinal, o horário fica reservado alguns minutos enquanto ele paga. O link vence um pouco antes para o Fiuit confirmar o pagamento; se não pagar a tempo, o horário é liberado.Por padrão o sinal fica retido se o cliente cancelar. Com a devolução ativada, o Fiuit pede a devolução ao Mercado Pago quando o cliente cancela com pelo menos essas horas de antecedência.Sem conta conectada, o sinal é marcado como pago à mão na tarefa.",{"id":1342,"title":1343,"titles":1344,"content":1345,"level":301},"\u002Fdocs\u002Fwork\u002Fpayments#cobrança-ao-reservar-nada-sinal-ou-o-total","Cobrança ao reservar: nada, sinal ou o total",[139,485],"Na ficha de cada serviço com horário (Serviços), Cobrança ao reservar escolhe o que é cobrado ao confirmar: Não cobrar, Sinal ou Total. Com Total, o cliente paga o valor completo da tarefa (preço, formulário ou produtos, conforme a cobrança do serviço) pelo mesmo fluxo do sinal: o horário fica aguardando o pagamento, é confirmado quando o pagamento é creditado, o horário é liberado se ele não pagar a tempo e o valor é devolvido conforme a janela de cancelamento. Uma quadra, por exemplo, é paga inteira ao reservar. Em Finanças → Cobranças você vê o que cada serviço cobra. Sem Mercado Pago conectado, você cobra à mão pela tarefa.",{"id":1347,"title":1348,"titles":1349,"content":1350,"level":263},"\u002Fdocs\u002Fwork\u002Fpayments#cobrar-com-link","Cobrar com link",[139],"Na seção Cobrança de uma tarefa com saldo aparece Cobrar com link; também nas tarefas vinculadas de uma conversa, no Inbox. Enviar pela conversa: o Fiuit cria um link do Mercado Pago pelo que falta pagar e envia ao cliente pela conversa dele (WhatsApp, chat web ou Telegram), com uma mensagem fixa que traz o valor e o vencimento.Copiar link: copia o link para você compartilhar por outro meio.O valor é calculado pelo Fiuit (o saldo da tarefa: preço menos o que já foi cobrado, sinal incluído). Para cobrar só uma parte, use Cobrar uma parte; para mudar o total, ajuste o valor a cobrar.Se já existe um link aberto com o mesmo valor, ele é reutilizado: não são criados dois links para o mesmo. Com um link aberto de outro valor, espere ele vencer ou registre a cobrança à mão.O link vence em 48 horas. No histórico da tarefa você vê se está pendente, pago ou vencido, e pode copiá-lo ou reenviá-lo. Quando o cliente paga, a cobrança aparece sozinha e o saldo diminui.Usam o Dono e o Gerente; a equipe também, nas suas tarefas, se O entregador pode cobrar estiver ligado. Só aparece com uma conta de produção do Brasil ou da Argentina conectada.",{"id":1352,"title":1353,"titles":1354,"content":1355,"level":263},"\u002Fdocs\u002Fwork\u002Fpayments#cobrar-com-qr","Cobrar com QR",[139],"Para cobrar na hora, na porta ou no balcão, a seção Cobrança de uma tarefa com saldo mostra Cobrar com QR. Abre um QR do Mercado Pago em tela cheia com o valor em destaque. O cliente escaneia com o app do Mercado Pago ou do banco e, quando paga, a tela mostra Pago! e a cobrança fica na tarefa.O valor é calculado pela Fiuit, como no link: o saldo da tarefa.O QR vence em 15 minutos. Você pode cancelá-lo ou gerar outro; se fechar sem cobrar e abrir de novo, aparece o mesmo.Nunca há duas formas de pagamento abertas ao mesmo tempo: se havia um link aberto, pedir o QR o anula, e com um QR aberto não se cria um link.Além da conta de produção do Brasil ou da Argentina, o Mercado Pago pede o endereço do negócio com a localização no mapa (cadastrado em Meu negócio → Dados). Sem isso, Finanças → Cobranças mostra o QR como indisponível e explica o motivo.Quem usa são as mesmas pessoas do link.",{"id":1357,"title":1358,"titles":1359,"content":1360,"level":263},"\u002Fdocs\u002Fwork\u002Fpayments#cobrar-com-point","Cobrar com Point",[139],"Se o negócio tem uma maquininha Point Smart do Mercado Pago, pode cobrar pela tarefa sem digitar o valor na maquininha. Vincule a maquininha em Finanças → Cobranças → Maquininha Point: aparecem as maquininhas da sua conta do Mercado Pago; escolha uma e toque em Usar esta maquininha. O Mercado Pago a coloca em modo integração para receber as cobranças da Fiuit.Na seção Cobrança de uma tarefa com saldo aparece Cobrar com Point. A Fiuit envia para a maquininha o valor que falta e o cliente paga nela com cartão, QR ou Pix.A tela mostra o estado e diz Cobrado! só quando o Mercado Pago confirma o pagamento; aí a cobrança fica na tarefa.A cobrança vence em 15 minutos. Se o cartão for recusado, você pode enviar de novo; também pode cancelar. Se o cliente já estava pagando e o pagamento chega mesmo assim, fica para revisão da equipe.Nunca há duas formas de pagamento abertas ao mesmo tempo: cobrar com Point anula o link ou o QR abertos da tarefa, e vice-versa.Enquanto houver uma cobrança aberta na maquininha, ela não pode ser trocada nem desvinculada. Quem usa são as mesmas pessoas do link; vincular a maquininha é do Proprietário e do Gerente. Disponível com uma conta de produção do Brasil ou da Argentina.",{"id":1362,"title":1363,"titles":1364,"content":1365,"level":263},"\u002Fdocs\u002Fwork\u002Fpayments#cobrar-uma-parte","Cobrar uma parte",[139],"Para dividir uma cobrança (uma quadra que quatro jogadores pagam, alguém que paga com dois cartões), a seção Cobrança de uma tarefa com saldo tem Cobrar uma parte. Digite o valor da parte e escolha o meio de sempre: link, QR, Point ou manual. Repita quantas vezes precisar: cada parte é uma cobrança própria, com valor fixo, e um link de parte pode ser copiado ou enviado separadamente.Podem ficar várias partes abertas ao mesmo tempo, mas somando todas as cobranças abertas nunca se passa do saldo. Se uma parte não couber, o painel mostra quanto falta cobrir e quanto já está em partes abertas.Cobrar com link, QR ou Point sem valor cobram só o que sobra sem parte. As partes não se anulam entre si, nem com o link que o bot envia, nem com um QR ou Point pelo restante.No histórico da tarefa cada parte tem a etiqueta Parte, com valor, meio e status; qualquer cobrança aberta (uma parte ou o link, QR ou Point pelo saldo) pode ser anulada e as outras continuam. Se um link por todo o saldo estiver aberto, Cobrar uma parte explica e oferece anulá-lo ali mesmo.Quando entra a última parte, a tarefa fica paga e as etapas que esperam o pagamento avançam como sempre. Se o total diminuir e uma parte aberta não couber mais, essa parte é anulada e o aviso fica na tarefa. Se alguém pagar a mais (duas pessoas pagam a mesma parte), o excedente fica a favor do cliente. O cliente que reservou continua sendo o responsável: o que não for pago fica como dívida dele.Usam as mesmas pessoas que o link. Cobrar com cartão também cobra só o que sobra sem parte e não anula as partes.",{"id":1367,"title":1368,"titles":1369,"content":1370,"level":263},"\u002Fdocs\u002Fwork\u002Fpayments#últimas-cobranças","Últimas cobranças",[139],"A lista mostra as últimas cobranças do Mercado Pago (sinal, valor, estado e data), da mais nova para a mais antiga. Toque em Abrir para ver a tarefa: de lá se devolve ou se revisa uma cobrança. Sem conta nem cobranças, a lista não aparece.",{"id":1372,"title":1373,"titles":1374,"content":1375,"level":263},"\u002Fdocs\u002Fwork\u002Fpayments#cobrar-com-cartão","Cobrar com cartão",[139],"Quando o cliente está no local ou ao telefone e não consegue escanear um QR nem abrir um link, o Dono e o Gerente podem tocar em Cartão na seção Cobrança de uma tarefa com saldo. É uma cobrança assistida: o painel lembra disso toda vez. Abre o formulário seguro do Mercado Pago com o que falta pagar. Digite os dados como o cliente ditar e não os anote: os campos são do Mercado Pago e o Fiuit não recebe nem guarda os dados do cartão.O Mercado Pago aprova ou recusa na hora. Se recusar, você vê o motivo e pode tentar outro cartão. Se não responder, a cobrança fica verificando e não dá para cobrar de novo até saber o resultado.O valor é calculado pelo Fiuit (o saldo da tarefa). Se o saldo mudou enquanto o cartão era digitado, não se cobra: abra de novo.Cobrar com cartão anula o link ou o QR aberto dessa tarefa. O mesmo envio nunca cobra duas vezes.Com uma conta de teste do Mercado Pago serve para testar com cartões de teste; essas cobranças não entram no saldo.A equipe não usa, e não há API key, MCP nem Wagy para cobrar com cartão: precisa do painel aberto em um navegador.",{"id":1377,"title":1378,"titles":1379,"content":1380,"level":263},"\u002Fdocs\u002Fwork\u002Fpayments#com-a-wagy-a-api-e-o-mcp","Com a Wagy, a API e o MCP",[139],"A Wagy pode contar o estado da conta, quais meios estão disponíveis e por quê, e as últimas cobranças; ela não conecta contas nem pede tokens. Por API e MCP, uma chave com a permissão payments:read lê o mesmo (GET \u002Fv1\u002Fpayments\u002Faccounts\u002Fmercadopago e GET \u002Fv1\u002Fpayments\u002Faccounts\u002Fmercadopago\u002Fcharges).",{"id":1382,"title":1383,"titles":1384,"content":1385,"level":263},"\u002Fdocs\u002Fwork\u002Fpayments#dados-para-pagar-sem-mercado-pago","Dados para pagar sem Mercado Pago",[139],"Em Finanças → Cobranças → Cobrança pelo chat, o Dono ou o Gerente cadastram seus dados para pagar (chave Pix, dados bancários ou instruções), um texto por idioma. Se a cobrança pelo chat estiver em «Perguntar a forma de pagamento» e o Mercado Pago não estiver pronto, o bot mostra ao cliente esses dados como estão com o total do pedido e oferece «Já paguei» ou «Ao receber». «Já paguei» só avisa a equipe («Cliente avisou que pagou», uma vez por pedido): você confere se o dinheiro entrou e registra a cobrança na tarefa. Nunca uma cobrança é registrada sozinha. A Wagy os muda com um plano que você confirma; pelo MCP, configure_pay_info com a permissão settings:write.",{"id":144,"title":143,"titles":1387,"content":1388,"level":257},[],"O percurso de cada tarefa: etapas, dados, botões e avisos. Como montar um fluxo, compartilhá-lo entre serviços e deixar o bot pedir o que falta. Um fluxo é o percurso de uma tarefa: as etapas (por exemplo Reservado → Na cadeira → Pronto), os dados preenchidos em cada uma, os botões que a movem e os avisos ao cliente ou à equipe. O que você vende fica no catálogo (serviços, produtos e planos); cada serviço escolhe um fluxo, e vários serviços podem compartilhar o mesmo. Cada tarefa copia o fluxo do seu serviço ao nascer e avança pelas etapas. Não confundir com as Regras, que fazem coisas sozinhas quando algo acontece. Cada serviço, produto ou plano mostra Etapas: Fluxo de … · Trocar: ali você vê qual fluxo as tarefas seguem, troca e edita. A lista completa fica em Meu negócio → Etapas. Dono e Gerente veem; editar é do Dono.",{"id":1390,"title":1391,"titles":1392,"content":1393,"level":263},"\u002Fdocs\u002Fwork\u002Fservice-flows#montar-um-fluxo","Montar um fluxo",[143],"Em Meu negócio → Etapas, toque em Novo fluxo (parte do fluxo do sistema do modo escolhido, ou da sua cópia se você o editou) ou abra um e toque em Duplicar: a cópia é independente.Adicione ou renomeie etapas com + Adicionar etapa. O Momento diz onde cada uma fica: Antes do atendimento, Em atendimento ou Final.Em cada etapa, + Adicionar dado (texto, número, sim\u002Fnão, opções, data, foto, assinatura, checklist…) e escolha Quem vê: Equipe, Cliente ou Ambos.Com Adicionar botão para outra etapa você define como se avança: o destino, quem toca e quais dados ele exige.Teste com ▶ Testar fluxo (veja Testar um fluxo) e toque em Salvar.",{"id":1395,"title":1396,"titles":1397,"content":1398,"level":263},"\u002Fdocs\u002Fwork\u002Fservice-flows#editar-o-fluxo-do-sistema","Editar o fluxo do sistema",[143],"A Fiuit traz três fluxos do sistema: Fluxo de serviço, Fluxo de pedido e Fluxo de assinatura. Para mudar um, toque em Editar etapas no serviço (ou Editar no fluxo): você edita a cópia do seu negócio, usada por todos os serviços que usavam o original e pelos novos desse modo. Voltar ao original devolve esses serviços ao fluxo do sistema. As tarefas abertas não se movem: terminam com as etapas que tinham. Sua cópia não é apagada: fica como «(anterior)», com a etiqueta Sem uso, caso queira usá-la de novo.Um fluxo que nenhum serviço usa aparece como Sem uso em Etapas e pode ser Apagado se nunca teve tarefas; se teve, desative-o.",{"id":1400,"title":1401,"titles":1402,"content":1403,"level":263},"\u002Fdocs\u002Fwork\u002Fservice-flows#responsável-por-cada-etapa","Responsável por cada etapa",[143],"Cada etapa pode ter um responsável: em + Adicionar → Automático → Responsável pela etapa você escolhe uma pessoa ou uma equipe. Sem responsável, a etapa continua com o mesmo de antes (é assim que ficam todos os fluxos que você já tinha). Por exemplo, numa oficina: Recepção → equipe «Balcão»; Diagnóstico e Reparo → equipe «Mecânicos»; Pronto para retirar → «Balcão». Pessoa: ao entrar na etapa, a tarefa passa para essa pessoa.Equipe: é atribuída do jeito que a equipe distribui (revezando, a menos ocupada ou fixa); se quem a tinha já é da equipe, continua com ela. Nas tarefas sem horário, uma equipe que distribui com «quem pegar» deixa a tarefa para a equipe até alguém pegar.Horários agendados: o horário nunca muda. Se o novo responsável não tiver lugar na agenda, a tarefa continua com quem a tinha e o dono e os gerentes recebem o aviso Revisar atribuição. O mesmo se a equipe ou a pessoa não existirem mais ou estiverem inativas: a tarefa nunca fica travada.Avisos e visões: o novo responsável recebe o aviso de tarefa atribuída pelo seu canal (painel, Telegram ou WhatsApp da equipe) e a vê em «Minhas tarefas», nas visões atribuídas e no Focus. Não há permissões novas: a equipe vê o que já via e o dono e os gerentes veem tudo.Histórico: a tarefa registra («Passou para Mecânicos ao entrar em Diagnóstico»).▶ Testar fluxo mostra em «O que aconteceria» para quem a tarefa vai em cada etapa.",{"id":1405,"title":1406,"titles":1407,"content":1408,"level":263},"\u002Fdocs\u002Fwork\u002Fservice-flows#um-fluxo-para-vários-serviços","Um fluxo para vários serviços",[143],"No serviço, Editar → Etapas → Trocar mostra o fluxo que ele usa e deixa escolher outro do mesmo modo. Se o corte e o corte com barba são atendidos do mesmo jeito, atribua o mesmo fluxo: você monta uma vez e muda para todos. Escolher outro fluxo num serviço muda só as tarefas novas; as abertas seguem com o delas.Salvar um fluxo compartilhado publica uma versão nova para todos os seus serviços. Antes de confirmar você vê quais serviços o usam e quantas tarefas abertas mudam em cada um.",{"id":1410,"title":1411,"titles":1412,"content":1413,"level":263},"\u002Fdocs\u002Fwork\u002Fservice-flows#o-bot-pede-ao-cliente-o-que-falta","O bot pede ao cliente o que falta",[143],"Se a etapa de uma tarefa tem dados ou botões que o Cliente vê, e a tarefa nasceu no chat, o bot pede na mesma conversa, um por um, e move a tarefa quando estiverem completos. Por exemplo, uma etapa «Foto de referência»: o cliente agenda um corte, o bot pede a foto, guarda na tarefa e passa para a etapa seguinte. A equipe vê em Hoje e cobra como sempre. Se o cliente pergunta outra coisa no meio, o bot responde e depois volta: «Seguimos com o seu …?».O bot nunca toca botões da equipe, não cobra nem define valores e não cancela sem um SIM do cliente.Passadas 24 horas desde que a tarefa entrou na etapa, o bot para de pedir e a equipe continua.Em um dado de texto que o cliente responde, você pode ativar Guardar o áudio do cliente: se ele responder com uma nota de voz pelo WhatsApp ou Telegram, o áudio fica na tarefa (com um player e o que ele disse embaixo) e é apagado com a tarefa ou quando o cliente é apagado. Se você não ativar, o áudio é transcrito e descartado.A foto é pedida pelo WhatsApp, pelo Instagram e pelo Telegram. Pelo chat do site, o bot avisa que esse dado é preenchido com a equipe. A assinatura sempre é preenchida com a equipe.",{"id":1415,"title":1416,"titles":1417,"content":1418,"level":263},"\u002Fdocs\u002Fwork\u002Fservice-flows#wagy-e-os-fluxos","Wagy e os fluxos",[143],"Pergunte à Wagy «que fluxo o corte usa?» ou «quais etapas tem o fluxo de coloração?»: ela mostra as etapas e quais serviços o usam. Também pode atribuir um fluxo a um ou vários serviços, renomear um fluxo próprio, adicionar, tirar ou mover etapas e escolher o responsável por uma etapa («que o Diagnóstico fique com a equipe Mecânicos»), sempre com um plano que você confirma. Criar fluxos e editar dados, botões ou avisos se faz no painel.",{"id":1420,"title":1203,"titles":1421,"content":1422,"level":263},"\u002Fdocs\u002Fwork\u002Fservice-flows#para-desenvolvedores",[143],"Os fluxos são lidos e publicados pela API (\u002Fv1\u002Fflows) e pelo MCP (list_flows, get_flow); o fluxo de um serviço é o seu flow_id. O responsável por cada etapa é on_enter.route (resource ou group). Também pode ser escrito como assignee na etapa ({\"resource\": id}, {\"group\": id} ou null). Veja Endpoints.",{"id":1424,"title":1425,"titles":1426,"content":1427,"level":263},"\u002Fdocs\u002Fwork\u002Fservice-flows#encerramentos-por-motivo","Encerramentos por motivo",[143],"Configure os motivos em Meu negócio → Etapas. Ao encerrar, escolha um ou Outro com uma explicação. Cancelar permite omitir. Em Resultados você vê a quantidade por fluxo, saída e motivo.",{"id":148,"title":147,"titles":1429,"content":1430,"level":257},[],"Lance uma despesa em três toques em Finanças, veja entradas e saídas numa só lista e aprove o que a sua equipe lança. As despesas e a lista de Movimentações ficam em Finanças. O que você lança soma ao que saiu no período; o que você recebe, ao que entrou.",{"id":1432,"title":1433,"titles":1434,"content":1435,"level":263},"\u002Fdocs\u002Fwork\u002Fexpenses#as-quatro-abas-de-finanças","As quatro abas de Finanças",[147],"Início: no topo, Ficou em destaque e abaixo Entrou e Saiu do período; você escolhe Hoje, Semana ou Mês. O gráfico mostra os dois períodos anteriores, o atual (até hoje) e o seguinte. Cada período tem o que já foi feito, o que falta de certo (as despesas fixas que vencem) e o previsto (o saldo ainda sem pagar, a comissão da equipe estimada e as despesas aguardando aprovação). Toque em um período e os valores do topo mudam. O previsto é só uma soma de coisas com data: não estima vendas novas nem promete nada. Se não houver nada agendado para o período seguinte, ele não aparece. Embaixo ficam A receber e Em atraso (mais de 30 dias), que somem quando valem zero.Movimentações: uma só tabela com entradas e saídas, com os totais Entrou, Saiu e Ficou do filtro. No celular é uma lista compacta.Caixa: o caixa em dinheiro de cada pessoa da equipe, com o que recebeu em dinheiro, o que repassou e o seu fechamento do dia. É o mesmo relatório Caixa de Relatórios, a um toque.Relatórios: um seletor com todos os relatórios: DRE, Fluxo de caixa, Vendas por mês, Comissões da equipe, Recebimentos, Caixa, A receber, os relatórios por cliente, hora, zona e canal, Atenção e saturação e o Pacote para o contador. Cada relatório tem seu próprio link e seu botão Exportar.",{"id":1437,"title":1438,"titles":1439,"content":1440,"level":263},"\u002Fdocs\u002Fwork\u002Fexpenses#lançar-uma-despesa","Lançar uma despesa",[147],"Em qualquer tela de Finanças toque em + Despesa: Digite o valor (o teclado numérico abre sozinho). Em guaranis e pesos chilenos vai sem centavos.Se quiser, escreva uma ou várias etiquetas (por exemplo «moto» ou «loja centro»). Uma etiqueta que você já usou preenche sozinha a categoria.Toque numa categoria (se a etiqueta não a preencheu, ou para trocá-la): no topo aparecem as 4 que você mais usa e a última que escolheu; as demais estão em Outras.Toque em Salvar. Opcional: Foto do comprovante (foto ou PDF). Em Mais dados você escolhe a data (hoje por padrão; nunca uma futura), o recurso (sem recurso fica como Geral), o serviço, como foi paga, para quem e uma nota. Depois de salvar você pode tocar em Repetir todo mês (a mesma despesa é lançada sozinha no mesmo dia de cada mês, a partir do mês que vem) ou Lançar outra, que mantém a última categoria e o último recurso. Sem conexão, o que você digita fica como rascunho nesse dispositivo e volta ao abrir + Despesa de novo; só é lançado quando há conexão e você toca em Salvar. Um mesmo rascunho nunca é lançado duas vezes.",{"id":1442,"title":1443,"titles":1444,"content":1445,"level":263},"\u002Fdocs\u002Fwork\u002Fexpenses#etiquetas","Etiquetas",[147],"As categorias são fixas (não se renomeiam): delas saem a Demonstração de resultados e o Fluxo de caixa. Para organizar suas despesas do seu jeito, use etiquetas: Você as escreve ao lançar ou corrigir uma despesa; as novas são criadas ali mesmo, sem outra tela. Uma despesa pode ter várias.Cada etiqueta lembra a última categoria com que você a usou e a preenche sozinha da próxima vez (dá para trocar).Em Movimentações, toque na etiqueta de uma despesa (ou escolha em Ver → Etiqueta) para ver só essas despesas e o total, «despesas com esta etiqueta». Como uma despesa pode ter várias, esses totais não se somam entre si.Em Movimentações → Despesas → Etiquetas, o Dono e o Gerente renomeiam, juntam duas em uma ou apagam etiquetas. Apagar uma etiqueta a tira das despesas; as despesas não são apagadas.",{"id":1447,"title":1448,"titles":1449,"content":1450,"level":263},"\u002Fdocs\u002Fwork\u002Fexpenses#quem-lança-e-quem-aprova","Quem lança e quem aprova",[147],"Dono e Gerente lançam despesas que somam na hora.Equipe lança as suas despesas e elas ficam pendentes de aprovação: não somam até o Dono ou um Gerente aprovar. Cada pessoa da equipe vê só as suas e pode corrigi-las enquanto seguem pendentes.No topo de Movimentações, o Dono e o Gerente veem Despesas para aprovar com a quantidade e a soma. Toque em Aprovar ou Recusar (com um motivo). Ninguém aprova o que lançou.",{"id":1452,"title":1453,"titles":1454,"content":1455,"level":263},"\u002Fdocs\u002Fwork\u002Fexpenses#movimentações","Movimentações",[147],"Finanças → Movimentações mostra entradas e saídas do período numa só lista, cada uma com o seu sinal: + entra, − sai. Os chips de cima filtram com um toque: Tudo: recebimentos, despesas e comissões, sem as despesas recusadas nem anuladas (essas aparecem só em Despesas).Recebimentos: recebimentos, anulações, devoluções e o caixa.Despesas: as despesas lançadas. As pendentes, recusadas ou anuladas aparecem marcadas e não somam.Comissões: o que o Mercado Pago e a Fiuit cobram em cada recebimento, e o total calculado das comissões da equipe, com o link para Comissões. A busca também encontra para quem foi paga e a nota da despesa. Toque em Detalhe numa despesa para ver o comprovante, Corrigir (cada mudança fica no histórico: quem, quando, antes e depois) ou Anular com um motivo. Uma despesa nunca é apagada e não há fechamento do mês.",{"id":1457,"title":1458,"titles":1459,"content":1460,"level":263},"\u002Fdocs\u002Fwork\u002Fexpenses#pelo-bot-da-equipe-no-telegram","Pelo bot da equipe no Telegram",[147],"Sua equipe também lança despesas pelo Telegram da equipe: «gastei 5000 em insumos», \u002Fdespesa ou a foto do comprovante, que fica anexada. O bot pergunta o que falta, mostra o valor e você confirma com um botão; um valor alto pede uma segunda confirmação. O que a Equipe lança fica pendente de aprovação, igual pelo painel.",{"id":1462,"title":1378,"titles":1463,"content":1464,"level":263},"\u002Fdocs\u002Fwork\u002Fexpenses#com-a-wagy-a-api-e-o-mcp",[147],"A Wagy lança uma despesa conversando: diga «gastei 5000 em insumos» (ou «ontem paguei 80 de gasolina») e ela mostra a despesa com categoria, valor, dia e forma de pagamento para você confirmar uma vez. Se você não disse o valor ou a categoria, ela pergunta; nunca inventa. Se o valor for alto para o seu negócio (a partir do dobro do que você paga por mês no plano) ou já houver uma igual nesse dia, antes ela pede para confirmar com um botão. No aluguel ou nas contas, pergunta se repete todo mês. Também anula uma («anule a despesa de 5000 de hoje, estava repetida») e responde «quanto gastei este mês com publicidade?». Também entende etiquetas: «gastei 3000 na moto» usa a etiqueta «moto» e a sua categoria, «quanto gastei na moto este mês?» filtra por ela e «junte moto com motos» propõe juntá-las antes de fazer. Aprovar as despesas da equipe é feito em Movimentações. Por API e MCP, GET \u002Fv1\u002Fpayments\u002Ffinance\u002Fmovements lista o mesmo com group (collections, expenses ou commissions) e GET \u002Fv1\u002Fpayments\u002Fexpenses\u002F{id} (expense_get) traz uma despesa; lançar é expense_record, aprovar expense_approve e anular expense_void, sempre com confirmação.",{"id":157,"title":156,"titles":1466,"content":1467,"level":257},[],"Receba avisos de trabalho no Telegram, pegue tarefas com um toque e abra seu dia no Mini App \"Meu dia\". O Telegram da equipe é a forma mais rápida de cada pessoa do negócio saber o que é com ela: uma tarefa atribuída, um trabalho sem dono, um lembrete ou o resumo do dia. Usa-se pelo celular, sem instalar nada além do Telegram. Existe um único bot da Fiuit para todas as equipes. Não é o bot do seu negócio: esse é o que conversa com seus clientes (Telegram de clientes). Os dois são independentes e não se misturam.",{"id":1469,"title":1470,"titles":1471,"content":1472,"level":263},"\u002Fdocs\u002Fteam\u002Ftelegram-team#vincular-seu-telegram","Vincular seu Telegram",[156],"O vínculo é por pessoa, não por negócio: você faz uma vez e vale para todos os negócios aos quais tem acesso. No painel, abra Minha conta (seu nome, no rodapé do menu) e toque em Vincular Telegram.Toque em Abrir Telegram e, no bot, em Iniciar. O bot confirma que ficou vinculado.Para desvincular, escreva \u002Fsair ao bot ou desvincule em Minha conta. O link de vínculo é de uso único e vence em 15 minutos. Se venceu, gere outro. Se você não vê a opção Vincular Telegram, o bot da equipe ainda não está ativado no seu ambiente: avise-nos.",{"id":1474,"title":1475,"titles":1476,"content":1477,"level":263},"\u002Fdocs\u002Fteam\u002Ftelegram-team#adicionar-alguém-novo-pelo-telegram","Adicionar alguém novo pelo Telegram",[156],"Se a pessoa não está na equipe e você não tem o número, convide pelo Telegram: em Meu negócio → Equipe e recursos → Adicionar → Convidar, escolha Canal: Telegram, escreva o nome e salve. Mostramos um link uma única vez para copiar ou compartilhar: ao abri-lo no Telegram e tocar em Iniciar, a pessoa entra na equipe e fica vinculada. Funciona uma vez e vence em 48 horas. Só para a equipe operacional; os outros papéis são convidados por e-mail. O WhatsApp continua sendo o canal padrão. O link é usado pela primeira conta do Telegram que o abrir, então compartilhe só com essa pessoa. Quando alguém o usa, avisamos você com o nome da conta do Telegram, que também aparece na linha e na ficha dela em Pessoas; se não for quem você esperava, desative-a. Se o link foi compartilhado demais antes de ser usado, cancele-o: em Convites pendentes, Cancelar convite.",{"id":1479,"title":1480,"titles":1481,"content":1482,"level":263},"\u002Fdocs\u002Fteam\u002Ftelegram-team#quais-avisos-você-recebe","Quais avisos você recebe",[156],"AvisoQuando chegaTarefa atribuídaAlguém atribuiu uma tarefa a vocêTrabalho sem donoHá uma tarefa de fila que seu equipe pode pegarLembreteFalta pouco para um atendimento (aviso prévio da equipe)Relatório diárioResumo do seu diaMudançasUma tarefa sua foi cancelada ou mudouDespesa para aprovarSó Dono e Gerente: alguém da equipe lançou uma despesa que espera a sua aprovação (valor e categoria; nunca a nota) Os avisos trazem botões para agir sem abrir o painel: Abrir abre o Mini App direto naquela tarefa. Numa despesa para aprovar, abre Finanças → Movimentações, onde fica Despesas para aprovar.Pegar e Concluir executam a ação com as suas permissões, igual ao painel. Se outra pessoa pegou o trabalho antes, o bot avisa que já foi pego.Os avisos nunca incluem dados de outro negócio. Os lembretes, o relatório diário e o aviso à equipe saem dos seus lembretes e regras. Se você ativa um, a equipe o recebe por este canal.",{"id":1484,"title":1485,"titles":1486,"content":1487,"level":263},"\u002Fdocs\u002Fteam\u002Ftelegram-team#escolha-como-recebê-los","Escolha como recebê-los",[156],"Em Minha conta → Preferências de avisos você define: Canal preferido: automático, Telegram, WhatsApp ou e-mail. No automático, Telegram se você o tem vinculado; se não, WhatsApp (com seu vínculo verificado) e, se também não, e-mail.O que silenciar: atribuídas, sem dono, lembretes, relatório diário, mudanças ou (Dono e Gerente) despesas para aprovar. Se o Telegram não consegue entregar um aviso (por exemplo, você bloqueou o bot), o aviso cai para o próximo canal.",{"id":1489,"title":1490,"titles":1491,"content":1492,"level":263},"\u002Fdocs\u002Fteam\u002Ftelegram-team#comandos","Comandos",[156],"ComandoO que faz\u002FstartVincula sua conta (com o link de Minha conta)\u002FnextSua próxima tarefa com todo o detalhe: cliente, pedido, endereço, Google Maps e Waze, e os botões da etapa. Ao concluir mostra a seguinte\u002Fnext5Suas próximas 5 tarefas, com Iniciar ou Ver para escolher a ordem\u002FlivresTarefas sem responsável que você pode assumir, com Assumir\u002FhojeMostra seu dia, por negócio\u002FdespesaLança uma despesa: escreva («gastei 5000 em insumos») ou envie a foto do comprovante\u002FsairDesvincula seu Telegram\u002FajudaLembra como assumir uma tarefa, avançar de etapa, compartilhar sua localização em tempo real e os comandos",{"id":1494,"title":1495,"titles":1496,"content":1497,"level":263},"\u002Fdocs\u002Fteam\u002Ftelegram-team#sua-próxima-tarefa-com-next","Sua próxima tarefa com \u002Fnext",[156],"\u002Fnext mostra uma tarefa só: a que você já tem em andamento ou, se não houver, a próxima pelo horário de hoje (o atrasado primeiro; o que não tem horário, no final). Você toca Iniciar, A caminho ou Concluir (os nomes são os das etapas do seu negócio) e o bot manda a seguinte sozinho, até não restar nenhuma. Se para avançar faltam dados (uma foto, um campo obrigatório, o pagamento ou sua localização), o cartão diz o que falta e Abrir leva à tarefa no Mini App. Cancelar ou marcar que o cliente não estava também se faz pelo Mini App. Os botões só fazem o que o seu papel permite, e um botão antigo de uma tarefa que já mudou não a avança: mostra como ela está agora.",{"id":1499,"title":1438,"titles":1500,"content":1501,"level":263},"\u002Fdocs\u002Fteam\u002Ftelegram-team#lançar-uma-despesa",[156],"Escreva para o bot «gastei 5000 em insumos» (ou «paguei 80 de gasolina ontem», ou só «despesa 50 gasolina»), use \u002Fdespesa ou envie a foto do comprovante, com ou sem texto. A foto fica como comprovante da despesa; o bot não lê o comprovante, então se você não escreveu o valor ele pergunta quanto foi. Se o valor não for entendido (por exemplo, dois números ou decimais em guaranis), pergunta quanto foi no total. Sempre na moeda do seu negócio, sem conversão.Se não reconhecer a categoria, você escolhe uma com um botão. Se você trabalha em vários negócios, primeiro escolhe em qual.Mostra a despesa com o valor, a categoria e o dia, e você confirma com Confirmar (ou Mudar a categoria ou Cancelar).Se o valor for alto para o seu negócio (a partir do dobro do que ele paga por mês do plano), pede uma segunda confirmação. Se já houver uma despesa igual nesse dia, o cartão avisa para você não lançar duas vezes. Tocar Confirmar duas vezes não lança duas despesas. O que a Equipe lança fica pendente de aprovação até o Dono ou um Gerente aprovar (eles recebem o aviso Despesa para aprovar); o do Dono e do Gerente soma na hora. Os papéis que não lançam despesas recebem um aviso e nada é lançado.",{"id":1503,"title":1504,"titles":1505,"content":1506,"level":263},"\u002Fdocs\u002Fteam\u002Ftelegram-team#mini-app-meu-dia","Mini App \"Meu dia\"",[156],"O botão de menu do bot (à esquerda do campo de texto) abre Meu dia: o painel em formato compacto dentro do Telegram, sem pedir senha. Mostra o mesmo que você veria no painel conforme seu papel: Hoje e Trabalho (com \"Minhas\" por padrão para a equipe operacional) e um seletor de negócio se você tem vários. A sessão dura 60 minutos e só acessa Hoje, Trabalho e as tarefas. Não dá acesso a chaves de API, equipe, canais nem webhooks.Ela se encerra sozinha se você desvincula o Telegram ou se é removido do negócio.",{"id":1508,"title":1509,"titles":1510,"content":1511,"level":263},"\u002Fdocs\u002Fteam\u002Ftelegram-team#grupo-da-equipe","Grupo da equipe",[156],"Além dos avisos pessoais, o negócio pode ter um grupo do Telegram da equipe onde as tarefas sem responsável são publicadas com o botão Assumir. Ganha quem tocar primeiro: se duas pessoas tocam ao mesmo tempo, só uma fica atribuída e a outra vê que já foi assumida. Um Dono ou Gerente com o Telegram já vinculado adiciona o bot da equipe ao grupo.No grupo, escreve \u002Fvincular e toca Confirmar (se administra vários negócios, escolhe qual). Só quem pediu pode confirmar.Opcional, em um grupo com tópicos: dentro de um tópico, \u002Ftopico e escolha a zona ou o equipe de trabalho cujas tarefas vão para lá. As demais vão para o tópico geral. Comando do grupoO que faz\u002FvincularVincula o grupo ao negócio (com confirmação)\u002FtopicoEscolhe qual zona ou equipe publica neste tópico\u002FdesvincularDeixa de publicar tarefas no grupo Só podem Assumir as pessoas do negócio com o Telegram vinculado e permissão para assumir tarefas (e, se forem da equipe operacional, dentro do seu equipe e zona). Para os demais o bot não responde.A publicação mostra só o serviço, o horário e a zona: nunca o cliente, o endereço nem o telefone. Quando alguém assume, a mensagem diz quem e perde o botão.Há um grupo por negócio e um negócio por grupo. Dá para ver e desvincular em Meu negócio → Equipe e recursos → ficha da pessoa; também se corta se você remover o bot do grupo.O bot publica no máximo 20 mensagens por minuto no grupo; o resto espera na fila.Ao substituir o grupo ou migrá-lo para supergrupo, as tarefas sem responsável são publicadas novamente no grupo vinculado. Os botões de mensagens anteriores respondem «Este grupo não está mais vinculado» e não atribuem a tarefa.",{"id":1513,"title":1514,"titles":1515,"content":1516,"level":263},"\u002Fdocs\u002Fteam\u002Ftelegram-team#limites-e-segurança","Limites e segurança",[156],"No privado, o bot só fala com uma pessoa; no grupo da equipe só lê os seus comandos e botões.O Telegram admite 1 mensagem por segundo por chat; se há muitos avisos juntos, os seguintes esperam na fila e chegam do mesmo jeito.O vínculo e o Mini App são sempre validados no servidor. Um link usado, vencido ou de outra conta responde com a mesma mensagem neutra. Para saber o que cada pessoa vê e pode fazer, veja Papéis e permissões. Para desenvolvedores: os endpoints GET\u002FDELETE \u002Fme\u002Ftelegram, POST \u002Fme\u002Ftelegram\u002Flink e GET\u002FPUT \u002Fme\u002Fnotification-preferences são da conta do usuário (sessão do painel) e não se usam com chaves de API.",{"id":161,"title":160,"titles":1518,"content":1519,"level":257},[],"O que cada papel (Dono, Gerente, Equipe e Leitura) pode ver e fazer, como convidar a equipe e como trabalhar com vários projetos. Cada pessoa entra em um negócio (um projeto) com um papel. O papel decide quais telas vê e o que pode alterar. Quem controla é o servidor: esconder um botão no painel não é a única barreira.",{"id":1521,"title":1522,"titles":1523,"content":1524,"level":263},"\u002Fdocs\u002Fteam\u002Froles#os-papéis","Os papéis",[160],"PapelPara quemO que fazDono (owner)Quem administra a contaTudo, incluindo chaves de API, equipe e canaisGerente (manager)Quem opera o negócioOpera o negócio: catálogo, equipe, clientes, bot, regras, canais e webhooks. Não administra as chaves de APIPessoas (staff)Quem atende ou entregaVê e trabalha o que é seu: suas tarefas e o que seu equipe pode pegarLeitura (viewer)Sócios, contadoresVê Hoje, Trabalho e conversas; não altera nadaColaborador (collaborator)O parceiro da Fiuit que montou seu projetoConfigura e opera como um Gerente, mas não vê dinheiro (cobranças, saldos, Finanças, pagamentos, Mercado Pago, plano e uso) nem administra a equipe. Ninguém o convida: fica assim quando o Dono aceita o projeto. Veja Parceiros",{"id":1526,"title":1527,"titles":1528,"content":1529,"level":263},"\u002Fdocs\u002Fteam\u002Froles#o-que-cada-um-vê-no-painel","O que cada um vê no painel",[160],"SeçãoDonoGerenteEquipeLeituraHoje e TrabalhoSimSimO que é seuSim (leitura)ConversasSimSimSó as suasSim (leitura)Catálogo, Equipe, ClientesSimSimNãoNãoBot e RegrasSimSimNãoNãoConfigurações, Canais, IA e usoSimSimNãoNãoWebhooksSimSimNãoNãoChaves de API (Desenvolvedores)SimNãoNãoNão A equipe busca clientes com uma visão mínima: nome, telefone parcialmente oculto, etiquetas e faltas, com um mínimo de caracteres e um limite de resultados. Um entregador vê o destino exato de uma entrega só depois de pegá-la; antes vê uma zona aproximada.",{"id":1531,"title":1532,"titles":1533,"content":1534,"level":263},"\u002Fdocs\u002Fteam\u002Froles#convidar-a-equipe","Convidar a equipe",[160],"Em Pessoas você pode convidar de duas formas: Por mensagem (WhatsApp): só para o papel Equipe, sem senha. Você informa nome e número (com código do país) e o convite chega pelo chat; ao aceitar, esse número fica vinculado. Enquanto não aceitar, aparece como Convite pendente (vence em 48 horas) e do número só se vê o final.Por e-mail: para Dono, Gerente, Equipe ou Leitura. A pessoa aceita o convite e cria sua senha. A uma pessoa da equipe você associa um ou mais recursos (sua agenda, seu veículo): isso define quais tarefas ela vê e quais pode pegar. Você pode mudar o papel ou remover alguém quando quiser; as sessões e o Telegram dessa pessoa deixam de funcionar na hora.",{"id":1536,"title":1537,"titles":1538,"content":1539,"level":301},"\u002Fdocs\u002Fteam\u002Froles#limites-por-plano","Limites por plano",[160,1532],"Contam como operadores as pessoas com acesso ao painel e os convites pendentes. As pessoas agendáveis que não têm conta (recursos) não contam. Solo: 2 operadores: você e uma pessoa com o papel Equipe. Não inclui Gerente nem outros papéis.Negócio: 5. Pro: 20. Business: sob medida. Em Pessoas você vê o contador («Pessoas com acesso: 1 de 2»). Ao chegar ao limite, Convidar fica desativado com um texto curto e um link para Configurações → Plano para mudar de plano. Para reduzir o plano é preciso remover antes o que superar o limite do plano novo; nada é apagado automaticamente.",{"id":1541,"title":1542,"titles":1543,"content":1544,"level":301},"\u002Fdocs\u002Fteam\u002Froles#links-de-agenda-da-equipe","Links de agenda da equipe",[160,1532],"Cada pessoa da equipe com recursos tem um link de agenda para abrir «Meu dia» sem fazer login. Em Meu negócio → Equipe e recursos → ficha da pessoa você vê se há um ativo, até quando vale e quando foi usado pela última vez. Dali você pode: Reenviar o de hoje: o link vigente chega pelo chat dela (se havia outro, ele deixa de valer). Vai pelo WhatsApp verificado ou, se ela não tiver, pelo bot de equipe do Telegram ao qual está vinculada; o canal precisa estar conectado. Se ela acabou de receber um, aguarde um minuto.Revogar e encerrar sessões: o link e as sessões abertas com ele param de funcionar na hora. Em «Meu dia» com link, a pessoa pode avançar as tarefas mesmo quando a etapa pede um formulário, a localização ou uma confirmação, e ler e adicionar comentários internos (o cliente nunca os recebe). Cobrança, atribuição e fotos ou assinaturas são feitas pelo painel ou pelo chat. O link é de uso único e vale o dia da agenda; se já foi aberto em outro dispositivo, venceu ou foi revogado, a pessoa vê um aviso claro e pede outro escrevendo «minha agenda» no chat do negócio. A Wagy pode propor o convite por mensagem (nome e WhatsApp) com o mesmo fluxo de confirmação.",{"id":1546,"title":1547,"titles":1548,"content":1549,"level":263},"\u002Fdocs\u002Fteam\u002Froles#vários-projetos","Vários projetos",[160],"Uma conta pode ter vários projetos (negócios ou unidades), cada um com sua equipe, sua agenda, seus canais e seus dados, totalmente isolados. O número de projetos depende do plano. Com mais de um projeto, o seletor de projeto do painel permite alternar entre eles.Só o Dono da conta pode criar um projeto novo, a partir de um modelo por segmento (barbearia, estética, clínica, restaurante ou entregas).Seu papel pode ser diferente em cada projeto.",{"id":1551,"title":1552,"titles":1553,"content":1554,"level":263},"\u002Fdocs\u002Fteam\u002Froles#suporte-da-plataforma","Suporte da plataforma",[160],"Quando você precisa de ajuda, a equipe da Fiuit pode entrar no seu projeto de forma temporária: Sempre com um motivo escrito e por no máximo 60 minutos.No modo leitura (vê o que um Gerente veria, sem alterar nada) ou assistência (pode ajustar catálogo, horários e configuração do negócio).Nunca pode ver nem alterar chaves de API, senhas, segredos de canais, cobrança nem a equipe, nem enviar mensagens aos seus clientes.Cada entrada e saída fica registrada e o Dono as vê na atividade do negócio, com quem, em que modo e por quê.",{"id":1556,"title":1557,"titles":1558,"content":1559,"level":263},"\u002Fdocs\u002Fteam\u002Froles#chaves-de-api-e-permissões","Chaves de API e permissões",[160],"As chaves de API não têm papel: têm scopes (permissões restritas, como slots:read ou bookings:write) e só o Dono as cria. Veja Autenticação.",{"id":1561,"title":1562,"titles":1563,"content":1564,"level":263},"\u002Fdocs\u002Fteam\u002Froles#cancelar-a-assinatura","Cancelar a assinatura",[160],"Só o Dono pode cancelar a assinatura Fiuit do projeto: em Configurações → Plano, toque em Cancelar assinatura e confirme. Sem ligações nem formulários. O plano não é renovado e continua até o fim do período já pago; enquanto o projeto não estiver encerrado você pode tocar em Desfazer cancelamento. Cancelar não apaga dados. Mais detalhes em E se…? Assinatura e cancelamento.",{"id":1566,"title":1567,"titles":1568,"content":1569,"level":263},"\u002Fdocs\u002Fteam\u002Froles#onde-organizo-pessoas-recursos-e-catálogo","Onde organizo pessoas, recursos e catálogo?",[160],"Em Meu negócio você tem Dados, Catálogo, Equipe e recursos e Etapas. Equipe e recursos reúne em uma só tela Pessoas, Equipes, Zonas e locais e equipamentos, cada um em sua aba. Equipes de trabalho reúne pessoas e recursos, com seus serviços e zonas; o papel Equipe se refere ao acesso ao painel. Cadastrar uma pessoa em Recursos não exige conta nem convite. «Convidar para o painel» é opcional, na ficha. O papel e o acesso ao painel são editados na ficha de cada pessoa; os planos reúnem seus assinantes.",{"id":1571,"title":1572,"titles":1573,"content":1574,"level":263},"\u002Fdocs\u002Fteam\u002Froles#fazer-uma-pessoa-receber-tarefas","Fazer uma pessoa receber tarefas",[160],"Em Meu negócio → Equipe e recursos, abra o perfil e ative Recebe tarefas. Escolha os grupos onde atende (com os serviços de cada grupo) e revise o horário: por padrão usa o do negócio, ou você pode informar um próprio. Confirme para criar a agenda já vinculada, com seu nome e foto. O papel não muda. Pessoas e o recurso mostram o mesmo perfil: acesso e agenda pertencem à mesma pessoa. Se já recebe tarefas, o interruptor está ativo. Desvincular fica visível junto ao interruptor somente para corrigir uma identidade ou duplicado; não é necessário no uso normal. Uma capacidade compartilhada ou um veículo não são «a mesma pessoa». Você também pode dizer ao Wagy «Sebastião também recebe tarefas» e confirmar a proposta.",{"id":165,"title":164,"titles":1576,"content":1577,"level":257},[],"O sino do painel (com as Novidades da Fiuit incluídas), o push no celular, quais avisos você recebe e por onde, o horário de silêncio e as regras do projeto. As notificações avisam o que precisa de atenção sem que você precise olhar o painel o tempo todo. Elas coincidem com o que você vê em Requer atenção no Inbox e em Hoje.",{"id":1579,"title":1580,"titles":1581,"content":1582,"level":263},"\u002Fdocs\u002Fteam\u002Fnotifications#o-sino","O sino",[164],"No painel, o sino reúne num só lugar as suas notificações e as Novidades da Fiuit (o que está saindo, no seu idioma), com uma contagem combinada de pendentes que se atualiza sozinha, sem recarregar. Se não há nada pendente, você vê só o sino, sem número. Toque no sino para ver a lista: cada notificação leva ao que pede atenção (a conversa, a tarefa, o canal ou a IA) e cada entrada de Novidades abre seu detalhe.No celular, o sino abre como uma folha clara que fecha com Escape ou deslizando; as sugestões de Wagy ficam ao lado, sem cobrir seus cartões.Com Marcar todas como lidas você zera. As lidas são apagadas em 14 dias e todas em 60. O histórico completo das Novidades está em fiuit.com\u002Fnovidades.",{"id":1584,"title":1585,"titles":1586,"content":1587,"level":263},"\u002Fdocs\u002Fteam\u002Fnotifications#quais-avisos-existem","Quais avisos existem",[164],"AvisoQuando chegaUma conversa precisa de atençãoO bot encaminhou ou falhou e ninguém respondeu aindaTarefa atribuída a mimAlguém atribuiu uma tarefa a vocêTarefa sem responsávelHá uma tarefa que seu equipe ou zona pode assumirCanal caído ou com erroUm canal de mensagens desconectouIA pausada ou cota esgotadaA IA do projeto foi pausada ou a cota do mês acabouPossível spamUm canal pausado descartou muitas mensagens em um diaTarefa atrasadaUma tarefa com horário passou do fim mais a tolerância e continua sem ser encerrada (responsável, Dono e Gerente)Sugestão do WagyO Wagy tem algo a propor",{"id":1589,"title":1590,"titles":1591,"content":1592,"level":263},"\u002Fdocs\u002Fteam\u002Fnotifications#escolher-o-que-você-recebe-e-por-onde","Escolher o que você recebe e por onde",[164],"Em Minha conta → Notificações você escolhe, para cada aviso, se quer no painel, como push, por Telegram ou por e-mail. Ali também define: Horário de silêncio: dentro da faixa nada sai fora do painel (nem push, nem Telegram, nem e-mail). As notificações continuam no sino.Resumo diário por e-mail: um e-mail por dia com o que ficou sem ler. Vem desligado. Se o seu ambiente ainda não tem o envio de e-mail configurado, o resumo só sai quando tiver.",{"id":1594,"title":1595,"titles":1596,"content":1597,"level":263},"\u002Fdocs\u002Fteam\u002Fnotifications#push-no-celular-e-no-navegador","Push no celular e no navegador",[164],"Em Minha conta → Notificações → Push neste dispositivo toque em Ativar push e aceite a permissão do navegador. Cada dispositivo é ativado separadamente. Se o seu projeto ainda não tem o push disponível, a tela avisa. No iPhone e no iPad o push só funciona se você adicionar o painel à tela de início: abra no Safari, toque em Compartilhar → Adicionar à Tela de Início, abra o Fiuit pelo ícone novo e ative o push por lá.",{"id":1599,"title":1600,"titles":1601,"content":1602,"level":263},"\u002Fdocs\u002Fteam\u002Fnotifications#regras-do-projeto-dono","Regras do projeto (dono)",[164],"Em Configuração → Notificações o Dono decide quem recebe os alertas de canal caído e de spam (só o Dono, Dono e Gerentes, ou toda a equipe) e quais avisos estão ativos para todo o projeto. O que é pessoal, como canais e silêncio, cada pessoa escolhe em Minha conta.",{"id":169,"title":168,"titles":1604,"content":1605,"level":257},[],"Regras de comissão por pessoa e por serviço ou produto, gorjetas e relatório por período em CSV, calculado na hora. Em Finanças > Relatórios > Comissões da equipe você vê o que cabe a cada pessoa da equipe. O Fiuit calcula sozinho, com os recebimentos reais que você registra (dinheiro, transferência, Pix, cartão, link de pagamento): nunca sobre o vendido nem com números digitados à mão no navegador.",{"id":1607,"title":1608,"titles":1609,"content":1610,"level":263},"\u002Fdocs\u002Fteam\u002Fcommissions#como-é-calculado","Como é calculado",[168],"Sobre o recebido. Se uma tarefa vale 100 e pagam 60, a comissão é sobre 60. Quando chega o resto, soma-se a comissão do resto. Uma tarefa com dívida não gera comissão até ser recebida.Sinais e descontos. Um sinal recebido conta no dia em que é recebido (se a tarefa foi remarcada, conta para quem faz a tarefa vigente). Um desconto reduz o recebido e, portanto, a comissão.Anulações e devoluções subtraem no dia em que acontecem (o dia do recebimento não muda) e são valoradas com a regra do recebimento original: encerrar ou mudar uma regra depois não deixa comissão de um recebimento anulado.De quem é a comissão: tudo o que foi recebido por uma tarefa é de quem fez o trabalho, ou seja, de quem tinha a tarefa atribuída (ativo e com o recurso) ao concluí-la, mesmo que outra pessoa tenha registrado o recebimento. Enquanto a tarefa estiver aberta, é de quem a tem atribuída hoje. Se depois essa pessoa sai da equipe ou o recurso passa para outra, a tarefa continua sendo dela; anulações e devoluções posteriores também descontam dela.Sinal retido sem trabalho realizado: se a tarefa termina em ausência, cancelamento ou falha (no_show, cancelled, failed), seus recebimentos não geram comissão nem aparecem como «sem pessoa atribuída»: ficam como receita do negócio no Finanças e no Caixa. Uma saída da equipe ou reatribuição posterior não muda essa regra.Reembolso parcial eletrônico: por enquanto a comissão continua sobre o total até o reembolso ser total.Várias pessoas na mesma tarefa: o recebido é dividido em partes iguais.Gorjetas: ficam à parte, por meio de pagamento, e não geram comissão.Tarefas sem pessoa atribuída: o recebido aparece à parte (só Dono e Gerente) e não gera comissão.",{"id":1612,"title":123,"titles":1613,"content":1614,"level":263},"\u002Fdocs\u002Fteam\u002Fcommissions#regras",[168],"Uma regra é um percentual do recebido ou um valor fixo (por tarefa, ou por unidade se for um produto). Pode valer para toda a equipe ou para uma pessoa, para todo o recebido ou para um serviço ou produto, e descontar ou não a taxa do meio de pagamento (por exemplo, a tarifa do Mercado Pago). Cada regra tem vigência a partir de uma data. Vale a regra mais específica: pessoa + serviço ou produto, depois serviço ou produto, depois pessoa, depois a geral. Uma regra não se edita: para mudar uma taxa, você a encerra e cria outra. Dono e Gerente configuram as regras; cada pessoa da equipe vê as que se aplicam a ela.",{"id":1616,"title":1617,"titles":1618,"content":1619,"level":263},"\u002Fdocs\u002Fteam\u002Fcommissions#o-dia-de-cada-pessoa","O dia de cada pessoa",[168],"Para cada pessoa você vê o recebido por meio de pagamento, as gorjetas, a comissão, os ajustes e, se recebeu em dinheiro, a diferença de caixa do dia. Dono e Gerente podem ajustar a comissão de um dia, com sinal e motivo (fica na auditoria). Não há fechamento diário: os números são calculados na hora a partir dos recebimentos. Como cada tarefa concluída fica com quem a tinha ao concluí-la, desativar alguém ou trocar seus recursos não muda o passado.",{"id":1621,"title":1622,"titles":1623,"content":1624,"level":263},"\u002Fdocs\u002Fteam\u002Fcommissions#relatório-por-período","Relatório por período",[168],"Em Período você escolhe as datas e vê o total por pessoa, calculado na hora (cada tarefa conta uma vez). Exportar CSV baixa uma linha por pessoa e dia, com valores na unidade menor da moeda: serve de base para acertar com a equipe e para o relatório mensal do salão-parceiro.",{"id":1626,"title":1627,"titles":1628,"content":1629,"level":263},"\u002Fdocs\u002Fteam\u002Fcommissions#liquidar-o-período","Liquidar o período",[168],"Em Período, Dono e Gerente tocam em Liquidar no cartão de uma pessoa. Abre uma folha com o período, os valores que ficam congelados (comissão, ajustes e ajustes automáticos de períodos já liquidados; as gorjetas não entram), as devoluções de cobranças de outro período, se houver, e o motivo, que fica registrado. Ao confirmar, esse período fica congelado: os números não mudam mais, nem no resultado. Uma só vez. Liquidar duas vezes o mesmo período não congela duas vezes, e dois períodos liquidados da mesma pessoa não podem se sobrepor. Só se liquidam dias que já passaram.Valores atualizados. Se mudarem antes de confirmar, a liquidação espera: o painel mostra os novos valores para conferir e confirmar novamente. Com o Wagy, peça uma nova proposta.Correções posteriores. Se depois uma cobrança for anulada ou devolvida, ou uma regra mudar para trás, o período liquidado não muda: a diferença aparece como ajuste automático no primeiro dia sem liquidar, com referência ao período liquidado, e entra na próxima liquidação.Não é um pagamento. Liquidar fecha o período; o pagamento à pessoa é feito fora do Fiuit. Você também pode pedir ao Wagy: «liquida as comissões da Ana do mês passado». O Wagy encontra a pessoa, mostra os valores que ficam congelados e pede a sua confirmação.",{"id":1631,"title":551,"titles":1632,"content":1633,"level":263},"\u002Fdocs\u002Fteam\u002Fcommissions#quem-vê-o-quê",[168],"PapelVêPodeDono e GerenteToda a equipeRegras, ajustes, gorjetas, CSV, liquidarEquipeSó o seuRegistrar suas gorjetas (se o negócio permite que receba) e baixar seu CSVLeituraNada de dinheiro— O Wagy pode ler as comissões de um dia ou de um período e liquidar o período de uma pessoa (com a sua confirmação); regras, ajustes e gorjetas são feitos no painel. Por API e MCP estão as mesmas leituras (scope commissions:read) e a liquidação (scope commissions:settle).",{"id":173,"title":172,"titles":1635,"content":1636,"level":257},[],"Como um parceiro da Fiuit cria projetos para os seus clientes, entrega ao dono e fica como colaborador sem acesso ao dinheiro. Um parceiro da Fiuit (um implementador local, uma agência ou um creator) pode montar o projeto de um negócio e entregar pronto ao dono. A Fiuit dá ao parceiro um código próprio e o vincula à conta dele.",{"id":1638,"title":1639,"titles":1640,"content":1641,"level":263},"\u002Fdocs\u002Fteam\u002Fpartners#meus-projetos-para-parceiros","Meus projetos (para parceiros)",[172],"Se a sua conta é de um parceiro, aparece Meus projetos no menu. Ali você vê os projetos dos seus clientes: os que você criou e os que a Fiuit atribuiu a você, com plano, status e data de criação. Você só vê os seus, nunca os de outro parceiro. Toque em Criar projeto para um cliente e informe o nome do negócio (e o ramo, se quiser começar com um modelo).Configure como qualquer projeto: serviços, equipe, horários, canais e bot. Também dá para fazer conversando com o Wagy.Convide o dono real em Pessoas com o papel Dono. A quantidade de projetos que você pode criar depende do plano da sua conta; se chegar ao limite, fale com a Fiuit.",{"id":1643,"title":1644,"titles":1645,"content":1646,"level":263},"\u002Fdocs\u002Fteam\u002Fpartners#quando-o-dono-aceita","Quando o dono aceita",[172],"O dono fica como Dono do projeto e você passa a Colaborador: Continua configurando e operando como um Gerente: catálogo, recursos, horários, bot, regras, clientes, conversas e tarefas.Não vê nada de dinheiro: nem cobranças, nem saldos, nem a seção Finanças, nem os pagamentos da configuração, nem o Mercado Pago, nem o plano e uso da Fiuit.Não administra a equipe nem os webhooks.",{"id":1648,"title":1649,"titles":1650,"content":1651,"level":263},"\u002Fdocs\u002Fteam\u002Fpartners#para-o-dono","Para o dono",[172],"Você vê o colaborador em Pessoas e pode removê-lo quando quiser: ele perde o acesso na hora. Tudo o que ele faz fica registrado no nome dele na atividade do negócio.",{"id":177,"title":176,"titles":1653,"content":1654,"level":257},[],"Como a equipe faz as suas tarefas em tela cheia, uma a uma ou várias, sem travar o trabalho. O Focus mostra as suas tarefas abertas em tela cheia, na ordem da lista do Hoje. Pensado para o celular e para o tablet no balcão ou na cozinha.",{"id":1656,"title":1657,"titles":1658,"content":1659,"level":263},"\u002Fdocs\u002Fteam\u002Ffocus#como-entrar","Como entrar",[176],"Em Hoje, toque no botão ▶ Focus (no celular, ao lado de Ver). Ele aparece quando você tem tarefas abertas e permissão para executá-las. Você sai com o ✕, com Esc ou com «voltar», sem mudar nada.",{"id":1661,"title":1662,"titles":1663,"content":1664,"level":263},"\u002Fdocs\u002Fteam\u002Ffocus#uma-tarefa-e-o-que-vem-a-seguir","Uma tarefa e «O que vem a seguir»",[176],"Você vê a tarefa atual com o botão da ação da etapa. Ao concluir, entra a próxima.Abaixo, O que vem a seguir: as próximas, uma linha cada.Cada etapa diz quem a fez e quando.Se houver destino, você vê o endereço com Ir e um mapa; se houver saldo, as cobranças ficam à vista.",{"id":1666,"title":1667,"titles":1668,"content":1669,"level":301},"\u002Fdocs\u002Fteam\u002Ffocus#gestos","Gestos",[176,1662],"Com o seletor Uma a uma | Lista: Direita: Pronto (5 segundos para Desfazer).Esquerda: Depois (vai para o fim da fila).Para baixo: a lista do dia. O cartão inclui Ligar, WhatsApp e «Tenho um problema». O seletor fica no topo: Uma a uma mostra o cartão único e Lista, vários cartões ao mesmo tempo. A escolha é lembrada por pessoa.",{"id":1671,"title":1672,"titles":1673,"content":1674,"level":263},"\u002Fdocs\u002Fteam\u002Ffocus#fazer-qualquer-tarefa-sem-travar","Fazer qualquer tarefa sem travar",[176],"Toque em qualquer uma de O que vem a seguir para fazê-la agora: a outra volta para a lista. Se a ordem não puder ser cumprida, você não fica travado.",{"id":1676,"title":1677,"titles":1678,"content":1679,"level":263},"\u002Fdocs\u002Fteam\u002Ffocus#o-assobio","O assobio",[176],"Uma tarefa nova entra em O que vem a seguir, sem interromper a atual, com o aviso «Chegou uma tarefa nova» e vibração se o dispositivo permitir.Toca um assobio curto «fiuít» onde o celular respeita o modo silencioso (hoje, iPhone).O interruptor de som (o sino) assobia uma vez ao ser ligado, para testar. Ao desligar, não toca.Com o iPhone no silencioso não toca: fica o aviso, que acende por um instante.Se aparecer «Toque para ativar o som», toque dentro do Focus.",{"id":1681,"title":1682,"titles":1683,"content":1684,"level":263},"\u002Fdocs\u002Fteam\u002Ffocus#reprogramar-pelo-focus","Reprogramar pelo Focus",[176],"Reprogramar oferece +1 h, +3 h, Amanhã e +3 dias com a disponibilidade real; se o horário estiver ocupado, mostra o próximo livre. A tarefa sai da fila com um aviso e Desfazer.",{"id":1686,"title":1687,"titles":1688,"content":1689,"level":263},"\u002Fdocs\u002Fteam\u002Ffocus#focus-no-mini-app-do-telegram","Focus no Mini App do Telegram",[176],"Funciona igual no Mini App do Telegram. Se a etapa tiver Localização ao vivo (por exemplo «A caminho»), o Focus pede permissão e compartilha a sua posição com o aviso «Compartilhando sua localização» e Pausar. Ela se corta ao sair da etapa ou fechar o Focus; se você bloquear o celular, também, então para um trajeto completo use a localização em tempo real do Telegram. A tela fica acesa enquanto você usa o Focus e é liberada após 15 minutos sem toque (exceto em Lista no tablet ou no computador, onde fica sempre acesa).",{"id":181,"title":180,"titles":1691,"content":1692,"level":257},[],"Crie seu primeiro agendamento pela API em cinco minutos com uma chave de um negócio de teste. Este guia cria um agendamento real, então use uma chave de produção (wg_live_...) de um negócio que você montou para testes. Chaves wg_test_ são somente leitura: permitem listar e ler, não criar nem alterar nada. Um sandbox para escritas é Em breve. Para testar o bot sem WhatsApp, use o simulador do painel. URL base: https:\u002F\u002Fapi.fiuit.com\u002Fv1. Toda requisição precisa de Authorization: Bearer \u003Cchave>.",{"id":1694,"title":1695,"titles":1696,"content":1697,"level":263},"\u002Fdocs\u002Fquickstart#_1-gere-uma-chave","1. Gere uma chave",[180],"No painel, vá em Configurações → Desenvolvedores, crie uma chave de Produção e marque os escopos slots:read, bookings:write e config:read. A chave aparece uma única vez. export WAGEND_KEY=\"wg_live_xxxxxxxx_xxxxxxxxxxxxxxxxxxxx\"",{"id":1699,"title":1700,"titles":1701,"content":1702,"level":263},"\u002Fdocs\u002Fquickstart#_2-veja-quem-você-é","2. Veja quem você é",[180],"curl https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fme -H \"Authorization: Bearer $WAGEND_KEY\" {\n  \"workspace\": { \"id\": \"ws_9f2c\", \"name\": \"Barbearia Centro\", \"timezone\": \"America\u002FSao_Paulo\", \"locale\": \"pt\", \"currency\": \"BRL\" },\n  \"scopes\": [\"slots:read\", \"bookings:write\", \"config:read\"],\n  \"mode\": \"live\"\n} O workspace sempre vem da chave. Você nunca envia um id de workspace.",{"id":1704,"title":1705,"titles":1706,"content":1707,"level":263},"\u002Fdocs\u002Fquickstart#_3-liste-os-serviços","3. Liste os serviços",[180],"curl https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fservices -H \"Authorization: Bearer $WAGEND_KEY\" {\n  \"data\": [\n    { \"id\": \"svc_corte\", \"name\": \"Corte\", \"duration_min\": 30, \"price_cents\": 5000, \"currency\": \"BRL\",\n      \"requirements\": [{ \"resource_group_id\": \"grp_barbers\", \"units\": 1 }] }\n  ]\n}",{"id":1709,"title":1710,"titles":1711,"content":1712,"level":263},"\u002Fdocs\u002Fquickstart#_4-busque-horários-disponíveis","4. Busque horários disponíveis",[180],"curl \"https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fslots?service_id=svc_corte&from=2026-10-15T08:00:00-03:00&to=2026-10-15T13:00:00-03:00\" \\\n  -H \"Authorization: Bearer $WAGEND_KEY\" {\n  \"data\": [\n    { \"start\": \"2026-10-15T09:00:00-03:00\", \"end\": \"2026-10-15T09:30:00-03:00\", \"resource_ids\": [\"res_juan\"] },\n    { \"start\": \"2026-10-15T09:45:00-03:00\", \"end\": \"2026-10-15T10:15:00-03:00\", \"resource_ids\": [\"res_juan\"] }\n  ],\n  \"unavailable_reason\": null\n}",{"id":1714,"title":1715,"titles":1716,"content":1717,"level":263},"\u002Fdocs\u002Fquickstart#_5-faça-a-pré-reserva","5. Faça a pré-reserva",[180],"A pré-reserva (hold) segura o horário por 10 minutos enquanto você coleta os dados do cliente. Sempre envie um Idempotency-Key para que reenvios sejam seguros. curl -X POST https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fholds \\\n  -H \"Authorization: Bearer $WAGEND_KEY\" \\\n  -H \"Idempotency-Key: $(uuidgen)\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"service_id\": \"svc_corte\", \"start\": \"2026-10-15T09:45:00-03:00\", \"resource_ids\": [\"res_juan\"] }' { \"id\": \"bkg_7Qx1\", \"status\": \"held\", \"expires_at\": \"2026-10-14T15:30:00-03:00\", \"start\": \"2026-10-15T09:45:00-03:00\" }",{"id":1719,"title":1720,"titles":1721,"content":1722,"level":263},"\u002Fdocs\u002Fquickstart#_6-confirme","6. Confirme",[180],"curl -X POST https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fholds\u002Fbkg_7Qx1\u002Fconfirm \\\n  -H \"Authorization: Bearer $WAGEND_KEY\" \\\n  -H \"Idempotency-Key: $(uuidgen)\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"customer\": { \"name\": \"Carlos\", \"phone\": \"+5521999990000\", \"locale\": \"pt\" } }' { \"id\": \"bkg_7Qx1\", \"status\": \"confirmed\", \"start\": \"2026-10-15T09:45:00-03:00\", \"source\": \"api\" } Se o serviço exige sinal, o status fica pending_payment. A cobrança online do sinal está em breve.",{"id":1724,"title":1725,"titles":1726,"content":1727,"level":263},"\u002Fdocs\u002Fquickstart#o-mesmo-fluxo-em-javascript","O mesmo fluxo em JavaScript",[180],"const api = (path: string, init: RequestInit = {}) =>\n  fetch(`https:\u002F\u002Fapi.fiuit.com\u002Fv1${path}`, {\n    ...init,\n    headers: { Authorization: `Bearer ${process.env.WAGEND_KEY}`, 'Content-Type': 'application\u002Fjson', ...init.headers },\n  }).then((r) => r.json())\n\nconst { data: slots } = await api(`\u002Fslots?service_id=svc_corte&from=${from}&to=${to}`)\nconst hold = await api('\u002Fholds', {\n  method: 'POST',\n  headers: { 'Idempotency-Key': crypto.randomUUID() },\n  body: JSON.stringify({ service_id: 'svc_corte', start: slots[0].start }),\n})\nconst booking = await api(`\u002Fholds\u002F${hold.id}\u002Fconfirm`, {\n  method: 'POST',\n  headers: { 'Idempotency-Key': crypto.randomUUID() },\n  body: JSON.stringify({ customer: { name: 'Carlos', phone: '+5521999990000' } }),\n})",{"id":1729,"title":324,"titles":1730,"content":1731,"level":263},"\u002Fdocs\u002Fquickstart#próximos-passos",[180],"Prefere não montar o cliente à mão? Use os SDKs de TypeScript e Python.Reaja a agendamentos com webhooks.Veja todos os endpoints na referência e mais exemplos nas receitas.Conecte um agente de IA com o servidor MCP. html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"id":190,"title":189,"titles":1733,"content":1734,"level":257},[],"Chaves de API, scopes e quais rotas podem ser usadas com uma chave e quais são só do painel.",{"id":1736,"title":1737,"titles":1738,"content":1739,"level":263},"\u002Fdocs\u002Fapi\u002Fauthentication#chaves-de-api","Chaves de API",[189],"As chaves são criadas pelo Dono em Configurações → Desenvolvedores. Aparecem uma única vez. Envie sua chave como bearer token: GET \u002Fv1\u002Fme HTTP\u002F1.1\nHost: api.fiuit.com\nAuthorization: Bearer wg_live_xxxxxxxx_xxxxxxxxxxxxxxxxxxxx PrefixoModowg_live_Dados de produção e mensagens reaiswg_test_Somente leitura: permite listar e ler, não criar nem alterar nada. Um sandbox para escritas é Em breve As chaves pertencem a um projeto (workspace). O projeto sempre vem da chave: não há id de workspace em paths nem em bodies. As chaves são guardadas com hash.",{"id":1741,"title":1742,"titles":1743,"content":1744,"level":263},"\u002Fdocs\u002Fapi\u002Fauthentication#scopes","Scopes",[189],"ScopePermiteslots:readGET \u002Fslotsbookings:readLer agendamentos e tarefas (\u002Fbookings, \u002Fwork-items), histórico de etapas, anexos, estatísticas da equipebookings:writePré-reservas, confirmar, cancelar, remarcar, check-in, falta, concluir, executar ações e editar prioridade, etiquetas e prazo de uma tarefacustomers:readLer e buscar clientes, seu histórico, resumo e comentárioscustomers:writeCriar e editar clientesmessages:readLer conversas e mensagensmessages:writeEnviar mensagens, mudar o modo (bot ou pessoa), resolver, marcar como lidaconfig:read \u002F config:writeServiços, recursos, equipes, horários, automações por regra, conhecimento e botsettings:writeSubstituir e reverter etapas, ações e formulários (\u002Fservices\u002F{id}\u002Fstages)webhooks:manageEndpoints de webhooks de saídaproducts:read \u002F products:writeLer e gerenciar o catálogo de produtospayments:read, payments:read_balanceLer cobranças e saldos de tarefaspayments:record, payments:link, payments:void, payments:adjust, payments:refund, payments:fiscalRegistrar cobranças, gerar links, anular, ajustar, devolver e marcar dados fiscaisexpenses:read, expenses:record, expenses:void, expenses:approveLer, registrar, anular e aprovar despesascommissions:read, commissions:configure, commissions:adjust, commissions:settle, commissions:exportLer, configurar, ajustar, liquidar e exportar comissõescash:read, cash:remit, cash:close, cash:configureLer caixa, prestar contas, fechar e configurarfinance:analyze, finance:exportConsultar e exportar relatórios de Dinheirocustomer_balance:read, customer_account:readLer o saldo e a conta corrente do clienteprepaid:read, prepaid:manage, prepaid:sell, prepaid:benefitsLer, administrar e vender pacotes e clubes, e gerenciar benefíciospartner:readLer o painel do parceiro que emitiu a chave Uma requisição sem o scope necessário devolve 403 com code: \"insufficient_scope\". As fontes de conhecimento (\u002Fknowledge\u002Fsources) e a política do bot por canal aceitam config:read \u002F config:write. GET \u002Fconnection\u002Fprojects permite listar os projetos da credencial; administrá-los continua sendo exclusivo do painel.",{"id":1746,"title":1747,"titles":1748,"content":1749,"level":263},"\u002Fdocs\u002Fapi\u002Fauthentication#o-que-é-só-do-painel","O que é só do painel",[189],"Estas áreas não aceitam chaves de API: usam a sessão de uma pessoa da equipe (com seu papel) e são protegidas com CSRF. Se você as chama com uma chave, a API responde que não estão disponíveis para esse tipo de credencial. Canais, pausas de canais e da IA, estado do serviço.Regras de automação (\u002Fautomation-flows), assistente Wagy e seu plano.Equipe, convites, chaves de API, projetos e suporte da plataforma.Telegram da equipe e preferências de avisos. A lista de endpoints marca quais são quais.",{"id":1751,"title":1752,"titles":1753,"content":1754,"level":263},"\u002Fdocs\u002Fapi\u002Fauthentication#rotação","Rotação",[189],"Crie uma chave nova, faça o deploy e depois revogue a antiga em Configurações → Desenvolvedores. Chaves revogadas devolvem 401 na hora. html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"id":194,"title":193,"titles":1756,"content":1757,"level":257},[],"Formatos, idempotência, paginação, erros e limites de uso da API v1.",{"id":1759,"title":1760,"titles":1761,"content":1762,"level":263},"\u002Fdocs\u002Fapi\u002Fconventions#o-básico","O básico",[193],"URL base https:\u002F\u002Fapi.fiuit.com\u002Fv1. Mudanças incompatíveis saem como uma nova versão; mudanças aditivas (campos novos) podem chegar a qualquer momento, então ignore os campos que você não conhece.JSON na entrada e na saída (Content-Type: application\u002Fjson).Datas em ISO 8601 com offset (2026-10-15T09:45:00-03:00). São guardadas em UTC.Valores em centavos inteiros mais currency (BRL, ARS, PYG, USD).Os IDs são strings opacas. Campos sem valor chegam como null explícito.O contrato legível por máquina é packages\u002Fopenapi\u002Fopenapi.yaml (OpenAPI 3.1) e as novidades recentes resumem o que é novo.",{"id":1764,"title":1765,"titles":1766,"content":1767,"level":263},"\u002Fdocs\u002Fapi\u002Fconventions#idempotência","Idempotência",[193],"POST \u002Fholds, POST \u002Fholds\u002F{id}\u002Fconfirm, POST \u002Fbookings, POST \u002Fbookings\u002F{id}\u002Freschedule e POST \u002Fbookings\u002F{id}\u002Factions\u002F{key} levam o header Idempotency-Key (por exemplo um UUID). Repetir uma requisição com a mesma chave em até 24 horas devolve a resposta original. Reusar a chave com outro body devolve 422 com code: \"idempotency_conflict\". POST \u002Fcustomers aceita Idempotency-Key de forma opcional. POST \u002Fwebhook-endpoints não o admite, porque sua resposta contém o segredo.",{"id":1769,"title":1770,"titles":1771,"content":1772,"level":263},"\u002Fdocs\u002Fapi\u002Fconventions#paginação","Paginação",[193],"Os endpoints de listagem usam cursores: curl \"https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fbookings?limit=50\" -H \"Authorization: Bearer $WAGEND_KEY\"\n# → { \"data\": [...], \"next_cursor\": \"eyJpZCI6...\" }\ncurl \"https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fbookings?limit=50&cursor=eyJpZCI6...\" -H \"Authorization: Bearer $WAGEND_KEY\" Quando next_cursor é null, não há mais páginas.",{"id":1774,"title":1775,"titles":1776,"content":1777,"level":263},"\u002Fdocs\u002Fapi\u002Fconventions#erros","Erros",[193],"Os erros seguem a RFC 9457 (application\u002Fproblem+json): {\n  \"type\": \"https:\u002F\u002Ffiuit.com\u002Fdocs\u002Fapi\u002Fconventions#errors\",\n  \"title\": \"Slot no longer available\",\n  \"status\": 409,\n  \"code\": \"slot_taken\",\n  \"alternatives\": [{ \"start\": \"2026-10-15T10:15:00-03:00\", \"end\": \"2026-10-15T10:45:00-03:00\" }]\n} codeStatusQuandovalidation_error422Falhou a validação do body ou dos parâmetrosinvalid_api_key401Chave ausente, inválida ou revogadaidempotency_key_required400Falta o header Idempotency-Key em uma operação que o exigeinsufficient_scope403A chave não tem o scopenot_found404Id desconhecido (ou de outro projeto)slot_taken409Outra pessoa pegou o horárioteam_policy_missing409Uma equipe do serviço ainda não tem o modo de atendimento definido: configure-o para receber reservasalready_claimed409Outra pessoa da equipe pegou antes a tarefa da filacustomer_exists409Já existe um cliente com esse telefoneinvalid_transition409Por exemplo confirmar um agendamento canceladoversion_conflict409Alguém editou antes o mesmo recurso (versão desatualizada)hold_expired410A pré-reserva venceu antes de confirmaridempotency_conflict422Mesma chave, body diferenterate_limited429Requisições demais Toda resposta de erro traz code: use-o para decidir o que fazer, não o texto do title.",{"id":1779,"title":1780,"titles":1781,"content":1782,"level":263},"\u002Fdocs\u002Fapi\u002Fconventions#limites-de-uso","Limites de uso",[193],"Os limites valem por chave e por projeto (um balde com rajada de 120 requisições e recarga de 2 por segundo). Cada resposta traz RateLimit-Limit, RateLimit-Remaining e RateLimit-Reset. Diante de um 429, espere Retry-After segundos. html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"id":198,"title":197,"titles":1784,"content":1785,"level":257},[],"Os endpoints da API v1 agrupados por tema, com o scope que cada um pede, e quais áreas são só do painel. O contrato legível por máquina está no repositório, em packages\u002Fopenapi\u002Fopenapi.yaml (OpenAPI 3.1). Esta página resume o que você pode usar com uma chave de API. As áreas marcadas como \"só painel\" usam a sessão de uma pessoa da equipe (veja Autenticação).",{"id":1787,"title":1788,"titles":1789,"content":1790,"level":263},"\u002Fdocs\u002Fapi\u002Fendpoints#agenda-horários-e-agendamentos","Agenda: horários e agendamentos",[197],"MétodoPathScopeDescriçãoGET\u002Fslotsslots:readHorários disponíveis para um serviçoPOST\u002Fholdsbookings:writeCriar pré-reserva de 10 minutosPOST\u002Fholds\u002F{id}\u002Fconfirmbookings:writeConfirmar (ou pending_payment se exigir sinal)DELETE\u002Fholds\u002F{id}bookings:writeLiberar pré-reservaPOST\u002Fbookingsbookings:writePré-reserva e confirmação em uma chamadaGET\u002Fbookingsbookings:readListar (from, to, status, resource_id, customer_id)GET \u002F PATCH\u002Fbookings\u002F{id}bookings:read \u002F writeLer, atualizar notas ou dados de entradaPOST\u002Fbookings\u002F{id}\u002Fcancel, \u002Freschedule, \u002Fcheck-in, \u002Fno-show, \u002Fcomplete, \u002Ffailbookings:writeMudar o estado",{"id":1792,"title":1793,"titles":1794,"content":1795,"level":263},"\u002Fdocs\u002Fapi\u002Fendpoints#trabalho-tarefas-e-ações","Trabalho: tarefas e ações",[197],"Um agendamento é uma tarefa com etapas. As tarefas sem horário (por exemplo entregas) ficam na fila de uma equipe até alguém pegá-las. Veja Trabalho e ações. MétodoPathScopeDescriçãoGET\u002Fwork-itemsbookings:readConsulta unificada: filtros por view (inbox, today, upcoming), status, stage, unassigned, priority, tag, origin, q, intervalo de datas e caixa geográficaPATCH\u002Fwork-items\u002F{id}bookings:writeMudar prioridade, etiquetas ou prazo (com expected_version opcional)POST\u002Fbookings\u002F{id}\u002Factions\u002F{key}bookings:writeExecutar uma ação da etapa (pegar, soltar, concluir, \"não estava\"…) com Idempotency-KeyGET\u002Fbookings\u002F{id}\u002Fstage-historybookings:readHistórico de etapasGET\u002Fbookings\u002F{id}\u002Fcomments, \u002Ftimelinebookings:readComentários e linha do tempoGET\u002Fbookings\u002F{id}\u002Fattachments, \u002Flocation-eventsbookings:readEvidência de trabalhoGET\u002Fconversations\u002F{id}\u002Fwork-itemsbookings:readTarefas criadas a partir de uma conversaGET\u002Fteam\u002Foverview, \u002Fresources\u002F{id}\u002Fstatsbookings:readOcupação e estatísticas da equipe",{"id":1797,"title":1798,"titles":1799,"content":1800,"level":263},"\u002Fdocs\u002Fapi\u002Fendpoints#catálogo-e-etapas","Catálogo e etapas",[197],"MétodoPathScopeGET \u002F POST\u002Fservices, \u002Fresources, \u002Fresource-groups, \u002Fschedulesconfig:read \u002F config:writeGET \u002F PATCH \u002F DELETE\u002Fservices\u002F{id}, \u002Fresources\u002F{id}, \u002Fresource-groups\u002F{id}, \u002Fschedules\u002F{id}config:read \u002F config:writePOST \u002F DELETE\u002Fschedules\u002F{id}\u002Foverrides, \u002Fschedules\u002F{id}\u002Foverrides\u002F{date}config:writeGET\u002Fschedule-overridesconfig:readGET\u002Fflows, \u002Fflows\u002F{id}, \u002Fflows\u002F{id}\u002Fversions, \u002Fflows\u002F{id}\u002Fversions\u002F{version}config:readGET\u002Fflow-message-catalogconfig:readPOST\u002Fflowssettings:writePATCH\u002Fflows\u002F{id}settings:writePOST\u002Fflows\u002F{id}\u002Fvalidate, \u002Fflows\u002F{id}\u002Fcopy, \u002Fflows\u002F{id}\u002Fversions\u002F{version}\u002Frevertsettings:writeGET\u002Fflow-examples, \u002Fbase-statesconfig:read",{"id":1802,"title":1803,"titles":1804,"content":1805,"level":263},"\u002Fdocs\u002Fapi\u002Fendpoints#clientes","Clientes",[197],"MétodoPathScopeDescriçãoGET\u002Fcustomerscustomers:readListar e buscar (q: nome, e-mail, empresa, etiqueta ou telefone; phone, tag)POST\u002Fcustomerscustomers:writeCadastro manual. O telefone é único: se já existir, 409 customer_existsGET \u002F PATCH\u002Fcustomers\u002F{id}customers:read \u002F writeLer ou editar (inclui endereço com formatted, lat e lng)GET\u002Fcustomers\u002F{id}\u002Fbookings, \u002Fsummary, \u002Ftimeline, \u002Fcommentscustomers:readHistórico, resumo ao vivo, linha do tempo e comentários Um cliente pode ter várias identidades (WhatsApp, Telegram, WebChat) em identities[].",{"id":1807,"title":1808,"titles":1809,"content":1810,"level":263},"\u002Fdocs\u002Fapi\u002Fendpoints#conversas","Conversas",[197],"MétodoPathScopeGET\u002Fconversations, \u002Fconversations\u002F{id}, \u002Fconversations\u002F{id}\u002Fmessagesmessages:readPOST\u002Fconversations\u002F{id}\u002Fmessagesmessages:write (responde 409 channel_paused se o canal está pausado)POST\u002Fconversations\u002F{id}\u002Fmode, \u002Fread, \u002Fresolvemessages:write",{"id":1812,"title":97,"titles":1813,"content":1814,"level":263},"\u002Fdocs\u002Fapi\u002Fendpoints#bot-e-conhecimento",[197],"MétodoPathScopeGET \u002F PUT\u002Fbotconfig:read \u002F config:writeGET \u002F POST\u002Fknowledge, \u002Fknowledge\u002Ffilesconfig:read \u002F config:writePOST\u002Fknowledge\u002Fsearchconfig:readPATCH \u002F DELETE\u002Fknowledge\u002F{id}config:writeGET \u002F POST \u002F PATCH\u002Fautomations, \u002Fautomations\u002F{id}config:read \u002F config:write",{"id":1816,"title":1817,"titles":1818,"content":1819,"level":263},"\u002Fdocs\u002Fapi\u002Fendpoints#webhooks-de-saída","Webhooks de saída",[197],"MétodoPathScopeGET \u002F POST\u002Fwebhook-endpointswebhooks:manageGET \u002F PATCH \u002F DELETE\u002Fwebhook-endpoints\u002F{id}webhooks:managePOST\u002Fwebhook-endpoints\u002F{id}\u002Frotate-secret, \u002Fping, \u002Fdeliveries\u002F{delivery_id}\u002Fresendwebhooks:manageGET\u002Fwebhook-endpoints\u002F{id}\u002Fdeliverieswebhooks:manage Detalhes em Webhooks.",{"id":1821,"title":1822,"titles":1823,"content":1824,"level":263},"\u002Fdocs\u002Fapi\u002Fendpoints#plataforma","Plataforma",[197],"MétodoPathScopeGET\u002Fmequalquer",{"id":1826,"title":1827,"titles":1828,"content":1829,"level":263},"\u002Fdocs\u002Fapi\u002Fendpoints#só-painel-não-aceitam-chaves-de-api","Só painel (não aceitam chaves de API)",[197],"ÁreaRotasCanais e pausas\u002Fchannels, \u002Fchannels\u002Fwhatsapp, \u002Fchannels\u002Ftelegram, \u002Fchannels\u002Fservice-status, \u002Fchannels\u002Fpauses, \u002Fchannels\u002F{channel}\u002Fpause e \u002Fresume; veja Pausas e StatusPolítica do bot por canal\u002Fbot\u002Fchannel-policies (veja WebChat)Fontes de conhecimento\u002Fknowledge\u002Fsources (veja Conhecimento)Regras\u002Fautomation-flows (veja Regras)IA do projeto\u002Fai\u002Fusage, \u002Fai\u002Fpause, \u002Fai\u002Fresume, \u002Fai\u002Fspam-guard, \u002Fai\u002FnoticesWagy\u002Fassistant\u002F*, o assistente de configuração do painelEquipe e conta\u002Fteam\u002F*, \u002Fapi-keys, \u002Fworkspaces, \u002Fme\u002Ftelegram, \u002Fme\u002Fnotification-preferencesWebChat\u002Fwebchat-site (gestão) e \u002Fpublic\u002Fwebchat\u002F* (públicos, com a chave publicável do widget)",{"id":1831,"title":1832,"titles":1833,"content":1834,"level":263},"\u002Fdocs\u002Fapi\u002Fendpoints#exemplo-slots","Exemplo: slots",[197],"GET \u002Fv1\u002Fslots?service_id=svc_laser&from=2026-10-20T09:00:00-03:00&to=2026-10-20T20:00:00-03:00&around=2026-10-20T18:00:00-03:00 {\n  \"data\": [\n    { \"start\": \"2026-10-20T17:45:00-03:00\", \"end\": \"2026-10-20T18:30:00-03:00\", \"resource_ids\": [\"res_ana\", \"res_laser1\", \"res_room2\"] },\n    { \"start\": \"2026-10-20T18:45:00-03:00\", \"end\": \"2026-10-20T19:30:00-03:00\", \"resource_ids\": [\"res_carla\", \"res_laser1\", \"res_room1\"] }\n  ],\n  \"unavailable_reason\": null\n}",{"id":1836,"title":1837,"titles":1838,"content":1839,"level":263},"\u002Fdocs\u002Fapi\u002Fendpoints#exemplo-objeto-de-agendamento","Exemplo: objeto de agendamento",[197],"{\n  \"id\": \"bkg_7Qx1\",\n  \"status\": \"confirmed\",\n  \"stage\": \"confirmed\",\n  \"service_id\": \"svc_laser\",\n  \"start\": \"2026-10-20T17:45:00-03:00\",\n  \"end\": \"2026-10-20T18:30:00-03:00\",\n  \"party_size\": 1,\n  \"customer\": { \"id\": \"cus_31\", \"name\": \"Marina\", \"phone\": \"+5521988887777\", \"locale\": \"pt\" },\n  \"allocations\": [\n    { \"resource_id\": \"res_ana\", \"start\": \"2026-10-20T17:45:00-03:00\", \"end\": \"2026-10-20T18:40:00-03:00\" },\n    { \"resource_id\": \"res_laser1\", \"start\": \"2026-10-20T17:45:00-03:00\", \"end\": \"2026-10-20T18:40:00-03:00\" },\n    { \"resource_id\": \"res_room2\", \"start\": \"2026-10-20T17:45:00-03:00\", \"end\": \"2026-10-20T18:40:00-03:00\" }\n  ],\n  \"priority\": \"normal\",\n  \"tags\": [],\n  \"source\": \"whatsapp\",\n  \"created_at\": \"2026-10-19T11:02:13-03:00\"\n} As alocações incluem o buffer (aqui, 10 minutos depois do serviço). Nas tarefas com fila, start e end vêm como null até alguém pegá-las.",{"id":1841,"title":1842,"titles":1843,"content":1844,"level":263},"\u002Fdocs\u002Fapi\u002Fendpoints#novidades-recentes","Novidades recentes",[197],"Estas são as novidades da API, todas aditivas. O histórico completo está no repositório (docs\u002Fapi\u002FCHANGELOG.md). Clientes: cadastro manual, dados ampliados, endereço com formatted, lat e lng, e identities[] multicanal.Tarefas e ações: consulta unificada GET \u002Fwork-items, executor de ações com efeitos (pegar, soltar, resultados) e 409 already_claimed.Mensagens com localização: WhatsApp, Telegram e WebChat guardam a localização compartilhada na conversa.Pausas: ao pausar um canal, enviar uma mensagem responde 409 channel_paused.Conhecimento: fontes do tipo site com max_pages e erros por causa. As confirmações preservam título e corpo nos três idiomas. A API aceita até 42 etapas para preservar as identidades anteriores e as canônicas do sistema. Canônicas isoladas não adicionam ações nem permissões; as saídas configuradas mantêm a validação do grafo. Validar, salvar e restaurar aceitam essas configurações migradas. html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"id":202,"title":201,"titles":1846,"content":1847,"level":257},[],"Avisos assinados do que acontece com seus agendamentos, com reenvio automático, log de entregas e exemplos para verificar a assinatura.",{"id":1849,"title":1850,"titles":1851,"content":1852,"level":263},"\u002Fdocs\u002Fapi\u002Fwebhooks#eventos","Eventos",[201],"É possível assinar estes eventos: EventoQuandobooking.createdUma pré-reserva ou agendamento foi criadobooking.confirmedUm agendamento foi confirmadobooking.cancelledAgendamento cancelado ou pré-reserva liberadabooking.rescheduledMudou de horário (o payload traz o id antigo e o novo)booking.no_showMarcado como faltabooking.completedAtendimento concluídobooking.scheduledHorário definido na mesma tarefabooking.unscheduledHorário removido da tarefabooking.reassignedMudou o conjunto de corresponsáveis; data.booking.resource_ids contém todos os recursos posteriores e previous_resource_ids os anteriores.workitem.reopenedUma tarefa foi reabertaworkitem.stage_enteredA tarefa entrou em uma etapaworkitem.stage_movedA tarefa mudou de etapaworkitem.tool_usedUma ação ou ferramenta da etapa foi usadapayment.paidProvedor atualizou a cobrança para pagapayment.recordedPagamento manual registradopayment.voidedPagamento manual anuladomessage.receivedMensagem recebida persistida (IDs e tipo, sem texto)conversation.handoffConversa transferida para modo humano booking.reassigned: Só é emitido se havia pelo menos um recurso atribuído e o conjunto muda. Inclui remover a atribuição (novo conjunto vazio); exclui a atribuição inicial e repetir o mesmo recurso. A deduplicação usa a reserva e a sequência persistida de mudanças reais de recursos, independente da versão: A→B→A→B emite três eventos. Repetir o mesmo PATCH ou o conjunto atual não adiciona eventos nem incrementa a sequência. Tipos inexistentes retornam 422 (invalid_webhook) com unsupported_events e a lista supported_events. webhook.ping é apenas um teste, não um tipo de assinatura. booking.cancelled não inclui a expiração automática de pré-reservas (booking.expired, evento interno). Crie endpoints em Configurações → Webhooks no painel ou com POST \u002Fv1\u002Fwebhook-endpoints (url e events). O segredo de assinatura (whsec_…) aparece uma única vez. curl -X POST https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fwebhook-endpoints \\\n  -H \"Authorization: Bearer $WAGEND_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"url\": \"https:\u002F\u002Fexample.com\u002Fwagend\", \"events\": [\"booking.confirmed\", \"booking.cancelled\"] }'",{"id":1854,"title":1855,"titles":1856,"content":1857,"level":263},"\u002Fdocs\u002Fapi\u002Fwebhooks#payload","Payload",[201],"O envelope mantém data.booking para agendamentos; cobranças usam data.payment (ID da cobrança), mensagens data.message (ID da mensagem), transferências data.conversation (ID da conversa) e eventos de tarefa (workitem.*) data.workitem (com etapa e status; o identificador é id para workitem.reopened e workitem_id para os demais eventos de tarefa). O texto da mensagem não é incluído. {\n  \"id\": \"evt_3f6c1d9e0b7a4c2f8e5d1a9b7c3e6f20\",\n  \"type\": \"booking.confirmed\",\n  \"created_at\": \"2026-10-14T15:21:07-03:00\",\n  \"workspace_id\": \"b3a6c8e2-5f1d-4c7a-9e0b-2d8f4a1c6e53\",\n  \"data\": { \"booking\": { \"id\": \"6d1f0c4a-7b2e-4a58-9c3d-0e5f8a2b1c47\", \"status\": \"confirmed\", \"start_at\": \"2026-10-15T12:45:00+00:00\" } }\n} A entrega é pelo menos uma vez: use o id para ignorar duplicados.",{"id":1859,"title":1860,"titles":1861,"content":1862,"level":263},"\u002Fdocs\u002Fapi\u002Fwebhooks#verificando-a-assinatura","Verificando a assinatura",[201],"Toda requisição traz o header: Wagend-Signature: t=1791040867,v1=5c2b9f...e81 v1 é HMAC-SHA256(segredo, t + \".\" + corpo_bruto) em hexadecimal. Rejeite requisições com mais de 5 minutos e calcule a assinatura sobre o corpo bruto, sem serializar o JSON de novo. import crypto from 'node:crypto'\n\nexport function verifyWagend(rawBody: string, header: string, secret: string) {\n  const parts = Object.fromEntries(header.split(',').map((p) => p.split('=') as [string, string]))\n  const age = Math.abs(Date.now() \u002F 1000 - Number(parts.t))\n  if (!parts.t || !parts.v1 || age > 300) return false\n  const expected = crypto.createHmac('sha256', secret).update(`${parts.t}.${rawBody}`).digest('hex')\n  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1))\n} import hashlib, hmac, time\n\ndef verify_wagend(raw_body: bytes, header: str, secret: str) -> bool:\n    parts = dict(p.split(\"=\", 1) for p in header.split(\",\"))\n    if abs(time.time() - int(parts.get(\"t\", \"0\"))) > 300:\n        return False\n    signed = f\"{parts['t']}.\".encode() + raw_body\n    expected = hmac.new(secret.encode(), signed, hashlib.sha256).hexdigest()\n    return hmac.compare_digest(expected, parts.get(\"v1\", \"\"))",{"id":1864,"title":1865,"titles":1866,"content":1867,"level":263},"\u002Fdocs\u002Fapi\u002Fwebhooks#reenvios","Reenvios",[201],"Responda com qualquer 2xx em até 10 segundos. Caso contrário, tentamos de novo após 1 min, 5 min, 30 min, 2 h e 12 h. Cada tentativa aparece no log de entregas, onde você também pode reenviar manualmente.",{"id":1869,"title":1870,"titles":1871,"content":1872,"level":263},"\u002Fdocs\u002Fapi\u002Fwebhooks#segurança-e-limites","Segurança e limites",[201],"A URL deve ser https e resolver para um endereço público: rejeitamos localhost, redes privadas, link-local e endereços de metadados de nuvem (ao cadastrar e a cada entrega). Não seguimos redirecionamentos (um 3xx conta como falha).Cabeçalhos extras: Wagend-Event (tipo) e Wagend-Delivery (id da entrega). Cada tentativa é assinada com um timestamp novo.Até 10 endpoints por workspace. Após 10 falhas consecutivas o endpoint é desativado (reative com PATCH \u002Fv1\u002Fwebhook-endpoints\u002F{id} e {\"active\": true}).POST \u002Fv1\u002Fwebhook-endpoints\u002F{id}\u002Fping envia um evento de teste webhook.ping; POST \u002Fv1\u002Fwebhook-endpoints\u002F{id}\u002Frotate-secret gera um novo segredo (mostrado uma única vez; o anterior deixa de valer na hora).Com API key use o escopo webhooks:manage. O log fica em GET \u002Fv1\u002Fwebhook-endpoints\u002F{id}\u002Fdeliveries e o reenvio em POST …\u002Fdeliveries\u002F{delivery_id}\u002Fresend. html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"id":206,"title":205,"titles":1874,"content":1875,"level":257},[],"Clientes tipados gerados a partir do contrato OpenAPI: como usá-los hoje a partir do repositório, com exemplos de agendamento, erros, paginação e idempotência. A Fiuit tem dois SDKs que são gerados a partir do contrato packages\u002Fopenapi\u002Fopenapi.yaml, então seus tipos sempre acompanham a API. Os SDKs ainda não estão publicados no npm nem no PyPI (Em breve). Hoje são usados a partir do repositório, como explicado abaixo. Se preferir não depender deles, a API REST funciona com qualquer cliente HTTP.",{"id":1877,"title":1878,"titles":1879,"content":1880,"level":263},"\u002Fdocs\u002Fapi\u002Fsdks#typescript","TypeScript",[205],"O cliente (packages\u002Fsdk-ts) é um invólucro leve sobre fetch com tipos de todas as rotas.",{"id":1882,"title":1883,"titles":1884,"content":1885,"level":301},"\u002Fdocs\u002Fapi\u002Fsdks#instalar-a-partir-do-repositório","Instalar a partir do repositório",[205,1878],"cd packages\u002Fsdk-ts\nnpm ci\nnpm run build          # genera dist\u002F No seu projeto, instale-o a partir dessa pasta: npm install \u002Fcaminho\u002Fpara\u002Fwagendapp\u002Fpackages\u002Fsdk-ts",{"id":1887,"title":1888,"titles":1889,"content":1890,"level":301},"\u002Fdocs\u002Fapi\u002Fsdks#agendar-um-horário","Agendar um horário",[205,1878],"import { createWagendClient, WagendError } from \"@wagend\u002Fsdk\";\n\nconst api = createWagendClient({\n  baseUrl: \"https:\u002F\u002Fapi.fiuit.com\u002Fv1\",\n  apiKey: process.env.WAGEND_API_KEY!, \u002F\u002F wg_live_xxx\n});\n\ntry {\n  const { data: services } = await api.GET(\"\u002Fservices\");\n  const serviceId = services!.data![0].id!;\n\n  const { data: slots } = await api.GET(\"\u002Fslots\", {\n    params: { query: { service_id: serviceId, from: \"2026-10-15T08:00:00-03:00\", to: \"2026-10-15T13:00:00-03:00\" } },\n  });\n  const slot = slots!.data[0];\n\n  \u002F\u002F Pré-reserva de 10 minutos\n  const { data: hold } = await api.POST(\"\u002Fholds\", {\n    params: { header: { \"Idempotency-Key\": crypto.randomUUID() } },\n    body: { service_id: serviceId, start: slot.start, party_size: 1, resource_ids: slot.resource_ids },\n  });\n\n  \u002F\u002F Confirmação com os dados do cliente\n  const { data: booking } = await api.POST(\"\u002Fholds\u002F{id}\u002Fconfirm\", {\n    params: { path: { id: hold!.id! }, header: { \"Idempotency-Key\": crypto.randomUUID() } },\n    body: { customer: { name: \"Carlos\", phone: \"+5491155550000\", locale: \"es\" } },\n  });\n  console.log(booking!.status); \u002F\u002F \"confirmed\"\n} catch (err) {\n  if (err instanceof WagendError) {\n    console.error(err.status, err.code, err.retryAfter);\n  } else {\n    throw err;\n  }\n} Autenticação: o cliente adiciona Authorization: Bearer sozinho.Idempotência: em toda escrita adiciona uma Idempotency-Key se você não passar uma. Para repetir uma operação, passe você a mesma chave nas duas tentativas (vale 24 horas). O tipo do TypeScript a declara em params.header nas rotas que a exigem.Erros: toda resposta que não seja 2xx lança WagendError com .status, .code, .problem (RFC 9457) e .retryAfter (segundos, em 429).",{"id":1892,"title":1770,"titles":1893,"content":1894,"level":301},"\u002Fdocs\u002Fapi\u002Fsdks#paginação",[205,1878],"let cursor: string | undefined;\ndo {\n  const { data: page } = await api.GET(\"\u002Fbookings\", { params: { query: { limit: 50, cursor } } });\n  for (const booking of page?.data ?? []) console.log(booking.id);\n  cursor = page?.next_cursor ?? undefined;\n} while (cursor);",{"id":1896,"title":1897,"titles":1898,"content":1899,"level":301},"\u002Fdocs\u002Fapi\u002Fsdks#clientes-e-ações","Clientes e ações",[205,1878],"\u002F\u002F Buscar e criar clientes (scopes customers:read e customers:write)\nconst { data: found } = await api.GET(\"\u002Fcustomers\", { params: { query: { q: \"carlos\" } } });\nawait api.POST(\"\u002Fcustomers\", { body: { name: \"Ana\", phone: \"+5491155551111\", tags: [\"vip\"] } });\n\n\u002F\u002F Executar uma ação da etapa, por exemplo atribuir uma entrega a um entregador (scope bookings:write).\n\u002F\u002F \"atribuir\" é a chave dessa ação no modelo de entregas.\nawait api.POST(\"\u002Fbookings\u002F{id}\u002Factions\u002F{key}\", {\n  params: { path: { id: taskId, key: \"atribuir\" }, header: { \"Idempotency-Key\": crypto.randomUUID() } },\n  body: { data: {}, resource_id: courierResourceId },\n}); As chaves de ação (key) são definidas pela configuração de etapas do seu negócio: consulte-as com available_actions.",{"id":1901,"title":1902,"titles":1903,"content":1904,"level":263},"\u002Fdocs\u002Fapi\u002Fsdks#python","Python",[205],"O cliente (packages\u002Fsdk-py) usa httpx e modelos Pydantic v2 gerados.",{"id":1906,"title":1883,"titles":1907,"content":1908,"level":301},"\u002Fdocs\u002Fapi\u002Fsdks#instalar-a-partir-do-repositório-1",[205,1902],"pip install \u002Fcaminho\u002Fpara\u002Fwagendapp\u002Fpackages\u002Fsdk-py\n# ou, com uv:\nuv pip install \u002Fcaminho\u002Fpara\u002Fwagendapp\u002Fpackages\u002Fsdk-py",{"id":1910,"title":1888,"titles":1911,"content":1912,"level":301},"\u002Fdocs\u002Fapi\u002Fsdks#agendar-um-horário-1",[205,1902],"from datetime import UTC, datetime\nfrom wagend import Fiuit, WagendError\n\nwith Fiuit(\"https:\u002F\u002Fapi.fiuit.com\u002Fv1\", \"wg_live_xxx\") as api:\n    try:\n        service = api.list_services()[0]\n        slots = api.list_slots(\n            str(service.id), datetime(2026, 10, 15, 8, tzinfo=UTC), datetime(2026, 10, 15, 13, tzinfo=UTC)\n        )\n\n        hold = api.request(\n            \"POST\", \"\u002Fholds\",\n            json={\"service_id\": str(service.id), \"start\": slots[0].start.isoformat(), \"party_size\": 1},\n            idempotency_key=\"reserva-carlos-2026-10-15\",\n        )\n        booking = api.request(\n            \"POST\", f\"\u002Fholds\u002F{hold['id']}\u002Fconfirm\",\n            json={\"customer\": {\"name\": \"Carlos\", \"phone\": \"+5491155550000\"}},\n        )\n        print(booking[\"status\"])\n    except WagendError as err:\n        print(err.status, err.code, err.retry_after) list_services() e list_slots() devolvem modelos tipados. Para as demais rotas use api.request(método, rota, params=…, json=…); você pode validar a resposta com wagend.models.Idempotência: as escritas levam Idempotency-Key (uma é gerada se você não passar idempotency_key). Repita com a mesma chave.Erros: WagendError com .status, .code, .problem e .retry_after (em 429).Paginação: api.paginate(\"\u002Fbookings\", params={\"limit\": 50}) percorre todas as páginas. for booking in api.paginate(\"\u002Fbookings\", params={\"limit\": 50}):\n    print(booking[\"id\"])",{"id":1914,"title":1780,"titles":1915,"content":1916,"level":263},"\u002Fdocs\u002Fapi\u002Fsdks#limites-de-uso",[205],"O limite é por chave e por projeto. Diante de um 429, espere retry_after \u002F retryAfter segundos antes de tentar de novo. Veja Convenções.",{"id":1918,"title":1919,"titles":1920,"content":1921,"level":263},"\u002Fdocs\u002Fapi\u002Fsdks#regenerar-os-sdks","Regenerar os SDKs",[205],"Se o contrato mudar, make sdk regenera os dois a partir de openapi.yaml e make sdk-check falha se ficaram desatualizados. html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"id":210,"title":209,"titles":1923,"content":1924,"level":257},[],"Todas as operações da API v1 que aceitam uma chave, geradas do contrato OpenAPI no build do site. Esta página é gerada em cada build a partir de packages\u002Fopenapi\u002Fopenapi.yaml (OpenAPI 3.1): não é escrita à mão. Inclui as operações que aceitam uma chave de API, agrupadas pelos temas do contrato. As rotas que só aceitam a sessão do painel ficam fora desta referência. Nomes, resumos e descrições de cada operação vêm do contrato.",{"id":1926,"title":1927,"titles":1928,"content":1929,"level":263},"\u002Fdocs\u002Fapi\u002Freference#temas","Temas",[209],"TemasOperaçõesslots1holds3bookings31booking-series6catalog37products19zones8payments79stats8customers22search1flows18comments8conversations14simulator7automations14platform25auth1knowledge19tenancy9site4notifications8prepaid13attachments4bot8feedback4help1",{"id":1931,"title":1932,"titles":1933,"content":1934,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fslots","API · slots",[],"Operações de slots do contrato OpenAPI que aceitam uma chave de API.",{"id":1936,"title":1937,"titles":1938,"content":1939,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fslots#get-slots","GET \u002Fslots",[1932],"Horarios disponibles para un servicio Cruza todos los requisitos del servicio (profesional, máquina, sala…). Requiere slots:read. Un servicio desactivado responde 409 service_inactive y un resource_id desactivado 409 resource_inactive (no 404: existen, solo que no se pueden reservar). Usá day o from + to (uno u otro; si no, 422 invalid_slot_query). day es el día de apertura en la zona del negocio (F3-503): incluye los horarios de la noche que sigue después de las 00:00 (20:00 – 03:00 (+1)) y no la madrugada de ese día, que pertenece a la noche anterior. Un turno puede cruzar las 00:00 sin cortarse. Autenticação: Chave de API ou sessão do painelEscopos: slots:read Parâmetros NomeEmObrigatórioTipoDescriçãoservice_idquerySimstringdayqueryNãostring (date)Día de apertura local (YYYY-MM-DD); sin from\u002Fto.fromqueryNãostring (date-time)Con to; sin day.toqueryNãostring (date-time)party_sizequeryNãointeger default 1resource_idqueryNãostringPreferencia (ej. un barbero)resource_idsqueryNãoarrayCo-responsables activos elegibles; todos quedan ocupados aunque superen el mínimo del requisito. Intersección antes del límite de horarios. No combinar con resource_id (422). Tenant de la credencial y RLS.booking_idqueryNãostring (uuid)Tarea visible del mismo tenant y servicio; excluye su propia ocupación (también pooled). Conserva la zona de la tarea; zone_id explícito diferente responde 422 invalid_slot_query. Si no se envían recursos conserva todos los actuales. Una tarea ajena responde 404.duration_minqueryNãointegerDuración propia de la tarea en minutos (5–1440); reemplaza la del servicio en los requisitos sin duración propia. La agenda del panel la usa para pintar los huecos de un turno estirado o achicado.aroundqueryNãostring (date-time)Hora preferida para ordenarlimitqueryNãointeger default 20zone_idqueryNãostringZona (F1-38): solo sus días y horas, cruzados con la disponibilidad de sus miembros y su tope por franja. Si está desactivada, consulta general como al reagendar; una zona inexistente o ajena devuelve 422 invalid_slot_queryintake_dataqueryNãostringObjeto JSON codificado con el destino del formulario (dirección, CEP, barrio, coordenadas). Resuelve la zona con la misma regla de POST \u002Fholds y POST \u002Fbookings. No combinar con zone_id (422 intake_invalid). Sin contexto de destino\u002Fzone_id, consulta general del servicio. Mantiene slots:read y tenant de la credencial. Respostas StatusDescrição200OK (object)defaultError (RFC 9457) (Problem)",{"id":1941,"title":1942,"titles":1943,"content":1944,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fholds","API · holds",[],"Operações de holds do contrato OpenAPI que aceitam uma chave de API.",{"id":1946,"title":1947,"titles":1948,"content":1949,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fholds#post-holds","POST \u002Fholds",[1942],"Crear una pre-reserva (hold) de 10 minutos La misma Idempotency-Key conserva el conjunto pedido, también en replays concurrentes del core. Otro conjunto responde 422 idempotency_conflict; el orden de recursos no altera el payload. 409 membership_blocked si el cliente tiene la membresía que cubre ese servicio bloqueada por impago (plan en el cuerpo; se libera al pagar la cuota). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoIdempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Corpo da solicitação (obrigatório) application\u002Fjson: HoldCreate Respostas StatusDescrição201Creado (Booking)409Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":1951,"title":1952,"titles":1953,"content":1954,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fholds#delete-holdsid","DELETE \u002Fholds\u002F{id}",[1942],"Liberar un hold Cancelar nunca se bloquea (F3-181, decisión del dueño 2026-10-09). Con etapas v2, liberar una tarea held\u002Fpending_payment no exige los datos de la etapa cancelada ni de la salida «cancelar». Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição204LiberadodefaultError (RFC 9457) (Problem)",{"id":1956,"title":1957,"titles":1958,"content":1959,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fholds#post-holdsidconfirm","POST \u002Fholds\u002F{id}\u002Fconfirm",[1942],"Confirmar un hold (o pasarlo a pending_payment si requiere seña) Serializa la confirmación con reinicios de configuración. Un hold pendiente cuyo servicio está inactivo responde 409 service_inactive; una confirmación ya comprometida conserva su replay idempotente. Confirmar para otro cliente (customer_id) cuya membresía que cubre ese servicio está bloqueada por impago responde 409 membership_blocked. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringIdempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Corpo da solicitação (obrigatório) application\u002Fjson: HoldConfirm Respostas StatusDescrição200OK (Booking)409Error (RFC 9457) (Problem)410Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":1961,"title":1962,"titles":1963,"content":1964,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings","API · bookings",[],"Operações de bookings do contrato OpenAPI que aceitam uma chave de API.",{"id":1966,"title":1967,"titles":1968,"content":1969,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#get-bookings","GET \u002Fbookings",[1962],"Listar reservas Por defecto from\u002Fto filtran por el inicio de la reserva (from \u003C= inicio \u003C to). Con overlap=true devuelven toda reserva que ocupa parte del rango (inicio \u003C to y fin > from): una tarea que empezó antes y sigue dentro también entra. El orden y el cursor siguen siendo por inicio. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãofromqueryNãostring (date-time)toqueryNãostring (date-time)overlapqueryNãoboolean default falsetrue: from\u002Fto filtran por solapamiento (inicio \u003C to y fin > from) en vez de por inicio. Por defecto false.include_carriedqueryNãoboolean default falseF3-573 (arrastre): con from\u002Fto, suma las tareas iniciadas que pasaron su fin y siguen ocupando su lugar en el rango (servicio de día completo o que no pide una persona, hasta 7 días después de su fin), aunque hayan empezado antes. Vienen con carried_over=true. Misma regla que GET \u002Fslots. Las reglas de visibilidad (staff) no cambian. Por defecto false: el listado no cambia.feesqueryNãostring all, due default allFIU-510 · Tareas-cuota de las suscripciones. all (por defecto) las lista todas. due deja solo las por cobrar vencidas o dentro de su aviso (notice_days del plan) y saca las pagadas, las perdonadas y las de cobro automático al día (vuelven si el cobro falla o no llega). Es la vista de Hoy y Trabajo del panel, de Wagy y del MCP (list_tasks). Solo filtra: no cambia montos ni estados.scheduling_statequeryNãopending, scheduled, queuestatusqueryNãoBookingStatusresource_idqueryNãostringcustomer_idqueryNãostringlimitqueryNãointeger default 25cursorqueryNãostring Respostas StatusDescrição200OK (BookingPage)defaultError (RFC 9457) (Problem)",{"id":1971,"title":1972,"titles":1973,"content":1974,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#post-bookings","POST \u002Fbookings",[1962],"Crear una tarea programada, de cola o pendiente de horario schedule_later=true sólo para servicios scheduled: owner\u002Fmanager o API key bookings:write. Crea pending_schedule sin allocations, vencimiento ni cobro; resource_ids son asignaciones operativas. false mantiene el alta legacy: scheduled requiere start, queue permite ventana opcional. Tenant desde credencial; misma clave y cuerpo devuelve el mismo ID aun tras programarlo; cuerpo distinto devuelve 422 idempotency_conflict. 409 membership_blocked si el cliente tiene la membresía que cubre ese servicio bloqueada por impago (plan en el cuerpo; se libera al pagar la cuota).\nCon flow_id en lugar de service_id (F3-457, ADR 0040 §4.3) crea una tarea sin servicio de un flujo por intención (reclamo, presupuesto): subject.type=intent, confirmada, en cola, sin horario, sin capacidad y sin monto (POST \u002Fv1\u002Fpayments\u002Fbookings\u002F{id}\u002Fdue lo fija; se cobra como cualquier tarea). Mismo permiso (tasks:create, API key bookings:write). 404 si el flujo no existe; 422 flow_not_intent si no es por intención, está desactivado o no es de cola. Emite booking.created (no booking.confirmed: no avisa confirmación al cliente). Autenticação: Chave de API ou sessão do painelEscopos: bookings:write Parâmetros NomeEmObrigatórioTipoDescriçãoIdempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Corpo da solicitação (obrigatório) application\u002Fjson: BookingCreate Respostas StatusDescrição201Creado (Booking)409Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":1976,"title":1977,"titles":1978,"content":1979,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#get-bookingsid","GET \u002Fbookings\u002F{id}",[1962],"Detalle de reserva Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200OK (Booking)defaultError (RFC 9457) (Problem)",{"id":1981,"title":1982,"titles":1983,"content":1984,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#patch-bookingsid","PATCH \u002Fbookings\u002F{id}",[1962],"Editar una reserva (cliente, servicio, recurso, personas, seña, notas, intake) Edición con las mismas garantías del motor (F1-27): una sola transacción con la reserva bloqueada, todo o\nnada, auditada con diff sin datos personales y con el evento booking.updated. Todos los campos son\nopcionales y null equivale a \"no tocar\". Permisos. owner, manager y API key con bookings:write: todos los campos. staff: solo notes e\nintake_data de reservas de SUS recursos (otro campo ⇒ 403 edit_forbidden; reserva ajena ⇒ 404).\nviewer ⇒ 403. El workspace sale siempre de la credencial.Idempotency-Key. Opcional si el cuerpo trae solo notes\u002Fintake_data (compatibilidad con v1);\nobligatorio para cualquier otro campo (422 idempotency_key_required). Misma clave + mismo cuerpo\ndevuelve la reserva sin volver a ejecutar; con otro cuerpo, 422 idempotency_conflict.Estados terminales (completada, cancelada, ausencia, fallida, vencida): solo notes y datos de\ncontacto; el resto ⇒ 409 booking_not_editable.Servicio, recurso y personas se revalidan con el motor de slots sobre el MISMO horario (grilla,\nhorario del recurso, requisitos, capacidad pooled y EXCLUDE); no se re-aplican lead time, anticipación\nmáxima ni cutoff. Sin lugar ⇒ 409 slot_taken (con reasons) y no queda ningún cambio. Cambiar de\nservicio conserva al mismo recurso si sigue sirviendo. No se cambia entre servicios con horario y de\ncola (422 service_mode_mismatch). En cola, el recurso nuevo respeta el tope de tareas activas\n(409 queue_full; 422 resource_not_eligible si no es del grupo del servicio).Seña. Ya paga: no se admite un cambio de servicio o de personas que altere su monto\n(409 deposit_locked). Pendiente: rige el monto nuevo y, si pasa a 0, la reserva se confirma.\nLa seña se cobra con POST \u002Fpayments\u002Fmanual (cobro unificado, F3-492: forma de pago y auditoría);\neditar la reserva ya no la marca pagada.Paquete o club (F3-261). Una tarea que usa una unidad de un plan no cambia de cliente ni de servicio\n(409 booking_covered_by_plan): primero se le quita el plan (POST \u002Fprepaid\u002Fbookings\u002F{booking_id}\u002Frelease).Cliente. customer_id reasigna a otro cliente existente del workspace (404 si no existe o es de\nprueba; las reservas de prueba no cambian de cliente: 422 test_booking_locked). customer corrige\nnombre, teléfono, email e idioma de la ficha (un teléfono de otro cliente ⇒ 409\ncustomer_phone_taken). La auditoría enmascara teléfono, email y nombre.Revisar dirección (F3-151). destination_review_action: confirm es una declaración explícita del\neditor autorizado, también si los valores son los mismos. Requiere expected_version (omitida ⇒ 422)\ny destino con texto más par de coordenadas finito\u002Fen rango (422 intake_invalid, reason\ndestination_review_requires_point). Resuelve sólo revisar-direccion, atómicamente y con auditoría,\nsin validar geocodificación externa; notas, coordenadas o PATCH tags sin esa acción no la resuelven.\nSe gobierna por la misma autorización de intake_data, incluido staff de SUS recursos y API key\nbookings:write; no habilita acciones autónomas del LLM. No exige Idempotency-Key por sí sola.Concurrencia. expected_version opcional salvo esa acción: si cambió ⇒ 409 version_conflict.Autenticação: Chave de API ou sessão do painelEscopos: bookings:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringIdempotency-KeyheaderNãostringObligatorio salvo que el cuerpo traiga solo notes\u002Fintake_data. Corpo da solicitação (opcional) application\u002Fjson: BookingPatch Respostas StatusDescrição200Reserva tras la edición (sin cambios si el cuerpo no modifica nada) (Booking)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)410Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":1986,"title":1987,"titles":1988,"content":1989,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#post-bookingsidcancel","POST \u002Fbookings\u002F{id}\u002Fcancel",[1962],"Cancelar Cancelar nunca se bloquea (F3-181, decisión del dueño 2026-10-09). Con etapas v2 no exige los datos de la etapa cancelada ni los ítems de la salida «cancelar»; para registrarlos, usar POST \u002Fwork-items\u002F{id}\u002Ftransitions\u002F{stage}, donde son opcionales. Cancelar una tarea principal cancela también sus tareas vinculadas que todavía no empezaron (motivo case_cancelled, F3-585); las que están en curso siguen. Para avisar antes, leer pending_ids de GET \u002Fbookings\u002F{id}\u002Fcase. Reprogramar no cancela el caso. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (opcional) application\u002Fjson: object Respostas StatusDescrição200OK (Booking)defaultError (RFC 9457) (Problem)",{"id":1991,"title":1992,"titles":1993,"content":1994,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#get-bookingsidcase","GET \u002Fbookings\u002F{id}\u002Fcase",[1962],"Caso de una tarea: sus tareas vinculadas y qué las traba F3-585 (versión liviana): la tarea que reservó el cliente es el caso y sus tareas vinculadas son tareas normales. Se pide por la principal o por cualquier vinculada y devuelve lo mismo. Una tarea sin vinculadas es un caso vacío (tasks: []). Una vinculada está trabada (blocked) mientras la que la bloquea no se completó. Mismo alcance que GET \u002Fbookings\u002F{id}: staff solo pide el caso de una tarea suya (si no, 404), y entonces ve todas las vinculadas del caso. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200OK (Case)defaultError (RFC 9457) (Problem)",{"id":1996,"title":1997,"titles":1998,"content":1999,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#put-bookingsiditems","PUT \u002Fbookings\u002F{id}\u002Fitems",[1962],"Editar los productos del pedido de una tarea (cantidades, agregar, quitar) Campo «Productos» del formulario (F3-148): reemplazo completo e idempotente de las líneas de\nintake_data.items. Cada línea del cuerpo es solo {product_id, qty}; nombre, unidad y precio unitario\n(unit_price_minor, unidad menor de la moneda) los copia el servidor del catálogo AL CREAR la línea y una\nlínea existente los conserva (cambiar el catálogo no altera pedidos). qty_requested (lo pedido) no\ncambia: una línea agregada después de crear la tarea queda con qty_requested: 0. El servidor recalcula\nitems_total y el total del formulario con la definición cotizada de la tarea. Permisos (matriz única): order:edit (owner, manager; API key con bookings:write) agrega, quita y\ncambia cantidades en tareas no cerradas (no en cancelled, expired, failed, no_show ⇒ 409\norder_not_editable). order:edit_own (staff): solo en tareas asignadas a sus recursos (si no, 404) y en\ncurso (checked_in; si no, 409 order_not_editable con reason: not_in_progress), solo cantidades\n(incluso 0) y productos que el servicio ofrece, sin quitar líneas (403 order_forbidden), y solo si el\ndueño encendió staff_can_edit_order (apagado por defecto; si no, 403). viewer ⇒ 403.Catálogo. Una línea nueva exige un producto activo, del negocio y ofrecido por el servicio\n(422 order_invalid con reason: product_unavailable) y al menos una unidad; sin productos repetidos\n(duplicate_product); rangos del campo (qty_range, lines_range, units_range); sin campo «Productos»\nen la tarea ⇒ no_items_field.Valor a cobrar. Si ya estaba congelado (due_minor), el servidor lo ajusta en la MISMA transacción\npor la diferencia del cálculo (respeta un ajuste manual previo), con motivo «cambio de pedido» y autor =\nquien editó, auditado (payment.due_adjusted); no exige payments:adjust. Si lo ya cobrado supera el\nnuevo valor ⇒ 409 order_below_paid (con paid_minor y due_minor) y no cambia nada: lo resuelve un\nmanager. Con API key, leer lo cobrado exige además payments:read_balance.Auditoría booking.order_changed con ids de producto, cantidades y totales (sin datos personales).Concurrencia. expected_version opcional: si la reserva cambió ⇒ 409 version_conflict. PATCH \u002Fbookings\u002F{id} no cambia los ítems (salvo en un hold): un intake_data con otras cantidades ⇒ 422\norder_invalid con reason: use_items_endpoint; si no trae items, se conservan los guardados. Autenticação: Chave de API ou sessão do painelEscopos: bookings:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: OrderItemsIn Respostas StatusDescrição200La tarea con el pedido actualizado (sin cambios si las líneas son las mismas) (Booking)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":2001,"title":2002,"titles":2003,"content":2004,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#post-bookingsidmessage","POST \u002Fbookings\u002F{id}\u002Fmessage",[1962],"Mensaje operativo al cliente de la tarea F3-115. Resuelve conversación y canal en el servidor y reutiliza el envío manual del Inbox: persiste una salida pending (outbox durable), deja la conversación en modo humano, crea la conversación si no existía y registra booking.message_sent en la línea de tiempo de la tarea (solo el canal, nunca el texto). Es un mensaje OPERATIVO: el opt-out de promociones no lo bloquea; la pausa de canal sí (409 no_message_channel). Idempotency-Key obligatoria (24 h para sesión de panel; una clave con otro texto u opción devuelve 422). Rate limit por usuario (429 rate_limited, por defecto 6 por minuto). Roles owner, manager y staff (solo sus tareas, si no 404); viewer 403. Scope de API key messages:write. Autenticação: Chave de API ou sessão do painelEscopos: messages:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)Idempotency-KeyheaderSimstring Corpo da solicitação (obrigatório) application\u002Fjson: TaskMessageIn Respostas StatusDescrição201Persistido, pendiente de despacho durable (TaskMessageOut)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2006,"title":2007,"titles":2008,"content":2009,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#get-bookingsidmessage-options","GET \u002Fbookings\u002F{id}\u002Fmessage-options",[1962],"Canales por los que escribirle al cliente de la tarea F3-115. El servidor elige: la conversación vinculada a la tarea (origin), si no la última conversación del cliente, si no un canal nuevo con sus datos de contacto (WhatsApp si tiene teléfono y hay uno conectado, email si tiene email y Resend está activo). default_key es la primera opción sin bloqueo; blocked explica por qué una opción no se puede usar (pausa de canal, conexión caída, cliente de prueba). Sin opciones, unavailable_reason dice por qué. Roles owner, manager y staff (solo tareas asignadas a sus recursos, si no 404); viewer 403. Scope de API key messages:read. Autenticação: Chave de API ou sessão do painelEscopos: messages:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Respostas StatusDescrição200Opciones de envío (TaskMessageOptions)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)",{"id":2011,"title":2012,"titles":2013,"content":2014,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#post-bookingsidreschedule","POST \u002Fbookings\u002F{id}\u002Freschedule",[1962],"Reprogramar (crea una reserva nueva y cancela la anterior) La pausa del servicio no bloquea reprogramar una tarea existente. Conserva validaciones de horario, recursos y capacidad; si falla, la tarea original queda intacta. No habilita reservas nuevas ni oferta de slots. Con etapas v2 no se bloquea por los datos de la etapa cancelada, porque cancelar nunca se bloquea (F3-181). Staff solo mueve sus turnos y solo a sus propias agendas (403 reschedule_forbidden si no). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringIdempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Corpo da solicitação (obrigatório) application\u002Fjson: object Respostas StatusDescrição200Nueva reserva (Booking)defaultError (RFC 9457) (Problem)",{"id":2016,"title":2017,"titles":2018,"content":2019,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#post-bookingsidschedule","POST \u002Fbookings\u002F{id}\u002Fschedule",[1962],"Programar o cambiar ventana sin cambiar el ID Owner\u002Fmanager o API key bookings:write, CSRF para sesión. Tenant desde credencial. Clave obligatoria, operación+cuerpo con huella durable; replay no incrementa versión. expected_version stale devuelve 409 version_conflict. Tareas terminales y holds técnicos con expires_at devuelven 409 booking_not_editable. Pending scheduled no consume capacidad: schedule valida horario\u002Frequisitos\u002Frecursos\u002Fzona con el motor y sus constraints. Unschedule mantiene estado operativo, pagos\u002Fvencimientos y asignación real sin capacidad. Queue conserva contador\u002Fis_queue aunque tenga ventana; no ocupa capacidad horaria. Pausar el servicio no bloquea operaciones sobre tareas existentes; se mantienen validaciones de horario, recursos y capacidad. Autenticação: Chave de API ou sessão do painelEscopos: bookings:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringIdempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Corpo da solicitação (obrigatório) application\u002Fjson: ScheduleBookingIn Respostas StatusDescrição200Tarea actualizada o replay (Booking)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":2021,"title":2022,"titles":2023,"content":2024,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#post-bookingsidunschedule","POST \u002Fbookings\u002F{id}\u002Funschedule",[1962],"Quitar horario conservando ejecución, pago y asignación Owner\u002Fmanager o API key bookings:write, CSRF para sesión. Tenant desde credencial. Clave obligatoria, operación+cuerpo con huella durable; replay no incrementa versión. expected_version stale devuelve 409 version_conflict. Tareas terminales y holds técnicos con expires_at devuelven 409 booking_not_editable. Pending scheduled no consume capacidad: schedule valida horario\u002Frequisitos\u002Frecursos\u002Fzona con el motor y sus constraints. Unschedule mantiene estado operativo, pagos\u002Fvencimientos y asignación real sin capacidad. Queue conserva contador\u002Fis_queue aunque tenga ventana; no ocupa capacidad horaria. Autenticação: Chave de API ou sessão do painelEscopos: bookings:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringIdempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Corpo da solicitação (obrigatório) application\u002Fjson: UnscheduleBookingIn Respostas StatusDescrição200Tarea actualizada o replay (Booking)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":2026,"title":2027,"titles":2028,"content":2029,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#get-conversationsidwork-items","GET \u002Fconversations\u002F{id}\u002Fwork-items",[1962],"Tareas (reservas) creadas desde una conversación Las reservas cuyo origen es esta conversación (0, 1 o N), de la más reciente a la más antigua. No incluye holds sin confirmar ni vencidos. Un usuario staff solo ve las de sus recursos. Conversación inexistente, de otro workspace o (rol staff, F2-52) de un cliente sin tareas suyas: 404. API keys: scope bookings:read, solo GET (ADR 0017). Autenticação: Chave de API ou sessão do painelEscopos: bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200OK (object)defaultError (RFC 9457) (Problem)",{"id":2031,"title":2032,"titles":2033,"content":2034,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#get-task-linessuggestions","GET \u002Ftask-lines\u002Fsuggestions",[1962],"Buscador de «+ Agregar»: catálogo y ítems usados antes Un solo buscador (decisión 3): productos y servicios activos del catálogo y, después, los ítems libres usados antes en el negocio (source: memory, último precio y, a quien tiene tasks:costs (por defecto el dueño), último costo; suggest_save desde el tercer uso). Permiso tasks:edit_lines; API key bookings:read. Autenticação: Chave de API ou sessão do painelEscopos: bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãoqquerySimstring Respostas StatusDescrição200Successful Response (LineSuggestions)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2036,"title":2037,"titles":2038,"content":2039,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#get-work-items","GET \u002Fwork-items",[1962],"Consulta unificada de tareas Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãofeesqueryNãostring all, due default allFIU-510 · Tareas-cuota de las suscripciones. all (por defecto) las lista todas. due deja solo las por cobrar vencidas o dentro de su aviso (notice_days del plan) y saca las pagadas, las perdonadas y las de cobro automático al día (vuelven si el cobro falla o no llega). Es la vista de Hoy y Trabajo del panel, de Wagy y del MCP (list_tasks). Solo filtra: no cambia montos ni estados.scheduling_statequeryNãopending, scheduled, queuemin_latqueryNãonumber \u002F null (null)Inclusive geographic box; supply all four bounds together, minimum \u003C= maximum.max_latqueryNãonumber \u002F null (null)Inclusive geographic box; supply all four bounds together, minimum \u003C= maximum.min_lngqueryNãonumber \u002F null (null)Inclusive geographic box; supply all four bounds together, minimum \u003C= maximum.max_lngqueryNãonumber \u002F null (null)Inclusive geographic box; supply all four bounds together, minimum \u003C= maximum.statusqueryNãostring \u002F null (null)base_statequeryNãostring \u002F null (null)Estado base fijo (ADR 0023, F1-37), el que usan filtros, estadísticas y mapa: pending (held, pending_payment, confirmed), in_progress (checked_in), completed, cancelled (cancelled, expired), absent (no_show), refused (failed). No depende del nombre de la etapa.stagequeryNãostring \u002F null (null)resource_idqueryNãostring \u002F null (null)customer_idqueryNãostring \u002F null (null)fromqueryNãostring \u002F null (null)toqueryNãostring \u002F null (null)created_fromqueryNãostring \u002F null (null)Desde cuándo entró la tarea (created_at, incluido; F3-729). Independiente de from\u002Fto, que miran la fecha de trabajo. Con created_from o created_to no entran los holds sin concretar (held, expired), como en el conteo del uso del flujo.created_toqueryNãostring \u002F null (null)Hasta cuándo entró la tarea (created_at, excluido; F3-729). Debe ser posterior a created_from (422).minequeryNãoboolean \u002F null (null)Solo lo asignado a los recursos propios de quien consulta, sin lo que solo podría tomar (F3-729): el alcance own del uso de un flujo, para que el link de un día traiga lo mismo que se contó.priorityqueryNãostring \u002F null (null)tagqueryNãostring \u002F null (null)typequeryNãostring \u002F null (null)flow_idqueryNãostring \u002F null (null)Tareas de ese flujo (F3-33). Con group_by=stage, groups trae todas las etapas activas del flujo en su orden (también las vacías, con count 0), con label y position.statusesqueryNãoarray\u003CBookingStatus> \u002F null (null)Tareas en alguno de esos estados (repetí el parámetro). Se combina con status; los conteos de groups, total y la paginación salen de la misma selección (F3-33).resource_idsqueryNãoarray \u002F null (null)Tareas de alguno de esos recursos (repetí el parámetro), p. ej. «Mías» con varias agendas. Se combina con resource_id; un staff solo alcanza sus recursos (F3-33).fulfillment_modequeryNãostring \u002F null (null)unassignedqueryNãoboolean \u002F null (null)true lista solo el trabajo que nadie tiene (sin recurso asignado): el conjunto \"Sin asignar\". Un staff ve ahí lo que puede tomar (servicios cuyo grupo incluye alguno de sus recursos); false lista lo ya asignado.attentionqueryNãostring \u002F null (null)Selección compartida con los contadores de Control. Sin fechas implícitas; se combina con los demás filtros mediante AND. Avisos, dirección y cobertura solo incluyen abiertas; sin zona excluye fuera de cobertura; sin asignar excluye holds asignados. Evaluaciones incluye finales.overlapqueryNãoboolean default falseIncluye tareas cuya ventana cruza el rango aunque empiecen antes de from. Sin ventana usa el plazo.include_carriedqueryNãoboolean default falseF3-573 (arrastre): con from\u002Fto, suma las tareas iniciadas que pasaron su fin y siguen ocupando su lugar en el rango (servicio de día completo o que no pide una persona, hasta 7 días después de su fin), aunque hayan empezado antes. Vienen con carried_over=true. Misma regla que GET \u002Fslots. Las reglas de visibilidad (staff) no cambian. Por defecto false: el listado no cambia.latequeryNãoboolean \u002F null (null)true lista solo las tareas atrasadas (fechadas, en etapa no final, con el fin de la ventana más late_grace_min vencidos); false lista el resto. Combinable con las vistas, p. ej. view=today.zone_idqueryNãostring \u002F null (null)Tareas de esa zona (F1-38).no_zonequeryNãoboolean \u002F null (null)true lista las tareas vivas con destino que ninguna zona cubre (solo si el negocio tiene zonas): lo que aparece en \"Necesita tu atención\". false las excluye.originqueryNãostring \u002F null (null)sourcequeryNãostring \u002F null (null)openqueryNãoboolean \u002F null (null)true lista solo las tareas abiertas (ni completed, cancelled, expired, no_show ni failed) de cualquier día; false lista solo las terminadas o canceladas. Es lo que usa «Pendientes» de Hoy.untilqueryNãostring \u002F null (null)Solo con open=true: deja las tareas fechadas antes de este instante (exclusivo) y también las que no tienen fecha (por agendar, cola sin plazo). A diferencia de to, no excluye lo que no tiene fecha.qqueryNãostring \u002F null (null)Búsqueda literal sin comodines sobre nombre canónico y traducciones persistidas del servicio, notas, etiquetas e ID de tareas visibles; independiente del idioma del panel.matchqueryNãostring \u002F null (null)FIU-560 · Lo que filtra una vista de Trabajo (criterios v2), como JSON (WorkItemMatch, hasta 4096 caracteres): estado de selección múltiple, fecha con su campo y rango relativo, y grupos «o» (any_of). La fecha relativa se resuelve en la zona horaria del proyecto al pedir la primera página (el cursor conserva ese instante). Se combina con AND con el resto de los parámetros. Inválido: 422.order_byqueryNãostring start, due, priority, created, completed default startdirectionqueryNãostring asc, desc default ascgroup_byqueryNãostring \u002F null (null)Conteos por grupo en groups. flow agrupa por flujo (con el nombre del flujo en label).viewqueryNãostring all, inbox, today, upcoming default alllimitqueryNãointeger default 25cursorqueryNãostring \u002F null (null) Respostas StatusDescrição200Successful Response (WorkItemPage)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":2041,"title":2042,"titles":2043,"content":2044,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#get-work-itemsid","GET \u002Fwork-items\u002F{id}",[1962],"Tarea y próximos pasos autorizados Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200OK (Booking)defaultError (RFC 9457) (Problem)",{"id":2046,"title":2047,"titles":2048,"content":2049,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#patch-work-itemsid","PATCH \u002Fwork-items\u002F{id}",[1962],"Editar metadata de tarea Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: WorkItemPatch Respostas StatusDescrição200Successful Response (Booking)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":2051,"title":2052,"titles":2053,"content":2054,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#get-work-itemsidjourney","GET \u002Fwork-items\u002F{id}\u002Fjourney",[1962],"Recorrido completo de una tarea con sus versiones históricas Solo equipo autorizado (tasks:read y alcance de tareas, incluido historial terminado); API key bookings:read. Eventos cronológicos sin el límite de 100 del stage-history, y mapas v2 de las versiones registradas. Nunca sustituye una versión ausente por la vigente. Sin mutaciones ni acceso mediante enlaces de cliente. Autenticação: Chave de API ou sessão do painelEscopos: tasks:read, bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Respostas StatusDescrição200Eventos y versiones del flujo de esta tarea, bajo RLS del proyecto (WorkItemJourney)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2056,"title":2057,"titles":2058,"content":2059,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#get-work-itemsidlines","GET \u002Fwork-items\u002F{id}\u002Flines",[1962],"Ítems de la tarea, bloques del presupuesto y margen Permiso tasks:edit_lines (el viewer y el colaborador no ven dinero; staff: solo tareas asignadas a sus recursos, si no 404); API key bookings:read. margin y cost_minor solo para quien tiene tasks:costs (FIU-597: por defecto solo el dueño; API key con payments:read_balance); los demás ven solo el costo de las líneas que cargaron. awaiting_approval_minor: lo que no se cobra hasta que el cliente apruebe el presupuesto actualizado. Autenticação: Chave de API ou sessão do painelEscopos: bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Respostas StatusDescrição200Successful Response (TaskLinesOut)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2061,"title":2062,"titles":2063,"content":2064,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#post-work-itemsidlines","POST \u002Fwork-items\u002F{id}\u002Flines",[1962],"Agregar un ítem a la tarea (del catálogo o libre) Del catálogo (product_id o service_id): nombre y precio se copian del catálogo. Libre (name,\nkind, unit_price_minor): sin producto oculto; save_to_catalog lo guarda como producto o servicio.\nSube el valor a cobrar exactamente el subtotal de la línea. Idempotente por tarea; auditado. FIU-472 (ADR 0040 §3, decisiones 1A a 5A). Exactamente uno de product_id, service_id (catálogo: nombre y precio copiados, un precio enviado se ignora) o name (ítem libre: kind y unit_price_minor obligatorios; sin producto oculto). cost_minor opcional: el cliente nunca lo ve y no entra en Dinero (solo el margen). save_to_catalog: crea el producto (o el servicio, como el de la tarea) sin que el bot lo ofrezca; exige products:write\u002Fcatalog:write (403 line_forbidden, reason: catalog_forbidden). Sube el valor a cobrar exactamente el subtotal de la línea (motivo «ítems de la tarea»); con un presupuesto aceptado, nace el actualizado para aprobar. Permiso tasks:edit_lines; API key bookings:write. Idempotente por tarea (Idempotency-Key; otro cuerpo con la misma clave: 422 idempotency_conflict; un reintento responde 200 con replay: true). Auditada (booking.line_added). Errores: 404; 409 line_not_editable (reason: status, completed, covered_by_plan, due_negative), version_conflict; 422 line_invalid (reason: product_unavailable, service_unavailable, lines_range, catalog_duplicate, catalog_service_needs_team). Autenticação: Chave de API ou sessão do painelEscopos: products:write, catalog:write, bookings:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)Idempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Corpo da solicitação (obrigatório) application\u002Fjson: LineAddIn Respostas StatusDescrição201Successful Response (TaskLinesOut)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2066,"title":2067,"titles":2068,"content":2069,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#patch-work-itemsidlinesline_id","PATCH \u002Fwork-items\u002F{id}\u002Flines\u002F{line_id}",[1962],"Editar un ítem de la tarea De una línea del catálogo cambian la cantidad y el costo (otro campo: 422 line_invalid, reason: catalog_line_fixed); de una libre, también nombre, tipo, unidad y precio. cost_minor: null borra el costo. Mueve el valor a cobrar la diferencia; si lo ya cobrado quedaría por encima, 409 order_below_paid y nada cambia. Staff: solo las líneas que cargó (403 line_forbidden, reason: not_own_line). Idempotente; auditada (booking.line_changed). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)line_idpathSimstring (uuid)Idempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Corpo da solicitação (obrigatório) application\u002Fjson: LineEditIn Respostas StatusDescrição200Successful Response (TaskLinesOut)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2071,"title":2072,"titles":2073,"content":2074,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#delete-work-itemsidlinesline_id","DELETE \u002Fwork-items\u002F{id}\u002Flines\u002F{line_id}",[1962],"Quitar un ítem de la tarea Baja el valor a cobrar el subtotal de la línea; si lo ya cobrado quedaría por encima, 409. Baja el valor a cobrar el subtotal de la línea; si lo ya cobrado quedaría por encima, 409 order_below_paid (paid_minor, due_minor) y nada cambia. Idempotente; auditada (booking.line_removed). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)line_idpathSimstring (uuid)expected_versionqueryNãointeger \u002F null (null)Idempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Respostas StatusDescrição200Successful Response (TaskLinesOut)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2076,"title":2077,"titles":2078,"content":2079,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#post-work-itemsidofferskey","POST \u002Fwork-items\u002F{id}\u002Foffers\u002F{key}",[1962],"Aceptar una oferta de la etapa actual («Ofrecer…») F3-461 (ADR 0040 §3). Acepta el ítem offer key de la etapa actual de la tarea (visible al equipo). product: suma la línea a esta tarea con nombre, unidad y precio copiados del catálogo (un precio enviado se ignora) y sube su valor a cobrar (ajuste con motivo «oferta aceptada»; en una tarea con «Productos» en el formulario, el mismo recálculo que PUT \u002Fbookings\u002F{id}\u002Fitems). service: crea otra tarea independiente de ese servicio para el mismo cliente (origin.type: offer, origin.booking_id); si el servicio tiene horario, nace por agendar (pending_schedule) y se agenda con POST \u002Fbookings\u002F{id}\u002Fschedule. plan (F3-463): vende el plan al cliente de la tarea con la venta del panel (además prepaid:sell; sin él, 403 offer_forbidden con reason: prepaid_sell): nace la suscripción con su cuota 1, el alta, Por cobrar (created_work_item, origin.type: offer); un plan que ya no se puede vender da 422 offer_item_unavailable con el motivo de prepaid. Sin cascadas: cancelar una de las dos tareas no toca la otra. Idempotente por tarea con Idempotency-Key (otro cuerpo con la misma clave: 422 idempotency_conflict). Auditada (booking.offer_accepted, con la etapa y la clave del ítem). Permiso tasks:accept_offer (owner, manager y staff en tareas asignadas a sus recursos, solo con «El repartidor puede modificar el pedido» encendido: si no, 403 offer_forbidden); API key con bookings:write. Un servicio con ficha obligatoria pide intake_data (si falta, 422 invalid_intake). Errores: 404 offer_not_found; 409 offer_not_available (reason: status, kind, covered_by_plan); 422 offer_item_unavailable (reason: item_required, not_offered, qty_range, intake_not_allowed, qty_not_allowed). Autenticação: Chave de API ou sessão do painelEscopos: bookings:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)keypathSimstringIdempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Corpo da solicitação (obrigatório) application\u002Fjson: OfferAcceptIn Respostas StatusDescrição200La tarea (con lo sumado), la tarea que nació (si el ítem ofrece un servicio o un plan) y el registro (OfferAcceptResult)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2081,"title":2082,"titles":2083,"content":2084,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#get-work-itemsidquote","GET \u002Fwork-items\u002F{id}\u002Fquote",[1962],"Presupuesto de la tarea: lo de ahora y sus revisiones Los bloques de ahora (Mano de obra \u002F Servicios y Materiales \u002F Productos, con subtotales que suman el valor a cobrar) y las revisiones del presupuesto. Permiso tasks:edit_lines; API key bookings:read. Autenticação: Chave de API ou sessão do painelEscopos: bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Respostas StatusDescrição200Successful Response (QuotesOut)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2086,"title":2087,"titles":2088,"content":2089,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#post-work-itemsidquote","POST \u002Fwork-items\u002F{id}\u002Fquote",[1962],"Mandar el presupuesto al cliente El cliente lo recibe por su canal, en dos bloques con subtotales. Queda esperando su respuesta. Decisión 5A. Crea una revisión pending con los bloques de ahora (sin costos) y la manda al cliente por su canal (aviso transaccional task_quote, que se relee antes de salir). La pendiente anterior queda superseded. Idempotente con Idempotency-Key (200 replay: true). 409 quote_not_sendable (reason: status, internal_task). Permiso tasks:edit_lines; API key bookings:write. Auditada (booking.quote_sent). Autenticação: Chave de API ou sessão do painelEscopos: bookings:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)Idempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Respostas StatusDescrição201Successful Response (QuoteResult)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2091,"title":2092,"titles":2093,"content":2094,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#post-work-itemsidquoterevisiondecision","POST \u002Fwork-items\u002F{id}\u002Fquote\u002F{revision}\u002Fdecision",[1962],"Registrar la respuesta del cliente al presupuesto Aprobado: lo aprobado pasa a ser este total y la diferencia ya se puede cobrar. Rechazado: la\ndiferencia sigue sin cobrarse hasta que el equipo corrija y el cliente apruebe otra revisión. Registra la respuesta del cliente a la revisión pendiente (via: customer_channel, in_person, phone). Aprobada: su total pasa a ser lo aprobado y la diferencia ya se cobra; mientras haya una revisión pendiente después de una aprobada, la parte del valor a cobrar por encima de lo aprobado no sale por link, QR, Point ni tarjeta, ni se imputa un cobro manual (409 payment.quote_pending); rechazar la revisión tampoco libera la diferencia. Repetir la misma respuesta no cambia nada; 409 quote_not_pending si la revisión ya no espera respuesta. Auditada (booking.quote_accepted \u002F booking.quote_rejected). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)revisionpathSiminteger Corpo da solicitação (obrigatório) application\u002Fjson: QuoteDecisionIn Respostas StatusDescrição200Successful Response (QuoteResult)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2096,"title":2097,"titles":2098,"content":2099,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#post-work-itemsidreopen","POST \u002Fwork-items\u002F{id}\u002Freopen",[1962],"Reabrir una tarea completada, cancelada o ausente Permiso tasks:reopen (owner\u002Fmanager); API key con bookings:write y creador que siga siendo miembro activo owner\u002Fmanager con tasks:reopen en cada llamada y replay (también MCP); degradado o sin membership responde 403. Motivo obligatorio. Restaura la última etapa activa anterior o su canónica; conserva cobros y seña retenida; no_show no es deuda, al reabrir vuelve a la clasificación de deuda según estado activo\u002Ffecha. Recupera capacidad en la misma transacción (exclusive, pooled, queue). Si ya no hay lugar responde 409 reopen_requires_reschedule: elegir un nuevo start y, opcionalmente, resource_ids y confirmar nuevamente con otra clave; se conserva la misma tarea y sus cobros. Una cancelada con reemplazo por reprogramación no se puede reabrir (409 invalid_transition). Idempotency-Key obligatorio: replay idéntico, otra operación con la misma clave da 409. Historial y auditoría incluyen motivo; workitem.reopened no incluye texto libre. No ejecuta efectos de cierre ni notificaciones de etapa. Autenticação: Chave de API ou sessão do painelEscopos: bookings:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)Idempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Corpo da solicitação (obrigatório) application\u002Fjson: ReopenIn Respostas StatusDescrição200Tarea reabierta (o respuesta original en replay) (WorkItemActionResult)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2101,"title":2102,"titles":2103,"content":2104,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#get-work-itemsidstage-history","GET \u002Fwork-items\u002F{id}\u002Fstage-history",[1962],"Historial inmutable de etapas Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)orderqueryNãostring asc, desc default descOrden de los últimos 100 eventos; asc los presenta cronológicamente. Respostas StatusDescrição200Últimos 100 eventos con actor, origen, clase e ítems históricos; orden elegido (object)404Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2106,"title":2107,"titles":2108,"content":2109,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#post-work-itemsidtoolstool","POST \u002Fwork-items\u002F{id}\u002Ftools\u002F{tool}",[1962],"Usar herramienta de la etapa actual F3-183. Lock, idempotencia, autorización y requisitos. Mutación, cobro, historial y outbox atómicos. Scope bookings:write; payments:record si cobra. Falta de requisitos: 422 stage_requirements_missing. Un dato que vino pero no vale (tipo, formato, rango, opción, campo calculado o ya cargado): 422 stage_field_invalid con invalid (F3-482). No ejecuta charge electrónico (F4-29 pendiente). Autenticação: Chave de API ou sessão do painelEscopos: bookings:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)toolpathSimstringIdempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Corpo da solicitação (obrigatório) application\u002Fjson: WorkItemOperationInput Respostas StatusDescrição200La tarea tras los efectos de servidor y los efectos de cliente (WorkItemActionResult)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2111,"title":2112,"titles":2113,"content":2114,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#post-work-itemsidtransitionsto_stage","POST \u002Fwork-items\u002F{id}\u002Ftransitions\u002F{to_stage}",[1962],"Entrar a una etapa del servicio F3-183. Lock, idempotencia, autorización y requisitos. Mutación, cobro, historial y outbox atómicos. Scope bookings:write; payments:record si cobra. Falta de requisitos: 422 stage_requirements_missing. Un dato que vino pero no vale (tipo, formato, rango, opción, campo calculado o ya cargado): 422 stage_field_invalid con invalid (F3-482). No ejecuta charge electrónico (F4-29 pendiente). Autenticação: Chave de API ou sessão do painelEscopos: bookings:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)to_stagepathSimstringIdempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Corpo da solicitação (obrigatório) application\u002Fjson: WorkItemOperationInput Respostas StatusDescrição200La tarea tras los efectos de servidor y los efectos de cliente (WorkItemActionResult)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2116,"title":2117,"titles":2118,"content":2119,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbookings#get-work-itemsstream","GET \u002Fwork-items\u002Fstream",[1962],"Avisos en vivo de tareas (SSE) text\u002Fevent-stream del proyecto. Eventos work_item.created, work_item.updated (etapa, estado, asignación, horario, pago u otro dato) y work_item.deleted con {event, id}, sin contenido: el cliente vuelve a pedir GET \u002Fv1\u002Fwork-items. Se publican después del commit. Un comentario : cada 15 s mantiene la conexión. Mismos roles que GET \u002Fv1\u002Fwork-items (API key: bookings:read; Mini App: header X-Miniapp-Session). Un cobro, su anulación o una devolución avisan work_item.updated de las tareas que pagan. Rol staff sin gestión: solo recibe avisos de las tareas que ve en ese momento o que ya vio en este stream (al abrirlo o por un aviso anterior); cuando deja de verla (reasignada, tomada por otro) o se borra, recibe un aviso con ese id y nunca el id de una tarea que no pudo ver, tampoco en las bajas. El stream se corta si la sesión se cierra o cambia el rol. Autenticação: Chave de API ou sessão do painelEscopos: bookings:read Respostas StatusDescrição200Stream abierto403Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":2121,"title":2122,"titles":2123,"content":2124,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fbooking-series","API · booking-series",[],"Operações de booking-series do contrato OpenAPI que aceitam uma chave de API. Turnos fijos (F3-620): reservas que se repiten cada 1-4 semanas. Cada fecha es una tarea normal.",{"id":2126,"title":2127,"titles":2128,"content":2129,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbooking-series#get-booking-series","GET \u002Fbooking-series",[2122],"Listar turnos fijos Turnos fijos (F3-620): reservas que se repiten. Owner y manager (permiso tasks:series); API key con bookings:read. Sin dates (están en el detalle). Autenticação: Chave de API ou sessão do painelEscopos: bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãocustomer_idqueryNãostring (uuid)statusqueryNãostring active, cancelledlimitqueryNãointeger default 25cursorqueryNãostring Respostas StatusDescrição200OK (object)defaultError (RFC 9457) (Problem)",{"id":2131,"title":2132,"titles":2133,"content":2134,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbooking-series#post-booking-series","POST \u002Fbooking-series",[2122],"Crear un turno fijo (y sus próximas fechas) Crea la serie y materializa como tareas normales las fechas de las próximas 8 semanas (el resto lo suma un proceso periódico). Cada fecha pasa por las mismas reglas que una reserva: disponibilidad, capacidad, feriados, excepciones y cierres; el precio lo fija el servidor al crear cada fecha y se cobra el día de esa tarea (no se pide seña por adelantado). Si alguna fecha no entra responde 409 series_conflicts con conflicts: [{date, start, reasons}], salvo que esté en skip_dates o se pida skip_conflicts: quedan registradas como salteadas. La confirmación al cliente sale solo con la primera fecha. Owner y manager; API key con bookings:write. Autenticação: Chave de API ou sessão do painelEscopos: bookings:write Parâmetros NomeEmObrigatórioTipoDescriçãoIdempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Corpo da solicitação (obrigatório) application\u002Fjson: BookingSeriesInput Respostas StatusDescrição201Creado (BookingSeries)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":2136,"title":2137,"titles":2138,"content":2139,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbooking-series#get-booking-seriesid","GET \u002Fbooking-series\u002F{id}",[2122],"Leer un turno fijo y sus fechas Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200OK (BookingSeries)defaultError (RFC 9457) (Problem)",{"id":2141,"title":2142,"titles":2143,"content":2144,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbooking-series#patch-booking-seriesid","PATCH \u002Fbooking-series\u002F{id}",[2122],"Editar toda la serie o «esta y las siguientes» (con from_date) Sin from_date: toda la serie. Con from_date posterior al inicio: «esta y las siguientes», que parte la serie (la original termina el día anterior y la respuesta es la serie nueva, con split_from_id). Las fechas futuras que todavía se pueden mover (no iniciadas, sin cobro, sin falta) se cancelan sin aviso y se vuelven a crear con la regla nueva; lo pasado, iniciado, cobrado o con falta no se toca. Cambiar solo la nota o el fin no mueve las fechas existentes. Mismos choques que el alta (409 series_conflicts, skip_dates, skip_conflicts); expected_version da 409 version_conflict si la serie cambió. «Solo esta» es reprogramar o cancelar esa tarea (\u002Fbookings\u002F{id}\u002F…). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: BookingSeriesPatch Respostas StatusDescrição200OK (BookingSeries)409Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":2146,"title":2147,"titles":2148,"content":2149,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbooking-series#post-booking-seriesidcancel","POST \u002Fbooking-series\u002F{id}\u002Fcancel",[2122],"Cancelar el turno fijo (todo o desde una fecha) Sin from_date (o desde el inicio) cancela la serie; con from_date la serie termina el día anterior. Las fechas futuras que se pueden mover se cancelan sin aviso al cliente; lo pasado, iniciado, cobrado o con falta queda como está. Cancelar algo ya cancelado devuelve lo mismo. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (opcional) application\u002Fjson: object Respostas StatusDescrição200OK (BookingSeries)defaultError (RFC 9457) (Problem)",{"id":2151,"title":2152,"titles":2153,"content":2154,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbooking-series#post-booking-seriespreview","POST \u002Fbooking-series\u002Fpreview",[2122],"Vista previa de las fechas y sus choques (no guarda) Las fechas de las próximas 8 semanas con status ok, conflict (con reasons) o skipped (pedidas en skip_dates). Usa exactamente las reglas del alta y no guarda nada. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Corpo da solicitação (obrigatório) application\u002Fjson: BookingSeriesInput Respostas StatusDescrição200OK (BookingSeriesPreview)defaultError (RFC 9457) (Problem)",{"id":2156,"title":2157,"titles":2158,"content":2159,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog","API · catalog",[],"Operações de catalog do contrato OpenAPI que aceitam uma chave de API.",{"id":2161,"title":2162,"titles":2163,"content":2164,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#get-resource-groups","GET \u002Fresource-groups",[2157],"Listar grupos de recursos Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoinclude_inactivequeryNãoboolean default falseIncluye los desactivados (active=false). Por defecto solo los activos.archivedqueryNãoboolean default falseFIU-485 — lista solo los archivados («Archivados»). Los archivados no salen en las demás listas. Respostas StatusDescrição200OK (object)defaultError (RFC 9457) (Problem)",{"id":2166,"title":2167,"titles":2168,"content":2169,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#post-resource-groups","POST \u002Fresource-groups",[2157],"Crear grupo de recursos (config:write) Autenticação: Chave de API ou sessão do painelEscopos: config:write Corpo da solicitação (obrigatório) application\u002Fjson: ResourceGroup Respostas StatusDescrição201Creado (ResourceGroup)defaultError (RFC 9457) (Problem)",{"id":2171,"title":2172,"titles":2173,"content":2174,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#get-resource-groupsid","GET \u002Fresource-groups\u002F{id}",[2157],"Leer un grupo de recursos (activo o no) Un elemento desactivado se lee igual, con active=false, para mostrar su detalle y reactivarlo (PATCH con active=true). 404 solo si no existe en el proyecto. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200OK (ResourceGroup)defaultError (RFC 9457) (Problem)",{"id":2176,"title":2177,"titles":2178,"content":2179,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#patch-resource-groupsid","PATCH \u002Fresource-groups\u002F{id}",[2157],"Editar grupo y miembros (owner\u002Fmanager o API key config:write) F3-573 — sumar una persona (recurso staff) al grupo de un servicio de día completo responde 422 service_full_day_invalid. FIU-450 — al enviar member_ids, se ignoran y limpian los ids inexistentes o inactivos, sin 404. Las reservas de esos miembros se conservan y no bloquean la limpieza; quitar una persona activa con ocupación vigente sigue respondiendo 409 team_policy_in_use. Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: ResourceGroupPatch Respostas StatusDescrição200Actualizado (ResourceGroup)defaultError (RFC 9457) (Problem)",{"id":2181,"title":2182,"titles":2183,"content":2184,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#delete-resource-groupsid","DELETE \u002Fresource-groups\u002F{id}",[2157],"Baja lógica del grupo (owner\u002Fmanager, CSRF) Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringmodequeryNãostring pause, remove, archive, delete default pausepause (por defecto): pausa, como siempre. remove: borra si no tiene historial y archiva si lo tiene. archive: archiva siempre. delete: borra (409 catalog_item_has_history si tiene historial). Con tareas futuras remove, archive y delete responden 409 catalog_item_future_bookings y la lista. Respostas StatusDescrição200Baja idempotente, conserva miembros e historial (CatalogDeactivation)defaultError (RFC 9457) (Problem)",{"id":2186,"title":2187,"titles":2188,"content":2189,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#get-resource-groupsidremoval","GET \u002Fresource-groups\u002F{id}\u002Fremoval",[2157],"Qué pasa al eliminar el grupo (borra o archiva; tareas futuras) Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200OK (CatalogRemovalPlan)defaultError (RFC 9457) (Problem)",{"id":2191,"title":2192,"titles":2193,"content":2194,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#post-resource-groupsidrestore","POST \u002Fresource-groups\u002F{id}\u002Frestore",[2157],"Restaurar el grupo archivado (vuelve pausado; se reactiva a propósito) Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição204RestauradodefaultError (RFC 9457) (Problem)",{"id":2196,"title":2197,"titles":2198,"content":2199,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#get-resources","GET \u002Fresources",[2157],"Listar recursos (barberos, mesas, máquinas, salas…) Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãokindqueryNãoResourceKindinclude_inactivequeryNãoboolean default falseIncluye los desactivados (active=false). Por defecto solo los activos.archivedqueryNãoboolean default falseFIU-485 — lista solo los archivados («Archivados»). Los archivados no salen en las demás listas. Respostas StatusDescrição200OK (object)defaultError (RFC 9457) (Problem)",{"id":2201,"title":2202,"titles":2203,"content":2204,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#post-resources","POST \u002Fresources",[2157],"Crear recurso (config:write) F4-71 — 409 resource_limit_reached (con limit, used, plan y upgrade_path) si el plan no admite otro recurso activo. Autenticação: Chave de API ou sessão do painelEscopos: config:write Corpo da solicitação (obrigatório) application\u002Fjson: ResourceCreate Respostas StatusDescrição201Creado (Resource)defaultError (RFC 9457) (Problem)",{"id":2206,"title":2207,"titles":2208,"content":2209,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#get-resourcesid","GET \u002Fresources\u002F{id}",[2157],"Leer un recurso (activo o no) Un elemento desactivado se lee igual, con active=false, para mostrar su detalle y reactivarlo (PATCH con active=true). 404 solo si no existe en el proyecto. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200OK (Resource)defaultError (RFC 9457) (Problem)",{"id":2211,"title":2212,"titles":2213,"content":2214,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#patch-resourcesid","PATCH \u002Fresources\u002F{id}",[2157],"Editar recurso y asociar o quitar horario (owner\u002Fmanager o API key config:write) F4-71 — reactivar (active true) responde 409 resource_limit_reached si el plan no admite otro recurso activo. FIU-370 — capacity_mode y capacity_units ya no se editan acá, los define el equipo (422 capacity_defined_by_team). F3-573 — pasar a kind staff un recurso del grupo de un servicio de día completo responde 422 service_full_day_invalid. Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: ResourcePatch Respostas StatusDescrição200Actualizado (Resource)defaultError (RFC 9457) (Problem)",{"id":2216,"title":2217,"titles":2218,"content":2219,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#delete-resourcesid","DELETE \u002Fresources\u002F{id}",[2157],"Baja lógica del recurso (owner\u002Fmanager, CSRF) Retira al recurso de todos sus equipos en la misma transacción, incluso si el modo remove o archive lo archiva. Conserva las reservas, sus asignaciones y el historial; reactivar el recurso no restaura esas membresías. Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringmodequeryNãostring pause, remove, archive, delete default pausepause (por defecto): pausa, como siempre. remove: borra si no tiene historial y archiva si lo tiene. archive: archiva siempre. delete: borra (409 catalog_item_has_history si tiene historial). Con tareas futuras remove, archive y delete responden 409 catalog_item_future_bookings y la lista. Respostas StatusDescrição200Baja idempotente, conserva historial y reservas (CatalogDeactivation)defaultError (RFC 9457) (Problem)",{"id":2221,"title":2222,"titles":2223,"content":2224,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#get-resourcesidremoval","GET \u002Fresources\u002F{id}\u002Fremoval",[2157],"Qué pasa al eliminar el recurso (borra o archiva; tareas futuras) Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200OK (CatalogRemovalPlan)defaultError (RFC 9457) (Problem)",{"id":2226,"title":2227,"titles":2228,"content":2229,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#post-resourcesidrestore","POST \u002Fresources\u002F{id}\u002Frestore",[2157],"Restaurar el recurso archivado (vuelve pausado; se reactiva a propósito) Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição204RestauradodefaultError (RFC 9457) (Problem)",{"id":2231,"title":2232,"titles":2233,"content":2234,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#get-schedule-overrides","GET \u002Fschedule-overrides",[2157],"Excepciones del workspace en un rango local (fin exclusivo) Acepta fechas o instantes con offset; los instantes se convierten a la zona del workspace. Staff solo ve horarios de sus recursos. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãofromquerySimstring \u002F stringtoquerySimstring \u002F string Respostas StatusDescrição200OK (object)defaultError (RFC 9457) (Problem)",{"id":2236,"title":2237,"titles":2238,"content":2239,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#get-schedules","GET \u002Fschedules",[2157],"Listar horarios Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Respostas StatusDescrição200OK (object)defaultError (RFC 9457) (Problem)",{"id":2241,"title":2242,"titles":2243,"content":2244,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#post-schedules","POST \u002Fschedules",[2157],"Crear horario semanal (config:write) Autenticação: Chave de API ou sessão do painelEscopos: config:write Corpo da solicitação (obrigatório) application\u002Fjson: Schedule Respostas StatusDescrição201Creado (Schedule)defaultError (RFC 9457) (Problem)",{"id":2246,"title":2247,"titles":2248,"content":2249,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#get-schedulesid","GET \u002Fschedules\u002F{id}",[2157],"Leer horario del workspace (staff limitado a sus recursos) Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200OK (Schedule)defaultError (RFC 9457) (Problem)",{"id":2251,"title":2252,"titles":2253,"content":2254,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#patch-schedulesid","PATCH \u002Fschedules\u002F{id}",[2157],"Editar horario semanal (owner\u002Fmanager, CSRF) Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: SchedulePatch Respostas StatusDescrição200Actualizado; nunca reinterpreta las reservas UTC (Schedule)defaultError (RFC 9457) (Problem)",{"id":2256,"title":2257,"titles":2258,"content":2259,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#delete-schedulesid","DELETE \u002Fschedules\u002F{id}",[2157],"Baja lógica del horario (owner\u002Fmanager, CSRF) Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200Baja idempotente, conserva excepciones e historial (CatalogDeactivation)defaultError (RFC 9457) (Problem)",{"id":2261,"title":2262,"titles":2263,"content":2264,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#post-schedulesidoverrides","POST \u002Fschedules\u002F{id}\u002Foverrides",[2157],"Bloquear o cambiar horario en una fecha La excepción reemplaza las aperturas de esa fecha, incluida su noche hacia el día siguiente (F3-503). Cerrar una fecha no corta la madrugada que pertenece a la noche del día anterior. Los tramos siguen la regla de Schedule.rules; pisar la noche del día anterior o la apertura del siguiente responde 422 hours_overlap. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: object Respostas StatusDescrição201CreadodefaultError (RFC 9457) (Problem)",{"id":2266,"title":2267,"titles":2268,"content":2269,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#delete-schedulesidoverridesdate","DELETE \u002Fschedules\u002F{id}\u002Foverrides\u002F{date}",[2157],"Eliminar excepción de horario (owner\u002Fmanager, CSRF, auditado e idempotente) Volver a la semana no puede pisar la noche de una excepción vecina (422 hours_overlap, F3-503). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringdatepathSimstring (date) Respostas StatusDescrição204Eliminada o ya ausente; conserva reservas y asignacionesdefaultError (RFC 9457) (Problem)",{"id":2271,"title":2272,"titles":2273,"content":2274,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#get-services","GET \u002Fservices",[2157],"Listar servicios Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoinclude_inactivequeryNãoboolean default falseIncluye los desactivados (active=false). Por defecto solo los activos.archivedqueryNãoboolean default falseFIU-485 — lista solo los archivados («Archivados»). Los archivados no salen en las demás listas. Respostas StatusDescrição200OK (object)defaultError (RFC 9457) (Problem)",{"id":2276,"title":2277,"titles":2278,"content":2279,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#post-services","POST \u002Fservices",[2157],"Crear servicio (config:write) Autenticação: Chave de API ou sessão do painelEscopos: config:write Corpo da solicitação (obrigatório) application\u002Fjson: ServiceCreate Respostas StatusDescrição201Creado (Service)defaultError (RFC 9457) (Problem)",{"id":2281,"title":2282,"titles":2283,"content":2284,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#get-servicesid","GET \u002Fservices\u002F{id}",[2157],"Leer un servicio (activo o no) Un elemento desactivado se lee igual, con active=false, para mostrar su detalle y reactivarlo (PATCH con active=true). 404 solo si no existe en el proyecto. Autenticação: Chave de API ou sessão do painelEscopos: config:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200OK (Service)defaultError (RFC 9457) (Problem)",{"id":2286,"title":2287,"titles":2288,"content":2289,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#patch-servicesid","PATCH \u002Fservices\u002F{id}",[2157],"Editar servicio (owner\u002Fmanager, CSRF) Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: ServicePatch Respostas StatusDescrição200Actualizado; las reservas existentes no se reinterpretan (Service)defaultError (RFC 9457) (Problem)",{"id":2291,"title":2292,"titles":2293,"content":2294,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#delete-servicesid","DELETE \u002Fservices\u002F{id}",[2157],"Baja lógica; conserva y lista reservas activas futuras (owner\u002Fmanager, CSRF) Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringmodequeryNãostring pause, remove, archive, delete default pausepause (por defecto): pausa, como siempre. remove: borra si no tiene historial y archiva si lo tiene. archive: archiva siempre. delete: borra (409 catalog_item_has_history si tiene historial). Con tareas futuras remove, archive y delete responden 409 catalog_item_future_bookings y la lista. Respostas StatusDescrição200Baja idempotente, ninguna reserva cancelada (CatalogDeactivation)defaultError (RFC 9457) (Problem)",{"id":2296,"title":2297,"titles":2298,"content":2299,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#post-servicesidduplicate","POST \u002Fservices\u002F{id}\u002Fduplicate",[2157],"Crear una copia pausada de un servicio (config:write) Copia configuración, requisitos, formulario, productos y horario independiente. No copia tareas, resultados ni opiniones. Etapas vigentes sólo con service_stages:write (settings:write para API keys); de lo contrario usa etapas base y avisa. Idempotencia de 24 horas. Autenticação: Chave de API ou sessão do painelEscopos: config:write, settings:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)Idempotency-KeyheaderSimstring Respostas StatusDescrição201Copia pausada (ServiceDuplicateOut)defaultError (RFC 9457) (Problem)",{"id":2301,"title":2302,"titles":2303,"content":2304,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#get-servicesidpauses","GET \u002Fservices\u002F{id}\u002Fpauses",[2157],"Listar las pausas por fechas de un servicio (config:read) Rangos de días (inclusive) en que el servicio no se ofrece. Una pausa cierra el servicio, no a los recursos que lo atienden (F3-320). Autenticação: Chave de API ou sessão do painelEscopos: config:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200OK (object)defaultError (RFC 9457) (Problem)",{"id":2306,"title":2307,"titles":2308,"content":2309,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#post-servicesidpauses","POST \u002Fservices\u002F{id}\u002Fpauses",[2157],"Pausar un servicio por un rango de fechas (owner\u002Fmanager, CSRF) Cierra el servicio de from a to (inclusive, fecha local del negocio) sin bloquear a los recursos que lo atienden. Los demás servicios de esos recursos conservan sus horarios. Un servicio sin ventana propia sigue mostrándose sin ella (schedule_id nulo); si la ventana la comparten otros servicios o recursos, el servicio recibe una propia. Un cierre nuevo reemplaza lo que hubiera esos días. 422 invalid_schedule_override si to es anterior a from o el rango pasa de 366 días. Devuelve todas las pausas del servicio. Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: ServicePauseIn Respostas StatusDescrição201Pausas del servicio (object)defaultError (RFC 9457) (Problem)",{"id":2311,"title":2312,"titles":2313,"content":2314,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#delete-servicesidpauses","DELETE \u002Fservices\u002F{id}\u002Fpauses",[2157],"Reabrir un servicio pausado por fechas (owner\u002Fmanager, CSRF) Reabre los días from..to (inclusive) cerrados por pausa; los horarios vuelven a ser los de antes. Si era la última pausa de una ventana generada, el servicio queda sin ventana propia. Idempotente. Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringfromquerySimstring (date)toquerySimstring (date) Respostas StatusDescrição204ReabiertodefaultError (RFC 9457) (Problem)",{"id":2316,"title":2317,"titles":2318,"content":2319,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#get-servicesidremoval","GET \u002Fservices\u002F{id}\u002Fremoval",[2157],"Qué pasa al eliminar el servicio (borra o archiva; tareas futuras) Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200OK (CatalogRemovalPlan)defaultError (RFC 9457) (Problem)",{"id":2321,"title":2322,"titles":2323,"content":2324,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#post-servicesidrestore","POST \u002Fservices\u002F{id}\u002Frestore",[2157],"Restaurar el servicio archivado (vuelve pausado; se reactiva a propósito) Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição204RestauradodefaultError (RFC 9457) (Problem)",{"id":2326,"title":2327,"titles":2328,"content":2329,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#post-servicesimportidconfirm","POST \u002Fservices\u002Fimport\u002F{id}\u002Fconfirm",[2157],"Confirmar una importación de servicios Scope config:write. Crea todos los servicios de la vista previa o ninguno. Confirmar el mismo id es idempotente (resultado 7 días). 409 services.import_preview_stale si cambió el catálogo, la moneda o venció la vista previa; 404 si es de otro negocio. Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Respostas StatusDescrição200Successful Response (ServiceImportResult)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2331,"title":2332,"titles":2333,"content":2334,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#post-servicesimportidundo","POST \u002Fservices\u002Fimport\u002F{id}\u002Fundo",[2157],"Deshacer una importación de servicios Scope config:write. Borra los servicios creados (o los archiva si ya tienen historial), hasta 7 días y solo si nadie los cambió (409 services.import_undo_stale); con tareas futuras, 409 catalog_item_future_bookings. Repetirlo devuelve el mismo resultado. Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Respostas StatusDescrição200Successful Response (ServiceImportResult)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2336,"title":2337,"titles":2338,"content":2339,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#post-servicesimportpreview","POST \u002Fservices\u002Fimport\u002Fpreview",[2157],"Validar una importación de servicios (vista previa, no crea nada) Scope config:write. csv, xlsx (base64, hasta 1 MiB) o rows (hasta 2000) con columns (encabezado → name|duration_min|price|team|full_day|bot_offered); hasta 200 servicios. Solo crea: un nombre que ya existe es error de la fila (services.import_exists). team es el nombre o id del equipo (con uno solo activo, se puede omitir). price en moneda mayor con la regla única de montos. Nada se crea hasta confirmar; la vista previa válida dura 30 minutos. Autenticação: Chave de API ou sessão do painelEscopos: config:write Corpo da solicitação (obrigatório) application\u002Fjson: ServiceImportInput Respostas StatusDescrição200Successful Response (ServiceImportPreview)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2341,"title":2342,"titles":2343,"content":2344,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcatalog#post-servicesintakepreview","POST \u002Fservices\u002Fintake\u002Fpreview",[2157],"Preview Intake Vista previa de formulario y expresiones CEL acotadas. Owner\u002Fmanager o API key config:write. El servidor calcula; no persiste datos. Autenticação: Chave de API ou sessão do painelEscopos: config:write Corpo da solicitação (obrigatório) application\u002Fjson: IntakePreviewIn Respostas StatusDescrição200Successful Response (IntakePreviewOut)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2346,"title":2347,"titles":2348,"content":2349,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts","API · products",[],"Operações de products do contrato OpenAPI que aceitam uma chave de API. Catálogo de productos del negocio (F3-145).",{"id":2351,"title":2352,"titles":2353,"content":2354,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts#get-products","GET \u002Fproducts",[2347],"Buscar productos del negocio Scope products:read. Tenant desde credencial. Importes en unidad menor ({PYG:0, CLP:0, resto:2}); no price_cents de servicios. Owner\u002Fmanager gestionan; staff lee activos ofrecidos por service_id. Archivar = PATCH active=false; no hay DELETE. Importación y exportación CSV: \u002Fproducts\u002Fimport\u002F* y \u002Fproducts\u002Fexport. Autenticação: Chave de API ou sessão do painelEscopos: products:read Parâmetros NomeEmObrigatórioTipoDescriçãoqqueryNãostring default ``categoryqueryNãostring \u002F null (null)activequeryNãoboolean \u002F null (null) default truefeaturedqueryNãoboolean default falseinclude_archivedqueryNãoboolean default falsearchivedqueryNãoboolean default falseFIU-485 — lista solo los archivados («Archivados»). Los archivados no salen en las demás listas.idsqueryNãoarray \u002F null (null)service_idqueryNãostring \u002F null (null)cursorqueryNãostring \u002F null (null)limitqueryNãointeger default 25 Respostas StatusDescrição200Successful Response (ProductPage)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2356,"title":2357,"titles":2358,"content":2359,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts#post-products","POST \u002Fproducts",[2347],"Crear producto del negocio Scope products:write. Tenant desde credencial. Importes en unidad menor ({PYG:0, CLP:0, resto:2}); no price_cents de servicios. Owner\u002Fmanager gestionan; staff lee activos ofrecidos por service_id. Archivar = PATCH active=false; no hay DELETE. Importación y exportación CSV: \u002Fproducts\u002Fimport\u002F* y \u002Fproducts\u002Fexport. Autenticação: Chave de API ou sessão do painelEscopos: products:write Corpo da solicitação (obrigatório) application\u002Fjson: ProductIn Respostas StatusDescrição201Successful Response (ProductOut)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2361,"title":2362,"titles":2363,"content":2364,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts#get-productsid","GET \u002Fproducts\u002F{id}",[2347],"Ver producto del negocio Scope products:read. Tenant desde credencial. Importes en unidad menor ({PYG:0, CLP:0, resto:2}); no price_cents de servicios. Owner\u002Fmanager gestionan; staff lee activos ofrecidos por service_id. Pausar = PATCH active=false; eliminar = DELETE (borra sin historial, archiva con historial; FIU-485). Importación y exportación CSV: \u002Fproducts\u002Fimport\u002F* y \u002Fproducts\u002Fexport. Autenticação: Chave de API ou sessão do painelEscopos: products:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)service_idqueryNãostring \u002F null (null) Respostas StatusDescrição200Successful Response (ProductOut)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2366,"title":2367,"titles":2368,"content":2369,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts#patch-productsid","PATCH \u002Fproducts\u002F{id}",[2347],"Editar o archivar producto del negocio Scope products:write. Tenant desde credencial. Importes en unidad menor ({PYG:0, CLP:0, resto:2}); no price_cents de servicios. Owner\u002Fmanager gestionan; staff lee activos ofrecidos por service_id. Pausar = PATCH active=false; eliminar = DELETE (borra sin historial, archiva con historial; FIU-485). Importación y exportación CSV: \u002Fproducts\u002Fimport\u002F* y \u002Fproducts\u002Fexport. Autenticação: Chave de API ou sessão do painelEscopos: products:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: ProductPatch Respostas StatusDescrição200Successful Response (ProductOut)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2371,"title":2372,"titles":2373,"content":2374,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts#delete-productsid","DELETE \u002Fproducts\u002F{id}",[2347],"Eliminar producto (borra sin historial, archiva con historial) mode=remove (por defecto) borra si ninguna tarea ni regla lo usa y archiva si hay historial; archive archiva siempre; delete borra o responde 409 catalog_item_has_history. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)modequeryNãostring remove, archive, delete default remove Respostas StatusDescrição200OK (CatalogDeactivation)defaultError (RFC 9457) (Problem)",{"id":2376,"title":2377,"titles":2378,"content":2379,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts#get-productsidremoval","GET \u002Fproducts\u002F{id}\u002Fremoval",[2347],"Qué pasa al eliminar el producto (borra o archiva; tareas futuras) Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Respostas StatusDescrição200OK (CatalogRemovalPlan)defaultError (RFC 9457) (Problem)",{"id":2381,"title":2382,"titles":2383,"content":2384,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts#post-productsidrestore","POST \u002Fproducts\u002F{id}\u002Frestore",[2347],"Restaurar el producto archivado (vuelve pausado; se reactiva a propósito) Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Respostas StatusDescrição204RestauradodefaultError (RFC 9457) (Problem)",{"id":2386,"title":2387,"titles":2388,"content":2389,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts#get-productscategories","GET \u002Fproducts\u002Fcategories",[2347],"Categorías del catálogo Gestión del catálogo (permiso products:manage_read, owner\u002Fmanager). Con API key exige el scope products:write; una key de solo products:read recibe 403. Tenant desde credencial. Autenticação: Chave de API ou sessão do painelEscopos: products:write, products:read Respostas StatusDescrição200Successful Response (array\u003Cstring>)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2391,"title":2392,"titles":2393,"content":2394,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts#get-productsexport","GET \u002Fproducts\u002Fexport",[2347],"Exportación o plantilla CSV Gestión del catálogo (permiso products:manage_read, owner\u002Fmanager). Con API key exige el scope products:write. Devuelve el CSV (name,short_name,unit,price,category,synonyms,sku,active,featured,sort_order) con price en unidad mayor, punto decimal y sin miles; las celdas que empiezan con = + - @, tab o salto van con apóstrofo contra inyección de fórmulas. template=true devuelve solo el encabezado. Autenticação: Chave de API ou sessão do painelEscopos: products:write Parâmetros NomeEmObrigatórioTipoDescriçãotemplatequeryNãoboolean default falseqqueryNãostring default ``categoryqueryNãostring \u002F null (null)activequeryNãoboolean \u002F null (null) Respostas StatusDescrição200Successful Response (ProductCsvDownload)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2396,"title":2397,"titles":2398,"content":2399,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts#post-productsimportidconfirm","POST \u002Fproducts\u002Fimport\u002F{id}\u002Fconfirm",[2347],"Confirmar la importación de una vista previa Scope products:write. Confirmar el mismo id es idempotente (devuelve el mismo resultado, que se conserva 7 días; luego 404). 409 products.preview_stale si cambió el catálogo, la moneda o la vista previa caducó; 404 si es de otro negocio. Todo o nada, bajo un solo bloqueo del catálogo. Autenticação: Chave de API ou sessão do painelEscopos: products:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Respostas StatusDescrição200Successful Response (ProductImportResult)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2401,"title":2402,"titles":2403,"content":2404,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts#post-productsimportidundo","POST \u002Fproducts\u002Fimport\u002F{id}\u002Fundo",[2347],"Deshacer una importación confirmada Scope products:write. Borra los productos que creó la importación (o los archiva si ya tienen historial) y devuelve los actualizados a su valor anterior. Solo mientras el catálogo no cambió desde la confirmación: si no, 409 products.import_undo_stale. Repetirlo devuelve el mismo resultado; 404 si la importación no existe, no se confirmó, venció (7 días) o es de otro negocio. Autenticação: Chave de API ou sessão do painelEscopos: products:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Respostas StatusDescrição200Successful Response (ProductImportResult)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2406,"title":2407,"titles":2408,"content":2409,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts#post-productsimportpreview","POST \u002Fproducts\u002Fimport\u002Fpreview",[2347],"Validar un CSV (vista previa, no importa nada) Scope products:write. FIU-525: exactamente uno de csv, xlsx (Excel en base64, hasta 1 MiB; primera hoja o sheet) o rows (hasta 2000 objetos que leyó una IA de un Excel, PDF o foto); con xlsx o rows, columns mapea encabezado → columna (name, unit, price, …) y la respuesta devuelve columns e ignored_columns. CSV UTF-8 de hasta 1 MiB y 2000 filas (, o ;, BOM aceptado); un texto con U+FFFD (Windows-1252 leído como UTF-8) se rechaza con 422 products.csv_encoding. El precio sigue la regla única de montos (docs\u002Fapi\u002Fproductos.md): «15.000» en PYG\u002FCLP = 15000, «1,500» en BRL\u002FCOP se rechaza como ambiguo. Celdas en blanco en active, featured, sort_order y sku, y columnas omitidas, no cambian nada. Nada se importa hasta confirmar; la vista previa válida dura 30 minutos y queda ligada al negocio, la moneda y los valores del catálogo. Autenticação: Chave de API ou sessão do painelEscopos: products:write Corpo da solicitação (obrigatório) application\u002Fjson: ProductCsvInput Respostas StatusDescrição200Successful Response (ProductCsvPreview)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2411,"title":2412,"titles":2413,"content":2414,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts#get-productsstats","GET \u002Fproducts\u002Fstats",[2347],"Ventas por producto en el período (unidades, tareas y facturación) F3-315. Ventas por producto del período para la lista del catálogo, en una sola consulta agrupada (nunca una llamada por fila). Permiso products:manage_read (owner\u002Fmanager); con API key, scope bookings:read (las ventas salen de las tareas). Cuenta las líneas del pedido (qty entregado, nunca lo pedido) de tareas completadas, sin pruebas, atribuidas al día local de inicio\u002Fvencimiento, igual que GET \u002Fv1\u002Fservices\u002Fstats. revenue_minor = unidades por precio copiado en la línea (unidad menor) y currency solo con permiso finance:analyze (rol de la matriz o scope de la key); si no, null. Solo devuelve productos con ventas; ids (hasta 100) limita a los de la página visible. Máximo 366 días. Tenant desde la credencial, RLS. Autenticação: Chave de API ou sessão do painelEscopos: bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãofromquerySimstring (date)Primer día local del negocio (incluido)toquerySimstring (date)Último día local del negocio (incluido)idsqueryNãoarray \u002F null (null) Respostas StatusDescrição200Successful Response (ProductSalesOut)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2416,"title":2417,"titles":2418,"content":2419,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts#get-productsstore-search","GET \u002Fproducts\u002Fstore-search",[2347],"Ver la búsqueda en la tienda externa 404 store_search_not_configured si el proyecto no tiene una. F4-55. Scope products:write (owner y manager por sesión; escrituras con CSRF). Una fuente por proyecto: URL HTTPS plantilla con {q} (obligatorio) y {limit} solo como valores completos del query; host y ruta fijos. Encabezados con credenciales cifrados y de escritura únicamente (se devuelven solo sus nombres); secretos en el query (?token=, ?api_key=…) se rechazan. Mapeo declarativo de F2-48 (items_path, rutas a.b[0].c) con nombre y precio obligatorios y moneda, URL, imagen, stock e id opcionales. service_id es el servicio de pedidos por chat con carrito al que entran los productos. Autenticação: Chave de API ou sessão do painelEscopos: products:write Respostas StatusDescrição200Successful Response (StoreSearchOut)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2421,"title":2422,"titles":2423,"content":2424,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts#put-productsstore-search","PUT \u002Fproducts\u002Fstore-search",[2347],"Crear o editar la búsqueda en la tienda externa Crea la fuente (sin expected_version) o la edita (con la versión vigente; 409 store_search_version_conflict si cambió). Al editar, los encabezados guardados se conservan salvo replace_headers: true; cambiar el host de la URL con credenciales guardadas exige reemplazarlas (422 credentials_origin_changed). Valida forma, HTTPS y DNS público de la URL (422 store_search_invalid con reason unsafe_url) y que el servicio exista, esté activo, acepte pedidos por chat y tenga carrito (service_not_orderable). Auditado sin URL completa ni credenciales. F4-55. Scope products:write (owner y manager por sesión; escrituras con CSRF). Una fuente por proyecto: URL HTTPS plantilla con {q} (obligatorio) y {limit} solo como valores completos del query; host y ruta fijos. Encabezados con credenciales cifrados y de escritura únicamente (se devuelven solo sus nombres); secretos en el query (?token=, ?api_key=…) se rechazan. Mapeo declarativo de F2-48 (items_path, rutas a.b[0].c) con nombre y precio obligatorios y moneda, URL, imagen, stock e id opcionales. service_id es el servicio de pedidos por chat con carrito al que entran los productos. Autenticação: Chave de API ou sessão do painelEscopos: products:write Corpo da solicitação (obrigatório) application\u002Fjson: StoreSearchIn Respostas StatusDescrição200Successful Response (StoreSearchOut)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2426,"title":2427,"titles":2428,"content":2429,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts#delete-productsstore-search","DELETE \u002Fproducts\u002Fstore-search",[2347],"Desactivar la búsqueda en la tienda externa La desactiva (conserva la configuración y sube la versión): el bot deja de ofrecerla y los productos de la tienda que estaban en carritos abiertos ya no se pueden sumar. F4-55. Scope products:write (owner y manager por sesión; escrituras con CSRF). Una fuente por proyecto: URL HTTPS plantilla con {q} (obligatorio) y {limit} solo como valores completos del query; host y ruta fijos. Encabezados con credenciales cifrados y de escritura únicamente (se devuelven solo sus nombres); secretos en el query (?token=, ?api_key=…) se rechazan. Mapeo declarativo de F2-48 (items_path, rutas a.b[0].c) con nombre y precio obligatorios y moneda, URL, imagen, stock e id opcionales. service_id es el servicio de pedidos por chat con carrito al que entran los productos. Autenticação: Chave de API ou sessão do painelEscopos: products:write Respostas StatusDescrição200Successful Response (StoreSearchOut)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2431,"title":2432,"titles":2433,"content":2434,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts#get-productsstore-searchpresets","GET \u002Fproducts\u002Fstore-search\u002Fpresets",[2347],"Plantillas listas de búsqueda en tienda Plantillas para Tiendanube\u002FNuvemshop, WooCommerce, Shopify, Make, n8n y una URL propia: URL de ejemplo (reemplazar el dominio o el id de la tienda), nombres de los encabezados de credenciales, mapeo y escala del precio. No consulta ninguna tienda. F4-55. Scope products:write (owner y manager por sesión; escrituras con CSRF). Una fuente por proyecto: URL HTTPS plantilla con {q} (obligatorio) y {limit} solo como valores completos del query; host y ruta fijos. Encabezados con credenciales cifrados y de escritura únicamente (se devuelven solo sus nombres); secretos en el query (?token=, ?api_key=…) se rechazan. Mapeo declarativo de F2-48 (items_path, rutas a.b[0].c) con nombre y precio obligatorios y moneda, URL, imagen, stock e id opcionales. service_id es el servicio de pedidos por chat con carrito al que entran los productos. Autenticação: Chave de API ou sessão do painelEscopos: products:write Respostas StatusDescrição200Successful Response (array\u003CStorePreset>)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2436,"title":2437,"titles":2438,"content":2439,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts#post-productsstore-searchtest","POST \u002Fproducts\u002Fstore-search\u002Ftest",[2347],"Probar la búsqueda en la tienda externa «Probar búsqueda»: hace la misma consulta que el bot con la configuración guardada (aunque esté desactivada) y devuelve los resultados mapeados, con el precio ya en la unidad menor de la moneda del negocio, y los descartados por motivo (invalid_price, currency_mismatch, missing_name, duplicate). No guarda instantáneas. Traída segura: solo HTTPS a IPs públicas validadas en cada salto y fijadas al socket, 3 s en total, 512 KiB descomprimidos, caché por consulta y circuito tras fallos. Una tienda lenta, caída o con respuesta inválida o enorme responde 200 con ok: false y un status corto, nunca el cuerpo ni el error crudo. 10 pruebas por minuto por proyecto (429 store_search_rate_limited). F4-55. Scope products:write (owner y manager por sesión; escrituras con CSRF). Una fuente por proyecto: URL HTTPS plantilla con {q} (obligatorio) y {limit} solo como valores completos del query; host y ruta fijos. Encabezados con credenciales cifrados y de escritura únicamente (se devuelven solo sus nombres); secretos en el query (?token=, ?api_key=…) se rechazan. Mapeo declarativo de F2-48 (items_path, rutas a.b[0].c) con nombre y precio obligatorios y moneda, URL, imagen, stock e id opcionales. service_id es el servicio de pedidos por chat con carrito al que entran los productos. Autenticação: Chave de API ou sessão do painelEscopos: products:write Corpo da solicitação (obrigatório) application\u002Fjson: StoreSearchTest Respostas StatusDescrição200Successful Response (StoreSearchResult)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2441,"title":2442,"titles":2443,"content":2444,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fproducts#get-productssuggestions","GET \u002Fproducts\u002Fsuggestions",[2347],"Sugerencias de formularios existentes Gestión del catálogo (permiso products:manage_read, owner\u002Fmanager). Con API key exige el scope products:write; una key de solo products:read recibe 403. Tenant desde credencial. Autenticação: Chave de API ou sessão do painelEscopos: products:write, products:read Respostas StatusDescrição200Successful Response (array\u003CProductSuggestion>)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2446,"title":2447,"titles":2448,"content":2449,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fzones","API · zones",[],"Operações de zones do contrato OpenAPI que aceitam uma chave de API. Zonas (F1-38): grupos de personas con un área (barrios, ciudades o códigos postales), días y horas de atención y un tope opcional de tareas por franja. Lectura: todos los roles; escritura: owner y manager.",{"id":2451,"title":2452,"titles":2453,"content":2454,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fzones#get-zones","GET \u002Fzones",[2447],"Listar zonas Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoinclude_inactivequeryNãoboolean default false Respostas StatusDescrição200OK (object)defaultError (RFC 9457) (Problem)",{"id":2456,"title":2457,"titles":2458,"content":2459,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fzones#post-zones","POST \u002Fzones",[2447],"Crear una zona (owner\u002Fmanager, CSRF) Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Corpo da solicitação (obrigatório) application\u002Fjson: ZoneInput Respostas StatusDescrição201Creada (Zone)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":2461,"title":2462,"titles":2463,"content":2464,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fzones#get-zonesid","GET \u002Fzones\u002F{id}",[2447],"Leer una zona (activa o no) Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200OK (Zone)404Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":2466,"title":2467,"titles":2468,"content":2469,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fzones#patch-zonesid","PATCH \u002Fzones\u002F{id}",[2447],"Editar una zona (owner\u002Fmanager, CSRF) Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: ZonePatch Respostas StatusDescrição200Actualizada (Zone)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":2471,"title":2472,"titles":2473,"content":2474,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fzones#delete-zonesid","DELETE \u002Fzones\u002F{id}",[2447],"Desactivar una zona (owner\u002Fmanager, CSRF) Una zona no se borra (las tareas la referencian): se desactiva y deja de asignarse y de limitar. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição204DesactivadadefaultError (RFC 9457) (Problem)",{"id":2476,"title":2477,"titles":2478,"content":2479,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fzones#get-zonescoverage","GET \u002Fzones\u002Fcoverage",[2447],"Cobertura del negocio (unión de las zonas activas) La cobertura es la unión de las zonas activas; sin zonas no hay límite (solo el país). Incluye qué hace el bot con una dirección fuera de cobertura. Todos los roles del panel y API keys config:read. Autenticação: Chave de API ou sessão do painelEscopos: config:read Respostas StatusDescrição200OK (Coverage)defaultError (RFC 9457) (Problem)",{"id":2481,"title":2482,"titles":2483,"content":2484,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fzones#put-zonescoverage","PUT \u002Fzones\u002Fcoverage",[2447],"Cambiar qué hace el bot fuera de cobertura (owner\u002Fmanager, CSRF) Aplica a una dirección fuera de todas las zonas y a una entrega (reach_zone_ids) que no llega a la zona de la dirección. take (default): el bot ofrece la entrega y toma el pedido, la tarea lleva la etiqueta fuera-de-cobertura y aparece en «Necesita tu atención». reject: el bot no ofrece esa entrega, responde que por ahora no llega a esa zona y no crea nada. Auditado (coverage.updated). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Corpo da solicitação (obrigatório) application\u002Fjson: CoverageInput Respostas StatusDescrição200OK (Coverage)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":2486,"title":2487,"titles":2488,"content":2489,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fzones#get-zonesmatch","GET \u002Fzones\u002Fmatch",[2447],"Qué zona cubre un destino Compara barrio, ciudad, código postal o dirección normalizados (sin tildes, mayúsculas ni signos). Prioridad: código postal (por prefijo), barrio, ciudad, provincia, país; ante varias gana la coincidencia más larga y luego el nombre. zone: null = sin zona (fuera de cobertura si el negocio tiene zonas). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoneighborhoodqueryNãostringcityqueryNãostringpostal_codequeryNãostringaddressqueryNãostringlatqueryNãonumberLatitud del destino; va junto con lng. Con coordenadas gana el área dibujada más chica que contiene el punto; sin coincidencia geométrica queda el respaldo por texto.lngqueryNãonumberLongitud del destino; va junto con lat. Respostas StatusDescrição200OK (object)defaultError (RFC 9457) (Problem)",{"id":2491,"title":2492,"titles":2493,"content":2494,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments","API · payments",[],"Operações de payments do contrato OpenAPI que aceitam uma chave de API. Cobros de los negocios; notificaciones autenticadas por HMAC de Mercado Pago.",{"id":2496,"title":2497,"titles":2498,"content":2499,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsaccountsmercadopago","GET \u002Fpayments\u002Faccounts\u002Fmercadopago",[2492],"Status Lectura segura del estado, sin tokens. Scope payments:read para API keys. connection_mode es la conexión nueva que se ofrece; en países con política token es disabled mientras el interruptor de plataforma del token pegado esté apagado (F4-47). Una cuenta ya guardada se informa igual en account. Autenticação: Chave de API ou sessão do painelEscopos: payments:read Respostas StatusDescrição200Successful Response (MercadoPagoAvailability)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)503Error (RFC 9457) (Problem)",{"id":2501,"title":2502,"titles":2503,"content":2504,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsaccountsmercadopagocharges","GET \u002Fpayments\u002Faccounts\u002Fmercadopago\u002Fcharges",[2492],"Charges Últimos cobros electrónicos del proyecto para Finanzas → Cobros (F4-25), el más nuevo primero. Incluye cobros de cuentas ya desconectadas. Sin datos del pagador, link de pago ni referencias del proveedor. Sesión owner\u002Fmanager (payments:accounts_configure); API keys con scope payments:read. Autenticação: Chave de API ou sessão do painelEscopos: payments:read Parâmetros NomeEmObrigatórioTipoDescriçãolimitqueryNãointeger default 10 Respostas StatusDescrição200Successful Response (MercadoPagoCharges)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2506,"title":2507,"titles":2508,"content":2509,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsbookingsbooking_idbalance","GET \u002Fpayments\u002Fbookings\u002F{booking_id}\u002Fbalance",[2492],"Booking Balance Tenant desde credencial. Scope payments:read_balance; cookie + CSRF. Bearer exige Idempotency-Key en todos los POST (máximo 128 caracteres); conflicto del ledger Bearer es 422, conflicto de dominio 409. Owner\u002Fmanager; staff solo tareas asignadas (no anula ni ajusta). Sin llamadas a proveedores. Montos enteros minor units, PYG exponente 0. Clave de registro permanente; misma clave con otros datos devuelve 409. Duplicados por tarea\u002Fmonto\u002Fmétodo en ventana UTC de 5 minutos se rechazan. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãobooking_idpathSimstring (uuid) Respostas StatusDescrição200Successful Response (BalanceView)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2511,"title":2512,"titles":2513,"content":2514,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsbookingsbooking_idcharges","GET \u002Fpayments\u002Fbookings\u002F{booking_id}\u002Fcharges",[2492],"Booking Charges Tenant desde credencial. Scope payments:read_balance. Historial de cobros de la tarea (recibos manuales asignados y cobros electrónicos), el más nuevo primero. applied_minor es la parte aplicada a esta tarea. La nota y el motivo de anulación son privados: owner\u002Fmanager o quien registró el recibo. Staff solo tareas asignadas. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãobooking_idpathSimstring (uuid) Respostas StatusDescrição200Successful Response (BookingChargesView)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2516,"title":2517,"titles":2518,"content":2519,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentsbookingsbooking_iddue","POST \u002Fpayments\u002Fbookings\u002F{booking_id}\u002Fdue",[2492],"Adjust Due Tenant desde credencial. Scope payments:adjust; cookie + CSRF. Una tarea cubierta no permite ajustar el importe (409 payment_conflict, detail payment.booking_covered_by_plan); primero quitar el plan. Notas internas editables. Define (si la tarea aún no tiene valor) o ajusta el valor a cobrar, en unidad menor de la moneda del negocio (PYG y CLP enteros), con motivo obligatorio y auditoría payment.due_adjusted. Solo owner\u002Fmanager. Sin valor definido, el servidor usa por defecto el total del formulario o, si no hay, el precio del catálogo del servicio al congelarlo (tareas por agendar, confirmadas, en curso y completadas). Bearer exige Idempotency-Key en todos los POST (máximo 128 caracteres). Sin llamadas a proveedores. Montos enteros minor units, PYG exponente 0. Clave de registro permanente; misma clave con otros datos devuelve 409. Duplicados por tarea\u002Fmonto\u002Fmétodo en ventana UTC de 5 minutos se rechazan. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãobooking_idpathSimstring (uuid)Idempotency-KeyheaderNãostring \u002F null (null) Corpo da solicitação (obrigatório) application\u002Fjson: AdjustDue Respostas StatusDescrição204Successful Response400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2521,"title":2522,"titles":2523,"content":2524,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentsbookingsbooking_idlinesline_idexpense","POST \u002Fpayments\u002Fbookings\u002F{booking_id}\u002Flines\u002F{line_id}\u002Fexpense",[2492],"Registrar como gasto el costo de una línea de la tarea FIU-472: gasto de monto costo x cantidad, categoría Insumos, vinculado a la tarea (booking_id). El\nstaff, solo en sus tareas y sus líneas: queda por aprobar. 409 expense.line_cost_required (la línea no\ntiene costo) o expense.line_has_expense (ya tiene otro gasto). Reintentar con la misma clave devuelve el\nmismo gasto. FIU-472 (decisión 2): el costo de la línea se registra aparte, de un toque, como gasto de monto costo x cantidad, categoría «Insumos» (supplies), proveedor y comprobante opcionales (el comprobante, con POST \u002Fpayments\u002Fexpenses\u002F{id}\u002Freceipt\u002F...), vinculado a la tarea (booking_id). Con expenses:record queda aprobado; con expenses:record_own (staff: solo sus tareas y sus líneas) queda pending_approval. API key expenses:record. Reintentar con la misma clave devuelve el mismo gasto. 409 expense.line_cost_required, expense.line_has_expense. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãobooking_idpathSimstring (uuid)line_idpathSimstring (uuid)Idempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Corpo da solicitação (obrigatório) application\u002Fjson: LineExpenseIn Respostas StatusDescrição201Successful Response (ExpenseView)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2526,"title":2527,"titles":2528,"content":2529,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentsbookingsbooking_idpayment-link","POST \u002Fpayments\u002Fbookings\u002F{booking_id}\u002Fpayment-link",[2492],"Cobrar con link de Mercado Pago el saldo de una tarea F4-20 «Cobrar». Permiso y scope payments:link (owner\u002Fmanager; staff solo en sus tareas y si el dueño no apagó «El repartidor puede cobrar»); cookie + CSRF o API key. Exige Idempotency-Key. El monto es el saldo de la tarea que calcula el core (nunca lo manda quien lo pide). Un link abierto por el mismo monto se devuelve con 200 y replay=true (nunca dos links por la misma tarea y monto); con otro monto abierto, 409 payment.link_pending. El cobro queda registrado y auditado (payment.created, payment.link_requested) antes de llamar a Mercado Pago; desde el panel el link vuelve listo (pending con checkout_url), con API key lo crea el worker enseguida (created sin URL: consultar GET \u002Fpayments\u002Fbookings\u002F{booking_id}\u002Fcharges). deliver=conversation además lo manda por la conversación del cliente con una plantilla del servidor (delivery=queued; repetir la misma clave no manda dos mensajes, otra clave lo reenvía). Vence a las 48 h. 409 payment.link_unavailable (sin cuenta de producción BR\u002FAR que coincida con el proyecto), payment.link_not_chargeable (tarea sin cliente, de prueba, en espera de seña o cerrada), payment.nothing_due, payment.parts_cover_balance (las partes abiertas ya cubren el saldo).\nF4-92 «Cobrar una parte»: con amount_minor el link es por esa parte (part=true), con su monto fijo. Pueden quedar varias partes abiertas a la vez; la suma de los cobros abiertos de la tarea nunca supera su saldo (422 payment_part_exceeds_balance, con remaining_minor, open_minor y currency). Las partes no se reemplazan entre sí ni las anula el link del bot o un QR\u002FPoint por el saldo; sin amount_minor, el link cobra lo que queda sin parte. Reintentar con la misma Idempotency-Key devuelve la misma parte (200, replay), aunque ya se haya pagado; otra clave es otra parte aunque el monto sea igual; la misma clave con otro monto da 409 payment.idempotency_conflict. Si baja el total, la parte que ya no entra se anula (void_reason=amount_changed). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãobooking_idpathSimstring (uuid)Idempotency-KeyheaderSimstring Corpo da solicitação (obrigatório) application\u002Fjson: PaymentLinkInput Respostas StatusDescrição200Ya había un link abierto por el mismo monto, o es el reintento de la misma parte (replay) (PaymentLinkView)201Link creado (PaymentLinkView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2531,"title":2532,"titles":2533,"content":2534,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsbookingsbalances","GET \u002Fpayments\u002Fbookings\u002Fbalances",[2492],"Booking Balances Tenant desde credencial. Scope payments:read_balance; permiso de la matriz payments:read_balance (owner, manager, staff sobre tareas asignadas; viewer no). Saldo derivado de hasta 100 tareas en una pasada (chip de las listas). Omite las tareas que no se pueden calcular y las que el rol no ve. Sin bloqueos de filas. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidsquerySimarray Respostas StatusDescrição200Successful Response (BookingBalancesView)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2536,"title":2537,"titles":2538,"content":2539,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentscash","GET \u002Fpayments\u002Fcash",[2492],"Leer caja o configuración Autenticação: Chave de API ou sessão do painelEscopos: cash:read Parâmetros NomeEmObrigatórioTipoDescriçãodayqueryNãostring (date)Día local del negocio; por defecto hoy Respostas StatusDescrição200Resultado en unidades menores de la moneda del negocio (CashDay)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2541,"title":2542,"titles":2543,"content":2544,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentscashentries","POST \u002Fpayments\u002Fcash\u002Fentries",[2492],"Registrar rendición, cierre o ajuste inmutable También exige cash:remit para rendir o cash:close para cerrar\u002Fajustar. Staff solo lee su efectivo. No usa workspace_id externo. Autenticação: Chave de API ou sessão do painelEscopos: cash:read Parâmetros NomeEmObrigatórioTipoDescriçãoIdempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Corpo da solicitação (obrigatório) application\u002Fjson: CashCommand Respostas StatusDescrição201Resultado en unidades menores de la moneda del negocio (CashEntryView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2546,"title":2547,"titles":2548,"content":2549,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentscashsettings","GET \u002Fpayments\u002Fcash\u002Fsettings",[2492],"Leer caja o configuración Autenticação: Chave de API ou sessão do painelEscopos: cash:configure Respostas StatusDescrição200Resultado en unidades menores de la moneda del negocio (CashAlertSettings)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2551,"title":2552,"titles":2553,"content":2554,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#put-paymentscashsettings","PUT \u002Fpayments\u002Fcash\u002Fsettings",[2492],"Configurar aviso opcional de efectivo Autenticação: Chave de API ou sessão do painelEscopos: cash:configure Corpo da solicitação (obrigatório) application\u002Fjson: CashAlertSettings Respostas StatusDescrição200Resultado en unidades menores de la moneda del negocio (CashAlertSettings)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2556,"title":2557,"titles":2558,"content":2559,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentschargescharge_idapply-to-account","POST \u002Fpayments\u002Fcharges\u002F{charge_id}\u002Fapply-to-account",[2492],"Usar un pago «a devolver» para otra deuda Tenant desde credencial. Scope payments:adjust; cookie + CSRF; solo owner\u002Fmanager. Un pago tardío electrónico separado «a devolver» (refund_due) no compensa deudas del cliente; con confirm=true pasa al saldo del cliente y desde ahí cubre sus deudas más antiguas (FIFO). Auditoría payment.applied_to_account; idempotente (repetirlo devuelve el mismo resultado). No llama a Mercado Pago ni devuelve dinero. 409 payment.not_refund_due si el cobro no está «a devolver»; 409 payment.in_mediation con un reclamo abierto en MP. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãocharge_idpathSimstring (uuid)Idempotency-KeyheaderNãostring (null) Corpo da solicitação (obrigatório) application\u002Fjson: ApplyToAccount Respostas StatusDescrição200Pago pasado al saldo del cliente (AppliedToAccountView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2561,"title":2562,"titles":2563,"content":2564,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentschargescharge_idcancel","POST \u002Fpayments\u002Fcharges\u002F{charge_id}\u002Fcancel",[2492],"Anular un cobro abierto de una tarea (link, QR o Point) F4-92. Permiso y scope payments:link (owner\u002Fmanager; staff solo en sus tareas y si el dueño no apagó «El repartidor puede cobrar», si no 403); cookie + CSRF o API key (un QR o Point, solo sesión del panel). Anula un cobro abierto de la tarea, sea una parte o el cobro por el saldo (link, QR o Point; la tarjeta no), con void_reason=charge_cancelled; en Mercado Pago se cancela en el momento y, si falla, con reintentos. Un pago verificado que llegue igual queda en revisión. Los demás cobros no cambian. Repetir sobre un cobro anulado o vencido es un no-op. 409 payment.charge_not_found (no existe, es de otro proyecto o no es visible para quien pide), payment.charge_not_open (ya pagado u otro estado final). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãocharge_idpathSimstring (uuid) Respostas StatusDescrição200Successful Response (PaymentLinkView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2566,"title":2567,"titles":2568,"content":2569,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentschargescharge_idfiscal","GET \u002Fpayments\u002Fcharges\u002F{charge_id}\u002Ffiscal",[2492],"Marcador fiscal y comprobantes de un cobro F4-85. Tenant desde credencial. Scope\u002Fpermiso payments:fiscal (owner\u002Fmanager). Fiuit nunca emite comprobantes; devuelve el marcador manual (not_required, pending o issued_external con número y fecha) y los comprobantes del emisor externo del negocio, si hay. Otro proyecto o un id inexistente dan 404 payment.not_found. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãocharge_idpathSimstring (uuid) Respostas StatusDescrição200Marcador y comprobantes (ChargeFiscalView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2571,"title":2572,"titles":2573,"content":2574,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#put-paymentschargescharge_idfiscal","PUT \u002Fpayments\u002Fcharges\u002F{charge_id}\u002Ffiscal",[2492],"Marcar si un cobro lleva comprobante fiscal F4-85. Tenant desde credencial. Scope\u002Fpermiso payments:fiscal (owner\u002Fmanager); cookie + CSRF. Idempotente (repetir lo mismo no cambia nada). Solo cobros que recibieron dinero (409 fiscal.charge_not_paid; uno anulado, 409 payment.voided); si el emisor conectado ya emitió la factura, 409 fiscal.document_issued. Fecha futura, 409 fiscal.future_date. Auditado (payment.fiscal_marked); el monto del cobro no cambia. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãocharge_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: ChargeFiscalMark Respostas StatusDescrição200Marcador actualizado (ChargeFiscalView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2576,"title":2577,"titles":2578,"content":2579,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentschargescharge_idrefunds","GET \u002Fpayments\u002Fcharges\u002F{charge_id}\u002Frefunds",[2492],"Devoluciones de un cobro electrónico Tenant desde credencial. Scope\u002Fpermiso payments:refund (solo owner\u002Fmanager). Lo devuelto (acreditado), lo pedido en curso (pending) y lo que todavía se puede devolver (refundable_minor). Si el cobro no admite devolución desde Fiuit, refundable_minor es 0 y refund_blocked trae el motivo (cobro manual, no pagado, contracargo, reclamo abierto, devolución parcial sin monto conocido, orden QR\u002FPoint, pago sin id de Mercado Pago o cobro pasado al saldo del cliente). Otro proyecto o un id inexistente dan el mismo 409 payment.charge_not_found. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãocharge_idpathSimstring (uuid) Respostas StatusDescrição200Devoluciones del cobro (ChargeRefundsView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2581,"title":2582,"titles":2583,"content":2584,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentschargescharge_idrefunds","POST \u002Fpayments\u002Fcharges\u002F{charge_id}\u002Frefunds",[2492],"Devolver (total o parcial) un cobro de Mercado Pago Tenant desde credencial. Scope\u002Fpermiso payments:refund (solo owner\u002Fmanager); cookie + CSRF. Exige confirm=true e Idempotency-Key. Sin amount_minor devuelve todo lo que queda. El pedido queda registrado y auditado (payment.refund_requested) antes de llamar a Mercado Pago, con la misma clave de idempotencia en cada reintento; la respuesta trae status succeeded, failed (rechazo definitivo, con aviso a owner\u002Fmanager) o pending (respuesta ambigua o en proceso; el worker reintenta). Repetir la misma clave devuelve la misma devolución; con otro monto o motivo, 409 payment.idempotency_conflict. Nunca más de lo cobrado (servicio y base de datos) → 409 payment.refund_exceeds_remaining o payment.already_refunded. 409 payment.not_refundable, payment.in_mediation, payment.refund_manual_unsupported (un cobro manual se anula), payment.refund_unsupported_method (orden QR\u002FPoint, se devuelve en Mercado Pago), payment.refund_unavailable (sin id del pago en MP), payment.refund_amount_unavailable, payment.refund_plan_unsupported (paquete o club), payment.refund_applied_to_account (pasado al saldo del cliente con «Usar para otra deuda»; limitación hasta F4-56). El cobro pasa a partially_refunded o refunded; lo devuelto se descuenta del saldo de la tarea, de Financiero, de las comisiones y de la seña en estadísticas. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãocharge_idpathSimstring (uuid)Idempotency-KeyheaderSimstring Corpo da solicitação (obrigatório) application\u002Fjson: RefundInput Respostas StatusDescrição201Devolución registrada (y ejecutada si el proveedor respondió) (RefundView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2586,"title":2587,"titles":2588,"content":2589,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentscommissionsadjustments","POST \u002Fpayments\u002Fcommissions\u002Fadjustments",[2492],"Ajustar la comisión de un día Ajuste manual con signo y motivo, inmutable y auditado, sobre un día abierto. Un día de un período liquidado da 409 commission.period_settled (F4-77); el ajuste va en un día abierto. Owner\u002Fmanager. No usa workspace_id externo. Autenticação: Chave de API ou sessão do painelEscopos: commissions:adjust Parâmetros NomeEmObrigatórioTipoDescriçãoIdempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Corpo da solicitação (obrigatório) application\u002Fjson: CommissionAdjustmentInput Respostas StatusDescrição201Importes en unidades menores de la moneda del negocio (CommissionAdjustmentView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2591,"title":2592,"titles":2593,"content":2594,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentscommissionsday","GET \u002Fpayments\u002Fcommissions\u002Fday",[2492],"Día de comisiones por profesional Cobrado por método, propinas, comisión, ajustes y diferencias de caja de cada profesional en un día local, calculado al vuelo (sin cierre diario). Staff ve solo lo suyo; owner\u002Fmanager ven a todos y lo cobrado sin profesional. Los cobros de tareas completadas se atribuyen a quien tenía sus recursos al completar; mientras siga abierta, a quien los tiene hoy. Tareas no_show\u002Fcancelled\u002Ffailed no generan comisión ni unattributed_minor; sus cobros permanecen como ingreso del negocio en Financiero\u002FCaja. No usa workspace_id externo. Autenticação: Chave de API ou sessão do painelEscopos: commissions:read Parâmetros NomeEmObrigatórioTipoDescriçãodayqueryNãostring (date) Respostas StatusDescrição200Importes en unidades menores de la moneda del negocio (CommissionDay)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2596,"title":2597,"titles":2598,"content":2599,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentscommissionsexport","GET \u002Fpayments\u002Fcommissions\u002Fexport",[2492],"Exportar comisiones (CSV) Una fila por profesional y día, importes en unidad menor y moneda. Auditado (commission.exported). Staff solo lo propio. No usa workspace_id externo. Autenticação: Chave de API ou sessão do painelEscopos: commissions:export Parâmetros NomeEmObrigatórioTipoDescriçãostartquerySimstring (date)endquerySimstring (date)member_idqueryNãostring (uuid) Respostas StatusDescrição200CSV UTF-8 en unidades menores (string)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2601,"title":2602,"titles":2603,"content":2604,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentscommissionsreport","GET \u002Fpayments\u002Fcommissions\u002Freport",[2492],"Reporte de comisiones por período y profesional Totales por profesional entre start y end (días locales, inclusive, hasta 366), calculados al vuelo; cada tarea cuenta una vez. Staff solo lo propio (member_id de otra persona da 403). En F4-77 los días de un período liquidado salen del asiento congelado (settlements); la comisión de una anulación o devolución se revierte en el día del cobro original y el período de la devolución lo avisa en reversals; carried_minor (dentro de adjustments_minor) corrige un período ya liquidado. No usa workspace_id externo. Autenticação: Chave de API ou sessão do painelEscopos: commissions:read Parâmetros NomeEmObrigatórioTipoDescriçãostartquerySimstring (date)endquerySimstring (date)member_idqueryNãostring (uuid) Respostas StatusDescrição200Importes en unidades menores de la moneda del negocio (CommissionReport)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2606,"title":2607,"titles":2608,"content":2609,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentscommissionsrules","GET \u002Fpayments\u002Fcommissions\u002Frules",[2492],"Listar reglas de comisión Staff ve las reglas generales y las suyas. No usa workspace_id externo. Autenticação: Chave de API ou sessão do painelEscopos: commissions:read Respostas StatusDescrição200Importes en unidades menores de la moneda del negocio (CommissionRules)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2611,"title":2612,"titles":2613,"content":2614,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentscommissionsrules","POST \u002Fpayments\u002Fcommissions\u002Frules",[2492],"Crear regla de comisión Porcentaje (rate_bp, 4000 = 40 %) o monto fijo (amount_minor, por tarea o por unidad de producto), por profesional y por servicio o producto, con o sin descontar la comisión del medio de pago, vigente desde valid_from. Dos reglas del mismo alcance que se superponen dan 409 commission.rule_overlap. Owner\u002Fmanager. No usa workspace_id externo. Autenticação: Chave de API ou sessão do painelEscopos: commissions:configure Corpo da solicitação (obrigatório) application\u002Fjson: CommissionRuleInput Respostas StatusDescrição201Importes en unidades menores de la moneda del negocio (CommissionRuleView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2616,"title":2617,"titles":2618,"content":2619,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentscommissionsrulesrule_idend","POST \u002Fpayments\u002Fcommissions\u002Frules\u002F{rule_id}\u002Fend",[2492],"Terminar una regla de comisión Fija el último día de vigencia (inclusive). Una regla no se edita: se termina y se crea otra. Owner\u002Fmanager. No usa workspace_id externo. Autenticação: Chave de API ou sessão do painelEscopos: commissions:configure Parâmetros NomeEmObrigatórioTipoDescriçãorule_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: CommissionRuleEnd Respostas StatusDescrição200Importes en unidades menores de la moneda del negocio (CommissionRuleView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2621,"title":2622,"titles":2623,"content":2624,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentscommissionssettlements","GET \u002Fpayments\u002Fcommissions\u002Fsettlements",[2492],"Liquidaciones de comisiones de un período F4-77. Liquidaciones que tocan start..end (días locales, inclusive, hasta 366), con los montos congelados, los ajustes automáticos que ya congelaron de otros períodos (carried_from) y lo que cada una tiene pendiente de pasar como ajuste automático al período abierto siguiente (pending_carry_minor, carry_day). Staff solo lo propio (member_id de otra persona da 403). No usa workspace_id externo. Autenticação: Chave de API ou sessão do painelEscopos: commissions:read Parâmetros NomeEmObrigatórioTipoDescriçãostartquerySimstring (date)endquerySimstring (date)member_idqueryNãostring (uuid) Respostas StatusDescrição200Importes en unidades menores de la moneda del negocio (CommissionSettlements)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2626,"title":2627,"titles":2628,"content":2629,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentscommissionssettlements","POST \u002Fpayments\u002Fcommissions\u002Fsettlements",[2492],"Liquidar comisiones de una persona y un período F4-77. Congela la comisión y los ajustes de start..end (días locales, hasta hoy) de una persona en un asiento inmutable, con motivo, autor y fecha; auditoría commission.settled y evento interno commission.settled. Idempotente por Idempotency-Key y por período; liquidar otra vez el mismo período (otra clave, otro worker) devuelve el mismo asiento; otro período que se superpone da 409 commission.period_settled; un día futuro da 409 commission.future_day. Desde entonces esos días leen el asiento. Un cambio posterior (anulación, devolución o regla retroactiva) no lo reescribe; queda como ajuste automático (carried_minor) en el primer día abierto después del período, con referencia a esta liquidación. expected es opcional y lleva moneda y componentes mostrados al confirmar; si difieren del asiento que se congelaría, responde 409 commission.amounts_changed sin escribir. Un reintento de la misma clave devuelve su asiento original. Owner\u002Fmanager. No usa workspace_id externo. Autenticação: Chave de API ou sessão do painelEscopos: commissions:settle Parâmetros NomeEmObrigatórioTipoDescriçãoIdempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Corpo da solicitação (obrigatório) application\u002Fjson: CommissionSettlementInput Respostas StatusDescrição201Asiento congelado, en unidades menores de la moneda del negocio (CommissionSettlementView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2631,"title":2632,"titles":2633,"content":2634,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentscustomerscustomer_idaccountreceipts","GET \u002Fpayments\u002Fcustomers\u002F{customer_id}\u002Faccount\u002Freceipts",[2492],"Customer Account Receipts Tenant desde credencial. Permiso\u002Fscope customer_account:read (owner\u002Fmanager; F4-35). Historial de cobros del cliente, también los pagos a cuenta y los anulados, el más nuevo primero y paginado. unapplied_minor es lo que no está asignado a una tarea. La nota y el motivo de anulación son privados. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãocustomer_idpathSimstring (uuid)limitqueryNãointeger default 25offsetqueryNãointeger default 0 Respostas StatusDescrição200Successful Response (AccountReceiptsView)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2636,"title":2637,"titles":2638,"content":2639,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentscustomerscustomer_idaccounttasks","GET \u002Fpayments\u002Fcustomers\u002F{customer_id}\u002Faccount\u002Ftasks",[2492],"Customer Account Tasks Tenant desde credencial. Permiso\u002Fscope customer_account:read (owner\u002Fmanager; F4-35). Desglose por tarea vigente de la cuenta del cliente: a cobrar, cobrado y saldo de cada una, las más recientes primero. Paginado (limit hasta 100, offset); open_only deja solo las tareas con saldo. Staff no accede. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãocustomer_idpathSimstring (uuid)limitqueryNãointeger default 25offsetqueryNãointeger default 0open_onlyqueryNãoboolean default false Respostas StatusDescrição200Successful Response (AccountTasksView)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2641,"title":2642,"titles":2643,"content":2644,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentscustomerscustomer_idbalance","GET \u002Fpayments\u002Fcustomers\u002F{customer_id}\u002Fbalance",[2492],"Customer Balance Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãocustomer_idpathSimstring (uuid) Respostas StatusDescrição200Tenant desde credencial. Permiso\u002Fscope customer_balance:read (F4-35). Cuenta corriente del cliente, derivada siempre en el servidor: balance_minor = valor de las tareas vigentes menos todo lo cobrado (negativo = saldo a favor); on_account_minor = lo cobrado que no cubre una tarea vigente (pago a cuenta); debts = tareas con saldo pendiente, las más antiguas primero (hasta 50), solo con monto y fecha. Tareas canceladas, vencidas, fallidas o ausentes (no_show) no suman. Staff solo de clientes con los que trabaja; ajeno o inexistente da el mismo 403. Montos enteros en la unidad menor de la moneda (PYG y CLP sin decimales).",{"id":2646,"title":2647,"titles":2648,"content":2649,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsexpense-categories","GET \u002Fpayments\u002Fexpense-categories",[2492],"Listar categorías de gasto F4-73. Las 11 categorías fijas del proyecto (se crean en el primer uso) con key estable, kind (variable, fixed, staff, tax, fee, other), su nombre fijo en el idioma del proyecto (FIU-324: no se renombran) y si están ocultas. Owner\u002Fmanager o scope expenses:read. Autenticação: Chave de API ou sessão do painelEscopos: expenses:read Respostas StatusDescrição200Importes en unidades menores de la moneda del proyecto (ExpenseCategories)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2651,"title":2652,"titles":2653,"content":2654,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#patch-paymentsexpense-categoriescategory_id","PATCH \u002Fpayments\u002Fexpense-categories\u002F{category_id}",[2492],"Ocultar o mostrar una categoría de gasto F4-73. hidden la oculta de la carga del panel (o la vuelve a mostrar); los gastos ya cargados no cambian. FIU-324 (decisión del dueño, 2026-10-22): las categorías son fijas, no se renombran (un name en el cuerpo da 422); de ellas salen el DRE, el flujo y el informe MEI y para organizarse están las etiquetas (\u002Fpayments\u002Fexpense-tags). No se crean ni se borran categorías. Auditado. Owner\u002Fmanager o scope expenses:record. Autenticação: Chave de API ou sessão do painelEscopos: expenses:record Parâmetros NomeEmObrigatórioTipoDescriçãocategory_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: ExpenseCategoryPatch Respostas StatusDescrição200Importes en unidades menores de la moneda del proyecto (ExpenseCategoryView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2656,"title":2657,"titles":2658,"content":2659,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsexpense-tags","GET \u002Fpayments\u002Fexpense-tags",[2492],"Listar etiquetas de gastos FIU-324. Las etiquetas libres del proyecto, las más usadas primero (después por nombre), con la categoría que recuerda cada una (la última con la que se usó: al cargar un gasto con esa etiqueta y sin category_id, se usa esa) y cuántos gastos vigentes la tienen (el staff cuenta solo los suyos). Las etiquetas se crean al usarlas en un gasto (tags). Owner\u002Fmanager, staff (expenses:record_own) o scope expenses:read. Autenticação: Chave de API ou sessão do painelEscopos: expenses:read Respostas StatusDescrição200Etiquetas de gastos del proyecto (ExpenseTags)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2661,"title":2662,"titles":2663,"content":2664,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#patch-paymentsexpense-tagstag_id","PATCH \u002Fpayments\u002Fexpense-tags\u002F{tag_id}",[2492],"Renombrar una etiqueta de gastos FIU-324. Nuevo nombre (1 a 40 caracteres, espacios de más se recortan). Si otra etiqueta ya tiene ese nombre sin distinguir mayúsculas, 409 expense_tag.name_taken (se unen con merge). Auditado (expense_tag.renamed). Owner\u002Fmanager o scope expenses:record. Autenticação: Chave de API ou sessão do painelEscopos: expenses:record Parâmetros NomeEmObrigatórioTipoDescriçãotag_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: ExpenseTagPatch Respostas StatusDescrição200Etiquetas de gastos del proyecto (ExpenseTagView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2666,"title":2667,"titles":2668,"content":2669,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#delete-paymentsexpense-tagstag_id","DELETE \u002Fpayments\u002Fexpense-tags\u002F{tag_id}",[2492],"Borrar una etiqueta de gastos FIU-324. La etiqueta sale de todos sus gastos y se borra; los gastos no se tocan. Auditado (expense_tag.deleted). Owner\u002Fmanager o scope expenses:record. Autenticação: Chave de API ou sessão do painelEscopos: expenses:record Parâmetros NomeEmObrigatórioTipoDescriçãotag_idpathSimstring (uuid) Respostas StatusDescrição200Etiquetas de gastos del proyecto (ExpenseTagDeleted)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2671,"title":2672,"titles":2673,"content":2674,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentsexpense-tagstag_idmerge","POST \u002Fpayments\u002Fexpense-tags\u002F{tag_id}\u002Fmerge",[2492],"Unir una etiqueta en otra FIU-324. «Uní moto con motos»: los gastos de tag_id pasan a into_id (un gasto que ya tenía las dos queda con una) y tag_id se borra. La que queda conserva su categoría recordada (si no tenía, toma la de la otra). La misma etiqueta, 409 expense_tag.merge_same; una que no existe, 404. Auditado (expense_tag.merged). Owner\u002Fmanager o scope expenses:record. Autenticação: Chave de API ou sessão do painelEscopos: expenses:record Parâmetros NomeEmObrigatórioTipoDescriçãotag_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: ExpenseTagMerge Respostas StatusDescrição200Etiquetas de gastos del proyecto (ExpenseTagMerged)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2676,"title":2677,"titles":2678,"content":2679,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsexpenses","GET \u002Fpayments\u002Fexpenses",[2492],"Listar gastos F4-73. Gastos del proyecto, del más reciente al más viejo (occurred_on = día local del proyecto). total_minor suma solo los aprobados del filtro, sin anulados, pendientes, rechazados ni de prueba (independiente de la página); include_voided e include_test solo los muestran y status (F4-74) deja solo ese estado. Staff (expenses:record_own, F4-74) ve solo los gastos que cargó. Un gasto sin resource_id es «General» (sin prorrateo). Importes en unidad menor de la moneda del proyecto (PYG y CLP sin decimales). Owner\u002Fmanager o scope expenses:read. No usa workspace_id externo. Autenticação: Chave de API ou sessão do painelEscopos: expenses:read Parâmetros NomeEmObrigatórioTipoDescriçãostartqueryNãostring \u002F null (null)endqueryNãostring \u002F null (null)category_idqueryNãostring \u002F null (null)resource_idqueryNãostring \u002F null (null)tag_idqueryNãostring \u002F null (null)FIU-324. Solo los gastos con esa etiqueta; total_minor pasa a ser «gastos con esta etiqueta» (un gasto puede tener varias, así que los totales de dos etiquetas no se suman).statusqueryNãostring \u002F null (null)include_voidedqueryNãoboolean default falseinclude_testqueryNãoboolean default falselimitqueryNãointeger default 50offsetqueryNãointeger default 0 Respostas StatusDescrição200Importes en unidades menores de la moneda del proyecto (ExpensePage)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2681,"title":2682,"titles":2683,"content":2684,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentsexpenses","POST \u002Fpayments\u002Fexpenses",[2492],"Cargar un gasto F4-73. Gasto en unidad menor de la moneda del proyecto (currency obligatoria e igual a la del proyecto; PYG y CLP sin decimales; mismo tope por moneda que los cobros manuales). occurred_on por defecto es hoy en la zona del proyecto; no acepta fechas futuras. La categoría «Comisiones del equipo» es una línea calculada y no se carga a mano (409 expense.computed_category). Idempotency-Key obligatoria: la misma clave con el mismo cuerpo devuelve el mismo gasto; con otro cuerpo, 409 payment.idempotency_conflict. is_test se guarda pero no suma. Queda en la auditoría y emite expense.recorded. Owner\u002Fmanager o scope expenses:record: queda approved. Staff (expenses:record_own, F4-74): queda pending_approval y no suma hasta que owner\u002Fmanager lo aprueben. No usa workspace_id externo. Autenticação: Chave de API ou sessão do painelEscopos: expenses:record Parâmetros NomeEmObrigatórioTipoDescriçãoIdempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Corpo da solicitação (obrigatório) application\u002Fjson: ExpenseInput Respostas StatusDescrição201Importes en unidades menores de la moneda del proyecto (ExpenseView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2686,"title":2687,"titles":2688,"content":2689,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsexpensesexpense_id","GET \u002Fpayments\u002Fexpenses\u002F{expense_id}",[2492],"Ver un gasto F4-79. Un gasto con su estado, comprobante (si tiene), revisión y anulación; es el detalle de un movimiento expense de Movimientos. Owner\u002Fmanager o scope expenses:read; staff (expenses:record_own) solo los que cargó (uno ajeno da 404, igual que uno inexistente). Autenticação: Chave de API ou sessão do painelEscopos: expenses:read Parâmetros NomeEmObrigatórioTipoDescriçãoexpense_idpathSimstring (uuid) Respostas StatusDescrição200Importes en unidades menores de la moneda del proyecto (ExpenseView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2691,"title":2692,"titles":2693,"content":2694,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#patch-paymentsexpensesexpense_id","PATCH \u002Fpayments\u002Fexpenses\u002F{expense_id}",[2492],"Corregir un gasto F4-73. Solo cambian los campos presentes (null borra nota, método, beneficiario, recurso, servicio o persona). Cada cambio queda en la auditoría con el valor anterior y el nuevo (expense.updated). Un gasto anulado no se edita (409 expense.voided) ni uno rechazado (409 expense.rejected); sin cierre de período. Cada cambio queda también en el historial (GET ...\u002Fedits, F4-74). Moneda, origen y is_test no cambian. Owner\u002Fmanager o scope expenses:record; staff (expenses:record_own) solo los suyos mientras siguen pendientes (409 expense.not_pending; uno ajeno da 404). Autenticação: Chave de API ou sessão do painelEscopos: expenses:record Parâmetros NomeEmObrigatórioTipoDescriçãoexpense_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: ExpensePatch Respostas StatusDescrição200Importes en unidades menores de la moneda del proyecto (ExpenseView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2696,"title":2697,"titles":2698,"content":2699,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentsexpensesexpense_idapprove","POST \u002Fpayments\u002Fexpenses\u002F{expense_id}\u002Fapprove",[2492],"Aprobar un gasto pendiente F4-74. Un gasto del staff en pending_approval pasa a approved (desde ahora suma) con revisor y fecha; emite expense.approved y queda en el historial y la auditoría. Repetir devuelve el mismo resultado. Un gasto que no está pendiente da 409 expense.not_pending; nadie aprueba lo que cargó (409 expense.self_review, también lo exige la base). Owner\u002Fmanager o scope expenses:approve. Autenticação: Chave de API ou sessão do painelEscopos: expenses:approve Parâmetros NomeEmObrigatórioTipoDescriçãoexpense_idpathSimstring (uuid) Respostas StatusDescrição200Importes en unidades menores de la moneda del proyecto (ExpenseView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2701,"title":2702,"titles":2703,"content":2704,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsexpensesexpense_idedits","GET \u002Fpayments\u002Fexpenses\u002F{expense_id}\u002Fedits",[2492],"Historial de un gasto F4-74. Cada corrección, aprobación, rechazo o anulación del gasto, de la más vieja a la más nueva: quién (actor_type user o api_key, actor_id), cuándo y los campos que cambiaron con su valor anterior y el nuevo (ids y fechas como texto). Solo se agrega: no se edita ni se borra. Sin cierre de período. Owner\u002Fmanager o scope expenses:read; staff (expenses:record_own) solo el de los gastos que cargó (uno ajeno da 404). Autenticação: Chave de API ou sessão do painelEscopos: expenses:read Parâmetros NomeEmObrigatórioTipoDescriçãoexpense_idpathSimstring (uuid) Respostas StatusDescrição200Importes en unidades menores de la moneda del proyecto (ExpenseEdits)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2706,"title":2707,"titles":2708,"content":2709,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentsexpensesexpense_idreject","POST \u002Fpayments\u002Fexpenses\u002F{expense_id}\u002Freject",[2492],"Rechazar un gasto pendiente F4-74. Un gasto del staff en pending_approval pasa a rejected con motivo obligatorio (review_reason), revisor y fecha; emite expense.rejected y queda en el historial y la auditoría. Rechazado es final: no suma, no se corrige ni se anula (409 expense.rejected); se carga uno nuevo. Repetir con el mismo motivo devuelve el mismo resultado; con otro, 409 expense.review_conflict. Nadie rechaza lo que cargó (409 expense.self_review). Owner\u002Fmanager o scope expenses:approve. Autenticação: Chave de API ou sessão do painelEscopos: expenses:approve Parâmetros NomeEmObrigatórioTipoDescriçãoexpense_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: ExpenseReject Respostas StatusDescrição200Importes en unidades menores de la moneda del proyecto (ExpenseView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2711,"title":2712,"titles":2713,"content":2714,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentsexpensesexpense_idvoid","POST \u002Fpayments\u002Fexpenses\u002F{expense_id}\u002Fvoid",[2492],"Anular un gasto F4-73. Un gasto nunca se borra: anular deja motivo, autor y fecha y emite expense.voided. Repetir con el mismo motivo devuelve el mismo resultado; con otro motivo, 409 payment.void_conflict. Un gasto rechazado no se anula (409 expense.rejected). Owner\u002Fmanager o scope expenses:void. Autenticação: Chave de API ou sessão do painelEscopos: expenses:void Parâmetros NomeEmObrigatórioTipoDescriçãoexpense_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: ExpenseVoid Respostas StatusDescrição200Importes en unidades menores de la moneda del proyecto (ExpenseView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2716,"title":2717,"titles":2718,"content":2719,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsexpenseshigh-amount","GET \u002Fpayments\u002Fexpenses\u002Fhigh-amount",[2492],"Umbral de monto alto de la carga conversada (segunda confirmación) F4-83. Desde cuánto un gasto cargado conversando (Wagy, MCP, bot de equipo) pide una segunda confirmación: el doble del precio mensual del plan del proyecto en su moneda (decisión del dueño, no un número fijo). Sin precio publicado para la moneda, threshold_minor es nulo y todo monto cuenta como alto. Con amount_minor responde además si ese monto alcanza el umbral (inclusive). No escribe nada. Owner\u002Fmanager, staff (que carga los suyos) o scope expenses:record. El número (threshold_minor) solo lo recibe el owner o una API key que emitió el owner (rol vigente): ver el plan es solo suyo. Manager, staff y las demás keys reciben threshold_minor: null y usan high. No usa workspace_id externo. Autenticação: Chave de API ou sessão do painelEscopos: expenses:record Parâmetros NomeEmObrigatórioTipoDescriçãoamount_minorqueryNãointegerMonto a comparar, en unidad menor de la moneda del proyecto (PYG y CLP sin decimales). Respostas StatusDescrição200Umbral en unidades menores de la moneda del proyecto (ExpenseHighAmount)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2721,"title":2722,"titles":2723,"content":2724,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsexpensespending","GET \u002Fpayments\u002Fexpenses\u002Fpending",[2492],"Contar los gastos por aprobar F4-74. Contador de quien aprueba: cantidad y suma de los gastos del staff en pending_approval, sin los de prueba, en unidad menor de la moneda del proyecto. Owner\u002Fmanager o scope expenses:approve. No usa workspace_id externo. Autenticação: Chave de API ou sessão do painelEscopos: expenses:approve Respostas StatusDescrição200Importes en unidades menores de la moneda del proyecto (ExpensePending)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2726,"title":2727,"titles":2728,"content":2729,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinanceaccounts","GET \u002Fpayments\u002Ffinance\u002Faccounts",[2492],"Cuentas que componen el saldo actual o el crédito del Resumen Proyección canónica F4-35, sin filtro de período. Owner\u002Fmanager o scope finance:analyze; nunca staff. Autenticação: Chave de API ou sessão do painelEscopos: finance:analyze Parâmetros NomeEmObrigatórioTipoDescriçãobalancequeryNãostring debt, credit default debtcursorqueryNãostring (null) (uuid)limitqueryNãointeger default 50 Respostas StatusDescrição200Cuentas con saldo del signo seleccionado, paginadas por cliente (FinanceAccounts)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2731,"title":2732,"titles":2733,"content":2734,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinanceavailability","GET \u002Fpayments\u002Ffinance\u002Favailability",[2492],"Finance Availability Tenant desde credencial; unidades menores de la moneda del negocio. Staff solo recibos y caja propios. Ver docs\u002Fapi\u002Ffinanciero.md. Autenticação: Chave de API ou sessão do painelEscopos: payments:read Respostas StatusDescrição200Successful Response (FinanceAvailability)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2736,"title":2737,"titles":2738,"content":2739,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinancecollections","GET \u002Fpayments\u002Ffinance\u002Fcollections",[2492],"Finance Collections F4-26. Números de cobros del período por fecha local de cobro, en la moneda y zona del proyecto: bruto, devuelto, comisión del proveedor (Mercado Pago, fee_details), comisión de Fiuit y neto; por método, servicio y día\u002Fsemana; y lo estimado (completado sin ningún cobro). Solo lectura. Owner\u002Fmanager o scope finance:analyze; staff\u002Fviewer cerrados. Sin anulados ni de prueba. Autenticação: Chave de API ou sessão do painelEscopos: finance:analyze Parâmetros NomeEmObrigatórioTipoDescriçãostartquerySimstring (date)endquerySimstring (date)service_idqueryNãostring \u002F null (null)resource_idqueryNãostring \u002F null (null)granularityqueryNãostring day, week default day Respostas StatusDescrição200Successful Response (Collections)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2741,"title":2742,"titles":2743,"content":2744,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinancecollectionsexport","GET \u002Fpayments\u002Ffinance\u002Fcollections\u002Fexport",[2492],"Finance Collections Export F4-26. CSV de conciliación de cobros por fecha local de cobro: bruto, devuelto, comisión del proveedor (y si fue informada), comisión de Fiuit, neto e id del pago en el proveedor. Owner\u002Fmanager o API key con finance:analyze y finance:export; staff\u002Fviewer cerrados. Sin anulados ni de prueba. Autenticação: Chave de API ou sessão do painelEscopos: finance:analyze, finance:export Parâmetros NomeEmObrigatórioTipoDescriçãostartquerySimstring (date)endquerySimstring (date)service_idqueryNãostring \u002F null (null)resource_idqueryNãostring \u002F null (null) Respostas StatusDescrição200CSV auditado (finance.collections_exported), un cobro por fila, en streaming. Máximo 50000 filas; si las supera responde 409 finance.export_too_large antes de enviar datos. (string)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2746,"title":2747,"titles":2748,"content":2749,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinancecustomers","GET \u002Fpayments\u002Ffinance\u002Fcustomers",[2492],"Finance Customers Lectura de valores congelados y cuenta F4-35. Owner\u002Fmanager o scope finance:analyze; staff\u002Fviewer cerrados. Importes en unidad menor, sin PII adicional. Datos actuales, estimaciones rotuladas. Autenticação: Chave de API ou sessão do painelEscopos: finance:analyze Parâmetros NomeEmObrigatórioTipoDescriçãooffsetqueryNãointeger default 0limitqueryNãointeger default 50at_riskqueryNãoboolean default false Respostas StatusDescrição200Successful Response (CustomerFinancePage)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2751,"title":2752,"titles":2753,"content":2754,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinancecustomerscustomer_id","GET \u002Fpayments\u002Ffinance\u002Fcustomers\u002F{customer_id}",[2492],"Finance Customer Lectura de valores congelados y cuenta F4-35. Owner\u002Fmanager o scope finance:analyze; staff\u002Fviewer cerrados. Importes en unidad menor, sin PII adicional. Datos actuales, estimaciones rotuladas. Autenticação: Chave de API ou sessão do painelEscopos: finance:analyze Parâmetros NomeEmObrigatórioTipoDescriçãocustomer_idpathSimstring (uuid) Respostas StatusDescrição200Successful Response (CustomerFinancePage)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2756,"title":2757,"titles":2758,"content":2759,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinancedebt","GET \u002Fpayments\u002Ffinance\u002Fdebt",[2492],"Finance Debt Lectura de valores congelados y cuenta F4-35. Owner\u002Fmanager o scope finance:analyze; staff\u002Fviewer cerrados. Importes en unidad menor, sin PII adicional. Datos actuales, estimaciones rotuladas. Autenticação: Chave de API ou sessão do painelEscopos: finance:analyze Parâmetros NomeEmObrigatórioTipoDescriçãooffsetqueryNãointeger default 0limitqueryNãointeger default 50customer_idqueryNãostring \u002F null (null)completed_onlyqueryNãoboolean default false Respostas StatusDescrição200Successful Response (FinanceDebt)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2761,"title":2762,"titles":2763,"content":2764,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinanceexport","GET \u002Fpayments\u002Ffinance\u002Fexport",[2492],"Finance Export Tenant desde credencial; unidades menores de la moneda del negocio. Staff solo recibos y caja propios. Ver docs\u002Fapi\u002Ffinanciero.md. Autenticação: Chave de API ou sessão do painelEscopos: finance:export, payments:read Parâmetros NomeEmObrigatórioTipoDescriçãostartquerySimstring (date)endquerySimstring (date)customer_idqueryNãostring \u002F null (null)member_idqueryNãostring \u002F null (null)methodqueryNãostring \u002F null (null)statusqueryNãostring \u002F null (null)kindqueryNãostring \u002F null (null)groupqueryNãostring \u002F null (null)F4-79, chips de Movimientos: collections = cobros y caja (sin gastos ni comisiones de cobro), expenses = gastos cargados, commissions = comisiones de cobro. Sin valor: todo.searchqueryNãostring \u002F null (null)tag_idqueryNãostring \u002F null (null)FIU-324. Solo los gastos con esa etiqueta (cobros y comisiones no llevan etiquetas). La búsqueda (search) también encuentra gastos por el nombre de sus etiquetas.cursorqueryNãostring \u002F null (null)limitqueryNãointeger default 50 Respostas StatusDescrição200CSV auditado con filtros, permisos y orden idénticos al libro, enviado en streaming (una sola consulta leída por lotes). Máximo 50000 filas; si las supera responde 409 finance.export_too_large antes de enviar datos. (string)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2766,"title":2767,"titles":2768,"content":2769,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinanceforecast","GET \u002Fpayments\u002Ffinance\u002Fforecast",[2492],"Finance Forecast Lectura de valores congelados y cuenta F4-35. Owner\u002Fmanager o scope finance:analyze; staff\u002Fviewer cerrados. Importes en unidad menor, sin PII adicional. Datos actuales, estimaciones rotuladas. Autenticação: Chave de API ou sessão do painelEscopos: finance:analyze Respostas StatusDescrição200Successful Response (FinanceForecast)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2771,"title":2772,"titles":2773,"content":2774,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinancemovements","GET \u002Fpayments\u002Ffinance\u002Fmovements",[2492],"Finance Movements Tenant desde credencial; unidades menores de la moneda del negocio. Staff solo recibos y caja propios. Ver docs\u002Fapi\u002Ffinanciero.md. Autenticação: Chave de API ou sessão do painelEscopos: payments:read Parâmetros NomeEmObrigatórioTipoDescriçãostartquerySimstring (date)endquerySimstring (date)customer_idqueryNãostring \u002F null (null)member_idqueryNãostring \u002F null (null)methodqueryNãostring \u002F null (null)statusqueryNãostring \u002F null (null)kindqueryNãostring \u002F null (null)groupqueryNãostring \u002F null (null)F4-79, chips de Movimientos: collections = cobros y caja (sin gastos ni comisiones de cobro), expenses = gastos cargados, commissions = comisiones de cobro. Sin valor: todo.searchqueryNãostring \u002F null (null)tag_idqueryNãostring \u002F null (null)FIU-324. Solo los gastos con esa etiqueta (cobros y comisiones no llevan etiquetas). La búsqueda (search) también encuentra gastos por el nombre de sus etiquetas.cursorqueryNãostring \u002F null (null)limitqueryNãointeger default 50 Respostas StatusDescrição200Successful Response (FinanceMovements)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2776,"title":2777,"titles":2778,"content":2779,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinanceoverview","GET \u002Fpayments\u002Ffinance\u002Foverview",[2492],"Resumen mensual de Dinero F4-80. Para el gráfico del Inicio: Entró \u002F Salió \u002F Quedó realizados de los 2 períodos anteriores y del actual (hasta hoy) y, en el actual y el siguiente, lo que falta, siempre una suma de cosas con fecha: tareas agendadas (lo ya recibido de pago o seña antes del período es «seguro»; el saldo, «previsto»), gastos recurrentes que vencen («seguros»), comisión del equipo estimada sobre esas tareas y gastos por aprobar («previstos»). period: month, week (lunes a domingo) o day (solo hoy). La comisión de cobro no se estima y los saldos por cobrar no tienen vencimiento: ambos se avisan en notes. Solo lectura. Owner\u002Fmanager o scope finance:analyze; staff\u002Fviewer cerrados. Autenticação: Chave de API ou sessão do painelEscopos: finance:analyze Parâmetros NomeEmObrigatórioTipoDescriçãoperiodqueryNãostring day, week, month default month Respostas StatusDescrição200Successful Response (FinanceOverview)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2781,"title":2782,"titles":2783,"content":2784,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinancereport-evidence","GET \u002Fpayments\u002Ffinance\u002Freport-evidence",[2492],"Finance Report Evidence Lectura de valores congelados y cuenta F4-35. Owner\u002Fmanager o scope finance:analyze; staff\u002Fviewer cerrados. Importes en unidad menor, sin PII adicional. Datos actuales, estimaciones rotuladas. Autenticação: Chave de API ou sessão do painelEscopos: finance:analyze Parâmetros NomeEmObrigatórioTipoDescriçãostartquerySimstring (date)endquerySimstring (date)dimensionqueryNãostring service, customer, member, method, weekday, hour, zone, channel, origin, cohort default servicekeyqueryNãostring \u002F null (null)offsetqueryNãointeger default 0limitqueryNãointeger default 50 Respostas StatusDescrição200Successful Response (ReportEvidence)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2786,"title":2787,"titles":2788,"content":2789,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinancereports","GET \u002Fpayments\u002Ffinance\u002Freports",[2492],"Finance Reports Lectura de valores congelados y cuenta F4-35. Owner\u002Fmanager o scope finance:analyze; staff\u002Fviewer cerrados. Importes en unidad menor, sin PII adicional. Datos actuales, estimaciones rotuladas. Autenticação: Chave de API ou sessão do painelEscopos: finance:analyze Parâmetros NomeEmObrigatórioTipoDescriçãostartquerySimstring (date)endquerySimstring (date)dimensionqueryNãostring service, customer, member, method, weekday, hour, zone, channel, origin, cohort default servicekeyqueryNãostring \u002F null (null)offsetqueryNãointeger default 0limitqueryNãointeger default 50 Respostas StatusDescrição200Successful Response (FinanceReport)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2791,"title":2792,"titles":2793,"content":2794,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinanceresult","GET \u002Fpayments\u002Ffinance\u002Fresult",[2492],"Resultado del período F4-76. Resultado con base caja en la moneda y zona del proyecto: Entró (cobrado menos devuelto, misma población que finance\u002Fcollections: sin anulados, de prueba, en revisión ni cobros con devolución parcial de monto desconocido), Salió (gastos aprobados + línea calculada de comisiones del equipo + línea calculada de comisiones de cobro informadas) y Quedó, con margen, vendido como dato secundario y comparación contra el período anterior. group_by period (día o semana), resource, service o category; filtros service_id y resource_id. Gastos sin recurso o servicio = «General» (key null), sin prorrateo; los ajustes manuales de comisión van al recurso de la persona ese día (por servicio, a «General»). Advertencias: missing_expenses, refund_amount_unavailable, provider_fee_unknown, resource_overlap. Solo lectura. Owner\u002Fmanager o scope finance:analyze; staff\u002Fviewer cerrados. 409 finance.invalid_period. Autenticação: Chave de API ou sessão do painelEscopos: finance:analyze Parâmetros NomeEmObrigatórioTipoDescriçãostartquerySimstring (date)endquerySimstring (date)service_idqueryNãostring \u002F null (null)resource_idqueryNãostring \u002F null (null)group_byqueryNãostring period, resource, service, category default periodgranularityqueryNãostring day, week default day Respostas StatusDescrição200Successful Response (FinanceResult)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2796,"title":2797,"titles":2798,"content":2799,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinanceresultexport","GET \u002Fpayments\u002Ffinance\u002Fresult\u002Fexport",[2492],"Exportar el Resultado (XLSX para el contador o CSV) F4-81. Los números del Resultado (GET \u002Fpayments\u002Ffinance\u002Fresult) como archivo, sin recalcular. CSV: un movimiento por renglón (cobro, devolución, comisión de cobro, comisión del equipo, gasto) con kind, category, resource, service, member, customer, amount en decimales legibles y amount_minor; la suma de amount_minor es el result_minor del período. UTF-8 con BOM; separador ; y coma decimal si la moneda usa coma (BRL, ARS, CLP, COP, PYG, UYU, EUR), , y punto si no (MXN, PEN, USD). PYG y CLP sin decimales. Fechas: día local del proyecto. XLSX: hojas Resumen, Movimientos, Por categoría, Por recurso, Por servicio, Comisiones y Cobros electrónicos (bruto, comisión, neto e id del pago en Mercado Pago). Textos con = + - @ al inicio llevan apóstrofo. Owner\u002Fmanager o API key con finance:analyze y finance:export; staff\u002Fviewer cerrados. receipt_url va vacío: el comprobante de cada gasto viaja en el paquete ZIP (POST \u002Fpayments\u002Ffinance\u002Fresult\u002Fpackages), donde la columna dice su archivo. PDF (F4-82): una hoja A4 con Entró, Salió y Quedó, el detalle, las 5 categorías que más salieron, los avisos y un espacio para firma; importes con el formato de la moneda (PYG con su código). Autenticação: Chave de API ou sessão do painelEscopos: finance:analyze, finance:export Parâmetros NomeEmObrigatórioTipoDescriçãostartquerySimstring (date)endquerySimstring (date)service_idqueryNãostring \u002F null (null)resource_idqueryNãostring \u002F null (null)formatqueryNãostring xlsx, csv, pdf default xlsxxlsx: libro con 7 hojas; csv: solo los movimientos (UTF-8 con BOM); pdf: resumen de una hoja (Entró, Salió, Quedó, top categorías y firma, F4-82)langqueryNãostring \u002F null (null)Idioma de hojas, encabezados del XLSX y etiquetas; por defecto, el del proyecto Respostas StatusDescrição200Archivo auditado (finance.exported con report: result), transmitido en partes. Máximo 50000 renglones; si los supera responde 409 finance.export_too_large antes de enviar datos. El encabezado X-Export-Rows trae la cantidad de movimientos. (string)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2801,"title":2802,"titles":2803,"content":2804,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinanceresultlines","GET \u002Fpayments\u002Ffinance\u002Fresult\u002Flines",[2492],"Composición de un número del Resultado F4-80. Los renglones que suman un número del Resultado (los mismos que exporta finance\u002Fresult\u002Fexport): cobros (income), devoluciones (refund), comisiones de cobro (payment_fee), comisiones del equipo calculadas (staff_commission) y gastos aprobados (expense), con signo y por día local. Mismos filtros que finance\u002Fresult; row abre una fila de group_by (general = «General»), side el lado Entró (in) o Salió (out) y kind un renglón del DRE. total_minor suma todos los que cumplen el filtro (data trae hasta limit, más reciente primero): Entró, -Salió, Quedó o el resultado de la fila. Solo lectura. Owner\u002Fmanager o scope finance:analyze; customer_name con API key solo con customer_account:read. 409 finance.invalid_period. Autenticação: Chave de API ou sessão do painelEscopos: finance:analyze Parâmetros NomeEmObrigatórioTipoDescriçãostartquerySimstring (date)endquerySimstring (date)service_idqueryNãostring \u002F null (null)resource_idqueryNãostring \u002F null (null)group_byqueryNãostring period, resource, service, category default periodgranularityqueryNãostring day, week default dayrowqueryNãostring \u002F null (null)key de una fila de group_by (fecha, id de recurso o servicio, key de categoría); general = la fila «General» (key null). Sin row, todo el períodosidequeryNãostring \u002F null (null)in: lo que compone Entró (cobros y devoluciones); out: lo que compone SaliókindqueryNãostring \u002F null (null)Solo un tipo de renglón (un renglón del DRE)limitqueryNãointeger default 200Renglones a devolver; el total suma todos Respostas StatusDescrição200Successful Response (FinanceResultLines)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2806,"title":2807,"titles":2808,"content":2809,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinanceresultpackages","GET \u002Fpayments\u002Ffinance\u002Fresult\u002Fpackages",[2492],"Mis paquetes para el contador F4-82. Cada persona (o key) ve solo sus paquetes. Owner\u002Fmanager o API key con finance:analyze y finance:export. Autenticação: Chave de API ou sessão do painelEscopos: finance:analyze, finance:export Respostas StatusDescrição200Los últimos 20 paquetes de quien consulta (sesión o API key), los más nuevos primero (FinancePackages)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2811,"title":2812,"titles":2813,"content":2814,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentsfinanceresultpackages","POST \u002Fpayments\u002Ffinance\u002Fresult\u002Fpackages",[2492],"Pedir el paquete ZIP para el contador del período F4-82. Un ZIP con el XLSX de GET \u002Fpayments\u002Ffinance\u002Fresult\u002Fexport (las 7 hojas, con la columna «Comprobante» apuntando al archivo dentro del ZIP), el PDF de resumen de una hoja (format=pdf) y los comprobantes de los gastos aprobados del período, con nombre AAAA-MM-DD_\u003Cmonto>_\u003Ccategoria>.\u003Cext> en la carpeta comprovantes\u002F, comprobantes\u002F o receipts\u002F según lang. Mismos números que el Resultado, sin recalcular. Los comprobantes solo van si lo pide una sesión (owner\u002Fmanager): con API key el paquete lleva XLSX y PDF (receipts_included: false). Si es chico (hasta 2000 renglones y 20 comprobantes que suman 5 MB) responde 201 listo; si no, 202 pending y lo arma el worker. Topes: 50000 renglones (409 finance.export_too_large), 1000 comprobantes y 100 MB de comprobantes (409 finance.package_too_large); un paquete abierto por persona (409 finance.package_in_progress). El archivo vence a las 48 h. Auditado (finance.exported con report: package). Autenticação: Chave de API ou sessão do painelEscopos: finance:analyze, finance:export Corpo da solicitação (obrigatório) application\u002Fjson: FinancePackageInput Respostas StatusDescrição201Paquete chico, armado en el momento (status done, con download_url) (FinancePackageView)202Paquete grande, lo arma el worker (status pending); se avisa a quien lo pidió al terminar (FinancePackageView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2816,"title":2817,"titles":2818,"content":2819,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinanceresultpackagespackage_id","GET \u002Fpayments\u002Ffinance\u002Fresult\u002Fpackages\u002F{package_id}",[2492],"Estado de un paquete F4-82. El paquete de otra persona o de otro proyecto responde 404 finance.package_not_found. Autenticação: Chave de API ou sessão do painelEscopos: finance:analyze, finance:export Parâmetros NomeEmObrigatórioTipoDescriçãopackage_idpathSimstring (uuid) Respostas StatusDescrição200Estado y, si está listo, un link de descarga firmado nuevo (vale 5 minutos) (FinancePackageView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2821,"title":2822,"titles":2823,"content":2824,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinanceresultpackagespackage_iddownload","GET \u002Fpayments\u002Ffinance\u002Fresult\u002Fpackages\u002F{package_id}\u002Fdownload",[2492],"Bajar el ZIP con el link firmado F4-82. Usá el download_url de GET \u002Fpayments\u002Ffinance\u002Fresult\u002Fpackages\u002F{package_id} tal cual, con la misma sesión o API key que lo pidió. Link vencido o adulterado → 403 finance.package_link_invalid; paquete vencido → 404 finance.package_expired; todavía armándose → 404 finance.package_not_ready. Autenticação: Chave de API ou sessão do painelEscopos: finance:analyze, finance:export Parâmetros NomeEmObrigatórioTipoDescriçãopackage_idpathSimstring (uuid)expiresquerySimintegersignaturequerySimstring Respostas StatusDescrição200El ZIP (verificado por sha256). Auditado como finance.package_downloaded. (string)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2826,"title":2827,"titles":2828,"content":2829,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinancesummary","GET \u002Fpayments\u002Ffinance\u002Fsummary",[2492],"Finance Summary Tenant desde credencial; unidades menores de la moneda del negocio. Staff solo recibos y caja propios. Ver docs\u002Fapi\u002Ffinanciero.md. Autenticação: Chave de API ou sessão do painelEscopos: finance:analyze Parâmetros NomeEmObrigatórioTipoDescriçãogranularityqueryNãostring day, week default daystartquerySimstring (date)endquerySimstring (date) Respostas StatusDescrição200Successful Response (FinanceSummary)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2831,"title":2832,"titles":2833,"content":2834,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsfinancetasks","GET \u002Fpayments\u002Ffinance\u002Ftasks",[2492],"Finance Tasks Tenant desde credencial; unidades menores de la moneda del negocio. Staff solo recibos y caja propios. Ver docs\u002Fapi\u002Ffinanciero.md. Autenticação: Chave de API ou sessão do painelEscopos: finance:analyze Parâmetros NomeEmObrigatórioTipoDescriçãostartquerySimstring (date)endquerySimstring (date)customer_idqueryNãostring \u002F null (null)member_idqueryNãostring \u002F null (null)methodqueryNãostring \u002F null (null)statusqueryNãostring \u002F null (null)kindqueryNãostring \u002F null (null)groupqueryNãostring \u002F null (null)F4-79, chips de Movimientos: collections = cobros y caja (sin gastos ni comisiones de cobro), expenses = gastos cargados, commissions = comisiones de cobro. Sin valor: todo.searchqueryNãostring \u002F null (null)cursorqueryNãostring \u002F null (null)limitqueryNãointeger default 50 Respostas StatusDescrição200Successful Response (FinanceTasks)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2836,"title":2837,"titles":2838,"content":2839,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentsmanual","POST \u002Fpayments\u002Fmanual",[2492],"Record Manual Cobro unificado (F3-492), el único comando para registrar un pago recibido fuera de la pasarela, de una tarea o seña (allocations) o a cuenta del cliente (sin allocations); la venta y renovación de un plan lo usan por dentro. method es obligatorio (cash, card, transfer, pix, mercadopago = recibido por Mercado Pago fuera de Fiuit, other). audit_log payment.recorded guarda quién, monto, forma de pago, propósito y origen (task, account o plan). Tenant desde credencial. Scope payments:record; cookie + CSRF. Bearer exige Idempotency-Key en todos los POST (máximo 128 caracteres); conflicto del ledger Bearer es 422, conflicto de dominio 409. Owner\u002Fmanager; staff solo tareas asignadas (no anula ni ajusta) y solo si el dueño no apagó «El repartidor puede cobrar» (staff_can_collect, encendido por defecto; apagado por el dueño, 403). Sin llamadas a proveedores. Montos enteros minor units, PYG exponente 0. Clave de registro permanente; misma clave con otros datos devuelve 409. Duplicados por tarea\u002Fmonto\u002Fmétodo en ventana UTC de 5 minutos se rechazan. Los cobros paid aplicados a una tarea se suman con los de pasarela; al cubrir la seña requerida, pending_payment pasa a confirmed de forma auditada e idempotente. El crédito a cuenta sin asignar no confirma. Una tarea cubierta rechaza ajustes de cobro y asignaciones manuales (409 payment_conflict, detail payment.booking_covered_by_plan); primero quitar el plan. Una tarea que queda pagada por completo con este cobro (efectivo o transferencia) también hace avanzar la etapa con la salida «Avanza sola al recibir el pago» (#1064), igual que un cobro de Mercado Pago; un pago parcial no la mueve. FIU-473 impide imputar un adicional de presupuesto sin aprobar (409 payment_conflict, detail payment.quote_pending), incluso con allow_overpayment. Se puede registrar dinero recibido sin imputarlo a esa diferencia; lo ya imputado se conserva. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoIdempotency-KeyheaderSimstring Corpo da solicitação (obrigatório) application\u002Fjson: RecordManual Respostas StatusDescrição201Successful Response (ManualView)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2841,"title":2842,"titles":2843,"content":2844,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentsmanualcharge_idallocations","POST \u002Fpayments\u002Fmanual\u002F{charge_id}\u002Fallocations",[2492],"Allocate Manual Tenant desde credencial. Scope payments:record; cookie + CSRF. Bearer exige Idempotency-Key en todos los POST (máximo 128 caracteres); conflicto del ledger Bearer es 422, conflicto de dominio 409. Owner\u002Fmanager; staff solo tareas asignadas (no anula ni ajusta) y solo si el dueño no apagó «El repartidor puede cobrar» (staff_can_collect, encendido por defecto; apagado por el dueño, 403). Sin llamadas a proveedores. Montos enteros minor units, PYG exponente 0. Clave de registro permanente; misma clave con otros datos devuelve 409. Duplicados por tarea\u002Fmonto\u002Fmétodo en ventana UTC de 5 minutos se rechazan. Asignar un recibo paid concilia la seña; el total manual aplicado más pasarela debe alcanzar la seña para confirmar; replay no duplica confirmación ni avisos. Una tarea cubierta rechaza ajustes de cobro y asignaciones manuales (409 payment_conflict, detail payment.booking_covered_by_plan); primero quitar el plan. En FIU-473, la imputación respeta el último presupuesto aceptado; un adicional pendiente o rechazado devuelve 409 payment_conflict con detail payment.quote_pending, incluso con allow_overpayment. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãocharge_idpathSimstring (uuid)Idempotency-KeyheaderNãostring \u002F null (null) Corpo da solicitação (obrigatório) application\u002Fjson: AllocationInput Respostas StatusDescrição200Successful Response (ManualView)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2846,"title":2847,"titles":2848,"content":2849,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentsmanualcharge_idvoid","POST \u002Fpayments\u002Fmanual\u002F{charge_id}\u002Fvoid",[2492],"Void Manual Tenant desde credencial. Scope payments:void; cookie + CSRF. Bearer exige Idempotency-Key en todos los POST (máximo 128 caracteres); conflicto del ledger Bearer es 422, conflicto de dominio 409. Owner\u002Fmanager; staff solo tareas asignadas (no anula ni ajusta). Sin llamadas a proveedores. Montos enteros minor units, PYG exponente 0. Clave de registro permanente; misma clave con otros datos devuelve 409. Duplicados por tarea\u002Fmonto\u002Fmétodo en ventana UTC de 5 minutos se rechazan. Si el total válido queda debajo de la seña, una tarea confirmed con payment_status paid vuelve a pending_payment únicamente antes de iniciar y antes de start_at (si existe). Conserva horario y capacidad, sin nuevo vencimiento; no reabre estados iniciados o terminales. Reembolso parcial sin monto conciliado impide deducir el faltante. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãocharge_idpathSimstring (uuid)Idempotency-KeyheaderNãostring \u002F null (null) Corpo da solicitação (obrigatório) application\u002Fjson: ReasonInput Respostas StatusDescrição200Successful Response (ManualView)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2851,"title":2852,"titles":2853,"content":2854,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentspayment-linksavailability","GET \u002Fpayments\u002Fpayment-links\u002Favailability",[2492],"¿Se puede cobrar con link? F4-20. Permiso y scope payments:link. Solo available y el motivo (reason, los de MercadoPagoMethodView); sin datos de la cuenta. El panel muestra «Cobrar» solo si está disponible. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Respostas StatusDescrição200Successful Response (PaymentLinkAvailability)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)",{"id":2856,"title":2857,"titles":2858,"content":2859,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentsrecurring-expenses","GET \u002Fpayments\u002Frecurring-expenses",[2492],"Gastos que se repiten F4-75. Los gastos recurrentes del proyecto (alquiler, sueldos fijos, servicios) con su próxima fecha (next_on, día local) y status (active, paused, ended). Owner\u002Fmanager o scope expenses:read. Autenticação: Chave de API ou sessão do painelEscopos: expenses:read Respostas StatusDescrição200Importes en unidades menores de la moneda del proyecto (RecurringPage)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2861,"title":2862,"titles":2863,"content":2864,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentsrecurring-expenses","POST \u002Fpayments\u002Frecurring-expenses",[2492],"Crear un gasto que se repite cada semana o cada mes F4-75. cadence weekly (day 1 lunes … 7 domingo) o monthly (day 1-31; en meses más cortos, el último día). Importe en unidad menor de la moneda del proyecto (currency obligatoria e igual; mismo tope que los gastos). starts_on por defecto hoy, como mucho un año para atrás (409 expense_recurring.starts_too_early); ends_on opcional. Cada fecha que toca carga un gasto aprobado con source: recurring y recurring_id, el mismo día (lo que ya tocaba desde starts_on se carga al crear); nunca dos veces la misma fecha, aunque haya reintentos o dos procesos a la vez. Sin nómina: un sueldo fijo es un recurrente de «Sueldos». «Comisiones del equipo» no se carga (409 expense.computed_category). Idempotency-Key obligatoria: misma clave y cuerpo devuelve el mismo recurrente; otro cuerpo, 409 payment.idempotency_conflict. Auditado. Owner\u002Fmanager o scope expenses:record. Autenticação: Chave de API ou sessão do painelEscopos: expenses:record Parâmetros NomeEmObrigatórioTipoDescriçãoIdempotency-KeyheaderSimstring Corpo da solicitação (obrigatório) application\u002Fjson: RecurringInput Respostas StatusDescrição201Importes en unidades menores de la moneda del proyecto (RecurringView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2866,"title":2867,"titles":2868,"content":2869,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#patch-paymentsrecurring-expensesrecurring_id","PATCH \u002Fpayments\u002Frecurring-expenses\u002F{recurring_id}",[2492],"Cambiar, pausar, reanudar o terminar un gasto que se repite F4-75. Cambia lo que viene de acá en adelante: los gastos ya cargados no se tocan (se corrigen o anulan como cualquier gasto). paused: true no genera; al reanudar sigue desde hoy (lo pausado no se recupera). Cambiar cadence o day recalcula desde hoy; ends_on termina (status: ended) y quitarlo lo retoma. Auditado con antes y después. Owner\u002Fmanager o scope expenses:record. Autenticação: Chave de API ou sessão do painelEscopos: expenses:record Parâmetros NomeEmObrigatórioTipoDescriçãorecurring_idpathSimstring (uuid)Idempotency-KeyheaderNãostring Corpo da solicitação (obrigatório) application\u002Fjson: RecurringPatch Respostas StatusDescrição200Importes en unidades menores de la moneda del proyecto (RecurringView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2871,"title":2872,"titles":2873,"content":2874,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentsrecurring-expensesrecurring_idskip","POST \u002Fpayments\u002Frecurring-expenses\u002F{recurring_id}\u002Fskip",[2492],"Saltear la próxima fecha de un gasto que se repite F4-75. on tiene que ser la próxima fecha (next_on): pasa a la siguiente sin cargar el gasto. Repetirlo no saltea otra; una fecha posterior da 409 expense_recurring.not_next, una ya cargada 409 expense_recurring.already_recorded (se anula el gasto) y un recurrente terminado 409 expense_recurring.ended. Auditado. Owner\u002Fmanager o scope expenses:record. Autenticação: Chave de API ou sessão do painelEscopos: expenses:record Parâmetros NomeEmObrigatórioTipoDescriçãorecurring_idpathSimstring (uuid)Idempotency-KeyheaderNãostring Corpo da solicitação (obrigatório) application\u002Fjson: RecurringSkip Respostas StatusDescrição200Importes en unidades menores de la moneda del proyecto (RecurringView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2876,"title":2877,"titles":2878,"content":2879,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#get-paymentstask-margins","GET \u002Fpayments\u002Ftask-margins",[2492],"Margen por tarea (líneas con costo) FIU-472: finance:analyze y, desde FIU-597, tasks:costs (por defecto solo el dueño; una API key, con payments:read_balance). Precio - costo de las líneas con costo cargado, por\ntarea; una tarea sin ningún costo no aparece (no se muestra 100 % de margen). FIU-472: margen por tarea en Dinero, finance:analyze y tasks:costs (FIU-597: por defecto solo el dueño; el resto, 403). Precio menos costo de las líneas con costo cargado; una tarea sin ningún costo no aparece (nunca un 100 %). margin_bp: puntos básicos (2500 = 25,00 %). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Respostas StatusDescrição200Successful Response (TaskMargins)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2881,"title":2882,"titles":2883,"content":2884,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentstips","POST \u002Fpayments\u002Ftips",[2492],"Registrar una propina Propina para un profesional: no es venta del negocio ni base de comisión. Staff solo para sí (si el negocio permite que cobre); una API key debe indicar member_id. No usa workspace_id externo. Autenticação: Chave de API ou sessão do painelEscopos: payments:record Parâmetros NomeEmObrigatórioTipoDescriçãoIdempotency-KeyheaderSimstringUUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. Corpo da solicitação (obrigatório) application\u002Fjson: TipInput Respostas StatusDescrição201Importes en unidades menores de la moneda del negocio (TipView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2886,"title":2887,"titles":2888,"content":2889,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fpayments#post-paymentstipstip_idvoid","POST \u002Fpayments\u002Ftips\u002F{tip_id}\u002Fvoid",[2492],"Anular una propina Con motivo; resta el día en que se anula. Owner\u002Fmanager. No usa workspace_id externo. Autenticação: Chave de API ou sessão do painelEscopos: payments:void Parâmetros NomeEmObrigatórioTipoDescriçãotip_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: ReasonInput Respostas StatusDescrição200Importes en unidades menores de la moneda del negocio (TipView)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2891,"title":2892,"titles":2893,"content":2894,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fstats","API · stats",[],"Operações de stats do contrato OpenAPI que aceitam uma chave de API.",{"id":2896,"title":2897,"titles":2898,"content":2899,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fstats#get-controlsummary","GET \u002Fcontrol\u002Fsummary",[2892],"Panel de control - snapshot con filtros (owner y manager; staff y viewer 403) Snapshot de solo lectura del proyecto (F3-234), calculado en el servidor en una transacción con el tenant de la credencial, con una única vista temporal REPEATABLE READ para todos los bloques. Filtros (service_id, resource_id, from, to; días locales incluidos, por defecto hoy, máximo el mismo tope que \u002Fteam\u002Foverview, 422 invalid_stats_range) para todos los bloques: servicio y persona limitan las tareas, los montos, los pagos en revisión y la saturación; las fechas, lo que tiene fecha. Atención ahora (es «ahora», sin fechas) - conversaciones que esperan respuesta (misma regla que «Necesita atención» del Inbox; no pertenecen a un servicio ni a una persona, no se filtran) y las derivadas por el bot (bot_handoff\u002Fbot_fallback), tareas por motivo con los mismos filtros de GET \u002Fwork-items que usa Hoy (pueden solaparse: no se suman) y cobros electrónicos pending. En curso - tareas del período en pending_payment, confirmed o checked_in, por etapa nativa de cada servicio (service_id identifica la clave), según el estado real de la tarea. Números del período - agendadas, completadas y, con finance:analyze, vendido por fecha de trabajo y cobrado por fecha del pago (incluye tareas trabajadas fuera del período). Pagos en revisión sin fechas. (sin filtro, GET \u002Fpayments\u002Ffinance\u002Fsummary; con servicio o persona, atribuidos a esas tareas) y por cobrar (saldo de cuentas al momento; null con filtro de servicio o persona), en unidad menor de currency. Saturación - ocupación (minutos reservados sobre disponibles del horario, como \u002Fresources\u002F{id}\u002Fstats) por día de la semana y hora local, sumando los recursos activos con horario o el recurso filtrado. Permisos por bloque - sesión, control:read y la matriz por rol; API key, bookings:read, el bloque de conversaciones exige messages:read y el de dinero finance:analyze (sin ellos llegan null). Sin PII. Autenticação: Chave de API ou sessão do painelEscopos: bookings:read, control:read, messages:read Parâmetros NomeEmObrigatórioTipoDescriçãoservice_idqueryNãostring (uuid)resource_idqueryNãostring (uuid)Persona o recurso (staff = su recurso)fromqueryNãostring (date)Primer día local (por defecto hoy)toqueryNãostring (date)Último día local incluido (por defecto from) Respostas StatusDescrição200OK (ControlSummary)defaultError (RFC 9457) (Problem)",{"id":2901,"title":2902,"titles":2903,"content":2904,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fstats#get-productsidperformance","GET \u002Fproducts\u002F{id}\u002Fperformance",[2892],"Rendimiento de un producto en unidades y tareas por día, semana o mes, con el período anterior F3-328. Rendimiento de un producto en CANTIDADES (nunca dinero: vive en Financiero). Panel: permiso performance:read (owner, manager y colaborador; no es de dinero; el colaborador solo sobre lo suyo: scope: own, las tareas asignadas a los recursos enlazados a su usuario, nunca los totales del negocio); API key: scope bookings:read (totales del negocio). Líneas del pedido de tareas completadas, no de prueba, con el criterio de GET \u002Fproducts\u002Fstats: units (por defecto, Σ qty) y tasks. Período anterior y tramos como en GET \u002Fservices\u002F{id}\u002Fperformance. Máximo 366 días; una consulta agrupada. Autenticação: Chave de API ou sessão do painelEscopos: performance:read, bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)fromquerySimstring (date)Primer día local del negocio (incluido)toquerySimstring (date)Último día local del negocio (incluido)granularityqueryNãostring day, week, month default dayTramo de la serie: day, week (lunes) o month Respostas StatusDescrição200Successful Response (ItemPerformanceOut)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2906,"title":2907,"titles":2908,"content":2909,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fstats#get-resourcesidstats","GET \u002Fresources\u002F{id}\u002Fstats",[2892],"Estadísticas de un recurso (owner, manager, staff solo el suyo; viewer 403) Ocupación por día y, con granularity=hour, matriz día de la semana × hora local (mapa de calor); cantidad de agendas por estado y tasas de ausencia y cancelación; mezcla de servicios; y facturación (suma de price_cents de servicios completados, seña cobrada y pendiente, moneda del negocio). revenue es null para el rol staff. Las reservas is_test se excluyen. Otro tenant o, para staff, un recurso ajeno: 404. Mismas reglas de rango y ocupación que \u002Fteam\u002Foverview. Autenticação: Chave de API ou sessão do painelEscopos: bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringfromquerySimstring (date)toquerySimstring (date)granularityqueryNãostring hour, day default day Respostas StatusDescrição200OK (ResourceStats)defaultError (RFC 9457) (Problem)",{"id":2911,"title":2912,"titles":2913,"content":2914,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fstats#get-servicesidperformance","GET \u002Fservices\u002F{id}\u002Fperformance",[2892],"Rendimiento de un servicio en cantidades por día, semana o mes, con el período anterior F3-328. Rendimiento de un servicio en CANTIDADES (nunca dinero: vive en Financiero). Tenant desde la credencial, RLS. Panel: permiso performance:read (owner, manager y colaborador; no es de dinero). El colaborador lo tiene solo sobre lo suyo (scope: own: tareas asignadas a los recursos enlazados a su usuario; sin recurso propio, cero), nunca los totales del negocio, que son de owner y manager (scope: business); API key: scope bookings:read (totales del negocio). Tareas sin held\u002Fexpired ni de prueba, atribuidas al día local de inicio\u002Fvencimiento. Métricas: completed (por defecto), tasks y cancelled (cancelada o no vino). previous: el mismo período corrido hacia atrás tantos tramos como abarca (día: N días; semana: N semanas; mes: N meses), así previous_series tiene los mismos tramos que series. Máximo 366 días; una consulta agrupada. Autenticação: Chave de API ou sessão do painelEscopos: performance:read, bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)fromquerySimstring (date)Primer día local del negocio (incluido)toquerySimstring (date)Último día local del negocio (incluido)granularityqueryNãostring day, week, month default dayTramo de la serie: day, week (lunes) o month Respostas StatusDescrição200Successful Response (ItemPerformanceOut)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2916,"title":2917,"titles":2918,"content":2919,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fstats#get-servicesidstats","GET \u002Fservices\u002F{id}\u002Fstats",[2892],"Ventas y tendencia de un servicio F3-90. Tenant desde credencial, RLS. Owner\u002Fmanager o API key con bookings:read. Staff\u002Fviewer: 403. Fecha local de inicio\u002Fvencimiento; moneda del workspace. Dinero estimado con precio actual del catálogo y señas retenidas (F2-44\u002F45), no charges. Máximo 366 días. Excluye datos de prueba, held y expired. units_sold informa un único campo con x-fiuit-unit; null si hay varios campos o ninguna unidad. Autenticação: Chave de API ou sessão do painelEscopos: bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)fromquerySimstring (date)Primer día local del negocio (incluido)toquerySimstring (date)Último día local del negocio (incluido)granularityqueryNãostring day, week, month default day Respostas StatusDescrição200Successful Response (ServiceSalesOut)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2921,"title":2922,"titles":2923,"content":2924,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fstats#get-servicesstats","GET \u002Fservices\u002Fstats",[2892],"Resultados del período de todos los servicios F3-90. Tenant desde credencial, RLS. Owner\u002Fmanager o API key con bookings:read. Staff\u002Fviewer: 403. Fecha local de inicio\u002Fvencimiento; moneda del workspace. Dinero estimado con precio actual del catálogo y señas retenidas (F2-44\u002F45), no charges. Máximo 366 días. Excluye datos de prueba, held y expired. units_sold informa un único campo con x-fiuit-unit; null si hay varios campos o ninguna unidad. Autenticação: Chave de API ou sessão do painelEscopos: bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãofromquerySimstring (date)Primer día local del negocio (incluido)toquerySimstring (date)Último día local del negocio (incluido) Respostas StatusDescrição200Successful Response (SalesOverviewOut)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":2926,"title":2927,"titles":2928,"content":2929,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fstats#get-teamoverview","GET \u002Fteam\u002Foverview",[2892],"Resumen del equipo (owner, manager, staff solo lo suyo; viewer 403) Una fila por recurso activo, con su persona si existe (solo los de tipo staff la tienen). Por defecto solo los de tipo staff (un negocio sin personas, con canchas o lugares, usa kind=all); kind=all devuelve todos los tipos activos y kind=\u003Ctipo> uno solo (Equipo y recursos). Staff solo ve sus recursos asignados. from\u002Fto son días locales del negocio, ambos incluidos (máximo 92 días, configurable; 422 invalid_stats_range si se pasa). occupancy = minutos reservados dentro del horario ÷ minutos disponibles (horario semanal con excepciones y bloqueos, en la zona horaria del negocio; los días de cambio de hora duran 23 o 25 h). Cuentan las reservas pending_payment, confirmed, checked_in y completed; no las canceladas, vencidas, ausencias, holds ni las de prueba. En recursos pooled son minutos-unidad (unidades × minutos ÷ capacidad × minutos disponibles). next_available_at: primer hueco libre de 15 min en los próximos 30 días (null si no hay horario); next_available_free_units dice cuántos lugares quedan ahí (un recurso pooled puede estar libre con tareas ya cargadas en esa hora). days: la ocupación de cada día del período. open_today: confirmadas o en curso que empiezan hoy. Sin facturación. Autenticação: Chave de API ou sessão do painelEscopos: bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãofromquerySimstring (date)toquerySimstring (date)kindqueryNãostring staff, space, equipment, table, vehicle, zone, all default staff Respostas StatusDescrição200OK (TeamOverview)defaultError (RFC 9457) (Problem)",{"id":2931,"title":2932,"titles":2933,"content":2934,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fstats#get-work-itemsoutcomes","GET \u002Fwork-items\u002Foutcomes",[2892],"Cierres y cancelaciones por flujo y motivo Cuenta entradas de historial en días locales del negocio (ambos incluidos), excluye pruebas. Agrupa claves estables por flujo y salida; etiquetas históricas, sin texto libre ni datos de clientes. Reintentar no duplica; reabrir y cerrar vuelve a contar. Owner\u002Fmanager con finance:analyze; API key bookings:read. Autenticação: Chave de API ou sessão do painelEscopos: bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãostartquerySimstring (date)endquerySimstring (date)service_idqueryNãostring (uuid)resource_idqueryNãostring (uuid) Respostas StatusDescrição200Cierres agrupados, sin paginación de tareas (OutcomeReasonReport)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":2936,"title":2937,"titles":2938,"content":2939,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers","API · customers",[],"Operações de customers do contrato OpenAPI que aceitam uma chave de API.",{"id":2941,"title":2942,"titles":2943,"content":2944,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#get-customer-asset-types","GET \u002Fcustomer-asset-types",[2937],"Tipos de bien del negocio FIU-609 (ADR 0059 §2 y §8). Owner\u002Fmanager o API key con customers:read. Primero «Direcciones» (address, system: true, sin id: sus bienes son las direcciones guardadas), después los tipos del negocio y al final los de fábrica sin activar (active: false, sin id). Autenticação: Chave de API ou sessão do painelEscopos: customers:read Respostas StatusDescrição200Tipos de bien (CustomerAssetTypePage)defaultError (RFC 9457) (Problem)",{"id":2946,"title":2947,"titles":2948,"content":2949,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#post-customer-asset-types","POST \u002Fcustomer-asset-types",[2937],"Activar un tipo de fábrica o crear un tipo de bien FIU-609. Owner\u002Fmanager con CSRF o API key con config:write. {\"preset\": \"vehicle\"} activa Vehículos (patente, marca, modelo, año, km y color, ninguno obligatorio): idempotente, devuelve 200 con el mismo tipo si ya estaba activo y lo reactiva si estaba desactivado. Sin preset, un tipo propio con key, name, name_one y fields (hasta 12; 409 asset_type_exists si la key ya existe). Autenticação: Chave de API ou sessão do painelEscopos: config:write Corpo da solicitação (obrigatório) application\u002Fjson: CustomerAssetTypeCreate Respostas StatusDescrição200El tipo de fábrica ya estaba activo (o se reactivó) (CustomerAssetType)201Tipo activado o creado (CustomerAssetType)defaultError (RFC 9457) (Problem)",{"id":2951,"title":2952,"titles":2953,"content":2954,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#get-customer-asset-typestype_id","GET \u002Fcustomer-asset-types\u002F{type_id}",[2937],"Ver un tipo de bien FIU-609. Owner\u002Fmanager o API key con customers:read. Autenticação: Chave de API ou sessão do painelEscopos: customers:read Parâmetros NomeEmObrigatórioTipoDescriçãotype_idpathSimstring (uuid) Respostas StatusDescrição200El tipo (CustomerAssetType)defaultError (RFC 9457) (Problem)",{"id":2956,"title":2957,"titles":2958,"content":2959,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#patch-customer-asset-typestype_id","PATCH \u002Fcustomer-asset-types\u002F{type_id}",[2937],"Editar o desactivar un tipo de bien FIU-609. Owner\u002Fmanager con CSRF o API key con config:write. active: false desactiva el tipo: sus bienes quedan en solo lectura y nada se borra. Quitar un campo de fields no borra los valores guardados (vuelven si vuelve la misma key). identifier_key debe ser un campo del tipo. Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãotype_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: CustomerAssetTypePatch Respostas StatusDescrição200Tipo actualizado (CustomerAssetType)defaultError (RFC 9457) (Problem)",{"id":2961,"title":2962,"titles":2963,"content":2964,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#delete-customer-asset-typestype_id","DELETE \u002Fcustomer-asset-types\u002F{type_id}",[2937],"Borrar un tipo de bien sin bienes FIU-609. Owner\u002Fmanager con CSRF o API key con config:write. 409 asset_type_in_use si tiene bienes (desactivarlo con active=false). Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãotype_idpathSimstring (uuid) Respostas StatusDescrição204BorradodefaultError (RFC 9457) (Problem)",{"id":2966,"title":2967,"titles":2968,"content":2969,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#get-customers","GET \u002Fcustomers",[2937],"Listar y buscar clientes reales (owner\u002Fmanager; sesión staff con vista mínima) Excluye is_test; cursor por última actividad descendente y UUID. q busca por nombre, email, empresa, etiqueta y teléfono (también el segundo); sirve al selector de cliente con escritura progresiva. Scope de API key customers:read. Actividad mutable puede cambiar el orden entre páginas. Sesión staff (F1-29): recibe CustomerStaffItem (id, name, phone_masked, tags, no_show_count; sin email, notas, documento, dirección, empresa ni segundo teléfono), solo con q de mínimo 3 caracteres (sin q, con phone\u002Ftag\u002Fcursor o con término corto ⇒ 422), tope 10 resultados y next_cursor null (sin paginación), y rate limit propio de 30 búsquedas\u002Fmin por actor con headers RateLimit y 429 customer_search_rate_limited. Cada búsqueda de staff audita customer.search (solo el término, sin contenido de resultados). Alcance del repartidor (F2-52): solo encuentra clientes con tareas en sus recursos propios (vigentes o cerradas hace menos de 48 h). Viewer sigue en 403. Autenticação: Chave de API ou sessão do painelEscopos: customers:read Parâmetros NomeEmObrigatórioTipoDescriçãophonequeryNãostringqqueryNãostringNombretagqueryNãostringlimitqueryNãointeger default 25cursorqueryNãostring Respostas StatusDescrição200OK (owner\u002Fmanager y API key: CustomerProfile; sesión staff: CustomerStaffItem con tope 10) (object)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":2971,"title":2972,"titles":2973,"content":2974,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#post-customers","POST \u002Fcustomers",[2937],"Alta manual de un cliente (owner\u002Fmanager\u002Fstaff; CSRF y auditoría) Exige al menos nombre, teléfono o email. El teléfono se normaliza a E.164; si ya existe un cliente con ese teléfono responde 409 customer_exists. Idempotency-Key opcional deduplica 24 h (sesión de panel y Bearer). Todos los datos ampliados son opcionales y personales (LGPD). Scope de API key customers:write. Escribe audit_log (customer.created, solo los nombres de los campos) y emite el evento customer.created. Respuesta (F1-29, cierre de hallazgo de seguridad): owner\u002Fmanager y API keys con customers:read reciben el CustomerProfile completo; la sesión staff y las API keys solo con customers:write reciben solo {\"id\"}, sin PII. En el 409, la extensión customer_id solo se expone a quien tiene lectura. Autenticação: Chave de API ou sessão do painelEscopos: customers:write, customers:read Parâmetros NomeEmObrigatórioTipoDescriçãoIdempotency-KeyheaderNãostring Corpo da solicitação (obrigatório) application\u002Fjson: CustomerCreate Respostas StatusDescrição201Creado (CustomerProfile completo para lectores; {\"id\"} para staff o API key write-only) (CustomerProfile` \u002F `CustomerWriteAck)409Ya existe un cliente con ese teléfono (code=customer_exists); la extensión customer_id solo para quien tiene customers:read (``Problem \u002F object)defaultError (RFC 9457) (Problem)",{"id":2976,"title":2977,"titles":2978,"content":2979,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#get-customerscustomer_idaddresses","GET \u002Fcustomers\u002F{customer_id}\u002Faddresses",[2937],"Direcciones guardadas del cliente Owner\u002Fmanager o API key con customers:read. Tenant desde credencial; sin direcciones archivadas por rollback. Autenticação: Chave de API ou sessão do painelEscopos: customers:read Parâmetros NomeEmObrigatórioTipoDescriçãocustomer_idpathSimstring (uuid) Respostas StatusDescrição200Colección ordenada por predeterminada y fecha (object)defaultError (RFC 9457) (Problem)",{"id":2981,"title":2982,"titles":2983,"content":2984,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#post-customerscustomer_idaddresses","POST \u002Fcustomers\u002F{customer_id}\u002Faddresses",[2937],"Agregar una dirección del cliente Owner\u002Fmanager con CSRF o API key con customers:write y customers:read. Idempotency-Key admite reintentos. La primera es predeterminada; guardar una dirección no modifica tareas anteriores. Autenticação: Chave de API ou sessão do painelEscopos: customers:write, customers:read Parâmetros NomeEmObrigatórioTipoDescriçãocustomer_idpathSimstring (uuid)Idempotency-KeyheaderNãostringOpcional con cookie\u002FCSRF y obligatorio con API key; evita duplicados en reintentos Corpo da solicitação (obrigatório) application\u002Fjson: SavedCustomerAddressCreate Respostas StatusDescrição201Dirección creada (SavedCustomerAddress)defaultError (RFC 9457) (Problem)",{"id":2986,"title":2987,"titles":2988,"content":2989,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#patch-customerscustomer_idaddressesaddress_id","PATCH \u002Fcustomers\u002F{customer_id}\u002Faddresses\u002F{address_id}",[2937],"Editar dirección o elegir predeterminada Owner\u002Fmanager con CSRF o API key customers:write y customers:read. is_default admite solamente true; no altera el snapshot de tareas existentes. Autenticação: Chave de API ou sessão do painelEscopos: customers:write, customers:read Parâmetros NomeEmObrigatórioTipoDescriçãocustomer_idpathSimstring (uuid)address_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: SavedCustomerAddressPatch Respostas StatusDescrição200Dirección actualizada (SavedCustomerAddress)defaultError (RFC 9457) (Problem)",{"id":2991,"title":2992,"titles":2993,"content":2994,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#delete-customerscustomer_idaddressesaddress_id","DELETE \u002Fcustomers\u002F{customer_id}\u002Faddresses\u002F{address_id}",[2937],"Borrar dirección del cliente Owner\u002Fmanager con CSRF o API key customers:write. Si se borra la predeterminada se elige la siguiente; el snapshot de las tareas no cambia. Autenticação: Chave de API ou sessão do painelEscopos: customers:write Parâmetros NomeEmObrigatórioTipoDescriçãocustomer_idpathSimstring (uuid)address_idpathSimstring (uuid) Respostas StatusDescrição204BorradadefaultError (RFC 9457) (Problem)",{"id":2996,"title":2997,"titles":2998,"content":2999,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#get-customerscustomer_idassets","GET \u002Fcustomers\u002F{customer_id}\u002Fassets",[2937],"Bienes del cliente FIU-609 (ADR 0059). Los vehículos (u otros bienes) de un cliente. Owner\u002Fmanager o API key con customers:read. El predeterminado primero; sin archivados salvo include_archived=true. Los bienes de un tipo desactivado vienen con read_only: true. Dato personal: la lectura se audita. Autenticação: Chave de API ou sessão do painelEscopos: customers:read Parâmetros NomeEmObrigatórioTipoDescriçãocustomer_idpathSimstring (uuid)typequeryNãostringkey del tipo (vehicle)include_archivedqueryNãoboolean default false Respostas StatusDescrição200Bienes del cliente (CustomerAssetPage)defaultError (RFC 9457) (Problem)",{"id":3001,"title":3002,"titles":3003,"content":3004,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#post-customerscustomer_idassets","POST \u002Fcustomers\u002F{customer_id}\u002Fassets",[2937],"Agregar un bien del cliente FIU-609. Owner\u002Fmanager con CSRF o API key con customers:write y customers:read. type es la key del tipo: un tipo de fábrica sin activar (vehicle) se activa al vuelo. Para un auto alcanza con la patente o el modelo (422 asset_invalid si no viene ninguno). El primero es el predeterminado. 409 asset_duplicate (con asset_id) si el cliente ya tiene esa patente viva; 409 asset_type_archived si el tipo está desactivado. Una patente con formato desconocido para el país se acepta con warnings: [\"plate_format\"]. Autenticação: Chave de API ou sessão do painelEscopos: customers:write, customers:read Parâmetros NomeEmObrigatórioTipoDescriçãocustomer_idpathSimstring (uuid)Idempotency-KeyheaderNãostringOpcional con cookie\u002FCSRF y obligatorio con API key; evita duplicados en reintentos Corpo da solicitação (obrigatório) application\u002Fjson: CustomerAssetCreate Respostas StatusDescrição201Bien creado (CustomerAsset)defaultError (RFC 9457) (Problem)",{"id":3006,"title":3007,"titles":3008,"content":3009,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#get-customerscustomer_idassetsasset_id","GET \u002Fcustomers\u002F{customer_id}\u002Fassets\u002F{asset_id}",[2937],"Ver un bien del cliente FIU-609. Owner\u002Fmanager o API key con customers:read. 404 asset_not_found si no es de ese cliente. Autenticação: Chave de API ou sessão do painelEscopos: customers:read Parâmetros NomeEmObrigatórioTipoDescriçãocustomer_idpathSimstring (uuid)asset_idpathSimstring (uuid) Respostas StatusDescrição200El bien (CustomerAsset)defaultError (RFC 9457) (Problem)",{"id":3011,"title":3012,"titles":3013,"content":3014,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#patch-customerscustomer_idassetsasset_id","PATCH \u002Fcustomers\u002F{customer_id}\u002Fassets\u002F{asset_id}",[2937],"Editar un bien, elegirlo como predeterminado o archivarlo FIU-609. Owner\u002Fmanager con CSRF o API key customers:write y customers:read. data se mezcla con lo guardado (una clave con null borra ese valor). is_default admite solo true; archived: true lo saca de la lista y elige otro predeterminado. Para pasar un auto a otro cliente: crearlo en el otro y archivarlo acá. 409 asset_type_archived si el tipo está desactivado (solo lectura). Autenticação: Chave de API ou sessão do painelEscopos: customers:write, customers:read Parâmetros NomeEmObrigatórioTipoDescriçãocustomer_idpathSimstring (uuid)asset_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: CustomerAssetPatch Respostas StatusDescrição200Bien actualizado (CustomerAsset)defaultError (RFC 9457) (Problem)",{"id":3016,"title":3017,"titles":3018,"content":3019,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#delete-customerscustomer_idassetsasset_id","DELETE \u002Fcustomers\u002F{customer_id}\u002Fassets\u002F{asset_id}",[2937],"Borrar un bien del cliente FIU-609. Owner\u002Fmanager con CSRF o API key customers:write y customers:read. Borrado definitivo (dato personal); sus fotos se borran del almacenamiento. Si era el predeterminado se elige el siguiente. Para dejar de usarlo sin borrarlo, archivarlo. Autenticação: Chave de API ou sessão do painelEscopos: customers:write, customers:read Parâmetros NomeEmObrigatórioTipoDescriçãocustomer_idpathSimstring (uuid)asset_idpathSimstring (uuid) Respostas StatusDescrição204BorradodefaultError (RFC 9457) (Problem)",{"id":3021,"title":3022,"titles":3023,"content":3024,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#post-customerscustomer_idconversations","POST \u002Fcustomers\u002F{customer_id}\u002Fconversations",[2937],"Abrir la conversación del cliente por un canal (mensaje en frío) Devuelve la conversación activa del cliente por ese canal (200, created: false) o crea una vacía en la conexión conectada (201, created: true); no envía nada, el mensaje se redacta con POST \u002Fconversations\u002F{id}\u002Fmessages. Permiso conversations:operate (owner, manager, staff con clientes de sus tareas; API key con messages:write; sesión con CSRF); tenant desde la credencial; 404 si el cliente no existe o el staff no lo ve. Idempotente por naturaleza (una conversación por conexión y cliente). Auditado conversation.opened_cold. 409 channel_unavailable con reason cerrado: no_channel_connection (sin conexión conectada o canal pausado), no_contact (WhatsApp sin teléfono válido; Telegram sin tg_user), channel_not_supported (webchat e Instagram no admiten iniciar: en Instagram solo el cliente abre la ventana de 24 h), channel_not_implemented (reservado), outside_window (ventana vencida) y test_customer. Cloud respeta ventana de 24 h\u002Fplantilla al enviar; WAHooks permite primer contacto sin ventana oficial, con aviso y límite por proyecto\u002Fdía UTC (20 por defecto, COLD_OPEN_DAILY_LIMIT; 429 cold_open_rate_limited). Reintentos no consumen cupo. Autenticação: Chave de API ou sessão do painelEscopos: messages:write Parâmetros NomeEmObrigatórioTipoDescriçãocustomer_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: object Respostas StatusDescrição200Ya existía una conversación activa por ese canal (CustomerConversationOpened)201Conversación vacía creada (CustomerConversationOpened)409Canal sin destinatario enrutable, no implementado o fuera de ventana (ColdOpenProblem)429Límite diario de aperturas WAHooks del proyecto alcanzado (ColdOpenRateLimitProblem)defaultError (RFC 9457) (Problem)",{"id":3026,"title":3027,"titles":3028,"content":3029,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#get-customerscustomer_idtask-addresses","GET \u002Fcustomers\u002F{customer_id}\u002Ftask-addresses",[2937],"Direcciones mínimas para capturar un destino operativo Owner\u002Fmanager o API key customers:read. Staff solo clientes visibles por tareas asignadas y ventana operativa vigente (404 fuera de alcance). No expone perfil ni timestamps. Seleccionar no concede consentimiento para guardar. Autenticação: Chave de API ou sessão do painelEscopos: customers:read Parâmetros NomeEmObrigatórioTipoDescriçãocustomer_idpathSimstring (uuid) Respostas StatusDescrição200Destinos operativos mínimos (object)defaultError (RFC 9457) (Problem)",{"id":3031,"title":3032,"titles":3033,"content":3034,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#get-customersid","GET \u002Fcustomers\u002F{id}",[2937],"Ficha del cliente (owner\u002Fmanager completa y auditada; sesión staff mínima) Owner\u002Fmanager y API key con customers:read reciben CustomerDetail completo (audita customer.viewed). La sesión de staff (F1-29) recibe solo id, name, phone_masked, tags y no_show_count (sin email, notas, documento, dirección, empresa, segundo teléfono, reservas ni conversaciones) y audita customer.read. Viewer sigue en 403. Autenticação: Chave de API ou sessão do painelEscopos: customers:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200OK (owner\u002Fmanager y API key: CustomerDetail; sesión staff: vista mínima como CustomerStaffItem) (CustomerDetail)defaultError (RFC 9457) (Problem)",{"id":3036,"title":3037,"titles":3038,"content":3039,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#patch-customersid","PATCH \u002Fcustomers\u002F{id}",[2937],"Editar datos del cliente (owner\u002Fmanager\u002Fstaff; CSRF y auditoría) phone cambia el teléfono principal (identificador único del workspace): se normaliza a E.164 con la región del workspace y, si ya es de otro cliente (en cualquier formato, incluido el 9 móvil de BR\u002FAR), responde 409 customer_exists con customer_id solo para quien tiene lectura; phone: null es 422. address solo se escribe por owner\u002Fmanager o API key con customers:write y sincroniza la predeterminada; reemplaza la dirección completa; null o vacío la borra. Scope de API key customers:write. Respuesta como POST (F1-29): CustomerProfile completo solo para quien tiene lectura (customers:read); staff y API key write-only reciben solo {\"id\"}. Autenticação: Chave de API ou sessão do painelEscopos: customers:write, customers:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: object Respostas StatusDescrição200Actualizado (CustomerProfile completo para lectores; {\"id\"} para staff o API key write-only) (CustomerProfile` \u002F `CustomerWriteAck)409El teléfono nuevo ya es de otro cliente (code=customer_exists); la extensión customer_id solo para quien tiene customers:read (``Problem \u002F object)defaultError (RFC 9457) (Problem)",{"id":3041,"title":3042,"titles":3043,"content":3044,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#get-customersidbookings","GET \u002Fcustomers\u002F{id}\u002Fbookings",[2937],"Historial mínimo de reservas (owner\u002Fmanager todo; staff solo las suyas finalizadas; lectura auditada) Permisos finished_tasks:read_all (owner, manager, API key con customers:read) y finished_tasks:read_own (staff), ver docs\u002Fsecurity\u002Fmatriz-de-permisos.md. Con read_own la lista trae solo tareas terminadas (completed, cancelled, no_show, failed) asignadas a los recursos del staff, y solo de clientes con los que trabaja; cualquier otro cliente responde 404 igual que uno inexistente. viewer responde 403. Cada lectura queda en el audit log con su alcance. Autenticação: Chave de API ou sessão do painelEscopos: customers:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringlimitqueryNãointeger default 25cursorqueryNãostring Respostas StatusDescrição200Reservas sin notas, intake_data ni mensajes (object)defaultError (RFC 9457) (Problem)",{"id":3046,"title":3047,"titles":3048,"content":3049,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcustomers#get-customersidsummary","GET \u002Fcustomers\u002F{id}\u002Fsummary",[2937],"Resumen del cliente, calculado en vivo (owner\u002Fmanager) Una consulta agrupada por (workspace, cliente, estado); sin tablas de estadísticas ni caché. total excluye held\u002Fexpired. upcoming = confirmed\u002Fchecked_in cuyo fin es posterior a ahora (futuras o en curso; las de modo cola no cuentan). last_visit_at = última completada. next_booking = la próxima de esas (id, inicio, servicio) o null. Un cliente real nunca cuenta reservas de prueba; un cliente de prueba devuelve su propio resumen con is_test=true. Solo owner\u002Fmanager (PII, como \u002Fcustomers); staff\u002Fviewer 403; cross-tenant 404. Scope de API key customers:read (solo GET). Autenticação: Chave de API ou sessão do painelEscopos: customers:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200Resumen (object)defaultError (RFC 9457) (Problem)",{"id":3051,"title":3052,"titles":3053,"content":3054,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fsearch","API · search",[],"Operações de search do contrato OpenAPI que aceitam uma chave de API.",{"id":3056,"title":3057,"titles":3058,"content":3059,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fsearch#get-search","GET \u002Fsearch",[3052],"Búsqueda global agrupada por tipo (solo sesión de panel) Busca q en clientes (nombre, teléfono, email), conversaciones (cliente o último mensaje), tareas (cliente, servicio o código: el prefijo hexadecimal del id, con o sin #) y recursos y servicios (nombre). Devuelve un grupo por tipo con tope limit (por defecto 5, máximo 10); un término de menos de 2 caracteres (3 para el repartidor) devuelve todos los grupos vacíos. Sin dinero en ningún tipo. Respeta la visibilidad de cada pantalla: clientes, recursos y servicios solo para owner\u002Fmanager (el viewer y el repartidor no tienen esas pantallas: sus grupos vienen vacíos); conversaciones para owner, manager, viewer y repartidor; tareas para todos. El repartidor (staff) solo ve las conversaciones de sus clientes (contacto enmascarado) y las tareas asignadas a sus recursos, con el mismo rate limit de 30 búsquedas\u002Fmin que la búsqueda de clientes del repartidor (429 customer_search_rate_limited). Cada tipo corre con un statement_timeout corto; si alguno se pasa del tiempo se omite y partial es true. Solo cookie de sesión: no tiene scope de API key (un bearer recibe 403). El término es PII: no se loguea ni se audita crudo. Índices pg_trgm (migración f7a0b1c2d3e4). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoqquerySimstringNombrelimitqueryNãointeger default 5Tope por tipo Respostas StatusDescrição200OK (SearchResults)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3061,"title":3062,"titles":3063,"content":3064,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fflows","API · flows",[],"Operações de flows do contrato OpenAPI que aceitam uma chave de API. Flujos (ADR 0040): el recorrido de etapas que eligen los servicios. Lectura: owner y manager; escritura: owner (API key con settings:write).",{"id":3066,"title":3067,"titles":3068,"content":3069,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fflows#get-base-states","GET \u002Fbase-states",[3062],"Estados base del motor flows:read: owner\u002Fmanager por sesión, o API key config:read. Catálogo de estados base del motor. Autenticação: Chave de API ou sessão do painelEscopos: flows:read, config:read Respostas StatusDescrição200Successful Response (object)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3071,"title":3072,"titles":3073,"content":3074,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fflows#get-flow-examples","GET \u002Fflow-examples",[3062],"Ejemplos de flujo para copiar flows:read: owner\u002Fmanager por sesión, o API key config:read. El flujo de sistema y los de cada blueprint, con la forma del cuerpo de POST \u002Fflows (key más format, stages y exits). Reemplaza a \u002Fstage-templates. Autenticação: Chave de API ou sessão do painelEscopos: flows:read, config:read Respostas StatusDescrição200Successful Response (object)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3076,"title":3077,"titles":3078,"content":3079,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fflows#get-flow-message-catalog","GET \u002Fflow-message-catalog",[3062],"Variables y textos por defecto del mensaje al cliente de una etapa flows:read: owner\u002Fmanager por sesión, o API key config:read. Ayuda para editar el mensaje al cliente de una etapa (on_enter.notify_customer.texts, F3-534): las variables protegidas con datos de ejemplo ya formateados (zona horaria, moneda e idioma) y el texto por defecto de cada plantilla en pt, es y en. Las variables son las únicas que el servidor acepta al publicar el flujo (PATCH \u002Fflows\u002F{id}, flows:write): otra variable, llaves sueltas o formatos devuelven 422 message_variable_unknown | message_braces_invalid | message_text_empty | message_text_too_long | message_variable_not_available (cola, sin horario), con la etapa y el campo. Fecha\u002Fhora, monto y link de seguimiento los arma el core; el texto guardado es el que sale (nunca generado). Sin texto en el idioma del cliente, o con una variable sin valor, sale la plantilla. Autenticação: Chave de API ou sessão do painelEscopos: flows:read, config:read, flows:write Respostas StatusDescrição200Successful Response (FlowMessageCatalog)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3081,"title":3082,"titles":3083,"content":3084,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fflows#get-flows","GET \u002Fflows",[3062],"Listar flujos flows:read: owner\u002Fmanager por sesión, o API key config:read. Los de sistema primero; include_inactive=true agrega los desactivados. Sin purpose no incluye la raíz «Atención del bot» (no es un recorrido, F3-467): purpose=entry la trae (una por proyecto, sin etapas, con greeting y order en GET \u002Fflows\u002F{id}). Autenticação: Chave de API ou sessão do painelEscopos: flows:read, config:read Parâmetros NomeEmObrigatórioTipoDescriçãopurposequeryNãostring catalog, intent, entryinclude_inactivequeryNãoboolean default false Respostas StatusDescrição200Successful Response (FlowDefinitionList)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3086,"title":3087,"titles":3088,"content":3089,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fflows#post-flows","POST \u002Fflows",[3062],"Crear un flujo flows:write: owner por sesión con CSRF, o API key settings:write (mismos roles que tenía service_stages:write). Flujo propio con su versión 1 (note opcional). purpose=entry: 422 entry_flow_unique (la raíz «Atención del bot» es una por proyecto y la crea el proyecto, F3-467; también al copiarla). purpose=intent exige mode=queue (422 flow_mode_mismatch): sus tareas no tienen servicio ni horario (F3-457). Flujo v2 con ítems y botones. confirm_moves=true es obligatorio si hay tareas que mover: 409 stage_moves_unconfirmed. Identidad estable contra todo el historial: 422 stage_key_reinterpreted; v1 no se restaura: 422 version_format_unsupported. 422 bot_offer_unknown_item si bot_offers nombra un ítem inexistente o de otro tipo. Campos v3\u002Fv4: 422 field_reserved, item_type_not_available (payment, products y offer con kind plan; offer y timer sin su configuración: invalid_offer, invalid_timer), effect_not_available, variable_not_available (, , ), con ruta del campo. 422 flow_mode_mismatch si un servicio del flujo es de otro modo, item_key_reserved si un ítem repite un campo del formulario de un servicio. Un flujo de sistema (system_key) no se publica: 422 flow_system_readonly al editarlo; se edita su copia propia (POST \u002Fflows\u002F{id}\u002Fcustomize, F3-731) o se crea uno propio con POST \u002Fflows y se asigna con flow_id en POST|PATCH \u002Fservices. Publicar mueve tareas y escribe auditoría (flow.updated) en su transacción (outbox, F3-184). Autenticação: Chave de API ou sessão do painelEscopos: flows:write, settings:write Corpo da solicitação (obrigatório) application\u002Fjson: FlowInput Respostas StatusDescrição201Successful Response (FlowDefinition)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3091,"title":3092,"titles":3093,"content":3094,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fflows#get-flowsid","GET \u002Fflows\u002F{id}",[3062],"Leer un flujo con su versión vigente flows:read: owner\u002Fmanager por sesión, o API key config:read. Incluye los servicios que lo usan. Un flujo lo comparten varios servicios (ADR 0040): publicar una versión mueve las tareas abiertas de todos (impact.by_service) y impact.shared_with lista los servicios que cambian; el cliente (panel, MCP) pide confirmar. Autenticação: Chave de API ou sessão do painelEscopos: flows:read, config:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Respostas StatusDescrição200Successful Response (FlowDefinition)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3096,"title":3097,"titles":3098,"content":3099,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fflows#patch-flowsid","PATCH \u002Fflows\u002F{id}",[3062],"Renombrar, activar o publicar un flujo task_view (FIU-584) cambia «Cómo se ve la tarea» sin versión nueva ni mover tareas, también en un flujo de sistema. flows:write: owner por sesión con CSRF, o API key settings:write (mismos roles que tenía service_stages:write). Un flujo lo comparten varios servicios (ADR 0040): publicar una versión mueve las tareas abiertas de todos (impact.by_service) y impact.shared_with lista los servicios que cambian; el cliente (panel, MCP) pide confirmar. Con format, exits y stages publica una versión nueva (base_version evita pisar; 409 stale_version). Desactivar no cancela tareas ni cambia las de los servicios que ya lo usan: solo impide asignarlo. Flujo v2 con ítems y botones. confirm_moves=true es obligatorio si hay tareas que mover: 409 stage_moves_unconfirmed. Si hay varios servicios, shared_with_ack incluye todos los IDs revisados de impact.shared_with (incluido el editado); si falta alguno, 409 stage_shared_unconfirmed con impact actualizado exige validar y confirmar otra vez. Identidad estable contra todo el historial: 422 stage_key_reinterpreted; v1 no se restaura: 422 version_format_unsupported. 422 bot_offer_unknown_item si bot_offers nombra un ítem inexistente o de otro tipo. Campos v3\u002Fv4: 422 field_reserved, item_type_not_available (payment, products y offer con kind plan; offer y timer sin su configuración: invalid_offer, invalid_timer), effect_not_available, variable_not_available (, , ), con ruta del campo. 422 flow_mode_mismatch si un servicio del flujo es de otro modo, item_key_reserved si un ítem repite un campo del formulario de un servicio. Un flujo de sistema (system_key) no se publica: 422 flow_system_readonly al editarlo; se edita su copia propia (POST \u002Fflows\u002F{id}\u002Fcustomize, F3-731) o se crea uno propio con POST \u002Fflows y se asigna con flow_id en POST|PATCH \u002Fservices. Publicar mueve tareas y escribe auditoría (flow.updated) en su transacción (outbox, F3-184). Raíz «Atención del bot» (purpose=entry, ADR 0040 §4.4, F3-467): solo cambian greeting y order (versión nueva y auditoría flow.entry_root_changed); 422 entry_branch_unknown (con key) si una clave de order no es services, products, subscriptions, faq, mine, handoff ni flow: de un flujo por intención activo con entry y la etapa en la que nace su tarea (pausado o no: una rama propia pausada conserva su lugar, F3-467b); 422 entry_branch_duplicate si se repite; 422 invalid_entry_greeting si el saludo no es pt\u002Fes\u002Fen de hasta 300; active=false → 422 entry_flow_required (no se desactiva ni se borra); name, entry, etapas o restaurar una versión → 422 entry_flow_readonly. greeting u order en otro flujo → 422 root_fields_only_for_entry. La raíz se edita con bot:configure (owner, manager o colaborador) por sesión con CSRF o con una API key config:write (el mismo permiso que «Qué vende el bot», F3-467b); settings:write no alcanza para la raíz. Autenticação: Chave de API ou sessão do painelEscopos: flows:write, settings:write, config:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: FlowPatchInput Respostas StatusDescrição200Successful Response (FlowDefinition)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3101,"title":3102,"titles":3103,"content":3104,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fflows#delete-flowsid","DELETE \u002Fflows\u002F{id}",[3062],"Borrar un flujo sin uso flows:write: owner por sesión con CSRF, o API key settings:write. F3-731: borra un flujo propio que ningún servicio usa y que nunca tuvo tareas (has_tasks falso), con sus versiones. 409 flow_in_use si un servicio lo usa (elegile otro antes); 409 flow_has_tasks si tiene tareas, abiertas o cerradas (desactivalo en su lugar); 422 flow_system_readonly para un flujo de sistema; 422 entry_flow_required para «Atención del bot». 404 si no existe en el proyecto. Escribe auditoría (flow.deleted). Autenticação: Chave de API ou sessão do painelEscopos: flows:write, settings:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Respostas StatusDescrição204Successful Response401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3106,"title":3107,"titles":3108,"content":3109,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fflows#post-flowsidcopy","POST \u002Fflows\u002F{id}\u002Fcopy",[3062],"Copiar un flujo flows:write: owner por sesión con CSRF, o API key settings:write. Crea un flujo propio e independiente con la versión vigente del origen como su versión 1 (note opcional): ningún servicio pasa a usarlo y cambiar uno no cambia el otro. El origen puede ser de sistema, propio o desactivado; la copia conserva modo y propósito, queda activa y sin system_key. Se asigna a un servicio con flow_id en POST|PATCH \u002Fservices. 404 si el flujo no existe en el proyecto; 422 con un nombre inválido. Escribe auditoría (flow.copied). Autenticação: Chave de API ou sessão do painelEscopos: flows:write, settings:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: FlowCopyInput Respostas StatusDescrição201Successful Response (FlowDefinition)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3111,"title":3112,"titles":3113,"content":3114,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fflows#post-flowsidcustomize","POST \u002Fflows\u002F{id}\u002Fcustomize",[3062],"Editar un flujo de sistema en la copia propia del negocio flows:write: owner por sesión con CSRF, o API key settings:write. F3-731: el negocio edita su copia de un flujo de sistema (turno_simple, pedido_simple, alta_simple, cuota_simple). La primera vez la crea con la versión vigente de la base (copy_of dice de cuál, mismo nombre que se ve) y le pasa todos los servicios que usaban la base; los servicios nuevos de ese modo nacen en la copia. Las tareas abiertas siguen en el suyo. Si ya existe, la devuelve sin cambios (idempotente). Después se publica con PATCH \u002Fflows\u002F{copia}. 422 flow_not_system si el flujo no es de sistema; 404 si no existe en el proyecto. Escribe auditoría (flow.customized). Autenticação: Chave de API ou sessão do painelEscopos: flows:write, settings:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Respostas StatusDescrição200Successful Response (FlowDefinition)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3116,"title":3117,"titles":3118,"content":3119,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fflows#post-flowsidrestore","POST \u002Fflows\u002F{id}\u002Frestore",[3062],"Volver al flujo de sistema original flows:write: owner por sesión con CSRF, o API key settings:write. F3-731: «Volver al original» desde la copia propia (copy_of): sus servicios vuelven al flujo de sistema y los nuevos nacen ahí. Las tareas abiertas no se mueven: terminan con la versión del flujo que tenían. La copia nunca se borra (decisión B): queda como flujo propio «… (anterior)», sin copy_of ni servicios («Sin uso»), y se borra a mano con DELETE \u002Fflows\u002F{id} si no tiene tareas. Devuelve el flujo de sistema. 422 flow_not_copy si el flujo no es una copia propia; 404 si no existe en el proyecto. Escribe auditoría (flow.restored). Autenticação: Chave de API ou sessão do painelEscopos: flows:write, settings:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Respostas StatusDescrição200Successful Response (FlowDefinition)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3121,"title":3122,"titles":3123,"content":3124,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fflows#post-flowsidsimulate","POST \u002Fflows\u002F{id}\u002Fsimulate",[3062],"Probar dónde cae cada frase de entrada sin escribir flows:write: owner por sesión con CSRF, o API key settings:write. Simulacro de entrada (ADR 0040 §6, F3-460) de un flujo por intención: corre los examples y not_when de entry (el del cuerpo, sin guardarlo, o el guardado) y todos los ejemplos de cada otro flujo por intención que el bot ofrece por el mismo elegidor del bot de clientes: palabras clave sin IA y, si no deciden, una elección barata con lista cerrada por frase, con la IA del proyecto (cuenta en su uso de IA). results dice dónde cae cada frase (landed: flow, service, action, reply o ask con options) y ok=false si choca: un ejemplo que no cae en este flujo (fix add_example_or_keyword) o una frase que no es de este flujo y cae en él o en una pregunta que lo incluye (fix add_not_when). catalog_clash: una palabra clave choca con el catálogo (al guardar, 422 flow_entry_keyword_catalog). No simula el catálogo por reglas (un mensaje que nombra un servicio lo toma su plantilla antes). 422 entry_only_for_intent si el flujo no es por intención; 422 flow_entry_missing sin entry dada ni guardada. No guarda nada ni crea tareas. Autenticação: Chave de API ou sessão do painelEscopos: flows:write, settings:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: FlowSimulateInput Respostas StatusDescrição200Successful Response (FlowSimulation)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3126,"title":3127,"titles":3128,"content":3129,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fflows#get-flowsidusage","GET \u002Fflows\u002F{id}\u002Fusage",[3062],"Uso de un flujo por día y dónde se traban sus tareas days: tareas que entraron (día local de su alta) y que se completaron, por día. stages: tareas abiertas por etapa y su espera desde que entraron a ella; bottleneck, la de más espera promedio. El colaborador ve solo lo suyo (scope: own, F3-729). Tenant desde la credencial, RLS. Panel: permiso flows:usage (owner, manager y colaborador); el colaborador lo tiene solo sobre lo suyo (scope: own: tareas asignadas a los recursos enlazados a su usuario; sin recurso propio, cero), nunca los totales del negocio (scope: business). API key: scope bookings:read. Entran las tareas por el día local de su alta, sin las de prueba ni los holds que no se concretaron (held, expired). Solo lectura: no guarda nada nuevo. Autenticação: Chave de API ou sessão do painelEscopos: bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)daysqueryNãointeger default 84Días hasta hoy inclusive (84 = 12 semanas) Respostas StatusDescrição200Successful Response (FlowUsageOut)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":3131,"title":3132,"titles":3133,"content":3134,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fflows#post-flowsidvalidate","POST \u002Fflows\u002F{id}\u002Fvalidate",[3062],"Validar un flujo sin escribir flows:write: owner por sesión con CSRF, o API key settings:write (mismos roles que tenía service_stages:write). Un flujo lo comparten varios servicios (ADR 0040): publicar una versión mueve las tareas abiertas de todos (impact.by_service) y impact.shared_with lista los servicios que cambian; el cliente (panel, MCP) pide confirmar. Devuelve impact: tareas que se moverían (count, moves, by_service) y shared_with. En un flujo de sistema valida solo el formato. Flujo v2 con ítems y botones. confirm_moves=true es obligatorio si hay tareas que mover: 409 stage_moves_unconfirmed. Identidad estable contra todo el historial: 422 stage_key_reinterpreted; v1 no se restaura: 422 version_format_unsupported. 422 bot_offer_unknown_item si bot_offers nombra un ítem inexistente o de otro tipo. Campos v3\u002Fv4: 422 field_reserved, item_type_not_available (payment, products y offer con kind plan; offer sin su configuración: invalid_offer), effect_not_available, variable_not_available (, , ), con ruta del campo. 422 flow_mode_mismatch si un servicio del flujo es de otro modo, item_key_reserved si un ítem repite un campo del formulario de un servicio. Un flujo de sistema (system_key) es de solo lectura: 422 flow_system_readonly al editarlo; se crea uno propio con POST \u002Fflows y se asigna con flow_id en POST|PATCH \u002Fservices. Publicar mueve tareas y escribe auditoría (flow.updated) en su transacción (outbox, F3-184). Autenticação: Chave de API ou sessão do painelEscopos: flows:write, settings:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: FlowValidateInput Respostas StatusDescrição200Successful Response (FlowValidation)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3136,"title":3137,"titles":3138,"content":3139,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fflows#get-flowsidversions","GET \u002Fflows\u002F{id}\u002Fversions",[3062],"Historial de versiones del flujo flows:read: owner\u002Fmanager por sesión, o API key config:read. Paginado hacia atrás con before; next_before es el cursor. Autenticação: Chave de API ou sessão do painelEscopos: flows:read, config:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)limitqueryNãointeger default 25beforequeryNãointeger Respostas StatusDescrição200Successful Response (FlowVersionPage)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3141,"title":3142,"titles":3143,"content":3144,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fflows#get-flowsidversionsversion","GET \u002Fflows\u002F{id}\u002Fversions\u002F{version}",[3062],"Leer una versión del flujo flows:read: owner\u002Fmanager por sesión, o API key config:read. Versión inmutable del flujo. Autenticação: Chave de API ou sessão do painelEscopos: flows:read, config:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)versionpathSiminteger Respostas StatusDescrição200Successful Response (FlowVersion)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3146,"title":3147,"titles":3148,"content":3149,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fflows#post-flowsidversionsversionrevert","POST \u002Fflows\u002F{id}\u002Fversions\u002F{version}\u002Frevert",[3062],"Restaurar una versión del flujo creando otra flows:write: owner por sesión con CSRF, o API key settings:write (mismos roles que tenía service_stages:write). Un flujo lo comparten varios servicios (ADR 0040): publicar una versión mueve las tareas abiertas de todos (impact.by_service) y impact.shared_with lista los servicios que cambian; el cliente (panel, MCP) pide confirmar. Crea una versión nueva con el contenido de la elegida (reverted_from); mismas confirmaciones que publicar. Flujo v2 con ítems y botones. confirm_moves=true es obligatorio si hay tareas que mover: 409 stage_moves_unconfirmed. Si hay varios servicios, shared_with_ack incluye todos los IDs revisados de impact.shared_with (incluido el editado); si falta alguno, 409 stage_shared_unconfirmed con impact actualizado exige validar y confirmar otra vez. Identidad estable contra todo el historial: 422 stage_key_reinterpreted; v1 no se restaura: 422 version_format_unsupported. 422 bot_offer_unknown_item si bot_offers nombra un ítem inexistente o de otro tipo. Campos v3\u002Fv4: 422 field_reserved, item_type_not_available (payment, products y offer con kind plan; offer y timer sin su configuración: invalid_offer, invalid_timer), effect_not_available, variable_not_available (, , ), con ruta del campo. 422 flow_mode_mismatch si un servicio del flujo es de otro modo, item_key_reserved si un ítem repite un campo del formulario de un servicio. Un flujo de sistema (system_key) no se publica: 422 flow_system_readonly al editarlo; se edita su copia propia (POST \u002Fflows\u002F{id}\u002Fcustomize, F3-731) o se crea uno propio con POST \u002Fflows y se asigna con flow_id en POST|PATCH \u002Fservices. Publicar mueve tareas y escribe auditoría (flow.updated) en su transacción (outbox, F3-184). Autenticação: Chave de API ou sessão do painelEscopos: flows:write, settings:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)versionpathSiminteger Corpo da solicitação (opcional) application\u002Fjson: FlowRevertInput Respostas StatusDescrição200Successful Response (FlowVersion)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3151,"title":3152,"titles":3153,"content":3154,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fflows#get-flowsusage","GET \u002Fflows\u002Fusage",[3062],"Uso de los flujos en los últimos 7 días Por flujo: tareas que entraron cada uno de los últimos 7 días (hoy al final), su total y el de los 7 anteriores, y si se usó alguna vez (used). Día local del proyecto; sin tareas de prueba (F3-729). Tenant desde la credencial, RLS. Panel: permiso flows:usage (owner, manager y colaborador); el colaborador lo tiene solo sobre lo suyo (scope: own: tareas asignadas a los recursos enlazados a su usuario; sin recurso propio, cero), nunca los totales del negocio (scope: business). API key: scope bookings:read. Entran las tareas por el día local de su alta, sin las de prueba ni los holds que no se concretaron (held, expired). Solo lectura: no guarda nada nuevo. Autenticação: Chave de API ou sessão do painelEscopos: bookings:read Respostas StatusDescrição200Successful Response (FlowUsageList)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":3156,"title":3157,"titles":3158,"content":3159,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fcomments","API · comments",[],"Operações de comments do contrato OpenAPI que aceitam uma chave de API.",{"id":3161,"title":3162,"titles":3163,"content":3164,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcomments#get-bookingsidcomments","GET \u002Fbookings\u002F{id}\u002Fcomments",[3157],"Comentarios internos de una reserva (más nuevo primero) Owner, manager y viewer ven todas; staff solo reservas con un recurso suyo (si no, 404). Scope de API key bookings:read (solo lectura). Un comentario es una nota del equipo y nunca se envía al cliente por ningún canal. Autenticação: Chave de API ou sessão do painelEscopos: bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringlimitqueryNãointeger default 25cursorqueryNãostring Respostas StatusDescrição200OK (CommentPage)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3166,"title":3167,"titles":3168,"content":3169,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcomments#post-bookingsidcomments","POST \u002Fbookings\u002F{id}\u002Fcomments",[3157],"Comentar de una reserva Solo sesión de panel con CSRF (las API keys no escriben). Límite de tasa por usuario (429 comment_rate_limited) y máximo de comentarios por entidad (422 comment_limit_reached). Auditado. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: CommentCreate Respostas StatusDescrição201Creado (Comment)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3171,"title":3172,"titles":3173,"content":3174,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcomments#get-bookingsidtimeline","GET \u002Fbookings\u002F{id}\u002Ftimeline",[3157],"Línea de tiempo de una reserva (más nuevo primero) Comentarios, auditoría minimizada de estado\u002Fetapa\u002Fhorario, ubicación puntual vigente y metadatos de adjuntos privados; nunca contenido del archivo ni storage keys. Cursor por (fecha, id). Owner, manager y viewer ven todas; staff solo reservas con un recurso suyo (si no, 404). Scope de API key bookings:read. Autenticação: Chave de API ou sessão do painelEscopos: bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringlimitqueryNãointeger default 25cursorqueryNãostring Respostas StatusDescrição200OK (TimelinePage)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3176,"title":3177,"titles":3178,"content":3179,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcomments#patch-commentsid","PATCH \u002Fcomments\u002F{id}",[3157],"Editar un comentario (autor, owner o manager) El texto original queda en el diff de auditoría. Solo sesión de panel con CSRF. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: CommentCreate Respostas StatusDescrição200Actualizado (Comment)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3181,"title":3182,"titles":3183,"content":3184,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcomments#delete-commentsid","DELETE \u002Fcomments\u002F{id}",[3157],"Borrar un comentario (borrado lógico; autor, owner o manager) Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição204Borrado403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3186,"title":3187,"titles":3188,"content":3189,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcomments#get-customersidcomments","GET \u002Fcustomers\u002F{id}\u002Fcomments",[3157],"Comentarios internos de un cliente (más nuevo primero) Solo owner\u002Fmanager (PII, como \u002Fcustomers); staff\u002Fviewer reciben 403. Scope de API key customers:read (solo lectura). Un comentario es una nota del equipo y nunca se envía al cliente por ningún canal. Autenticação: Chave de API ou sessão do painelEscopos: customers:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringlimitqueryNãointeger default 25cursorqueryNãostring Respostas StatusDescrição200OK (CommentPage)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3191,"title":3192,"titles":3193,"content":3194,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcomments#post-customersidcomments","POST \u002Fcustomers\u002F{id}\u002Fcomments",[3157],"Comentar de un cliente Solo sesión de panel con CSRF (las API keys no escriben). Límite de tasa por usuario (429 comment_rate_limited) y máximo de comentarios por entidad (422 comment_limit_reached). Auditado. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: CommentCreate Respostas StatusDescrição201Creado (Comment)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3196,"title":3197,"titles":3198,"content":3199,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fcomments#get-customersidtimeline","GET \u002Fcustomers\u002F{id}\u002Ftimeline",[3157],"Línea de tiempo de un cliente (más nuevo primero) Comentarios + auditoría relevante (cambios de ficha y de sus reservas). Cursor por (fecha, id). Cuando exista booking_stage_event (F1-19) se suma como fuente. Solo owner\u002Fmanager (PII, como \u002Fcustomers); staff\u002Fviewer reciben 403. Scope de API key customers:read. Autenticação: Chave de API ou sessão do painelEscopos: customers:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringlimitqueryNãointeger default 25cursorqueryNãostring Respostas StatusDescrição200OK (TimelinePage)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3201,"title":3202,"titles":3203,"content":3204,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fconversations","API · conversations",[],"Operações de conversations do contrato OpenAPI que aceitam uma chave de API.",{"id":3206,"title":3207,"titles":3208,"content":3209,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fconversations#get-conversations","GET \u002Fconversations",[3202],"Listar conversaciones del inbox (más recientes primero) Array sin envoltorio; se pagina con limit + offset (F2-03). El panel lo adapta a Page (F3-16). Rol staff (F2-52): solo las conversaciones de clientes con tareas vigentes (o cerradas hace menos de 48 h) en un recurso propio; sin tareas, lista vacía. Los filtros se combinan entre sí (AND) y siempre dentro de ese alcance. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãomodequeryNãobot, human, pausedlifecyclequeryNãoarray\u003CConversationLifecycle>Filtro por estado del ciclo de vida (F2-35). Multi-valor (?lifecycle=pending&lifecycle=waiting_team): une los estados con OR. Valor desconocido: 422.channel_typequeryNãoarray\u003C—>Filtro por canal visible (el mismo valor que channel_type de cada conversación). Multi-valor (?channel_type=whatsapp&channel_type=telegram): une los canales con OR. Valor desconocido: 422.last_message_fromqueryNãostring (date-time)Solo conversaciones cuyo último mensaje (last_message_at) es igual o posterior a este instante (ISO 8601 con zona). Sin mensajes no entra en ningún rango.last_message_toqueryNãostring (date-time)Solo conversaciones cuyo último mensaje es anterior a este instante (límite exclusivo, [from, to)).bot_pausedqueryNãobooleantrue: el bot no responde (una persona tomó la conversación, human, o se pausó, paused). false: solo las que atiende el bot.replied_by_mequeryNãobooleantrue: conversaciones donde quien consulta (sesión del panel) mandó al menos un mensaje; false: las demás. Con API key no hay persona: true devuelve una lista vacía.needs_attentionqueryNãobooleantrue: solo las conversaciones que necesitan atención; false: solo las que no (F3-487). Se calcula en la consulta con la misma regla que el campo needs_attention y que el conteo de \u002Fconversations\u002Fcounts, así que paginar con offset recorre exactamente ese número de conversaciones.limitqueryNãointeger default 50offsetqueryNãointeger default 0 Respostas StatusDescrição200OK (array\u003CConversation>)defaultError (RFC 9457) (Problem)",{"id":3211,"title":3212,"titles":3213,"content":3214,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fconversations#get-conversationsid","GET \u002Fconversations\u002F{id}",[3202],"Detalle de una conversación Rol staff (F2-52): conversación de un cliente sin tareas suyas ⇒ 404 (no revela que existe). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200OK (Conversation)defaultError (RFC 9457) (Problem)",{"id":3216,"title":3217,"titles":3218,"content":3219,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fconversations#patch-conversationsid","PATCH \u002Fconversations\u002F{id}",[3202],"Actualizar etiquetas y\u002Fo estado del ciclo de vida de una conversación contact_action (F3-143) permite release\u002Freport_spam\u002Fblock\u002Funblock solo con sesión owner\u002Fmanager (contacts:moderate; API key 403). No ejecuta ni confirma tareas retenidas. Parcial: al menos uno de contact_action, tags (reemplaza las etiquetas) o lifecycle (transición manual, F2-35); sin ninguno, 422. Transiciones permitidas: entre pending, waiting_customer, waiting_team hacia cualquiera de ellas, resolved o closed; open solo desde resolved\u002Fclosed (reabrir); desde resolved también a pending\u002Fclosed; desde closed solo a open\u002Fpending. Otra combinación: 409 lifecycle_transition_not_allowed. Mismo estado = no-op idempotente (sin evento). resolution_reason solo con resolved\u002Fclosed (422 si no) y se limpia al reabrir. Cada cambio se audita (sin datos personales) y emite conversation.lifecycle_changed. Roles owner\u002Fmanager\u002Fstaff; viewer 403. API key: scope messages:write. El ciclo de vida es ortogonal al modo bot\u002Fhumano. lifecycle: resolved equivale a POST \u002Fresolve sobre el último entrante (fija resolved_at, emite conversation.resolved); salir de resolved limpia resolved_at. \"Archivar\" = closed (sale de la lista principal con ?lifecycle= de los estados activos; \"desarchivar\" = open). Un mensaje nuevo del cliente reabre una conversación resolved o closed (pasa a pending). Autenticação: Chave de API ou sessão do painelEscopos: messages:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: object Respostas StatusDescrição200Conversación actualizada (Conversation)defaultError (RFC 9457) (Problem)",{"id":3221,"title":3222,"titles":3223,"content":3224,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fconversations#get-conversationsidmessages","GET \u002Fconversations\u002F{id}\u002Fmessages",[3202],"Mensajes de una conversación (cronológico ascendente) Rol staff (F2-52): conversación de un cliente sin tareas suyas ⇒ 404. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringlimitqueryNãointeger default 50beforequeryNãostring (date-time)Solo mensajes anteriores a este instante (paginación hacia atrás) Respostas StatusDescrição200OK (array\u003CMessage>)defaultError (RFC 9457) (Problem)",{"id":3226,"title":3227,"titles":3228,"content":3229,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fconversations#post-conversationsidmessages","POST \u002Fconversations\u002F{id}\u002Fmessages",[3202],"Enviar mensaje manual (pone la conversación en modo humano) Persiste una salida delivery_status=pending y el takeover en la misma transacción. El worker entrega después del commit; 201 no confirma aceptación del proveedor. Idempotency-Key opcional deduplica 24 h para sesión de panel y Bearer; una misma clave con otro actor, conversación o texto devuelve 422. Un replay devuelve la respuesta original (puede seguir indicando pending); GET messages muestra el estado actual. Un cliente is_test sólo puede usar simulator, nunca una conexión real. Entrega externa at-least-once: sin idempotencia del proveedor existe ventana ambigua. Rol staff (F2-52): solo a clientes con tareas vigentes en un recurso propio; otra conversación ⇒ 404 y no se envía nada. 409 channel_paused si el dueño pausó ese canal a nivel channel (el equipo tampoco envía hasta reanudarlo). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringIdempotency-KeyheaderNãostring Corpo da solicitação (obrigatório) application\u002Fjson: object Respostas StatusDescrição201Persistido, pendiente de despacho durable (Message)defaultError (RFC 9457) (Problem)",{"id":3231,"title":3232,"titles":3233,"content":3234,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fconversations#post-conversationsidmessagesmessage_idintent","POST \u002Fconversations\u002F{id}\u002Fmessages\u002F{message_id}\u002Fintent",[3202],"Registrar una intención explícitamente clasificada por el operador Owner\u002Fmanager con sesión y CSRF, o API key messages:write. Mensaje entrante real de esta conversación y tenant. Clasificación cerrada e inmutable; mismo valor es replay y distinto devuelve 409. No usa texto LLM, no ejecuta la intención ni modifica estado de reservas. Autenticação: Chave de API ou sessão do painelEscopos: messages:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringmessage_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: object Respostas StatusDescrição200Clasificación persistida (o replay) (MessageIntent)defaultError (RFC 9457) (Problem)",{"id":3236,"title":3237,"titles":3238,"content":3239,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fconversations#post-conversationsidmode","POST \u002Fconversations\u002F{id}\u002Fmode",[3202],"Cambiar el modo (takeover \u002F devolver al bot \u002F pausar) Rol staff (F2-52): solo conversaciones de sus clientes; otra ⇒ 404. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: object Respostas StatusDescrição200OK (object)defaultError (RFC 9457) (Problem)",{"id":3241,"title":3242,"titles":3243,"content":3244,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fconversations#post-conversationsidnotes","POST \u002Fconversations\u002F{id}\u002Fnotes",[3202],"Agregar un aviso de sistema a la conversación (nunca se envía al cliente) F3-222. Deja un mensaje type=system en el hilo (p. ej. el contexto de un caso de soporte): nace delivery_status=sent, sin destinatario, así que el worker nunca lo despacha por el canal. No cambia el modo (bot\u002Fhumano) ni el ciclo de vida y no cuenta como respuesta del equipo. Roles owner\u002Fmanager (sesión con CSRF) o API key con messages:write; tenant desde la credencial; 404 si la conversación no es de este proyecto. Idempotente por contenido: el mismo texto ya presente como aviso en la conversación devuelve ese aviso (sin otro mensaje ni otra auditoría), con cualquier clave o key. Con API key, Idempotency-Key además deduplica 24 h (la misma clave con otro cuerpo da 409). Auditado conversation.system_note (solo el largo del texto). Autenticação: Chave de API ou sessão do painelEscopos: messages:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringIdempotency-KeyheaderNãostring Corpo da solicitação (obrigatório) application\u002Fjson: object Respostas StatusDescrição201Aviso guardado en el hilo (Message)defaultError (RFC 9457) (Problem)",{"id":3246,"title":3247,"titles":3248,"content":3249,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fconversations#post-conversationsidread","POST \u002Fconversations\u002F{id}\u002Fread",[3202],"Marcar la conversación como leída Rol staff (F2-52): solo conversaciones de sus clientes; otra ⇒ 404. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200OK (object)defaultError (RFC 9457) (Problem)",{"id":3251,"title":3252,"titles":3253,"content":3254,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fconversations#post-conversationsidresolve","POST \u002Fconversations\u002F{id}\u002Fresolve",[3202],"Resolver explícitamente la conversación leída Owner\u002Fmanager con sesión y CSRF, o API key messages:write. Tenant de la credencial. message_id debe ser el último entrante persistido del tenant; snapshot obsoleto devuelve 409. Repetir sobre el mismo mensaje no cambia fecha ni duplica audit\u002Fevento. Una nueva entrada real reabre; un replay del webhook no reabre. No cambia el modo ni ejecuta reservas. Autenticação: Chave de API ou sessão do painelEscopos: messages:write Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: object Respostas StatusDescrição200Resuelto (o replay de la misma resolución) (ConversationResolution)defaultError (RFC 9457) (Problem)",{"id":3256,"title":3257,"titles":3258,"content":3259,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fconversations#get-conversationsidsummary","GET \u002Fconversations\u002F{id}\u002Fsummary",[3202],"Último resumen con IA de la conversación (sin llamar al LLM) Owner, manager y staff. Devuelve el resumen guardado (summary: null si nunca se generó) y stale: true si llegaron mensajes después. Nunca consume IA. Rol staff (F2-52): conversación de un cliente sin tareas suyas ⇒ 404. Viewer ⇒ 403. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200OK (ConversationSummary)defaultError (RFC 9457) (Problem)",{"id":3261,"title":3262,"titles":3263,"content":3264,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fconversations#post-conversationsidsummary","POST \u002Fconversations\u002F{id}\u002Fsummary",[3202],"Resumir la conversación con IA (acotado y cacheado) Owner, manager y staff con sesión de panel y CSRF. Texto de lectura para el equipo: el LLM no decide nada. Pasa por el AI gateway (cuota del proyecto, pausa de IA manual y por spam, freno de ráfaga, registro de uso summary.conversation). Solo se leen los últimos 40 mensajes, con tope de caracteres de entrada y 2048 tokens de salida (incluido razonamiento), con un único reintento de hasta 4096 tokens si el contenido llega vacío; los teléfonos y emails se enmascaran ([tel], [email]) antes y después. El último resumen se guarda con el id del último mensaje considerado: sin mensajes nuevos se devuelve el guardado (cached: true) sin llamar al LLM, aunque la IA esté pausada. Rol staff: fuera de su alcance ⇒ 404. 409 ai_paused (pausa del dueño o auto_spam), 429 ai_limit_reached (cuota) y demás ai_* de admisión, 409 ai_unavailable (key pendiente), 422 conversation_empty (sin texto), 502 ai_provider_unavailable (error del proveedor, detail con tipo\u002Fstatus\u002Fmotivo seguros) o ai_empty_response (modelo sin texto tras dos intentos). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200Resumen vigente (generado ahora o reutilizado) (ConversationSummary)defaultError (RFC 9457) (Problem)",{"id":3266,"title":3267,"titles":3268,"content":3269,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fconversations#get-conversationscounts","GET \u002Fconversations\u002Fcounts",[3202],"Contadores de conversaciones por estado del ciclo de vida Cantidad de conversaciones por lifecycle (siempre las seis claves, con 0) y total, para los contadores de la Bandeja. Excluye las sesiones de prueba (is_test), igual que la lista. mode opcional restringe por modo bot\u002Fhumano. Lectura para cualquier rol; API key: scope messages:read (F2-35). Autenticação: Chave de API ou sessão do painelEscopos: messages:read Parâmetros NomeEmObrigatórioTipoDescriçãomodequeryNãobot, human, paused Respostas StatusDescrição200OK (ConversationLifecycleCounts)defaultError (RFC 9457) (Problem)",{"id":3271,"title":3272,"titles":3273,"content":3274,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fconversations#get-conversationsstream","GET \u002Fconversations\u002Fstream",[3202],"Avisos en vivo del inbox (SSE) text\u002Fevent-stream. Eventos message.received, message.sent y conversation.updated con\n{event, workspace_id, conversation_id, mode, lifecycle, unread_count, channel_type, message_id?, direction?}. channel_type es null si la conversación ya fue eliminada. Son avisos:\nel cliente vuelve a pedir la lista y los mensajes. Rol staff (F2-52): solo recibe los avisos de las\nconversaciones que puede ver en ese momento; el resto se descarta en el servidor. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Respostas StatusDescrição200Stream abiertodefaultError (RFC 9457) (Problem)",{"id":3276,"title":3277,"titles":3278,"content":3279,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fsimulator","API · simulator",[],"Operações de simulator do contrato OpenAPI que aceitam uma chave de API.",{"id":3281,"title":3282,"titles":3283,"content":3284,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fsimulator#post-simulatorclock","POST \u002Fsimulator\u002Fclock",[3277],"Fijar (o borrar con now = null) el reloj simulado del workspace Solo si ENV != production; en producción responde 403. El instante fijado sigue corriendo en tiempo real. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Corpo da solicitação (obrigatório) application\u002Fjson: object Respostas StatusDescrição200OK (object)defaultError (RFC 9457) (Problem)",{"id":3286,"title":3287,"titles":3288,"content":3289,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fsimulator#delete-simulatordata","DELETE \u002Fsimulator\u002Fdata",[3277],"Purgar todo lo is_test del workspace Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Respostas StatusDescrição200Purgado (SimulatorPurge)defaultError (RFC 9457) (Problem)",{"id":3291,"title":3292,"titles":3293,"content":3294,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fsimulator#get-simulatorsessions","GET \u002Fsimulator\u002Fsessions",[3277],"Listar las sesiones de simulador del workspace Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Respostas StatusDescrição200OK (array\u003CSimulatorSession>)defaultError (RFC 9457) (Problem)",{"id":3296,"title":3297,"titles":3298,"content":3299,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fsimulator#post-simulatorsessions","POST \u002Fsimulator\u002Fsessions",[3277],"Crear una sesión de simulador (cliente de prueba + conversación) Canal simulator (F2-12, ADR 0013): mismo pipeline que WhatsApp, sin proveedor externo.\nSolo panel (sesión + CSRF), roles owner\u002Fmanager; el tenant sale de la sesión.\nEl cliente queda is_test (fuera de listados reales, automatizaciones y reportes). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Corpo da solicitação (opcional) application\u002Fjson: SimulatorSessionCreate Respostas StatusDescrição201Creada (SimulatorSession)defaultError (RFC 9457) (Problem)",{"id":3301,"title":3302,"titles":3303,"content":3304,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fsimulator#delete-simulatorsessionssession_id","DELETE \u002Fsimulator\u002Fsessions\u002F{session_id}",[3277],"Borrar una sesión (cliente, conversación, mensajes y reservas de prueba) Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãosession_idpathSimstring (uuid) Respostas StatusDescrição204BorradadefaultError (RFC 9457) (Problem)",{"id":3306,"title":3307,"titles":3308,"content":3309,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fsimulator#get-simulatorsessionssession_idmessages","GET \u002Fsimulator\u002Fsessions\u002F{session_id}\u002Fmessages",[3277],"Mensajes de la sesión con la traza del bot (debug) para el inspector Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãosession_idpathSimstring (uuid) Respostas StatusDescrição200OK (array\u003CSimulatorMessage>)defaultError (RFC 9457) (Problem)",{"id":3311,"title":3312,"titles":3313,"content":3314,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fsimulator#post-simulatorsessionssession_idmessages","POST \u002Fsimulator\u002Fsessions\u002F{session_id}\u002Fmessages",[3277],"Enviar un mensaje como el cliente de prueba Mismo camino que el webhook entrante (persistir, SSE, cola). La respuesta del bot llega por GET \u002Fv1\u002Fconversations\u002Fstream. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãosession_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: object Respostas StatusDescrição202Aceptado (object)defaultError (RFC 9457) (Problem)",{"id":3316,"title":3317,"titles":3318,"content":3319,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fautomations","API · automations",[],"Operações de automations do contrato OpenAPI que aceitam uma chave de API.",{"id":3321,"title":3322,"titles":3323,"content":3324,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fautomations#get-automations","GET \u002Fautomations",[3317],"Listar automatizaciones del workspace actual Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Respostas StatusDescrição200OK (array\u003CAutomation>)defaultError (RFC 9457) (Problem)",{"id":3326,"title":3327,"titles":3328,"content":3329,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fautomations#post-automations","POST \u002Fautomations",[3317],"Crear una automatización F3-184: los avisos al cliente al entrar en una etapa (workitem.stage_entered) y el de confirmación (booking.confirmed) no son reglas: se configuran como on_enter.notify_customer (con enabled) en las etapas del servicio (PUT \u002Fservices\u002F{id}\u002Fstages). Crear una regla al cliente con esos disparadores responde 422; para demoras o condiciones se usa un flujo sobre workitem.stage_entered. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Corpo da solicitação (obrigatório) application\u002Fjson: AutomationCreate Respostas StatusDescrição201Creada (Automation)defaultError (RFC 9457) (Problem)",{"id":3331,"title":3332,"titles":3333,"content":3334,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fautomations#patch-automationsid","PATCH \u002Fautomations\u002F{id}",[3317],"Editar o apagar una automatización y regenerar sus jobs abiertos Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: AutomationPatch Respostas StatusDescrição200Actualizada (Automation)defaultError (RFC 9457) (Problem)",{"id":3336,"title":3337,"titles":3338,"content":3339,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fautomations#get-automationscustomer-noticesdeliveries","GET \u002Fautomations\u002Fcustomer-notices\u002Fdeliveries",[3317],"Customer Notice Deliveries Owner\u002Fmanager; tenant desde credencial. Bitácora de intentos, sin texto ni datos del canal. Retención 90 días. Políticas por servicio inicialmente apagadas; cambios auditados. PUT exige CSRF para sesión. Autenticação: Chave de API ou sessão do painelEscopos: config:read Parâmetros NomeEmObrigatórioTipoDescriçãowork_item_idqueryNãostring \u002F null (null)customer_idqueryNãostring \u002F null (null)statusqueryNãostring \u002F null (null)beforequeryNãostring \u002F null (null)limitqueryNãointeger default 50 Respostas StatusDescrição200Successful Response (array\u003CCustomerNoticeDeliveryOut>)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3341,"title":3342,"titles":3343,"content":3344,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fautomations#get-automationscustomer-noticespolicies","GET \u002Fautomations\u002Fcustomer-notices\u002Fpolicies",[3317],"Customer Notice Policies Owner\u002Fmanager; tenant desde credencial. Bitácora de intentos, sin texto ni datos del canal. Retención 90 días. Políticas por servicio inicialmente apagadas; cambios auditados. PUT exige CSRF para sesión. Autenticação: Chave de API ou sessão do painelEscopos: config:read Respostas StatusDescrição200Successful Response (array\u003CCustomerNoticePolicyOut>)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3346,"title":3347,"titles":3348,"content":3349,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fautomations#put-automationscustomer-noticespolicies","PUT \u002Fautomations\u002Fcustomer-notices\u002Fpolicies",[3317],"Customer Notice Policy Save Owner\u002Fmanager; tenant desde credencial. Bitácora de intentos, sin texto ni datos del canal. Retención 90 días. Políticas por servicio inicialmente apagadas; cambios auditados. PUT exige CSRF para sesión. Autenticação: Chave de API ou sessão do painelEscopos: config:write Corpo da solicitação (obrigatório) application\u002Fjson: CustomerNoticePolicyIn Respostas StatusDescrição200Successful Response (CustomerNoticePolicyOut)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3351,"title":3352,"titles":3353,"content":3354,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fautomations#post-automationscustomer-noticespreview","POST \u002Fautomations\u002Fcustomer-notices\u002Fpreview",[3317],"Customer Notice Previews Owner\u002Fmanager + CSRF; tenant desde sesión. Solo lectura, sin enviar ni guardar: texto real de plantilla con datos de ejemplo, vocabulario\u002Fidioma del borrador, canal disponible. Los textos de flujos muestran sus bindings sin resolver. Autenticação: Chave de API ou sessão do painelEscopos: config:write Corpo da solicitação (obrigatório) application\u002Fjson: CustomerNoticePreviewIn Respostas StatusDescrição200Successful Response (CustomerNoticePreviews)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3356,"title":3357,"titles":3358,"content":3359,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fautomations#get-automationsrecommended","GET \u002Fautomations\u002Frecommended",[3317],"Automatizaciones recomendadas por rasgos del proyecto Unión sin duplicados de los ejemplos parecidos (F3-409), con su estado real y una vista previa en el idioma del proyecto, con datos de muestra. Sin rasgos también ofrece recomendaciones generales. El alias de transición blueprint identifica el ejemplo más parecido o es nulo. Instalar siempre crea inactivas y conserva las ediciones existentes. Owner\u002Fmanager. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Respostas StatusDescrição200OK (RecommendedAutomations)defaultError (RFC 9457) (Problem)",{"id":3361,"title":3362,"titles":3363,"content":3364,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fautomations#put-automationsrecommendedkeyactivation","PUT \u002Fautomations\u002Frecommended\u002F{key}\u002Factivation",[3317],"Activar o pausar una recomendada La instala antes si el proyecto todavía no la tiene. Idempotente. Activar una regla no reprograma el pasado. 404 recommended_automation_not_found si la clave no es del blueprint. Owner\u002Fmanager. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãokeypathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: RecommendedActivation Respostas StatusDescrição200Estado resultante (RecommendedAutomation)defaultError (RFC 9457) (Problem)",{"id":3366,"title":3367,"titles":3368,"content":3369,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fautomations#post-automationsrecommendedinstall","POST \u002Fautomations\u002Frecommended\u002Finstall",[3317],"Instalar las recomendadas que falten (inactivas) Idempotente; no duplica ni pisa lo que el negocio editó. installed cuenta las creadas por esta llamada. Los proyectos nuevos ya las traen instaladas e inactivas. Owner\u002Fmanager. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Respostas StatusDescrição200OK (RecommendedAutomations)defaultError (RFC 9457) (Problem)",{"id":3371,"title":3372,"titles":3373,"content":3374,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fautomations#get-automationsstage-options","GET \u002Fautomations\u002Fstage-options",[3317],"Etapas y acciones válidas para las reglas por etapa Claves y etiquetas pt\u002Fes\u002Fen del blueprint vigente del workspace (vacío si no tiene). Son los valores admitidos por stage y action_key. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Respostas StatusDescrição200OK (AutomationStageOptions)defaultError (RFC 9457) (Problem)",{"id":3376,"title":3377,"titles":3378,"content":3379,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fautomations#get-noticesoverview","GET \u002Fnotices\u002Foverview",[3317],"Notices Overview Todo lo que sale al cliente (reglas, política por servicio, etapas y flujos), ordenado en el tiempo del servicio. Cada fila trae su valor efectivo, el motivo si está frenada y dónde se edita. Solo lectura. Dueño o encargado; tenant desde credencial. Autenticação: Chave de API ou sessão do painelEscopos: config:read Parâmetros NomeEmObrigatórioTipoDescriçãoaudiencequeryNãostring default customerservice_idqueryNãostring \u002F null (null) Respostas StatusDescrição200Successful Response (NoticeOverview)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3381,"title":3382,"titles":3383,"content":3384,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fautomations#patch-noticesoverview","PATCH \u002Fnotices\u002Foverview",[3317],"Notices Master «Apagar todos los avisos a clientes»: el único interruptor del proyecto; gana sobre el de cada fila. Dueño o encargado; tenant desde credencial. Exige CSRF para sesión. Escribe en la fuente de cada aviso, con su validación y auditoría. Autenticação: Chave de API ou sessão do painelEscopos: config:write Corpo da solicitação (obrigatório) application\u002Fjson: NoticeMasterPatch Respostas StatusDescrição200Successful Response (NoticeOverview)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3386,"title":3387,"titles":3388,"content":3389,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fautomations#patch-noticesoverviewitem_id","PATCH \u002Fnotices\u002Foverview\u002F{item_id}",[3317],"Notices Item Enciende o apaga una fila: escribe en su fuente (regla, política, etapa o flujo) con su validación. Dueño o encargado; tenant desde credencial. Exige CSRF para sesión. Escribe en la fuente de cada aviso, con su validación y auditoría. Las filas stage publican el flujo y requieren además flows:write (solo dueño) o settings:write junto con config:write para API key. Sin el permiso de origen responde 403; la lectura devuelve toggleable=false para esa fila. Autenticação: Chave de API ou sessão do painelEscopos: config:write, flows:write, settings:write Parâmetros NomeEmObrigatórioTipoDescriçãoitem_idpathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: NoticeItemPatch Respostas StatusDescrição200Successful Response (NoticeItem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3391,"title":3392,"titles":3393,"content":3394,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform","API · platform",[],"Operações de platform do contrato OpenAPI que aceitam uma chave de API.",{"id":3396,"title":3397,"titles":3398,"content":3399,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#get-connectionprojects","GET \u002Fconnection\u002Fprojects",[3392],"Proyectos a los que llega la credencial FIU-498 (ADR 0054). Con un token OAuth del MCP del dueño, los proyectos vigentes de la conexión (los que pasan la revalidación de rol y estado en cada pedido), sin necesitar X-Wagend-Project. Con una API key, su único proyecto. Respalda la herramienta list_projects del MCP. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Respostas StatusDescrição200Proyectos de la credencial (ConnectionProjectList)defaultError (RFC 9457) (Problem)",{"id":3401,"title":3402,"titles":3403,"content":3404,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#get-demorestore","GET \u002Fdemo\u002Frestore",[3392],"Estado del botón «Restaurar demo» FIU-483. Owner, manager o colaborador del demo de la credencial (nunca un id del path). Dice si el demo tiene foto base (available), de cuándo es, desde cuándo se puede volver a usar el botón (uno cada 10 minutos por demo) y la última restauración a demanda. 404 not_a_demo si el proyecto no es un demo de la suite con la marca de demo (o tiene cobros reales). Cache-Control no-store. Autenticação: Chave de API ou sessão do painelEscopos: config:read Respostas StatusDescrição200Estado del botón (DemoRestoreStatus)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)",{"id":3406,"title":3407,"titles":3408,"content":3409,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#post-demorestore","POST \u002Fdemo\u002Frestore",[3392],"Restaurar el demo a su foto base FIU-483. El reset liviano de ESTE demo, en segundos (cookie con X-Csrf-Token o API key, p. ej. Wagy por el MCP). Borra todo lo creado desde la foto (tareas, clientes, cobros, conversaciones, gastos, archivos…), vuelve a la foto lo editado o borrado y mueve sus fechas al día; conserva el proyecto, los canales e integraciones, el MCP, las API keys, los miembros con cuenta y la IA. Un demo por vez (409 demo_reset_busy, también mientras corre la limpieza de la noche) y uno cada 10 minutos (429 demo_restore_cooldown, con Retry-After). Si no se puede (sin foto o no quedó igual a la foto) no cambia nada (409 demo_restore_unavailable) y la noche corre el reset completo. Audita demo.restored. Autenticação: Chave de API ou sessão do painelEscopos: settings:write Respostas StatusDescrição200Demo restaurado (DemoRestoreResult)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":3411,"title":3412,"titles":3413,"content":3414,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#get-demostatus","GET \u002Fdemo\u002Fstatus",[3392],"¿El proyecto es un demo de la suite? (chip «Demo») FIU-514. Solo lectura, para cualquier miembro del proyecto (el panel muestra el chip «Demo» a todos; los controles siguen detrás de demo:restore en \u002Fdemo\u002Frestore). Devuelve is_demo (siempre true) y si el demo tiene foto base (available); sin fechas ni historial. 404 not_a_demo si el proyecto no es un demo de la suite con la marca de demo (o tiene cobros reales). Cache-Control no-store. Autenticação: Chave de API ou sessão do painelEscopos: config:read Respostas StatusDescrição200Estado del demo (DemoStatus)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)",{"id":3416,"title":3417,"titles":3418,"content":3419,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#get-me","GET \u002Fme",[3392],"Workspace y scopes de la credencial actual Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Respostas StatusDescrição200OK (Me)defaultError (RFC 9457) (Problem)",{"id":3421,"title":3422,"titles":3423,"content":3424,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#get-partneractivity","GET \u002Fpartner\u002Factivity",[3392],"Actividad de la cartera del partner Sesión de panel del partner (FIU-434). Hitos de sus clientes, del más nuevo al más viejo: alta, canal conectado, primera tarea (reserva o pedido), primer cobro del plan (solo la fecha, sin monto), prueba que empieza a vencer (a 7 días, con due_at) y cliente que se apagó (14 días sin uso). Paginado por cursor; sin contenido. Con Bearer (FIU-439) exige partner:read y el partner es quien emitió la credencial. Sin caché. Autenticação: Chave de API ou sessão do painelEscopos: partner:read Parâmetros NomeEmObrigatórioTipoDescriçãolimitqueryNãointeger default 30cursorqueryNãostring \u002F null (null) Respostas StatusDescrição200Actividad de la cartera del partner (ActivityPage)403Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3426,"title":3427,"titles":3428,"content":3429,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#get-partnerclients","GET \u002Fpartner\u002Fclients",[3392],"Mis clientes (cartera del partner) Sesión de panel del partner (FIU-434). El directorio del superadmin (FIU-430) acotado a los proyectos con la etiqueta del partner de la sesión: plan o prueba, semáforo de salud con sus motivos, último uso, tareas y conversaciones en 30 días, canales conectados y alertas (prueba que vence, canal caído, sin uso hace 14 días). Conteos y estados, sin costos ni contenido: el contenido se ve al entrar al proyecto. Orden estable por columna e ID con cursor (otro orden da 422); filtros rápidos como el directorio. Con Bearer (FIU-439) exige partner:read y el partner es quien emitió la credencial. Sin caché. Autenticação: Chave de API ou sessão do painelEscopos: partner:read Parâmetros NomeEmObrigatórioTipoDescriçãosortqueryNãostring last_activity, name, created_at, tasks_30d, conversations_30d default last_activityorderqueryNãostring asc, desc default desclimitqueryNãointeger default 50cursorqueryNãostring \u002F null (null)quickqueryNãostring \u002F null (null) Respostas StatusDescrição200Mis clientes (cartera del partner) (PartnerClientPage)403Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3431,"title":3432,"titles":3433,"content":3434,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#get-partnerclientsworkspace_id","GET \u002Fpartner\u002Fclients\u002F{workspace_id}",[3392],"Un cliente de la cartera del partner Sesión de panel del partner o Bearer con partner:read (FIU-439). La fila del cliente en «Mis clientes» (mismos conteos, estados y alertas, sin costos ni contenido) y sus hitos de Actividad, del más nuevo al más viejo. Un proyecto que no es de la cartera del partner da 404 client_not_found, igual que uno inexistente. Sin caché. Autenticação: Chave de API ou sessão do painelEscopos: partner:read Parâmetros NomeEmObrigatórioTipoDescriçãoworkspace_idpathSimstring (uuid) Respostas StatusDescrição200Un cliente de la cartera del partner (PartnerClientDetail)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3436,"title":3437,"titles":3438,"content":3439,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#get-partnerclientsworkspace_idaudit","GET \u002Fpartner\u002Fclients\u002F{workspace_id}\u002Faudit",[3392],"Puntaje de puesta a punto de un cliente de la cartera Sesión de panel del partner o Bearer con partner:read (FIU-524). Misma auditoría que GET \u002Fv1\u002Fworkspace\u002Faudit, solo lectura, del proyecto indicado. Un proyecto que no es de la cartera del partner da 404, igual que uno inexistente. Sin caché. Autenticação: Chave de API ou sessão do painelEscopos: partner:read Parâmetros NomeEmObrigatórioTipoDescriçãoworkspace_idpathSimstring (uuid)langqueryNãostring pt, es, en Respostas StatusDescrição200Puntaje y lo que falta (SetupAudit)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3441,"title":3442,"titles":3443,"content":3444,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#get-partnercourses","GET \u002Fpartner\u002Fcourses",[3392],"Cursos del partner (Aprendé) Cursos revisados por Javier. Sin ninguno la lista va vacía y el panel no muestra la sección. Con Bearer (API key u OAuth del MCP) exige partner:read y el partner es quien emitió la credencial, mientras siga siendo miembro activo del proyecto de la credencial (si no, 403). Autenticação: Chave de API ou sessão do painelEscopos: partner:read Parâmetros NomeEmObrigatórioTipoDescriçãolangqueryNãostring pt, es, en default pt Respostas StatusDescrição200Contenido del panel del partner (CourseList)403Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3446,"title":3447,"titles":3448,"content":3449,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#get-partnerkit","GET \u002Fpartner\u002Fkit",[3392],"Kit para vender del partner Kit para vender: mensajes por rubro y plantillas de proyecto, con el link ?ref del partner ya puesto. Con Bearer (API key u OAuth del MCP) exige partner:read y el partner es quien emitió la credencial, mientras siga siendo miembro activo del proyecto de la credencial (si no, 403). Autenticação: Chave de API ou sessão do painelEscopos: partner:read Parâmetros NomeEmObrigatórioTipoDescriçãolangqueryNãostring pt, es, en default pt Respostas StatusDescrição200Contenido del panel del partner (PartnerKit)403Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3451,"title":3452,"titles":3453,"content":3454,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#get-partnernews","GET \u002Fpartner\u002Fnews",[3392],"Novedades para el partner Novedades del sitio con la etiqueta partners primero y la última para negocios, lista para compartir. Con Bearer (API key u OAuth del MCP) exige partner:read y el partner es quien emitió la credencial, mientras siga siendo miembro activo del proyecto de la credencial (si no, 403). Autenticação: Chave de API ou sessão do painelEscopos: partner:read Parâmetros NomeEmObrigatórioTipoDescriçãolangqueryNãostring pt, es, en default pt Respostas StatusDescrição200Contenido del panel del partner (PartnerNews)403Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3456,"title":3457,"titles":3458,"content":3459,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#get-partnertoday","GET \u002Fpartner\u002Ftoday",[3392],"Hoy del panel del partner Sesión de panel del partner (FIU-434). Saludo con el nombre de la cuenta, el partner (sin comisión ni contacto), progreso de la cartera (clientes, activos en 30 días y fecha del primero), una sola próxima acción (canal caído, prueba que vence, conectar un canal, cliente que se apaga o, sin clientes, crear el primero) y las alertas con algún cliente (las vacías no vienen). 403 partner_required si la cuenta no es de un partner. Con Bearer (API key u OAuth del MCP, FIU-439) exige partner:read y el partner es quien emitió la credencial, mientras siga siendo miembro activo del proyecto de la credencial (si no, 403). Sin caché. Autenticação: Chave de API ou sessão do painelEscopos: partner:read Respostas StatusDescrição200Hoy del panel del partner (PartnerToday)403Error (RFC 9457) (Problem)",{"id":3461,"title":3462,"titles":3463,"content":3464,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#get-webhook-endpoints","GET \u002Fwebhook-endpoints",[3392],"Listar endpoints de webhooks (owner\u002Fmanager o scope webhooks:manage) Autenticação: Chave de API ou sessão do painelEscopos: webhooks:manage Respostas StatusDescrição200OK (object)defaultError (RFC 9457) (Problem)",{"id":3466,"title":3467,"titles":3468,"content":3469,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#post-webhook-endpoints","POST \u002Fwebhook-endpoints",[3392],"Crear endpoint (webhooks:manage). El secreto se devuelve una sola vez. URL https obligatoria; se resuelve el DNS y se rechazan IPs privadas, loopback, link-local y metadatos\nde nube (422 unsafe_webhook_url). Máximo 10 por workspace (409 webhook_limit_reached). No admite\nIdempotency-Key (400 idempotency_not_supported): la respuesta contiene el secreto. Cache-Control: no-store.\nSolo los tipos de EventType se pueden suscribir: un tipo desconocido responde 422 invalid_webhook\ncon unsupported_events y supported_events. Las entregas usan data.booking, data.payment,\ndata.message, data.conversation o data.action según la familia del evento; no incluyen texto de mensajes. Autenticação: Chave de API ou sessão do painelEscopos: webhooks:manage Corpo da solicitação (obrigatório) application\u002Fjson: object Respostas StatusDescrição201Creado (``WebhookEndpoint \u002F object)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3471,"title":3472,"titles":3473,"content":3474,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#get-webhook-endpointsid","GET \u002Fwebhook-endpoints\u002F{id}",[3392],"Ver un endpoint Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200OK (WebhookEndpoint)defaultError (RFC 9457) (Problem)",{"id":3476,"title":3477,"titles":3478,"content":3479,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#patch-webhook-endpointsid","PATCH \u002Fwebhook-endpoints\u002F{id}",[3392],"Cambiar URL, eventos o activar\u002Fdesactivar (reactivar pone en cero los fallos) Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Corpo da solicitação (obrigatório) application\u002Fjson: object Respostas StatusDescrição200OK (WebhookEndpoint)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3481,"title":3482,"titles":3483,"content":3484,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#delete-webhook-endpointsid","DELETE \u002Fwebhook-endpoints\u002F{id}",[3392],"Borrar el endpoint y su log de entregas Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição204BorradodefaultError (RFC 9457) (Problem)",{"id":3486,"title":3487,"titles":3488,"content":3489,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#get-webhook-endpointsiddeliveries","GET \u002Fwebhook-endpoints\u002F{id}\u002Fdeliveries",[3392],"Log de entregas del endpoint (más nueva primero) Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringlimitqueryNãointeger default 25cursorqueryNãostring Respostas StatusDescrição200Página (object)defaultError (RFC 9457) (Problem)",{"id":3491,"title":3492,"titles":3493,"content":3494,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#post-webhook-endpointsiddeliveriesdelivery_idresend","POST \u002Fwebhook-endpoints\u002F{id}\u002Fdeliveries\u002F{delivery_id}\u002Fresend",[3392],"Reenviar una entrega (vuelve a la cola con los intentos en cero) Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringdelivery_idpathSimstring Respostas StatusDescrição202Reencolada (WebhookDelivery)409El endpoint está deshabilitadodefaultError (RFC 9457) (Problem)",{"id":3496,"title":3497,"titles":3498,"content":3499,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#post-webhook-endpointsidping","POST \u002Fwebhook-endpoints\u002F{id}\u002Fping",[3392],"Encolar un evento de prueba webhook.ping (un solo intento) Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição202Entrega encolada (WebhookDelivery)defaultError (RFC 9457) (Problem)",{"id":3501,"title":3502,"titles":3503,"content":3504,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#post-webhook-endpointsidrotate-secret","POST \u002Fwebhook-endpoints\u002F{id}\u002Frotate-secret",[3392],"Rotar el secreto de firma (el anterior deja de valer; se muestra una sola vez) Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring Respostas StatusDescrição200Endpoint con el secreto nuevo (Cache-Control: no-store) (``WebhookEndpoint \u002F object)defaultError (RFC 9457) (Problem)",{"id":3506,"title":3507,"titles":3508,"content":3509,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#post-workspaceexamples","POST \u002Fworkspace\u002Fexamples",[3392],"Componer de 1 a 3 ejemplos por parte (owner; requiere X-Csrf-Token) F3-407 (ADR 0036 fase 2). Aplica las partes pedidas (vocabulary, flows, automations, catalog; todas por defecto) de cada ejemplo, idempotente por ejemplo y parte (lo ya aplicado devuelve already_applied) y sin duplicar por nombre. Nunca crea personas ni recursos (decisiones 1, 12 y 13 del dueño); el catálogo son servicios y productos inactivos y sin precio sobre la agenda que el negocio ya tiene (resource_group_id o, si hay uno solo, ese grupo); sin agenda queda skipped con needs_agenda. El vocabulario suma términos ausentes conservando el primer preset y los términos existentes; no modifica uno editado por el negocio (vocabulary_already_set). Tope de 3 ejemplos distintos por proyecto (409 examples_limit); ejemplo desconocido 409 unknown_example. La parte flows del taller y del lavadero activa además Vehículos (created.asset_type, FIU-610; nunca crea bienes) y su deshacer lo desactiva, sin borrarlo, si nadie lo tocó y no tiene bienes (si no, kept.asset_type). Serializa con la fila del workspace y audita workspace.blueprint_applied y workspace.example_applied por parte. Permiso workspace:blueprint; sin API key. Autenticação: Chave de API ou sessão do painelEscopos: settings:write Parâmetros NomeEmObrigatórioTipoDescriçãoX-Csrf-TokenheaderSimstring Corpo da solicitação (obrigatório) application\u002Fjson: ExamplesInput Respostas StatusDescrição200Resultado por ejemplo y parte, y estado de rasgos y ejemplos aplicados (ExamplesResult)409Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3511,"title":3512,"titles":3513,"content":3514,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#delete-workspaceexampleskey","DELETE \u002Fworkspace\u002Fexamples\u002F{key}",[3392],"Deshacer una parte (o todas) de un ejemplo (owner; requiere X-Csrf-Token) F3-407. Vocabulario, vuelve al anterior si nadie lo cambió; flujos, desactiva los que nadie editó ni usa; automatizaciones, retira las que siguen inactivas y sin uso; catálogo, borra los servicios que siguen sin ediciones y sin tareas (los productos nunca se borran, ya nacen inactivos). Lo que se queda sale en kept y deja de ser del ejemplo. Una parte no aplicada devuelve not_applied. Audita workspace.example_undone. Permiso workspace:blueprint; sin API key. Autenticação: Chave de API ou sessão do painelEscopos: settings:write Parâmetros NomeEmObrigatórioTipoDescriçãokeypathSimstringpartqueryNãoExamplePart \u002F null (null)X-Csrf-TokenheaderSimstring Respostas StatusDescrição200Resultado por parte y estado de rasgos y ejemplos aplicados (ExamplesResult)defaultError (RFC 9457) (Problem)",{"id":3516,"title":3517,"titles":3518,"content":3519,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fplatform#get-workspacetemplate","GET \u002Fworkspace\u002Ftemplate",[3392],"Exportar la configuración del proyecto como plantilla (owner) La configuración del proyecto como plantilla JSON (ADR 0042, FIU-523): flujos con la raíz de atención y las intenciones, servicios, productos, planes, base de ayuda, textos del bot, automatizaciones, encadenamientos, vocabulario y tipos de bien del cliente activos (customer_asset_types, FIU-610: uno de fábrica viaja como {key, preset}), todo por ref y sin ids. Nunca clientes ni sus bienes, tareas, cobros, canales, credenciales, API keys ni secretos. Audita template.exported en el origen. Se descarga como archivo (Content-Disposition). Permiso workspace:template_export; con API key, config:read. Autenticação: Chave de API ou sessão do painelEscopos: config:read Respostas StatusDescrição200Plantilla del proyecto (ProjectTemplate)403Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3521,"title":3522,"titles":3523,"content":3524,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fauth","API · auth",[],"Operações de auth do contrato OpenAPI que aceitam uma chave de API.",{"id":3526,"title":3527,"titles":3528,"content":3529,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fauth#get-authme","GET \u002Fauth\u002Fme",[3522],"Sesión del panel (usuario, workspace activo, rol y membresías) Requiere la cookie de sesión del panel (no acepta API keys). Sin secretos ni hash; el tenant sale de la sesión. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Respostas StatusDescrição200OK (SessionInfo)401Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3531,"title":3532,"titles":3533,"content":3534,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge","API · knowledge",[],"Operações de knowledge do contrato OpenAPI que aceitam uma chave de API.",{"id":3536,"title":3537,"titles":3538,"content":3539,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge#get-knowledge","GET \u002Fknowledge",[3532],"Listar los ítems de la base de conocimiento del bot Sesión con cualquier rol, o API key con config:read. Sin paginación (lista completa del workspace). Autenticação: Chave de API ou sessão do painelEscopos: config:read Parâmetros NomeEmObrigatórioTipoDescriçãotypequeryNãostring text, faq, catalog_item, file, web, listinginclude_inactivequeryNãoboolean default false Respostas StatusDescrição200Ítems (array\u003CKnowledgeItem>)defaultError (RFC 9457) (Problem)",{"id":3541,"title":3542,"titles":3543,"content":3544,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge#post-knowledge","POST \u002Fknowledge",[3532],"Crear un ítem de conocimiento (texto, FAQ o ítem de catálogo) Owner\u002Fmanager con CSRF, o API key con config:write. Con AI_LIMITS_ENABLED activo, admisión externa puede devolver 429 (ai_limit_reached, ai_usage_uncertain, ai_busy, ai_request_rate_limited). Calcula el embedding (503 si no hay proveedor de embeddings configurado, 502 si falla). Auditado. Autenticação: Chave de API ou sessão do painelEscopos: config:write Corpo da solicitação (obrigatório) application\u002Fjson: KnowledgeItemCreate Respostas StatusDescrição201Creado (versión 1) (KnowledgeItem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)502Error (RFC 9457) (Problem)503Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3546,"title":3547,"titles":3548,"content":3549,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge#patch-knowledgeitem_id","PATCH \u002Fknowledge\u002F{item_id}",[3532],"Editar un ítem (nueva versión) o activarlo\u002Fdesactivarlo Owner\u002Fmanager con CSRF, o API key con config:write. Cambiar título o contenido sube version y requiere embedding; con admisión IA activada puede devolver429 ai_limit_reached\u002Fai_usage_uncertain\u002Fai_busy\u002Fai_request_rate_limited sin cambiar el ítem. Cambios de active no usan IA. Auditado. Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoitem_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: KnowledgeItemUpdate Respostas StatusDescrição200Ítem actualizado (KnowledgeItem)404Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)502Error (RFC 9457) (Problem)503Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3551,"title":3552,"titles":3553,"content":3554,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge#delete-knowledgeitem_id","DELETE \u002Fknowledge\u002F{item_id}",[3532],"Dar de baja un ítem (baja lógica) Owner\u002Fmanager con CSRF, o API key con config:write. El ítem deja de responder en el bot pero se conserva su historial; devuelve el ítem con active=false. Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoitem_idpathSimstring (uuid) Respostas StatusDescrição200Ítem dado de baja (KnowledgeItem)404Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3556,"title":3557,"titles":3558,"content":3559,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge#post-knowledgefiles","POST \u002Fknowledge\u002Ffiles",[3532],"Subir un PDF a la base de conocimiento Owner\u002Fmanager con CSRF, o API key con config:write. 422 si el PDF es inválido, ilegible o supera el tamaño máximo. El PDF va como cuerpo crudo con Content-Type application\u002Fpdf (sin multipart, un archivo por llamada); tamaño máximo acotado por el servidor. Se parte en ítems de tipo file. Admisión IA opt-in puede devolver429 con códigos ai_limit_reached\u002Fai_usage_uncertain\u002Fai_busy\u002Fai_request_rate_limited; una denegación revierte la ingesta. Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãofilenamequerySimstring Corpo da solicitação (obrigatório) application\u002Fpdf: string Respostas StatusDescrição201Ítems creados a partir del PDF (array\u003CKnowledgeItem>)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)502Error (RFC 9457) (Problem)503Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3561,"title":3562,"titles":3563,"content":3564,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge#get-knowledgelive-queries","GET \u002Fknowledge\u002Flive-queries",[3532],"GET consulta HTTP en vivo (F2-49) Solo sesión owner\u002Fmanager; escrituras con CSRF. API keys sin acceso. HTTPS GET público con IP fijada y validación por salto, 3 s totales, 64 KiB descomprimidos y 2 KiB mapeados. Credenciales cifradas de escritura únicamente. Schema cerrado de hasta 8 parámetros escalares, mapeo declarativo. Máximo 10 consultas; expected_version evita sobrescribir cambios. La baja desactiva y conserva historial. Pruebas aplican cache tenant\u002Fconsulta\u002Fversión\u002Fparámetros, cuotas y circuito como el bot; errores externos son resultado ok=false sin contenido crudo. Sin PII en auditoría. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Respostas StatusDescrição200Resultado (array\u003CLiveQueryOut>)defaultError (RFC 9457) (Problem)",{"id":3566,"title":3567,"titles":3568,"content":3569,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge#post-knowledgelive-queries","POST \u002Fknowledge\u002Flive-queries",[3532],"POST consulta HTTP en vivo (F2-49) Solo sesión owner\u002Fmanager; escrituras con CSRF. API keys sin acceso. HTTPS GET público con IP fijada y validación por salto, 3 s totales, 64 KiB descomprimidos y 2 KiB mapeados. Credenciales cifradas de escritura únicamente. Schema cerrado de hasta 8 parámetros escalares, mapeo declarativo. Máximo 10 consultas; expected_version evita sobrescribir cambios. La baja desactiva y conserva historial. Pruebas aplican cache tenant\u002Fconsulta\u002Fversión\u002Fparámetros, cuotas y circuito como el bot; errores externos son resultado ok=false sin contenido crudo. Sin PII en auditoría. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Corpo da solicitação (obrigatório) application\u002Fjson: LiveQueryCreate Respostas StatusDescrição201Resultado (LiveQueryOut)defaultError (RFC 9457) (Problem)",{"id":3571,"title":3572,"titles":3573,"content":3574,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge#put-knowledgelive-queriesquery_id","PUT \u002Fknowledge\u002Flive-queries\u002F{query_id}",[3532],"PUT consulta HTTP en vivo (F2-49) Solo sesión owner\u002Fmanager; escrituras con CSRF. API keys sin acceso. HTTPS GET público con IP fijada y validación por salto, 3 s totales, 64 KiB descomprimidos y 2 KiB mapeados. Credenciales cifradas de escritura únicamente. Schema cerrado de hasta 8 parámetros escalares, mapeo declarativo. Máximo 10 consultas; expected_version evita sobrescribir cambios. La baja desactiva y conserva historial. Pruebas aplican cache tenant\u002Fconsulta\u002Fversión\u002Fparámetros, cuotas y circuito como el bot; errores externos son resultado ok=false sin contenido crudo. Sin PII en auditoría. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoquery_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: LiveQueryUpdate Respostas StatusDescrição200Resultado (LiveQueryOut)defaultError (RFC 9457) (Problem)",{"id":3576,"title":3577,"titles":3578,"content":3579,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge#delete-knowledgelive-queriesquery_id","DELETE \u002Fknowledge\u002Flive-queries\u002F{query_id}",[3532],"DELETE consulta HTTP en vivo (F2-49) Solo sesión owner\u002Fmanager; escrituras con CSRF. API keys sin acceso. HTTPS GET público con IP fijada y validación por salto, 3 s totales, 64 KiB descomprimidos y 2 KiB mapeados. Credenciales cifradas de escritura únicamente. Schema cerrado de hasta 8 parámetros escalares, mapeo declarativo. Máximo 10 consultas; expected_version evita sobrescribir cambios. La baja desactiva y conserva historial. Pruebas aplican cache tenant\u002Fconsulta\u002Fversión\u002Fparámetros, cuotas y circuito como el bot; errores externos son resultado ok=false sin contenido crudo. Sin PII en auditoría. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoquery_idpathSimstring (uuid) Respostas StatusDescrição200Resultado (LiveQueryOut)defaultError (RFC 9457) (Problem)",{"id":3581,"title":3582,"titles":3583,"content":3584,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge#post-knowledgelive-queriesquery_idtest","POST \u002Fknowledge\u002Flive-queries\u002F{query_id}\u002Ftest",[3532],"POST consulta HTTP en vivo (F2-49) Solo sesión owner\u002Fmanager; escrituras con CSRF. API keys sin acceso. HTTPS GET público con IP fijada y validación por salto, 3 s totales, 64 KiB descomprimidos y 2 KiB mapeados. Credenciales cifradas de escritura únicamente. Schema cerrado de hasta 8 parámetros escalares, mapeo declarativo. Máximo 10 consultas; expected_version evita sobrescribir cambios. La baja desactiva y conserva historial. Pruebas aplican cache tenant\u002Fconsulta\u002Fversión\u002Fparámetros, cuotas y circuito como el bot; errores externos son resultado ok=false sin contenido crudo. Sin PII en auditoría. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoquery_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: LiveQueryTest Respostas StatusDescrição200Resultado (LiveQueryResult)defaultError (RFC 9457) (Problem)",{"id":3586,"title":3587,"titles":3588,"content":3589,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge#post-knowledgesearch","POST \u002Fknowledge\u002Fsearch",[3532],"Buscar en la base de conocimiento (lo mismo que ve el bot) Sesión con cualquier rol, o API key con config:read. Búsqueda semántica; sirve al simulador del panel. Con admisión IA activada puede devolver429 ai_limit_reached\u002Fai_usage_uncertain\u002Fai_busy\u002Fai_request_rate_limited. Autenticação: Chave de API ou sessão do painelEscopos: config:read Corpo da solicitação (obrigatório) application\u002Fjson: KnowledgeSearch Respostas StatusDescrição200Resultados ordenados por score (array\u003CKnowledgeSearchHit>)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)502Error (RFC 9457) (Problem)503Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3591,"title":3592,"titles":3593,"content":3594,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge#get-knowledgesources","GET \u002Fknowledge\u002Fsources",[3532],"Listar las fuentes web de la base de conocimiento Solo sesión (cualquier rol); las API keys no tienen acceso a las fuentes (traen URLs, se mantienen en el panel). Sin paginación (máximo 10 por workspace). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Respostas StatusDescrição200Fuentes (array\u003CKnowledgeSource>)defaultError (RFC 9457) (Problem)",{"id":3596,"title":3597,"titles":3598,"content":3599,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge#post-knowledgesources","POST \u002Fknowledge\u002Fsources",[3532],"Registrar una página web o un listado como fuente de conocimiento (F2-47, F2-48) Solo sesión owner\u002Fmanager con CSRF. La URL debe ser http(s) pública: se valida contra SSRF (IPs privadas, loopback, link-local\u002Fmetadata, credenciales en la URL, DNS) y vuelve a validarse en cada traída y en cada redirección; 422 unsafe_source_url si no es válida. La URL tampoco puede llevar secretos en el query (?api_key=…, ?token=… y variantes: 422 unsafe_source_url; las credenciales van por fuera de la URL). No hace la traída: queda pending y el worker la importa en su próximo ciclo (≤ 1 min), una sola página, sin JavaScript, respetando robots.txt, solo text\u002Fhtml\u002Ftext\u002Fplain, tope de tamaño. Los ítems importados son de tipo web y el bot los recibe como dato citado no confiable, nunca como instrucción. Tope de 10 fuentes por workspace (409 knowledge_source_limit_reached); URL repetida 409 knowledge_source_duplicate. Auditado. F2-48: kind = csv, json, rss o sheet registra un listado estructurado (misma traída segura, sin robots.txt, tope 2 MiB y 1000 filas) con mapping declarativo y credentials opcionales (cifradas, nunca devueltas); los ítems son de tipo listing. 422 knowledge_invalid_mapping si el mapeo no es válido. kind=site importa una SECCIÓN: url es el prefijo (p. ej. https:\u002F\u002Ffiuit.com\u002Fes\u002Fdocs); el worker lee el sitemap.xml del dominio (y sus índices), toma solo las URLs del mismo host que cuelgan del prefijo (hasta max_pages, 50 por defecto, máx. 200) y trae cada una con la misma traída segura (SSRF, tamaño, tiempo, robots.txt, sin seguir a otros dominios). Cada refresco agrega las páginas nuevas, actualiza las que cambiaron (hash del contenido) y archiva las que desaparecieron. Sin sitemap: last_error=no_sitemap. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Corpo da solicitação (obrigatório) application\u002Fjson: KnowledgeSourceCreate Respostas StatusDescrição201Fuente creada (status=pending) (KnowledgeSource)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3601,"title":3602,"titles":3603,"content":3604,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge#get-knowledgesourcessource_id","GET \u002Fknowledge\u002Fsources\u002F{source_id}",[3532],"Ver una fuente web (estado, último refresco, error legible) Solo sesión (cualquier rol). last_error es un código corto (blocked_address, robots_disallowed, too_large, unsupported_content_type, timeout, empty_content...), nunca el texto de una excepción. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãosource_idpathSimstring (uuid) Respostas StatusDescrição200Fuente (KnowledgeSource)404Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3606,"title":3607,"titles":3608,"content":3609,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge#patch-knowledgesourcessource_id","PATCH \u002Fknowledge\u002Fsources\u002F{source_id}",[3532],"Cambiar el intervalo de refresco o pausar\u002Freanudar una fuente Solo sesión owner\u002Fmanager con CSRF. paused=true detiene el refresco (los ítems ya importados siguen disponibles); paused=false la reanuda y la agenda de inmediato. Auditado. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãosource_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: KnowledgeSourceUpdate Respostas StatusDescrição200Fuente actualizada (KnowledgeSource)404Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3611,"title":3612,"titles":3613,"content":3614,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge#delete-knowledgesourcessource_id","DELETE \u002Fknowledge\u002Fsources\u002F{source_id}",[3532],"Borrar una fuente y los ítems que importó Solo sesión owner\u002Fmanager con CSRF. Los ítems manuales no se tocan. Auditado. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãosource_idpathSimstring (uuid) Respostas StatusDescrição204Borrada404Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3616,"title":3617,"titles":3618,"content":3619,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge#get-knowledgesourcessource_idpages","GET \u002Fknowledge\u002Fsources\u002F{source_id}\u002Fpages",[3532],"Páginas importadas de una fuente de sección (kind=site) Solo sesión (cualquier rol). Una fila por página con su estado (ok o archived). Vacío para los demás tipos de fuente. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãosource_idpathSimstring (uuid) Respostas StatusDescrição200Páginas (array\u003CKnowledgeSourcePage>)404Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3621,"title":3622,"titles":3623,"content":3624,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge#post-knowledgesourcessource_idrefresh","POST \u002Fknowledge\u002Fsources\u002F{source_id}\u002Frefresh",[3532],"Pedir un refresco inmediato de una fuente Solo sesión owner\u002Fmanager con CSRF. Agenda la fuente para el próximo ciclo del worker y reanuda una pausada (reinicia el contador de errores; si la fuente está en error, el contador se conserva para que los reprogramados cortos no reintenten en bucle); la traída no ocurre dentro de la petición. Devuelve 409 knowledge_source_refresh_cooldown si la última traída exitosa fue hace menos de KNOWLEDGE_REFRESH_COOLDOWN_MINUTES (15 por defecto). Sin cambios en el contenido (mismo content_hash) no se vuelven a generar embeddings. Auditado. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãosource_idpathSimstring (uuid) Respostas StatusDescrição202Refresco agendado (KnowledgeSource)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3626,"title":3627,"titles":3628,"content":3629,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fknowledge#post-knowledgesourcespreview","POST \u002Fknowledge\u002Fsources\u002Fpreview",[3532],"Vista previa de un listado, sin guardar (F2-48) Solo sesión owner\u002Fmanager con CSRF. Trae el listado con la misma traída segura que el worker y devuelve las primeras filas ya mapeadas (máx. 10), el total leído y las columnas\u002Fclaves detectadas, para validar el mapeo ANTES de crear la fuente. No guarda nada (ni la fuente ni la credencial) y no devuelve la credencial. Límite: 10 vistas previas por minuto y workspace (429 knowledge_preview_rate_limited). 422 knowledge_listing_failed con reason (código corto: blocked_address, invalid_url, too_large, unsupported_content_type, http_error, timeout, invalid_listing, empty_content, mapping_column_missing, invalid_mapping...) o knowledge_invalid_mapping. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Corpo da solicitação (obrigatório) application\u002Fjson: KnowledgeSourcePreview Respostas StatusDescrição200Primeras filas mapeadas (KnowledgeSourcePreviewResult)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3631,"title":3632,"titles":3633,"content":3634,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Ftenancy","API · tenancy",[],"Operações de tenancy do contrato OpenAPI que aceitam uma chave de API.",{"id":3636,"title":3637,"titles":3638,"content":3639,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Ftenancy#patch-workspace","PATCH \u002Fworkspace",[3632],"Editar negocio (owner o manager; requiere X-Csrf-Token) Bearer settings:write admite solo payments_enabled, completion_payment_required, chat_payment, pay_info y brand_accent, sin otros campos; cookie requiere CSRF. Solo owner cambia payments_enabled\u002Fcompletion_payment_required; chat_payment y pay_info requieren workspace:configure y payments:accounts_configure (owner\u002Fmanager). PATCH atómico de identidad, apariencia, contacto, dirección y perfil fiscal. Solo owner modifica fiscal_data\u002Ffiscal_address; manager lee y edita los demás campos. Cambiar currency se rechaza con 409 future_bookings_conflict si existen cobros o valores financieros congelados. Cambiar currency se rechaza con 409 future_bookings_conflict si existen cobros o valores financieros congelados. Cambiar currency se rechaza con 409 future_bookings_conflict si existen cobros o valores financieros congelados. source_plan_id adopta un plan propio de Wagy en la misma transacción (se revalidan estado, expiración, huella y permisos). Timezone\u002Fmoneda con reservas futuras activas devuelve 409 sin cambios parciales. Datos fiscales solo owner\u002Fmanager; staff recibe null. Respuestas no-store; logo thumbnail PNG\u002FJPEG inline menor de 5 MB, sin URL externa. Autenticação: Chave de API ou sessão do painelEscopos: settings:write Parâmetros NomeEmObrigatórioTipoDescriçãoX-Csrf-TokenheaderNãostring Corpo da solicitação (obrigatório) application\u002Fjson: WorkspaceSettingsPatch Respostas StatusDescrição200Actualizado (WorkspaceSettings)defaultError (RFC 9457) (Problem)",{"id":3641,"title":3642,"titles":3643,"content":3644,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Ftenancy#get-workspaceaudit","GET \u002Fworkspace\u002Faudit",[3632],"Revisar mi configuración (puntaje de puesta a punto) FIU-524. Reglas fijas sobre el proyecto real, sin IA y sin costo: devuelve un puntaje 0-100, solo lo que falta ordenado por impacto y, por cada ítem, la operación de API que lo arregla con sus parámetros sugeridos (fix.operation, fix.params) y, si hace falta un dato del dueño, la pregunta de una línea (fix.ask). Si no falta nada, all_good es true e items va vacío. Owner y manager; API key con config:read. El idioma sale de lang o del proyecto. Sin caché. Autenticação: Chave de API ou sessão do painelEscopos: config:read Parâmetros NomeEmObrigatórioTipoDescriçãolangqueryNãostring pt, es, en Respostas StatusDescrição200Puntaje y lo que falta; Cache-Control no-store (SetupAudit)defaultError (RFC 9457) (Problem)",{"id":3646,"title":3647,"titles":3648,"content":3649,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Ftenancy#get-workspacetrait-catalog","GET \u002Fworkspace\u002Ftrait-catalog",[3632],"Catálogo aprobado completo con versión, cambios y preguntas pt\u002Fes\u002Fen Base versionada más revisiones inmutables aprobadas. API key config:read. No incluye propuestas. Autenticação: Chave de API ou sessão do painelEscopos: config:read Respostas StatusDescrição200Catálogo exportable como catalog.json (TraitCatalog)defaultError (RFC 9457) (Problem)",{"id":3651,"title":3652,"titles":3653,"content":3654,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Ftenancy#get-workspacetrait-proposals","GET \u002Fworkspace\u002Ftrait-proposals",[3632],"Propuestas y etiquetas propias del proyecto Todos los roles; API key config:read. Hasta 200 por página, orden por UUID; cursor UUID de la última fila. Autenticação: Chave de API ou sessão do painelEscopos: config:read Parâmetros NomeEmObrigatórioTipoDescriçãocursorqueryNãostring (uuid) Respostas StatusDescrição200Propuestas propias (TraitProposalPage)defaultError (RFC 9457) (Problem)",{"id":3656,"title":3657,"titles":3658,"content":3659,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Ftenancy#post-workspacetrait-proposals","POST \u002Fworkspace\u002Ftrait-proposals",[3632],"Proponer un rasgo sin aplicarlo (confirm=true) Permiso workspace:configure; API key settings:write. CSRF para cookie. Máximo 10 pendientes y 3 nuevas por día UTC por negocio; 429 al superar. Deduplicación local por clave o similitud >=0.88 en nombres normalizados pt\u002Fes\u002Fen; devuelve la propuesta existente sin consumir cupo. Una coincidencia en catálogo devuelve 409 trait_already_catalogued. No cambia rasgos, glosario, flujos ni bot. Autenticação: Chave de API ou sessão do painelEscopos: settings:write Parâmetros NomeEmObrigatórioTipoDescriçãoX-Csrf-TokenheaderNãostring Corpo da solicitação (obrigatório) application\u002Fjson: TraitProposalInput Respostas StatusDescrição200Propuesta pendiente o duplicado existente (TraitProposal)429Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3661,"title":3662,"titles":3663,"content":3664,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Ftenancy#get-workspacetraits","GET \u002Fworkspace\u002Ftraits",[3632],"Rasgos del negocio, etiqueta libre y ejemplos aplicados (todos los roles) F3-407 (ADR 0036). traits son claves del catálogo versionado (catalog_version) en su orden; vacía = todavía no se preguntaron (los proyectos que ya existían arrancan así). business_label es una etiqueta libre de rubro, solo informativa. examples lista los ejemplos compuestos y sus partes. API key config:read. Autenticação: Chave de API ou sessão do painelEscopos: config:read Respostas StatusDescrição200OK (TraitsState)defaultError (RFC 9457) (Problem)",{"id":3666,"title":3667,"titles":3668,"content":3669,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Ftenancy#put-workspacetraits","PUT \u002Fworkspace\u002Ftraits",[3632],"Guardar rasgos y etiqueta libre (owner o manager; requiere X-Csrf-Token) Reemplaza la lista completa (sin repetir, se guarda en el orden del catálogo) y la etiqueta (hasta 80 caracteres; vacía la borra). Un rasgo fuera del catálogo es 422 unknown_trait con valid_traits; proponer rasgos nuevos es otra operación (F3-565). Inicializa el glosario por rasgos y ejemplo parecido sin otra pregunta; mientras conserve el valor generado, acompaña cambios posteriores. Conserva ediciones propias. No cambia reglas del bot ni de la agenda. Audita workspace.traits_updated. Permiso workspace:configure; API key settings:write. Autenticação: Chave de API ou sessão do painelEscopos: settings:write Parâmetros NomeEmObrigatórioTipoDescriçãoX-Csrf-TokenheaderNãostring Corpo da solicitação (obrigatório) application\u002Fjson: TraitsInput Respostas StatusDescrição200Guardado (TraitsState)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3671,"title":3672,"titles":3673,"content":3674,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Ftenancy#get-workspacevocabulary","GET \u002Fworkspace\u002Fvocabulary",[3632],"Vocabulario del proyecto (owner o manager) Cómo se nombran Servicio, Tarea, Recurso y Cliente (singular, plural y género por idioma) y, opcionalmente, cada tipo de recurso (kinds, p. ej. «cancha» para las salas de un club). Es presentación; no cambia rutas, tablas ni permisos. Sin vocabulario guardado (is_default) todos los textos son los genéricos de siempre. Autenticação: Chave de API ou sessão do painelEscopos: config:read Respostas StatusDescrição200OK (Vocabulary)defaultError (RFC 9457) (Problem)",{"id":3676,"title":3677,"titles":3678,"content":3679,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Ftenancy#patch-workspacevocabulary","PATCH \u002Fworkspace\u002Fvocabulary",[3632],"Editar el vocabulario (owner o manager; requiere X-Csrf-Token) Elegir preset sin terms\u002Fkinds descarta esas ediciones; terms y kinds (término por tipo de recurso, FIU-470) reemplazan cada uno sus ediciones anteriores. Términos de 1 a 40 caracteres, sin HTML ni llaves. Escribe auditoría workspace.vocabulary_updated. Autenticação: Chave de API ou sessão do painelEscopos: settings:write Parâmetros NomeEmObrigatórioTipoDescriçãoX-Csrf-TokenheaderSimstring Corpo da solicitação (obrigatório) application\u002Fjson: VocabularyPatch Respostas StatusDescrição200Actualizado (Vocabulary)defaultError (RFC 9457) (Problem)",{"id":3681,"title":3682,"titles":3683,"content":3684,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fsite","API · site",[],"Operações de site do contrato OpenAPI que aceitam uma chave de API. «Mi web» (F3-622), la web propia del negocio en su subdominio, apagada hasta que se publica.",{"id":3686,"title":3687,"titles":3688,"content":3689,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fsite#get-site","GET \u002Fsite",[3682],"Leer «Mi web» (site:read; API key config:read) La web propia del negocio (F3-622, plan web-del-negocio): plantilla, secciones opcionales marcadas, textos del dueño, subdominio y si está publicada. Sin guardar todavía (exists false) devuelve la propuesta: subdominio sugerido desde el nombre del negocio y libre, plantilla booking, apagada y version 0. Lo que la web muestra del catálogo no se elige acá: es lo que ofrece el bot (ADR 0047, GET \u002Fbot\u002Foffer). Autenticação: Chave de API ou sessão do painelEscopos: site:read, config:read Respostas StatusDescrição200«Mi web» (SiteOut)defaultError (RFC 9457) (Problem)",{"id":3691,"title":3692,"titles":3693,"content":3694,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fsite#patch-site","PATCH \u002Fsite",[3682],"Cambiar «Mi web» (site:edit; API key config:write) Cambia solo los campos enviados; crea la web (apagada) si todavía no existía. subdomain: de 3 a 40 caracteres a-z, 0-9 y guiones interiores simples, sin nombres reservados (422 site_subdomain_invalid con reason: too_short, too_long, invalid_chars, edge_hyphen, double_hyphen o reserved); si lo usa otro proyecto, 409 site_subdomain_taken. Cambiar el subdominio de una web publicada deja de servir el anterior al instante (sin redirección, ADR 0050 §7). Textos vacíos quedan sin texto (la web usa los datos del negocio). made_with_fiuit: false quita «Hecho con Fiuit» solo si el plan del proyecto lo permite (si no, 409 site_branding_plan_required). Con version distinta de la vigente: 409 site_version_conflict. Audita site.created o site.updated. Autenticação: Chave de API ou sessão do painelEscopos: config:write Corpo da solicitação (obrigatório) application\u002Fjson: SitePatch Respostas StatusDescrição200«Mi web» después del cambio (SiteOut)defaultError (RFC 9457) (Problem)",{"id":3696,"title":3697,"titles":3698,"content":3699,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fsite#post-sitepublish","POST \u002Fsite\u002Fpublish",[3682],"Publicar la web (site:publish; API key config:write) Enciende la web en su subdominio. Idempotente: si ya estaba publicada devuelve lo mismo. Crea la web con la propuesta si todavía no existía. Audita site.published. Con version distinta de la vigente: 409 site_version_conflict. Autenticação: Chave de API ou sessão do painelEscopos: config:write Corpo da solicitação (opcional) application\u002Fjson: SitePublishIn Respostas StatusDescrição200«Mi web» publicada (SiteOut)defaultError (RFC 9457) (Problem)",{"id":3701,"title":3702,"titles":3703,"content":3704,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fsite#post-siteunpublish","POST \u002Fsite\u002Funpublish",[3682],"Despublicar la web (site:publish; API key config:write) Apaga la web: su subdominio responde 404 enseguida, igual que uno inexistente. Idempotente. Audita site.unpublished. Autenticação: Chave de API ou sessão do painelEscopos: config:write Corpo da solicitação (opcional) application\u002Fjson: SitePublishIn Respostas StatusDescrição200«Mi web» apagada (SiteOut)defaultError (RFC 9457) (Problem)",{"id":3706,"title":3707,"titles":3708,"content":3709,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fnotifications","API · notifications",[],"Operações de notifications do contrato OpenAPI que aceitam uma chave de API. Notificaciones por usuario (F3-88). Campana del panel, reglas del proyecto y SSE propio.",{"id":3711,"title":3712,"titles":3713,"content":3714,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fnotifications#get-notification-rules","GET \u002Fnotification-rules",[3707],"Reglas de notificación del proyecto (F3-88) Solo owner. Quién recibe las alertas de canal caído y de spam, y qué tipos de aviso están apagados para todo el proyecto. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Respostas StatusDescrição200OK (NotificationRules)403Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3716,"title":3717,"titles":3718,"content":3719,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fnotifications#put-notification-rules","PUT \u002Fnotification-rules",[3707],"Guardar las reglas de notificación del proyecto Solo owner; cookie y X-Csrf-Token. Escribe audit_log (notification_rules.updated). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoX-Csrf-TokenheaderSimstring Corpo da solicitação (obrigatório) application\u002Fjson: NotificationRules Respostas StatusDescrição200Guardadas (NotificationRules)403Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3721,"title":3722,"titles":3723,"content":3724,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fnotifications#get-notifications","GET \u002Fnotifications",[3707],"Mis notificaciones del proyecto (campana del panel, F3-88) Sesión de panel de cualquier rol del equipo; las API keys reciben 403. Solo las del usuario de la sesión en el proyecto activo (RLS por proyecto y filtro por usuario), de la más nueva a la más vieja. Título y cuerpo ya vienen en el idioma de la persona (sin datos de clientes); link es la ruta del panel de la entidad. locale permite usar el idioma actual del panel; si se omite, usa el idioma de la cuenta. Retención: lo leído 14 días, todo a los 60. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãolocalequeryNãostring pt, es, enIdioma actual del panel; por defecto el de la cuenta.limitqueryNãointeger default 30unread_onlyqueryNãoboolean default falsebeforequeryNãostring (date-time)Cursor por fecha de creación. Respostas StatusDescrição200OK (NotificationList)403Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3726,"title":3727,"titles":3728,"content":3729,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fnotifications#delete-notifications","DELETE \u002Fnotifications",[3707],"Borrar todas mis notificaciones del proyecto (F3-326) Cookie y X-Csrf-Token. Vacía la campana de quien llama en el proyecto activo: usa el usuario y el proyecto de la sesión (nunca un parámetro), así que las de las demás personas y las de otros negocios quedan intactas. No toca la auditoría. Las filas de tipos apagados (in_panel = false), que solo existen para la idempotencia del aviso, se conservan. Idempotente. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoX-Csrf-TokenheaderSimstring Respostas StatusDescrição204Campana vacía403Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3731,"title":3732,"titles":3733,"content":3734,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fnotifications#post-notificationsidread","POST \u002Fnotifications\u002F{id}\u002Fread",[3707],"Marcar una notificación como leída Cookie y X-Csrf-Token. Idempotente. 404 si no existe o es de otra persona (misma respuesta). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstring (uuid)X-Csrf-TokenheaderSimstring Respostas StatusDescrição200OK (devuelve el contador de no leídas) (NotificationUnreadCount)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3736,"title":3737,"titles":3738,"content":3739,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fnotifications#post-notificationsread-all","POST \u002Fnotifications\u002Fread-all",[3707],"Marcar todas mis notificaciones como leídas Cookie y X-Csrf-Token. Idempotente. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoX-Csrf-TokenheaderSimstring Respostas StatusDescrição200OK (NotificationUnreadCount)403Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3741,"title":3742,"titles":3743,"content":3744,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fnotifications#get-notificationsstream","GET \u002Fnotifications\u002Fstream",[3707],"Aviso en vivo de notificaciones nuevas (SSE) text\u002Fevent-stream, propio de la persona y del proyecto. Evento notification.created con {event, id} (sin\ncontenido): el cliente vuelve a pedir el contador y la lista. Un comentario : cada 15 s mantiene la conexión. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Respostas StatusDescrição200Stream abierto403Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3746,"title":3747,"titles":3748,"content":3749,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fnotifications#get-notificationsunread-count","GET \u002Fnotifications\u002Funread-count",[3707],"Cantidad de notificaciones sin leer Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Respostas StatusDescrição200OK (NotificationUnreadCount)403Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3751,"title":3752,"titles":3753,"content":3754,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fprepaid","API · prepaid",[],"Operações de prepaid do contrato OpenAPI que aceitam uma chave de API. Paquetes y club con cupo (F3-261); el dinero vive en payments.",{"id":3756,"title":3757,"titles":3758,"content":3759,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fprepaid#post-prepaidbookingsbooking_idrelease","POST \u002Fprepaid\u002Fbookings\u002F{booking_id}\u002Frelease",[3752],"Release Booking Permiso\u002Fscope prepaid:sell (owner\u002Fmanager). Quita el plan de una tarea cubierta: libera la unidad reservada y la tarea vuelve a su valor a cobrar normal; no se vuelve a cubrir sola. Una tarea cubierta no admite cambiar el cliente ni el servicio (PATCH \u002Fbookings\u002F{id} da 409 booking_covered_by_plan) hasta quitarle el plan. Repetirlo es idempotente. Una unidad ya consumida da 409 prepaid.booking_consumed; una tarea sin plan, 409 prepaid.booking_not_covered. Audita prepaid.booking_removed con el motivo. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãobooking_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: ReleaseBooking Respostas StatusDescrição200Successful Response (SubscriptionView)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3761,"title":3762,"titles":3763,"content":3764,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fprepaid#get-prepaidcustomerscustomer_id","GET \u002Fprepaid\u002Fcustomers\u002F{customer_id}",[3752],"Customer Plans Permiso\u002Fscope prepaid:read. Paquetes, club y membresía del cliente con su período vigente: unidades totales, usadas, reservadas (tareas confirmadas que lo van a usar) y disponibles (units_left). F3-463: period.booking_id es la cuota del período (la tarea que se cobra), open_fees las cuotas por cobrar y next_due_at el vencimiento de la próxima; status active = al día y past_due = impago, y debt_minor suma las cuotas ya vencidas por cobrar (una que nació antes de vencer todavía no es deuda; con tarjeta: rechazadas por MP o sin cobrar a los 3 días). Staff solo de clientes con tareas en sus recursos; ajeno o inexistente da el mismo 403. Autenticação: Chave de API ou sessão do painelEscopos: prepaid:read Parâmetros NomeEmObrigatórioTipoDescriçãocustomer_idpathSimstring (uuid) Respostas StatusDescrição200Successful Response (CustomerPlans)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3766,"title":3767,"titles":3768,"content":3769,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fprepaid#get-prepaidplans","GET \u002Fprepaid\u002Fplans",[3752],"List Plans Tenant desde credencial. Permiso\u002Fscope prepaid:read (F3-261). Paquetes (N unidades de ciertos servicios con vencimiento en días), planes de club (N unidades por mes calendario local) y membresías (F3-536, precio fijo por mes, sin unidades; units y unit_minor null) del catálogo. active=true lista solo los vendibles. unit_minor = precio \u002F unidades (redondeado hacia abajo), en unidad menor de la moneda. card_billing_available (F3-553) dice si el proyecto puede cobrar con tarjeta (MP Suscripciones), true solo con el cobro automático habilitado y una cuenta de Mercado Pago conectada; recién ahí se crean planes billing=card (club o membresía) y se venden con payer_email. Autenticação: Chave de API ou sessão do painelEscopos: prepaid:read Parâmetros NomeEmObrigatórioTipoDescriçãoactivequeryNãoboolean default false Respostas StatusDescrição200Successful Response (PlanList)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3771,"title":3772,"titles":3773,"content":3774,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fprepaid#post-prepaidplans","POST \u002Fprepaid\u002Fplans",[3752],"Create Plan Permiso\u002Fscope prepaid:manage (owner\u002Fmanager). Crea un paquete (validity_days obligatorio), un club o una membresía (kind=membership, F3-536: precio fijo por mes sin unidades ni cupo; servicios opcionales, que quedan cubiertos en $0 sin descontar). El cobro con tarjeta (billing=card, MP Suscripciones; solo club y membresía) exige card_billing_available de GET \u002Fprepaid\u002Fplans (F3-553): sin el cobro automático habilitado da 409 prepaid.card_billing_disabled y sin cuenta de Mercado Pago conectada, 409 prepaid.card_account_required. quota: hasta 10 reglas de cupo por día local, opcionalmente en una franja start-end y en ciertos weekdays (0 = lunes); la reserva que no entra en el cupo queda sin cubrir y se cobra normal. Audita prepaid.plan_created. Autenticação: Chave de API ou sessão do painelEscopos: prepaid:manage Corpo da solicitação (obrigatório) application\u002Fjson: PlanInput Respostas StatusDescrição201Successful Response (PlanView)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3776,"title":3777,"titles":3778,"content":3779,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fprepaid#patch-prepaidplansplan_id","PATCH \u002Fprepaid\u002Fplans\u002F{plan_id}",[3752],"Update Plan Permiso\u002Fscope prepaid:manage. Cambia nombre, servicios, cupo, precio, unidades, vencimiento, flujo del alta o primera cuota completa, o lo apaga (active=false). El precio rige para las cuotas que nacen desde ahora en todas las suscripciones vivas: las cuotas ya creadas conservan el suyo y al cliente no se le avisa (lo ve en su próxima cuota, F3-463); la respuesta trae live_subscriptions, cuántas lo verán. Unidades y vencimiento solo afectan ventas nuevas. Una membresía no acepta unidades, vigencia ni cupo (409 prepaid.membership_terms) y un paquete solo due_rule=signup (409 prepaid.package_terms). Audita prepaid.plan_updated (con el precio antes y después). Autenticação: Chave de API ou sessão do painelEscopos: prepaid:manage Parâmetros NomeEmObrigatórioTipoDescriçãoplan_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: PlanUpdate Respostas StatusDescrição200Successful Response (PlanView)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3781,"title":3782,"titles":3783,"content":3784,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fprepaid#get-prepaidplansplan_idperformance","GET \u002Fprepaid\u002Fplans\u002F{plan_id}\u002Fperformance",[3752],"Rendimiento de un plan en cantidades: vendidos por día, semana o mes y activos hoy F3-328. Rendimiento de un plan (paquete o club) en CANTIDADES (nunca dinero: vive en Financiero). Panel: permisos performance:read y prepaid:stats (owner\u002Fmanager); API key: scope prepaid:read. sold (por defecto): ventas nuevas por día de alta, sin pendientes de pago ni clientes de prueba, con el período anterior. active: clientes distintos con el plan activo hoy (previous null). Período anterior y tramos como en GET \u002Fservices\u002F{id}\u002Fperformance. Máximo 366 días. Autenticação: Chave de API ou sessão do painelEscopos: performance:read, prepaid:read Parâmetros NomeEmObrigatórioTipoDescriçãoplan_idpathSimstring (uuid)fromquerySimstring (date)Primer día local del negocio (incluido)toquerySimstring (date)Último día local del negocio (incluido)granularityqueryNãostring day, week, month default dayTramo de la serie: day, week (lunes) o month Respostas StatusDescrição200Successful Response (ItemPerformanceOut)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":3786,"title":3787,"titles":3788,"content":3789,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fprepaid#get-prepaidplansstats","GET \u002Fprepaid\u002Fplans\u002Fstats",[3752],"Rendimiento por plan: vendidos, activos, consumo y vencimientos F3-315. Rendimiento de cada plan del catálogo (también los sin ventas), en una sola consulta agrupada. Panel: permiso prepaid:stats (owner\u002Fmanager); API key: scope prepaid:read. Sin clientes de prueba. sold: ventas nuevas del período (sin pendientes de pago con tarjeta). active_subscriptions: con el plan activo hoy. units_used\u002Funits_total\u002Fusage_ratio: consumo de los períodos vigentes hoy de clientes con el plan. expiring_30d: paquetes vigentes que vencen en 30 días (null en club). sold_minor (ventas y renovaciones pagas del período, incluye reembolsadas como el resumen de Financiero) y currency solo con finance:analyze; si no, null. Máximo 366 días. Autenticação: Chave de API ou sessão do painelEscopos: prepaid:read Parâmetros NomeEmObrigatórioTipoDescriçãofromquerySimstring (date)Primer día local del negocio (incluido)toquerySimstring (date)Último día local del negocio (incluido) Respostas StatusDescrição200Successful Response (PlanStatsList)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)",{"id":3791,"title":3792,"titles":3793,"content":3794,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fprepaid#get-prepaidsubscriptions","GET \u002Fprepaid\u002Fsubscriptions",[3752],"Listar suscripciones del proyecto Permiso\u002Fscope prepaid:benefits (owner\u002Fmanager). Lista paginada de suscripciones con estado impago y pausa de beneficios; las membresías traen standing (al día, en gracia o bloqueada, F3-537). Con unpaid=true, solo las impagas (la alerta de Hoy y el filtro «Impagos» de Planes). Cada una trae months_due (meses adeudados) y la respuesta unpaid_count, el conteo del servidor de impagas del proyecto (F3-405). Tenant desde la credencial. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãolimitqueryNãointeger default 100offsetqueryNãointeger default 0unpaidqueryNãoboolean default falseF3-537: solo las impagas (alerta de Hoy), con customer_name; primero las membresías bloqueadas, después las de gracia más corta y el club impago al final. Sin clientes de prueba. Respostas StatusDescrição200Successful Response (SubscriptionList)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3796,"title":3797,"titles":3798,"content":3799,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fprepaid#post-prepaidsubscriptions","POST \u002Fprepaid\u002Fsubscriptions",[3752],"Sell Plan Permiso\u002Fscope prepaid:sell (owner\u002Fmanager) y además payments:record: vende un plan. Crea la suscripción, su período 1 y la cuota 1 (F3-463): una tarea sin servicio (subject.type = subscription), en cola y sin horario, que es también el alta (recorre el flujo del plan, flow_id, si tiene) y vence al venderse; su valor es el precio vigente del plan, o la parte proporcional hasta el próximo vencimiento según due_rule (salvo first_fee_full). Con payment registra un recibo purpose=plan sobre esa cuota (cualquier forma de pago manual, misma caja e idempotencia que POST \u002Fpayments\u002Fmanual) y nace pagada; sin payment queda Por cobrar (link de pago desde la tarea o recibo a mano) y es deuda desde ya. Cubre enseguida las tareas confirmadas del cliente dentro de la ventana. Si se vende dentro de los notice_days previos al próximo vencimiento, la cuota 2 nace en el acto. En un flujo de cuota la tarea solo pasa a Pagada con saldo cero: completarla con deuda o pago parcial da 409 prepaid_consumption_failed (reason: membership_unpaid), y anular su recibo o devolver el cobro la vuelve a Por cobrar. El cobro automático aparece en el historial de la tarea; devolverlo desde Fiuit da payment.refund_plan_unsupported (se devuelve en Mercado Pago). Con tarjeta (F3-553; plan billing=card, payer_email = email del cliente; basta prepaid:sell, no registra un recibo) la suscripción nace pending con checkout_url, el link de Mercado Pago donde el cliente autoriza la tarjeta (Fiuit no ve sus datos); al autorizar y cobrarse el primer mes pasa a active. Exige card_billing_available: si no, 409 prepaid.card_billing_disabled o prepaid.card_account_required. Una sola venta con tarjeta vigente por cliente y plan (F3-631): si el cliente ya tiene ese plan con tarjeta esperando autorización (pending), activo o con un cobro rechazado (past_due), responde 409 con code: prepaid_card_sale_exists, detail: prepaid.card_sale_exists y subscription_id (la venta vigente), sin tocar Mercado Pago; cancelada o vencida no bloquea. Idempotency-Key obligatoria (reintentar con la misma clave devuelve la misma venta): la misma clave con otros datos es 409. Las escrituras de dinero desde MCP exigen confirm=true. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoIdempotency-KeyheaderSimstring Corpo da solicitação (obrigatório) application\u002Fjson: SellPlan Respostas StatusDescrição201Successful Response (SubscriptionView)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3801,"title":3802,"titles":3803,"content":3804,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fprepaid#put-prepaidsubscriptionssubscription_idbenefits","PUT \u002Fprepaid\u002Fsubscriptions\u002F{subscription_id}\u002Fbenefits",[3752],"Pausar o reactivar beneficios Permiso\u002Fscope prepaid:benefits (owner\u002Fmanager). paused=true exige club past_due; paused=false reactiva un club activo o impago. No cambia deuda ni cobra. Idempotente por estado y auditado. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãosubscription_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: BenefitsUpdate Respostas StatusDescrição200Successful Response (SubscriptionView)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3806,"title":3807,"titles":3808,"content":3809,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fprepaid#post-prepaidsubscriptionssubscription_idcancel","POST \u002Fprepaid\u002Fsubscriptions\u002F{subscription_id}\u002Fcancel",[3752],"Cancel Plan Permiso\u002Fscope prepaid:sell; con refund=true también payments:void y payments:record. Cancela con la regla única de ADR 0040 §5.5 (F3-463): no nacen más cuotas y las ya creadas no se tocan (una por cobrar sigue siendo deuda real; se perdona cerrándola sin completar); la respuesta las lista en open_fees. Libera las unidades reservadas por tareas futuras (vuelven a su valor normal). Con refund=true en un paquete o club cobrado en mano, anula los recibos de la cuota del período vigente (abierto y sin vencer) y deja su valor a cobrar en lo ya consumido, cobrado con un recibo nuevo del mismo medio; lo vencido se pierde y no se devuelve. Un recibo que también paga otras tareas da 409 prepaid.refund_shared_receipt y dinero electrónico 409 prepaid.refund_electronic_unsupported (se devuelve desde la tarea); efectivo de un día con caja cerrada, 409 prepaid.refund_cash_closed. Repetir con el mismo motivo es idempotente. Con tarjeta cancela también la suscripción en MP. Membresía con refund=true: 409 prepaid.membership_refund_on_task (lo cobrado se devuelve desde la tarea). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãosubscription_idpathSimstring (uuid)Idempotency-KeyheaderSimstring Corpo da solicitação (obrigatório) application\u002Fjson: CancelPlan Respostas StatusDescrição200Successful Response (SubscriptionView)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3811,"title":3812,"titles":3813,"content":3814,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fprepaid#post-prepaidsubscriptionssubscription_idextend","POST \u002Fprepaid\u002Fsubscriptions\u002F{subscription_id}\u002Fextend",[3752],"Extend Plan Permiso\u002Fscope prepaid:sell (owner\u002Fmanager). Extiende a mano el vencimiento del período vigente de un paquete o club (o del último período de un paquete ya vencido, que vuelve a quedar activo y cubre las tareas confirmadas dentro de la ventana). Al vencer, las unidades no usadas se pierden: no hay crédito ni reembolso del remanente; esta es la única forma de darle más tiempo. ends_at debe ser posterior al vencimiento actual y al momento presente (409 prepaid.extend_not_later); repetir el mismo ends_at no cambia nada. Se extiende el período ya empezado (una cuota siguiente que nació antes de vencer no). Una membresía o un plan cancelado da 409 prepaid.not_extendable. Audita prepaid.period_extended con antes, después y motivo. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãosubscription_idpathSimstring (uuid) Corpo da solicitação (obrigatório) application\u002Fjson: ExtendPlan Respostas StatusDescrição200Successful Response (SubscriptionView)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3816,"title":3817,"titles":3818,"content":3819,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fprepaid#get-prepaidsummary","GET \u002Fprepaid\u002Fsummary",[3752],"Summary Permiso\u002Fscope finance:analyze (owner\u002Fmanager). Ingreso de paquetes y club, sin clientes de prueba: sold_minor (cobrado), consumed_minor (unidades usadas, ingreso reconocido), deferred_minor (unidades por usar de períodos vigentes), expired_minor (no usadas de períodos cerrados o cancelados), refunded_minor y debt_minor (meses de club sin cobrar). Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Respostas StatusDescrição200Successful Response (PrepaidSummary)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)409Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)",{"id":3821,"title":3822,"titles":3823,"content":3824,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fattachments","API · attachments",[],"Operações de attachments do contrato OpenAPI que aceitam uma chave de API.",{"id":3826,"title":3827,"titles":3828,"content":3829,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fattachments#get-bookingsidattachments","GET \u002Fbookings\u002F{id}\u002Fattachments",[3822],"— Adjuntos vigentes del tenant activo y sus recursos autorizados; URLs relativas firmadas ≤300s también exigen la credencial vigente. Nunca storage_key, nombre del cliente ni URL externa. Viewer solo lee. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringlimitqueryNãointeger default 25cursorqueryNãostring Respostas StatusDescrição200Adjuntos más recientes primero (object)defaultError (RFC 9457) (Problem)",{"id":3831,"title":3832,"titles":3833,"content":3834,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fattachments#get-bookingsidattachmentsattachment_id","GET \u002Fbookings\u002F{id}\u002Fattachments\u002F{attachment_id}",[3822],"Leer metadatos privados de una evidencia Scope bookings:read para API keys; tenant y recurso autorizados, misma reserva, evidencia vigente no borrada. Devuelve una nueva URL firmada ligada al actor que también exige credencial vigente; la firma sola nunca autoriza. Sin storage_key ni contenido. Autenticação: Chave de API ou sessão do painelEscopos: bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringattachment_idpathSimstring (uuid) Respostas StatusDescrição200Metadatos para mostrar una referencia UUID del formulario (Attachment)404Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":3836,"title":3837,"titles":3838,"content":3839,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fattachments#get-bookingsidattachmentsattachment_iddownload","GET \u002Fbookings\u002F{id}\u002Fattachments\u002F{attachment_id}\u002Fdownload",[3822],"— Firma ligada al tenant, actor, adjunto y plazo; se revalida credencial\u002Frol\u002Frecurso y retención. Attachment disposition, nosniff, no-store; no redirects ni URLs de terceros. La firma sola no autoriza. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringattachment_idpathSimstring (uuid)expiresquerySimintegersignaturequerySimstring Respostas StatusDescrição200Blob verificado (string)defaultError (RFC 9457) (Problem)",{"id":3841,"title":3842,"titles":3843,"content":3844,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fattachments#get-bookingsidlocation-events","GET \u002Fbookings\u002F{id}\u002Flocation-events",[3822],"— Capturas puntuales vigentes; mismas restricciones de tenant y recurso de la reserva. No rastreo continuo. También figuran en timeline; nunca se incluyen coordenadas en audit ni stage-history. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoidpathSimstringlimitqueryNãointeger default 25cursorqueryNãostring Respostas StatusDescrição200Capturas más recientes primero (object)defaultError (RFC 9457) (Problem)",{"id":3846,"title":3847,"titles":3848,"content":3849,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fbot","API · bot",[],"Operações de bot do contrato OpenAPI que aceitam uma chave de API.",{"id":3851,"title":3852,"titles":3853,"content":3854,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbot#get-bot","GET \u002Fbot",[3847],"Personalidad vigente (owner\u002Fmanager) Autenticação: Chave de API ou sessão do painelEscopos: config:read Respostas StatusDescrição200Configuración; sin fila devuelve defaults y versión 0 (BotConfig)defaultError (RFC 9457) (Problem)",{"id":3856,"title":3857,"titles":3858,"content":3859,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbot#put-bot","PUT \u002Fbot",[3847],"Guardar personalidad versionada (owner\u002Fmanager, CSRF) version opcional permite control optimista (409 bot_version_conflict). Texto del dueño es una preferencia no confiable; nunca cambia reglas, tools ni datos críticos. Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãoX-Csrf-TokenheaderSimstring Corpo da solicitação (obrigatório) application\u002Fjson: BotConfig Respostas StatusDescrição200Guardado (BotConfig)defaultError (RFC 9457) (Problem)",{"id":3861,"title":3862,"titles":3863,"content":3864,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbot#get-botchannel-policies","GET \u002Fbot\u002Fchannel-policies",[3847],"Política del bot por canal (owner\u002Fmanager) Una entrada por canal (webchat, whatsapp); sin fila guardada devuelve los defaults del canal con is_default=true y versión 0. Autenticação: Chave de API ou sessão do painelEscopos: config:read Respostas StatusDescrição200Políticas vigentes (object)defaultError (RFC 9457) (Problem)",{"id":3866,"title":3867,"titles":3868,"content":3869,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbot#put-botchannel-policieschannel","PUT \u002Fbot\u002Fchannel-policies\u002F{channel}",[3847],"Guardar la política de un canal (owner\u002Fmanager, CSRF) version opcional para control optimista (409 channel_policy_version_conflict). contact_gate distinto de never exige required_contact y solo existe en canales con formulario (webchat; 422 en los demás). unknown_contact_policy = filtered no existe en webchat (422 policy_not_available_for_channel). contact_gate_turns solo aplica a after_turns y no puede superar max_bot_turns. Modo de atención (ADR 0056): attention_mode = by_schedule da 422 attention_mode_not_available hasta que existan las franjas. Los textos libres son preferencias no confiables. Auditado (bot.channel_policy_updated, sin copiar el texto). Autenticação: Chave de API ou sessão do painelEscopos: config:write Parâmetros NomeEmObrigatórioTipoDescriçãochannelpathSimstring webchat, whatsapp, telegram, instagramX-Csrf-TokenheaderSimstring Corpo da solicitação (obrigatório) application\u002Fjson: ChannelPolicyIn Respostas StatusDescrição200Guardada (ChannelPolicy)defaultError (RFC 9457) (Problem)",{"id":3871,"title":3872,"titles":3873,"content":3874,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbot#get-botconversationsconversation_idpath","GET \u002Fbot\u002Fconversations\u002F{conversation_id}\u002Fpath",[3847],"Recorrido de una conversación por el árbol de atención (flows:read; API key config:read) Cada tramo de la conversación del bot de clientes (ADR 0040 §4.4, F3-724): por qué rama pasó (y la sub-salida, si el ítem siguió un flujo distinto del habitual) y dónde se cortó: task_created (con el id de la tarea), answered, handoff, abandoned (con el último paso que el bot pidió, p. ej. destination), expired o in_progress. Del tramo más viejo al más nuevo (los últimos 50). Los nombres salen del árbol de hoy. Sin texto del cliente ni datos personales. 404 si la conversación no es de este proyecto. Autenticação: Chave de API ou sessão do painelEscopos: flows:read, config:read Parâmetros NomeEmObrigatórioTipoDescriçãoconversation_idpathSimstring (uuid) Respostas StatusDescrição200El recorrido de la conversación (BotConversationPath)defaultError (RFC 9457) (Problem)",{"id":3876,"title":3877,"titles":3878,"content":3879,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbot#get-botoffer","GET \u002Fbot\u002Foffer",[3847],"Qué ofrece el bot por chat hoy (bot:read; API key config:read) La misma regla que usa el bot (ADR 0047): tipo habilitado en «Qué vende el bot» (sells), ítem con bot_offered y activo; nunca el servicio de sistema de la membresía. Sin cliente ni conversación: no aplica la cobertura por zona del cliente. Sin flow_id\u002Fstage tampoco aplica la etapa del flujo (narrowed_by null). Con flow_id y stage (juntos; uno solo da 422 bot_offer_stage_incomplete) devuelve lo que el bot ofrecería a un cliente con su tarea en esa etapa: el bot_offers de la versión vigente del flujo, con la misma regla que la conversación (solo achica; narrowed_by null si la etapa hereda). Flujo que no es del proyecto o etapa que no está en su versión vigente: 404 (service_stages_not_found, detalle flow_not_found o stage_not_found). stages lista las etapas de los flujos activos cuyo bot_offers achica la lista (vacío: ninguna). Productos: hasta 500 por modalidad de pedido, en el orden del catálogo. Autenticação: Chave de API ou sessão do painelEscopos: bot:read, config:read Parâmetros NomeEmObrigatórioTipoDescriçãoflow_idqueryNãostring (uuid)Flujo de la etapa a previsualizar (con stage).stagequeryNãostringClave de la etapa en la versión vigente del flujo (con flow_id). Respostas StatusDescrição200Lo que el bot ofrece, por tipo (BotOffer)defaultError (RFC 9457) (Problem)",{"id":3881,"title":3882,"titles":3883,"content":3884,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbot#get-bottree","GET \u002Fbot\u002Ftree",[3847],"Árbol de atención del bot (bot:read; API key config:read) La raíz «Atención del bot» y un nivel de ramas (ADR 0040 §4.4, F3-723), calculadas del catálogo, de «Qué vende el bot» (sells), de la base de conocimiento y de los flujos; no se guarda nada. Ramas estándar: services, products, subscriptions (aparecen solas si el negocio tiene algo para ofrecer), faq (si la base de conocimiento tiene algún ítem activo), mine y handoff (siempre); y una rama flow:\u003Cid> por cada flujo por intención activo. Las ramas de catálogo salen de la misma regla del bot (ADR 0047) sin el nivel de «Qué vende el bot», así que una rama pausada se sigue viendo (paused: true). La pausa de services, products y subscriptions es sells (bookings, orders, plans): se escribe con PUT \u002Fbot (permiso bot:configure), el mismo campo que «Qué vende el bot». Una rama propia se pausa con customer_can_start de su flujo. faq, mine y handoff no se pausan (pausable false). exit es la tarea que crea la rama y su flujo (faq, mine y handoff: null); sub_exits, los ítems con un flujo distinto del habitual; sources, de dónde salen los productos (una integración es fuente, no rama). El orden es el que guardó el dueño en la raíz (order, F3-467; PATCH \u002Fflows\u002F{flow_id} con flows:write) o, sin él, el de §4.4; una rama que aparece después entra en su lugar por defecto. El bot usa este mismo orden, sin las pausadas, para la bienvenida, el menú sin IA, la lista cerrada de la elección y customer.offer. Autenticação: Chave de API ou sessão do painelEscopos: bot:read, config:read, flows:write Respostas StatusDescrição200El árbol de atención (BotTree)defaultError (RFC 9457) (Problem)",{"id":3886,"title":3887,"titles":3888,"content":3889,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fbot#get-bottreefunnel","GET \u002Fbot\u002Ftree\u002Ffunnel",[3847],"Embudo de cada rama del árbol de atención (flows:read; API key config:read) Recorrido de las conversaciones por el árbol de atención (ADR 0040 §4.4, «Recorrido de cada conversación», F3-724), por rama, en los últimos days días locales del proyecto (hoy incluido): cuántos tramos entraron, crearon tarea (task_created), se respondieron sin tarea (answered), derivaron a una persona (handoff), se abandonaron (abandoned; también un tramo quieto más de 30 minutos), vencieron (expired, el TTL de la corrida) o siguen en curso, y en qué paso se cortaron los abandonados y vencidos (cuts). Sin pruebas (simulador y clientes de prueba), con el mismo criterio de días que el uso de flujos. Solo vienen las ramas con algún tramo; root cuenta los que no eligieron rama. Sin texto del cliente ni datos personales. Permiso flows:read (owner y manager) mientras no exista el de uso de flujos. Autenticação: Chave de API ou sessão do painelEscopos: flows:read, config:read Parâmetros NomeEmObrigatórioTipoDescriçãodaysqueryNãointeger default 7 Respostas StatusDescrição200El embudo por rama (BotTreeFunnel)defaultError (RFC 9457) (Problem)",{"id":3891,"title":3892,"titles":3893,"content":3894,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Ffeedback","API · feedback",[],"Operações de feedback do contrato OpenAPI que aceitam uma chave de API.",{"id":3896,"title":3897,"titles":3898,"content":3899,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Ffeedback#get-feedbackkindidentifier","GET \u002Ffeedback\u002F{kind}\u002F{identifier}",[3892],"Consultar evaluación Tenant desde credencial. Owner configura\u002Frevoca; owner\u002Fmanager consultan todas las entidades; staff solo tareas\u002Frecursos propios. Scopes config:read para GET settings, settings:write para PUT\u002FDELETE y bookings:read para indicadores. API keys no leen comentarios privados. Una puntuación baja agrega la etiqueta revisar-evaluacion (requiere revisión en Hoy) y emite feedback_low para owner\u002Fmanager; canales por defecto panel\u002Fpush\u002FTelegram\u002Femail, con preferencias y silencio. Promedio desde 3 respuestas como mínimo, escala 0-100; tendencia compara 30 días con los 30 anteriores. Autenticação: Chave de APIEscopos: config:read, settings:write, bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãokindpathSimstring booking, service, customer, resourceidentifierpathSimstring (uuid) Respostas StatusDescrição200Successful Response (FeedbackSummary)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)413Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)503Error (RFC 9457) (Problem)",{"id":3901,"title":3902,"titles":3903,"content":3904,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Ffeedback#delete-feedbackbookingidentifier","DELETE \u002Ffeedback\u002Fbooking\u002F{identifier}",[3892],"Revocar enlace de evaluación Tenant desde credencial. Owner configura\u002Frevoca; owner\u002Fmanager consultan todas las entidades; staff solo tareas\u002Frecursos propios. Scopes config:read para GET settings, settings:write para PUT\u002FDELETE y bookings:read para indicadores. API keys no leen comentarios privados. Una puntuación baja agrega la etiqueta revisar-evaluacion (requiere revisión en Hoy) y emite feedback_low para owner\u002Fmanager; canales por defecto panel\u002Fpush\u002FTelegram\u002Femail, con preferencias y silencio. Promedio desde 3 respuestas como mínimo, escala 0-100; tendencia compara 30 días con los 30 anteriores. Autenticação: Chave de APIEscopos: config:read, settings:write, bookings:read Parâmetros NomeEmObrigatórioTipoDescriçãoidentifierpathSimstring (uuid) Respostas StatusDescrição204Operación realizada400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)413Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)503Error (RFC 9457) (Problem)",{"id":3906,"title":3907,"titles":3908,"content":3909,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Ffeedback#get-feedbacksettings","GET \u002Ffeedback\u002Fsettings",[3892],"Consultar evaluación Tenant desde credencial. Owner configura\u002Frevoca; owner\u002Fmanager consultan todas las entidades; staff solo tareas\u002Frecursos propios. Scopes config:read para GET settings, settings:write para PUT\u002FDELETE y bookings:read para indicadores. API keys no leen comentarios privados. Una puntuación baja agrega la etiqueta revisar-evaluacion (requiere revisión en Hoy) y emite feedback_low para owner\u002Fmanager; canales por defecto panel\u002Fpush\u002FTelegram\u002Femail, con preferencias y silencio. Promedio desde 3 respuestas como mínimo, escala 0-100; tendencia compara 30 días con los 30 anteriores. Autenticação: Chave de APIEscopos: config:read, settings:write, bookings:read Respostas StatusDescrição200Successful Response (FeedbackSettings)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)413Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)503Error (RFC 9457) (Problem)",{"id":3911,"title":3912,"titles":3913,"content":3914,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Ffeedback#put-feedbacksettings","PUT \u002Ffeedback\u002Fsettings",[3892],"Configurar evaluaciones (owner) Tenant desde credencial. Owner configura\u002Frevoca; owner\u002Fmanager consultan todas las entidades; staff solo tareas\u002Frecursos propios. Scopes config:read para GET settings, settings:write para PUT\u002FDELETE y bookings:read para indicadores. API keys no leen comentarios privados. Una puntuación baja agrega la etiqueta revisar-evaluacion (requiere revisión en Hoy) y emite feedback_low para owner\u002Fmanager; canales por defecto panel\u002Fpush\u002FTelegram\u002Femail, con preferencias y silencio. Promedio desde 3 respuestas como mínimo, escala 0-100; tendencia compara 30 días con los 30 anteriores. Autenticação: Chave de APIEscopos: config:read, settings:write, bookings:read Corpo da solicitação (obrigatório) application\u002Fjson: FeedbackSettings Respostas StatusDescrição200Successful Response (FeedbackSettings)400Error (RFC 9457) (Problem)401Error (RFC 9457) (Problem)403Error (RFC 9457) (Problem)404Error (RFC 9457) (Problem)413Error (RFC 9457) (Problem)422Error (RFC 9457) (Problem)429Error (RFC 9457) (Problem)503Error (RFC 9457) (Problem)",{"id":3916,"title":3917,"titles":3918,"content":3919,"level":257},"\u002Fdocs\u002Fapi\u002Freference\u002Fhelp","API · help",[],"Operações de help do contrato OpenAPI que aceitam uma chave de API.",{"id":3921,"title":3922,"titles":3923,"content":3924,"level":263},"\u002Fdocs\u002Fapi\u002Freference\u002Fhelp#get-helpsearch","GET \u002Fhelp\u002Fsearch",[3917],"Buscar en la ayuda de Fiuit (guías, «¿Qué pasa si…?» y políticas de producto) FIU-397. La misma búsqueda que usa Wagy: guías de uso del sitio, preguntas frecuentes y el registro de políticas de producto, para que cualquier IA conectada entienda cómo funciona Fiuit. No lee datos del negocio. Sesión con cualquier rol o cualquier API key. Con API key solo salen las políticas vigentes (available=true). documented=false: la ayuda no lo cubre; no inventar pasos ni reglas. Autenticação: Chave de API ou sessão do painelEscopos: Nenhum Parâmetros NomeEmObrigatórioTipoDescriçãoqquerySimstringLa pregunta con sus palabras (incluir «cómo» si es cómo hacer algo).localequeryNãostring pt, es, enIdioma de las guías y respuestas; sin él, el del proyecto.limitqueryNãointeger default 4 Respostas StatusDescrição200Secciones de guía, preguntas frecuentes y políticas que responden la consulta (HelpSearchResult)422Error (RFC 9457) (Problem)defaultError (RFC 9457) (Problem)",{"id":214,"title":213,"titles":3926,"content":3927,"level":257},[],"Conecte Claude, ChatGPT ou seu próprio agente ao servidor MCP da Fiuit para buscar horários, agendar e operar o negócio com sua chave de API. A Fiuit inclui um servidor MCP (Model Context Protocol) para que os agentes de IA usem o mesmo motor do bot de WhatsApp: mesmas pré-reservas, mesma validação e mesmo registro de auditoria. O servidor é um cliente fino da API: cada ferramenta chama a API com a sua mesma chave, então o MCP nunca dá mais permissões do que a chave. O servidor hospedado é https:\u002F\u002Fmcp.fiuit.com\u002F (https:\u002F\u002Fmcp.fiuit.com\u002Fmcp é o mesmo endereço). Para conectar o Claude ou o ChatGPT com um botão, sem copiar chaves, siga Conectar o Fiuit à sua IA. O que vem a seguir é para conectá-lo com uma chave de API ou executá-lo você mesmo.",{"id":3929,"title":3930,"titles":3931,"content":3932,"level":263},"\u002Fdocs\u002Fmcp#material-do-partner","Material do partner",[213],"O conjunto partner inclui partner_courses, partner_kit e partner_news: cursos revisados, mensagens e modelos com seu link de indicação e novidades prontas para compartilhar. As três ferramentas são de leitura, aceitam lang (pt, es ou en) e só aparecem com o scope partner:read. Funcionam com chave de API ou conexão OAuth. Leem o partner de quem criou a chave ou autorizou a conexão, enquanto continuar sendo membro ativo do projeto. Se ainda não houver cursos revisados, a lista vem vazia; o progresso fica no navegador e não pode ser consultado pelo MCP.",{"id":3934,"title":3935,"titles":3936,"content":3937,"level":263},"\u002Fdocs\u002Fmcp#executar-o-servidor","Executar o servidor",[213],"Você precisa de Python 3.12+ e uv. cd packages\u002Fmcp\nuv sync\nWAGEND_API_URL=https:\u002F\u002Fapi.fiuit.com MCP_PORT=8700 uv run python -m wagend_mcp\n# escucha en http:\u002F\u002F127.0.0.1:8700\u002F (Streamable HTTP) Variáveis: VariávelPara quêWAGEND_API_URLURL da API (padrão https:\u002F\u002Fapi.fiuit.com)MCP_TOOLSETSConjuntos a expor: booking, admin, tasks, payments, customers, inbox, finance, partner e setup (configuração pouco usada: serviços, recursos, horários, fluxos, automações, site, loja, zonas e contas de cobrança). Padrão: os nove; sem setup a lista cai para umas 130 ferramentasMCP_HOST, MCP_PORTOnde escuta (padrão 127.0.0.1:8700)MCP_ALLOWED_HOSTSHosts permitidos (proteção contra DNS rebinding)",{"id":3939,"title":3940,"titles":3941,"content":3942,"level":263},"\u002Fdocs\u002Fmcp#conectar-um-cliente","Conectar um cliente",[213],"A autenticação é uma chave de API no header Authorization. Sem uma chave com formato válido, o servidor responde 401 antes de entrar no protocolo. Com o Claude Code: claude mcp add --transport http wagend http:\u002F\u002F127.0.0.1:8700\u002F \\\n  --header \"Authorization: Bearer wg_live_xxx\" Ou com a configuração JSON de qualquer cliente que suporte HTTP: {\n  \"mcpServers\": {\n    \"wagend\": {\n      \"type\": \"http\",\n      \"url\": \"http:\u002F\u002F127.0.0.1:8700\u002F\",\n      \"headers\": { \"Authorization\": \"Bearer wg_live_xxx\" }\n    }\n  }\n} Para testar sem um agente: npx @modelcontextprotocol\u002Finspector (transporte Streamable HTTP, a mesma URL e o header).",{"id":3944,"title":3945,"titles":3946,"content":3947,"level":263},"\u002Fdocs\u002Fmcp#mcp-público-para-os-assistentes-de-ia-dos-seus-clientes","MCP público para os assistentes de IA dos seus clientes",[213],"Além do MCP do negócio (com chave), a Fiuit publica um MCP sem chave para os assistentes de IA das pessoas (ChatGPT, Claude, Gemini e outros): https:\u002F\u002Fmcp.fiuit.com\u002Fclientes. Com ele, um assistente pode encontrar o seu negócio, ver o que o seu bot oferece e pedir um horário para uma pessoa real. claude mcp add --transport http fiuit-clientes https:\u002F\u002Fmcp.fiuit.com\u002Fclientes FerramentaO que fazfind_businessBusca por nome ou subdomínio exato, ou por texto do diretório («padel Uruguaiana»). Até 10 resultados por página e 3 páginas, em ordem neutra: proximidade, horário livre nesse dia e aberto agora.list_offerO que o bot oferece, com preços já formatados.find_slotsHorários livres de um serviço.quote_orderCota um pedido de produtos: cada linha com seu preço e o total, já formatados. Só cota (não reserva nem pede nada); para mudar o carrinho, cota de novo. Só nos negócios que a têm habilitada.my_assetsOs bens da pessoa (o veículo dela), só numa conversa verificada. Só lê: para salvar ou corrigir um, a pessoa conta ao negócio pelo talk_to_business. Só tipos que o negócio já ativou. Só nos negócios que têm isso habilitado.request_bookingReserva o horário por alguns minutos e manda para a pessoa um código por WhatsApp (padrão), Telegram ou email.confirm_bookingConfirma com o código que a pessoa recebeu. Sem o código, o horário é liberado sozinho.talk_to_businessConversa com o bot do negócio, como pelo WhatsApp. Devolve conversation para continuar a conversa e a resposta com valores e datas já formatados.end_conversationEncerra a conversa antes de vencer, se a pessoa pedir: o que vier depois começa sem os dados dela.search_knowledgeResponde perguntas sobre o seu negócio com o que diz a sua base de conhecimento.handoffPassa a conversa para uma pessoa da sua equipe quando o cliente pede.request_taskPede um serviço sem horário (uma avaliação, um orçamento) em nome da pessoa, só depois que ela confirmou um código na conversa.my_bookingsMostra as reservas e pedidos abertos da pessoa, só depois que ela confirmou um código na conversa.cancel_booking, reschedule_bookingPedem para cancelar ou mudar o horário de uma reserva da pessoa: chega um código novo e só com ele é feito. O assistente nunca confirma sozinho: sempre é preciso o código que chega para a pessoa. Só aparecem negócios com o site publicado e «Aceitar agentes de IA» ligado; o diretório mostra só os que também têm «Aparecer no diretório da Fiuit». Os dois vêm ligados e mudam com update_site (accept_agents, in_directory), pela API (PATCH \u002Fv1\u002Fsite) ou pedindo para o Wagy. Produtos e planos são pedidos pelo site do negócio. As mesmas rotas estão na API sem credencial: \u002Fv1\u002Fpublic\u002Fagents\u002F*. Conversar com o bot (talk_to_business). Responde o mesmo bot do WhatsApp, com as suas regras: o que vende, as etapas, a passagem para uma pessoa, o tom e a saudação. A conversa aparece no Inbox marcada «Via IA» e a sua equipe pode assumir; se assumir, o assistente lê a resposta da pessoa. Para reservar um horário o assistente precisa mandar o nome e o telefone (ou o email) da pessoa: o «sim» ao resumo não confirma, a pessoa recebe um código e a reserva só fica com confirm_booking. Até a pessoa confirmar um código na conversa, pedir sem horário, cancelar ou remarcar não se faz por um assistente. Cada conversa gasta uso de IA do seu plano, como qualquer canal. Rotas na API: POST \u002Fv1\u002Fpublic\u002Fagents\u002Fbusinesses\u002F{business}\u002Fconversations e ...\u002Fconversations\u002F{conversation_id}\u002Fmessages (POST para mandar, GET para ler, com espera opcional). Sessão verificada. Quando a pessoa confirma o código de uma reserva pedida na conversa, a conversa não é cortada: continua 24 horas na ficha dela (verified_until). O bot cumprimenta pelo nome e conhece as reservas, pedidos e planos dela (a dívida, só o total). Reservar ou pedir de novo sem cobrança não pede outro código; cancelar, remarcar e pagar pedem um novo a cada vez, que chega ao contato que a pessoa confirmou e se usa em confirm_booking. A conversa não renova as 24 horas: só outro código confirmado. Depois desse prazo, ou numa conversa nova, o assistente começa sem dados da pessoa; com end_conversation (DELETE ...\u002Fconversations\u002F{conversation_id}) a pessoa encerra antes.",{"id":3949,"title":3950,"titles":3951,"content":3952,"level":263},"\u002Fdocs\u002Fmcp#ferramentas","Ferramentas",[213],"As ferramentas de tarefas e cobranças só aparecem na lista se a chave tiver o scope de que precisam (uma chave sem permissões de cobrança não as vê nem pode usá-las). Nas demais, cada uma só funciona se a chave tiver o scope; caso contrário, devolve o erro 403 da API. As escritas ficam auditadas com ator mcp. Cada ferramenta traz suas anotações MCP: readOnlyHint (só lê), destructiveHint (cancela, apaga, anula ou devolve dinheiro), idempotentHint e openWorldHint (escreve para um cliente, cobra com um provedor ou publica na internet). Assim o ChatGPT e o Claude sabem o que podem usar sem pedir confirmação. Ao conectar, o servidor se apresenta como Fiuit e diz ao modelo por onde começar (list_today, list_tasks, list_conversations). Agendamentos (booking): para assistentes que agendam em nome de um cliente. FerramentaScopeFazlist_servicesconfig:readServiços com duração e preçofind_slotsslots:readHorários disponíveis de um serviço entre duas datas ou de um dia de abertura (day, inclui a noite depois das 00:00)hold_slotbookings:writePré-reserva de 10 minutosconfirm_bookingbookings:writeConfirma uma pré-reserva com os dados do clientecancel_bookingbookings:writeCancela um agendamento. Exige confirm=true: sem ele só mostra o agendamento e não cancelareschedule_bookingbookings:writeMove um agendamento existente para outro horárioget_bookingbookings:readDetalhe de um agendamento Administração (admin): para o Dono operar o negócio pelo seu assistente de IA. FerramentaScopeFazlist_resourcesconfig:readEquipe, salas, máquinas e equipes, com o ícone e a cor, se tiveremlist_todaybookings:readAgendamentos do diablock_timeconfig:write e bookings:readFecha dias inteiros de um recurso (máx. 31). Não cancela agendamentos existentes: devolve-os para uma pessoa decidirlist_service_pausesconfig:readLista as pausas por datas de um serviçopause_serviceconfig:writePausa um serviço de uma data a outra (inclusive) sem bloquear os recursos que o atendem: os outros serviços deles seguem sendo oferecidosresume_serviceconfig:writeReabre um serviço pausado em um intervalo de datascreate_service, update_serviceconfig:writeCria ou altera um serviço, com seu formulário de agendamentoupdate_scheduleconfig:writeAltera o horário semanal ou o fuso horáriolist_booking_series, get_booking_seriesbookings:readHorários fixos (agendamentos que se repetem, «toda terça às 20:00») e suas datas: com tarefa, puladas ou com conflitocreate_booking_seriesbookings:writeCria um horário fixo: mesmo serviço e cliente a cada 1 a 4 semanas, em um ou vários dias, até uma data (máx. um ano) ou um número de vezes (máx. 52). Cada data é uma tarefa normal cobrada nesse dia. Sem confirm=true devolve a prévia (datas das próximas 8 semanas e quais têm conflito); as com conflito são puladas com skip_dates ou skip_conflictsupdate_booking_series, cancel_booking_seriesbookings:writeEdita ou cancela a série toda ou, com from_date, «esta e as seguintes». As datas futuras não iniciadas nem cobradas são refeitas (ou canceladas sem aviso); o passado ou cobrado não muda. «Só esta» é reschedule_booking ou cancel_booking dessa tarefa. Exigem confirm=trueget_coverageconfig:readCobertura do negócio: zonas ativas e o que acontece com o que fica de fora (out_of_coverage)set_coverageconfig:writeEscolhe o que fazer fora da cobertura (também com uma entrega que não chega a essa zona): out_of_coverage = take (aceitar e avisar) ou reject (não aceitar)get_statsbookings:readAgendamentos, ocupação e faltas por recurso; por padrão só pessoas, com quadras ou lugares passe kind=allget_control_summarybookings:read (conversas com messages:read, valores com finance:analyze)«Como estamos?»: atenção agora, tarefas em andamento por etapa, números do período (vendido, recebido, a receber) e saturação por dia da semana e hora. Filtros opcionais date_from\u002Fdate_to (padrão hoje), service_id e resource_id. Somente leitura; o que a key não pode ver chega null As etapas são contadas por serviço e pelo estado real da tarefa. Recebido usa a data do pagamento, mesmo se o trabalho pertence a outro dia; pagamentos em análise são os pendentes atuais, inclusive de tarefas sem data. Cada resposta mantém uma única visão temporal do projeto.list_flows, get_flow, list_flow_versions, get_flow_versionconfig:readFluxos (o percurso de etapas que os serviços escolhem), seus serviços, saídas e requisitos; histórico de versõesvalidate_flowsettings:writeValida sem gravar; devolve impact com as tarefas a mover e shared_withsimulate_flowsettings:writeSimulado de entrada de um fluxo por intenção: onde cai cada frase de entry (a enviada, sem salvar) e se colide; usa a IA do projeto nas frases que as palavras-chave não decidemcopy_flowsettings:writeCopia um fluxo (também de sistema) em um próprio e independente com outro nome, após a confirmação; nenhum serviço mudacustomize_flowsettings:writeEdita um fluxo de sistema na cópia própria do negócio (a cria na primeira vez e passa para ela os serviços que usavam a base), após a confirmaçãorestore_flowsettings:write«Voltar ao original» a partir da cópia própria: os serviços voltam ao fluxo de sistema e as tarefas abertas terminam com a versão que tinhamdelete_flowsettings:writeApaga um fluxo sem uso e sem tarefas, após a confirmaçãocreate_flow, update_flowsettings:writeCriam um fluxo ou publicam uma versão após prévia e confirmação; publicar move as tarefas de todos os serviços do fluxo. Cada etapa pode trazer bot_offers (o que o bot oferece enquanto a tarefa está ali; um item inexistente dá 422 bot_offer_unknown_item)revert_flowconfig:read + settings:writeCria outra versão a partir da escolhida; preserva o históricoget_flow_examples, get_base_states, get_flow_message_catalogconfig:readExemplos de fluxo para copiar, estados fixos do motor e as variáveis protegidas com o texto padrão da mensagem ao cliente de cada etapaget_flow_usagebookings:readQuanto cada fluxo é usado: sem flow_id, as tarefas que entraram nos últimos 7 dias contra os 7 anteriores; com flow_id, entradas e concluídas por dia e as tarefas abertas por etapa com a espera média (bottleneck, a etapa que mais trava). Somente leitura.get_business_traits, set_business_traitsconfig:read \u002F settings:writeCaracterísticas do negócio (do catálogo fechado: «agenda do local», «com espaços», «vende produtos»…) e o rótulo livre do ramo, só informativo. Salvar substitui a lista e o rótulo após a confirmação; omitir business_label ou enviar null apaga o rótulo. Para mantê-lo, consulte get_business_traits e envie o rótulo ao salvar; não muda as regras de reserva nem a agendaget_item_performancebookings:read (serviço, produto); prepaid:read (plano)Desempenho de um serviço, produto ou pacote\u002Fclube em quantidades (concluídas, unidades, vendidos, ativos hoje) por dia, semana ou mês, com o período anterior. Com uma chave são os totais do negócio (scope: business). Nunca traz valores: eles ficam no Financeiro. Tarefas (tasks): tarefas com e sem horário, as \"a agendar\" e a fila. FerramentaScopeFazlist_tasksbookings:read (e payments:read_balance se pedir saldo)Lista tarefas por estado, a agendar (scheduling_state=pending), sem atribuição (unassigned=true), atrasadas (late=true), fila, origem (origin=conversation é o pedido pelo chat) e, opcionalmente, com o saldo e filtro por estado de pagamento da página. Com flow_id deixa as tarefas de um fluxo e com group_by (stage, status, resource, priority, type, tag, day, zone, customer ou flow) soma as contagens por grupo; com group_by=stage e flow_id traz todas as etapas do fluxo em ordem, como as colunas do Quadro do painel; statuses e resource_ids filtram por «qualquer um destes» estados ou recursos antes de paginar; group_by=tag expõe o texto livre das etiquetas e exige include_sensitive=true com customers:read; match aplica os critérios de uma visualização do Trabalho: vários estados, uma data com seu campo e um período relativo (hoje, mês passado, últimos N dias…) resolvido no fuso do projeto, e grupos «ou» (any_of)create_taskbookings:writeCria uma tarefa com horário, de fila ou a agendar sem horário (schedule_later=true); com flow_id de um fluxo por intenção, uma tarefa sem serviço (reclamação, orçamento), sem horário nem valor; com internal=true, uma tarefa da equipe sem cliente (de um serviço sem preço)schedule_taskbookings:writeDá horário a uma tarefa sem horário, ou muda o que ela tem; a API valida a disponibilidadeassign_taskbookings:writeAtribui pessoas ou recursos a uma tarefalist_task_linesbookings:readItens da tarefa, seus dois blocos (serviços e produtos) e a margem (só com permissão de custos)add_task_linebookings:writeSoma um serviço ou produto do catálogo, ou um item livre com preço e custo opcional; aumenta o valor a cobrar, exige confirm=trueedit_task_linebookings:writeCorrige quantidade, custo e, num item livre, nome e preço; exige confirm=trueremove_task_linebookings:writeTira um item e reduz o valor a cobrar (nunca abaixo do já cobrado); exige confirm=trueaccept_work_item_offerbookings:writeAceita uma oferta («Oferecer…») da etapa atual da tarefa (vêm em offers no detalhe da tarefa): um produto entra nessa tarefa com o preço do catálogo e aumenta o valor a cobrar; um serviço cria outra tarefa, independente, para o mesmo cliente. Exige confirm=true; nunca aceita um preço As ferramentas de itens mantêm identificadores, quantidades e valores na resposta mínima. Para ver nomes e unidades, use include_sensitive=true com o escopo de leitura indicado. Se alterarem o total de um orçamento aceito, podem enviar uma revisão ao cliente; por isso exigem confirmação. Cobranças (payments): cobranças manuais e saldos. Os saldos são sempre calculados pela API; o MCP não soma nem subtrai. FerramentaScopeFazrecord_paymentpayments:recordRegistra uma cobrança manual (dinheiro, cartão, transferência, Pix, Mercado Pago ou outro; a forma de pagamento é obrigatória e fica na auditoria), opcionalmente dividida entre tarefasvoid_paymentpayments:voidAnula uma cobrança, com motivo obrigatórioexpense_categoriesexpenses:readAs 11 categorias de despesa do projeto (nomes fixos, tipo e se está oculta). «Comissões da equipe» é uma linha calculada: não se lança à mãoexpense_listexpenses:readDespesas lançadas por período, categoria ou recurso; total_minor é somado pela API (só aprovadas: sem pendentes, recusadas, anuladas nem de teste; status filtra por estado). Com tag_id, só as despesas com essa etiqueta: o total não se soma com o de outra etiqueta, porque uma despesa pode ter várias. Sem recurso, a despesa é «Geral»expense_recordexpenses:recordLança uma despesa na moeda do projeto (data local, nunca futura). Exige confirm=true; se o valor for alto para o negócio (a partir do dobro do valor mensal do plano), também confirm_high_amount=true, uma segunda confirmação da pessoa. Aceita tags (etiquetas por nome; as novas são criadas) e, sem category_id, usa a categoria que a primeira etiqueta que tiver uma lembra (se nenhuma, 409 expense.category_required)expense_voidexpenses:voidAnula uma despesa com motivo; uma despesa nunca é apagada. Exige confirm=trueexpense_tagsexpenses:readAs etiquetas de despesas do projeto («moto», «loja centro»), as mais usadas primeiro, com a categoria que cada uma lembra e quantas despesas a têmexpense_tag_renameexpenses:recordRenomeia uma etiqueta; se outra já tem esse nome, junte-as com expense_tag_merge. Exige confirm=trueexpense_tag_mergeexpenses:recordJunta duas etiquetas: as despesas de uma passam para a que fica e a outra é apagada. Não dá para desfazer. Exige confirm=trueexpense_tag_deleteexpenses:recordApaga uma etiqueta e a tira das despesas; as despesas não mudam. Exige confirm=trueexpense_pendingexpenses:approveQuantas despesas lançadas pela equipe aguardam aprovação e quanto somam (sem as de teste)expense_historyexpenses:readHistórico de uma despesa: quem, quando e o que mudou (antes e depois). Não há fechamento do mêsexpense_getexpenses:readUma despesa: valor, categoria, data, status (aprovada, pendente, recusada ou anulada), comprovante e revisão. É o detalhe de uma despesa em Movimentaçõesexpense_approveexpenses:approveAprova uma despesa pendente da equipe: a partir de agora soma. Ninguém aprova o que lançou. Exige confirm=trueexpense_rejectexpenses:approveRecusa uma despesa pendente com motivo; fica recusada e não soma. Exige confirm=truerecurring_expense_listexpenses:readDespesas que se repetem (aluguel, salários fixos), com a próxima data e se estão ativas, pausadas ou encerradasrecurring_expense_createexpenses:recordCria uma despesa que se repete toda semana ou todo mês; a Fiuit lança sozinha em cada data, uma única vez. Exige confirm=truerecurring_expense_updateexpenses:recordMuda o valor ou o dia, pausa ou retoma, ou encerra, daqui em diante. Exige confirm=truerecurring_expense_skipexpenses:recordPula a próxima data sem lançar a despesa. Exige confirm=trueapply_refund_due_to_accountpayments:adjust«Usar para outra dívida»: um pagamento tardio separado «a devolver» (refund_due) passa ao saldo do cliente e cobre as dívidas mais antigas. Exige confirm=true; a API recusa com uma reclamação aberta no Mercado Pagorefund_paymentpayments:refundDevolve ao cliente (total ou parcial) uma cobrança do Mercado Pago, com motivo; sem valor, tudo o que resta. Exige confirm=true com a chave da prévia: repeti-la não devolve duas vezes e nunca se devolve mais do que o recebido. Responde succeeded, failed (o Mercado Pago recusou), pending (é tentada de novo sozinha, consultando antes o Mercado Pago) ou review (o Mercado Pago não confirmou: não é pedida de novo, o valor fica reservado e Dono\u002FGerente recebe um aviso). Só Dono\u002FGerenteget_payment_refundspayments:refundDevoluções de uma cobrança: o devolvido, o que está em andamento e o que ainda pode ser devolvido (ou por que não)charge_fiscal_getpayments:fiscalMarcador fiscal de uma cobrança e notas do emissor do negócio, se houver. A Fiuit nunca emite notas. Só Dono\u002FGerentecharge_fiscal_markpayments:fiscalMarca se uma cobrança leva nota: não exige, pendente ou emitida fora da Fiuit (com número e data). Só cobranças com dinheiro recebido. Exige confirm=true. Só Dono\u002FGerenteget_task_balancepayments:read_balanceSaldo de uma tarefa e, se quiser, seu histórico de cobrançasget_customer_accountcustomer_balance:read (e customer_account:read para o detalhe)Conta corrente do cliente: saldo, pagamentos antecipados e dívidas; com include_movements=true, detalhe por tarefa e cobrançasget_commissionscommissions:readComissões da equipe calculadas pela API sobre o recebido: com day, o dia por pessoa (recebido por meio, gorjetas, comissão, ajustes e caixa); sem day, o relatório entre start e end. refund_amount_unavailable lista as tarefas com reembolso parcial sem valor informado, que ainda contam inteiras. Somente leituraget_commission_settlementscommissions:readFechamentos de comissões de um período: valores congelados, ajustes automáticos que já congelaram de outros períodos e o pendente de passar ao próximo período aberto. Somente leiturasettle_commissionscommissions:settle«Fechar comissões»: congela o período de uma pessoa em um lançamento que não é reescrito, com motivo. Uma mudança posterior (anulação, devolução ou regra) vira ajuste automático no primeiro dia ainda aberto. Fechar de novo o mesmo período devolve o mesmo lançamento. Exige confirm=truefinance_overviewfinance:analyzeResumo de Finanças calculado pela API: Entrou, Saiu e Ficou realizados de 2 períodos anteriores e do atual, e o que falta do atual e do seguinte, certo (já recebido, despesas fixas) ou previsto (saldo sem pagar, comissão da equipe estimada, despesas aguardando aprovação). Só coisas com data.finance_resultfinance:analyzeResultado em regime de caixa calculado pela API: Entrou (recebido menos devolvido), Saiu (despesas aprovadas, comissões da equipe e taxas de cobrança informadas) e Ficou, com margem e o período anterior, por período, recurso, serviço ou categoria. Despesas sem recurso ou serviço ficam como «Geral», sem rateio. missing_expenses avisa que entrou dinheiro e não há despesas lançadas. Somente leiturafinance_result_linesfinance:analyzeDo que se compõe um número do Resultado: os recebimentos, devoluções, taxas de cobrança, comissões da equipe e despesas aprovadas que ele soma, com valor com sinal, dia, categoria, recurso, serviço, pessoa e cliente. Abre-se uma linha (row, «Geral» com general), Entrou ou Saiu (side) ou um tipo (kind); total_minor é o número aberto mesmo que a lista seja cortada em limit. Somente leituraexport_finance_result_csvfinance:analyze e finance:exportExporta o Resultado do período como CSV para o contador: um movimento por linha (cobrança, devolução, taxa de cobrança, comissão da equipe ou despesa) com categoria, recurso, serviço, pessoa, cliente, valor legível e valor em unidade menor com sinal; a soma é o que ficou. Mesmo separador e decimais do Excel no país da moeda. Até 50.000 movimentos. O Excel de 7 abas é baixado pela API REST. Fica registradocreate_finance_package · list_finance_packages · get_finance_packagefinance:analyze e finance:exportPede o pacote para o contador do período (Excel de 7 abas e resumo em PDF de uma página, com os mesmos números do Resultado) e consulta o seu estado. Se for pequeno volta pronto com um link de download que vale 5 minutos; se for grande é montado à parte. Com chave de API não inclui as fotos dos comprovantes: essas só são baixadas pelo painel. O arquivo vence em 48 horas. Fica registrado | list_prepaid_plans | prepaid:read | Pacotes (N sessões com validade), planos de clube (N por mês) e assinaturas (preço fixo por mês, sem contar usos) do catálogo, com preço, valor por unidade e limite por dia\u002Ffaixa |\n| get_customer_plans | prepaid:read | Pacotes, clube e assinaturas de um cliente: unidades restantes, reservadas, validade e mensalidade pendente. Cada período é uma parcela, uma tarefa que se cobra (period.booking_id); open_fees traz as parcelas a cobrar (tarefa, vencimento e valor) e next_due_at o próximo vencimento. active = em dia, past_due = alguma parcela vencida sem pagar. Pagar uma parcela = cobrar a tarefa dela (record_payment com esse booking_id); não há ferramenta à parte |\n| sell_prepaid_plan | prepaid:sell e payments:record | Vende um plano cobrado na hora (dinheiro, cartão, transferência, Pix, Mercado Pago ou outro; a forma de pagamento fica na auditoria). Sem cobrar (unpaid=true), a parcela 1 fica A cobrar e é cobrada como qualquer tarefa (record_payment com o seu booking_id), como as parcelas seguintes. Um clube ou assinatura com cartão é vendido com o e-mail do cliente (payer_email), só se list_prepaid_plans trouxer card_billing_available=true: fica aguardando autorização e devolve checkout_url, o link do Mercado Pago para o cliente autorizar o cartão (para isso basta prepaid:sell). Se o cliente já tem esse plano com cartão vigente, responde 409 prepaid_card_sale_exists com o subscription_id dessa venda: não se vende outra. Exige confirm=true |\n| cancel_prepaid_plan | prepaid:sell (reembolso: também payments:void e payments:record) | Cancela: não nascem mais parcelas e as já criadas não mudam (uma em aberto continua sendo dívida; a resposta as traz em open_fees); libera as sessões de tarefas futuras. Com refund=true devolve o não consumido da parcela do período vigente de um plano cobrado na hora (o vencido se perde). Exige confirm=true |\n| extend_prepaid_plan | prepaid:sell | Estende manualmente a validade de um pacote ou clube (ou reabre um pacote vencido). Ao vencer, o não usado se perde. Exige confirm=true |\n| remove_task_plan | prepaid:sell | Tira o plano de uma tarefa: libera a unidade e a tarefa volta ao valor normal. Necessário antes de trocar o cliente ou o serviço. Exige confirm=true | cancel_booking também exige confirm=true: sem ele devolve o agendamento e confirmation_required, e não cancela nada. Mostre o agendamento à pessoa antes de repetir a chamada com confirm=true.record_payment e void_payment movimentam dinheiro: exigem confirm=true e, sem ele, não executam a operação monetária (o protocolo pode consultar GET \u002Fme). Passe sempre idempotency_key para tentar de novo sem cobrar duas vezes; os limites de valor e a detecção de duplicados são os da API. received_by é a associação de quem recebeu o dinheiro: com uma chave de API é obrigatório.expense_record, expense_void, expense_approve, expense_reject e os recurring_expense_* que escrevem também são dinheiro: exigem confirm=true e idempotency_key. Renomear, juntar e apagar etiquetas não movem dinheiro, mas também exigem confirm=true (sem idempotency_key). Para corrigir uma despesa a partir de um agente, anule e lance de novo; a edição com histórico é feita no painel. A foto ou o PDF do comprovante de uma despesa não passa pelo MCP nem por uma chave de API: é anexado com a sessão do painel. A preparação sem confirm devolve idempotency_key; a confirmação exige essa chave ou uma do agente (1-128 caracteres). Reutilize a mesma chave, destino e payload em todas as tentativas, mesmo quando a resposta se perder. Uma operação nova exige outra chave, mesmo com uma cobrança idêntica. Por padrão, list_tasks omite contatos, endereço exato, coordenadas, notas e formulário. include_sensitive=true solicita o detalhe e exige também customers:read. Os movimentos de get_customer_account e o histórico de get_task_balance omitem nomes dos recebedores, notas e motivos; o mesmo parâmetro exige também payments:read. Chaves mode=test só veem ferramentas de leitura. As escritas de configuração, de tarefas e de cobranças exigem confirm=true. Sem ele, a ferramenta não executa a escrita (pode consultar dados para a prévia): devolve confirmation_required com o que enviaria, para o agente mostrar a uma pessoa e repetir com a confirmação.",{"id":3954,"title":3955,"titles":3956,"content":3957,"level":263},"\u002Fdocs\u002Fmcp#conexão-com-oauth-permissões-e-ferramentas-que-não-aparecem","Conexão com OAuth: permissões e ferramentas que não aparecem",[213],"Quando o dono conecta o Claude ou o ChatGPT (veja Conecte sua IA), a IA usa um token com as permissões que ele marcou na página de permissões. O que muda em relação a uma chave de API: Vários projetos numa conexão. Uma chave de API é de um projeto; uma conexão OAuth pode cobrir vários. list_projects lista todos (id, nome, slug, papel e permissões em cada um) e todas as ferramentas aceitam um project opcional com esse id ou slug, que o MCP envia no cabeçalho X-Wagend-Project. Com um só projeto não é preciso. Com vários e sem project, a ferramenta responde 400 project_required com a lista para a IA perguntar; um projeto que não é da conexão dá 403 project_not_in_connection, exista ou não. As permissões e o papel são revistos a cada chamada, no projeto escolhido. Com uma chave de API, list_projects devolve o único projeto dela.A lista de ferramentas é recortada. Só aparecem as que o token pode usar. get_task_balance e list_tasks com include_balance=true pedem payments:read_balance (permissão «Ver dinheiro»): se não estiver, a ferramenta não aparece ou responde 403 insufficient_scope. Para incluí-la é preciso conectar de novo marcando «Ver dinheiro» (só o dono concede). Os metadados de \u002F.well-known\u002Foauth-protected-resource publicam scopes_supported para o cliente saber o que pedir.Editar os produtos de um pedido (replace_task_items) pede só bookings:write; não precisa ver dinheiro. O valor a cobrar é recalculado e a API não deixa baixar o pedido abaixo do que já foi cobrado (409 order_below_paid).Cobranças em dinheiro: record_payment com method: \"cash\" e a permissão payments:record («Registrar cobranças e enviar links de pagamento»). Ajustar à mão o valor a cobrar (payments:adjust) não é concedido por OAuth: é feito no painel.Zona de um endereço: match_zone precisa de coordenadas (lat e lng), bairro, cidade ou CEP; com um endereço em texto livre sozinho devolve zone: null. Com coordenadas vence a área desenhada, e a zona de um endereço salvo do cliente usa essa mesma regra.Clientes: list_customers sem include_sensitive=true devolve só id e locale; para escolher um cliente pelo nome é preciso include_sensitive=true (e customers:read).Linha do tempo: customer.updated e booking.updated trazem fields ou changed com os nomes dos campos editados, nunca os valores.",{"id":3959,"title":3960,"titles":3961,"content":3962,"level":263},"\u002Fdocs\u002Fmcp#painel-do-parceiro-partner","Painel do parceiro (partner)",[213],"Se você é parceiro da Fiuit, sua IA pode ler sua carteira com as mesmas regras do seu painel. Todas são só leitura (readOnlyHint) e pedem o scope partner:read: por OAuth, a permissão «Ver sua carteira de parceiro», que a página de permissões só oferece a um parceiro. Sem esse scope, elas não aparecem na lista. FerramentaScopeFazpartner_todaypartner:readA próxima ação, o progresso da carteira e os alertaspartner_clientspartner:readSeus clientes com plano, último uso, contagens e semáforo; ordem, cursor e filtro rápido quickpartner_client_detailpartner:readUm cliente e seus marcos. Um projeto fora da sua carteira dá 404 client_not_foundpartner_activitypartner:readMarcos dos seus clientes, do mais novo ao mais antigo O parceiro é quem emitiu a credencial (criou a chave ou autorizou a conexão), nunca um dado do pedido. Uma chave com o scope emitida por outra pessoa dá 403 partner_required; se o parceiro é desativado ou sai do projeto da credencial, ela para de funcionar na próxima chamada. Só contagens e estados: nem o conteúdo dos negócios nem seus valores. Criar um projeto para um cliente continua sendo só pelo painel.",{"id":3964,"title":3965,"titles":3966,"content":3967,"level":263},"\u002Fdocs\u002Fmcp#exemplos-de-pedidos","Exemplos de pedidos",[213],"\"Agende um corte com o João amanhã de manhã, no nome do Carlos.\"\"Bloqueie a máquina de laser na próxima segunda por manutenção e me diga quais agendamentos ficam afetados.\"\"Quantas faltas tivemos este mês?\"\"Mostre as tarefas sem atribuição e dê horário a elas amanhã às 10.\"\"Registre uma cobrança em dinheiro de 50.000 da Ana pela última tarefa e me diga o saldo.\"",{"id":3969,"title":3970,"titles":3971,"content":3972,"level":263},"\u002Fdocs\u002Fmcp#docs-para-llms","Docs para LLMs",[213],"\u002Fllms.txt lista todas as páginas da documentação.\u002Fllms-full.txt contém a documentação completa em Markdown. Fluxos: as ferramentas de um fluxo exigem flow_id (list_flows); create_service e update_service aceitam flow_id para escolher o fluxo de um serviço. update_flow valida antes da prévia (impact e shared_with, os serviços que compartilham o fluxo e mudam todos); confirm=true cria versão. Fluxos de sistema não se editam diretamente: customize_flow dá a cópia própria (que se edita com update_flow) e restore_flow volta ao original; ou copy_flow (ou create_flow) e atribua-o. delete_flow apaga um fluxo sem uso nem tarefas. revert_flow cria outra versão (leitura config:read e escrita settings:write). validate_flow, get_flow_examples e get_base_states completam a configuração. «Como a tarefa aparece»: update_flow com task_view escolhe o que vai no topo da tarefa (main: auto, when = Quando, destination = Destino, order = Pedido ou none = nada), se os chips do cliente e da cobrança aparecem (chips.customer, chips.payment) e o interruptor «Itens» (items: desligado, a tarefa não oferece «+ Adicionar item»; os itens já lançados continuam visíveis). O que você não envia fica igual e clear_task_view=true volta ao automático. Sem confirm mostra task_view_diff com o antes e o depois; não cria versão nem move tarefas e vale também para um fluxo de sistema. Cada tarefa traz o ajuste vigente em task_view. MCP inclui get_work_item_next_steps, move_work_item_stage e use_work_item_tool. Escritas exigem confirm=true e Idempotency-Key. complete_task foi removida. Cobrança eletrônica pendente F4-29. get_work_item_stage_history (scope bookings:read) lê o histórico imutável de etapas (máximo 100). Scopes: leitura bookings:read; mover e usar ferramentas bookings:write (mais payments:record ao cobrar); editar etapas do serviço settings:write. Um 403 (permissão ou scope), 409 (stage_conflict, already_claimed) ou 422 (stage_requirements_missing) chega ao agente sem alteração; repetir com a mesma idempotency_key e corpo devolve o mesmo resultado sem duplicar. A Wagy explica a capacidade vigente e o painel inclui Próximo passo e o editor de etapas. Os efeitos habilitados entram no outbox; isso não comprova entrega ao cliente. create_service e update_service aceitam price_per_time («Preço por tempo», com confirm=true): ao mudar a duração de uma tarefa desse serviço, o valor é recalculado na proporção, exceto com cobrança ou sinal registrados ou um valor ajustado à mão. create_service e update_service aceitam duration_options (as durações que o cliente escolhe ao reservar, por exemplo 1 h, 1 h 30 e 2 h: [{\"minutes\": 90, \"price_cents\": 17000000}], até 6; sem preço, na proporção; com confirm=true); clear_duration_options as remove. find_slots e hold_slot aceitam duration_min (uma dessas durações): a reserva é uma só tarefa com essa duração e seu preço; outra duração responde 422 duration_not_offered. create_service e update_service aceitam location_mode (local, customer_address, customer_choice ou remote: a distância, sem endereço) e meeting_url, o link http(s) da reunião de um serviço remote cadastrado pelo negócio (o Fiuit não o gera); clear_meeting_url o remove e mudar para outro modo o apaga. O bot e os lembretes enviam esse link no lugar de um endereço. update_service aceita title_template: as peças do título das tarefas desse serviço (de 1 a 3: customer, order, address, number ou field:\u003Cchave> de um campo do formulário ou de uma etapa), unidas por « · »; clear_title_template volta para «Cliente · Pedido». update_task_metadata aceita title para escrever o título de uma tarefa à mão (fica fixo) ou null para voltar ao automático. As duas são escritas: mostram a proposta com a mudança e se aplicam com confirm=true. create_service e update_service aceitam booking_payment («Cobrança ao reservar»: none, deposit ou total) e deposit_cents, com confirm=true. Com total o horário cobra o valor completo da tarefa pelo fluxo do sinal; deposit sem sinal retorna 422. Os valores são validados antes de chamar a API. Também aceitam full_day («Dia inteiro»): deixa-se e retira-se, e o cliente escolhe o dia, não o horário. Há um só horário por dia, da abertura ao fechamento; com um local que atende 3 ao mesmo tempo, entram 3 por dia. Não vale para um serviço que atribui uma pessoa (uma equipe com um recurso staff): responde 422 service_full_day_invalid. list_tasks(date_from=…, date_to=…, include_carried=true) soma as tarefas iniciadas que passaram do fim e continuam ocupando o lugar nessas datas (serviço de dia inteiro ou sem pessoa, até 7 dias depois do fim): vêm com carried_over=true e carried_until. É a mesma regra da disponibilidade, com o scope bookings:read. list_tasks mostra por padrão (fees=due) só as mensalidades de clubes e assinaturas que venceram ou vencem dentro dos dias de aviso do plano, como Hoje e Trabalho: não traz as pagas, as perdoadas nem as cobradas sozinhas no cartão enquanto a cobrança estiver em dia. Com fees=all traz todas (por exemplo, para ver o histórico de mensalidades de um cliente). create_service e update_service aceitam chat_payment («Cobrança pelo chat», com confirm=true): mode (on_delivery|ask|link), prepare (anyway|after_payment) unpaid (keep|cancel) e remind (booleano: um único lembrete ao cliente antes de o link vencer); não leva valores, o link é pelo saldo da tarefa que o Fiuit calcula e exige o Mercado Pago pronto. update_service aceita payment_requirement: required|optional|off: mostra uma proposta e com confirm=true usa o mesmo PATCH do catálogo (config:write). Alterar a regra cria uma versão auditada; o executor aplica a política vigente do serviço aos destinos completed. Com payments_enabled=false explícito não exige resolver cobrança nem apaga saldos (mudança em relação a F3-177).",{"id":3974,"title":3975,"titles":3976,"content":3977,"level":263},"\u002Fdocs\u002Fmcp#mercado-pago","Mercado Pago",[213],"Brasil e Argentina conectam apenas por OAuth. Chile, Uruguai, Colômbia, México e Peru conectam apenas por token em Pagamentos, sem comissão Fiuit. Paraguai não oferece Mercado Pago. Contas existentes são preservadas. Com conta de produção e serviço com sinal, BRL\u002FARS geram um link que vence antes da reserva temporária. No Brasil, o Pix é pago dentro do Mercado Pago. O portal mostra o link e o chat o envia pela conversa disponível. A reserva fica aguardando sinal até verificar o pagamento. Pré-pagamento aplicado cobre ou reduz o sinal. Pagamento tardio exige revisão da equipe: não reconfirma nem devolve dinheiro automaticamente. Uma tentativa rejeitada ou cancelada permite tentar o checkout novamente. Se um pagamento tardio deixar dinheiro não aplicado em revisão, a reserva pendente vence e libera o horário; o recibo e o aviso são preservados. A conciliação detecta pagamentos adicionais também quando chegam juntos na busca do Mercado Pago. Uma cobrança tardia, devolvida ou contestada sem sinal aplicado conserva recibo e revisão ao liberar o horário. Um estado local cancelado não prova ausência de dinheiro: exige consulta final. A tolerância de 24 horas por perda de credenciais só libera uma reserva sem cobertura aplicada nem links substituídos sem verificar. A disponibilidade de MP inclui country (país de cobrança conforme a moeda do negócio) mesmo sem conta; Pix só BR. Sem novas ferramentas, scopes ou ações de reembolso. Antes de vencer uma reserva, o worker concilia todos os links eletrônicos pendentes de verificação, inclusive os substituídos e cancelados por mudança de valor, mesmo com nova tentativa adiada. Se uma consulta falhar ou faltar acesso a um link substituído, o horário é preservado. Recibos já verificados mantêm seu estado financeiro. Um pagamento no prazo pelo link anterior é aplicado mesmo quando parcial: reduz o pendente e gera um link pela diferença. A reserva continua aguardando sinal e mantém o horário; o link pela diferença mantém o prazo original e nunca passa de duas horas antes do horário. Quando o prazo termina, fica em revisão sem novos links ou avisos ao cliente; Dono\u002FGerente recebe um aviso na primeira retenção parcial. Confirmar exige cobrir o total. Perder credenciais depois não remove a cobertura aplicada. A equipe deve concluir a cobrança ou resolver a reserva; não há devolução automática. Checkout Pro recebe apenas contato e descrição conhecidos. O nome na fatura usa letras e números ASCII, sem acentos ou símbolos, com até 13 caracteres. O retorno abre o portal privado do cliente por seu link existente; sem link vigente ou após revogação, volta a \u002Fpayment-return, uma página neutra sem dados do cliente. O retorno nunca cria nem revoga portais. O token fica no fragmento e não confirma pagamento. O receptor exige HTTPS público e rejeita .test, .example, .invalid e .localhost. Os testes habilitam explicitamente seus domínios reservados; produção não habilita. Um POST de criação ambíguo libera a vaga após sete dias de buscas vazias bem-sucedidas, com aviso ao negócio e auditoria. Erro, pagamento observado ou perda de credenciais reinicia a janela. Dono\u002FGerente pode confirmar «Liberar a vaga» na revisão: cancela com auditoria e conserva o dinheiro registrado, sem reembolso. Exige tasks:work e payments:accounts_configure no painel; nenhuma ferramenta ou API key usa esse motivo reservado.\nF4-25: get_mercadopago_account (payments:read) informa também workspace_currency, mismatch (currency ou country se a conta recebe em outra moeda ou país que o projeto: não são criados links), methods (link, Pix, QR e cartão com available e o motivo reason quando não estão disponíveis; QR e cartão ainda não existem) e deposit_hold_minutes. list_mercadopago_charges (payments:read, só leitura) lista as últimas cobranças do Mercado Pago com estado, valor, propósito e tarefa, sem dados do pagador nem link. A conta é conectada e o sinal de cada serviço é editado em Finanças → Cobranças. F4-23: get_mercadopago_account inclui o método point (maquininha Point Smart; motivo terminal_required se não há maquininha vinculada) e account.point_terminal_id. Vincular a maquininha e «Cobrar com Point» são só do painel: não há ferramenta MCP (as operações não aceitam API key). F4-20: create_payment_link (payments:link) cria o link do Mercado Pago pelo saldo de uma tarefa («Cobrar»); sem amount_minor, o valor é calculado pela API. Sem confirm devolve uma prévia com idempotency_key; confirm=true exige essa chave. deliver=\"conversation\" também envia pela conversa do cliente. Um link aberto com o mesmo valor é reutilizado; com outro valor aberto responde 409 payment.link_pending. F4-92: «Cobrar uma parte». create_payment_link aceita amount_minor opcional (inteiro na unidade menor, o que uma pessoa indicou): cria um link próprio por essa parte, que convive com outras partes abertas. A soma das cobranças abertas nunca passa do saldo: se não couber, responde 422 payment_part_exceeds_balance com remaining_minor (o que falta cobrir) e open_minor. Repetir com a mesma idempotency_key devolve a mesma parte; outra chave é outra parte, mesmo com o mesmo valor. Sem valor, o link cobra o que sobra sem parte. cancel_payment_charge (payments:link, confirm=true) anula um link aberto, seja uma parte ou o link pelo saldo (QR e Point só pelo painel); um já pago responde 409 payment.charge_not_open. O histórico de get_task_balance com include_charges=true marca cada parte com part=true. O QR e o Point com valor são só do painel.",{"id":3979,"title":3980,"titles":3981,"content":3982,"level":263},"\u002Fdocs\u002Fmcp#avaliações-após-o-serviço","Avaliações após o serviço",[213],"get_feedback(kind, identifier) (bookings:read): booking, service, customer, resource; 0–100. get_feedback_settings (config:read). O que o bot vende: bot_offer (config:read) devolve o que o bot oferece hoje no chat (tipos habilitados, serviços, produtos de cada modalidade de pedido, planos e o link «ver tudo ou contratar»). stages lista as etapas de fluxos que reduzem essa lista; com flow_id e stage juntos, devolve o que veria um cliente com a tarefa nessa etapa. list_services e search_products trazem bot_offered por item: desligado, o bot não o nomeia nem o vende. Link por item: create_service e update_service aceitam offer_url (clear_offer_url o remove) e save_product o recebe no produto; https, até 500 caracteres. Se existir, o bot o mostra junto do item; se não, usa o link do bot. bot_offer o devolve em cada serviço, produto e plano. Buscar na sua loja: get_store_search mostra a busca de produtos ao vivo na sua loja online (Nuvemshop, WooCommerce, Shopify, Make, n8n ou uma URL própria): o modelo, a URL de busca com {q}, o mapeamento de campos, o serviço de pedidos pelo chat em que entram os produtos, quantos resultados o bot mostra e se está ativa; das credenciais só diz os nomes. list_store_search_presets traz os modelos prontos. save_store_search a cria ou edita e disable_store_search a desliga: os dois mostram antes e depois sem gravar e só mudam com confirm=true. As credenciais vão em headers, ficam criptografadas e nunca são devolvidas. test_store_search faz a mesma busca que o bot e mostra os produtos com o preço. Todas pedem products:write. Atendimento do bot: bot_tree (config:read) devolve a árvore de atendimento do bot: os ramos (serviços, produtos, assinaturas, fluxos próprios, perguntas, meus horários e falar com uma pessoa) com se estão pausados, se podem ser pausados e para qual tarefa e fluxo leva cada um. Pausar serviços, produtos ou assinaturas é o campo sells de «O que o bot vende». Os ramos vêm na ordem em que o bot os oferece, com o flow_id da raiz, sua saudação (greeting) e a ordem salva (order): update_flow nesse flow_id com order ou greeting os altera (config:write, a mesma permissão de «O que o bot vende»). Um ramo próprio pausado também pode ser ordenado e mantém seu lugar. A raiz não é desativada nem duplicada. Percurso das conversas: bot_tree_funnel (config:read) diz, por ramo do atendimento do bot e nos últimos dias (days, 7 por padrão), quantas conversas criaram uma tarefa, foram respondidas, passaram para uma pessoa ou pararam, e em que passo; bot_conversation_path mostra por onde uma conversa passou e onde parou. Não incluem o que o cliente escreveu. Seu site: get_site (config:read) mostra «Atendimento → Site»: modelo (booking, catalog ou showcase), seções opcionais marcadas (galeria, equipe e recursos, avaliações, planos), os textos da capa e «Quem somos», o subdomínio (negocio.fiuit.app) e se está publicado. update_site muda esses campos e publish_site \u002F unpublish_site o ligam ou desligam (config:write); os três mostram antes e depois sem gravar e só mudam com confirm=true. O site nasce desligado. O que ele mostra do catálogo é o mesmo que o bot oferece (bot_offer), e as perguntas frequentes são as do bot. O subdomínio tem de 3 a 40 letras minúsculas, números e hífens, sem nomes reservados nem repetidos; mudá-lo em um site publicado desliga o link anterior (não há redirecionamento) e exige confirm_link_break: true dentro de changes; sem ele a API responde 409 e nada muda. Se a Fiuit revogar um site, ele não pode ser publicado de novo até ser restaurado. «Feito com Fiuit» aparece no rodapé do site: com um plano pago, sai com made_with_fiuit: false (can_hide_made_with_fiuit diz se o seu plano permite); no plano grátis a API responde 409 e ele continua visível. O Dono pode ativar avaliações após concluir uma tarefa: formulário configurável, link de uso único, marca da empresa e indicadores de satisfação com amostra mínima. Comentários seguem permissões de privacidade. Uma nota baixa entra em atenção e gera aviso por email e Telegram, conforme preferências e disponibilidade. Desligado por padrão; o envio depende do canal e de sua janela. A entrega pode repetir o mesmo link após falha do worker; a resposta continua única. F3-143 inclui estado de admissão nas leituras de conversas da API. A Caixa de entrada continua excluída do MCP: bloquear\u002Fliberar contatos exige sessão Dono\u002FGerente no painel (contacts:moderate). Não há ferramenta externa de moderação nem desafio anti-bot nesta entrega inicial. A política do Telegram é configurada no painel ou por propostas confirmadas do Wagy. WebChat pode exigir Turnstile ao abrir sessão. São superfícies públicas\u002Fpainel, sem scopes de API key: MCP não abre sessões WebChat nem modera contatos. A revisão com sinal eletrônico já aplicado não dispara consultas finais repetidas. As cobranças restantes usam tentativas limitadas; webhooks verificados continuam sendo processados. Uma criação ambígua usa espera exponencial até um dia entre consultas durante a janela de sete dias de buscas vazias bem-sucedidas; a liberação ocorre na próxima consulta, no máximo um dia depois de completar a janela. Erros, pagamentos observados ou perda de credenciais reiniciam a evidência vazia. Turnos guiados, desfazer e recomeçar a entrevista inicial exigem sessão Dono e CSRF do painel; não são ferramentas MCP. A API pública de setup está pendente (F3-220). confirm_booking aplica as validações atuais do core: uma pré-reserva pendente cujo serviço foi desativado retorna 409 service_inactive. Uma confirmação já gravada mantém seu replay. Turnos, desfazer e recomeçar a entrevista exigem sessão Dono e CSRF; continuam fora do MCP. A revisão e união da identidade de clientes (F3-154) exige sessão Dono\u002FGerente com CSRF no painel. MCP não oferece união por contatos declarados; coincidências não verificam identidade. Códigos e união com recebimentos ainda estão pendentes. As regras de reconfirmação e alerta por falta de resposta (F3-75) são configuradas pela API de automações e continuam excluídas do MCP. Só avisam após uma solicitação enviada sem resposta. Não há tool MCP para responder reconfirmações ou liberar horários por silêncio. CSV de produtos (F3-153): export_products_csv(template=false), preview_products_csv(csv) e confirm_products_import(import_id, confirm=false) no toolset admin; escopo products:write, inclusive para exportar. A prévia não altera produtos. Confirmar exige confirm=true, é atômico e idempotente por ID (resultado por 7 dias); a prévia vence em 30 minutos e mudanças no catálogo\u002Fmoeda exigem repetir. Máximo 1 MiB \u002F 2000 linhas; UTF-8, valores com regra única (PYG\u002FCLP inteiros; BRL «1,500» ambíguo). Wagy indica o painel para o arquivo; não confirma CSV no chat.",{"id":3984,"title":3985,"titles":3986,"content":3987,"level":263},"\u002Fdocs\u002Fmcp#configuração-pelo-claude-ou-chatgpt-fiu-525","Configuração pelo Claude ou ChatGPT (FIU-525)",[213],"Guia para o dono: Configure a Fiuit com o Claude ou o ChatGPT. Prompts (prompts\u002Flist), um por tarefa e idioma, sem argumentos: setup_from_scratch_{pt,es,en} (entrevista curta como a da Wagy: agenda, horário, o que vende, como cobra), setup_bot_and_knowledge_{pt,es,en} (bot e base de conhecimento) e import_catalog_{pt,es,en}. São instruções fixas que citam ferramentas existentes; toda escrita continua com prévia e confirm=true. A auditoria de configuração (audit_setup) chega numa entrega separada.Recursos: fiuit:\u002F\u002Fsetup\u002F{pt,es,en}\u002Fguide (boas práticas e ramos de exemplo, Markdown) e o modelo fiuit:\u002F\u002Fsetup\u002F{idioma}\u002Fexamples\u002F{chave} (serviços, fluxos, automações desligadas, perguntas e horário típico de um ramo; aplica-se com apply_examples).Importar de arquivos: preview_products_csv aceita csv, xlsx (Excel em base64) ou rows (até 2000 linhas que o modelo leu de um Excel, PDF ou foto) com columns {cabeçalho: name|short_name|unit|price|category|synonyms|sku|active|featured|sort_order}; devolve também columns e ignored_columns. undo_products_import(import_id, confirm) desfaz uma importação confirmada (apaga o criado ou arquiva se tiver histórico; o atualizado volta ao valor anterior) enquanto o catálogo não mudou (409 products.import_undo_stale), até 7 dias.Serviços em lote: preview_services_import (mesmas fontes; colunas name, duration_min, price, team, full_day, bot_offered; só cria), confirm_services_import e undo_services_import, com config:write. A API monta a tabela e valida.Origem: o MCP envia o nome do app (clientInfo ou User-Agent) em X-Wagend-Client-Name; a auditoria guarda como client junto ao ator mcp («MCP · Claude»). Não dá permissões.",{"id":3989,"title":3990,"titles":3991,"content":3992,"level":263},"\u002Fdocs\u002Fmcp#operações-do-negócio-f4-45","Operações do negócio (F4-45)",[213],"O servidor do repositório adiciona 76 ferramentas: clientes\u002Fendereços (customers), Inbox (inbox),\nfinanças somente leitura (finance), transições de tarefa (tasks) e catálogo, horários, automações\ne conhecimento JSON (admin). Os sete conjuntos ficam ativos por padrão. tools\u002Flist publica o scope e os esquemas de path (IDs), query (filtros) e body (comando JSON).\nNão envie URL ou projeto. Novas escritas mostram a prévia e uma chave; repita com confirm=true e\nidempotency_key estável. A API valida permissões, requisitos e disponibilidade ao confirmar;\na prévia não garante sucesso. Área \u002F exemplosScope baselist_customers, get_customer, endereços, resumo e históricocustomers:readcreate_customer, update_customer, salvar\u002Fexcluir endereçocustomers:writeVeículos do cliente (FIU-609): list_customer_assets, get_customer_asset \u002F create_customer_asset (basta a placa ou o modelo), update_customer_asset, delete_customer_assetcustomers:read \u002F customers:writeTipos de bem: list_customer_asset_types \u002F ativar Veículos com create_customer_asset_type ({\"preset\": \"vehicle\"}) ou desativá-lo (active: false: os carros ficam só para leitura)customers:read \u002F config:writelist_conversations, list_conversation_messages, contadoresmessages:readsend_conversation_message, modo, resolver, lida, intenção, abrir conversa e add_conversation_note (aviso do sistema, nunca enviado ao cliente)messages:writemove_work_item_stage, use_work_item_tool, remover horário, metadata e itensbookings:writeHistórico, comentários, anexos e localização da tarefabookings:readDetalhe do produto \u002F categorias e sugestõesproducts:read \u002F products:writeVendas por produto (get_products_stats) \u002F desempenho por pacote ou clube (get_prepaid_plans_stats); valores em dinheiro só com finance:analyzebookings:read \u002F prepaid:readHorários, zonas, recursos, automações e conhecimentoconfig:read \u002F config:writeResumo, relatórios, dívida, contas, clientes e previsão financeirosfinance:analyzeNúmeros de recebimentos (get_finance_collections): bruto, devolvido, tarifa do Mercado Pago, comissão da Fiuit e líquido por método, serviço e dia ou semana, mais o estimado sem recebimentofinance:analyzeDisponibilidade\u002Fmovimentos financeiros; caixa; configuração do caixapayments:read; cash:read; cash:configure Clientes omitem nomes, contatos, documentos e endereços por padrão; outras vistas sensíveis omitem\ntexto livre e contatos. include_sensitive=true exige o scope de leitura anunciado, além do scope\nbase; habilita conteúdo de mensagens\u002Fcomentários. Finanças preservam valores, avisos e estimativas da\nAPI. Uma ação que cobra precisa também da permissão financeira do core: bookings:write não basta. As exclusões caem de 134 para 58. Ainda não há equivalência completa com o painel: 26 rotas não\naceitam API key (escrita de comentários, resumos de conversa e outras; acompanhamento F4-47).\nContinuam fora sessão\u002Fnotificações pessoais, SSE, simulador, segredos\u002Fwebhooks, transferências\nbinárias\u002FCSV em massa e novas escritas de dinheiro. Consulte o catálogo com sua chave. Uma mensagem\npending não confirma entrega ao cliente.",{"id":3994,"title":3995,"titles":3996,"content":3997,"level":301},"\u002Fdocs\u002Fmcp#avisos-ao-cliente-e-histórico","Avisos ao cliente e histórico",[213,3990],"Configure avisos por serviço para pedidos sem horário, atribuição, alterações e progresso. Começam desligados. Consulte tentativas enviadas, omitidas, adiadas ou com falha em Configuração, Atividade e na ficha do cliente. O histórico conserva 90 dias sem copiar mensagens ou contatos; enviado não confirma entrega. Wagy e MCP consultam os mesmos resultados. list_customer_notice_deliveries, get_customer_notice_policies: config:read. update_customer_notice_policy: config:write, confirm=true. get_notices_overview (config:read) devolve o índice «Avisos»: tudo o que o cliente recebe, ordenado a partir do horário, com o valor efetivo de cada aviso, por que está parado e onde se edita. Com config:write, set_notice_item_enabled liga ou desliga um aviso na sua fonte (regra, política por serviço, etapa ou fluxo) e set_all_notices_enabled é «desligar todos os avisos a clientes»; ambas pedem confirm=true. Vale o mais específico: o interruptor de cada aviso decide, e o geral vence tudo. As linhas de etapa publicam o fluxo e exigem também settings:write; sem essa permissão, toggleable=false e a escrita retorna 403. PUT e revert preservam a regra de cobrança vigente do catálogo em todas as etapas completed. Salvar payment_requirement novamente repara versões divergentes; restaurar o histórico não altera a cobrança. A revisão de uma reserva vencida com links substituídos compartilha a espera crescente de toda a reserva, até um dia. Cada consulta final lê todas as preferências ainda não resolvidas; um erro impede a liberação e reinicia a evidência vazia. Webhooks verificados continuam ativos. O link vence 15 minutos antes da reserva; se o prazo for curto, a margem é metade do tempo disponível, com mínimo de 5 minutos. A página e o chat mostram o horário do link. A reserva mantém seu próprio prazo para verificar aprovações demoradas. Um estado local expired não bloqueia um pagamento verificado e aprovado a tempo: cobre o sinal se a reserva ainda estiver pendente; se já estiver encerrada ou o pagamento for tardio, conserva o dinheiro e pede revisão, sem reabrir nem devolver automaticamente. Se o link duraria menos de 5 minutos (com a margem mínima, menos de 10 minutos até o prazo da reserva), ele não é criado: fica o pagamento manual. Um pagamento tardio com a vaga já liberada fica separado «a devolver» (refund_due) na tarefa, na conta do cliente e no Financeiro, com um aviso à equipe por pagamento: não é descontado de outras dívidas do cliente até chegar a devolução do Mercado Pago ou a equipe (Dono\u002FGerente) passá-lo ao saldo com «Usar para outra dívida» (auditado). Com uma reclamação aberta no Mercado Pago (in_mediation) não é marcado «a devolver»: não devolva até que seja resolvida. Nada é automático. As unidades reservadas também se perdem ao vencer: a tarefa volta ao preço normal e a equipe recebe um aviso. Uma falha de consumo retorna prepaid_consumption_failed e mantém a tarefa sem concluir. Tire o plano antes de ajustar o valor ou a cobrança; as notas internas podem ser editadas. Se a janela expirar durante o envio, outro canal utilizável do mesmo cliente será tentado. A marca no-se-pudo-avisar tem um espaço reservado além das vinte etiquetas de negócio, sem substituí-las. Reconfirmações e pedidos de avaliação permanecem na conversa original e não mudam de canal.",{"id":3999,"title":4000,"titles":4001,"content":4002,"level":263},"\u002Fdocs\u002Fmcp#configurar-o-negócio-por-mcp-e-ajuda-da-fiuit-fiu-397","Configurar o negócio por MCP e ajuda da Fiuit (FIU-397)",[213],"Tudo o que o onboarding monta também se configura por MCP, com as permissões da API key: FerramentaScopeFazduplicate_serviceconfig:write (settings:write para copiar etapas)Cria uma cópia pausada de um serviçodelete_scheduleconfig:writeBaixa lógica: mantém as reservas futuras e as devolvedelete_service, delete_resource, delete_resource_groupconfig:writeSem mode pausa (reativa com update_* e active=true). mode=remove apaga se não tem histórico e arquiva se tem; archive arquiva; delete apaga ou falha com 409 catalog_item_has_history. Com tarefas futuras falha com 409 catalog_item_future_bookings e a lista delasdelete_productproducts:writeIgual, com remove por padrãoget_service_removal, get_resource_removal, get_resource_group_removal, get_product_removalconfig:write \u002F products:writeO que aconteceria ao excluir: se apaga ou arquiva e quais tarefas futuras temrestore_service, restore_resource, restore_resource_group, restore_productconfig:write \u002F products:writeTira um item de «Arquivados»; volta pausadoget_bot_settings, update_bot_settingsconfig:read \u002F config:writePersonalidade do bot (nome, tom, saudação, o que vende, fotos de produtos), versionadacreate_prepaid_plan, update_prepaid_planprepaid:manageDefine pacotes e clube: preço, unidades, validade, cotas e serviços, e suas parcelas: vencimento (due_rule: signup, month_start, month_end ou fixed_day com due_day 1–28), dias de aviso (notice_days, 5 por padrão), first_fee_full (sem ela a parcela 1 é proporcional) e fluxo da adesão (flow_id). Um preço novo vale para a próxima parcela de cada assinatura ativa (sem aviso ao cliente; a resposta traz live_subscriptions). Vender continua sendo sell_prepaid_planlist_recommended_automations, install_recommended_automations, set_recommended_automation_activeconfig:read \u002F config:writeAutomações recomendadas pelo exemplo de negócio; são instaladas inativas e ativadas uma a umaget_automation_stage_optionsconfig:readEtapas e ações válidas para as regras por etapapreview_customer_noticesconfig:writePrévia dos avisos ao cliente com dados de exemplo; não envia nem salvalist_knowledge_sources, get_knowledge_source, list_knowledge_source_pagesconfig:readFontes web e listagens da base de conhecimentopreview_knowledge_source, create_knowledge_source, update_knowledge_source, refresh_knowledge_source, delete_knowledge_sourceconfig:writeRegistram, pausam, atualizam ou apagam uma fonte (apagar também remove o que ela importou)list_live_queries, create_live_query, update_live_query, test_live_query, disable_live_queryconfig:writeConsultas HTTP ao vivo que o bot usaapply_business_templatesettings:writeAplica o modelo de ramo (barbearia, estética, clínica…): vocabulário, automações e fluxos inativos. Só num projeto novo e vazio; não se escolhe de novoapply_examples, undo_examplesettings:writeCompõe de 1 a 3 exemplos por parte (vocabulário, fluxos, automações, catálogo) e os desfaz sem mexer no que o negócio mudouget_vocabulary, update_vocabularyconfig:read \u002F settings:writeGlossário do projeto (como se chamam as tarefas, os clientes, a equipe)export_project_templateconfig:readA configuração do projeto como modelo (fluxos, catálogo, planos, ajuda, bot e automações), sem dados de clientes nem segredosget_bot_channel_policies, update_bot_channel_policyconfig:read \u002F config:writePolítica do bot por canal: contato exigido, limite de respostas, encaminhamento e instrução do canalupdate_feedback_settingssettings:writeConfigura as avaliações após o serviço (lidas com get_feedback_settings)search_helpqualquer keyBusca na ajuda da Fiuit: guias de uso, «O que acontece se…?» e políticas de produto vigentes, com o link do guia e do contato. Não lê dados do negócio As credenciais de fontes e consultas ao vivo não passam pelo MCP: são cadastradas no painel e a API nunca as devolve. Fica de fora só o que não faz sentido abrir: a sessão e o CSRF do painel, os streams, o simulador, os segredos de webhooks e canais, o sino pessoal, os downloads binários grandes (vem o link), a conversa guiada do onboarding (os resultados dela estão acima), revogar um link de avaliação e o cancelamento da assinatura. Etiquetas de cada escrita. Toda ferramenta que escreve declara na descrição e em _meta[\"wagend\u002Flabels\"] se avisa o cliente (notifies_customer), se movimenta dinheiro (moves_money) e se é reversível, com a ferramenta que a desfaz (inverse). O que chega ao cliente ou movimenta dinheiro sempre deve ter a confirmação explícita de uma pessoa.",{"id":4004,"title":447,"titles":4005,"content":4006,"level":263},"\u002Fdocs\u002Fmcp#pausar-e-duplicar",[213],"Pausar deixa de oferecer o serviço para novos pedidos no bot, reserva pública, Wagy e MCP. As tarefas já agendadas continuam normalmente. Reativar volta a oferecê-lo. Pausar e desativar são a mesma ação. No detalhe abra ⋯ → Duplicar ou Pausar. No desktop também há um menu na lista. Wagy propõe as duas ações e aguarda a confirmação do plano. MCP permite pausar com update_service(active=false, confirm=true); duplicar é duplicate_service (cópia pausada, com confirmação). API: POST \u002Fv1\u002Fservices\u002F{id}\u002Fduplicate, Idempotency-Key, config:write; settings:write para copiar etapas.",{"id":4008,"title":4009,"titles":4010,"content":4011,"level":263},"\u002Fdocs\u002Fmcp#clube-com-pagamento-pendente","Clube com pagamento pendente",[213],"list_prepaid_subscriptions lista as assinaturas do projeto com dívida e pausa (limit\u002Foffset); as assinaturas (membresías) trazem standing: em dia, em carência (grace, com os dias que faltam) ou bloqueada (blocked, não cobre até pagar e se libera sozinha ao pagar). Com unpaid=true, só as que estão sem pagamento (clube ou assinatura), com o nome do cliente e os meses em atraso (months_due), as bloqueadas primeiro e o clube no fim. A resposta traz unpaid_count, o total de pendentes do projeto, mesmo que haja mais que o limit. set_prepaid_benefits pausa um clube com pagamento pendente ou reativa benefícios com confirm=true, sem cobrar nem apagar a dívida. Ambas exigem prepaid:benefits. Pagar uma parcela não reativa: reative com set_prepaid_benefits. Com a assinatura bloqueada, hold_slot e a criação de tarefas do assinante para os serviços dessa assinatura devolvem 409 membership_blocked (com plan): é preciso regularizar a mensalidade e ela é liberada sozinha ao pagar. Se o seu projeto ficar «Aguardando pagamento» (o pagamento do plano da Fiuit não chegou e a carência venceu), todas as ferramentas devolvem 402 workspace_awaiting_payment, inclusive as de leitura, até o pagamento ser creditado.",{"id":4013,"title":4014,"titles":4015,"content":4016,"level":301},"\u002Fdocs\u002Fmcp#fluxos-v2","Fluxos v2",[213,4009],"Fluxos v2: validate_flow, create_flow e update_flow recebem flow com\nformat:2, stages e exits. A prévia retorna impact (total, até 100 mudanças, by_service e shared_with);\nconfirm=true confirma publicar\u002Frestaurar e mover tarefas abertas à primeira etapa\ndo mesmo estado base, sem executar avisos de entrada. A equipe vê todos os itens;\ncom visible_to cliente, o bot pede esses itens e aperta esses botões pelo chat onde a tarefa nasceu (origem\ncustomer_chat no histórico). Uma etapa pode avançar sozinha: item timer com timer: {until: duration|task_start|task_end|no_reply, minutes, to}\n(to é um botão da etapa sem itens obrigatórios; task_start e task_end vão sem minutes, seguem a hora de início ou de fim da tarefa e só existem em fluxos com horário) ou auto: payment_received em um botão (a tarefa totalmente paga pelo\nMercado Pago). A tarefa traz stage_deadline para a contagem regressiva e o avanço fica no histórico com origem auto. Se o avanço falhar, a tarefa traz auto_advance_failed até alguém movê-la. Um pagamento lançado à mão também dispara auto: payment_received. Além disso, auto: customer_replied (o cliente escreveu por qualquer canal depois de entrar na etapa) e auto: form_completed (preenchidos os itens obrigatórios que o cliente vê; a etapa precisa de pelo menos um), um por evento em cada etapa; o motivo fica em data.automatic.\nmove_work_item_stage e\nuse_work_item_tool exigem from_stage; envie também config_version lido na\ntarefa. Um 409 stage_conflict exige atualizar a leitura. Os requisitos dos botões\nusam item.\u003Cchave>; Encerrar sem concluir usa exit.reason e guarda motivo privado.\nRestaurar v1 retorna 422 version_format_unsupported. V2 não inclui link público\ndo cliente, simulador, itens de pagamento\u002Fprodutos ou condições. A cobrança manual\natual mantém as regras do serviço. SLA e escalonamento (F3-595), só com until: duration: alert: {roles} ou alert: {resource: assignee} no lugar de to avisa a equipe ao vencer e a tarefa fica na etapa (um aviso por entrada; stage_deadline.alert é true); by_item: {item, minutes: {opção: min}} pega os minutos da resposta de um item de opções (sem resposta vale minutes) e from: created conta desde a criação. Num fluxo na fila, a etapa de entrada (held) aceita um temporizador duration para escalar o que ninguém pegou. Limite: 43200 minutos (30 dias corridos). get_work_item_stage_history retorna ator, origem (source), classe (kind) e itens com rótulos históricos, incluindo movimentos por publicação. São os últimos 100 eventos, do mais recente ao mais antigo; a API aceita order=asc para apresentá-los cronologicamente. Fotos e assinaturas são referências privadas: obter o arquivo exige o download autorizado da tarefa. visible_to limita apenas o cliente; a equipe mantém o acesso autorizado às suas tarefas. Wagy pode explicar esse percurso por get_work_item com seu acesso vigente. O item live_location («Localização em tempo real») não é preenchido por MCP nem por formulário: ao entrar nessa etapa o bot da equipe no Telegram pede ao responsável que compartilhe a localização em tempo real e o item é cumprido com a primeira posição. A última posição de uma tarefa é lida com GET \u002Fv1\u002Fbookings\u002F{id}\u002Flocation-events (mesmas permissões da tarefa); o mapa da equipe (GET \u002Fv1\u002Ftasks\u002Flive-locations) é só do painel.",{"id":4018,"title":4019,"titles":4020,"content":4021,"level":263},"\u002Fdocs\u002Fmcp#confira-todos-os-serviços-antes-de-mudar-um-fluxo","Confira todos os serviços antes de mudar um fluxo",[213],"Ao alterar etapas compartilhadas, você vê quais outros serviços mudam e confirma o alcance atualizado. update_flow \u002F revert_flow: Envie em shared_with_ack os IDs de validation.impact.shared_with revisados e aceitos. Em caso de 409 stage_shared_unconfirmed, valide novamente e peça nova confirmação; não repita automaticamente. A lista inclui todos os serviços do fluxo, inclusive o editado. get_work_item_journey (tasks, bookings:read) lê o percurso completo de uma tarefa com seus mapas históricos: eventos cronológicos e versões v2 referenciadas, incluindo etapas removidas. Mantém o acesso autorizado e não substitui versões ausentes pelo fluxo atual. Por padrão retorna chaves e datas; include_sensitive=true permite consultar rótulos, atores e respostas históricas com bookings:read. configure_pay_info propõe e salva os dados para pagar sem Mercado Pago (chave Pix, dados bancários), um texto por idioma: texts com pt, es ou en, até 600 caracteres cada; {} os apaga (scope settings:write, confirm=true). O bot os mostra quando a cobrança pelo chat é «perguntar» e o Mercado Pago não está pronto; «Já paguei» só avisa a equipe e nunca registra uma cobrança. A leitura desses dados é do painel e do Wagy: a chave de API não lê GET \u002Fv1\u002Fworkspace; a resposta confirmada devolve o que foi salvo. configure_chat_payment propõe e salva a cobrança pelo chat padrão do negócio (scope settings:write, confirm=true). update_service usa chat_payment para uma regra própria e inherit_chat_payment=true para voltar ao padrão (scope config:write, confirm=true). O servidor calcula o valor; essas ferramentas não criam links. O cancelamento da assinatura (GET \u002Fv1\u002Fsubscription, POST e DELETE \u002Fv1\u002Fsubscription\u002Fcancellation) é só para a sessão do Dono no painel: uma API key recebe 403 e não há ferramenta MCP. O Wagy lê o estado e leva à tela, mas não cancela. get_control_summary: A atenção coincide com Hoje: late respeita a tolerância do projeto; notice_undelivered só abertas; feedback_review inclui finalizadas; out_of_coverage só abertas e excluídas de sem zona. Os motivos podem se sobrepor: não some os contadores. list_tasks(attention=\"notice_undelivered\") usa a mesma seleção do contador do Controle. attention aceita os oito motivos de atenção, combina outros filtros antes de paginar e agrupar e não adiciona datas implícitas. Mantém o scope bookings:read. Os fluxos por intenção podem declarar entry ao serem criados ou editados: quando usá-los, exemplos, exclusões, palavras-chave e se o cliente pode iniciá-los. O MCP permite visualizar essas alterações antes de confirmar. Há no máximo oito intenções ativas. O bot coleta os dados iniciais pelo chat e pede confirmação antes de criar a tarefa; a criação direta pelo MCP continua sendo uma ação explícita. Com list_tasks(group_by=\"flow\"), flow_capabilities retorna só outcomes e delivery: os status permitidos pelos fluxos ativos do projeto, mesmo sem tarefas, sem nomes nem IDs. Uma fila de atendimento no local não implica entregas. Ao salvar características, o vocabulário é montado automaticamente se ainda não houver um salvo; suas edições são mantidas. Para mudar os nomes, use Configurações → Vocabulário ou peça ao Wagy e confirme a proposta. A edição do vocabulário exige sessão do painel; não é oferecida por MCP.",{"id":4023,"title":4024,"titles":4025,"content":4026,"level":301},"\u002Fdocs\u002Fmcp#proponha-uma-nova-característica-com-wagy","Proponha uma nova característica com Wagy",[213,4019],"get_trait_catalog (config:read): pt\u002Fes\u002Fen. list_trait_proposals(cursor) (config:read). propose_trait(trait, confirm=false) \u002F confirm=true (settings:write). Wagy prepara um nome e perguntas em três idiomas. Revise a proposta e confirme o envio: ela fica como etiqueta própria até a equipe aprovar, rejeitar ou unir a outra. Não muda como você atende seus clientes.",{"id":4028,"title":4029,"titles":4030,"content":4031,"level":263},"\u002Fdocs\u002Fmcp#o-que-acontece-se-acabar-a-cota-do-canal-de-assistentes-de-ia","O que acontece se acabar a cota do canal de assistentes de IA?",[213],"A cota é por negócio: 600 chamadas de IA e 200 conversas novas por dia, e até 10 horários reservados temporariamente ao mesmo tempo. Pessoas diferentes compartilham essas cotas e também podem esgotá-las. Você recebe um aviso nas notificações de Atendimento → Canais; o canal volta quando a cota se renova ou os horários são liberados. Os outros canais continuam funcionando. Se o limite de IA for atingido durante uma resposta, o bot pede para esperar sem encaminhar a conversa por esse motivo.",{"id":4033,"title":4034,"titles":4035,"content":4036,"level":263},"\u002Fdocs\u002Fmcp#motivos-de-encerramento","Motivos de encerramento",[213],"get_flow → exits.close.reasons \u002F exits.cancel.reasons: {key, label: {pt, es, en}}; update_flow → confirm=true. get_outcome_reasons(start, end, service_id?, resource_id?) → bookings:read. Configure os motivos em Meu negócio → Etapas. Ao encerrar, escolha um ou Outro com uma explicação. Cancelar permite omitir. Em Resultados você vê a quantidade por fluxo, saída e motivo. html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"id":218,"title":217,"titles":4038,"content":4039,"level":257},[],"Receitas de API (clientes, tarefas, ações, webhooks) e como modelar barbearia, estética, clínica, restaurante e entregas.",{"id":4041,"title":4042,"titles":4043,"content":4044,"level":263},"\u002Fdocs\u002Frecipes#receitas-de-api","Receitas de API",[217],"Todas usam $WAGEND_KEY como no início rápido.",{"id":4046,"title":4047,"titles":4048,"content":4049,"level":301},"\u002Fdocs\u002Frecipes#criar-um-cliente-e-agendar-de-uma-vez","Criar um cliente e agendar de uma vez",[217,4042],"Precisa de customers:write e bookings:write. O telefone é o identificador único do cliente: se já existir, a API responde 409 customer_exists. curl -X POST https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fcustomers \\\n  -H \"Authorization: Bearer $WAGEND_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"name\": \"Marina\", \"phone\": \"+5521988887777\", \"locale\": \"pt\", \"tags\": [\"vip\"],\n        \"address\": { \"street\": \"Rua das Flores\", \"number\": \"120\", \"city\": \"Rio de Janeiro\", \"formatted\": \"Rua das Flores 120, Rio de Janeiro\" } }'\n\ncurl -X POST https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fbookings \\\n  -H \"Authorization: Bearer $WAGEND_KEY\" \\\n  -H \"Idempotency-Key: $(uuidgen)\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"service_id\": \"svc_corte\", \"start\": \"2026-10-15T09:45:00-03:00\",\n        \"customer\": { \"name\": \"Marina\", \"phone\": \"+5521988887777\" } }' POST \u002Fbookings faz a pré-reserva e a confirmação em uma única chamada.",{"id":4051,"title":4052,"titles":4053,"content":4054,"level":301},"\u002Fdocs\u002Frecipes#ler-o-que-é-para-hoje","Ler o que é para hoje",[217,4042],"Precisa de bookings:read. GET \u002Fwork-items é a mesma consulta usada pela tela Hoje. curl \"https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fwork-items?view=today&limit=50\" \\\n  -H \"Authorization: Bearer $WAGEND_KEY\"\n\n# Só o que ninguém pegou ainda\ncurl \"https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fwork-items?unassigned=true&limit=50\" \\\n  -H \"Authorization: Bearer $WAGEND_KEY\" Cada tarefa traz seu stage e suas available_actions.",{"id":4056,"title":4057,"titles":4058,"content":4059,"level":301},"\u002Fdocs\u002Frecipes#atribuir-e-fechar-uma-entrega-com-ações","Atribuir e fechar uma entrega com ações",[217,4042],"Precisa de bookings:write. As ações têm o nome dado pela configuração de etapas do negócio (com o modelo de entregas: atribuir, soltar, iniciar, concluir, nao_estava). Consulte-as em available_actions da tarefa. # Atribuir a entrega a um entregador (resource_id é o recurso do entregador)\ncurl -X POST https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fbookings\u002F$TASK_ID\u002Factions\u002Fatribuir \\\n  -H \"Authorization: Bearer $WAGEND_KEY\" \\\n  -H \"Idempotency-Key: $(uuidgen)\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"data\": {}, \"resource_id\": \"'$COURIER_ID'\" }'\n\n# Fechá-la como concluída\ncurl -X POST https:\u002F\u002Fapi.fiuit.com\u002Fv1\u002Fbookings\u002F$TASK_ID\u002Factions\u002Fconcluir \\\n  -H \"Authorization: Bearer $WAGEND_KEY\" \\\n  -H \"Idempotency-Key: $(uuidgen)\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"data\": {} }' Se duas pessoas pegam a mesma tarefa ao mesmo tempo, uma ganha e a outra recebe 409 already_claimed. A ação \"Aceitar entrega\" (aceitar) é para a equipe pelo painel ou Telegram: pega a tarefa com o recurso de quem a executa.",{"id":4061,"title":4062,"titles":4063,"content":4064,"level":301},"\u002Fdocs\u002Frecipes#receber-avisos-por-webhook","Receber avisos por webhook",[217,4042],"Registre um endpoint (veja Webhooks) e verifique a assinatura antes de processar. Exemplo mínimo com Express: import express from 'express'\nimport { verifyWagend } from '.\u002Fverify' \u002F\u002F a função da página de Webhooks\n\nconst app = express()\napp.post('\u002Fwagend', express.raw({ type: 'application\u002Fjson' }), (req, res) => {\n  const raw = req.body.toString('utf8')\n  if (!verifyWagend(raw, req.header('Wagend-Signature') ?? '', process.env.WAGEND_WEBHOOK_SECRET!)) {\n    return res.sendStatus(400)\n  }\n  const event = JSON.parse(raw)\n  if (event.type === 'booking.confirmed') console.log('Nova reserva', event.data.booking.id)\n  res.sendStatus(200) \u002F\u002F responda 2xx rápido; duplicados são descartados por event.id\n})\napp.listen(3000)",{"id":4066,"title":4067,"titles":4068,"content":4069,"level":263},"\u002Fdocs\u002Frecipes#modelos-por-negócio","Modelos por negócio",[217],"Cada receita corresponde a um modelo pronto que você escolhe no onboarding.",{"id":4071,"title":4072,"titles":4073,"content":4074,"level":263},"\u002Fdocs\u002Frecipes#barbearia","Barbearia",[217],"Cada barbeiro é um recurso staff exclusive com seu próprio horário. Uma equipe, customer_choice com round_robin como alternativa. {\n  \"name\": \"Corte\",\n  \"duration_min\": 30,\n  \"step_min\": 15,\n  \"buffer_after_min\": 5,\n  \"price_cents\": 5000,\n  \"requirements\": [{ \"resource_group_id\": \"grp_barbers\", \"units\": 1 }]\n}",{"id":4076,"title":4077,"titles":4078,"content":4079,"level":263},"\u002Fdocs\u002Frecipes#estética","Estética",[217],"Profissionais, máquinas e cabines são recursos separados. O serviço exige os três ao mesmo tempo, então o mais escasso (geralmente a máquina) limita a agenda. {\n  \"name\": \"Depilação a laser\",\n  \"duration_min\": 45,\n  \"buffer_after_min\": 10,\n  \"price_cents\": 18000,\n  \"deposit_cents\": 5000,\n  \"requirements\": [\n    { \"resource_group_id\": \"grp_professionals\", \"units\": 1 },\n    { \"resource_group_id\": \"grp_lasers\", \"units\": 1 },\n    { \"resource_group_id\": \"grp_rooms\", \"units\": 1 }\n  ]\n}",{"id":4081,"title":4082,"titles":4083,"content":4084,"level":263},"\u002Fdocs\u002Frecipes#clínica","Clínica",[217],"Médico mais consultório, por unidade (um workspace por unidade). Dados de saúde são sensíveis: o assistente nunca pergunta sintomas, e o formulário coleta só o necessário para agendar. {\n  \"name\": \"Consulta\",\n  \"duration_min\": 30,\n  \"buffer_after_min\": 10,\n  \"intake_form\": { \"type\": \"object\", \"properties\": { \"convenio\": { \"type\": \"string\" } } },\n  \"requirements\": [\n    { \"resource_group_id\": \"grp_doctors\", \"units\": 1 },\n    { \"resource_group_id\": \"grp_offices\", \"units\": 1 }\n  ]\n}",{"id":4086,"title":4087,"titles":4088,"content":4089,"level":263},"\u002Fdocs\u002Frecipes#restaurante","Restaurante",[217],"O salão é um recurso pooled com 40 unidades (lugares) por turno. A duração cresce com o tamanho do grupo, e grupos grandes pagam sinal. {\n  \"name\": \"Mesa\",\n  \"step_min\": 30,\n  \"duration_by_units\": [\n    { \"max_units\": 2, \"duration_min\": 90 },\n    { \"max_units\": 4, \"duration_min\": 120 },\n    { \"max_units\": 20, \"duration_min\": 150 }\n  ],\n  \"requirements\": [{ \"resource_group_id\": \"grp_dining_room\", \"units\": \"party_size\" }]\n} O modo mesas (mesas específicas com tamanho mínimo e máximo, e combinações) está no roadmap.",{"id":4091,"title":4092,"titles":4093,"content":4094,"level":263},"\u002Fdocs\u002Frecipes#entregas","Entregas",[217],"Cada zona é um recurso pooled com capacidade por janela de 2 horas. A zona é escolhida pelo CEP, e uma regra de corte fecha as janelas do mesmo dia ao meio-dia. {\n  \"name\": \"Entrega\",\n  \"window_mode\": true,\n  \"duration_min\": 120,\n  \"cutoff_rule\": { \"same_day_until\": \"12:00\" },\n  \"intake_form\": { \"type\": \"object\", \"required\": [\"address\", \"cep\"] },\n  \"requirements\": [{ \"resource_group_id\": \"grp_zones\", \"units\": 1, \"select_by\": \"cep\" }]\n}",{"id":4096,"title":4097,"titles":4098,"content":4099,"level":263},"\u002Fdocs\u002Frecipes#wagy-configure-seu-negócio-com-wagy","Wagy · Configure seu negócio com Wagy",[217],"Você pode pular a entrevista e retomar pelo checklist. A equipe e os horários são revisados em uma proposta antes de confirmar. Serviços e produtos sugeridos ficam como rascunhos privados até completar seus dados e confirmá-los. Se Wagy não puder sugerir, preencha manualmente. A entrevista usa os mesmos campos do formulário: o marco «Montar meu negócio» reúne ramo, equipe, horários e catálogo revisado em uma confirmação. O ramo instala apenas vocabulário, etapas e exemplos inativos; não cria pessoas, horários ou preços de modelo. Seu plano informa o máximo de recursos antes da proposta. Acima de 25 mudanças, confirme Base e depois Catálogo; é possível desfazê-los na ordem inversa, em até 24 horas se ninguém os alterou. Rascunhos incompletos continuam privados. Não envia convites de acesso. Para alterar alguém existente, use Equipe pela identidade. Depois de confirmar a base, os nomes informados são propostos em ordem para os recursos anônimos intactos dessa configuração. Se houver mais nomes, são criados os recursos que faltam; se houver menos, permanecem os anônimos restantes. Recursos editados, vinculados a usuários ou com atribuições são preservados, e a confirmação verifica isso novamente. O botão de retomar aparece somente enquanto essa fase está pendente. Renomear ou reordenar um serviço ou produto preserva a origem e o estado do preço sugerido. Somente editar o campo do valor confirma o preço. Retomar a configuração reutiliza os horários individuais sem alterações; editar o horário geral preserva as exceções de cada pessoa. html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"id":227,"title":226,"titles":4101,"content":4102,"level":257},[],"Respostas rápidas sobre pré-reservas, sinais, horários ocupados, cancelamentos e faltas. Esta página reúne as dúvidas mais comuns sobre como um agendamento se comporta. Cada resposta diz o que acontece, por quê e onde você vê.",{"id":4104,"title":4105,"titles":4106,"content":4107,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#e-se-o-cliente-demora-para-confirmar","E se o cliente demora para confirmar?",[226],"O horário fica guardado por 10 minutos (15 se o serviço pede sinal) e depois é liberado sozinho. Assim outro cliente pode pegá-lo e uma conversa abandonada nunca bloqueia um horário. Você vê em Trabalho, onde a pré-reserva vencida deixa de ocupar a agenda.",{"id":4109,"title":4110,"titles":4111,"content":4112,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#e-se-o-horário-foi-ocupado-enquanto-ele-decidia","E se o horário foi ocupado enquanto ele decidia?",[226],"O sistema não confirma o agendamento e propõe horários alternativos. É a garantia de zero overbooking: ninguém fica com um horário que já tem dono. O bot e o chat web oferecem ao cliente as outras opções.",{"id":4114,"title":4115,"titles":4116,"content":4117,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#e-se-dois-clientes-agendam-ao-mesmo-tempo","E se dois clientes agendam ao mesmo tempo?",[226],"Ganha o primeiro e o segundo recebe alternativas. Se um agendamento usa vários recursos e um deles está ocupado, nenhum é reservado: o agendamento é gravado completo ou não é gravado.",{"id":4119,"title":4120,"titles":4121,"content":4122,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#e-se-o-serviço-pede-sinal","E se o serviço pede sinal?",[226],"Ao confirmar, o agendamento fica aguardando o sinal e o horário continua bloqueado. Quando o provedor de pagamentos confirma a cobrança, o agendamento passa a confirmado. Enquanto isso você o vê na agenda com o status de espera. Veja Agendamentos e pré-reservas.",{"id":4124,"title":4125,"titles":4126,"content":4127,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#e-se-eu-reagendo-um-agendamento","E se eu reagendo um agendamento?",[226],"É criado um agendamento novo e o anterior é cancelado, vinculados entre si. Os lembretes pendentes se movem sozinhos para o novo horário, então o cliente não recebe avisos do horário antigo.",{"id":4129,"title":4130,"titles":4131,"content":4132,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#e-se-eu-cancelo-um-agendamento","E se eu cancelo um agendamento?",[226],"O horário é liberado na hora e os lembretes pendentes são cancelados. O cliente pode receber o aviso de cancelamento se você o ativou em Configuração → Avisos ao cliente.",{"id":4134,"title":4135,"titles":4136,"content":4137,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#e-se-um-cliente-não-aparece","E se um cliente não aparece?",[226],"Nada automático. O sistema pode sugerir a falta, mas quem a marca é uma pessoa da equipe: assim nunca se registra uma falta por engano.",{"id":4139,"title":4140,"titles":4141,"content":4142,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#e-se-paga-tarde-e-o-horário-já-foi-liberado","E se paga tarde e o horário já foi liberado?",[226],"O dinheiro fica separado como a devolver na tarefa, na conta do cliente e no Finanças; não compensa outras dívidas. A equipe recebe um aviso por pagamento. Dono ou Gerente pode devolver pelo Mercado Pago ou confirmar Usar para outra dívida. Não há reabertura nem devolução automática.",{"id":4144,"title":4145,"titles":4146,"content":4147,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#e-se-há-uma-reclamação-aberta-no-mercado-pago","E se há uma reclamação aberta no Mercado Pago?",[226],"Fica como Reclamação aberta: não devolva até a resolução e não use para outra dívida. Se o negócio vence, volta a ficar a devolver; se o cliente recebe o reembolso, não há valor pendente.",{"id":4149,"title":4150,"titles":4151,"content":4152,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#quando-vence-o-link-e-se-o-aviso-chega-depois","Quando vence o link e se o aviso chega depois?",[226],"Vence 15 minutos antes do agendamento; em prazos curtos, a margem é metade do tempo disponível e pelo menos cinco minutos. Sem cinco minutos de vida útil, não é criado e a cobrança fica manual. Um pagamento verificado aprovado a tempo ainda pode cobrir um agendamento pendente após o link vencer; um agendamento fechado fica em revisão. O recibo mantém ambos os prazos.",{"id":4154,"title":4155,"titles":4156,"content":4157,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#onde-o-cliente-paga-e-voltar-do-mercado-pago-confirma","Onde o cliente paga e voltar do Mercado Pago confirma?",[226],"O sinal eletrônico está disponível em reais e pesos argentinos pelo Checkout Pro hospedado; Pix é pago dentro do Mercado Pago, sem pedir CPF ou cartão no Fiuit. Brasil e Argentina conectam por autorização; outros países aceitos usam token e Paraguai não tem Mercado Pago. Voltar abre o portal privado existente ou uma página neutra; nunca confirma o pagamento. Pix nesse checkout não tem prazo separado definido pelo Fiuit.",{"id":4159,"title":4160,"titles":4161,"content":4162,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#e-se-há-pagamento-parcial-ou-link-incerto","E se há pagamento parcial ou link incerto?",[226],"Um parcial aprovado a tempo reduz o sinal e pode criar um link pela diferença, sem estender o prazo original nem passar de duas horas antes do horário. A cobertura aplicada mantém o horário em revisão. Se a criação do link ficou incerta, só sete dias de consultas vazias bem-sucedidas permitem liberar na próxima consulta, até um dia depois. Erro ou falta de acesso reinicia a evidência. Dono ou Gerente pode confirmar Liberar o horário na tarefa: preserva dinheiro e não devolve.",{"id":4164,"title":4165,"titles":4166,"content":4167,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#sinais-retidos-geram-comissão-e-como-se-atribui-o-trabalho","Sinais retidos geram comissão e como se atribui o trabalho?",[226],"Sinais retidos por falta, cancelamento ou falha são receita do negócio, sem comissão nem recebimentos sem atribuição. As demais comissões usam o recebido e pertencem a quem tinha a tarefa atribuída ao concluí-la; aberta, a quem a tem hoje. Entre várias pessoas se divide igualmente. Gorjetas ficam à parte. Em Finanças → Comissões, o relatório é calculado na hora sem fechamento diário; cada tarefa conta uma vez e staff vê só o seu. Um sinal nunca aplicado não cobre o valor nem gera comissão para a tarefa original, inclusive após reembolso ou transferência para crédito livre. Tarefas vencidas também não geram comissão.",{"id":4169,"title":4170,"titles":4171,"content":4172,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#e-se-devolvo-um-recebimento-que-gerou-comissão","E se devolvo um recebimento que gerou comissão?",[226],"O estorno desconta da mesma pessoa e usa a regra do recebimento original, mesmo que tenha terminado ou mudado. Um reembolso parcial do Mercado Pago é descontado sozinho no dia em que chega o aviso com o valor, sem mudar os dias anteriores. Se o aviso não traz o valor, o recebimento conta inteiro e Dono ou Gerente veem o alerta. Em recebimentos por QR ou Point o valor nunca chega: o alerta fica até o reembolso total e, se quiser descontar antes, faça um ajuste de comissão. Veja em Finanças → Comissões.",{"id":4174,"title":4175,"titles":4176,"content":4177,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#como-aparecem-os-valores","Como aparecem os valores?",[226],"Cada projeto usa o símbolo local da moeda em todos os idiomas, com seus decimais habituais: reais com R$, guaranis com ₲ e dólares com US$. O código fica onde se comparam moedas. Muda a apresentação, não os valores.",{"id":4179,"title":4180,"titles":4181,"content":4182,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#a-fiuit-cobra-uma-comissão-por-cada-cobrança","A Fiuit cobra uma comissão por cada cobrança?",[226],"Só se você combinou isso com a Fiuit: por padrão é 0. Se o seu acordo a inclui, o Mercado Pago a desconta de\nsinais e links de serviço ou saldo com a sua conta vinculada e o restante chega à sua conta como sempre. Se\nnão puder ser aplicada por moeda ou valor, a cobrança segue sem comissão e a Fiuit\nrecebe um aviso. Nunca se aplica a cobranças manuais nem se sua conta não está vinculada à Fiuit (Financeiro\navisa). Você vê a comissão vigente em Financeiro, somente leitura.",{"id":4184,"title":4185,"titles":4186,"content":4187,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#qual-comissão-da-fiuit-vale-para-uma-cobrança-recebida-depois-do-cancelamento","Qual comissão da Fiuit vale para uma cobrança recebida depois do cancelamento?",[226],"Se o pagamento for confirmado depois de cancelar, vencer ou falhar, mantém a comissão do acordo original,\nmesmo que ao fechar o link ela tenha ficado em zero. Isso também vale para devoluções e contestações.\nSó continua em zero se o seu acordo não permitia aplicá-la a essa cobrança (moeda ou valor).\nVocê consulta sua comissão em Financeiro.",{"id":4189,"title":4190,"titles":4191,"content":4192,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#e-se-o-mercado-pago-não-retiver-a-comissão-da-fiuit-em-um-link","E se o Mercado Pago não retiver a comissão da Fiuit em um link?",[226],"O link é enviado mesmo assim e a cobrança mantém a comissão do seu acordo vigente ao criá-la; a Fiuit\nrecebe um aviso para regularizá-la por outra via. A comissão de cada cobrança é fixada pela Fiuit com\no seu acordo e não muda depois. Só fica em zero se o seu acordo não permitia aplicá-la a essa cobrança\nou se a cobrança foi encerrada sem receber dinheiro. Você vê isso em Financeiro.",{"id":4194,"title":4195,"titles":4196,"content":4197,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#posso-devolver-o-dinheiro-a-um-cliente-que-pagou-pelo-mercado-pago","Posso devolver o dinheiro a um cliente que pagou pelo Mercado Pago?",[226],"Sim, se você é Dono ou Gerente. Na tarefa, seção Cobrança, toque em Devolver no pagamento: você escolhe o valor (tudo ou uma parte) e o motivo. Nunca se devolve mais do que o recebido e, se o Mercado Pago demorar para confirmar, o Fiuit consulta o Mercado Pago antes de pedir de novo, então nunca devolve duas vezes. Se continuar sem confirmação, avisa você para conferir no Mercado Pago.",{"id":4199,"title":4200,"titles":4201,"content":4202,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-sinal-é-devolvido-se-o-cliente-cancelar-com-antecedência","O sinal é devolvido se o cliente cancelar com antecedência?",[226],"Só se o serviço tiver configurada a janela de cancelamento: cancelar com pelo menos essas horas de antecedência devolve o sinal pago pelo Mercado Pago. Se cancelar depois, o sinal fica retido. O valor devolvido deixa de contar como sinal recebido nas estatísticas.",{"id":4204,"title":4205,"titles":4206,"content":4207,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-se-o-cliente-contestar-um-pagamento-no-mercado-pago","O que acontece se o cliente contestar um pagamento no Mercado Pago?",[226],"É uma contestação: a cobrança fica marcada como Contestada, o valor deixa de contar como recebido e o Dono e Gerente recebem um aviso para revisar a tarefa. O Fiuit não faz mais nada sozinho.",{"id":4209,"title":4210,"titles":4211,"content":4212,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-se-o-cliente-contestar-um-pagamento-que-eu-já-devolvi","O que acontece se o cliente contestar um pagamento que eu já devolvi?",[226],"A cobrança continua como Devolvida: o valor já foi descontado na devolução e não é descontado de novo no Financeiro nem nas comissões. O Dono e Gerente recebem um aviso para conferir no Mercado Pago que o valor não seja descontado duas vezes.",{"id":4214,"title":4215,"titles":4216,"content":4217,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-se-minha-conta-do-mercado-pago-é-de-outro-país-ou-moeda","O que acontece se minha conta do Mercado Pago é de outro país ou moeda?",[226],"O Fiuit não cria links de pagamento com essa conta e as cobranças continuam manuais, para que nenhum cliente pague em uma moeda diferente da do seu negócio. Em Finanças → Cobranças você vê a explicação: conecte uma conta do país do projeto ou corrija a moeda em Meu negócio → Dados.",{"id":4219,"title":4220,"titles":4221,"content":4222,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#posso-enviar-ao-cliente-um-link-de-pagamento-pelo-que-ele-deve","Posso enviar ao cliente um link de pagamento pelo que ele deve?",[226],"Sim, com uma conta do Mercado Pago do Brasil ou da Argentina conectada. Na tarefa, seção Cobrança, toque em Cobrar com link: o Fiuit cria um link pelo saldo (nunca por um valor digitado) e envia pela conversa do cliente ou copia. Vence em 48 horas e a cobrança aparece sozinha quando ele paga.",{"id":4224,"title":4225,"titles":4226,"content":4227,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-se-eu-enviar-o-link-duas-vezes-ou-o-saldo-mudar","O que acontece se eu enviar o link duas vezes ou o saldo mudar?",[226],"Se o valor é o mesmo, o mesmo link é reutilizado: o cliente nunca recebe dois links para o mesmo. Se o saldo mudou e ainda há um link aberto com o valor anterior, o Fiuit não cria outro: espere ele vencer ou registre a cobrança à mão.",{"id":4229,"title":4230,"titles":4231,"content":4232,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-com-o-link-se-eu-cancelar-a-tarefa","O que acontece com o link se eu cancelar a tarefa?",[226],"Ele é anulado na hora, também no Mercado Pago. Se o cliente mesmo assim chegou a pagar (por exemplo, com um Pix que já tinha gerado), o pagamento vira crédito do cliente e a cobrança fica em revisão: Dono e Gerente recebem um aviso para decidir se devolvem ou usam para outra dívida.",{"id":4234,"title":4235,"titles":4236,"content":4237,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#por-que-o-sistema-pede-a-forma-de-pagamento-toda-vez-que-registro-uma-cobrança","Por que o sistema pede a forma de pagamento toda vez que registro uma cobrança?",[226],"Porque toda cobrança registrada em mãos (de uma tarefa ou do seu sinal, na conta do cliente, ao vender um pacote ou clube ou cobrar a parcela dele, ou ao avançar uma etapa) usa o mesmo formulário: você escolhe dinheiro, cartão, transferência, Pix, Mercado Pago ou outro, e fica registrado quem recebeu, quanto e como. Assim o caixa e os relatórios fecham. O sinal não é mais marcado como pago ao editar a tarefa: ele é cobrado na seção Cobrança.",{"id":4239,"title":4240,"titles":4241,"content":4242,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-se-um-assinante-não-paga-a-assinatura","O que acontece se um assinante não paga a assinatura?",[226],"Fica em vermelho na ficha dele e em Hoje, Dono e Gerente recebem um aviso e começam os dias de carência do plano (7 por padrão). Se você cobra com link do Mercado Pago, o assinante recebe o link de pagamento na conversa ao ficar sem pagamento e a cada 3 dias. Se a assinatura é cobrada no cartão e a cobrança falha, o assinante recebe «Não conseguimos cobrar sua assinatura» com o link do mês para pagar com outro cartão ou à mão, e a cobrança automática é tentada de novo; cobra-se uma vez só por mês: se ele pagar pelo link ou à mão e depois a nova tentativa automática também entrar, essa cobrança fica para revisar e devolver (avisamos você), e se a nova tentativa entrar antes, o link do mês é anulado. O cartão continua salvo para os meses seguintes. Ao vencer a carência a assinatura fica bloqueada: deixa de cobrir os serviços e o assinante não pode fazer novas reservas desses serviços (nem pelo bot, nem pelo painel ou pela API) até regularizar a mensalidade.",{"id":4244,"title":4245,"titles":4246,"content":4247,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#como-uma-assinatura-bloqueada-é-liberada","Como uma assinatura bloqueada é liberada?",[226],"Sozinha, ao pagar: quando a tarefa do mês (ou todas as pendentes) fica paga ou você a perdoa, ela volta a ficar em dia e a cobrir os serviços. Ninguém bloqueia nem libera à mão, e cancelar sempre é possível. Os dias de carência mudam no plano (Meu negócio → Catálogo → plano → Assinantes).",{"id":4249,"title":4250,"titles":4251,"content":4252,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-se-meu-projeto-ficar-aguardando-pagamento","O que acontece se meu projeto ficar «Aguardando pagamento»?",[226],"A Fiuit não recebeu o pagamento do seu plano (ou você cancelou) e venceram os 14 dias com avisos: fica tudo bloqueado menos pagar e cancelar a assinatura: o painel mostra só a tela para pagar (Assinatura continua aberta), o Wagy deixa de responder, o bot da equipe (WhatsApp e Telegram) só responde que a conta está aguardando pagamento, com o link, e suas API keys (e o MCP) recebem um erro de pagamento pendente. O bot continua atendendo seus clientes, mas não faz novas reservas (nem a reserva pelo site) e as automações pausam. Nenhum dado é apagado. Assim que o pagamento é creditado, o painel volta ao normal sozinho.",{"id":4254,"title":4255,"titles":4256,"content":4257,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-com-meu-whatsapp-se-meu-projeto-ficar-aguardando-pagamento","O que acontece com meu WhatsApp se meu projeto ficar «Aguardando pagamento»?",[226],"Durante a carência o bot continua atendendo pelo WhatsApp. Se depois de 7 dias continuar sem pagamento, seu WhatsApp é desconectado; suas conversas, clientes e histórico continuam intactos. Avisamos 3 dias antes e no dia do corte, e o aviso do painel mostra a data. Depois de pagar, conecte de novo em Atendimento → Canais → WhatsApp: toque em Reconectar e escaneie o QR.",{"id":4259,"title":4260,"titles":4261,"content":4262,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#meus-clientes-podem-fazer-um-pedido-ou-uma-reclamação-se-meu-projeto-estiver-aguardando-pagamento","Meus clientes podem fazer um pedido ou uma reclamação se meu projeto estiver «Aguardando pagamento»?",[226],"Não: como as reservas, enquanto seu projeto está «Aguardando pagamento» não nascem pedidos de produtos nem solicitações como reclamações ou orçamentos, por nenhum caminho. O bot responde que por enquanto não consegue fazer novos pedidos por ali e oferece chamar alguém da equipe, sem mencionar nada do pagamento. Assim que o pagamento é creditado, ele volta a recebê-los sozinho.",{"id":4264,"title":4265,"titles":4266,"content":4267,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#quando-meu-plano-muda-se-eu-pago-com-a-fiuit","Quando meu plano muda se eu pago com a Fiuit?",[226],"Quando a Fiuit confirma seu pagamento: aí o plano que você escolheu é ativado, com seus limites e seu uso de IA. Um erro nosso nunca muda o seu plano nem bloqueia o projeto.",{"id":4269,"title":4270,"titles":4271,"content":4272,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-se-eu-cancelar-ou-não-pagar-o-plano-da-fiuit","O que acontece se eu cancelar ou não pagar o plano da Fiuit?",[226],"Você tem 14 dias em que tudo continua funcionando (se cancelar, eles começam ao terminar o período já pago). Enquanto isso você vê um banner com «Pagar agora», a Wagy lembra e avisamos por e-mail e Telegram no início, na metade, a 3 dias e no último dia. Se o prazo vencer sem pagamento, o painel mostra só a tela para pagar, o bot continua atendendo seus clientes mas não aceita pedidos novos e as automações pausam. Nenhum dado é apagado nem o seu plano muda, e assim que você paga tudo volta na hora.",{"id":4274,"title":4275,"titles":4276,"content":4277,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#como-vejo-quais-clientes-estão-com-o-clube-ou-a-assinatura-com-pagamento-pendente","Como vejo quais clientes estão com o clube ou a assinatura com pagamento pendente?",[226],"Hoje mostra um alerta vermelho (para Dono e Gerente) com cada cliente inadimplente, seu plano e, no clube, quantos meses deve; toque na linha para abrir a ficha. Você também pode abrir um plano em Meu negócio → Catálogo e usar «Inadimplentes» em Assinantes. Consultar não altera os benefícios.",{"id":4279,"title":4280,"titles":4281,"content":4282,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#posso-avisar-automaticamente-um-cliente-de-que-o-clube-dele-está-com-pagamento-pendente","Posso avisar automaticamente um cliente de que o clube dele está com pagamento pendente?",[226],"Sim: em Atendimento → Mensagens automáticas → «Recomendadas para o seu negócio» ative «Lembrete de clube com pagamento pendente». Ele escreve ao cliente na conversa dele, uma vez por mês em atraso, e respeita a janela de 24 h do canal, o horário de silêncio (21:00 às 08:00) e os clientes que pediram para não receber avisos. Vem desativado até você ativar; a assinatura não usa esse lembrete porque já recebe o link de pagamento.",{"id":4284,"title":4285,"titles":4286,"content":4287,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#e-o-valor-da-tarefa-se-eu-reagendar","E o valor da tarefa se eu reagendar?",[226],"Se você ajustou o valor à mão (ou ele mudou por uma alteração do pedido), a tarefa o mantém com o motivo ao movê-la de horário ou de dia e ao esticá-la ou encurtá-la. Se tinha o preço do serviço sem ajuste, ela pega o preço atual do serviço; se um pacote ou clube a cobre, vale o plano. Você vê na seção Cobrança da tarefa.",{"id":4289,"title":4290,"titles":4291,"content":4292,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-plano-volta-a-cobrir-uma-tarefa-se-eu-reagendar-depois-de-removê-lo","O plano volta a cobrir uma tarefa se eu reagendar depois de removê-lo?",[226],"Não. Se você tocou em Tirar plano, a nova tarefa continua sem plano, mesmo após vários reagendamentos. Mudar o horário não desfaz sua decisão de cobrança. Confira em Trabalho, na seção Cobrança da tarefa.",{"id":4294,"title":4295,"titles":4296,"content":4297,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#qual-valor-é-cobrado-se-eu-remover-o-plano-depois-de-reagendar","Qual valor é cobrado se eu remover o plano depois de reagendar?",[226],"Vale o valor combinado antes do plano, não o preço atual do serviço: se você ajustou para 2000, mantém 2000. Isso também vale se o novo horário ficar sem cobertura. Confira em Trabalho, na seção Cobrança da tarefa.",{"id":4299,"title":4300,"titles":4301,"content":4302,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-se-o-cliente-quiser-pagar-pelo-chat-e-eu-não-tiver-mercado-pago","O que acontece se o cliente quiser pagar pelo chat e eu não tiver Mercado Pago?",[226],"Se a cobrança pelo chat estiver em «Perguntar a forma de pagamento» e você cadastrou seus dados para pagar (chave Pix ou dados bancários) em Finanças → Cobranças → Cobrança pelo chat, o bot os mostra ao cliente com o total do pedido. Quando o cliente escreve «Já paguei», chega o aviso «Cliente avisou que pagou» (uma única vez por pedido): confira se o dinheiro entrou e registre a cobrança na tarefa. Nunca é registrada sozinha. Sem dados cadastrados, o cliente paga ao receber.",{"id":4304,"title":4305,"titles":4306,"content":4307,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#posso-cobrar-antecipado-de-um-cliente-que-pede-pelo-chat","Posso cobrar antecipado de um cliente que pede pelo chat?",[226],"Sim, com uma conta do Mercado Pago pronta. Na ficha do serviço, em Cobrança pelo chat, você escolhe o que o bot faz quando o cliente confirma o pedido: que pague ao receber (como sempre), perguntar como quer pagar ou enviar o link de pagamento. O valor é calculado pelo Fiuit com o total do pedido e, quando paga, o cliente recebe «Recebemos seu pagamento» e a tarefa fica paga.",{"id":4309,"title":4310,"titles":4311,"content":4312,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-se-o-cliente-não-pagar-o-link-do-pedido","O que acontece se o cliente não pagar o link do pedido?",[226],"O link vence em 24 horas. Conforme o que você escolheu no serviço, o pedido continua como «paga ao receber» ou é cancelado, e o cliente recebe uma única mensagem que explica o motivo e oferece pedir de novo. Um pedido já entregue nunca é cancelado por isso.",{"id":4314,"title":4315,"titles":4316,"content":4317,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-com-o-link-se-o-total-do-pedido-mudar","O que acontece com o link se o total do pedido mudar?",[226],"O link antigo é anulado para que ninguém pague um valor que não corresponde mais, e o bot envia ao cliente um novo pelo total atual. Na tarefa você vê «Link anulado por mudança no total»; se foi você que enviou, toque em Cobrar ali mesmo para enviar um novo.",{"id":4319,"title":4320,"titles":4321,"content":4322,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#onde-escolho-como-cobrar-pelo-chat-por-padrão","Onde escolho como cobrar pelo chat por padrão?",[226],"Em Finanças → Cobranças → Cobrança pelo chat, escolha pagar ao receber, perguntar ou enviar link, com as opções de preparo e vencimento. Os serviços herdam essa regra; na ficha de cada um, escolha uma regra própria ou volte a «Usar o padrão do negócio». Negócios existentes continuam pagando ao receber até você mudar.",{"id":4324,"title":4325,"titles":4326,"content":4327,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#posso-cobrar-com-o-cartão-do-cliente-pelo-painel","Posso cobrar com o cartão do cliente pelo painel?",[226],"Sim, se você é Dono ou Gerente e o cliente está presente ou ao telefone. Na tarefa, seção Cobrança, toque em Cartão: abre o formulário seguro do Mercado Pago com o saldo. Os dados do cartão vão para o Mercado Pago; o Fiuit não os vê nem os guarda.",{"id":4329,"title":4330,"titles":4331,"content":4332,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-se-o-cartão-for-recusado-ou-o-mercado-pago-não-responder","O que acontece se o cartão for recusado ou o Mercado Pago não responder?",[226],"Se for recusado, você vê o motivo e pode tentar outro cartão: nada foi cobrado. Se o Mercado Pago não responder, a cobrança fica «verificando» e não dá para cobrar de novo até saber o resultado; se em meia hora não houver pagamento, fica como não cobrada.",{"id":4334,"title":4335,"titles":4336,"content":4337,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-com-o-link-se-eu-cobrar-com-cartão","O que acontece com o link se eu cobrar com cartão?",[226],"Cobrar com cartão anula o link ou o QR aberto dessa tarefa, para que o cliente não pague duas vezes. Se mesmo assim chegar um pagamento de um link anulado, fica como crédito do cliente e a equipe revisa.",{"id":4339,"title":4340,"titles":4341,"content":4342,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#posso-cobrar-com-qr-na-porta-ou-no-balcão","Posso cobrar com QR na porta ou no balcão?",[226],"Sim, com uma conta do Mercado Pago do Brasil ou da Argentina conectada. Na tarefa, seção Cobrança, toque em Cobrar com QR: aparece um QR em tela cheia pelo saldo e, quando o cliente paga com o Mercado Pago ou o app do banco, a tela mostra Pago! e a cobrança fica na tarefa. O QR vence em 15 minutos.",{"id":4344,"title":4345,"titles":4346,"content":4347,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-com-o-link-se-eu-cobrar-com-qr","O que acontece com o link se eu cobrar com QR?",[226],"Pedir o QR anula o link aberto daquela tarefa, para o cliente não pagar duas vezes. Com um QR aberto não se cria um link. Se mesmo assim chegar um pagamento de um link ou QR anulado, ele fica como crédito do cliente e a equipe revisa.",{"id":4349,"title":4350,"titles":4351,"content":4352,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#por-que-não-aparece-cobrar-com-qr","Por que não aparece «Cobrar com QR»?",[226],"O Mercado Pago pede o endereço do negócio com a localização no mapa para cobrar com QR. Cadastre-o em Meu negócio → Dados; em Finanças → Cobranças você vê se o QR está disponível e, se não, o motivo.",{"id":4354,"title":4355,"titles":4356,"content":4357,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-cliente-é-avisado-antes-de-o-link-de-pagamento-vencer","O cliente é avisado antes de o link de pagamento vencer?",[226],"Só se você ativar. Na ficha do serviço, em Cobrança pelo chat, ative «Lembrar o cliente antes de vencer»: 3 horas antes chega um único aviso com o link, só se ele ainda não pagou (nunca se já pagou, o link foi anulado ou o pedido foi cancelado), no idioma dele e não à noite. Também se escolhe em Finanças → Cobranças → Cobrança pelo chat para o negócio todo.",{"id":4359,"title":4360,"titles":4361,"content":4362,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#posso-cobrar-com-a-minha-maquininha-point-pela-tarefa","Posso cobrar com a minha maquininha Point pela tarefa?",[226],"Sim, com uma maquininha Point Smart e uma conta do Mercado Pago do Brasil ou da Argentina. Vincule-a em Finanças → Cobranças → Maquininha Point; depois, na tarefa, seção Cobrança, toque em Cobrar com Point: a maquininha recebe o valor que falta e o cliente paga nela com cartão, QR ou Pix. A cobrança fica na tarefa quando o Mercado Pago confirma.",{"id":4364,"title":4365,"titles":4366,"content":4367,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-se-eu-cancelar-uma-cobrança-point-e-o-cliente-já-estava-pagando","O que acontece se eu cancelar uma cobrança Point e o cliente já estava pagando?",[226],"A Fiuit pede ao Mercado Pago que a cancele e não envia outra cobrança até a confirmação. Se o pagamento chegar mesmo assim, não se perde: fica como crédito do cliente e a equipe revisa.",{"id":4369,"title":4370,"titles":4371,"content":4372,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#por-que-não-consigo-trocar-a-maquininha-point","Por que não consigo trocar a maquininha Point?",[226],"Porque há uma cobrança aberta nessa maquininha. Quando for paga, cancelada ou vencer (15 minutos), em Finanças → Cobranças você poderá trocá-la ou desvinculá-la.",{"id":4374,"title":4375,"titles":4376,"content":4377,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#posso-cobrar-o-total-ao-reservar-um-horário","Posso cobrar o total ao reservar um horário?",[226],"Sim. Na ficha do serviço, em Cobrança ao reservar, escolha Não cobrar, Sinal ou Total. Com Total, o horário fica aguardando o pagamento do valor completo e é confirmado quando o pagamento é creditado; se não pagar a tempo o horário é liberado e, se cancelar com antecedência, o valor é devolvido conforme a sua janela de cancelamento. Em Finanças → Cobranças você vê o que cada serviço cobra.",{"id":4379,"title":4380,"titles":4381,"content":4382,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#por-que-não-consigo-colar-o-token-do-mercado-pago","Por que não consigo colar o token do Mercado Pago?",[226],"No Chile, Uruguai, Colômbia, México e Peru a conta é conectada colando o token, mas o Fiuit habilita país por país. Enquanto não estiver habilitado no seu país, Finanças → Cobranças diz que ainda não está disponível e os pagamentos são registrados à mão. Se você já tinha uma conta conectada, ela continua visível e você pode desconectá-la.",{"id":4384,"title":4385,"titles":4386,"content":4387,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#posso-apagar-ou-corrigir-uma-despesa","Posso apagar ou corrigir uma despesa?",[226],"Não se apaga: é anulada com um motivo e fica registrado quem e quando. Enquanto está vigente, você pode corrigi-la e cada mudança fica registrada. As comissões da equipe não são lançadas como despesa: a Fiuit as calcula sozinha.",{"id":4389,"title":4390,"titles":4391,"content":4392,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-com-as-despesas-que-minha-equipe-lança","O que acontece com as despesas que minha equipe lança?",[226],"Ficam pendentes até o Dono ou um Gerente aprovarem: enquanto isso não somam ao resultado. Se forem recusadas, ficam com o motivo e também não somam. Ninguém aprova uma despesa que lançou, e cada pessoa da equipe vê só as suas.",{"id":4394,"title":4395,"titles":4396,"content":4397,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#posso-organizar-minhas-despesas-com-minhas-próprias-etiquetas","Posso organizar minhas despesas com minhas próprias etiquetas?",[226],"Sim. Ao lançar uma despesa, escreva uma ou várias etiquetas («moto», «loja centro»); as novas são criadas ali mesmo. A etiqueta lembra a última categoria com que você a usou e a preenche sozinha da próxima vez (dá para trocar). Em Finanças → Movimentações você filtra por etiqueta e vê «despesas com esta etiqueta»; uma despesa pode ter várias, então esses totais não se somam entre si.",{"id":4399,"title":4400,"titles":4401,"content":4402,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#posso-mudar-o-nome-de-uma-categoria-de-despesa","Posso mudar o nome de uma categoria de despesa?",[226],"Não: as categorias são fixas porque delas saem o resultado e o fluxo de caixa. Para se organizar do seu jeito, use etiquetas; em Finanças → Movimentações → Despesas → Etiquetas você renomeia, junta ou apaga (apagar uma etiqueta não apaga despesas).",{"id":4404,"title":4405,"titles":4406,"content":4407,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#recebo-um-aviso-quando-alguém-da-equipe-lança-uma-despesa","Recebo um aviso quando alguém da equipe lança uma despesa?",[226],"Sim: o Dono e cada Gerente recebem um aviso por Telegram, WhatsApp ou e-mail com o valor e a categoria (nunca a nota). Quem lançou não recebe, e se alguém já aprovou ou recusou, não chega. Você silencia em Minha conta → Avisos.",{"id":4409,"title":4410,"titles":4411,"content":4412,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-bot-avisa-o-cliente-se-ele-perde-o-sinal-ao-cancelar","O bot avisa o cliente se ele perde o sinal ao cancelar?",[226],"Sim. Se ele cancelar pelo chat um agendamento com o sinal pago pelo Mercado Pago, a pergunta de SIM ou NÃO já diz se o sinal é devolvido ou retido, com o valor, conforme a janela de cancelamento do serviço; ao cancelar, o bot repete. Se ele perguntar «se eu cancelar, devolvem o sinal?», o bot responde o mesmo sem cancelar. Cancelar nunca é bloqueado. A janela é configurada em cada serviço.",{"id":4414,"title":4415,"titles":4416,"content":4417,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#como-é-calculado-o-que-me-ficou","Como é calculado o que me ficou?",[226],"Ficou é o que entrou menos o que saiu no período. Entrou é o recebido menos o devolvido (sem cobranças anuladas, de teste nem em revisão). Saiu são as despesas aprovadas, as comissões da equipe que a Fiuit calcula sozinha sobre o recebido e as taxas de cobrança do Mercado Pago e da Fiuit. Despesas sem recurso ficam como «Geral», sem rateio. Se entrou dinheiro e você não lançou nenhuma despesa, a Fiuit avisa que o resultado pode estar inflado.",{"id":4419,"title":4420,"titles":4421,"content":4422,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-eu-passo-para-o-meu-contador","O que eu passo para o meu contador?",[226],"Em Finanças → Resumo toque em «Exportar para o contador»: escolha o período e baixe um Excel com o resumo, cada movimento e os totais por categoria, recurso e serviço, comissões e cobranças eletrônicas, ou um CSV só com os movimentos. São os mesmos números do resultado. A Fiuit não emite documentos fiscais: o arquivo é uma ajuda para o seu contador.",{"id":4424,"title":4425,"titles":4426,"content":4427,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#por-que-o-wagy-pede-para-confirmar-duas-vezes-uma-despesa","Por que o Wagy pede para confirmar duas vezes uma despesa?",[226],"Quando o valor é alto para o seu negócio (a partir do dobro do que você paga por mês no plano) ou já há uma igual nesse dia, o Wagy pede para confirmar com um botão antes de mostrar a despesa para confirmar. Assim um valor mal entendido ou uma mensagem repetida não entram no resultado. As outras despesas são confirmadas uma vez só. Você vê depois em Finanças → Movimentações.",{"id":4429,"title":4430,"titles":4431,"content":4432,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#posso-guardar-a-foto-do-comprovante-de-uma-despesa","Posso guardar a foto do comprovante de uma despesa?",[226],"Sim: uma foto ou um PDF por despesa. A Fiuit não lê o comprovante; o valor é lançado à mão. Se você enviar outro, ele substitui o anterior e a mudança fica no histórico da despesa.",{"id":4434,"title":4435,"titles":4436,"content":4437,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#posso-lançar-uma-despesa-que-se-repete-todo-mês","Posso lançar uma despesa que se repete todo mês?",[226],"Sim: você cria uma vez, toda semana ou todo mês com o seu dia, e a Fiuit lança sozinha em cada data, uma única vez. Dá para pausar, pular a próxima data ou encerrar; o que já foi lançado não muda. Um salário fixo é uma despesa recorrente de «Salários».",{"id":4439,"title":4440,"titles":4441,"content":4442,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#posso-cobrar-uma-tarefa-em-partes-por-exemplo-entre-vários-jogadores","Posso cobrar uma tarefa em partes, por exemplo entre vários jogadores?",[226],"Sim. Na seção Cobrança da tarefa toque em Cobrar uma parte, digite o valor e escolha link, QR, Point ou manual; repita com cada parte. Somando todas as partes abertas nunca se passa do saldo, e a tarefa fica paga quando entra a última.",{"id":4444,"title":4445,"titles":4446,"content":4447,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-com-as-partes-se-o-total-diminuir-ou-alguém-pagar-a-mais","O que acontece com as partes se o total diminuir ou alguém pagar a mais?",[226],"Se o total diminuir e uma parte aberta não couber mais, essa parte é anulada e o aviso fica na tarefa; as outras continuam. Se alguém pagar a mais, o excedente fica a favor do cliente, como qualquer pagamento.",{"id":4449,"title":4450,"titles":4451,"content":4452,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-com-a-comissão-se-eu-devolver-um-recebimento-de-outro-mês","O que acontece com a comissão se eu devolver um recebimento de outro mês?",[226],"A comissão é descontada no mês do recebimento original, não no da devolução; o valor devolvido sai no dia em que você devolve. O mês da devolução mostra um aviso, por exemplo «Devolução de um recebimento de setembro: descontado em setembro». Se setembro já estava fechado, ele não muda: o desconto vira um ajuste automático no primeiro dia ainda aberto.",{"id":4454,"title":4455,"titles":4456,"content":4457,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#posso-corrigir-uma-comissão-já-fechada","Posso corrigir uma comissão já fechada?",[226],"Um fechamento não é reescrito. Se depois um recebimento for anulado ou devolvido, ou uma regra mudar para trás, a diferença aparece como ajuste automático no primeiro dia ainda aberto e entra no próximo fechamento. Um ajuste manual vai em um dia que você ainda não fechou.",{"id":4459,"title":4460,"titles":4461,"content":4462,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#como-envio-ao-meu-contador-os-comprovantes-e-um-resumo-para-assinar","Como envio ao meu contador os comprovantes e um resumo para assinar?",[226],"Em Finanças → Resumo toque em «Exportar para o contador» e escolha «Pacote para o contador (ZIP)»: ele traz o Excel, um resumo em PDF de uma página para assinar e as fotos dos comprovantes das despesas aprovadas do período, cada uma com a data, o valor e a categoria no nome. Se for grande, montamos à parte e avisamos quando estiver pronto; ele fica 48 horas em «Pacotes prontos». Se só quiser a página para assinar, escolha «Resumo em PDF».",{"id":4464,"title":4465,"titles":4466,"content":4467,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-com-o-link-ou-o-qr-aberto-se-o-cliente-paga-uma-parte-por-outro-meio","O que acontece com o link ou o QR aberto se o cliente paga uma parte por outro meio?",[226],"Nunca fica uma cobrança aberta por mais do que se deve. Se o bot já mandou o link, ele manda um novo pelo que falta. Um link, QR ou Point gerado pela equipe é anulado e a tarefa avisa «entrou outro pagamento e o saldo mudou»; toque em Cobrar para gerar uma nova. Um pagamento com cartão em andamento não é alterado.",{"id":4469,"title":4470,"titles":4471,"content":4472,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#a-fiuit-emite-minhas-notas-fiscais","A Fiuit emite minhas notas fiscais?",[226],"Não. Cada negócio emite com o seu próprio emissor. Em Meu negócio → Dados → Dados fiscais o Dono cadastra o regime e marca se emite notas; com isso, a ficha do cliente pede os dados fiscais dele.",{"id":4474,"title":4475,"titles":4476,"content":4477,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#o-que-acontece-com-a-nota-se-eu-devolver-uma-cobrança","O que acontece com a nota se eu devolver uma cobrança?",[226],"A nota nunca é apagada. Se a cobrança já tinha uma nota emitida pelo seu emissor, fica uma nota de crédito pendente pelo valor devolvido, para você emitir.",{"id":4479,"title":4480,"titles":4481,"content":4482,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fsenas-y-reservas#meu-cliente-pode-pagar-pelo-link-de-acompanhamento","Meu cliente pode pagar pelo link de acompanhamento?",[226],"Sim, se você ligar Permitir pagar no link dele (na ficha do cliente, Compartilhar) e enquanto o pedido tiver um link de pagamento aberto: o que o bot enviou ao confirmar ou o que você enviou com Cobrar. Na página de acompanhamento ele vê Pagar com o valor e até quando vale, e paga no Mercado Pago. Quando paga, o link vence ou você o anula, o botão some. Vem desligado e é independente de «Mostrar saldo»; cada pedido mostra só o próprio link.",{"id":231,"title":230,"titles":4484,"content":4485,"level":257},[],"Respostas rápidas sobre avisos ao cliente, horário de silêncio, limites de envio, spam e pausas de canal. O que acontece com as mensagens que saem e entram pelos seus canais, e onde você vê.",{"id":4487,"title":4488,"titles":4489,"content":4490,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#e-se-a-meta-rejeitar-um-modelo-dos-meus-avisos","E se a Meta rejeitar um modelo dos meus avisos?",[230],"Os demais modelos continuam em análise. Em Atendimento → Canais → WhatsApp → WhatsApp oficial, você vê o motivo da última tentativa; se todos falharem, aparece o erro com o código da Meta. Após resolver o motivo, envie novamente para tentar os rascunhos. A Meta decide a aprovação dos novos avisos.",{"id":4492,"title":4493,"titles":4494,"content":4495,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#e-se-um-aviso-do-whatsapp-oficial-não-tiver-o-modelo-aprovado","E se um aviso do WhatsApp oficial não tiver o modelo aprovado?",[230],"No WhatsApp oficial, se o cliente não escreveu nas últimas 24 horas, a Meta só deixa enviar avisos com um modelo aprovado. Cada aviso automático tem o seu (agendamentos, mudanças e cancelamentos, pedidos e entregas, cobranças, avaliações e reativação). Se o modelo ainda não estiver aprovado, o aviso não sai, a conversa fica marcada para a sua equipe e em Canais → WhatsApp → WhatsApp oficial você vê quantos avisos não saíram e qual modelo falta aprovar. A reativação e o agradecimento pela visita são de marketing: só saem se você autorizar, com um máximo próprio por mensagem. No WhatsApp por QR não há modelos e nada muda.",{"id":4497,"title":4498,"titles":4499,"content":4500,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#e-se-eu-ativo-um-lembrete-recomendado","E se eu ativo um lembrete recomendado?",[230],"Os lembretes recomendados são instalados desligados. Nenhum escreve a um cliente até você ligá-lo com o interruptor em Atendimento → Mensagens automáticas. Cada lembrete mostra os últimos envios com o status e o motivo se falhou.",{"id":4502,"title":4503,"titles":4504,"content":4505,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#e-se-um-aviso-fosse-sair-de-noite","E se um aviso fosse sair de noite?",[230],"Entre 21:00 e 08:00 (horário do negócio) nada sai para clientes: o envio é adiado para a manhã, não se perde. Antes de sair, o sistema revisa a tarefa de novo: se foi cancelada ou reagendada, o aviso antigo é descartado.",{"id":4507,"title":4508,"titles":4509,"content":4510,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#e-se-eu-mando-muitos-avisos-juntos","E se eu mando muitos avisos juntos?",[230],"Há um limite de 30 envios automáticos por hora por projeto. Os que sobram são espaçados sozinhos para proteger a linha de WhatsApp.",{"id":4512,"title":4513,"titles":4514,"content":4515,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#e-se-um-cliente-pediu-para-não-receber-promoções","E se um cliente pediu para não receber promoções?",[230],"Ative na ficha dele Não enviar mensagens automáticas de promoção. Isso freia promoções como a reativação, mas os lembretes de agendamento continuam saindo, porque são operacionais.",{"id":4517,"title":4518,"titles":4519,"content":4520,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#e-se-eu-edito-uma-tarefa-várias-vezes-seguidas","E se eu edito uma tarefa várias vezes seguidas?",[230],"Se o aviso de dados modificados está ativo, as edições consecutivas são agrupadas e o cliente recebe um único aviso 60 segundos depois da última. Os avisos por serviço começam desligados e você os configura em Configuração → Avisos ao cliente, onde também vê o registro do que foi enviado e do que foi omitido.",{"id":4522,"title":4523,"titles":4524,"content":4525,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#e-se-um-contato-manda-mensagens-demais","E se um contato manda mensagens demais?",[230],"Se um mesmo contato manda mais de 15 mensagens em 5 minutos (ou 60 em uma hora), o bot para de responder por 30 minutos. As mensagens continuam chegando ao Inbox, marcadas como possível spam, e você pode tocar em Reativar bot antes da hora.",{"id":4527,"title":4528,"titles":4529,"content":4530,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#e-se-a-ia-gasta-demais-de-uma-vez","E se a IA gasta demais de uma vez?",[230],"Se o projeto passa de 300 chamadas à IA em 10 minutos, a IA é pausada sozinha e avisamos você. Ela não volta sozinha, porque pode ser um laço ou um ataque: você a retoma em Configuração → Plano e uso depois de revisar o que aconteceu.",{"id":4532,"title":4533,"titles":4534,"content":4535,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#qual-a-diferença-entre-pausar-o-bot-e-pausar-o-canal","Qual a diferença entre pausar o bot e pausar o canal?",[230],"Pausar bot guarda as mensagens e as deixa no Inbox para atender manualmente, sem gasto de IA. Pausar canal descarta tudo o que chega, pensado para spam ou abuso. Veja Pausas e Estado.",{"id":4537,"title":4538,"titles":4539,"content":4540,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#e-se-vence-a-janela-do-instagram-ou-já-há-vinte-etiquetas","E se vence a janela do Instagram ou já há vinte etiquetas?",[230],"Após 24 horas da última mensagem do cliente, inclusive se vencerem durante o envio, o aviso tenta outro canal utilizável do mesmo cliente. Sem alternativa, fica Não foi possível avisar na atenção de Hoje e no histórico: a marca extra não substitui as vinte etiquetas do negócio. A equipe a remove depois de avisar por conta própria. Reconfirmações SIM\u002FNÃO mantêm o canal; avaliações são canceladas sem marcar a tarefa. Instagram não permite que o negócio inicie uma conversa sem mensagem do cliente.",{"id":4542,"title":4543,"titles":4544,"content":4545,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#desconectar-o-instagram-apaga-os-dados","Desconectar o Instagram apaga os dados?",[230],"Só o Dono conecta ou desconecta, autorizando no mesmo navegador e projeto. Desconectar libera a conta e mantém o histórico; não apaga dados. Revogação é detectada ao enviar, consultar ou renovar. Exclusão por callback ainda está pendente; siga as instruções de privacidade.",{"id":4547,"title":4548,"titles":4549,"content":4550,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#e-se-troco-o-grupo-da-equipe-ou-vira-supergrupo","E se troco o grupo da equipe ou vira supergrupo?",[230],"As tarefas sem responsável são republicadas no grupo novo e botões antigos dizem este grupo não está mais vinculado, sem atribuir. Tarefas livres anteriores ao primeiro vínculo também são oferecidas. Tarefas atribuídas, encerradas, de teste ou sem ação autorizada não são oferecidas. Gerencie em Meu negócio → Equipe e recursos → ficha da pessoa. Telegram não garante evitar duplicação se a conexão cair logo após publicar.",{"id":4552,"title":4553,"titles":4554,"content":4555,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#de-onde-vem-a-foto-dos-meus-clientes","De onde vem a foto dos meus clientes?",[230],"Quando um cliente escreve pelo Telegram ou Instagram, a foto de perfil aparece sozinha e é atualizada de tempos em tempos. O WhatsApp não a compartilha: ficam as iniciais e você pode enviar uma na ficha em Clientes.",{"id":4557,"title":4558,"titles":4559,"content":4560,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#o-que-acontece-se-eu-trocar-ou-remover-a-foto-de-um-cliente","O que acontece se eu trocar ou remover a foto de um cliente?",[230],"A foto escolhida manualmente não é substituída pelo canal. Se você a remover, ficam as iniciais e ela não volta sozinha até você escolher Usar a foto do canal na ficha do cliente.",{"id":4562,"title":4563,"titles":4564,"content":4565,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#quem-vê-a-foto-dos-meus-clientes","Quem vê a foto dos meus clientes?",[230],"Só a sua equipe, no painel e na Mini App (cada pessoa da equipe, a dos próprios clientes). Ela nunca aparece no portal do cliente, nos links públicos nem nas integrações.",{"id":4567,"title":4568,"titles":4569,"content":4570,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#de-onde-vem-o-nome-dos-meus-clientes","De onde vem o nome dos meus clientes?",[230],"Do canal por onde escrevem: o nome do perfil do WhatsApp, Telegram ou Instagram (ou o @usuário, se não tiverem nome), e o número ou @usuário para encontrá-los em Clientes. Só completa o que falta: o nome que você preenche à mão nunca é substituído. Se o Instagram não entregar, a tela Atendimento → Canais → Instagram avisa.",{"id":4572,"title":4573,"titles":4574,"content":4575,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#e-se-um-cliente-me-escrever-pelo-telegram-e-pelo-whatsapp","E se um cliente me escrever pelo Telegram e pelo WhatsApp?",[230],"Se ele compartilhar o próprio contato pelo Telegram (ou escrever pelo WhatsApp com o número que já compartilhou), as duas conversas ficam numa só ficha, sem você fazer nada. Dono e Gerente recebem o aviso «Cliente vinculado entre canais» com o nome do cliente, que leva à ficha; dá para desligar ou mudar o canal em Minha conta → Notificações. O cartão de contato de outra pessoa nunca une fichas.",{"id":4577,"title":4578,"titles":4579,"content":4580,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#e-se-o-cliente-entrou-pelo-formulário-ou-pelo-chat-do-site-e-não-tem-whatsapp","E se o cliente entrou pelo formulário ou pelo chat do site e não tem WhatsApp?",[230],"O aviso de etapa procura primeiro outra conversa dele com saída (por exemplo, o WhatsApp). Se não houver, sai por e-mail, com o mesmo texto e no idioma dele, para o endereço que deixou no formulário ou que consta na ficha. Sem canal nem e-mail, nada é enviado e a bitácora de avisos mostra como omitido. Se o projeto não tem e-mail de saída configurado, também fica omitido.",{"id":4582,"title":4583,"titles":4584,"content":4585,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#por-que-duas-fichas-do-mesmo-cliente-não-foram-unidas","Por que duas fichas do mesmo cliente não foram unidas?",[230],"Elas só se unem sozinhas com um telefone que o canal garante: o número do WhatsApp ou o próprio contato que a pessoa compartilha pelo Telegram (e então Dono e Gerente recebem o aviso «Cliente vinculado entre canais»). Um telefone digitado pela pessoa, o cartão de contato de outra pessoa ou um @usuário não bastam: a ficha mostra a coincidência em Identidades e coincidências para Dono ou Gerente revisarem e confirmarem a união.",{"id":4587,"title":4588,"titles":4589,"content":4590,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#posso-mudar-o-que-o-bot-escreve-ao-cliente-em-cada-etapa","Posso mudar o que o bot escreve ao cliente em cada etapa?",[230],"Sim, em Meu negócio → Etapas: ao editar uma etapa, «Mensagem ao cliente ao entrar» deixa você escrever o seu texto por idioma, com dados que o Fiuit preenche (nome, serviço, data e hora, valor, link). Só o dono salva; o que foi salvo é o que sai, a IA não o reescreve.",{"id":4592,"title":4593,"titles":4594,"content":4595,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#e-se-o-cliente-fala-um-idioma-em-que-não-escrevi-a-mensagem","E se o cliente fala um idioma em que não escrevi a mensagem?",[230],"Ele recebe o texto do modelo no idioma dele. O mesmo vale se o texto usa um dado que a tarefa não tem (por exemplo, um cliente sem nome): nunca sai uma mensagem com buracos.",{"id":4597,"title":4598,"titles":4599,"content":4600,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#editei-a-mensagem-de-uma-etapa-muda-a-das-tarefas-que-já-estão-em-andamento","Editei a mensagem de uma etapa: muda a das tarefas que já estão em andamento?",[230],"Uma tarefa que já entrou na etapa e tem o aviso para sair mantém o texto com o qual entrou. As que entrarem depois usam o texto novo.",{"id":4602,"title":4603,"titles":4604,"content":4605,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#qual-equipe-recebe-minha-consulta-no-site-da-fiuit","Qual equipe recebe minha consulta no site da Fiuit?",[230],"O país escolhido ou detectado define quem recebe os formulários de contato: Argentina e Brasil têm equipes locais; os demais países vão para a equipe global. Sem país confirmado, com país desconhecido, em caso de erro ou durante a detecção, os envios vão para a equipe global, também em português. As apresentações argentinas sempre vão para a Argentina e as brasileiras para o Brasil.\nO chat usa o país da detecção inicial até recarregar a página. Os formulários seguem o seletor; sem destino local usam o global e, se ele também faltar, mostram contato alternativo ou erro sem declarar recebimento.",{"id":4607,"title":4608,"titles":4609,"content":4610,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#o-que-diz-o-aviso-de-designado-se-eu-reservo-uma-quadra-ou-um-lugar","O que diz o aviso de «designado» se eu reservo uma quadra ou um lugar?",[230],"Cita a quadra ou o lugar («Seu pedido de Corte ficou com Quadra 1.»). Só diz «uma pessoa» quando foi designado alguém da equipe. Você vê e edita em Meu negócio → Regras ou nos avisos do serviço.",{"id":4612,"title":4613,"titles":4614,"content":4615,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#como-ligo-ou-desligo-todos-os-avisos-de-um-tema","Como ligo ou desligo todos os avisos de um tema?",[230],"Em Minha conta → Meus avisos cada tema (Conversas, Tarefas, Dinheiro e Sistema) começa recolhido e tem uma caixa por canal: tocá-la liga ou desliga todos os avisos do tema nesse canal. Se houver uma mistura, a caixa aparece indeterminada e um toque liga todos. Abra o tema para escolher aviso por aviso. Um canal que você ainda não pode usar, como o Telegram sem vínculo, aparece desabilitado com o motivo e a caixa do tema não o altera. Você só vê os tipos disponíveis para seu papel; grupos vazios ficam ocultos e salvar preserva as preferências que você não vê.",{"id":4617,"title":4618,"titles":4619,"content":4620,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#onde-se-configura-cada-aviso-e-para-quem-ele-vai","Onde se configura cada aviso e para quem ele vai?",[230],"Os avisos aos seus clientes ficam em Atendimento → Mensagens automáticas; os da equipe, em Configurações → Avisos à equipe; os seus, em Minha conta → Meus avisos. Quando você escolhe quem recebe um aviso da equipe, as opções são sempre as mesmas: Dono, Dono e gerentes, Toda a equipe e Quem tem a tarefa.",{"id":4622,"title":4623,"titles":4624,"content":4625,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#quem-recebe-o-aviso-quando-uma-tarefa-é-criada-concluída-reagendada-ou-cancelada","Quem recebe o aviso quando uma tarefa é criada, concluída, reagendada ou cancelada?",[230],"Dono e Gerente recebem os quatro; quem tem a tarefa atribuída recebe também o de reagendada e o de cancelada. Ninguém recebe o aviso do que fez sozinho, e o staff nunca fica sabendo das tarefas de outra pessoa. Por padrão chegam pelo sino e push; os de reagendada e cancelada também por Telegram e e-mail. Cada pessoa ajusta em Minha conta → Avisos e o Dono pode desligar cada tipo para todo o projeto.",{"id":4627,"title":4628,"titles":4629,"content":4630,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#por-que-não-me-avisam-de-uma-tarefa-que-criei-ou-concluí-eu-mesmo","Por que não me avisam de uma tarefa que criei ou concluí eu mesmo?",[230],"Porque você já sabe: os avisos de tarefa não são enviados a quem fez a ação.",{"id":4632,"title":4633,"titles":4634,"content":4635,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#avisa-se-eu-apagar-uma-tarefa","Avisa se eu apagar uma tarefa?",[230],"Hoje as tarefas não são apagadas, são canceladas, e isso avisa.",{"id":4637,"title":4638,"titles":4639,"content":4640,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#o-que-acontece-se-o-aviso-usar-o-link-de-uma-sala-sem-endereço-de-reunião","O que acontece se o aviso usar o link de uma sala sem endereço de reunião?",[230],"O aviso padrão é enviado, sem espaços vazios. Cadastre um link HTTPS em Equipe e recursos e use a variável do link de reunião na mensagem da etapa. Com salas atribuídas que têm links diferentes, o aviso padrão também é enviado.",{"id":4642,"title":4643,"titles":4644,"content":4645,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#o-que-acontece-se-eu-excluir-todas-as-notificações","O que acontece se eu excluir todas as notificações?",[230],"No sino, toque em «Excluir todas» e confirme: os seus avisos desse projeto são apagados. As notificações das outras pessoas, as de outros negócios e o que está registrado na auditoria não mudam, e os avisos novos continuam chegando. Não dá para desfazer.",{"id":4647,"title":4648,"titles":4649,"content":4650,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#a-fiuit-pode-pausar-a-ia-do-meu-projeto","A Fiuit pode pausar a IA do meu projeto?",[230],"Sim. A equipe da Fiuit pode pausá-la, por exemplo diante de um gasto estranho: é a mesma pausa que você usa, então o bot continua respondendo com um texto fixo, não se gasta IA e você vê o aviso no painel. Você retoma em Configurações → Plano.",{"id":4652,"title":4653,"titles":4654,"content":4655,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#posso-unir-duas-fichas-do-mesmo-cliente-mesmo-que-não-coincidam-exatamente","Posso unir duas fichas do mesmo cliente mesmo que não coincidam exatamente?",[230],"Sim. Na ficha, Mais ações → Unificar com…: você busca a outra por nome, telefone ou email, vê as duas lado a lado, escolhe qual dado fica onde diferem e confirma (Dono ou Gerente). Passam para a ficha mantida as tarefas, as conversas de cada canal, os comentários, os anexos e os endereços; as etiquetas são somadas, e o bot reconhece a pessoa por qualquer um dos canais. Em Clientes, o aviso «possíveis duplicados» reúne as fichas com o mesmo telefone ou email, ou com um nome muito parecido e o mesmo número, para revisar uma por vez. Uma coincidência não verifica a pessoa. Não pode ser desfeito e ainda não vale para fichas com cobranças; se a que será unida tem pacotes ou clubes, unifique ao contrário.",{"id":4657,"title":4658,"titles":4659,"content":4660,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#onde-mudo-o-idioma-e-falo-com-o-suporte-no-painel","Onde mudo o idioma e falo com o suporte no painel?",[230],"Toque na foto ou no nome no rodapé do menu para abrir Minha conta. Ali você escolhe o idioma ou o do projeto e fala com o suporte quando disponível. Sair continua ao lado do nome.",{"id":4662,"title":4663,"titles":4664,"content":4665,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#por-que-recebo-um-único-aviso-quando-muitas-tarefas-são-concluídas","Por que recebo um único aviso quando muitas tarefas são concluídas?",[230],"Se em um minuto você receberia mais de dez avisos do mesmo tipo em um projeto, eles se reúnem em um só com a contagem. Os envios ao celular, Telegram e email esperam um minuto para poder se agrupar; um prazo maior configurado é respeitado. Os avisos de tarefas abrem Trabalho e suas preferências continuam em Minha conta → Meus avisos.",{"id":4667,"title":4668,"titles":4669,"content":4670,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Favisos-y-canales#o-que-acontece-se-enviar-avisos-a-clientes-está-desligado-e-um-aviso-está-ligado","O que acontece se «Enviar avisos a clientes» está desligado e um aviso está ligado?",[230],"Nenhum sai: o interruptor geral para todos os avisos a clientes, mesmo que o de cada etapa, serviço ou lembrete esteja ligado. Com o geral ligado, vale o mais específico: cada aviso sai só se o próprio interruptor estiver ligado. Você vê e muda em Automação → Avisos aos clientes, onde a linha parada diz o motivo.",{"id":235,"title":234,"titles":4672,"content":4673,"level":257},[],"Respostas rápidas sobre o que o bot faz e não faz, quando a conversa passa a uma pessoa e o que acontece com a IA.",{"id":4675,"title":4676,"titles":4677,"content":4678,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#e-se-eu-responder-em-uma-conversa","E se eu responder em uma conversa?",[234],"Ao responder pelo Inbox, API ou MCP, você cancela a espera do bot e o silencia nessa conversa por 2 horas por padrão. Cada resposta renova o prazo, configurável por canal. Respostas pelo aplicativo do telefone não chegam ao sistema. Você vê a conversa no Inbox.",{"id":4680,"title":4681,"titles":4682,"content":4683,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-bot-pode-esperar-a-equipe-responder","O bot pode esperar a equipe responder?",[234],"Sim: em «Humano primeiro», envia uma confirmação de recebimento por sequência e espera 5 minutos (configurável entre 1 e 60). Se você responder, a espera é cancelada; caso contrário, o bot retoma com contexto, sem cumprimentar de novo. Se o cliente voltar a escrever em até 2 horas desde a última resposta do bot, o bot continua; depois de 2 horas, volta a esperar a equipe. A configuração é pela API\u002FMCP; o painel chega em FIU-517.",{"id":4685,"title":4686,"titles":4687,"content":4688,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#como-o-bot-oferece-os-horários-disponíveis","Como o bot oferece os horários disponíveis?",[234],"Em uma frase, com «hoje», «amanhã» e horas curtas, conforme o fuso horário do negócio. Os horários e os botões são os mesmos; o cliente pode responder «o das 10» ou «amanhã às 12». Você pode ver a conversa no Inbox.",{"id":4690,"title":4691,"titles":4692,"content":4693,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-bot-pede-novamente-o-dia-e-o-horário-se-o-cliente-já-informou-antes-de-escolher-o-serviço","O bot pede novamente o dia e o horário se o cliente já informou antes de escolher o serviço?",[234],"Não: ao iniciar o agendamento, recupera até 6 mensagens do cliente dos últimos 30 minutos, posteriores ao último agendamento encerrado. Com serviço, dia e faixa de horário, oferece horários; se a faixa for incerta, pede confirmação. «Amanhã» mantém a data da mensagem mesmo ao passar da meia-noite. Você pode ver a conversa no Inbox.",{"id":4695,"title":4696,"titles":4697,"content":4698,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#por-que-o-wagy-não-mostra-mais-a-apresentação-ao-abrir","Por que o Wagy não mostra mais a apresentação ao abrir?",[234],"O Wagy se apresenta só na primeira abertura sem histórico naquele projeto e dispositivo. Depois ficam as sugestões; se já houver conversa, nunca mostra a apresentação. No Painel de controle, o chat ocupa toda a coluna no computador.",{"id":4700,"title":4701,"titles":4702,"content":4703,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#e-se-o-cliente-pede-para-falar-com-uma-pessoa","E se o cliente pede para falar com uma pessoa?",[234],"A conversa vai para o Inbox com o status «Pede uma pessoa» e o bot para de responder. O mesmo acontece se algo falha. Você vê em Requer atenção e como notificação.",{"id":4705,"title":4706,"titles":4707,"content":4708,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#e-se-o-cliente-pergunta-um-preço-ou-horário-que-o-bot-não-conhece","E se o cliente pergunta um preço ou horário que o bot não conhece?",[234],"O bot não inventa: horários, preços e endereços saem sempre do sistema. Se falta informação, cadastre-a na base de conhecimento ou a conversa passa a uma pessoa.",{"id":4710,"title":4711,"titles":4712,"content":4713,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#e-se-o-cliente-confirma-com-dados-novos","E se o cliente confirma com dados novos?",[234],"Um «sim» enviado junto com dados novos não confirma: o bot monta um resumo atualizado e espera outro «sim» depois. A confirmação é sempre explícita, e cancelar ou pedir uma pessoa interrompe a proposta.",{"id":4715,"title":4716,"titles":4717,"content":4718,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#e-se-o-cliente-manda-várias-mensagens-seguidas","E se o cliente manda várias mensagens seguidas?",[234],"O bot espera alguns segundos de silêncio (3, ou 5 enquanto coleta dados, com máximo de 12) e responde a todas juntas. Você escolhe o modo em Atendimento → Bot.",{"id":4720,"title":4721,"titles":4722,"content":4723,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#e-se-acaba-a-cota-de-ia-do-mês","E se acaba a cota de IA do mês?",[234],"As funções com IA são pausadas, o bot responde uma mensagem fixa e passa a conversa ao Inbox. Agenda, tarefas e clientes continuam funcionando. Você vê o consumo em Configuração → Plano e uso, com aviso ao chegar a 80 %.",{"id":4725,"title":4726,"titles":4727,"content":4728,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#e-se-um-cliente-tenta-dar-instruções-ao-bot","E se um cliente tenta dar instruções ao bot?",[234],"Ele as ignora. O bot não segue instruções escondidas em uma mensagem ou arquivo, não usa ferramentas de administração com um cliente e não vê dados de outro negócio. Veja O bot e a IA.",{"id":4730,"title":4731,"titles":4732,"content":4733,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#e-se-o-cliente-mistura-um-pedido-com-outro-assunto","E se o cliente mistura um pedido com outro assunto?",[234],"O bot atende a parte do negócio e ignora o resto. Se tudo for alheio, responde um texto fixo com os assuntos atendidos e como pedir uma pessoa; essa recusa sozinha não avisa a equipe. Pedir uma pessoa interrompe qualquer carrinho ou resumo e leva à Caixa de entrada.",{"id":4735,"title":4736,"titles":4737,"content":4738,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#e-se-eu-vendo-só-produtos-e-um-cliente-pede-pelo-chat","E se eu vendo só produtos e um cliente pede pelo chat?",[234],"O bot monta o pedido com os produtos que oferece, mostra o resumo com o total e, quando o cliente diz sim, cria a tarefa com esse valor. Não pede endereço: a entrega ou a retirada você combina. A tarefa aparece em Hoje.",{"id":4740,"title":4741,"titles":4742,"content":4743,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-wagy-me-explica-como-funcionam-as-regras-do-fiuit","O Wagy me explica como funcionam as regras do Fiuit?",[234],"Sim. Pergunte «o que acontece se…?» e ele busca a regra neste guia e no registro de políticas; diz o que acontece, por quê e onde você vê. Se algo ainda não estiver disponível, ele diz isso e não o apresenta como vigente.",{"id":4745,"title":4746,"titles":4747,"content":4748,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-o-cliente-vê-no-link-do-pedido","O que o cliente vê no link do pedido?",[234],"O que pediu, o total, o endereço enquanto o pedido está aberto, o dia com a faixa (ou o horário) e o andamento; o mapa só quando está a caminho. Ele pode adicionar ao calendário, alterar ou cancelar, repetir ou falar com você. O bot envia o link ao confirmar o pedido e quando o cliente pergunta como está.",{"id":4750,"title":4751,"titles":4752,"content":4753,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-bot-volta-a-enviar-o-link-se-eu-revoguei","O bot volta a enviar o link se eu revoguei?",[234],"Não. Se você revogou o link de um cliente, o bot confirma sem link até você compartilhar de novo em Compartilhar na tarefa ou na ficha do cliente.",{"id":4755,"title":4756,"titles":4757,"content":4758,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#como-o-cliente-altera-ou-cancela-pelo-link-do-pedido","Como o cliente altera ou cancela pelo link do pedido?",[234],"Com «Alterar ou cancelar»: abre seu chat com o código do pedido escrito (no Telegram, Instagram ou no chat do seu site, a mensagem é copiada e ele cola). Cancelar nunca é bloqueado.",{"id":4760,"title":4761,"titles":4762,"content":4763,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#para-qual-endereço-vai-o-pedido-se-o-bot-ofereceu-um-e-o-cliente-disse-que-sim","Para qual endereço vai o pedido se o bot ofereceu um e o cliente disse que sim?",[234],"Para esse. Se o bot oferece um endereço que o cliente já usou e o cliente aceita sem dar outro, o resumo o mostra e o pedido sai para lá.",{"id":4765,"title":4766,"titles":4767,"content":4768,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-o-cliente-pede-o-pedido-para-amanhã-à-tarde","O que acontece se o cliente pede o pedido para «amanhã à tarde»?",[234],"Fica anotado na nota do pedido (você vê em Tarefas) e aparece no resumo e na confirmação. O horário exato continua sendo definido pela sua equipe.",{"id":4770,"title":4771,"titles":4772,"content":4773,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-o-bot-diz-ao-cliente-quando-confirma-um-pedido","O que o bot diz ao cliente quando confirma um pedido?",[234],"O que pediu, quando, para onde vai e o código do pedido, no idioma do cliente. Não mostra o nome interno do serviço.",{"id":4775,"title":4776,"titles":4777,"content":4778,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#como-um-cliente-pede-pelo-chat-um-serviço-que-não-leva-produtos","Como um cliente pede pelo chat um serviço que não leva produtos?",[234],"Como um pedido: o bot faz uma de cada vez as perguntas obrigatórias do formulário do serviço, depois pede o lugar se for em domicílio e mostra um resumo com o que ele respondeu, o lugar e o total antes do sim. Você vê em Tarefas, sem horário até a sua equipe agendar.",{"id":4780,"title":4781,"titles":4782,"content":4783,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-o-cliente-disser-não-ao-resumo-do-pedido","O que acontece se o cliente disser não ao resumo do pedido?",[234],"Se o pedido não leva produtos, nada é registrado e o bot avisa («não sei» não conta como não). Se leva produtos, o bot pergunta o que ele quer mudar.",{"id":4785,"title":4786,"titles":4787,"content":4788,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#como-o-cliente-escolhe-o-endereço-se-tem-vários-salvos","Como o cliente escolhe o endereço se tem vários salvos?",[234],"O bot mostra um botão por endereço e «Outro». No WhatsApp, com mais de três opções, aparece como lista.",{"id":4790,"title":4791,"titles":4792,"content":4793,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#e-se-o-cliente-responde-citando-uma-mensagem-que-menciona-um-endereço","E se o cliente responde citando uma mensagem que menciona um endereço?",[234],"Se escreve algo como «manda pra essa» respondendo a essa mensagem, o pedido vai para esse endereço. Só vale uma mensagem da mesma conversa que mencione um endereço que o cliente já usou.",{"id":4795,"title":4796,"titles":4797,"content":4798,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#quais-horários-o-bot-oferece-a-um-cliente-que-pede-um-agendamento","Quais horários o bot oferece a um cliente que pede um agendamento?",[234],"Se ele pede uma hora exata e ela está livre, o bot reserva por 10 minutos e mostra o resumo para confirmar; se está ocupada, oferece as três mais próximas daquele dia. Com um dia ou um período («amanhã à tarde») oferece três horários espaçados, e sem vaga naquele dia pergunta outro. Serviço, dia e horário também podem ser escolhidos com botões.",{"id":4800,"title":4801,"titles":4802,"content":4803,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-o-cliente-muda-a-hora-antes-de-confirmar","O que acontece se o cliente muda a hora antes de confirmar?",[234],"O bot libera o horário anterior e mostra um resumo novo com a hora nova. O sim só confirma o último que o cliente viu.",{"id":4805,"title":4806,"titles":4807,"content":4808,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-o-cliente-pede-outro-dia-para-um-pedido-que-ainda-não-tem-horário","O que acontece se o cliente pede outro dia para um pedido que ainda não tem horário?",[234],"O bot não define o dia de um pedido: avisa que a mudança de dia é combinada com a equipe e passa a conversa para uma pessoa (fora do horário, ela fica em «Requer atenção» e o bot diz quando a equipe volta). O pedido não muda; o dia pedido aparece na conversa, no Inbox.",{"id":4810,"title":4811,"titles":4812,"content":4813,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-o-bot-pergunta-ao-cliente-se-o-serviço-tem-um-formulário","O que o bot pergunta ao cliente se o serviço tem um formulário?",[234],"Depois de escolher o horário, só os campos obrigatórios do cliente, um por um e com botões se o campo tiver opções. Os campos da equipe nunca são perguntados; o que não for válido é perguntado de novo. As respostas ficam no agendamento (Agenda). O que o cliente já disse ao pedir o horário («primeira consulta amanhã às 10, pela Unimed») não é perguntado de novo: aparece no resumo antes do sim (F3-450).",{"id":4815,"title":4816,"titles":4817,"content":4818,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#como-o-bot-pede-o-endereço-de-um-atendimento-em-domicílio","Como o bot pede o endereço de um atendimento em domicílio?",[234],"Reserva o horário por 10 minutos e pede o local: no estabelecimento ou em domicílio se o serviço deixar escolher, o endereço salvo (se houver vários, o cliente escolhe), um escrito ou a localização compartilhada. Se a rua existir em várias cidades, pergunta a cidade uma só vez. O resumo mostra o endereço e, se o cliente mudar antes do sim, o bot monta um resumo novo.",{"id":4820,"title":4821,"titles":4822,"content":4823,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-o-cliente-cancela-no-meio-de-um-agendamento","O que acontece se o cliente cancela no meio de um agendamento?",[234],"Se, enquanto o bot pede um dado do formulário, o endereço ou o sim do resumo, ele escreve «cancelar», «não, deixa» ou «esquece», o bot libera o horário e não agenda nada. Uma pergunta paralela («aceitam cartão?») não é salva como resposta: o bot responde e pergunta de novo.",{"id":4825,"title":4826,"titles":4827,"content":4828,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#e-se-o-bot-não-entende-o-cliente","E se o bot não entende o cliente?",[234],"Se a resposta não esclarece o que ele perguntou (por exemplo, «água» quando você vende duas), ele não repete a mesma mensagem: pergunta de novo citando a diferença («o de 20 L ou o de 12 L?») e depois pede o número da opção. Se na terceira resposta continuar sem avançar, passa a conversa para uma pessoa da equipe. Uma mensagem reenviada logo em seguida não é considerada duas vezes.",{"id":4830,"title":4831,"titles":4832,"content":4833,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#e-se-o-cliente-diz-uma-quantidade-sem-dizer-o-produto","E se o cliente diz uma quantidade sem dizer o produto?",[234],"O bot guarda e pergunta de qual, também se na mesma mensagem pediu outra coisa («quero 3 e um de 20»: pergunta de qual são os 3 e o de 20 fica). Se o número é uma medida do seu catálogo («quero de 12»), entende como essa medida e pergunta quantos.",{"id":4835,"title":4836,"titles":4837,"content":4838,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-o-bot-faz-se-um-cliente-me-manda-duas-localizações-juntas","O que o bot faz se um cliente me manda duas localizações juntas?",[234],"Não escolhe por ele: pergunta qual salvar como o endereço dele, com um botão por localização e «Nenhuma». Uma localização sozinha só é salva se o cliente responder que sim; você a vê na ficha dele.",{"id":4840,"title":4841,"titles":4842,"content":4843,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-o-serviço-com-horário-tem-produtos-opcionais","O que acontece se o serviço com horário tem produtos opcionais?",[234],"O bot agenda sem produtos; você adiciona os produtos na tarefa. Você vê em Tarefas.",{"id":4845,"title":4846,"titles":4847,"content":4848,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-o-serviço-com-horário-exige-produtos","O que acontece se o serviço com horário exige produtos?",[234],"O bot não agenda pelo chat: oferece ao cliente falar com uma pessoa. O agendamento é feito pelo painel ou pela página de agendamento.",{"id":4850,"title":4851,"titles":4852,"content":4853,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-eu-mudar-um-serviço-enquanto-um-cliente-confirma-um-pedido","O que acontece se eu mudar um serviço enquanto um cliente confirma um pedido?",[234],"Se o serviço passou a ter produtos ou foi desativado, o bot esquece esse pedido e pede ao cliente que peça de novo; nada é criado. Se só mudou o preço ou o formulário, o bot mostra um resumo novo e espera outro sim.",{"id":4855,"title":4856,"titles":4857,"content":4858,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-o-bot-falhar-no-meio-de-uma-conversa","O que acontece se o bot falhar no meio de uma conversa?",[234],"O que ele estava fazendo é desfeito e a conversa passa para uma pessoa: você a vê no Inbox.",{"id":4860,"title":4861,"titles":4862,"content":4863,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-bot-pede-ao-meu-cliente-o-que-falta-numa-etapa","O bot pede ao meu cliente o que falta numa etapa?",[234],"Sim. Se a tarefa nasceu numa conversa e a etapa tem itens ou botões que o cliente vê, o bot pergunta por esse chat, um por um, e avança a tarefa no final. A assinatura e a foto a sua equipe completa. Aparece na atividade da tarefa como «Cliente pelo chat».",{"id":4865,"title":4866,"titles":4867,"content":4868,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-a-equipe-avançar-a-tarefa-enquanto-o-cliente-responde","O que acontece se a equipe avançar a tarefa enquanto o cliente responde?",[234],"Vale o que a equipe fez: o bot avisa uma vez que a tarefa já avançou e não pergunta de novo. Depois de 24 horas na etapa, o bot deixa de pedir.",{"id":4870,"title":4871,"titles":4872,"content":4873,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-o-meu-cliente-perguntar-outra-coisa-enquanto-o-bot-pede-os-dados-de-uma-etapa","O que acontece se o meu cliente perguntar outra coisa enquanto o bot pede os dados de uma etapa?",[234],"O bot responde a dúvida e volta à pergunta da etapa. Se o cliente fizer três perguntas seguidas sem respondê-la (também as que o bot responde sozinho, como o horário ou os preços), ou disser «não, deixa», o bot deixa de pedir naquela etapa sem passar a conversa para uma pessoa: o bot continua atendendo e a conversa aparece em Requer atenção no Inbox para a sua equipe pedir o que falta.",{"id":4875,"title":4876,"titles":4877,"content":4878,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-quando-marco-ou-numa-resposta-da-ia","O que acontece quando marco 👎 ou 🐞 numa resposta da IA?",[234],"Recebemos sua marca com os dados técnicos dessa resposta (não a conversa) para revisá-la. 👎 é «não ajudou»; 🐞, «isto é um erro» e avisa a equipe da Fiuit. Estão em cada resposta do Wagy e, no Inbox, nas do bot (Dono, Gerente e colaborador). São apagadas após 90 dias.",{"id":4880,"title":4881,"titles":4882,"content":4883,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-o-cliente-pedir-o-horário-de-novo-antes-de-confirmar","O que acontece se o cliente pedir o horário de novo antes de confirmar?",[234],"Se repetir o mesmo pedido, o bot lembra o resumo e o horário continua reservado para ele. Se pedir outro horário, outro profissional ou outro serviço, o bot busca sem liberar o anterior, libera só quando o novo ficou reservado (se outro cliente ocupou, o anterior continua dele), avisa qual liberou e mostra um resumo novo: nunca ficam dois horários ocupados ao mesmo tempo. Uma pergunta sobre outro serviço («vocês têm barba?», «tem vaga pra barba na sexta?») não muda o agendamento mesmo que o bot mostre horários: só muda se o cliente escolher um. Se a mensagem pede e pergunta ao mesmo tempo («pode marcar barba amanhã às 16?», «é caro marcar barba?»), o bot responde o que pode e pergunta se troca o horário: sem um sim, o horário continua. Se, enquanto escolhe, disser «cancelar» ou «não», o bot libera também o horário que estava reservado e avisa.",{"id":4885,"title":4886,"titles":4887,"content":4888,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#como-o-cliente-pede-para-falar-com-uma-pessoa","Como o cliente pede para falar com uma pessoa?",[234],"Com qualquer frase comum: «quero falar com uma pessoa», «me passa pra um atendente», «me podés pasar con alguien?», «connect me with a person». Vale no meio de qualquer pedido ou agendamento e a conversa aparece no Inbox.",{"id":4890,"title":4891,"titles":4892,"content":4893,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-bot-lembra-o-que-conversei-com-o-cliente-ontem","O bot lembra o que conversei com o cliente ontem?",[234],"Não: se passaram mais de 30 minutos desde a última mensagem, o bot começa do zero (como o Wagy). A conversa completa continua no Inbox para sua equipe. Se a última mensagem do bot era uma pergunta de algo pela metade (um pedido, um agendamento, um resumo esperando o sim), o bot vê essa conversa para entender a resposta mesmo que tenha passado mais tempo. Um pedido pela metade é retomado do mesmo jeito por 2 horas e um agendamento pela metade por 30 minutos; o horário reservado é liberado após 10 minutos sem confirmação, então o bot pode precisar oferecer outro. Os dados do cliente (nome, endereços, o que costuma pedir) não se perdem.",{"id":4895,"title":4896,"titles":4897,"content":4898,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#posso-agendar-quadras-ou-a-capacidade-do-meu-local-sem-cadastrar-pessoas","Posso agendar quadras ou a capacidade do meu local sem cadastrar pessoas?",[234],"Sim. Cadastre um local com capacidade (por exemplo, «entram 3 carros por faixa») ou uma quadra por espaço, sem nenhuma pessoa. O bot oferece os horários livres e nomeia a quadra ou o local sem «com»: «às 09:00 · Quadra 1». Você configura em Meu negócio → Equipe e recursos → Lugares e equipamentos.",{"id":4900,"title":4901,"titles":4902,"content":4903,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#como-meus-clientes-reservam-um-serviço-de-dia-inteiro","Como meus clientes reservam um serviço de dia inteiro?",[234],"Escolhem o dia, não o horário: o bot oferece «o dia todo» e diz a partir de que hora podem deixar. Entram por dia tantos quanto as vagas que você atende ao mesmo tempo. Hoje é oferecido enquanto o local ainda estiver aberto; para dias futuros vale a antecedência que você configurou em Meu negócio → Serviços. A estadia termina no fechamento desse dia, mesmo que o seguinte abra logo depois. Se você corrigir o endereço, o dia inteiro é mantido desde que a nova zona cubra esse horário e os mesmos recursos e tenha capacidade.",{"id":4905,"title":4906,"titles":4907,"content":4908,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-um-trabalho-não-termina-no-dia","O que acontece se um trabalho não termina no dia?",[234],"Se você já o começou, ele continua ocupando a vaga nos dias seguintes até ser concluído (até 7 dias). Com 3 vagas e um carro sem terminar, no dia seguinte o bot oferece 2. Vale para o local, as quadras e os serviços de dia inteiro, não para um horário com uma pessoa (mesmo que use uma sala ou uma cadeira).",{"id":4910,"title":4911,"titles":4912,"content":4913,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-o-cliente-pedir-algo-fora-do-catálogo","O que acontece se o cliente pedir algo fora do catálogo?",[234],"O bot pode receber uma solicitação com um fluxo habilitado para clientes: pergunta os dados e mostra o resumo antes de criar a tarefa. Em caso de dúvida, pergunta o que o cliente quer. Na Inbox você vê a conversa e sua tarefa.",{"id":4915,"title":4916,"titles":4917,"content":4918,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-pedir-produtos-de-duas-modalidades-diferentes","O que acontece se pedir produtos de duas modalidades diferentes?",[234],"São criados pedidos separados, um de cada vez, com resumo e confirmação próprios. Nas tarefas você vê cada pedido com seu próprio percurso.",{"id":4920,"title":4921,"titles":4922,"content":4923,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-o-endereço-não-puder-ser-atendido-no-horário-escolhido","O que acontece se o endereço não puder ser atendido no horário escolhido?",[234],"O bot libera esse horário e mantém o endereço escolhido. O sim para buscar outro horário só mostra alternativas; o agendamento espera o sim ao novo resumo. No Inbox você acompanha a conversa e o agendamento.",{"id":4925,"title":4926,"titles":4927,"content":4928,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-o-cliente-escrever-outro-endereço-diante-do-resumo-do-pedido","O que acontece se o cliente escrever outro endereço diante do resumo do pedido?",[234],"O bot muda o destino e mostra um novo resumo antes de pedir outro sim. Os produtos continuam no pedido; no Inbox você vê a correção e o resumo aceito.",{"id":4930,"title":4931,"titles":4932,"content":4933,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-o-cliente-perguntar-não-tem-soda-durante-um-pedido","O que acontece se o cliente perguntar «não tem soda?» durante um pedido?",[234],"O bot considera o produto como escolha e pergunta quantos quer, sem tirar produtos nem confirmar. Depois mostra um novo resumo e espera um sim; você acompanha a conversa no Inbox.",{"id":4935,"title":4936,"titles":4937,"content":4938,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-um-áudio-não-puder-ser-transcrito-por-limite-de-ia-ou-pausa","O que acontece se um áudio não puder ser transcrito por limite de IA ou pausa?",[234],"O bot avisa que não conseguiu ouvir o áudio e pede texto ou opções. Se houver um pedido ou agendamento em andamento, repete a pergunta pendente sem confirmar nada; caso contrário, oferece o menu sem IA. A conversa continua no modo bot e você acompanha no Inbox.",{"id":4940,"title":4941,"titles":4942,"content":4943,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-o-formulário-pedir-várias-opções-de-uma-letra","O que acontece se o formulário pedir várias opções de uma letra?",[234],"O cliente pode responder «A e B» ou separar as letras por vírgulas; uma letra sozinha vale se atender ao mínimo pedido. O «a» dentro de uma frase não seleciona A. As respostas aparecem no resumo antes do sim e na conversa do Inbox.",{"id":4945,"title":4946,"titles":4947,"content":4948,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#e-se-o-projeto-se-aproxima-do-limite-de-ia-do-mês","E se o projeto se aproxima do limite de IA do mês?",[234],"A partir de 80 % do uso de IA do mês, se a IA demora, o bot a substitui só por opções econômicas. A partir de 95 %, não a substitui: se demora demais, o bot segue com opções e regras, sem confirmar nada que o cliente não tenha aceitado. Você vê o consumo em Configuração → Plano e uso.",{"id":4950,"title":4951,"titles":4952,"content":4953,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-bot-manda-as-fotos-dos-meus-produtos","O bot manda as fotos dos meus produtos?",[234],"Sim, se o produto tem foto: ele a manda depois do texto quando oferece produtos, quando pergunta «Qual deles?» e no resumo do pedido, no Telegram e no WhatsApp pela API oficial. O texto com as opções não muda e, se uma foto falhar, o pedido segue igual. Você desliga em Atendimento → Bot → Personalidade.",{"id":4955,"title":4956,"titles":4957,"content":4958,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-o-bot-responde-se-um-cliente-pergunta-os-preços","O que o bot responde se um cliente pergunta os preços?",[234],"Mostra o que o seu bot oferece com o preço, o link de «O que o bot vende» e uma pergunta para seguir (agendar, escolher um plano ou falar com uma pessoa). Se ele nomeia algo específico, o bot dá o preço disso. O que tem preço 0 e um formulário sai «sob consulta». Configure em Atendimento → Bot.",{"id":4960,"title":4961,"titles":4962,"content":4963,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-o-bot-responde-se-o-cliente-pede-algo-que-ele-não-oferece","O que o bot responde se o cliente pede algo que ele não oferece?",[234],"Nunca responde só «não há»: diz o que oferece (agendamentos, pedidos ou planos, uma linha por tipo) e que, escrevendo «atendente», passa para a sua equipe. Se o seu bot não oferece nada, oferece informações do seu negócio ou passar para a equipe. Os planos ele informa com o preço e, para contratar, dá o seu link ou passa para a equipe. Configura-se em Atendimento → Bot.",{"id":4965,"title":4966,"titles":4967,"content":4968,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-o-bot-oferece-a-um-cliente-que-tem-uma-tarefa-em-andamento","O que o bot oferece a um cliente que tem uma tarefa em andamento?",[234],"O que disser a etapa em que essa tarefa está («Nesta etapa o bot oferece»: tudo, alguns tipos ou alguns itens). Se tiver várias, vale a que espera uma resposta dele nesse chat ou, se não, a mais recente. Nunca oferece algo que o seu bot não vende ou que você desligou para o bot. Configura-se em Meu negócio → Etapas, em cada etapa, ou pedindo ao Wagy («em Novo, só planos»); em Atendimento → Bot, «Hoje seu bot oferece» → «Na etapa…» mostra o que um cliente vê em cada etapa.",{"id":4970,"title":4971,"titles":4972,"content":4973,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#atendimento-site-é-publicado-sozinho","Atendimento → Site é publicado sozinho?",[234],"Não. Ele nasce desligado e o endereço não existe para ninguém (nem para o Google) até você publicar em Atendimento → Site ou pedir ao Wagy. Desligado, responde igual a um endereço que nunca existiu.",{"id":4975,"title":4976,"titles":4977,"content":4978,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#por-que-um-serviço-não-aparece-no-meu-site","Por que um serviço não aparece no meu site?",[234],"O site mostra o mesmo que o bot oferece: o tipo precisa estar marcado em «O que o bot vende» e o item com «O bot oferece». Mudou isso, muda o site; as perguntas frequentes também são as do bot.",{"id":4980,"title":4981,"titles":4982,"content":4983,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#por-que-meu-site-está-em-fiuitapp-e-não-em-fiuitcom","Por que meu site está em fiuit.app e não em fiuit.com?",[234],"Os sites dos negócios ficam em um domínio próprio, separado do site e do painel da Fiuit: assim o que cada negócio publica fica separado da sua conta. Seu endereço é seunegocio.fiuit.app e você o vê em Atendimento → Site.",{"id":4985,"title":4986,"titles":4987,"content":4988,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#meus-clientes-podem-pagar-a-mensalidade-do-plano-pelo-chat","Meus clientes podem pagar a mensalidade do plano pelo chat?",[234],"Sim. Se ele escrever «quero pagar a mensalidade», o bot manda o link de pagamento da mensalidade pendente da assinatura pelo saldo que o Fiuit calcula (se já tiver um válido, não manda outro). Sem Mercado Pago, mostra seus dados para pagamento e o botão «Já paguei», que só avisa você para conferir o pagamento. A mensalidade de um clube ou de um pacote, ou a de uma assinatura com cartão, o bot informa com o valor e passa a conversa para você. Você vê e registra o pagamento na tarefa da mensalidade.",{"id":4990,"title":4991,"titles":4992,"content":4993,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#um-cliente-pode-assinar-um-plano-pelo-chat","Um cliente pode assinar um plano pelo chat?",[234],"Sim, uma assinatura que o seu bot oferece. Ele mostra o plano, o preço por mês, a primeira mensalidade (o preço inteiro) e o dia em que vence a próxima, e a assinatura fica feita quando o cliente responde SIM em outra mensagem. Pelo chat é sempre uma assinatura do Mercado Pago, mesmo que no painel você cobre à mão ou por link: o bot pede o e-mail da conta do Mercado Pago e manda o link para autorizar o cartão; a primeira mensalidade é debitada ao autorizar e depois todo mês, automaticamente. Ele nunca manda um link de pagamento único. Sem a cobrança com cartão ativa no seu projeto, a assinatura é fechada pela sua equipe. Pelo chat do seu site não se vende: antes é preciso validar o telefone. Pacotes e clubes são fechados pela equipe. Você vê na ficha do cliente.",{"id":4995,"title":4996,"titles":4997,"content":4998,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-um-cliente-cancela-a-assinatura-no-mercado-pago","O que acontece se um cliente cancela a assinatura no Mercado Pago?",[234],"A assinatura continua até o fim do mês que ele já pagou e só então é encerrada; não é cobrado outro mês. Se não havia um mês pago vigente, é encerrada na hora. Você vê na ficha do cliente, na assinatura.",{"id":5000,"title":5001,"titles":5002,"content":5003,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#quando-vence-a-próxima-mensalidade-de-uma-assinatura","Quando vence a próxima mensalidade de uma assinatura?",[234],"No mesmo dia do mês seguinte; se esse dia não existe, no último dia do mês. Depois volta ao dia de início: uma assinatura que começa em 31\u002F01 vence em 28\u002F02, 31\u002F03 e 30\u002F04. Você vê na ficha do cliente, na assinatura.",{"id":5005,"title":5006,"titles":5007,"content":5008,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-com-o-link-antigo-se-eu-mudar-o-subdomínio-do-meu-site","O que acontece com o link antigo se eu mudar o subdomínio do meu site?",[234],"Ele deixa de funcionar na hora e não é redirecionado: quem abrir vê uma página que não existe. Se o site está publicado, a Fiuit pede para você aceitar esse aviso antes de mudar. Isso se muda em Atendimento → Site.",{"id":5010,"title":5011,"titles":5012,"content":5013,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-com-o-link-de-agendamento-de-sempre-se-eu-publicar-meu-site","O que acontece com o link de agendamento de sempre se eu publicar meu site?",[234],"Ele leva ao endereço do seu site (seunegocio.fiuit.app). Se você despublicar, volta a ser a página de agendamento de antes.",{"id":5015,"title":5016,"titles":5017,"content":5018,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#a-fiuit-pode-desligar-meu-site","A Fiuit pode desligar meu site?",[234],"Pode, se ele se passar pela Fiuit ou por outro negócio ou tiver conteúdo abusivo. A Fiuit o revoga com um motivo e você não pode publicá-lo de novo até que ela o restaure; depois você publica novamente.",{"id":5020,"title":5021,"titles":5022,"content":5023,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#meus-clientes-podem-cancelar-o-plano-pelo-chat","Meus clientes podem cancelar o plano pelo chat?",[234],"Sim. Se ele escreve «quero cancelar o clube» (ou a assinatura, o pacote ou o plano), o bot mostra o que acontece: não são geradas novas mensalidades e as que já existem continuam, com o valor pendente à vista. Só com o SIM dele o plano é cancelado, igual a «Cancelar» no painel (com cartão, também no Mercado Pago). A mensalidade em aberto não é perdoada: você a vê A receber na tarefa da mensalidade.",{"id":5025,"title":5026,"titles":5027,"content":5028,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-o-mercado-pago-não-responder-quando-eu-cancelo-um-plano-com-cartão","O que acontece se o Mercado Pago não responder quando eu cancelo um plano com cartão?",[234],"O cancelamento acontece igual: não são geradas novas mensalidades. A Fiuit volta a pedir o cancelamento ao Mercado Pago sozinha, a cada poucos minutos, até confirmar.",{"id":5030,"title":5031,"titles":5032,"content":5033,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#os-assistentes-de-ia-podem-agendar-no-meu-negócio","Os assistentes de IA podem agendar no meu negócio?",[234],"Sim, se o seu site está publicado e «Aceitar agentes de IA» está ligado (vem ligado). Um assistente como o ChatGPT ou o Claude pode encontrar o seu negócio, ver o que o seu bot oferece e os horários, e pedir um agendamento. Se desligar, o seu negócio não aparece nem recebe pedidos de assistentes.",{"id":5035,"title":5036,"titles":5037,"content":5038,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-um-assistente-de-ia-pede-um-horário-e-a-pessoa-não-confirma","O que acontece se um assistente de IA pede um horário e a pessoa não confirma?",[234],"O horário fica reservado por alguns minutos e a pessoa recebe um código por WhatsApp, Telegram ou email. Sem esse código o agendamento não é confirmado e o horário é liberado sozinho. O assistente nunca confirma por conta própria.",{"id":5040,"title":5041,"titles":5042,"content":5043,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#como-o-meu-negócio-aparece-quando-alguém-busca-com-um-assistente-de-ia","Como o meu negócio aparece quando alguém busca com um assistente de IA?",[234],"Pelo seu nome ou endereço exato, sempre. Em buscas como «padel em Uruguaiana», só se «Aparecer no diretório da Fiuit» estiver ligado. A ordem é neutra (proximidade, horário livre e se está aberto) e mostra só o seu nome, zona, o que você oferece e o link do seu site.",{"id":5045,"title":5046,"titles":5047,"content":5048,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#um-assistente-de-ia-pode-conversar-com-o-meu-bot","Um assistente de IA pode conversar com o meu bot?",[234],"Sim, se o seu site estiver publicado e «Aceitar agentes de IA» estiver ligado. Responde o seu mesmo bot, com as suas regras, e a conversa aparece no Inbox marcada «Via IA»: a sua equipe pode assumir como qualquer outra. Gasta uso de IA como qualquer canal.",{"id":5050,"title":5051,"titles":5052,"content":5053,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#um-assistente-de-ia-pode-reservar-conversando-com-o-meu-bot","Um assistente de IA pode reservar conversando com o meu bot?",[234],"Sim, mas o «sim» do assistente não confirma: ele precisa do nome e do telefone ou email da pessoa, que recebe um código. A reserva só fica com esse código. Cancelar, remarcar ou pedir sem horário não se faz por um assistente.",{"id":5055,"title":5056,"titles":5057,"content":5058,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-quando-a-pessoa-confirma-o-código-que-o-assistente-de-ia-pediu","O que acontece quando a pessoa confirma o código que o assistente de IA pediu?",[234],"A conversa não é cortada: por 24 horas ela continua na ficha dessa pessoa. O bot cumprimenta pelo nome, conhece as reservas, pedidos e planos dela e pode reservar ou pedir de novo sem outro código. Cancelar, remarcar e pagar pedem um código novo a cada vez. Depois das 24 horas, ou numa conversa nova, o assistente volta a começar sem dados da pessoa.",{"id":5060,"title":5061,"titles":5062,"content":5063,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#a-pessoa-pode-encerrar-a-sessão-do-assistente-de-ia-antes-das-24-horas","A pessoa pode encerrar a sessão do assistente de IA antes das 24 horas?",[234],"Sim: ela pede ao assistente que encerre a sessão. A partir daí, essa conversa não vê mais os dados dela e o que vier começa como uma conversa nova.",{"id":5065,"title":5066,"titles":5067,"content":5068,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-eu-mudar-o-preço-na-minha-loja-online-depois-que-o-bot-ofereceu","O que acontece se eu mudar o preço na minha loja online depois que o bot ofereceu?",[234],"O pedido mantém o preço que o bot mostrou ao cliente, e o total é calculado pela Fiuit. Se o cliente buscar de novo, o bot avisa o preço novo. Configura-se em Meu negócio → Catálogo → Buscar na minha loja.",{"id":5070,"title":5071,"titles":5072,"content":5073,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-minha-loja-online-não-responder","O que acontece se minha loja online não responder?",[234],"O bot avisa o cliente que não consegue consultar a loja naquele momento e oferece falar com uma pessoa da equipe. Nunca mostra produtos que não conseguiu confirmar.",{"id":5075,"title":5076,"titles":5077,"content":5078,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-um-cliente-escreve-o-e-mail-ou-telefone-no-chat","O que acontece se um cliente escreve o e-mail ou telefone no chat?",[234],"O bot pergunta se pode guardar para reconhecê-lo quando voltar e só guarda se ele responder que sim. Se o seu negócio pode enviar, também chega um código: com o código certo, a ficha mostra o contato «Confirmado com código».",{"id":5080,"title":5081,"titles":5082,"content":5083,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-código-do-chat-junta-sozinho-duas-fichas-do-mesmo-cliente","O código do chat junta sozinho duas fichas do mesmo cliente?",[234],"Não. Ele comprova que o contato chega ao cliente, mas quem confirma a união é você (Dono ou Gerente) em «Possível mesmo cliente» na ficha. O bot nunca mostra ao cliente o histórico de outra ficha.",{"id":5085,"title":5086,"titles":5087,"content":5088,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-bot-recomenda-o-que-contratar-conforme-o-que-o-cliente-conta","O bot recomenda o que contratar conforme o que o cliente conta?",[234],"Sim. Se o cliente contou algo («somos 3 no salão», «tenho um clube com 200 sócios») e pergunta preços ou qual plano serve, o bot recomenda até três opções do que oferece, com o preço e um motivo curto, e deixa ver todas. O preço sai do seu catálogo, nunca é escrito pela IA. Se ele não contou nada, mostra a lista de sempre.",{"id":5090,"title":5091,"titles":5092,"content":5093,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#para-onde-leva-o-link-que-o-bot-manda-para-cada-serviço-produto-ou-plano","Para onde leva o link que o bot manda para cada serviço, produto ou plano?",[234],"Para o link que você cadastrar nesse serviço, produto ou plano (Catálogo, na ficha dele). Se não tiver, o bot usa o link de «O que o bot vende» (Atendimento → Bot).",{"id":5095,"title":4029,"titles":5096,"content":4031,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-acabar-a-cota-do-canal-de-assistentes-de-ia",[234],{"id":5098,"title":5099,"titles":5100,"content":5101,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-quando-um-cliente-volta-a-pedir-o-mesmo","O que acontece quando um cliente volta a pedir o mesmo?",[234],"O bot propõe o último pedido desse serviço já montado e só o cria se o cliente disser que sim; com um não, pergunta o que mudar. Num agendamento, pergunta uma vez se usa os dados da última vez. O preço é sempre o de hoje.",{"id":5103,"title":5104,"titles":5105,"content":5106,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#posso-evitar-que-o-bot-lembre-um-dado-sensível","Posso evitar que o bot lembre um dado sensível?",[234],"Sim: em Meu negócio → Catálogo → um serviço → Formulário do serviço, marque «Não lembrar (dado sensível)» nesse campo. O bot pergunta toda vez.",{"id":5108,"title":5109,"titles":5110,"content":5111,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#quantos-fluxos-por-intenção-posso-ter-e-o-que-acontece-se-uma-palavra-chave-coincide-com-um-serviço","Quantos fluxos por intenção posso ter e o que acontece se uma palavra-chave coincide com um serviço?",[234],"Até 8 ativos; para ativar outro, desative um. O bot olha primeiro o catálogo, então uma palavra-chave igual a um serviço, produto ou plano não é salva e dizemos com qual colide. Teste as frases com Testar em Meu negócio → Etapas → «Quando entrar» antes de salvar.",{"id":5113,"title":5114,"titles":5115,"content":5116,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#posso-ver-por-onde-uma-conversa-do-bot-passou-e-onde-parou","Posso ver por onde uma conversa do bot passou e onde parou?",[234],"Sim. Na conversa do Inbox, a linha Percurso diz por qual parte do bot ela passou (por exemplo, Produtos) e como terminou: criou uma tarefa, foi respondida, passou para uma pessoa ou parou em um passo (como o endereço). Em Atendimento → Bot → Atendimento do bot você vê, por ramo, quantas conversas dos últimos 7 dias terminaram em cada caso. O que o cliente escreveu não é guardado.",{"id":5118,"title":5119,"titles":5120,"content":5121,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#posso-pedir-ao-wagy-que-mude-o-que-o-bot-oferece-primeiro-ou-que-pare-de-vender-algo","Posso pedir ao Wagy que mude o que o bot oferece primeiro ou que pare de vender algo?",[234],"Sim. Peça «coloque agendamentos primeiro», «as reclamações no final» ou «cumprimente com…» e ele mostra o atendimento do bot antes e depois; «não venda assinaturas pelo chat» é o mesmo que desmarcar esse tipo em «O que o bot vende». Só muda quando você confirma e dá para desfazer. Perguntas, Meus horários e pedidos e Falar com uma pessoa não se pausam: o Wagy explica por quê. O mesmo se faz em Atendimento → Bot → Atendimento do bot.",{"id":5123,"title":5124,"titles":5125,"content":5126,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-o-cliente-avisa-que-fez-uma-transferência-e-não-há-uma-cobrança-aberta-pelo-chat","O que acontece se o cliente avisa que fez uma transferência e não há uma cobrança aberta pelo chat?",[234],"O bot diz que avisou a equipe para conferir o pagamento e marca a conversa como Requer atenção no Inbox. Também reconhece o aviso quando termina com «recebeu?». Dizer que pagou não registra uma cobrança nem confirma que o dinheiro chegou; confira antes de registrar.",{"id":5128,"title":5129,"titles":5130,"content":5131,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-é-o-cartão-que-aparece-ao-abrir-o-wagy-todo-dia","O que é o cartão que aparece ao abrir o Wagy todo dia?",[234],"Na primeira abertura do Wagy no dia aparece um cartão com o mais importante: algo urgente (atrasados, para agendar, chats sem resposta, cobranças vencidas), senão uma boa notícia, senão um recurso dos «Primeiros passos» para testar. Some com um toque e só volta amanhã.",{"id":5133,"title":5134,"titles":5135,"content":5136,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fbot#o-que-acontece-se-o-cliente-escrever-um-dia-da-semana-e-um-número-que-não-combinam","O que acontece se o cliente escrever um dia da semana e um número que não combinam?",[234],"O bot pergunta qual data o cliente quis dizer antes de reservar ou remarcar. Por exemplo, se o dia 27 cair numa terça e ele escrever «quarta 27», pede para esclarecer «terça 27 ou quarta 28». Não escolhe outra semana por conta própria. A conversa fica visível no Inbox.",{"id":239,"title":238,"titles":5138,"content":5139,"level":257},[],"Respostas rápidas sobre pegar e soltar tarefas, resultados, permissões da equipe e evidências de trabalho.",{"id":5141,"title":5142,"titles":5143,"content":5144,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-cobrar-às-vezes-é-o-botão-principal","Por que «Cobrar» às vezes é o botão principal?",[238],"A tarefa tem um só botão principal. Quase sempre é o da etapa, no rodapé, e Cobrar fica com contorno ao lado do saldo. Cobrar passa a ser o principal quando a etapa pede cobrança (por exemplo, para concluir falta a cobrança) ou quando a tarefa já foi encerrada e ficou saldo. Sem saldo ele não aparece. Não há nada para configurar.",{"id":5146,"title":5147,"titles":5148,"content":5149,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-quando-o-cliente-responde-o-orçamento","O que acontece quando o cliente responde o orçamento?",[238],"O dono, os gerentes e quem tem a tarefa recebem o aviso «Juan aprovou o orçamento» (ou «recusou») no sino, push e Telegram; quem registrou a resposta à mão não recebe o próprio aviso. Se chegarem muitos juntos, viram um só. Você configura em Minha conta → Meus avisos.",{"id":5151,"title":5152,"titles":5153,"content":5154,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-o-cliente-não-me-escreveu-nas-últimas-24-horas-e-eu-envio-um-orçamento","O que acontece se o cliente não me escreveu nas últimas 24 horas e eu envio um orçamento?",[238],"Com o WhatsApp oficial ele recebe mesmo assim, com o modelo aprovado do orçamento: o total e a indicação de responder «Aprovo» ou «Não, obrigado». Dentro das 24 horas recebe o orçamento completo com esses dois botões. Se o modelo ainda não estiver aprovado, não sai e a conversa fica marcada para sua equipe.",{"id":5156,"title":5157,"titles":5158,"content":5159,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#como-é-calculada-a-data-de-entrega","Como é calculada a data de entrega?",[238],"Se o serviço tem Prazo de entrega (em Opções avançadas), a tarefa nasce com a data de criação mais esses dias úteis, contando só os dias em que você abre: sexta + 3 dá quarta. Sem prazo, a tarefa nasce sem data e você pode preenchê-la com um toque no topo.",{"id":5161,"title":5162,"titles":5163,"content":5164,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-cliente-fica-sabendo-se-a-data-de-entrega-mudar","O cliente fica sabendo se a data de entrega mudar?",[238],"Sim. Ele vê a data na confirmação e nos avisos, e se você mudar recebe um aviso com a nova data. Desliga junto com os avisos de reagendamento.",{"id":5166,"title":5167,"titles":5168,"content":5169,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#quando-uma-tarefa-fica-atrasada","Quando uma tarefa fica atrasada?",[238],"Se tem data de entrega, quando passa essa data (mais a tolerância do seu negócio) e continua aberta. Se não tem, quando termina o horário sem fechar.",{"id":5171,"title":5172,"titles":5173,"content":5174,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#quem-vê-o-custo-e-a-margem","Quem vê o custo e a margem?",[238],"Só o dono, e ocultos de início: no bloco de itens da tarefa, toque em Ver custos. Os outros papéis não veem o botão e também não os recebem pela API, pelo MCP nem pela Wagy; quem lançou uma linha continua vendo o custo dessa linha para registrá-lo como despesa. A margem por tarefa do Financeiro também é só do dono.",{"id":5176,"title":5177,"titles":5178,"content":5179,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#como-cobro-uma-tarefa-com-itens","Como cobro uma tarefa com itens?",[238],"Abaixo do total aparece Saldo pendente com um só Cobrar: cobra o que falta de toda a tarefa (itens e serviço) e, se já houve pagamentos, só o resto. Você escolhe a forma de pagamento ao tocar.",{"id":5181,"title":5182,"titles":5183,"content":5184,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#enviar-o-orçamento-ao-cliente-é-obrigatório","Enviar o orçamento ao cliente é obrigatório?",[238],"Não. É opcional: quem envia é uma etapa com Pedir aprovação do orçamento ou o botão Enviar orçamento ao cliente do bloco de itens. O botão principal de cada etapa diz abaixo para qual etapa avança e se o cliente recebe o orçamento.",{"id":5186,"title":5187,"titles":5188,"content":5189,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-escolher-o-que-a-tarefa-mostra-no-meu-negócio","Posso escolher o que a tarefa mostra no meu negócio?",[238],"Sim. Em cada fluxo, Meu negócio → Etapas → Como a tarefa aparece escolhe o que vai no topo (Quando, Destino, Pedido, nada ou automático) e se aparecem os chips do cliente e da cobrança. Cada ramo começa com seus valores e você pode mudar quando quiser, também pedindo ao Wagy. Não muda etapas nem move tarefas.",{"id":5191,"title":5192,"titles":5193,"content":5194,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-eu-desligar-itens","O que acontece se eu desligar «Itens»?",[238],"As tarefas desse fluxo deixam de oferecer «+ Adicionar item». O que já estava lançado continua visível e nada é apagado.",{"id":5196,"title":5197,"titles":5198,"content":5199,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-não-vejo-em-hoje-todas-as-mensalidades-dos-meus-sócios","Por que não vejo em Hoje todas as mensalidades dos meus sócios?",[238],"Hoje e Trabalho mostram só as mensalidades que venceram ou vencem dentro dos dias de aviso do plano; as pagas, as perdoadas e as cobradas sozinhas no cartão não aparecem, a não ser que a cobrança falhe. Todas estão em Dinheiro → A receber e na conta do cliente. Em vez de um aviso por mensalidade, chega um por dia com quantas venceram.",{"id":5201,"title":5202,"titles":5203,"content":5204,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#como-somo-uma-peça-ou-material-que-não-está-no-catálogo","Como somo uma peça ou material que não está no catálogo?",[238],"Na tarefa, toque em + Adicionar e digite: a busca mostra produtos e serviços do catálogo e os itens que você já usou. Se não houver nada, escolha Adicionar «texto», informe preço e quantidade (o custo é opcional) e marque se é produto ou serviço. Depois ele pergunta se você salva no catálogo; se usar três vezes, sugere salvar como produto. Dono, gerente e o técnico nas suas tarefas podem fazer isso, também pelo Focus e pelo Mini App com + Adicionar peça, e o Wagy propõe para você confirmar.",{"id":5206,"title":5207,"titles":5208,"content":5209,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-quando-uma-etapa-pede-a-aprovação-do-orçamento","O que acontece quando uma etapa pede a aprovação do orçamento?",[238],"Quando a tarefa entra nessa etapa, o cliente recebe sozinho o orçamento com «Aprovo» e «Não, obrigado». Conforme a resposta, a tarefa segue pelo caminho que você escolheu para «aprovou» ou para «recusou». Se ele responder por telefone ou pessoalmente, você registra a resposta na tarefa; vale a primeira.",{"id":5211,"title":5212,"titles":5213,"content":5214,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-o-cliente-responder-o-orçamento-com-uma-pergunta","O que acontece se o cliente responder o orçamento com uma pergunta?",[238],"Não aprova nem recusa: o bot avisa que a equipe vai ver e a conversa fica em Requer atenção. Só contam o botão ou um «sim» ou «não» claro.",{"id":5216,"title":5217,"titles":5218,"content":5219,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-quando-o-bot-oferece-algo-ao-cliente-no-chat","O que acontece quando o bot oferece algo ao cliente no chat?",[238],"Se a etapa oferece algo ao cliente, o bot propõe com o nome e o preço do catálogo e só adiciona se o cliente responder que sim em outra mensagem; se disser que não, a etapa segue igual. Um serviço com horário é reservado em um dos horários que o bot oferece, depois do atendimento, ou fica por agendar. O que foi aceito aparece na tarefa, em Trabalho.",{"id":5221,"title":5222,"titles":5223,"content":5224,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#como-vejo-pendentes-se-não-há-nenhuma","Como vejo pendentes se não há nenhuma?",[238],"Em Trabalho, o menu Ver e os filtros continuam disponíveis mesmo sem tarefas. Você pode escolher Pendentes sem um número zero; se não houver resultados, o aviso identifica a vista escolhida e permite Ver tudo ou Limpar filtros. Sua vista continua sendo lembrada.",{"id":5226,"title":5227,"titles":5228,"content":5229,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#qual-é-a-cor-de-uma-etapa-se-eu-não-escolher-nenhuma","Qual é a cor de uma etapa se eu não escolher nenhuma?",[238],"A cor é automática: verde ao concluir, vermelho ao cancelar ou não comparecer, cinza enquanto espera e azul, âmbar ou violeta ao avançar. O Dono pode escolher outra cor da paleta em Meu negócio → Etapas → Cor da etapa, ou pedir ao Wagy e confirmar a mudança. As etapas sempre mostram também seu nome.",{"id":5231,"title":5232,"titles":5233,"content":5234,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-quando-peço-ao-wagy-várias-mudanças-juntas","O que acontece quando peço ao Wagy várias mudanças juntas?",[238],"O Wagy monta a lista (por exemplo, «estas 7 atrasadas passam para amanhã») e, se algo chega ao cliente, você confirma uma vez só. Depois ele aplica uma por vez, cada uma com sua contagem regressiva: você pode Parar este, Pausar tudo e Retomar, e desfazer cada mudança separadamente. O que não cabe (sem horário livre ou com conflito) fica marcado para você escolher, sem parar o resto.",{"id":5236,"title":5237,"titles":5238,"content":5239,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-o-total-de-um-orçamento-aceito-mudar","O que acontece se o total de um orçamento aceito mudar?",[238],"O cliente recebe o orçamento atualizado com a diferença e os subtotais de serviços e produtos. A equipe registra a resposta: até a aprovação, a diferença não é cobrada por link, QR, Point, cartão ou cobrança manual; rejeitar também não libera a cobrança.",{"id":5241,"title":5242,"titles":5243,"content":5244,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-custo-de-uma-peça-vira-uma-despesa-automaticamente","O custo de uma peça vira uma despesa automaticamente?",[238],"Não. O custo é privado e serve para calcular a margem; o cliente nunca o vê. «Registrar como despesa» lança custo vezes quantidade no Financeiro e, quando um técnico registra, aguarda aprovação.",{"id":5246,"title":5247,"titles":5248,"content":5249,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-ao-unificar-duas-pessoas-da-equipe","O que acontece ao unificar duas pessoas da equipe?",[238],"Na ficha, o dono ou gerente toca em «Unificar com…», escolhe quem fica, confere o que será movido e confirma. As tarefas, equipes e acessos passam para quem fica; a outra pessoa fica inativa e não há como desfazer. Mantém o próprio horário ou adota o da outra se não tinha; a conta só passa se ainda não tinha uma. Duas contas diferentes, tarefas sobrepostas ou capacidade insuficiente impedem a confirmação sem alterar nada. Comissões de tarefas concluídas e acertos preservam a atribuição; reabrir e concluir novamente usa a atribuição do novo encerramento. Por enquanto, a operação está no painel.",{"id":5251,"title":5252,"titles":5253,"content":5254,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-o-wagy-faz-sozinho-sem-pedir-confirmação","O que o Wagy faz sozinho, sem pedir confirmação?",[238],"Só o que é interno e dá para desfazer, como agendar uma tarefa sem sinal nem aviso ao cliente: ele mostra «Faço em 10 s» com Desfazer e Agora. O que cobra ou escreve ao cliente sempre pede confirmação. Dono e Gerente escolhem o que ele faz sozinho em Wagy expandido → Faz sozinho, e ali mesmo veem O que o Wagy fez para desfazer.",{"id":5256,"title":5257,"titles":5258,"content":5259,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-mudar-as-etapas-do-fluxo-de-serviço-que-vem-com-a-fiuit","Posso mudar as etapas do fluxo de serviço que vem com a Fiuit?",[238],"Sim. No serviço, em Etapas: Fluxo de serviço, toque em Editar etapas: você edita a cópia do seu negócio, que passa a ser usada por todos os serviços que usavam o original. Voltar ao original a deixa de lado quando quiser.",{"id":5261,"title":5262,"titles":5263,"content":5264,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-com-as-tarefas-abertas-se-eu-voltar-ao-fluxo-original","O que acontece com as tarefas abertas se eu voltar ao fluxo original?",[238],"Elas não se movem: terminam com as etapas que tinham. As tarefas novas já nascem no fluxo original. Sua cópia não é apagada: fica «Sem uso» e você a apaga manualmente se quiser.",{"id":5266,"title":5267,"titles":5268,"content":5269,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-apagar-um-fluxo-que-não-uso-mais","Posso apagar um fluxo que não uso mais?",[238],"Sim, se nenhum serviço o usa e ele nunca teve tarefas: em Meu negócio → Etapas (avançado) aparece «Sem uso» com Apagar. Se teve tarefas, desative-o.",{"id":5271,"title":5272,"titles":5273,"content":5274,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#onde-vejo-quanto-cada-fluxo-é-usado-e-em-qual-etapa-as-tarefas-travam","Onde vejo quanto cada fluxo é usado e em qual etapa as tarefas travam?",[238],"Em Meu negócio → Etapas cada fluxo mostra os últimos 7 dias contra os 7 anteriores. Ao abrir um, você vê as últimas 12 semanas dia a dia (toque em um dia para abrir em Trabalho as tarefas que entraram) e, em «Onde travam», a etapa com mais espera destacada. Tarefas de teste não contam; o colaborador vê só as suas.",{"id":5276,"title":5277,"titles":5278,"content":5279,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-o-cliente-vê-se-meu-serviço-é-a-distância","O que o cliente vê se meu serviço é a distância?",[238],"Nenhum endereço é pedido nem mostrado: nem no chat, nem na reserva pela web, nem nos avisos. A tarefa também não guarda o endereço do seu negócio nem aparece no mapa. Você escolhe no serviço, em Opções avançadas → Onde é realizado → A distância.",{"id":5281,"title":5282,"titles":5283,"content":5284,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#como-o-link-da-videochamada-chega-ao-cliente","Como o link da videochamada chega ao cliente?",[238],"Cadastre no mesmo lugar, em Link da reunião: o bot envia ao confirmar e o lembrete repete. É o mesmo link para todas as tarefas do serviço; o Fiuit não o gera, cole o da sua sala.",{"id":5286,"title":5287,"titles":5288,"content":5289,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#como-funciona-o-modo-focus-do-hoje","Como funciona o modo Focus do Hoje?",[238],"Em Hoje, com o botão ▶ Focus, você faz as suas tarefas uma a uma, em tela cheia. Ali também reprograma, desliga o som ou testa o assobio no iPhone. Todos os detalhes estão em Focus, uma tarefa de cada vez.",{"id":5291,"title":5292,"titles":5293,"content":5294,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-a-página-inteira-não-aumenta-quando-faço-o-gesto-de-pinça-no-celular","Por que a página inteira não aumenta quando faço o gesto de pinça no celular?",[238],"O painel mantém seu tamanho para evitar ampliações acidentais, inclusive no aplicativo instalado e ao digitar.\nEm Trabalho, amplie o mapa ou o calendário no próprio visualizador; o editor de fotos também mantém seu zoom.",{"id":5296,"title":5297,"titles":5298,"content":5299,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#quantos-produtos-um-pedido-pode-ter","Quantos produtos um pedido pode ter?",[238],"Até 72 produtos (linhas) por pedido. É um limite do motor de agendamentos para que cada pedido seja salvo e cobrado com o valor exato. Você configura no serviço, nos limites de produtos do formulário.",{"id":5301,"title":5302,"titles":5303,"content":5304,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#e-se-duas-pessoas-tocam-em-pegar-ao-mesmo-tempo","E se duas pessoas tocam em «Pegar» ao mesmo tempo?",[238],"Fica com a primeira e a segunda recebe um aviso. Uma tarefa nunca é atribuída duas vezes. Você a vê atribuída em Trabalho e em Hoje de quem a pegou.",{"id":5306,"title":5307,"titles":5308,"content":5309,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#e-se-quem-pegou-a-tarefa-não-pode-fazê-la","E se quem pegou a tarefa não pode fazê-la?",[238],"Pode soltá-la, desde que não tenha começado: ela volta a Sem responsável para que outra pessoa a pegue.",{"id":5311,"title":5312,"titles":5313,"content":5314,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#e-se-o-cliente-não-estava-ou-não-quer-o-pedido","E se o cliente não estava ou não quer o pedido?",[238],"A tarefa é encerrada com o resultado ausente («não estava») ou recusada («não quer»), com um motivo opcional. Fica registrado na tarefa.",{"id":5316,"title":5317,"titles":5318,"content":5319,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#e-se-uma-ação-falha-no-meio-do-caminho","E se uma ação falha no meio do caminho?",[238],"Nada fica pela metade: tudo o que uma ação faz acontece junto ou não acontece.",{"id":5321,"title":5322,"titles":5323,"content":5324,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#e-se-uma-pessoa-da-equipe-tenta-atribuir-tarefas","E se uma pessoa da equipe tenta atribuir tarefas?",[238],"Não consegue, mesmo que o botão existisse: uma ação nunca dá permissões extras. Só o Dono e o Gerente atribuem. Veja Papéis e permissões.",{"id":5326,"title":5327,"titles":5328,"content":5329,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#que-dados-do-cliente-a-equipe-vê","Que dados do cliente a equipe vê?",[238],"Uma pessoa da equipe vê as tarefas atribuídas a ela e as que seu equipe pode pegar, mas sem o telefone nem o e-mail do cliente até pegá-la. Em entregas, antes de pegar só se vê a zona aproximada.",{"id":5331,"title":5332,"titles":5333,"content":5334,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-com-as-fotos-e-localizações-que-a-equipe-envia","O que acontece com as fotos e localizações que a equipe envia?",[238],"São privadas: só quem tem acesso à tarefa as vê, os links de download expiram em 60 segundos e os arquivos são apagados após 30 dias por padrão. O Dono ou o Gerente podem apagar uma localização.",{"id":5336,"title":5337,"titles":5338,"content":5339,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-não-vejo-uma-aba-ou-um-filtro","Por que não vejo uma aba ou um filtro?",[238],"Porque «se não tem nada, não aparece»: a agenda só aparece se há recursos com horário, o mapa se há tarefas com localização, a linha do tempo se há recursos ativos, e Minhas se você tem agenda própria. Veja Trabalho e ações.",{"id":5341,"title":5342,"titles":5343,"content":5344,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#e-se-pauso-ou-duplico-um-serviço","E se pauso ou duplico um serviço?",[238],"Você sempre pode pausar: deixa de ser oferecido para novos pedidos e as tarefas existentes continuam, incluindo reagendamento, janela, troca de responsável, conclusão e cancelamento com os mesmos controles. Pausar e desativar são iguais. Duplicar cria uma cópia pausada com horário independente, sem tarefas nem histórico; equipes e produtos permanecem no catálogo. As etapas atuais começam na versão um; sem permissão de edição usa as etapas base e avisa. A cópia não mantém o vínculo administrado com o modelo do negócio. Revise e reative em Serviços.",{"id":5346,"title":5347,"titles":5348,"content":5349,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#e-se-as-unidades-do-pacote-vencem-ou-o-consumo-falha","E se as unidades do pacote vencem ou o consumo falha?",[238],"O vencido se perde, inclusive unidades reservadas: a tarefa volta ao valor anterior e a equipe é avisada. Antes de concluir, o vencimento é validado mesmo se o processo automático atrasar. Se consumir falha, não conclui nem cobra; mantém estado e reserva para tentar novamente. Dono ou Gerente pode Estender validade manualmente com motivo na ficha do cliente.",{"id":5351,"title":5352,"titles":5353,"content":5354,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-editar-ou-reabrir-uma-tarefa-coberta-por-plano","Posso editar ou reabrir uma tarefa coberta por plano?",[238],"Não muda cliente, serviço nem valor e não aceita ajustes de cobrança; notas internas podem ser editadas. Primeiro Tirar plano na ficha do cliente. Reabrir uma cancelada mantém o preço normal. Reabrir uma concluída devolve a unidade e sua atribuição de pagamento; se vigente, fica reservada e concluir novamente usa uma única unidade.",{"id":5356,"title":5357,"titles":5358,"content":5359,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#como-se-cobra-ou-cancela-um-pacote-ou-clube","Como se cobra ou cancela um pacote ou clube?",[238],"Cada período é uma parcela: uma tarefa A cobrar com o preço do plano, que você vê na ficha do cliente e em A receber. É cobrada como qualquer tarefa (registrar cobrança ou link de pagamento); ao vender você pode cobrar a primeira na hora, e a seguinte aparece sozinha antes de vencer. Cancelar não cria mais parcelas e não mexe nas já criadas; devolver é opcional e só devolve o não usado da parcela do período vigente cobrada manualmente. O vencido não é devolvido. Se o caixa daquele dinheiro já foi fechado, a devolução é bloqueada.",{"id":5361,"title":5362,"titles":5363,"content":5364,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#quando-vence-a-parcela-de-um-plano-e-quando-ela-aparece","Quando vence a parcela de um plano e quando ela aparece?",[238],"O plano define: o dia da venda de cada mês, o dia 1, o último dia do mês ou um dia fixo de 1 a 28. Cada parcela aparece alguns dias antes de vencer (5 por padrão; no plano vai de 0 a 28) e só vira dívida quando vence. Escolha ao criar ou editar o plano.",{"id":5366,"title":5367,"titles":5368,"content":5369,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#quanto-custa-a-primeira-parcela-se-eu-vender-no-meio-do-mês","Quanto custa a primeira parcela se eu vender no meio do mês?",[238],"A parte proporcional aos dias que faltam até o próximo vencimento, arredondada, a menos que o plano tenha Cobrar a primeira parcela inteira. As sessões do primeiro período vêm inteiras. Se você vender dentro dos dias de aviso, a parcela seguinte também nasce.",{"id":5371,"title":5372,"titles":5373,"content":5374,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-com-meus-clientes-se-eu-mudar-o-preço-de-um-plano","O que acontece com meus clientes se eu mudar o preço de um plano?",[238],"O preço novo vale para a próxima parcela de cada assinatura vigente; as parcelas já criadas não mudam. O cliente não é avisado: ele vê na próxima parcela. Ao salvar mostramos a quantas assinaturas chega. Se quiser outro preço só para alguns clientes, crie outro plano.",{"id":5376,"title":5377,"titles":5378,"content":5379,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-registrar-o-pagamento-de-uma-parcela-com-a-wagy","Posso registrar o pagamento de uma parcela com a Wagy?",[238],"Sim: diga «registra o pagamento do clube da Ana» e como ela pagou. A Wagy busca a parcela mais antiga a cobrar desse plano, mostra o valor (o saldo dessa tarefa) e a cobra quando você confirma; é preciso ter permissão para registrar cobranças. Não dá para desfazer pela Wagy: a cobrança é anulada na tarefa.",{"id":5381,"title":5382,"titles":5383,"content":5384,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#a-wagy-me-diz-quanto-é-a-primeira-parcela-antes-de-vender-um-plano","A Wagy me diz quanto é a primeira parcela antes de vender um plano?",[238],"Sim. Antes de confirmar a venda, o plano da Wagy mostra o valor da primeira parcela calculado pela Fiuit (proporcional ou inteira) e se a seguinte também nasce. Ao cancelar uma assinatura, lista as parcelas abertas, que não mudam.",{"id":5386,"title":5387,"titles":5388,"content":5389,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#e-se-os-estilos-do-painel-não-baixam","E se os estilos do painel não baixam?",[238],"A tela de carregamento permanece com as cores do seu tema; o painel não aparece sem estilos. Após oito segundos oferece Recarregar. Se o download terminar depois, continua; com movimento reduzido mantém a mesma proteção.",{"id":5391,"title":5392,"titles":5393,"content":5394,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-as-novidades-diferem-entre-painel-e-site","Por que as novidades diferem entre painel e site?",[238],"O painel agrupa mudanças por entrega e explica onde estão, como usar e quem tem permissão. O site explica o benefício para o negócio. Ambos vêm da mesma atualização.",{"id":5396,"title":5397,"titles":5398,"content":5399,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-alguém-muda-uma-visualização-da-equipe-em-trabalho","O que acontece se alguém muda uma visualização da equipe em Trabalho?",[238],"As mudanças ficam só para essa pessoa, como «modificada», e nunca alteram a visualização da equipe. Só Dono ou Gerente podem salvar por cima; os demais podem usar Salvar como minha. Você vê isso em Trabalho → Visualização.",{"id":5401,"title":5402,"titles":5403,"content":5404,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-apagam-a-visualização-que-eu-usava","O que acontece se apagam a visualização que eu usava?",[238],"Trabalho abre a visualização padrão, sem erro: o trabalho não é alterado, só a visualização. O mesmo se você perder o acesso a uma visualização compartilhada.",{"id":5406,"title":5407,"titles":5408,"content":5409,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-vejo-enquanto-o-painel-carrega","O que vejo enquanto o painel carrega?",[238],"A tela de carregamento acompanha seu tema até os estilos estarem prontos; se já foram baixados, o painel os aproveita. As letras se ajustam quando o download termina sem atrasar o início.",{"id":5411,"title":5412,"titles":5413,"content":5414,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-com-os-avisos-quando-recrio-os-dados-de-exemplo","O que acontece com os avisos quando recrio os dados de exemplo?",[238],"Você pode recriar seus dados de exemplo sem que avisos anteriores interrompam os seguintes. Os dados de exemplo continuam sem enviar mensagens a clientes reais.",{"id":5416,"title":5417,"titles":5418,"content":5419,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-um-cliente-não-pagar-o-clube","O que acontece se um cliente não pagar o clube?",[238],"O clube fica com pagamento pendente e avisa Dono e Gerente (não o resto da equipe), mas permite usar unidades vigentes por padrão: o negócio decide. Veja em Meu negócio → Catálogo → plano → Assinantes e na ficha do cliente; Dono ou Gerente pode Pausar benefícios ou Reativar. A pausa impede reservar unidades novas, sem cancelar tarefas nem apagar a dívida. Se uma tarefa já estava coberta pelo clube, ao concluí-la (ou movê-la para a última etapa) a unidade é liberada e a tarefa é cobrada pelo preço normal: ela nunca fica travada.",{"id":5421,"title":5422,"titles":5423,"content":5424,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#pagar-o-clube-reativa-os-benefícios-pausados","Pagar o clube reativa os benefícios pausados?",[238],"Cobrar uma parcela quita aquele mês; o clube volta a ficar em dia quando não sobra nenhuma parcela vencida sem pagamento. Se estava pausado, continua pausado até você escolher Reativar na ficha do cliente. Pagar não repõe unidades usadas nem vencidas.",{"id":5426,"title":5427,"titles":5428,"content":5429,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-com-a-dívida-se-eu-cancelar-um-clube-com-pagamento-pendente","O que acontece com a dívida se eu cancelar um clube com pagamento pendente?",[238],"Cancelar não cria mais parcelas e não mexe nas já criadas: uma parcela pendente continua sendo dívida e você a cobra (ou a perdoa fechando sem concluir) como qualquer tarefa, na ficha do cliente ou em A receber. As tarefas futuras que usavam o clube voltam ao preço normal.",{"id":5431,"title":5432,"titles":5433,"content":5434,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-não-vejo-a-aba-de-salas-ou-veículos-em-equipe","Por que não vejo a aba de salas ou veículos em Equipe?",[238],"Salas e veículos ficam juntos em Meu negócio → Equipe e recursos. Escolha o tipo no filtro ou toque em Adicionar para criar; eles não têm abas separadas. Pessoas reúne os recursos humanos e as contas da equipe.",{"id":5436,"title":5437,"titles":5438,"content":5439,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#como-coloco-a-foto-de-alguém-da-equipe","Como coloco a foto de alguém da equipe?",[238],"Se a pessoa tem conta com foto, essa é usada. Se não, quem é Dono ou Gerente abre o perfil em Pessoas e toca na câmera. A foto aparece nas tarefas e comissões dela.",{"id":5441,"title":5442,"titles":5443,"content":5444,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-uma-pessoa-da-equipe-vê-do-próprio-perfil","O que uma pessoa da equipe vê do próprio perfil?",[238],"Em Minha conta ela abre o perfil: foto, telefone, horário, serviços e comissão vigente. Não pode editá-lo nem ver telefones ou fotos de outras pessoas.",{"id":5446,"title":5447,"titles":5448,"content":5449,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-vejo-seções-vazias-no-painel","Por que vejo seções vazias no painel?",[238],"Para que você possa descobrir cada função desde o primeiro dia. Escondemos o ruído (contadores em zero, filtros sem opções), mas nunca a entrada de uma função: Finanças, Inbox, Calendário ou os pacotes do cliente aparecem mesmo vazios e dizem o que fazer para começar, com um botão que leva até lá.",{"id":5451,"title":5452,"titles":5453,"content":5454,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#como-mudo-a-comissão-de-um-serviço","Como mudo a comissão de um serviço?",[238],"Em Meu negócio → Catálogo, abra o serviço e toque em Editar: o campo Comissão mostra a que vale (a do serviço ou a geral). Ao mudar, a anterior termina e a nova vale a partir de hoje; o histórico fica em Finanças → Comissões.",{"id":5456,"title":5457,"titles":5458,"content":5459,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#onde-vejo-os-números-de-dinheiro-de-um-serviço-de-um-cliente-ou-de-uma-pessoa-da-equipe","Onde vejo os números de dinheiro de um serviço, de um cliente ou de uma pessoa da equipe?",[238],"Na tela de cada um, no card Finanças (serviço, ficha do cliente, perfil da pessoa e Resultados). Para o detalhe, toque em Ver no Finanças →: o Finanças abre já filtrado e o filtro se remove tocando no chip. Sem permissão de finanças ou com o dinheiro oculto, o card não aparece.",{"id":5461,"title":5462,"titles":5463,"content":5464,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-eu-cancelo-uma-tarefa-cuja-etapa-pede-dados-para-cancelar","O que acontece se eu cancelo uma tarefa cuja etapa pede dados para cancelar?",[238],"Cancela do mesmo jeito: cancelar nunca é bloqueado, pelo painel, pelo bot, pela API ou por uma integração. Os dados que a tela mostra ao cancelar são pedidos, mas são opcionais, e ficam salvos na tarefa se você preencher. Reagendar também não é bloqueado. Configura-se em Meu negócio → Catálogo → Etapas.",{"id":5466,"title":5467,"titles":5468,"content":5469,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-com-os-avisos-de-etapa-se-uma-tarefa-é-cancelada-ou-paga-sozinha","O que acontece com os avisos de etapa se uma tarefa é cancelada ou paga sozinha?",[238],"Contam igual a quando você a move: a tarefa passa para a etapa correspondente, seus avisos são enviados e suas automações por etapa rodam, uma única vez. No histórico da tarefa a mudança aparece com origem «Sistema». Se alguém compartilhava a localização em tempo real, recebe o aviso de fim.",{"id":5471,"title":5472,"titles":5473,"content":5474,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-com-as-tarefas-se-eu-bloquear-um-horário-que-já-tinha-reservas","O que acontece com as tarefas se eu bloquear um horário que já tinha reservas?",[238],"Elas não são movidas nem canceladas. Antes de bloquear, o diálogo mostra as tarefas que já caem nesse horário para você reagendar as que quiser ou deixar como estão. Você vê isso em Trabalho → Calendário ao bloquear.",{"id":5476,"title":5477,"titles":5478,"content":5479,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-ao-bloquear-uma-pessoa-outra-também-foi-bloqueada","Por que ao bloquear uma pessoa outra também foi bloqueada?",[238],"Porque elas compartilham o mesmo horário: o bloqueio vale para todos que o usam, e o diálogo avisa os nomes antes de salvar. Para bloquear só uma, dê a ela um horário próprio na ficha.",{"id":5481,"title":5482,"titles":5483,"content":5484,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-pausar-um-serviço-só-por-alguns-dias","Posso pausar um serviço só por alguns dias?",[238],"Sim, com Pausar por um período no serviço: esse serviço não é oferecido nessas datas. As pessoas e os espaços que o atendem não são bloqueados: seguem disponíveis para os outros serviços. Dá para reabri-lo quando quiser, na mesma tela.",{"id":5486,"title":5487,"titles":5488,"content":5489,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-ver-hoje-agrupado-por-pessoa-ou-por-serviço","Posso ver Hoje agrupado por pessoa ou por serviço?",[238],"Sim. Em Hoje toque em Ver e escolha Agrupar por (recurso, serviço, cliente, etapa…) e Ordenar por. Por padrão aparece por momento (Agora, Em andamento, Concluídas). Sua escolha é lembrada; a Lista de Trabalho usa o mesmo seletor.",{"id":5491,"title":5492,"titles":5493,"content":5494,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-eu-deixar-a-configuração-inicial-para-depois","O que acontece se eu deixar a configuração inicial para depois?",[238],"Em Vamos preparar seu projeto toque em Pular por agora e confirme: suas respostas ficam salvas e você entra no painel. Em Hoje aparece Retomar configuração para continuar de onde parou.",{"id":5496,"title":5497,"titles":5498,"content":5499,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-a-configuração-inicial-é-respondida-com-cartões","Por que a configuração inicial é respondida com cartões?",[238],"Cada dado é preenchido no seu cartão (equipe, horários com hora de início e fim, serviços) para que nada seja completado com algo que você não escreveu. A prévia marca o que você preencheu como «ainda não aplicado» até você confirmar o plano.",{"id":5501,"title":5502,"titles":5503,"content":5504,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-com-os-preços-que-eu-escrevo-na-configuração-inicial","O que acontece com os preços que eu escrevo na configuração inicial?",[238],"Se você responde escrevendo, o Fiuit usa só os preços que você escreveu e mostra no plano antes de confirmar. O que não ficar claro se completa no cartão. Nada é aplicado até você confirmar.",{"id":5506,"title":5507,"titles":5508,"content":5509,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-eu-tiver-mais-quadras-ou-pessoas-do-que-o-meu-plano-permite","O que acontece se eu tiver mais quadras ou pessoas do que o meu plano permite?",[238],"O cartão mostra o limite do seu plano para você escolher o que cadastrar; nada além disso é aplicado. Depois você pode mudar de plano em Configurações.",{"id":5511,"title":5512,"titles":5513,"content":5514,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-eu-pedir-para-falar-com-uma-pessoa-durante-a-configuração-inicial","O que acontece se eu pedir para falar com uma pessoa durante a configuração inicial?",[238],"Ao confirmar, a equipe da Fiuit recebe seu pedido com o motivo e escreve em breve para o email da sua conta (ou pelo WhatsApp, se você cadastrou o telefone do negócio). Suas respostas ficam salvas e você pode continuar enquanto isso; tocar de novo não manda outro aviso. Fica no topo do chat e do formulário.",{"id":5516,"title":5517,"titles":5518,"content":5519,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-na-configuração-inicial-eu-tirar-o-meu-nome-e-escrever-outra-pessoa","O que acontece se, na configuração inicial, eu tirar o meu nome e escrever outra pessoa?",[238],"A sua agenda fica inativa (você não atende e ela não conta para o limite do plano) e a outra pessoa é criada à parte, com a sua agenda. Só um nome parecido com o seu («Juli» → «Juliana») corrige o seu nome. Você vê isso no plano de Vamos preparar seu projeto antes de confirmar.",{"id":5521,"title":5522,"titles":5523,"content":5524,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-conta-para-o-limite-de-recursos-do-meu-plano","O que conta para o limite de recursos do meu plano?",[238],"Tudo o que se agenda e está ativo: quadras, salas, o local, equipamentos e pessoas. A sua agenda, se você não atende, não conta.",{"id":5526,"title":5527,"titles":5528,"content":5529,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-uma-aula-com-professor-reserva-num-clube-com-quadras","O que uma aula com professor reserva num clube com quadras?",[238],"Ao mesmo tempo, alguém da equipe e uma quadra livre; o aluguel de uma quadra reserva só a quadra. Você vê isso no plano antes de confirmar e muda depois no serviço.",{"id":5531,"title":5532,"titles":5533,"content":5534,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#onde-vejo-quanto-vende-cada-serviço-produto-ou-pacote","Onde vejo quanto vende cada serviço, produto ou pacote?",[238],"Abra o serviço, ou toque no nome do produto ou do pacote em Catálogo: você vê as quantidades por dia, semana ou mês comparadas ao período anterior. Os valores não ficam ali: toque em Ver em Finanças para vê-los.",{"id":5536,"title":5537,"titles":5538,"content":5539,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#quem-vê-o-desempenho-de-um-serviço-produto-ou-pacote","Quem vê o desempenho de um serviço, produto ou pacote?",[238],"O dono e o gerente veem os totais do negócio no detalhe de cada um. O colaborador vê só O seu: o que ele atendeu, em serviços e produtos (não em pacotes nem clube), nunca os totais do negócio. São só quantidades: os valores ficam em Finanças, e só com essa permissão.",{"id":5541,"title":5542,"titles":5543,"content":5544,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-eu-chegar-ao-limite-de-pessoas-da-equipe","O que acontece se eu chegar ao limite de pessoas da equipe?",[238],"Seu plano pode ter um limite de Equipe (quem atende) e outro de usuários do painel (Dono, Gerente e Leitura); os convites pendentes também contam. Ao chegar ao limite, Equipe avisa e não deixa convidar nem mudar alguém de grupo. Você pode desativar alguém para liberar uma vaga ou pedir à Fiuit que o amplie.",{"id":5546,"title":5547,"titles":5548,"content":5549,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#minhas-condições-mudam-se-a-fiuit-mudar-os-padrões","Minhas condições mudam se a Fiuit mudar os padrões?",[238],"Não. Seu projeto mantém suas condições. Os novos valores só são copiados ao criar novos projetos. Veja os limites em Equipe e a comissão vigente em Financeiro, somente leitura.",{"id":5551,"title":5552,"titles":5553,"content":5554,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-pedir-ao-wagy-para-agendar-uma-tarefa","Posso pedir ao Wagy para agendar uma tarefa?",[238],"Sim. Escreva, por exemplo, «agende uma entrega para o Pedro amanhã à tarde»: o Wagy busca o cliente, oferece dois ou três horários livres como botões e, quando você escolhe um, mostra a mudança para confirmar. Nada é criado até você confirmar, e dá para desfazer no mesmo chat. Dono e Gerente podem usar.",{"id":5556,"title":5557,"titles":5558,"content":5559,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#e-se-eu-escrever-uma-zona-com-uma-sigla","E se eu escrever uma zona com uma sigla?",[238],"Você pode escrever «SP», «AR» ou «CABA»: o Fiuit localiza essa zona ao salvar e a compara com o endereço do cliente. Se não conseguir comparar, não recusa o pedido nem o marca fora da cobertura. Você vê isso em Zonas → Cobertura.",{"id":5561,"title":5562,"titles":5563,"content":5564,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#e-se-houver-uma-rua-com-o-mesmo-nome-em-outra-cidade","E se houver uma rua com o mesmo nome em outra cidade?",[238],"Se o cliente não citou outra cidade, o bot não usa a rua da outra cidade: deixa o endereço como foi escrito, sem localização, para você revisar.",{"id":5566,"title":5567,"titles":5568,"content":5569,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#e-se-eu-desativar-as-zonas-que-uma-entrega-atende","E se eu desativar as zonas que uma entrega atende?",[238],"Se em «Chega a» não sobrar nenhuma zona ativa, a entrega volta a chegar a todas as suas zonas.",{"id":5571,"title":5572,"titles":5573,"content":5574,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-o-mapa-da-confirmação-diz-aproximado","Por que o mapa da confirmação diz «aproximado»?",[238],"Porque o ponto não é exato (por exemplo, o centro da rua). O cliente confere antes de confirmar.",{"id":5576,"title":5577,"titles":5578,"content":5579,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-escolher-qualquer-cor-para-a-minha-marca","Posso escolher qualquer cor para a minha marca?",[238],"Não: você escolhe uma das 11 cores da paleta do Fiuit (sugerimos a mais próxima do seu logo), para que tudo fique legível e não se confunda com as cores de erro e sucesso. Se não escolher nenhuma, fica «Cor da paleta», a cor principal da paleta do seu projeto. Você vê isso em Meu negócio → Dados → Identidade.",{"id":5581,"title":5582,"titles":5583,"content":5584,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-com-a-paleta-do-projeto-se-eu-escolher-uma-cor-da-marca","O que acontece com a paleta do projeto se eu escolher uma cor da marca?",[238],"Ela continua: define os fundos e as superfícies, e a cor da sua marca substitui a cor principal e os detalhes. A prévia de Aparência do projeto já mostra a cor da sua marca.",{"id":5586,"title":5587,"titles":5588,"content":5589,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#a-partir-de-quando-a-wagy-conta-mais-15-dias-ao-estender-um-pacote","A partir de quando a Wagy conta «mais 15 dias» ao estender um pacote?",[238],"A partir da validade atual do pacote ou clube; se já venceu, a partir de hoje. Você também pode dizer uma data («até 30\u002F11»): ela tem que ser depois da validade atual. Estender ou pausar benefícios não pode ser desfeito, e a Wagy mostra isso antes de você confirmar.",{"id":5591,"title":5592,"titles":5593,"content":5594,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#como-um-cliente-cancela-o-agendamento-pelo-chat","Como um cliente cancela o agendamento pelo chat?",[238],"Ele escreve «cancelar meu horário»: se tem um, o bot pergunta SIM ou NÃO; se tem vários, mostra como botões (ou pega o que ele nomeia: «o de barba», «o de sexta»). Só um SIM cancela, e a política de cancelamento nunca impede. O bot só vê os agendamentos de quem escreve; as parcelas de um plano não se cancelam pelo chat. Você vê isso em Calendário.",{"id":5596,"title":5597,"titles":5598,"content":5599,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#como-um-cliente-muda-o-horário-do-agendamento-pelo-chat","Como um cliente muda o horário do agendamento pelo chat?",[238],"Ele escreve, por exemplo, «quero passar meu horário para amanhã às 16»: o bot oferece horários do mesmo serviço e mostra «Remarco Corte de … para …?». Com o SIM o agendamento muda e o horário antigo fica livre; se o novo foi ocupado antes, o agendamento continua onde estava e ele oferece outros. Com o sinal pendente, primeiro é preciso pagá-lo. Você vê isso em Calendário.",{"id":5601,"title":5602,"titles":5603,"content":5604,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-fixar-a-zona-de-um-endereço-do-cliente","Posso fixar a zona de um endereço do cliente?",[238],"Sim. Na ficha do cliente, Endereços → Editar → Zona, você escolhe a zona e ela fica fixa: ao mudar as suas zonas ela não é recalculada e as tarefas novas com esse endereço a usam. «Conforme o endereço» volta a calculá-la sozinha pela área das suas zonas.",{"id":5606,"title":5607,"titles":5608,"content":5609,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-com-as-tarefas-sem-zona-quando-eu-crio-uma-zona","O que acontece com as tarefas sem zona quando eu crio uma zona?",[238],"Ao salvar a zona (ou mudar a sua área), as tarefas abertas com endereço, também as atrasadas, voltam a procurar a sua zona e o aviso diz quantas ficaram com zona. Os horários não mudam: se uma cair numa zona que não atende naquele dia, você remarca. Você vê isso em Meu negócio → Equipe e recursos.",{"id":5611,"title":5612,"titles":5613,"content":5614,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#preciso-pedir-o-cep-separado-para-a-zona-funcionar","Preciso pedir o CEP separado para a zona funcionar?",[238],"Não. Se o CEP estiver escrito no endereço («Rua A, 1 - 20520-000»), ele conta; o número da casa nunca é tomado como CEP. Na Argentina, uma zona com «3230» ou «W3230» cobre «W3230AIZ».",{"id":5616,"title":5617,"titles":5618,"content":5619,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-mover-um-horário-arrastando-na-agenda","Posso mover um horário arrastando na agenda?",[238],"Sim. Em Trabalho → Calendário você arrasta o horário para outra hora, dia ou pessoa: enquanto arrasta, os horários livres são destacados e o horário se encaixa no mais próximo. Se soltar onde não cabe, não é salvo e fica em vermelho com o motivo («fora do horário», «conflita com…»). Dono e Gerente podem «Forçar mesmo assim» fora do horário habitual da pessoa ou do serviço, com confirmação; um bloqueio do dia e o que já está ocupado nunca são sobrepostos. Staff move só os seus horários e para as suas próprias agendas. Um horário pago é movido do mesmo jeito e mantém o pagamento.",{"id":5621,"title":5622,"titles":5623,"content":5624,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-cliente-é-avisado-quando-movo-um-horário-e-posso-desfazer","O cliente é avisado quando movo um horário e posso desfazer?",[238],"Ao soltar, a confirmação traz «Avisar o cliente» marcado por padrão (o aviso de reagendamento de sempre); se desmarcar, move sem avisar. Esticar ou encurtar a duração pela borda de baixo (de 15 em 15 minutos) é salvo direto e não avisa. Cada mudança mostra «Desfazer» no aviso de baixo e volta ao horário, à pessoa e à duração anteriores. No celular, mantenha pressionado para arrastar; não é possível esticar.",{"id":5626,"title":5627,"titles":5628,"content":5629,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#como-convido-alguém-pelo-telegram-se-não-tenho-o-número","Como convido alguém pelo Telegram se não tenho o número?",[238],"Em Meu negócio → Equipe e recursos → Adicionar → Convidar, escolha Canal: Telegram e escreva o nome. Você recebe um link para enviar por onde quiser: ao abri-lo no Telegram, a pessoa entra na equipe e fica vinculada. Funciona uma única vez e vence em 48 horas. O WhatsApp continua sendo o canal padrão.",{"id":5631,"title":5632,"titles":5633,"content":5634,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#e-se-o-link-de-convite-pelo-telegram-foi-compartilhado-demais","E se o link de convite pelo Telegram foi compartilhado demais?",[238],"Quem usa é a primeira conta do Telegram que o abre. Quando alguém entra, avisamos com o nome da conta (também aparece na linha e na ficha da pessoa em Pessoas); se não era quem você esperava, desative-a. Antes de ser usado, cancele em Pessoas → Cancelar convite: o link deixa de funcionar.",{"id":5636,"title":5637,"titles":5638,"content":5639,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-ao-mudar-as-etapas-de-um-serviço-mudaram-as-de-outro","Por que, ao mudar as etapas de um serviço, mudaram as de outro?",[238],"Porque os dois usam o mesmo fluxo: as etapas são do fluxo e cada serviço escolhe um. Ao publicar, as tarefas abertas de todos esses serviços cuja etapa não existe mais passam para a primeira etapa do mesmo status, sem mudar de status nem repetir avisos. Se um serviço precisa de outro percurso, dê a ele um fluxo próprio.",{"id":5641,"title":5642,"titles":5643,"content":5644,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-uma-tarefa-antiga-não-tem-as-etapas-novas","Por que uma tarefa antiga não tem as etapas novas?",[238],"Cada tarefa segue o fluxo com que nasceu. Mudar o fluxo de um serviço vale para as tarefas novas; as abertas continuam no seu até serem encerradas.",{"id":5646,"title":5647,"titles":5648,"content":5649,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-pedir-ao-wagy-que-mude-o-fluxo-de-um-serviço","Posso pedir ao Wagy que mude o fluxo de um serviço?",[238],"Sim. O Wagy mostra os fluxos de etapas, seus passos e quais serviços usam cada um, e propõe mudar o fluxo de um ou vários serviços; aplica quando você confirma. Vale para as tarefas novas: as abertas seguem no seu. Criar ou editar um fluxo se faz em Meu negócio → Etapas.",{"id":5651,"title":5652,"titles":5653,"content":5654,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-pedir-ao-wagy-que-monte-um-fluxo-ou-que-uma-etapa-peça-algo","Posso pedir ao Wagy que monte um fluxo ou que uma etapa peça algo?",[238],"Sim, se você é Dono. Diga as etapas em ordem («monte um fluxo de coloração com ficha de saúde e foto do resultado») ou de qual exemplo partir e ele mostra o percurso antes de criar; nenhum serviço o usa até você atribuir. Ele também soma a uma etapa o que você pede («assinatura antes de cobrar», «pergunte o comprimento do cabelo»): se você não disser outra coisa, sua equipe preenche e é obrigatório para avançar. Tudo é confirmado antes e pode ser desfeito; você vê em Meu negócio → Etapas.",{"id":5656,"title":5657,"titles":5658,"content":5659,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#onde-edito-as-etapas-de-um-serviço-agora","Onde edito as etapas de um serviço agora?",[238],"Em Meu negócio → Etapas. O fluxo é o caminho da tarefa e é usado pelos serviços que o escolherem; cada serviço mostra Fluxo: … com um seletor e um link para abri-lo. Os fluxos do sistema não se editam: Duplicar cria um próprio. Ao publicar uma versão você vê, por serviço, quantas tarefas abertas se movem e confirma antes de salvar. Escolher outro fluxo em um serviço muda só as tarefas novas.",{"id":5661,"title":5662,"titles":5663,"content":5664,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-pedir-ao-wagy-para-adicionar-ou-remover-uma-etapa-de-um-fluxo","Posso pedir ao Wagy para adicionar ou remover uma etapa de um fluxo?",[238],"Sim, se você é o Dono e o fluxo é próprio. Com o fluxo aberto em Meu negócio → Etapas, diga «adicione Lavagem depois de Agendado», «tire a foto» ou «coloque a lavagem antes da foto». O Wagy mostra o percurso antes e depois, quantas tarefas mudam de etapa e quais serviços o usam (todos mudam), e é aplicado quando você confirma; se mudar de ideia, dá para desfazer. Um fluxo de sistema não é editado: copie e edite a cópia. Os itens, botões e avisos de cada etapa são editados no painel.",{"id":5666,"title":5667,"titles":5668,"content":5669,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-ter-dois-botões-que-levam-à-mesma-etapa","Posso ter dois botões que levam à mesma etapa?",[238],"Não. Cada caminho de uma etapa leva a uma etapa diferente: ao editar os caminhos em Meu negócio → Etapas só aparecem os destinos que outro caminho ainda não usa. Se precisar de duas saídas parecidas, crie uma etapa intermediária.",{"id":5671,"title":5672,"titles":5673,"content":5674,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-eu-aplicar-um-modelo-ao-meu-fluxo","O que acontece se eu aplicar um modelo ao meu fluxo?",[238],"Antes de aplicar você vê o que adiciona, o que muda, o que remove e o que fica igual, e o mapa de como ficaria o percurso. É aplicado só ao rascunho: publica quando você toca em Salvar e dá para voltar atrás em «Versões».",{"id":5676,"title":5677,"titles":5678,"content":5679,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-quando-convido-uma-pessoa-pela-ficha-dela","O que acontece quando convido uma pessoa pela ficha dela?",[238],"Em Pessoas, abra a pessoa e toque em Convidar esta pessoa em «Acesso e links»: o convite sai com o nome dela e só a agenda dela. Quando ela aceita, a conta fica unida a essa pessoa (perfil, foto e «minha agenda»). Um convite feito em Pessoas → Adicionar → Convidar dá permissões sobre uma agenda, mas não une a conta: quem atende a agenda de outra pessoa não passa a ser essa pessoa. Se a pessoa já tinha outra conta unida, ela entra igual e a ficha mostra «Vinculado a outra conta». A conta é solta ao desativá-la, ao tirar essa agenda dela ou com Desvincular na ficha.",{"id":5681,"title":5682,"titles":5683,"content":5684,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-suporte-da-fiuit-vê-minhas-vendas-e-cobranças","O suporte da Fiuit vê minhas vendas e cobranças?",[238],"Não. Quando a equipe da Fiuit entra no seu projeto para ajudar, vê a agenda, as tarefas, os clientes e a configuração, mas não o dinheiro do seu negócio: vendas, cobranças, saldos, finanças, caixa, comissões nem limites de crédito. Como alguém com acesso só de leitura, vê sim o valor de cada tarefa, o sinal e os preços do catálogo, porque precisa deles para ajudar a configurar.",{"id":5686,"title":5687,"titles":5688,"content":5689,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-a-minha-ia-vê-se-eu-sou-parceiro","O que a minha IA vê se eu sou parceiro?",[238],"Se ao conectar o Claude ou o ChatGPT você marcar «Ver sua carteira de parceiro», sua IA vê o mesmo que o seu painel de parceiro: a próxima ação, seus clientes com o semáforo e a atividade. Só lê contagens e estados, nunca o conteúdo de um negócio nem as cobranças, nem os clientes de outro parceiro. Revogue em Configurações → Desenvolvedores → Apps conectados.",{"id":5691,"title":5692,"titles":5693,"content":5694,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-o-parceiro-que-montou-meu-projeto-pode-fazer","O que o parceiro que montou meu projeto pode fazer?",[238],"Quando você aceita o projeto, o parceiro fica como Colaborador: continua configurando e operando como um Gerente, mas não vê cobranças, saldos, Finanças, pagamentos nem Mercado Pago, nem administra a equipe. Você o vê em Pessoas e remove quando quiser; tudo o que ele faz fica registrado no nome dele.",{"id":5696,"title":5697,"titles":5698,"content":5699,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-com-o-preço-se-eu-esticar-ou-encurtar-uma-tarefa","O que acontece com o preço se eu esticar ou encurtar uma tarefa?",[238],"Se o serviço tem Preço por tempo, o valor da tarefa acompanha a nova duração na proporção (o dobro do tempo, o dobro do preço). Não muda se já houver cobrança ou sinal registrados, nem se você ajustou o valor à mão. Ative em Serviços → um serviço → Opções avançadas.",{"id":5701,"title":5702,"titles":5703,"content":5704,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#qual-versão-do-fluxo-aparece-no-percurso-de-uma-tarefa","Qual versão do fluxo aparece no percurso de uma tarefa?",[238],"Na ficha, «Ver percurso» preserva as versões históricas e os nomes originais das etapas, com cada passo, data e quem o realizou. Também funciona em tarefas concluídas ou canceladas; só a equipe com acesso à tarefa pode ver. Se faltar o mapa histórico, você vê os passos registrados.",{"id":5706,"title":5707,"titles":5708,"content":5709,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#como-cadastro-um-horário-que-termina-depois-da-meia-noite","Como cadastro um horário que termina depois da meia-noite?",[238],"Coloque o fechamento antes da abertura: 20:00 às 03:00 é salvo e aparece como 20:00 – 03:00 (+1), que fecha no dia seguinte. A noite conta como do dia em que abre, e as reservas podem passar da meia-noite. Para 24 horas use 00:00 às 00:00. Você cadastra no horário de cada recurso ou serviço.",{"id":5711,"title":5712,"titles":5713,"content":5714,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-eu-fecho-o-dia-seguinte-a-uma-noite","O que acontece se eu fecho o dia seguinte a uma noite?",[238],"A noite do dia anterior continua: fechar o sábado não corta a sexta 20:00 – 03:00 (+1). Para tirar essa noite, feche a sexta. Um horário especial do sábado não pode começar antes de terminar a noite de sexta.",{"id":5716,"title":5717,"titles":5718,"content":5719,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#onde-adiciono-algo-ao-catálogo","Onde adiciono algo ao catálogo?",[238],"Em Meu negócio → Catálogo, toque em Adicionar e escolha uma das opções disponíveis para sua função. Se o catálogo estiver vazio, o botão fica no centro para ajudar você a começar; com itens ou filtros, fica no cabeçalho, sem se repetir nos resultados vazios.",{"id":5721,"title":5722,"titles":5723,"content":5724,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-com-a-minha-agenda-se-eu-não-atendo","O que acontece com a minha agenda se eu não atendo?",[238],"Seu projeto nasce com você cadastrado na equipe. Se na configuração inicial você diz que não atende, ou que se agenda o local ou os espaços, sua agenda fica inativa: não é oferecida aos clientes nem conta para o limite do seu plano. Você a reativa quando quiser em Equipe.",{"id":5726,"title":5727,"titles":5728,"content":5729,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#escolher-um-ramo-cria-serviços-ou-pessoas-de-exemplo","Escolher um ramo cria serviços ou pessoas de exemplo?",[238],"Não. Traz o vocabulário e as automações do ramo, desligadas. A equipe, os horários e os serviços saem do que você responde na configuração inicial.",{"id":5731,"title":5732,"titles":5733,"content":5734,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-a-configuração-inicial-mostrar-um-erro","O que acontece se a configuração inicial mostrar um erro?",[238],"Suas respostas ficam salvas. O painel explica o que aconteceu e oferece Tentar novamente ou Falar com uma pessoa. Se a equipe que já existe não coincide com os nomes, você pode Usar a equipe atual ou Revisar equipe.",{"id":5736,"title":5737,"titles":5738,"content":5739,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-eu-corrigir-meu-nome-quando-atendo-sozinho","O que acontece se eu corrigir meu nome quando atendo sozinho?",[238],"Se você é a única pessoa ativa da equipe e confirma uma pessoa com um único nome editado, a mesma agenda vinculada à sua conta é corrigida. Você vê a mudança antes de confirmar na Configuração inicial, mantém sua equipe e pode desfazê-la.",{"id":5741,"title":5742,"titles":5743,"content":5744,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#e-se-eu-combinar-exemplos-e-depois-quiser-desfazer-um","E se eu combinar exemplos e depois quiser desfazer um?",[238],"Você pode combinar até 3 exemplos (por exemplo, oficina e lava-rápido). Cada um soma, sem repetir, o vocabulário, os fluxos, avisos desligados e serviços ou produtos sugeridos sem preço e desligados; nunca cria pessoas nem espaços. Se você desfizer uma parte, sai só o que continua como chegou: o que você mudou ou já usa fica. Peça ao Wagy.",{"id":5746,"title":5747,"titles":5748,"content":5749,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-eu-testar-um-fluxo","O que acontece se eu testar um fluxo?",[238],"Nada real: «Testar fluxo» percorre o rascunho na tela, mesmo sem salvar, sem guardar dados, sem avisar a equipe nem o cliente, sem cobrar e sem enviar mensagens. «O que aconteceria» mostra os avisos e os dados que haveria. Quem vê é o Dono, em Meu negócio → Etapas.",{"id":5751,"title":5752,"titles":5753,"content":5754,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-quando-uma-etapa-avança-sozinha","O que acontece quando uma etapa avança sozinha?",[238],"Se a etapa tem Temporizador, a tarefa passa sozinha pelo caminho escolhido ao vencer (depois de N minutos, ao terminar o horário ou se o cliente não escrever) e mostra a contagem regressiva. Com «Avança sozinha ao receber o pagamento», passa quando fica totalmente paga pelo Mercado Pago; um pagamento parcial não a move. No histórico aparece como automático; se o caminho não puder ser tomado, ela fica onde está. Configura-se em Meu negócio → Etapas.",{"id":5756,"title":5757,"titles":5758,"content":5759,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-quando-uma-etapa-avança-sozinha-ao-responder-ou-ao-preencher-o-formulário","O que acontece quando uma etapa avança sozinha ao responder ou ao preencher o formulário?",[238],"Com «Quando o cliente responder», a tarefa passa sozinha por esse caminho assim que o cliente escreve por qualquer canal depois de entrar na etapa; uma mensagem repetida não a move duas vezes. Com «Quando o cliente preencher o formulário», passa quando estão todos os dados obrigatórios que o cliente preenche na etapa (o bot pede pelo chat, ou a equipe cadastra); se faltar um, ela fica. No histórico aparece como automático com o motivo e, se o caminho não puder ser tomado, fica onde está com o aviso «Não avançou sozinha». Configura-se em Meu negócio → Etapas, em cada caminho.",{"id":5761,"title":5762,"titles":5763,"content":5764,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-uma-tarefa-aparece-na-atenção-do-controle-e-de-hoje","Por que uma tarefa aparece na atenção do Controle e de Hoje?",[238],"Ambos mostram os mesmos motivos: atrasos, falta de responsável ou horário, zona, cobertura, endereço, avisos e avaliações para revisar. Em Finanças → Resultados só aparecem motivos com tarefas; toque em um para abrir Trabalho filtrado. Os atrasos respeitam a tolerância do projeto; avaliações podem ficar pendentes após concluir a tarefa.\nAo abrir um motivo, Trabalho mostra exatamente as tarefas contadas: «Sem zona» exclui fora da cobertura e «Sem responsável» exclui reservas temporárias já atribuídas. Limpar filtros também remove o serviço.",{"id":5766,"title":5767,"titles":5768,"content":5769,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-meu-negócio-não-se-encaixa-em-nenhum-ramo","O que acontece se meu negócio não se encaixa em nenhum ramo?",[238],"Não precisa se encaixar: seu negócio é descrito por traços que se combinam (atende no local, entrega, vende produtos, agenda quadras…) e a Wagy sugere exemplos parecidos. Se algo não está no catálogo, a Wagy propõe à equipe da Fiuit e não tem efeito até ser aprovado. Hoje isso ainda não aparece no painel.",{"id":5771,"title":5772,"titles":5773,"content":5774,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-eu-precisar-preencher-dados-na-visão-rápida","O que acontece se eu precisar preencher dados na visão rápida?",[238],"Escolha Abrir tarefa para preencher formulários, evidências ou cobranças no detalhe. Em Trabalho → Mapa ou Calendário, a visão rápida oferece apenas ações simples permitidas para sua equipe; não mostra valores.",{"id":5776,"title":1127,"titles":5777,"content":1129,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#como-aproximo-a-linha-do-tempo-e-abro-uma-tarefa",[238],{"id":5779,"title":1567,"titles":5780,"content":5781,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#onde-organizo-pessoas-recursos-e-catálogo",[238],"Em Meu negócio você tem Dados, Catálogo, Equipe e recursos (Pessoas, Equipes, Zonas e locais) e Etapas. Salas e veículos são criados em Recursos. Em Equipes de trabalho você gerencia equipes e zonas, com seus membros e serviços. O papel Equipe dá acesso ao painel; uma pessoa pode receber tarefas sem conta e o convite ao painel é opcional na ficha.",{"id":5783,"title":5784,"titles":5785,"content":5786,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#como-recupero-um-produto-arquivado-ou-um-plano-que-parei-de-vender","Como recupero um produto arquivado ou um plano que parei de vender?",[238],"Em Meu negócio → Catálogo, escolha Inativos \u002F arquivados em Estado e toque em Reativar. Ele volta a ser oferecido sem perder o histórico; desativar um plano mantém seus assinantes.",{"id":5788,"title":5789,"titles":5790,"content":5791,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-wagy-encontra-uma-característica-fora-do-catálogo","O que acontece se Wagy encontra uma característica fora do catálogo?",[238],"Wagy prepara uma proposta e você confirma o envio à equipe. Durante a revisão, ela fica como etiqueta própria e não altera os fluxos nem o bot. A equipe pode aprovar, rejeitar ou unir a outra; consulte o estado com Wagy. A aprovação não ativa a característica automaticamente.",{"id":5793,"title":5794,"titles":5795,"content":5796,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-uma-automação-cria-uma-tarefa-com-horário-sem-data","O que acontece se uma automação cria uma tarefa com horário sem data?",[238],"A tarefa fica Sem horário, como «Agendar depois», e o bot ou a equipe a agenda. Se a automação escolhe uma pessoa ou um recurso, precisa de uma data. Você a vê em Trabalho, com as tarefas sem horário.",{"id":5798,"title":5799,"titles":5800,"content":5801,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-uma-entrega-só-chega-a-algumas-zonas-e-o-cliente-está-em-outra","O que acontece se uma entrega só chega a algumas zonas e o cliente está em outra?",[238],"Decide o mesmo ajuste de Zonas → Cobertura. Com «Aceitar mesmo assim e me avisar», o bot oferece a entrega, aceita o pedido e a tarefa aparece em Precisa da sua atenção como fora da cobertura. Com «Não aceitar», o bot não a oferece e diz ao cliente que por enquanto essa entrega não chega à sua região.",{"id":5803,"title":5804,"titles":5805,"content":5806,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-com-um-pedido-de-fora-da-área-que-montei-na-configuração-inicial","O que acontece com um pedido de fora da área que montei na configuração inicial?",[238],"É atendido do mesmo jeito: a tarefa fica com a etiqueta «fora da cobertura» e aparece em Precisa da sua atenção para você decidir. A área (a cidade toda, um raio ou bairros e CEPs) se ajusta depois em Zonas, onde você também pode escolher não atender esses pedidos.",{"id":5808,"title":5809,"titles":5810,"content":5811,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-significa-continua-ocupando-no-calendário","O que significa «Continua ocupando» no calendário?",[238],"É uma tarefa iniciada que não foi concluída no dia e ainda ocupa o lugar: ocupa todo o horário de atendimento de cada dia seguinte até você concluí-la, no máximo 7 dias. Depois desse prazo o lugar é liberado e a tarefa continua em Atrasadas. Você vê listrado em Trabalho → Calendário e Linha do tempo; não se arrasta.",{"id":5813,"title":5814,"titles":5815,"content":5816,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-fazer-de-dia-inteiro-um-serviço-com-uma-pessoa","Posso fazer de dia inteiro um serviço com uma pessoa?",[238],"Não. O dia inteiro é para o que se deixa e se retira no local (um carro na oficina): o cliente escolhe o dia e entra a partir da abertura. Se o serviço atribui uma pessoa, o painel não o salva como dia inteiro, e também não deixa somar depois uma pessoa aa equipe dele. Mudar para dia inteiro não mexe nas tarefas já agendadas. Escolha em Meu negócio → Catálogo, no serviço.",{"id":5818,"title":5819,"titles":5820,"content":5821,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#meus-clientes-podem-reservar-mais-de-uma-hora-do-mesmo-serviço","Meus clientes podem reservar mais de uma hora do mesmo serviço?",[238],"Sim, se o serviço oferece várias durações (por exemplo 1 h, 1 h 30 e 2 h): o cliente escolhe uma e fica uma só reserva com essa duração e o seu preço, ou o preço na proporção se você não definiu um. O bot pergunta por quanto tempo se o cliente não disser. Configure em Serviços, no serviço, em «Durações que o cliente escolhe».",{"id":5823,"title":5824,"titles":5825,"content":5826,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-quando-uma-reserva-começa-sozinha","O que acontece quando uma reserva começa sozinha?",[238],"Se a etapa tem um Temporizador «Ao começar o horário», a tarefa passa sozinha pelo caminho escolhido na hora de início (por exemplo, de «Reservado» para «Em andamento») e, com outro «Ao vencer o horário», na hora de fim. Se você reagendar, a troca acompanha; se ela entrar na etapa com a hora já passada, avança logo. «Não veio» continua manual. Só em fluxos com horário; configura-se em Meu negócio → Etapas.",{"id":5828,"title":5829,"titles":5830,"content":5831,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-tirar-algo-de-como-o-wagy-entendeu-meu-negócio-na-configuração-inicial","Posso tirar algo de como o Wagy entendeu meu negócio na configuração inicial?",[238],"Sim. Antes de confirmar o plano, o Wagy mostra «Assim entendi o seu negócio»: toque no ✕ no que não se aplica ou em «Sim, é isso». O que você confirma ali é o que se monta; se depois mudar outra resposta, ele mostra de novo. Você vê em Vamos preparar seu projeto.",{"id":5833,"title":5834,"titles":5835,"content":5836,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-a-configuração-inicial-começa-perguntando-pelo-meu-negócio","Por que a configuração inicial começa perguntando pelo meu negócio?",[238],"O Wagy pede que você conte do seu negócio com as suas palavras. Com isso ele monta as perguntas e os exemplos do seu jeito: uma clínica de estética vê salas e profissionais, um clube quadras e professores. O que você já contou (sua equipe, seu horário, o que vende) não é perguntado de novo: aparece como cartão «Da sua mensagem» que você muda com um toque. Se não der, segue com as perguntas de sempre. Você vê em Vamos preparar seu projeto.",{"id":5838,"title":5839,"titles":5840,"content":5841,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#como-é-calculado-o-previsto-do-mês-que-vem-em-finanças","Como é calculado o previsto do mês que vem em Finanças?",[238],"É só uma soma de coisas com data, não uma estatística. Certo é o que você já recebeu (pagamento ou sinal) das tarefas agendadas e as despesas fixas que vencem; o que você recebeu no mesmo período já está em Entrou e não é contado duas vezes. Previsto é o saldo que essas tarefas ainda não pagaram, a comissão da equipe estimada e as despesas aguardando aprovação. A taxa de cobrança não é estimada e os valores a receber sem vencimento não são somados. Se não houver nada agendado, o período seguinte não aparece. Você vê em Finanças → Início.",{"id":5843,"title":5844,"titles":5845,"content":5846,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#onde-ficam-os-relatórios-de-finanças","Onde ficam os relatórios de Finanças?",[238],"Em Finanças → Relatórios: um seletor com a DRE, o fluxo de caixa, as vendas por mês, as comissões da equipe, os recebimentos, o caixa, o a receber e o pacote para o contador. Cada um tem seu botão Exportar.",{"id":5848,"title":5849,"titles":5850,"content":5851,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-é-o-em-atraso-em-finanças","O que é o «em atraso» em Finanças?",[238],"O a receber que tem mais de 30 dias. Some quando vale zero.",{"id":5853,"title":5854,"titles":5855,"content":5856,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#como-funciona-um-horário-fixo","Como funciona um horário fixo?",[238],"É um agendamento que se repete (por exemplo, toda terça às 20:00) a cada 1 a 4 semanas, até uma data ou um número de vezes. Você monta com «Repetir» ao criar uma tarefa, e cada data é uma tarefa normal cobrada nesse dia. Ao abrir uma data você vê «Horário fixo» e pode editar ou cancelar só essa, essa e as seguintes ou toda a série.",{"id":5858,"title":5859,"titles":5860,"content":5861,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-uma-data-do-horário-fixo-conflita-com-outro-agendamento-ou-um-feriado","O que acontece se uma data do horário fixo conflita com outro agendamento ou um feriado?",[238],"Antes de criar, a prévia das próximas 8 semanas marca as datas que não cabem (fechado, sem vaga, feriado) e você pula cada uma ou cria o horário sem elas. As que conflitam mais adiante não são criadas e ficam marcadas na série. Cancelar uma só data não muda o resto.",{"id":5863,"title":5864,"titles":5865,"content":5866,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#e-se-ao-confirmar-a-configuração-inicial-algo-não-puder-ser-criado","E se, ao confirmar a configuração inicial, algo não puder ser criado?",[238],"O que deu certo fica criado e o que não deu fica marcado «Deixo em Primeiros passos». Você pode tocar em «Entrar mesmo assim»: suas respostas ficam guardadas e o que falta você completa em Primeiros passos, no Hoje.",{"id":5868,"title":5869,"titles":5870,"content":5871,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-com-as-tarefas-vinculadas-se-eu-cancelar-a-tarefa-principal","O que acontece com as tarefas vinculadas se eu cancelar a tarefa principal?",[238],"As que ainda não começaram são canceladas; as que já estão em andamento continuam e você decide. Reagendar a tarefa principal não cancela nada: as vinculadas ficam com a tarefa nova.",{"id":5873,"title":5874,"titles":5875,"content":5876,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-cliente-fica-sabendo-das-tarefas-vinculadas","O cliente fica sabendo das tarefas vinculadas?",[238],"Não. O cliente vê só a tarefa principal: não recebe avisos das vinculadas e o bot não as mostra.",{"id":5878,"title":5879,"titles":5880,"content":5881,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-quando-a-equipe-adiciona-algo-que-a-etapa-oferece","O que acontece quando a equipe adiciona algo que a etapa oferece?",[238],"Se for um produto (por exemplo, um creme), ele entra na mesma tarefa com o preço do catálogo e aumenta o valor a cobrar. Se for um serviço (por exemplo, uma barba), nasce outra tarefa para o mesmo cliente, que é agendada e cobrada à parte. Você vê isso na tarefa, em «Oferecer…».",{"id":5883,"title":5884,"titles":5885,"content":5886,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-com-a-barba-se-eu-cancelar-o-corte-que-a-ofereceu","O que acontece com a barba se eu cancelar o corte que a ofereceu?",[238],"Nada: são duas tarefas independentes. Cancelar uma não cancela a outra nem envia avisos ao cliente por ela. Cada tarefa mostra de onde nasceu ou o que foi aceito, só como registro.",{"id":5888,"title":5889,"titles":5890,"content":5891,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-não-vejo-todas-as-abas-de-recursos-ou-catálogo","Por que não vejo todas as abas de Recursos ou Catálogo?",[238],"Só aparecem os tipos com itens; se houver apenas um, ele abre diretamente sem abas. Para começar outro tipo, use o menu de cadastros. A busca e os estados se aplicam dentro da seção escolhida.\nEquipes têm sua própria seção com membros, zonas e serviços que o usam.",{"id":5893,"title":5894,"titles":5895,"content":5896,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-nova-tarefa-pede-os-dados-um-de-cada-vez","Por que «Nova tarefa» pede os dados um de cada vez?",[238],"Para criar ser rápido: primeiro o cliente, depois o serviço e, no fim, «Quando e quem». Cada etapa escolhida fica numa linha que você pode tocar para alterar; o que já vem completo (por exemplo, do calendário ou da ficha de um cliente) é pulado.",{"id":5898,"title":5899,"titles":5900,"content":5901,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#de-onde-vem-o-horário-que-nova-tarefa-sugere","De onde vem o horário que «Nova tarefa» sugere?",[238],"É o próximo horário livre real desse serviço (com a pessoa ou a equipe que você escolher), a partir de hoje e até 7 dias à frente. Você altera com um toque; se não houver nenhum nesses dias, escolhe a data manualmente.",{"id":5903,"title":5904,"titles":5905,"content":5906,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#onde-ficaram-os-co-responsáveis-e-repetir-ao-criar-uma-tarefa","Onde ficaram os co-responsáveis e «Repetir» ao criar uma tarefa?",[238],"Em Mais opções, na última etapa. Fica fechado por padrão; se você abrir, ele continua aberto da próxima vez, e se uma dessas opções já tiver valor, abre sozinho.",{"id":5908,"title":5909,"titles":5910,"content":5911,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-criar-uma-tarefa-que-não-seja-de-nenhum-cliente","Posso criar uma tarefa que não seja de nenhum cliente?",[238],"Sim: no primeiro passo de «Nova tarefa» escolha Sem cliente. Ela não envia avisos a nenhum cliente nem é cobrada, por isso só vale com um serviço sem preço. Depois você pode atribuir um cliente.",{"id":5913,"title":5914,"titles":5915,"content":5916,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-nova-tarefa-já-traz-um-serviço-escolhido","Por que «Nova tarefa» já traz um serviço escolhido?",[238],"Se esse cliente costuma pedir o mesmo serviço (o que mais pediu nas últimas tarefas), deixamos escolhido para poupar um passo. Você altera com um toque.",{"id":5918,"title":5919,"titles":5920,"content":5921,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#que-horário-a-wagy-sugere-se-eu-não-disser-quando","Que horário a Wagy sugere se eu não disser quando?",[238],"O próximo horário livre real do serviço, a partir de hoje e até 7 dias à frente, igual a «Nova tarefa». Se você pedir outro dia ou hora, ela usa o que você pediu. Antes de criar, você vê a proposta e confirma ou deixa a contagem regressiva aplicar, conforme o seu nível.",{"id":5923,"title":5924,"titles":5925,"content":5926,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#onde-está-a-explicação-que-antes-aparecia-na-tela","Onde está a explicação que antes aparecia na tela?",[238],"Passou para o «?» ao lado do título: mostra uma linha e botões de tópicos, e cada tópico abre o seu, com «Voltar» e «Início». Em um tópico você pode tocar em «Faça com o Wagy» para pedir; o Wagy nunca abre sozinho. Por enquanto em Catálogo, Minha conta e Cobrança da tarefa.",{"id":5928,"title":5929,"titles":5930,"content":5931,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-não-veio-não-aparece-em-um-fluxo-de-fila","Por que «Não veio» não aparece em um fluxo de fila?",[238],"Trabalhos em fila não têm um horário marcado ao qual faltar. Em Meu negócio → Etapas, o editor não oferece «Não veio» nesses caminhos e mantém a configuração dos fluxos que já a tinham. Fluxos com horário mantêm essa saída.",{"id":5933,"title":5934,"titles":5935,"content":5936,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#qual-visão-de-trabalho-abre-para-cada-pessoa","Qual visão de Trabalho abre para cada pessoa?",[238],"Em um negócio novo, a equipe começa na Lista de Hoje e o dono e o gerente em Kanban por etapa. Se você já escolheu uma visão ou forma, ela é mantida. Focus continua em Hoje → Ver.",{"id":5938,"title":5939,"titles":5940,"content":5941,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#como-testo-o-visual-novo-do-painel","Como testo o visual novo do painel?",[238],"Em Minha conta → Idioma e modo, ligue «Testar visual novo (beta)». Vale para você nesse dispositivo e não muda nada para sua equipe. Se preferir o de sempre, desligue e o painel volta a ser como era.",{"id":5943,"title":5944,"titles":5945,"content":5946,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-o-quadro-do-wagy-não-mostra-pedidos-equipe-ou-caixa","Por que o quadro do Wagy não mostra Pedidos, Equipe ou Caixa?",[238],"Porque o quadro só desenha o que tem dados: um bloco vazio, ou com todos os contadores em 0, fica escondido e aparece sozinho quando chega o primeiro dado. Se hoje você não recebeu mas na semana sim, o Caixa mostra a semana com o título do período. Se não há nada, você vê «Tudo calmo por enquanto». Fica em Wagy → Painel de controle → Quadro.",{"id":5948,"title":5949,"titles":5950,"content":5951,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#e-se-eu-pedir-ao-wagy-o-primeiro-disponível-para-o-sebastião","E se eu pedir ao Wagy «o primeiro disponível para o Sebastião»?",[238],"O Wagy agenda a tarefa no primeiro horário livre do Sebastião e a deixa atribuída a ele; também entende se você escreveu «Atribuir ao Sebastião» nas notas. Se faltar o horário, mostra os próximos livres como botões, com «Ver mais», e se não houver vaga nos próximos 7 dias avisa e pede outra data. O que você já disse (cliente, serviço, notas) não é perguntado de novo.",{"id":5953,"title":5954,"titles":5955,"content":5956,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-chamar-minhas-salas-de-quadras","Posso chamar minhas salas de «quadras»?",[238],"Sim. Cada tipo (sala, equipamento, mesa, veículo, zona) pode ter seu nome: o painel e o bot dizem «Quadras» em vez de «Salas». No cadastro do negócio usamos a palavra que você usa («temos 4 quadras»); depois você muda em Configurações → Vocabulário ou pedindo ao Wagy. Se deixar vazio, volta o nome de sempre.",{"id":5958,"title":5959,"titles":5960,"content":5961,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#quais-tipos-de-parceiro-a-fiuit-tem","Quais tipos de parceiro a Fiuit tem?",[238],"Implementador local, agência e creator, os mesmos nomes do site. No painel de parceiros,\nos registros existentes mantêm seu código e seus projetos com o tipo equivalente.",{"id":5963,"title":5964,"titles":5965,"content":5966,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#por-que-só-vejo-uma-próxima-etapa-nos-passos-da-tarefa","Por que só vejo uma próxima etapa nos passos da tarefa?",[238],"No detalhe e no Focus, os passos resumem o que foi feito com check, quem e horário, a etapa atual com sua cor e só a próxima em cinza. As demais futuras ficam ocultas e as passadas que não cabem viram «+N»; uma tarefa cancelada termina em «Cancelada», sem próxima. Deslize para trás para ler cada visita anterior e toque em «Voltar à etapa atual» para recuperar a ação e continuar trabalhando.",{"id":5968,"title":5969,"titles":5970,"content":5971,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#quais-cores-o-site-do-meu-negócio-usa","Quais cores o site do meu negócio usa?",[238],"O site usa a paleta escolhida em Meu negócio → Dados → Cores da sua marca, inclusive a gerada pelo seu logo. Acompanha o modo claro ou escuro do dispositivo do cliente; com paleta, ela prevalece sobre a cor de destaque. Sem paleta, fica o tema do Fiuit com a cor de destaque do negócio.",{"id":5973,"title":5974,"titles":5975,"content":5976,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-eu-importar-meu-catálogo-com-o-claude-ou-o-chatgpt-e-me-arrepender","O que acontece se eu importar meu catálogo com o Claude ou o ChatGPT e me arrepender?",[238],"Antes de cadastrar qualquer coisa, você vê a prévia e confirma. Depois pode pedir à sua IA para desfazer a importação: os produtos novos são apagados (ou arquivados se já foram vendidos) e os atualizados voltam a como estavam. Funciona por 7 dias, se ninguém mexeu no catálogo depois; se alguém editou, não se desfaz para não apagar essa mudança. Com os serviços é igual: só os novos são importados e se desfazem se ninguém os alterou.",{"id":5978,"title":5979,"titles":5980,"content":5981,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-quando-vence-o-prazo-de-uma-etapa-que-só-avisa-sla","O que acontece quando vence o prazo de uma etapa que só avisa (SLA)?",[238],"Se o Temporizador da etapa está em «Ao vencer: avisar», ao cumprir o prazo a equipe escolhida é avisada (dono e gerentes, toda a equipe ou quem está com a tarefa) e a tarefa fica na etapa. Sai um só aviso cada vez que a tarefa entra na etapa. O prazo pode depender de uma resposta (por exemplo, a severidade: S1 1 h, S2 4 h, S3 1 dia) e contar desde que o caso chegou; se você mudar a resposta, ele é recalculado. Configura-se em Meu negócio → Etapas, em «+ Adicionar → Automático». O prazo vai até 30 dias e conta horas corridas.",{"id":5983,"title":5984,"titles":5985,"content":5986,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#como-se-monta-o-título-de-uma-tarefa","Como se monta o título de uma tarefa?",[238],"Cada serviço escolhe até 3 peças: Cliente, Pedido, Endereço, Nº ou um campo do formulário (por exemplo, «Veículo»). Ele se completa sozinho conforme os dados chegam e, se uma peça estiver vazia, é omitida. Configure em Meu negócio → Serviços → Editar serviço → Título das tarefas.",{"id":5988,"title":5989,"titles":5990,"content":5991,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#o-que-acontece-se-eu-editar-à-mão-o-título-de-uma-tarefa","O que acontece se eu editar à mão o título de uma tarefa?",[238],"Ele fica fixo: deixa de se completar com o modelo do serviço. Na ficha da tarefa, «Voltar ao automático» o devolve. As tarefas anteriores a esta função mostram o serviço e o cliente, como sempre.",{"id":5993,"title":5994,"titles":5995,"content":5996,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#uma-etapa-pode-mudar-o-título-da-tarefa","Uma etapa pode mudar o título da tarefa?",[238],"Sim: adicione «Definir título» na etapa (Meu negócio → Etapas → + Adicionar → Automático), escolha as peças e se vale ao entrar ou ao concluir a etapa. Não sobrescreve um título escrito à mão, a menos que você marque «Substituir sempre».",{"id":5998,"title":5999,"titles":6000,"content":6001,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fservicios-y-tareas#posso-guardar-os-carros-dos-meus-clientes","Posso guardar os carros dos meus clientes?",[238],"Sim. Peça ao Wagy («quero guardar os carros dos meus clientes») e cada cliente passa a ter seus veículos: placa, marca, modelo, ano, km e cor, sem nenhum dado obrigatório (basta a placa ou o modelo). Se você não usar, não vê nada novo. Se deixar de usar, os carros ficam guardados só para leitura. Uma oficina ou um lava-rápido que começa com o modelo do ramo já vem com isso ativo. Os carros aparecem na ficha do cliente → Veículos: ali você cadastra, marca o padrão, arquiva o que não vem mais e toca em «Ver» para os dados e o histórico.",{"id":243,"title":242,"titles":6003,"content":6004,"level":257},[],"Como cancelar sua assinatura Fiuit com um clique, até quando você segue com o plano, como desfazer e o que acontece com seus dados. O que acontece quando você quer deixar de usar o Fiuit, e onde você vê isso.",{"id":6006,"title":6007,"titles":6008,"content":6009,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#como-cancelo-minha-assinatura","Como cancelo minha assinatura?",[242],"Só o Dono do projeto pode fazer isso, em Configurações → Plano: toque em Cancelar assinatura e confirme. Sem ligações, formulários nem motivo obrigatório, e cancelar nunca fica travado. Um Gerente vê a tela e quem pode usá-la, mas não o botão.",{"id":6011,"title":6012,"titles":6013,"content":6014,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#até-quando-continuo-com-meu-plano-se-cancelar","Até quando continuo com meu plano se cancelar?",[242],"Seu plano não é renovado e você não é cobrado de novo: você continua usando até o fim do período que já pagou. Se a data for conhecida, a tela mostra; seus dados e seu projeto continuam iguais até lá.",{"id":6016,"title":6017,"titles":6018,"content":6019,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#posso-me-arrepender","Posso me arrepender?",[242],"Sim. Enquanto o projeto não estiver encerrado, na mesma tela toque em Desfazer cancelamento e seu plano volta a ser renovado como antes. Se o projeto já estiver encerrado, escreva para hola@fiuit.com.",{"id":6021,"title":6022,"titles":6023,"content":6024,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#o-que-significa-estamos-confirmando-o-cancelamento","O que significa «Estamos confirmando o cancelamento»?",[242],"Seu cancelamento já foi registrado; só falta a cobrança confirmar que parou de renovar. Você não precisa fazer nada: ele se completa sozinho e a mensagem some.",{"id":6026,"title":6027,"titles":6028,"content":6029,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#o-que-acontece-com-meus-dados-se-eu-cancelar","O que acontece com meus dados se eu cancelar?",[242],"Cancelar não apaga nada. Você pode baixar seus recebimentos em Finanças → Movimentações (Exportar CSV) e seus produtos em Meu negócio → Catálogo (Exportar CSV). Para pedir uma cópia completa ou a exclusão dos seus dados, escreva para hola@fiuit.com: respondemos em 30 dias. Os registros de pagamentos e financeiros são guardados por 5 anos por obrigações fiscais e contábeis. Os detalhes estão na política de privacidade.",{"id":6031,"title":6032,"titles":6033,"content":6034,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#quem-vê-que-cancelei-a-assinatura","Quem vê que cancelei a assinatura?",[242],"A equipe Fiuit, para não renovar seu plano. No seu projeto fica registrado quem cancelou ou desfez e quando.",{"id":6036,"title":6037,"titles":6038,"content":6039,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#o-que-acontece-se-um-cliente-pede-para-apagar-os-dados-dele","O que acontece se um cliente pede para apagar os dados dele?",[242],"A equipe do Fiuit faz isso a pedido (hola@fiuit.com) e avisa antes se houver tarefas pendentes. São apagadas as\nconversas, mensagens, foto e notas da ficha. As tarefas, pedidos e cobranças ficam para a sua agenda e a sua\ncontabilidade, mas sem nome, telefone nem endereço: em Clientes a ficha aparece sem dados. Se ele escrever de\nnovo, começa como cliente novo.",{"id":6041,"title":6042,"titles":6043,"content":6044,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#o-que-acontece-se-eu-chegar-ao-limite-do-meu-plano","O que acontece se eu chegar ao limite do meu plano?",[242],"O botão para conectar um canal ou convidar alguém fica desativado com um texto curto e um link para Configurações → Plano para mudar de plano. O que você já tem continua funcionando. No Solo são 2 pessoas com acesso, 3 recursos e 2 conexões (com um só número de WhatsApp); Negócio e Pro têm limites maiores, também com um só número de WhatsApp; Business é sob medida.",{"id":6046,"title":6047,"titles":6048,"content":6049,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#posso-reduzir-o-plano-se-tenho-mais-do-que-ele-permite","Posso reduzir o plano se tenho mais do que ele permite?",[242],"Não enquanto o negócio superar algum limite do plano novo. A tela de mudança de plano lista o que é preciso remover primeiro (pessoas com acesso, recursos, conexões ou números de WhatsApp) com um link para cada lugar. Nada é apagado automaticamente.",{"id":6051,"title":6052,"titles":6053,"content":6054,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#quem-conta-como-operador","Quem conta como operador?",[242],"As pessoas com acesso ao painel e os convites pendentes. As pessoas agendáveis sem conta não contam. Em Pessoas você vê «Pessoas com acesso: 1 de 2».",{"id":6056,"title":6057,"titles":6058,"content":6059,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#posso-tirar-o-feito-com-fiuit-do-meu-site","Posso tirar o «Feito com Fiuit» do meu site?",[242],"Com um plano pago, sim: em Atendimento → Site você desmarca «Feito com Fiuit» e salva, ou pede ao Wagy. No plano de teste ele aparece sempre. Se o seu projeto passar para um plano que não permite, ele volta a aparecer sozinho.",{"id":6061,"title":6062,"titles":6063,"content":6064,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#o-wagy-pode-publicar-o-meu-site","O Wagy pode publicar o meu site?",[242],"Sim, mas nunca sem a sua confirmação: ele mostra o antes e o depois e espera você confirmar; depois dá para desfazer.",{"id":6066,"title":6067,"titles":6068,"content":6069,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#o-que-é-a-inteligência-do-meu-plano","O que é a Inteligência do meu plano?",[242],"É o que o bot, o Wagy e as automações com IA usam. Em Configurações → Plano você vê quanto usou do mês em porcentagem e, no ritmo atual, até que dia ela dura. Avisamos em 80 % e em 100 %, e ela é recarregada sozinha no começo de cada mês.",{"id":6071,"title":6072,"titles":6073,"content":6074,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#o-que-acontece-se-a-inteligência-do-mês-acabar","O que acontece se a Inteligência do mês acabar?",[242],"As funções com IA são pausadas até a recarga; todo o resto continua funcionando. Se precisar de mais, toque em Solicitar mais: uma recarga vale só até o fim do mês e não se acumula.",{"id":6076,"title":6077,"titles":6078,"content":6079,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#como-peço-ajuda-ao-suporte-da-fiuit","Como peço ajuda ao suporte da Fiuit?",[242],"Toque em Falar com o suporte na ajuda ? de cada tela ou no menu da sua conta, ou em Avisar o suporte se vir um erro. O Wagy tenta resolver primeiro e, se não der, mostra o pedido com o motivo, um resumo que você pode corrigir, a tela e o erro. Nada é enviado até você confirmar; o suporte responde no chat do Wagy (e por WhatsApp ou e-mail) e você pode perguntar ao Wagy «como está meu caso?».",{"id":6081,"title":6082,"titles":6083,"content":6084,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#o-que-o-suporte-vê-quando-peço-ajuda","O que o suporte vê quando peço ajuda?",[242],"Seus dados e os do seu projeto (plano, ramo, tela, dispositivo e o erro), e ele pode entrar na sua conta em modo leitura para te ajudar; o acesso fica registrado. Nunca vê dados dos seus clientes nem senhas: antes de enviar, o resumo é limpo dos nomes deles, do que escreveram, telefones e e-mails, e você vê como sai.",{"id":6086,"title":6087,"titles":6088,"content":6089,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#o-que-acontece-se-eu-pedir-ajuda-duas-vezes-pelo-mesmo-motivo","O que acontece se eu pedir ajuda duas vezes pelo mesmo motivo?",[242],"Se você já tem um caso aberto por esse motivo, o pedido novo é somado a ele. Você pode mandar até 5 pedidos por dia por projeto.",{"id":6091,"title":6092,"titles":6093,"content":6094,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#de-quanto-em-quanto-tempo-as-fotos-do-instagram-são-atualizadas-no-meu-site","De quanto em quanto tempo as fotos do Instagram são atualizadas no meu site?",[242],"O Instagram não avisa quando você posta algo, então a Fiuit consulta de tempos em tempos conforme o seu plano: a cada 24 horas nos planos básicos, a cada 6 no Pro e a cada 1 no Business, que também tem «Atualizar agora» (até 5 vezes por dia). Aparecem os últimos posts; o que você apaga no Instagram some da cópia. Configura-se em Atendimento → Site → Galeria do Instagram.",{"id":6096,"title":6097,"titles":6098,"content":6099,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#o-que-acontece-com-as-fotos-copiadas-se-eu-desconectar-o-instagram","O que acontece com as fotos copiadas se eu desconectar o Instagram?",[242],"Todas são apagadas, os registros e as imagens. O mesmo acontece se o Instagram avisar que a autorização foi removida. Ocultar uma foto ou despublicar o site a tira do seu site em até 1 minuto.",{"id":6101,"title":6102,"titles":6103,"content":6104,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#como-faço-uma-foto-do-instagram-levar-à-reserva","Como faço uma foto do Instagram levar à reserva?",[242],"Em Atendimento → Site → Galeria do Instagram, escolha o serviço em «Reservar isto» abaixo da foto: a foto mostra o botão e leva a reservar esse serviço. A Wagy, por enquanto, só lê a galeria.",{"id":6106,"title":6107,"titles":6108,"content":6109,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#quem-vê-o-selo-demo-e-seus-controles","Quem vê o selo Demo e seus controles?",[242],"Qualquer membro do demo vê o selo Demo ao lado do nome do projeto e pode tocar nele para ler a explicação. Só o proprietário vê Restaurar demo, com permissão para restaurar e fora do modo somente leitura. Sem uma cópia base, aparece a explicação de quando estará disponível.",{"id":6111,"title":6112,"titles":6113,"content":6114,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#como-relato-um-erro-ou-uma-ideia-como-partner","Como relato um erro ou uma ideia como partner?",[242],"Em Meus projetos → Relatos, escolha Erro ou Ideia, escreva a descrição e anexe capturas ou vídeos se precisar: PNG, JPEG, WebP, MP4 ou WebM, até 20 MB por arquivo, 20 arquivos e 50 MiB no total. O relato chega ao Suporte da Fiuit Global; ali você acompanha a etapa e os anexos dos seus próprios relatos. Os anexos seguem a retenção configurada (30 dias por padrão). Use o painel do partner; Wagy e MCP ainda não operam esses relatos.",{"id":6116,"title":6117,"titles":6118,"content":6119,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#posso-ter-cada-negócio-na-sua-própria-conta","Posso ter cada negócio na sua própria conta?",[242],"Sim. Ao criar um projeto você escolhe «Em qual conta?»: a atual ou «Conta nova (outro negócio)». A conta nova tem o mesmo plano da atual, e seus projetos continuam sendo contados juntos para o limite do plano. Se você é parceiro, o projeto do seu cliente nasce numa conta do cliente, que passa a ser dele quando aceita como dono.",{"id":6121,"title":6122,"titles":6123,"content":6124,"level":263},"\u002Fdocs\u002Fque-pasa-si\u002Fplan-y-baja#dá-para-passar-um-projeto-para-outra-conta","Dá para passar um projeto para outra conta?",[242],"Sim, a pedido, quem faz é a equipe da Fiuit (hola@fiuit.com). O projeto mantém agenda, clientes e cobranças, e passa ao plano da conta nova. Se a conta anterior era de outra pessoa, essa pessoa deixa de vê-lo.",{"id":247,"title":246,"titles":6126,"content":6127,"level":257},[],"Conecte o Claude ou o ChatGPT ao seu projeto com um botão, escolha o que ele pode fazer e revogue o acesso quando quiser. Com Conectar, seu assistente de IA (Claude ou ChatGPT) usa o Fiuit com a sua conta, sem copiar chaves. Ele vê e opera o que você permitir, nos projetos que você escolher, com as mesmas regras do painel. Uma só conexão pode cobrir vários negócios.",{"id":6129,"title":6130,"titles":6131,"content":6132,"level":263},"\u002Fdocs\u002Fconectar-tu-ia#pelo-painel-com-um-clique","Pelo painel, com um clique",[246],"Em Configurações → Desenvolvedores, o cartão Conecte sua IA mostra ChatGPT, Claude, Gemini, Cursor, VS Code, Kimi e «Outra». No Cursor e no VS Code, um botão instala o conector direto. Nos demais, mostra os passos e o endereço https:\u002F\u002Fmcp.fiuit.com\u002F com um botão Copiar. Alguns planos do ChatGPT ou do Claude não permitem conectores.",{"id":6134,"title":6135,"titles":6136,"content":6137,"level":263},"\u002Fdocs\u002Fconectar-tu-ia#antes-de-começar","Antes de começar",[246],"Você precisa ser dono ou gerente do projeto.O endereço do conector é https:\u002F\u002Fmcp.fiuit.com\u002F. Se o seu app já colocou https:\u002F\u002Fmcp.fiuit.com\u002Fmcp, também funciona: é o mesmo servidor e a mesma conexão.",{"id":6139,"title":6140,"titles":6141,"content":6142,"level":263},"\u002Fdocs\u002Fconectar-tu-ia#claude-desktop-e-claudeai","Claude (Desktop e claude.ai)",[246],"No Claude, abra Configurações → Conectores e toque em Adicionar conector personalizado.Dê um nome (por exemplo, Fiuit) e use o endereço https:\u002F\u002Fmcp.fiuit.com\u002F.Toque em Conectar: o Fiuit abre. Se não estiver logado, entre como sempre.Na página de permissões, marque um ou mais projetos e as permissões de cada um e toque em Autorizar. Você volta ao Claude já conectado.",{"id":6144,"title":6145,"titles":6146,"content":6147,"level":263},"\u002Fdocs\u002Fconectar-tu-ia#chatgpt","ChatGPT",[246],"No ChatGPT, abra Configurações → Conectores → Avançado e ative o modo desenvolvedor.Crie um conector com o endereço https:\u002F\u002Fmcp.fiuit.com\u002F e autenticação OAuth.Toque em Conectar e siga os mesmos passos na página de permissões do Fiuit.",{"id":6149,"title":6150,"titles":6151,"content":6152,"level":263},"\u002Fdocs\u002Fconectar-tu-ia#a-página-de-permissões","A página de permissões",[246],"Qual app pede acesso. Claude e ChatGPT aparecem como Verificado. Qualquer outro app aparece Não verificado, com o endereço para onde volta: autorize só se você o reconhecer.Projetos. Você marca um ou mais (até 20) entre os que você é dono ou gerente; vem marcado o que está aberto. Cada projeto tem as suas permissões. Se você já tinha o app conectado, vêm marcados os projetos e permissões de antes, e o que você autorizar agora substitui a conexão anterior inteira: assim você soma ou tira projetos.Permissões. Vêm marcadas as que o app pede e você pode desmarcar qualquer uma: PermissãoO que a IA pode fazerVer seus horários e tarefasVer a agenda, os horários livres e cada tarefaCriar e mover horáriosAgendar, reagendar, cancelar e avançar tarefasVer clientes \u002F Criar e editar clientesVer ou cadastrar fichas de clientesVer conversas \u002F Responder conversasLer ou responder no InboxVer serviços e configuração \u002F Alterá-losVer ou alterar serviços, produtos, horários e etapasVer dinheiroVer cobranças, saldos, caixa e resultadosRegistrar cobranças e enviar links de pagamentoLançar cobranças e mandar links de pagamentoLançar despesasVer e lançar despesas As três últimas envolvem dinheiro: só o dono as vê e pode liberar, projeto por projeto (se você é dono de um negócio e gerente de outro, o dinheiro aparece só no primeiro). Uma IA nunca pode mais que a pessoa que a conectou. Alterar fluxos, avaliações e políticas de cobrança também continua reservado ao dono; um gerente pode delegar mudanças em serviços e produtos.",{"id":6154,"title":6155,"titles":6156,"content":6157,"level":263},"\u002Fdocs\u002Fconectar-tu-ia#se-você-é-parceiro-da-fiuit-sua-carteira-pela-ia","Se você é parceiro da Fiuit: sua carteira pela IA",[246],"Se você é parceiro, a página de permissões também oferece Ver sua carteira de parceiro: clientes e atividade. Ela vem marcada só se o app pedir; se não, marque você. Escolha qualquer projeto em que você seja dono ou gerente (por exemplo, o seu): sua carteira não depende do projeto escolhido. Com essa permissão você pode perguntar à sua IA, por exemplo: «o que eu tenho que fazer hoje com meus clientes?», «quais clientes estão em risco?» ou «o que aconteceu esta semana na minha carteira?». A IA vê o mesmo que o seu painel de parceiro: Hoje: a próxima ação, o progresso da sua carteira e os alertas.Meus clientes: plano ou teste, último uso, quantidade de tarefas e conversas, e o semáforo de cada cliente.Atividade: cadastros, canais conectados, primeiras reservas e clientes que estão parando. É só leitura e com a mesma privacidade do painel: contagens e estados, nunca o conteúdo de um negócio nem as cobranças. O conteúdo de um cliente você vê ao entrar no projeto dele pelo painel. Você nunca vê clientes de outro parceiro. Se você deixar de ser parceiro, a conexão para de mostrar sua carteira na consulta seguinte.",{"id":6159,"title":6160,"titles":6161,"content":6162,"level":263},"\u002Fdocs\u002Fconectar-tu-ia#se-a-ia-disser-que-falta-uma-permissão","Se a IA disser que falta uma permissão",[246],"A IA só vê as ferramentas que você liberou. Se você pede um saldo e ela não consegue, falta Ver dinheiro; se não consegue lançar uma cobrança em dinheiro, falta Registrar cobranças e enviar links de pagamento. Revogue a conexão em Apps conectados e conecte de novo marcando essa permissão (as de dinheiro só o dono concede). Editar os produtos de um pedido não precisa de permissões de dinheiro: basta Criar e mover horários. Ajustar à mão o valor a cobrar não é concedido por aqui: é feito no painel. Cancelar um agendamento sempre pede a sua confirmação antes de executar.",{"id":6164,"title":6165,"titles":6166,"content":6167,"level":263},"\u002Fdocs\u002Fconectar-tu-ia#ver-e-revogar-os-apps-conectados","Ver e revogar os apps conectados",[246],"Em Configurações → Desenvolvedores, em Apps conectados, o dono vê cada conexão do projeto: o app, quem autorizou, as permissões, quando conectou e o último uso. Ele só vê o que é do projeto dele, não os outros negócios dessa conexão. Revogar corta o acesso a esse projeto na hora; os outros projetos da mesma conexão continuam funcionando. Se todos forem revogados, a IA pede para conectar de novo.",{"id":6169,"title":6170,"titles":6171,"content":6172,"level":263},"\u002Fdocs\u002Fconectar-tu-ia#perguntas-frequentes","Perguntas frequentes",[246],"A IA guarda minha senha? Não. Você entra no Fiuit e o app recebe uma permissão que vence e se renova sozinha. Você pode revogá-la quando quiser.E se mudarem meu papel? A conexão segue seu papel atual em cada projeto: se você virar gerente em um, ela perde o que envolve dinheiro ali; se sair de um projeto, esse deixa de funcionar e os outros continuam.Como a IA sabe em qual negócio trabalhar? Com um só projeto, usa esse. Com vários, a IA pergunta ou escolhe com a ferramenta list_projects, e nunca mistura dados de dois negócios numa resposta.Eu já tinha uma conexão por projeto, preciso reconectar? Não: as conexões anteriores continuam funcionando igual, cada uma no seu projeto. Se quiser uma só, conecte de novo e marque todos os projetos.Por que outra pessoa vê mais ou menos ferramentas? A IA vê só as ferramentas das permissões escolhidas ao conectar: com menos permissões, a lista fica mais curta.E as chaves de API? Continuam funcionando igual, para integrações próprias: MCP e agentes de IA.",{"id":251,"title":250,"titles":6174,"content":6175,"level":257},[],"Deixe seu projeto pronto com a sua própria IA. Ela pode cadastrar o catálogo a partir de um Excel, montar o bot e entrevistar você para configurar o negócio. O Claude e o ChatGPT trabalham bem em tarefas longas: ler um Excel de 300 produtos, um cardápio em PDF ou o site antigo do seu negócio. Conectados à Fiuit, eles sabem como deixar seu projeto bem configurado: a Fiuit entrega instruções prontas e um guia de boas práticas por ramo. O uso de IA é pago pela sua assinatura do Claude ou do ChatGPT, não pelo seu plano da Fiuit.",{"id":6177,"title":6178,"titles":6179,"content":6180,"level":263},"\u002Fdocs\u002Fconfigurar-con-tu-ia#_1-conecte-sua-ia","1. Conecte sua IA",[250],"Siga Conectar o Fiuit à sua IA: no Claude ou no ChatGPT você adiciona o conector https:\u002F\u002Fmcp.fiuit.com\u002F, escolhe seus projetos e as permissões, e autoriza. Para configurar, marque Ver serviços e configuração \u002F Alterá-los. Algumas mudanças (fluxos e cobranças) ficam reservadas ao dono.",{"id":6182,"title":6183,"titles":6184,"content":6185,"level":263},"\u002Fdocs\u002Fconfigurar-con-tu-ia#_2-escolha-uma-tarefa-pronta","2. Escolha uma tarefa pronta",[250],"A Fiuit traz instruções montadas em português, espanhol e inglês. No Claude, elas aparecem junto ao conector da Fiuit, no menu + do chat. No ChatGPT, você pode pedir com suas palavras («use o guia da Fiuit para…»). TarefaO que fazConfigurar meu negócio do zeroUma entrevista curta, como a da Wagy: como sua agenda se organiza, seu horário, o que você vende e como cobra. Depois cria os serviços, o horário e propõe automações.Montar meu bot e minha base de conhecimentoLê seu site, seu cardápio ou suas perguntas frequentes e cadastra respostas curtas, uma por tema. Propõe o tom do bot e testa com perguntas típicas.Importar meu catálogoLê um CSV, Excel, PDF ou foto com seus produtos e serviços e mostra a prévia antes de cadastrar qualquer coisa.",{"id":6187,"title":6188,"titles":6189,"content":6190,"level":263},"\u002Fdocs\u002Fconfigurar-con-tu-ia#_3-importar-seu-catálogo-de-um-arquivo","3. Importar seu catálogo de um arquivo",[250],"Passe o arquivo para sua IA e escolha Importar meu catálogo.Sua IA lê o arquivo e diz qual coluna vai para cada dado da Fiuit: nome, preço, categoria, unidade, sinônimos ou código.Você vê a prévia: quantos produtos serão criados, quantos atualizados e cada linha com erro. Até aqui nada foi cadastrado.Se estiver certo, diga «sim» e tudo é importado de uma vez.Mudou de ideia? Peça para desfazer a importação: os produtos novos são apagados e os atualizados voltam a como estavam. Funciona por 7 dias, se ninguém mexeu no catálogo depois. Até 2000 produtos por vez. Os preços seguem a moeda do seu projeto, e um preço ambíguo («1,500» em reais) é recusado: nada é adivinhado.",{"id":6192,"title":6193,"titles":6194,"content":6195,"level":301},"\u002Fdocs\u002Fconfigurar-con-tu-ia#serviços-em-lote","Serviços em lote",[250,6188],"Se o seu arquivo trouxer serviços, sua IA os importa à parte, com a mesma prévia: nome, duração em minutos, preço e a equipe que atende (se você tiver uma só equipe, não precisa). Só são criados serviços novos: se já existir um com esse nome, a linha fica marcada e nada é sobrescrito. Até 200 por vez, e dá para desfazer por 7 dias se ninguém os alterou.",{"id":6197,"title":3965,"titles":6198,"content":6199,"level":263},"\u002Fdocs\u002Fconfigurar-con-tu-ia#exemplos-de-pedidos",[250],"«Te passo o Excel da minha loja: importe os produtos para a Fiuit. A coluna \"Desc\" é o nome e \"PVP\" o preço.»«Leia este PDF com o cardápio e cadastre os pratos como produtos, com a categoria.»«Veja meu site www.meunegocio.com.br e monte a base de conhecimento do bot com horários, como chegar e formas de pagamento.»«Sou uma oficina mecânica: configure a Fiuit do zero com o guia do meu ramo.»",{"id":6201,"title":361,"titles":6202,"content":6203,"level":263},"\u002Fdocs\u002Fconfigurar-con-tu-ia#segurança",[250],"Prévia e confirmação: todo cadastro ou mudança é mostrado antes e só é aplicado quando você diz sim.Dá para desfazer: as importações e quase todas as mudanças de configuração podem ser revertidas; o que não pode, a IA avisa antes.Fica registrado: cada mudança fica no registro com a origem «MCP · Claude» (ou o nome do seu app).Só seus projetos e suas permissões: a IA não vê nem faz mais do que você autorizou, e você pode revogar o acesso quando quiser.Sem segredos: a IA nunca recebe suas senhas nem as chaves das suas integrações.",{"id":6205,"title":2892,"badge":6206,"body":6207,"description":2894,"extension":7879,"meta":7880,"navigation":62,"path":2891,"rawbody":7881,"seo":7882,"stem":7883,"updated":7884,"__hash__":7885},"docs_pt\u002Fdocs\u002F10.api\u002F6.reference\u002F09.stats.md",null,{"type":6208,"value":6209,"toc":7868},"minimark",[6210,6219,6226,6317,6339,6344,6436,6441,6481,6487,6492,6520,6534,6538,6639,6643,6733,6738,6743,6765,6777,6781,6863,6867,6900,6906,6911,6956,6970,6974,7062,7066,7148,7154,7159,7162,7174,7178,7260,7264,7347,7353,7358,7360,7372,7376,7422,7426,7509,7514,7519,7568,7580,7584,7667,7671,7704,7710,7715,7718,7730,7734,7810,7814],[6211,6212,6214,6215],"h2",{"id":6213},"get-controlsummary","GET ",[6216,6217,6218],"code",{},"\u002Fcontrol\u002Fsummary",[6220,6221,6222],"p",{},[6223,6224,6225],"strong",{},"Panel de control - snapshot con filtros (owner y manager; staff y viewer 403)",[6220,6227,6228,6229,6232,6233,6232,6236,6232,6239,6242,6243,6246,6247,6250,6251,6254,6255,6258,6259,6261,6262,6265,6266,6232,6269,6272,6273,6276,6277,6279,6280,6283,6284,6286,6287,6290,6291,6294,6295,6298,6299,6302,6303,6306,6307,6310,6311,6313,6314,6316],{},"Snapshot de solo lectura del proyecto (F3-234), calculado en el servidor en una transacción con el tenant de la credencial, con una única vista temporal REPEATABLE READ para todos los bloques. Filtros (",[6216,6230,6231],{},"service_id",", ",[6216,6234,6235],{},"resource_id",[6216,6237,6238],{},"from",[6216,6240,6241],{},"to","; días locales incluidos, por defecto hoy, máximo el mismo tope que ",[6216,6244,6245],{},"\u002Fteam\u002Foverview",", 422 ",[6216,6248,6249],{},"invalid_stats_range",") para todos los bloques: servicio y persona limitan las tareas, los montos, los pagos en revisión y la saturación; las fechas, lo que tiene fecha. Atención ahora (es «ahora», sin fechas) - conversaciones que esperan respuesta (misma regla que «Necesita atención» del Inbox; no pertenecen a un servicio ni a una persona, no se filtran) y las derivadas por el bot (",[6216,6252,6253],{},"bot_handoff","\u002F",[6216,6256,6257],{},"bot_fallback","), tareas por motivo con los mismos filtros de ",[6216,6260,2037],{}," que usa Hoy (pueden solaparse: no se suman) y cobros electrónicos ",[6216,6263,6264],{},"pending",". En curso - tareas del período en ",[6216,6267,6268],{},"pending_payment",[6216,6270,6271],{},"confirmed"," o ",[6216,6274,6275],{},"checked_in",", por etapa nativa de cada servicio (",[6216,6278,6231],{}," identifica la clave), según el estado real de la tarea. Números del período - agendadas, completadas y, con ",[6216,6281,6282],{},"finance:analyze",", vendido por fecha de trabajo y cobrado por fecha del pago (incluye tareas trabajadas fuera del período). Pagos en revisión sin fechas. (sin filtro, ",[6216,6285,2827],{},"; con servicio o persona, atribuidos a esas tareas) y por cobrar (saldo de cuentas al momento; ",[6216,6288,6289],{},"null"," con filtro de servicio o persona), en unidad menor de ",[6216,6292,6293],{},"currency",". Saturación - ocupación (minutos reservados sobre disponibles del horario, como ",[6216,6296,6297],{},"\u002Fresources\u002F{id}\u002Fstats",") por día de la semana y hora local, sumando los recursos activos con horario o el recurso filtrado. Permisos por bloque - sesión, ",[6216,6300,6301],{},"control:read"," y la matriz por rol; API key, ",[6216,6304,6305],{},"bookings:read",", el bloque de conversaciones exige ",[6216,6308,6309],{},"messages:read"," y el de dinero ",[6216,6312,6282],{}," (sin ellos llegan ",[6216,6315,6289],{},"). Sin PII.",[6318,6319,6320,6327],"ul",{},[6321,6322,6323,6326],"li",{},[6223,6324,6325],{},"Autenticação:"," Chave de API ou sessão do painel",[6321,6328,6329,6332,6333,6232,6335,6232,6337],{},[6223,6330,6331],{},"Escopos:"," ",[6216,6334,6305],{},[6216,6336,6301],{},[6216,6338,6309],{},[6220,6340,6341],{},[6223,6342,6343],{},"Parâmetros",[6345,6346,6347,6369],"table",{},[6348,6349,6350],"thead",{},[6351,6352,6353,6357,6360,6363,6366],"tr",{},[6354,6355,6356],"th",{},"Nome",[6354,6358,6359],{},"Em",[6354,6361,6362],{},"Obrigatório",[6354,6364,6365],{},"Tipo",[6354,6367,6368],{},"Descrição",[6370,6371,6372,6390,6405,6421],"tbody",{},[6351,6373,6374,6379,6382,6385,6388],{},[6375,6376,6377],"td",{},[6216,6378,6231],{},[6375,6380,6381],{},"query",[6375,6383,6384],{},"Não",[6375,6386,6387],{},"string (uuid)",[6375,6389],{},[6351,6391,6392,6396,6398,6400,6402],{},[6375,6393,6394],{},[6216,6395,6235],{},[6375,6397,6381],{},[6375,6399,6384],{},[6375,6401,6387],{},[6375,6403,6404],{},"Persona o recurso (staff = su recurso)",[6351,6406,6407,6411,6413,6415,6418],{},[6375,6408,6409],{},[6216,6410,6238],{},[6375,6412,6381],{},[6375,6414,6384],{},[6375,6416,6417],{},"string (date)",[6375,6419,6420],{},"Primer día local (por defecto hoy)",[6351,6422,6423,6427,6429,6431,6433],{},[6375,6424,6425],{},[6216,6426,6241],{},[6375,6428,6381],{},[6375,6430,6384],{},[6375,6432,6417],{},[6375,6434,6435],{},"Último día local incluido (por defecto from)",[6220,6437,6438],{},[6223,6439,6440],{},"Respostas",[6345,6442,6443,6452],{},[6348,6444,6445],{},[6351,6446,6447,6450],{},[6354,6448,6449],{},"Status",[6354,6451,6368],{},[6370,6453,6454,6468],{},[6351,6455,6456,6461],{},[6375,6457,6458],{},[6216,6459,6460],{},"200",[6375,6462,6463,6464,6467],{},"OK (",[6216,6465,6466],{},"ControlSummary",")",[6351,6469,6470,6475],{},[6375,6471,6472],{},[6216,6473,6474],{},"default",[6375,6476,6477,6478,6467],{},"Error (RFC 9457) (",[6216,6479,6480],{},"Problem",[6211,6482,6214,6484],{"id":6483},"get-productsidperformance",[6216,6485,6486],{},"\u002Fproducts\u002F{id}\u002Fperformance",[6220,6488,6489],{},[6223,6490,6491],{},"Rendimiento de un producto en unidades y tareas por día, semana o mes, con el período anterior",[6220,6493,6494,6495,6498,6499,6502,6503,6505,6506,6508,6509,6512,6513,6516,6517,6519],{},"F3-328. Rendimiento de un producto en CANTIDADES (nunca dinero: vive en Financiero). Panel: permiso ",[6216,6496,6497],{},"performance:read"," (owner, manager y colaborador; no es de dinero; el colaborador solo sobre lo suyo: ",[6216,6500,6501],{},"scope: own",", las tareas asignadas a los recursos enlazados a su usuario, nunca los totales del negocio); API key: scope ",[6216,6504,6305],{}," (totales del negocio). Líneas del pedido de tareas completadas, no de prueba, con el criterio de ",[6216,6507,2412],{},": ",[6216,6510,6511],{},"units"," (por defecto, Σ qty) y ",[6216,6514,6515],{},"tasks",". Período anterior y tramos como en ",[6216,6518,2912],{},". Máximo 366 días; una consulta agrupada.",[6318,6521,6522,6526],{},[6321,6523,6524,6326],{},[6223,6525,6325],{},[6321,6527,6528,6332,6530,6232,6532],{},[6223,6529,6331],{},[6216,6531,6497],{},[6216,6533,6305],{},[6220,6535,6536],{},[6223,6537,6343],{},[6345,6539,6540,6554],{},[6348,6541,6542],{},[6351,6543,6544,6546,6548,6550,6552],{},[6354,6545,6356],{},[6354,6547,6359],{},[6354,6549,6362],{},[6354,6551,6365],{},[6354,6553,6368],{},[6370,6555,6556,6573,6588,6603],{},[6351,6557,6558,6563,6566,6569,6571],{},[6375,6559,6560],{},[6216,6561,6562],{},"id",[6375,6564,6565],{},"path",[6375,6567,6568],{},"Sim",[6375,6570,6387],{},[6375,6572],{},[6351,6574,6575,6579,6581,6583,6585],{},[6375,6576,6577],{},[6216,6578,6238],{},[6375,6580,6381],{},[6375,6582,6568],{},[6375,6584,6417],{},[6375,6586,6587],{},"Primer día local del negocio (incluido)",[6351,6589,6590,6594,6596,6598,6600],{},[6375,6591,6592],{},[6216,6593,6241],{},[6375,6595,6381],{},[6375,6597,6568],{},[6375,6599,6417],{},[6375,6601,6602],{},"Último día local del negocio (incluido)",[6351,6604,6605,6610,6612,6614,6629],{},[6375,6606,6607],{},[6216,6608,6609],{},"granularity",[6375,6611,6381],{},[6375,6613,6384],{},[6375,6615,6616,6617,6232,6620,6232,6623,6626,6627],{},"string ",[6216,6618,6619],{},"day",[6216,6621,6622],{},"week",[6216,6624,6625],{},"month"," default ",[6216,6628,6619],{},[6375,6630,6631,6632,6232,6634,6636,6637],{},"Tramo de la serie: ",[6216,6633,6619],{},[6216,6635,6622],{}," (lunes) o ",[6216,6638,6625],{},[6220,6640,6641],{},[6223,6642,6440],{},[6345,6644,6645,6653],{},[6348,6646,6647],{},[6351,6648,6649,6651],{},[6354,6650,6449],{},[6354,6652,6368],{},[6370,6654,6655,6667,6678,6689,6700,6711,6722],{},[6351,6656,6657,6661],{},[6375,6658,6659],{},[6216,6660,6460],{},[6375,6662,6663,6664,6467],{},"Successful Response (",[6216,6665,6666],{},"ItemPerformanceOut",[6351,6668,6669,6674],{},[6375,6670,6671],{},[6216,6672,6673],{},"400",[6375,6675,6477,6676,6467],{},[6216,6677,6480],{},[6351,6679,6680,6685],{},[6375,6681,6682],{},[6216,6683,6684],{},"401",[6375,6686,6477,6687,6467],{},[6216,6688,6480],{},[6351,6690,6691,6696],{},[6375,6692,6693],{},[6216,6694,6695],{},"403",[6375,6697,6477,6698,6467],{},[6216,6699,6480],{},[6351,6701,6702,6707],{},[6375,6703,6704],{},[6216,6705,6706],{},"404",[6375,6708,6477,6709,6467],{},[6216,6710,6480],{},[6351,6712,6713,6718],{},[6375,6714,6715],{},[6216,6716,6717],{},"422",[6375,6719,6477,6720,6467],{},[6216,6721,6480],{},[6351,6723,6724,6729],{},[6375,6725,6726],{},[6216,6727,6728],{},"429",[6375,6730,6477,6731,6467],{},[6216,6732,6480],{},[6211,6734,6214,6736],{"id":6735},"get-resourcesidstats",[6216,6737,6297],{},[6220,6739,6740],{},[6223,6741,6742],{},"Estadísticas de un recurso (owner, manager, staff solo el suyo; viewer 403)",[6220,6744,6745,6746,6749,6750,6753,6754,6757,6758,6761,6762,6764],{},"Ocupación por día y, con ",[6216,6747,6748],{},"granularity=hour",", matriz día de la semana × hora local (mapa de calor); cantidad de agendas por estado y tasas de ausencia y cancelación; mezcla de servicios; y facturación (suma de ",[6216,6751,6752],{},"price_cents"," de servicios completados, seña cobrada y pendiente, moneda del negocio). ",[6216,6755,6756],{},"revenue"," es null para el rol staff. Las reservas ",[6216,6759,6760],{},"is_test"," se excluyen. Otro tenant o, para staff, un recurso ajeno: 404. Mismas reglas de rango y ocupación que ",[6216,6763,6245],{},".",[6318,6766,6767,6771],{},[6321,6768,6769,6326],{},[6223,6770,6325],{},[6321,6772,6773,6332,6775],{},[6223,6774,6331],{},[6216,6776,6305],{},[6220,6778,6779],{},[6223,6780,6343],{},[6345,6782,6783,6797],{},[6348,6784,6785],{},[6351,6786,6787,6789,6791,6793,6795],{},[6354,6788,6356],{},[6354,6790,6359],{},[6354,6792,6362],{},[6354,6794,6365],{},[6354,6796,6368],{},[6370,6798,6799,6814,6828,6842],{},[6351,6800,6801,6805,6807,6809,6812],{},[6375,6802,6803],{},[6216,6804,6562],{},[6375,6806,6565],{},[6375,6808,6568],{},[6375,6810,6811],{},"string",[6375,6813],{},[6351,6815,6816,6820,6822,6824,6826],{},[6375,6817,6818],{},[6216,6819,6238],{},[6375,6821,6381],{},[6375,6823,6568],{},[6375,6825,6417],{},[6375,6827],{},[6351,6829,6830,6834,6836,6838,6840],{},[6375,6831,6832],{},[6216,6833,6241],{},[6375,6835,6381],{},[6375,6837,6568],{},[6375,6839,6417],{},[6375,6841],{},[6351,6843,6844,6848,6850,6852,6861],{},[6375,6845,6846],{},[6216,6847,6609],{},[6375,6849,6381],{},[6375,6851,6384],{},[6375,6853,6616,6854,6232,6857,6626,6859],{},[6216,6855,6856],{},"hour",[6216,6858,6619],{},[6216,6860,6619],{},[6375,6862],{},[6220,6864,6865],{},[6223,6866,6440],{},[6345,6868,6869,6877],{},[6348,6870,6871],{},[6351,6872,6873,6875],{},[6354,6874,6449],{},[6354,6876,6368],{},[6370,6878,6879,6890],{},[6351,6880,6881,6885],{},[6375,6882,6883],{},[6216,6884,6460],{},[6375,6886,6463,6887,6467],{},[6216,6888,6889],{},"ResourceStats",[6351,6891,6892,6896],{},[6375,6893,6894],{},[6216,6895,6474],{},[6375,6897,6477,6898,6467],{},[6216,6899,6480],{},[6211,6901,6214,6903],{"id":6902},"get-servicesidperformance",[6216,6904,6905],{},"\u002Fservices\u002F{id}\u002Fperformance",[6220,6907,6908],{},[6223,6909,6910],{},"Rendimiento de un servicio en cantidades por día, semana o mes, con el período anterior",[6220,6912,6913,6914,6916,6917,6919,6920,6923,6924,6926,6927,6254,6930,6933,6934,6937,6938,6940,6941,6944,6945,6948,6949,6952,6953,6519],{},"F3-328. Rendimiento de un servicio en CANTIDADES (nunca dinero: vive en Financiero). Tenant desde la credencial, RLS. Panel: permiso ",[6216,6915,6497],{}," (owner, manager y colaborador; no es de dinero). El colaborador lo tiene solo sobre lo suyo (",[6216,6918,6501],{},": tareas asignadas a los recursos enlazados a su usuario; sin recurso propio, cero), nunca los totales del negocio, que son de owner y manager (",[6216,6921,6922],{},"scope: business","); API key: scope ",[6216,6925,6305],{}," (totales del negocio). Tareas sin ",[6216,6928,6929],{},"held",[6216,6931,6932],{},"expired"," ni de prueba, atribuidas al día local de inicio\u002Fvencimiento. Métricas: ",[6216,6935,6936],{},"completed"," (por defecto), ",[6216,6939,6515],{}," y ",[6216,6942,6943],{},"cancelled"," (cancelada o no vino). ",[6216,6946,6947],{},"previous",": el mismo período corrido hacia atrás tantos tramos como abarca (día: N días; semana: N semanas; mes: N meses), así ",[6216,6950,6951],{},"previous_series"," tiene los mismos tramos que ",[6216,6954,6955],{},"series",[6318,6957,6958,6962],{},[6321,6959,6960,6326],{},[6223,6961,6325],{},[6321,6963,6964,6332,6966,6232,6968],{},[6223,6965,6331],{},[6216,6967,6497],{},[6216,6969,6305],{},[6220,6971,6972],{},[6223,6973,6343],{},[6345,6975,6976,6990],{},[6348,6977,6978],{},[6351,6979,6980,6982,6984,6986,6988],{},[6354,6981,6356],{},[6354,6983,6359],{},[6354,6985,6362],{},[6354,6987,6365],{},[6354,6989,6368],{},[6370,6991,6992,7006,7020,7034],{},[6351,6993,6994,6998,7000,7002,7004],{},[6375,6995,6996],{},[6216,6997,6562],{},[6375,6999,6565],{},[6375,7001,6568],{},[6375,7003,6387],{},[6375,7005],{},[6351,7007,7008,7012,7014,7016,7018],{},[6375,7009,7010],{},[6216,7011,6238],{},[6375,7013,6381],{},[6375,7015,6568],{},[6375,7017,6417],{},[6375,7019,6587],{},[6351,7021,7022,7026,7028,7030,7032],{},[6375,7023,7024],{},[6216,7025,6241],{},[6375,7027,6381],{},[6375,7029,6568],{},[6375,7031,6417],{},[6375,7033,6602],{},[6351,7035,7036,7040,7042,7044,7054],{},[6375,7037,7038],{},[6216,7039,6609],{},[6375,7041,6381],{},[6375,7043,6384],{},[6375,7045,6616,7046,6232,7048,6232,7050,6626,7052],{},[6216,7047,6619],{},[6216,7049,6622],{},[6216,7051,6625],{},[6216,7053,6619],{},[6375,7055,6631,7056,6232,7058,6636,7060],{},[6216,7057,6619],{},[6216,7059,6622],{},[6216,7061,6625],{},[6220,7063,7064],{},[6223,7065,6440],{},[6345,7067,7068,7076],{},[6348,7069,7070],{},[6351,7071,7072,7074],{},[6354,7073,6449],{},[6354,7075,6368],{},[6370,7077,7078,7088,7098,7108,7118,7128,7138],{},[6351,7079,7080,7084],{},[6375,7081,7082],{},[6216,7083,6460],{},[6375,7085,6663,7086,6467],{},[6216,7087,6666],{},[6351,7089,7090,7094],{},[6375,7091,7092],{},[6216,7093,6673],{},[6375,7095,6477,7096,6467],{},[6216,7097,6480],{},[6351,7099,7100,7104],{},[6375,7101,7102],{},[6216,7103,6684],{},[6375,7105,6477,7106,6467],{},[6216,7107,6480],{},[6351,7109,7110,7114],{},[6375,7111,7112],{},[6216,7113,6695],{},[6375,7115,6477,7116,6467],{},[6216,7117,6480],{},[6351,7119,7120,7124],{},[6375,7121,7122],{},[6216,7123,6706],{},[6375,7125,6477,7126,6467],{},[6216,7127,6480],{},[6351,7129,7130,7134],{},[6375,7131,7132],{},[6216,7133,6717],{},[6375,7135,6477,7136,6467],{},[6216,7137,6480],{},[6351,7139,7140,7144],{},[6375,7141,7142],{},[6216,7143,6728],{},[6375,7145,6477,7146,6467],{},[6216,7147,6480],{},[6211,7149,6214,7151],{"id":7150},"get-servicesidstats",[6216,7152,7153],{},"\u002Fservices\u002F{id}\u002Fstats",[6220,7155,7156],{},[6223,7157,7158],{},"Ventas y tendencia de un servicio",[6220,7160,7161],{},"F3-90. Tenant desde credencial, RLS. Owner\u002Fmanager o API key con bookings:read. Staff\u002Fviewer: 403. Fecha local de inicio\u002Fvencimiento; moneda del workspace. Dinero estimado con precio actual del catálogo y señas retenidas (F2-44\u002F45), no charges. Máximo 366 días. Excluye datos de prueba, held y expired. units_sold informa un único campo con x-fiuit-unit; null si hay varios campos o ninguna unidad.",[6318,7163,7164,7168],{},[6321,7165,7166,6326],{},[6223,7167,6325],{},[6321,7169,7170,6332,7172],{},[6223,7171,6331],{},[6216,7173,6305],{},[6220,7175,7176],{},[6223,7177,6343],{},[6345,7179,7180,7194],{},[6348,7181,7182],{},[6351,7183,7184,7186,7188,7190,7192],{},[6354,7185,6356],{},[6354,7187,6359],{},[6354,7189,6362],{},[6354,7191,6365],{},[6354,7193,6368],{},[6370,7195,7196,7210,7224,7238],{},[6351,7197,7198,7202,7204,7206,7208],{},[6375,7199,7200],{},[6216,7201,6562],{},[6375,7203,6565],{},[6375,7205,6568],{},[6375,7207,6387],{},[6375,7209],{},[6351,7211,7212,7216,7218,7220,7222],{},[6375,7213,7214],{},[6216,7215,6238],{},[6375,7217,6381],{},[6375,7219,6568],{},[6375,7221,6417],{},[6375,7223,6587],{},[6351,7225,7226,7230,7232,7234,7236],{},[6375,7227,7228],{},[6216,7229,6241],{},[6375,7231,6381],{},[6375,7233,6568],{},[6375,7235,6417],{},[6375,7237,6602],{},[6351,7239,7240,7244,7246,7248,7258],{},[6375,7241,7242],{},[6216,7243,6609],{},[6375,7245,6381],{},[6375,7247,6384],{},[6375,7249,6616,7250,6232,7252,6232,7254,6626,7256],{},[6216,7251,6619],{},[6216,7253,6622],{},[6216,7255,6625],{},[6216,7257,6619],{},[6375,7259],{},[6220,7261,7262],{},[6223,7263,6440],{},[6345,7265,7266,7274],{},[6348,7267,7268],{},[6351,7269,7270,7272],{},[6354,7271,6449],{},[6354,7273,6368],{},[6370,7275,7276,7287,7297,7307,7317,7327,7337],{},[6351,7277,7278,7282],{},[6375,7279,7280],{},[6216,7281,6460],{},[6375,7283,6663,7284,6467],{},[6216,7285,7286],{},"ServiceSalesOut",[6351,7288,7289,7293],{},[6375,7290,7291],{},[6216,7292,6673],{},[6375,7294,6477,7295,6467],{},[6216,7296,6480],{},[6351,7298,7299,7303],{},[6375,7300,7301],{},[6216,7302,6684],{},[6375,7304,6477,7305,6467],{},[6216,7306,6480],{},[6351,7308,7309,7313],{},[6375,7310,7311],{},[6216,7312,6695],{},[6375,7314,6477,7315,6467],{},[6216,7316,6480],{},[6351,7318,7319,7323],{},[6375,7320,7321],{},[6216,7322,6706],{},[6375,7324,6477,7325,6467],{},[6216,7326,6480],{},[6351,7328,7329,7333],{},[6375,7330,7331],{},[6216,7332,6717],{},[6375,7334,6477,7335,6467],{},[6216,7336,6480],{},[6351,7338,7339,7343],{},[6375,7340,7341],{},[6216,7342,6728],{},[6375,7344,6477,7345,6467],{},[6216,7346,6480],{},[6211,7348,6214,7350],{"id":7349},"get-servicesstats",[6216,7351,7352],{},"\u002Fservices\u002Fstats",[6220,7354,7355],{},[6223,7356,7357],{},"Resultados del período de todos los servicios",[6220,7359,7161],{},[6318,7361,7362,7366],{},[6321,7363,7364,6326],{},[6223,7365,6325],{},[6321,7367,7368,6332,7370],{},[6223,7369,6331],{},[6216,7371,6305],{},[6220,7373,7374],{},[6223,7375,6343],{},[6345,7377,7378,7392],{},[6348,7379,7380],{},[6351,7381,7382,7384,7386,7388,7390],{},[6354,7383,6356],{},[6354,7385,6359],{},[6354,7387,6362],{},[6354,7389,6365],{},[6354,7391,6368],{},[6370,7393,7394,7408],{},[6351,7395,7396,7400,7402,7404,7406],{},[6375,7397,7398],{},[6216,7399,6238],{},[6375,7401,6381],{},[6375,7403,6568],{},[6375,7405,6417],{},[6375,7407,6587],{},[6351,7409,7410,7414,7416,7418,7420],{},[6375,7411,7412],{},[6216,7413,6241],{},[6375,7415,6381],{},[6375,7417,6568],{},[6375,7419,6417],{},[6375,7421,6602],{},[6220,7423,7424],{},[6223,7425,6440],{},[6345,7427,7428,7436],{},[6348,7429,7430],{},[6351,7431,7432,7434],{},[6354,7433,6449],{},[6354,7435,6368],{},[6370,7437,7438,7449,7459,7469,7479,7489,7499],{},[6351,7439,7440,7444],{},[6375,7441,7442],{},[6216,7443,6460],{},[6375,7445,6663,7446,6467],{},[6216,7447,7448],{},"SalesOverviewOut",[6351,7450,7451,7455],{},[6375,7452,7453],{},[6216,7454,6673],{},[6375,7456,6477,7457,6467],{},[6216,7458,6480],{},[6351,7460,7461,7465],{},[6375,7462,7463],{},[6216,7464,6684],{},[6375,7466,6477,7467,6467],{},[6216,7468,6480],{},[6351,7470,7471,7475],{},[6375,7472,7473],{},[6216,7474,6695],{},[6375,7476,6477,7477,6467],{},[6216,7478,6480],{},[6351,7480,7481,7485],{},[6375,7482,7483],{},[6216,7484,6706],{},[6375,7486,6477,7487,6467],{},[6216,7488,6480],{},[6351,7490,7491,7495],{},[6375,7492,7493],{},[6216,7494,6717],{},[6375,7496,6477,7497,6467],{},[6216,7498,6480],{},[6351,7500,7501,7505],{},[6375,7502,7503],{},[6216,7504,6728],{},[6375,7506,6477,7507,6467],{},[6216,7508,6480],{},[6211,7510,6214,7512],{"id":7511},"get-teamoverview",[6216,7513,6245],{},[6220,7515,7516],{},[6223,7517,7518],{},"Resumen del equipo (owner, manager, staff solo lo suyo; viewer 403)",[6220,7520,7521,7522,7525,7526,7528,7529,7532,7533,6254,7535,7537,7538,7540,7541,7544,7545,7548,7549,7552,7553,7556,7557,7559,7560,7563,7564,7567],{},"Una fila por recurso activo, con su persona si existe (solo los de tipo staff la tienen). Por defecto solo los de tipo staff (un negocio sin personas, con canchas o lugares, usa ",[6216,7523,7524],{},"kind=all","); ",[6216,7527,7524],{}," devuelve todos los tipos activos y ",[6216,7530,7531],{},"kind=\u003Ctipo>"," uno solo (Equipo y recursos). Staff solo ve sus recursos asignados. ",[6216,7534,6238],{},[6216,7536,6241],{}," son días locales del negocio, ambos incluidos (máximo 92 días, configurable; 422 ",[6216,7539,6249],{}," si se pasa). ",[6216,7542,7543],{},"occupancy"," = minutos reservados dentro del horario ÷ minutos disponibles (horario semanal con excepciones y bloqueos, en la zona horaria del negocio; los días de cambio de hora duran 23 o 25 h). Cuentan las reservas pending_payment, confirmed, checked_in y completed; no las canceladas, vencidas, ausencias, holds ni las de prueba. En recursos ",[6216,7546,7547],{},"pooled"," son minutos-unidad (unidades × minutos ÷ capacidad × minutos disponibles). ",[6216,7550,7551],{},"next_available_at",": primer hueco libre de 15 min en los próximos 30 días (null si no hay horario); ",[6216,7554,7555],{},"next_available_free_units"," dice cuántos lugares quedan ahí (un recurso ",[6216,7558,7547],{}," puede estar libre con tareas ya cargadas en esa hora). ",[6216,7561,7562],{},"days",": la ocupación de cada día del período. ",[6216,7565,7566],{},"open_today",": confirmadas o en curso que empiezan hoy. Sin facturación.",[6318,7569,7570,7574],{},[6321,7571,7572,6326],{},[6223,7573,6325],{},[6321,7575,7576,6332,7578],{},[6223,7577,6331],{},[6216,7579,6305],{},[6220,7581,7582],{},[6223,7583,6343],{},[6345,7585,7586,7600],{},[6348,7587,7588],{},[6351,7589,7590,7592,7594,7596,7598],{},[6354,7591,6356],{},[6354,7593,6359],{},[6354,7595,6362],{},[6354,7597,6365],{},[6354,7599,6368],{},[6370,7601,7602,7616,7630],{},[6351,7603,7604,7608,7610,7612,7614],{},[6375,7605,7606],{},[6216,7607,6238],{},[6375,7609,6381],{},[6375,7611,6568],{},[6375,7613,6417],{},[6375,7615],{},[6351,7617,7618,7622,7624,7626,7628],{},[6375,7619,7620],{},[6216,7621,6241],{},[6375,7623,6381],{},[6375,7625,6568],{},[6375,7627,6417],{},[6375,7629],{},[6351,7631,7632,7637,7639,7641,7665],{},[6375,7633,7634],{},[6216,7635,7636],{},"kind",[6375,7638,6381],{},[6375,7640,6384],{},[6375,7642,6616,7643,6232,7646,6232,7649,6232,7652,6232,7654,6232,7657,6232,7660,6626,7663],{},[6216,7644,7645],{},"staff",[6216,7647,7648],{},"space",[6216,7650,7651],{},"equipment",[6216,7653,6345],{},[6216,7655,7656],{},"vehicle",[6216,7658,7659],{},"zone",[6216,7661,7662],{},"all",[6216,7664,7645],{},[6375,7666],{},[6220,7668,7669],{},[6223,7670,6440],{},[6345,7672,7673,7681],{},[6348,7674,7675],{},[6351,7676,7677,7679],{},[6354,7678,6449],{},[6354,7680,6368],{},[6370,7682,7683,7694],{},[6351,7684,7685,7689],{},[6375,7686,7687],{},[6216,7688,6460],{},[6375,7690,6463,7691,6467],{},[6216,7692,7693],{},"TeamOverview",[6351,7695,7696,7700],{},[6375,7697,7698],{},[6216,7699,6474],{},[6375,7701,6477,7702,6467],{},[6216,7703,6480],{},[6211,7705,6214,7707],{"id":7706},"get-work-itemsoutcomes",[6216,7708,7709],{},"\u002Fwork-items\u002Foutcomes",[6220,7711,7712],{},[6223,7713,7714],{},"Cierres y cancelaciones por flujo y motivo",[6220,7716,7717],{},"Cuenta entradas de historial en días locales del negocio (ambos incluidos), excluye pruebas. Agrupa claves estables por flujo y salida; etiquetas históricas, sin texto libre ni datos de clientes. Reintentar no duplica; reabrir y cerrar vuelve a contar. Owner\u002Fmanager con finance:analyze; API key bookings:read.",[6318,7719,7720,7724],{},[6321,7721,7722,6326],{},[6223,7723,6325],{},[6321,7725,7726,6332,7728],{},[6223,7727,6331],{},[6216,7729,6305],{},[6220,7731,7732],{},[6223,7733,6343],{},[6345,7735,7736,7750],{},[6348,7737,7738],{},[6351,7739,7740,7742,7744,7746,7748],{},[6354,7741,6356],{},[6354,7743,6359],{},[6354,7745,6362],{},[6354,7747,6365],{},[6354,7749,6368],{},[6370,7751,7752,7767,7782,7796],{},[6351,7753,7754,7759,7761,7763,7765],{},[6375,7755,7756],{},[6216,7757,7758],{},"start",[6375,7760,6381],{},[6375,7762,6568],{},[6375,7764,6417],{},[6375,7766],{},[6351,7768,7769,7774,7776,7778,7780],{},[6375,7770,7771],{},[6216,7772,7773],{},"end",[6375,7775,6381],{},[6375,7777,6568],{},[6375,7779,6417],{},[6375,7781],{},[6351,7783,7784,7788,7790,7792,7794],{},[6375,7785,7786],{},[6216,7787,6231],{},[6375,7789,6381],{},[6375,7791,6384],{},[6375,7793,6387],{},[6375,7795],{},[6351,7797,7798,7802,7804,7806,7808],{},[6375,7799,7800],{},[6216,7801,6235],{},[6375,7803,6381],{},[6375,7805,6384],{},[6375,7807,6387],{},[6375,7809],{},[6220,7811,7812],{},[6223,7813,6440],{},[6345,7815,7816,7824],{},[6348,7817,7818],{},[6351,7819,7820,7822],{},[6354,7821,6449],{},[6354,7823,6368],{},[6370,7825,7826,7838,7848,7858],{},[6351,7827,7828,7832],{},[6375,7829,7830],{},[6216,7831,6460],{},[6375,7833,7834,7835,6467],{},"Cierres agrupados, sin paginación de tareas (",[6216,7836,7837],{},"OutcomeReasonReport",[6351,7839,7840,7844],{},[6375,7841,7842],{},[6216,7843,6684],{},[6375,7845,6477,7846,6467],{},[6216,7847,6480],{},[6351,7849,7850,7854],{},[6375,7851,7852],{},[6216,7853,6695],{},[6375,7855,6477,7856,6467],{},[6216,7857,6480],{},[6351,7859,7860,7864],{},[6375,7861,7862],{},[6216,7863,6717],{},[6375,7865,6477,7866,6467],{},[6216,7867,6480],{},{"title":7869,"searchDepth":263,"depth":301,"links":7870},"",[7871,7872,7873,7874,7875,7876,7877,7878],{"id":6213,"depth":263,"text":2897},{"id":6483,"depth":263,"text":2902},{"id":6735,"depth":263,"text":2907},{"id":6902,"depth":263,"text":2912},{"id":7150,"depth":263,"text":2917},{"id":7349,"depth":263,"text":2922},{"id":7511,"depth":263,"text":2927},{"id":7706,"depth":263,"text":2932},"md",{},"---\ntitle: \"API · stats\"\ndescription: \"Operações de stats do contrato OpenAPI que aceitam uma chave de API.\"\nupdated: \"2026-11-03\"\nnavigation: false\n---\n## GET `\u002Fcontrol\u002Fsummary`\n\n**Panel de control - snapshot con filtros (owner y manager; staff y viewer 403)**\n\nSnapshot de solo lectura del proyecto (F3-234), calculado en el servidor en una transacción con el tenant de la credencial, con una única vista temporal REPEATABLE READ para todos los bloques. Filtros (`service_id`, `resource_id`, `from`, `to`; días locales incluidos, por defecto hoy, máximo el mismo tope que `\u002Fteam\u002Foverview`, 422 `invalid_stats_range`) para todos los bloques: servicio y persona limitan las tareas, los montos, los pagos en revisión y la saturación; las fechas, lo que tiene fecha. Atención ahora (es «ahora», sin fechas) - conversaciones que esperan respuesta (misma regla que «Necesita atención» del Inbox; no pertenecen a un servicio ni a una persona, no se filtran) y las derivadas por el bot (`bot_handoff`\u002F`bot_fallback`), tareas por motivo con los mismos filtros de `GET \u002Fwork-items` que usa Hoy (pueden solaparse: no se suman) y cobros electrónicos `pending`. En curso - tareas del período en `pending_payment`, `confirmed` o `checked_in`, por etapa nativa de cada servicio (`service_id` identifica la clave), según el estado real de la tarea. Números del período - agendadas, completadas y, con `finance:analyze`, vendido por fecha de trabajo y cobrado por fecha del pago (incluye tareas trabajadas fuera del período). Pagos en revisión sin fechas. (sin filtro, `GET \u002Fpayments\u002Ffinance\u002Fsummary`; con servicio o persona, atribuidos a esas tareas) y por cobrar (saldo de cuentas al momento; `null` con filtro de servicio o persona), en unidad menor de `currency`. Saturación - ocupación (minutos reservados sobre disponibles del horario, como `\u002Fresources\u002F{id}\u002Fstats`) por día de la semana y hora local, sumando los recursos activos con horario o el recurso filtrado. Permisos por bloque - sesión, `control:read` y la matriz por rol; API key, `bookings:read`, el bloque de conversaciones exige `messages:read` y el de dinero `finance:analyze` (sin ellos llegan `null`). Sin PII.\n\n- **Autenticação:** Chave de API ou sessão do painel\n- **Escopos:** `bookings:read`, `control:read`, `messages:read`\n\n**Parâmetros**\n\n| Nome | Em | Obrigatório | Tipo | Descrição |\n| --- | --- | --- | --- | --- |\n| `service_id` | query | Não | string (uuid) |  |\n| `resource_id` | query | Não | string (uuid) | Persona o recurso (staff = su recurso) |\n| `from` | query | Não | string (date) | Primer día local (por defecto hoy) |\n| `to` | query | Não | string (date) | Último día local incluido (por defecto from) |\n\n**Respostas**\n\n| Status | Descrição |\n| --- | --- |\n| `200` | OK (`ControlSummary`) |\n| `default` | Error (RFC 9457) (`Problem`) |\n\n## GET `\u002Fproducts\u002F{id}\u002Fperformance`\n\n**Rendimiento de un producto en unidades y tareas por día, semana o mes, con el período anterior**\n\nF3-328. Rendimiento de un producto en CANTIDADES (nunca dinero: vive en Financiero). Panel: permiso `performance:read` (owner, manager y colaborador; no es de dinero; el colaborador solo sobre lo suyo: `scope: own`, las tareas asignadas a los recursos enlazados a su usuario, nunca los totales del negocio); API key: scope `bookings:read` (totales del negocio). Líneas del pedido de tareas completadas, no de prueba, con el criterio de `GET \u002Fproducts\u002Fstats`: `units` (por defecto, Σ qty) y `tasks`. Período anterior y tramos como en `GET \u002Fservices\u002F{id}\u002Fperformance`. Máximo 366 días; una consulta agrupada.\n\n- **Autenticação:** Chave de API ou sessão do painel\n- **Escopos:** `performance:read`, `bookings:read`\n\n**Parâmetros**\n\n| Nome | Em | Obrigatório | Tipo | Descrição |\n| --- | --- | --- | --- | --- |\n| `id` | path | Sim | string (uuid) |  |\n| `from` | query | Sim | string (date) | Primer día local del negocio (incluido) |\n| `to` | query | Sim | string (date) | Último día local del negocio (incluido) |\n| `granularity` | query | Não | string `day`, `week`, `month` default `day` | Tramo de la serie: `day`, `week` (lunes) o `month` |\n\n**Respostas**\n\n| Status | Descrição |\n| --- | --- |\n| `200` | Successful Response (`ItemPerformanceOut`) |\n| `400` | Error (RFC 9457) (`Problem`) |\n| `401` | Error (RFC 9457) (`Problem`) |\n| `403` | Error (RFC 9457) (`Problem`) |\n| `404` | Error (RFC 9457) (`Problem`) |\n| `422` | Error (RFC 9457) (`Problem`) |\n| `429` | Error (RFC 9457) (`Problem`) |\n\n## GET `\u002Fresources\u002F{id}\u002Fstats`\n\n**Estadísticas de un recurso (owner, manager, staff solo el suyo; viewer 403)**\n\nOcupación por día y, con `granularity=hour`, matriz día de la semana × hora local (mapa de calor); cantidad de agendas por estado y tasas de ausencia y cancelación; mezcla de servicios; y facturación (suma de `price_cents` de servicios completados, seña cobrada y pendiente, moneda del negocio). `revenue` es null para el rol staff. Las reservas `is_test` se excluyen. Otro tenant o, para staff, un recurso ajeno: 404. Mismas reglas de rango y ocupación que `\u002Fteam\u002Foverview`.\n\n- **Autenticação:** Chave de API ou sessão do painel\n- **Escopos:** `bookings:read`\n\n**Parâmetros**\n\n| Nome | Em | Obrigatório | Tipo | Descrição |\n| --- | --- | --- | --- | --- |\n| `id` | path | Sim | string |  |\n| `from` | query | Sim | string (date) |  |\n| `to` | query | Sim | string (date) |  |\n| `granularity` | query | Não | string `hour`, `day` default `day` |  |\n\n**Respostas**\n\n| Status | Descrição |\n| --- | --- |\n| `200` | OK (`ResourceStats`) |\n| `default` | Error (RFC 9457) (`Problem`) |\n\n## GET `\u002Fservices\u002F{id}\u002Fperformance`\n\n**Rendimiento de un servicio en cantidades por día, semana o mes, con el período anterior**\n\nF3-328. Rendimiento de un servicio en CANTIDADES (nunca dinero: vive en Financiero). Tenant desde la credencial, RLS. Panel: permiso `performance:read` (owner, manager y colaborador; no es de dinero). El colaborador lo tiene solo sobre lo suyo (`scope: own`: tareas asignadas a los recursos enlazados a su usuario; sin recurso propio, cero), nunca los totales del negocio, que son de owner y manager (`scope: business`); API key: scope `bookings:read` (totales del negocio). Tareas sin `held`\u002F`expired` ni de prueba, atribuidas al día local de inicio\u002Fvencimiento. Métricas: `completed` (por defecto), `tasks` y `cancelled` (cancelada o no vino). `previous`: el mismo período corrido hacia atrás tantos tramos como abarca (día: N días; semana: N semanas; mes: N meses), así `previous_series` tiene los mismos tramos que `series`. Máximo 366 días; una consulta agrupada.\n\n- **Autenticação:** Chave de API ou sessão do painel\n- **Escopos:** `performance:read`, `bookings:read`\n\n**Parâmetros**\n\n| Nome | Em | Obrigatório | Tipo | Descrição |\n| --- | --- | --- | --- | --- |\n| `id` | path | Sim | string (uuid) |  |\n| `from` | query | Sim | string (date) | Primer día local del negocio (incluido) |\n| `to` | query | Sim | string (date) | Último día local del negocio (incluido) |\n| `granularity` | query | Não | string `day`, `week`, `month` default `day` | Tramo de la serie: `day`, `week` (lunes) o `month` |\n\n**Respostas**\n\n| Status | Descrição |\n| --- | --- |\n| `200` | Successful Response (`ItemPerformanceOut`) |\n| `400` | Error (RFC 9457) (`Problem`) |\n| `401` | Error (RFC 9457) (`Problem`) |\n| `403` | Error (RFC 9457) (`Problem`) |\n| `404` | Error (RFC 9457) (`Problem`) |\n| `422` | Error (RFC 9457) (`Problem`) |\n| `429` | Error (RFC 9457) (`Problem`) |\n\n## GET `\u002Fservices\u002F{id}\u002Fstats`\n\n**Ventas y tendencia de un servicio**\n\nF3-90. Tenant desde credencial, RLS. Owner\u002Fmanager o API key con bookings:read. Staff\u002Fviewer: 403. Fecha local de inicio\u002Fvencimiento; moneda del workspace. Dinero estimado con precio actual del catálogo y señas retenidas (F2-44\u002F45), no charges. Máximo 366 días. Excluye datos de prueba, held y expired. units_sold informa un único campo con x-fiuit-unit; null si hay varios campos o ninguna unidad.\n\n- **Autenticação:** Chave de API ou sessão do painel\n- **Escopos:** `bookings:read`\n\n**Parâmetros**\n\n| Nome | Em | Obrigatório | Tipo | Descrição |\n| --- | --- | --- | --- | --- |\n| `id` | path | Sim | string (uuid) |  |\n| `from` | query | Sim | string (date) | Primer día local del negocio (incluido) |\n| `to` | query | Sim | string (date) | Último día local del negocio (incluido) |\n| `granularity` | query | Não | string `day`, `week`, `month` default `day` |  |\n\n**Respostas**\n\n| Status | Descrição |\n| --- | --- |\n| `200` | Successful Response (`ServiceSalesOut`) |\n| `400` | Error (RFC 9457) (`Problem`) |\n| `401` | Error (RFC 9457) (`Problem`) |\n| `403` | Error (RFC 9457) (`Problem`) |\n| `404` | Error (RFC 9457) (`Problem`) |\n| `422` | Error (RFC 9457) (`Problem`) |\n| `429` | Error (RFC 9457) (`Problem`) |\n\n## GET `\u002Fservices\u002Fstats`\n\n**Resultados del período de todos los servicios**\n\nF3-90. Tenant desde credencial, RLS. Owner\u002Fmanager o API key con bookings:read. Staff\u002Fviewer: 403. Fecha local de inicio\u002Fvencimiento; moneda del workspace. Dinero estimado con precio actual del catálogo y señas retenidas (F2-44\u002F45), no charges. Máximo 366 días. Excluye datos de prueba, held y expired. units_sold informa un único campo con x-fiuit-unit; null si hay varios campos o ninguna unidad.\n\n- **Autenticação:** Chave de API ou sessão do painel\n- **Escopos:** `bookings:read`\n\n**Parâmetros**\n\n| Nome | Em | Obrigatório | Tipo | Descrição |\n| --- | --- | --- | --- | --- |\n| `from` | query | Sim | string (date) | Primer día local del negocio (incluido) |\n| `to` | query | Sim | string (date) | Último día local del negocio (incluido) |\n\n**Respostas**\n\n| Status | Descrição |\n| --- | --- |\n| `200` | Successful Response (`SalesOverviewOut`) |\n| `400` | Error (RFC 9457) (`Problem`) |\n| `401` | Error (RFC 9457) (`Problem`) |\n| `403` | Error (RFC 9457) (`Problem`) |\n| `404` | Error (RFC 9457) (`Problem`) |\n| `422` | Error (RFC 9457) (`Problem`) |\n| `429` | Error (RFC 9457) (`Problem`) |\n\n## GET `\u002Fteam\u002Foverview`\n\n**Resumen del equipo (owner, manager, staff solo lo suyo; viewer 403)**\n\nUna fila por recurso activo, con su persona si existe (solo los de tipo staff la tienen). Por defecto solo los de tipo staff (un negocio sin personas, con canchas o lugares, usa `kind=all`); `kind=all` devuelve todos los tipos activos y `kind=\u003Ctipo>` uno solo (Equipo y recursos). Staff solo ve sus recursos asignados. `from`\u002F`to` son días locales del negocio, ambos incluidos (máximo 92 días, configurable; 422 `invalid_stats_range` si se pasa). `occupancy` = minutos reservados dentro del horario ÷ minutos disponibles (horario semanal con excepciones y bloqueos, en la zona horaria del negocio; los días de cambio de hora duran 23 o 25 h). Cuentan las reservas pending_payment, confirmed, checked_in y completed; no las canceladas, vencidas, ausencias, holds ni las de prueba. En recursos `pooled` son minutos-unidad (unidades × minutos ÷ capacidad × minutos disponibles). `next_available_at`: primer hueco libre de 15 min en los próximos 30 días (null si no hay horario); `next_available_free_units` dice cuántos lugares quedan ahí (un recurso `pooled` puede estar libre con tareas ya cargadas en esa hora). `days`: la ocupación de cada día del período. `open_today`: confirmadas o en curso que empiezan hoy. Sin facturación.\n\n- **Autenticação:** Chave de API ou sessão do painel\n- **Escopos:** `bookings:read`\n\n**Parâmetros**\n\n| Nome | Em | Obrigatório | Tipo | Descrição |\n| --- | --- | --- | --- | --- |\n| `from` | query | Sim | string (date) |  |\n| `to` | query | Sim | string (date) |  |\n| `kind` | query | Não | string `staff`, `space`, `equipment`, `table`, `vehicle`, `zone`, `all` default `staff` |  |\n\n**Respostas**\n\n| Status | Descrição |\n| --- | --- |\n| `200` | OK (`TeamOverview`) |\n| `default` | Error (RFC 9457) (`Problem`) |\n\n## GET `\u002Fwork-items\u002Foutcomes`\n\n**Cierres y cancelaciones por flujo y motivo**\n\nCuenta entradas de historial en días locales del negocio (ambos incluidos), excluye pruebas. Agrupa claves estables por flujo y salida; etiquetas históricas, sin texto libre ni datos de clientes. Reintentar no duplica; reabrir y cerrar vuelve a contar. Owner\u002Fmanager con finance:analyze; API key bookings:read.\n\n- **Autenticação:** Chave de API ou sessão do painel\n- **Escopos:** `bookings:read`\n\n**Parâmetros**\n\n| Nome | Em | Obrigatório | Tipo | Descrição |\n| --- | --- | --- | --- | --- |\n| `start` | query | Sim | string (date) |  |\n| `end` | query | Sim | string (date) |  |\n| `service_id` | query | Não | string (uuid) |  |\n| `resource_id` | query | Não | string (uuid) |  |\n\n**Respostas**\n\n| Status | Descrição |\n| --- | --- |\n| `200` | Cierres agrupados, sin paginación de tareas (`OutcomeReasonReport`) |\n| `401` | Error (RFC 9457) (`Problem`) |\n| `403` | Error (RFC 9457) (`Problem`) |\n| `422` | Error (RFC 9457) (`Problem`) |\n",{"title":2892,"description":2894},"docs\u002F10.api\u002F6.reference\u002F09.stats","2026-11-03","8v4oXukA36QtKYWXBf4msDQ0JyK095i2eae_P5EEOXk",[6206,6206],1793683951086]