Ajustos de Tasques
Límits més precisos i errors més clars a Projectes i Tasques: descripció de tasca de fins a 400.000 caràcters, tarifa per hora de fins a 99.999.999,99, vincles que respecten els scopes, id de la tasca a les notificacions, esborrats bloquejats per hores facturades i facturació d'hores idempotent. users:read passa a ser un scope sensible.
30 de setembre de 2026 — La revisió del mòdul de Projectes i Tasques afina diversos contractes publicats a Projectes i tasques. No s'afegeix ni es retira cap operació, i no canvien paràmetres ni codis de resposta; canvien límits, causes d'error i el text dels schemas. Quinze operacions queden actualitzades, llistades al final.
- Descripció de la tasca —
POST /v1/tasksiPUT /v1/tasks/{task}declarenmaxLength: 400000adescription. Per damunt, la crida retorna 422parameter_invalid_value. Entre 100.001 i 400.000 caràcters mesurats continua retornant 422task_description_too_large. El sanejat neutralitza com a text les etiquetes no permeses i ja no trunca el document. - Tarifa per hora del projecte —
billing_hourly_rateaPUT /v1/projects/{project}admet com a màxim 99.999.999,99, de manera que l'impost d'una hora sempre cap en una línia de factura. - Entitats vinculades i scopes —
GET /v1/tasks/{task}/entity-linksiPOST /v1/tasks/{task}/entity-linksinclouen el resum d'una entitat vinculada només si la credencial té el scope de lectura del recurs al qual pertany (per exempleinvoices:readper a una factura). Sense ell, el vincle es retorna igualment, ambavailable: falseisummary: null, per poder-lo treure. entity_ida les notificacions —GET /v1/notificationsretorna, ambentity_type=task, l'UUID de la tasca aentity_id, a punt per aGET /v1/tasks/{task}. Abans era semprenull.users:readés sensible — dona accés al directori complet de l'empresa, amb els emails. Revisa les claus i les apps OAuth que el demanen; consulta Scopes i permisos.- Esborrar amb hores facturades — esborrar una tasca (
DELETE /v1/tasks/{task}), un projecte (DELETE /v1/projects/{project}) o una selecció (POST /v1/tasks/bulk-delete) que tingui hores facturades retorna 422task_time_entry_invoiced. En una selecció no s'esborra res. Esborra abans la factura. - Facturar el temps és idempotent —
POST /v1/projects/{project}/time-invoicesrespon 409idempotency_key_reusedsi es reenvia unbatch_idamb una petició diferent, i 409idempotency_key_in_usementre la primera continua en curs. La mateixa petició retorna la mateixa factura. Si l'import d'una línia no cap a la factura, aquesta operació i la seva vista prèvia retornen 422task_time_not_invoiceable. - Scopes d'importar, exportar i resumir — la descripció de
POST /v1/projects/{project}/tasks/import,GET /v1/projects/{project}/tasks/exportiGET /v1/projects/{project}/time-summaryindica ara quins scopes exigeixen (només els de projectes). - Ids als esborrats — les respostes
deleted: trueretornen l'id canònic en minúscules.
Codis d'error: task_description_too_large,
task_time_entry_invoiced,
task_time_not_invoiceable,
idempotency_key_reused i
idempotency_key_in_use.
Endpoints actualitzats15
| Endpoint | Descripció |
|---|---|
POST/v1/tasks | Crear una tasca |
PUT/v1/tasks/{task} | Actualitzar una tasca |
POST/v1/tasks/bulk-delete | Eliminació massiva de tasques |
DEL/v1/tasks/{task} | Eliminar una tasca |
GET/v1/tasks/{task}/entity-links | Llistar vincles de tasca amb entitats |
POST/v1/tasks/{task}/entity-links | Vincular una tasca a una entitat |
GET/v1/projects/{project} | Obtenir un projecte |
PUT/v1/projects/{project} | Actualitzar un projecte |
DEL/v1/projects/{project} | Eliminar un projecte |
GET/v1/projects/{project}/tasks/export | Exportar les tasques d'un projecte |
POST/v1/projects/{project}/tasks/import | Importar tasques a un projecte |
GET/v1/projects/{project}/time-summary | Obtenir el resum de temps d'un projecte |
POST/v1/projects/{project}/time-invoices/preview | Previsualitzar la factura del temps d'un projecte |
POST/v1/projects/{project}/time-invoices | Facturar el temps d'un projecte |
GET/v1/notifications | Llistar notificacions |