Geliştiriciler
API referansı
VentionDesk API'sinin tüm herkese açık endpoint'leri. Liste, sunucunun kayıtlı rotalarından üretilir; endpoint başına erişim kuralı rotadaki kontrollerden, tablolar ise VentionDesk'in istekleri kontrol etmek ve yanıtları biçimlendirmek için kullandığı Zod sözleşmelerinden gelir. Yani burada yazan, sunucunun gerçekte yaptığıdır.
Adresler https://api.ventiondesk.com ile başlar. Oturum açma, kapsamlar, hata biçimi ve istek sınırları API temelleri sayfasında açıklanır. Zorunlu alanlar * ile işaretlidir; tablosu olmayan bir endpoint, gövdesini yayımlanmamış bir sözleşmeyle kontrol eder ya da hiç kontrol etmez.
Erişim şöyle okunur: “işletme sahibi” ve “işletme sahibi ve çalışanlar”, web arayüzünde oturum açmış bir kişi demektir; bir API anahtarıyla bu tür endpoint'ler 403 ile yanıt verir. Kapsamı belirtilen endpoint'lere, bu kapsamı taşıyan ajan anahtarları da erişebilir.
Görevler
GET/v1/tasks
Projeye, duruma, sorumluya veya arama metnine göre filtrelenmiş görevleri okuyun.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: tasks:read
Sorgu parametreleri
| Alan | Tür | Not |
|---|---|---|
| project | UUID | |
| projectSlug | Metin | |
| status | "hold" | "todo" | "in_progress" | "question" | "review" | "done" | |
| assignee | "owner" | "staff" | "claude" | "external" | |
| claimable | "true" | "false" | |
| maxAttempts | Tam sayı | ≥ 1 | ≤ 20 | Varsayılan: 3 |
| limit | Tam sayı | ≥ 1 | ≤ 100 | Varsayılan: 20 |
| q | Metin | en az 1 karakter |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| tasks | Nesne listesi |
POST/v1/tasks
Bir görev oluşturun; çok benzer açık görevler kopya olarak tanınır.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: tasks:write
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| projectId | UUID | |
| projectSlug | Metin | |
| title * | Metin | en az 25 karakter |
| descriptionMd | Metin | en az 1 karakter |
| area | "frontend" | "backend" | "design" | "infra" | "support" | |
| dueDate | Tarih (YYYY-AA-GG) | |
| estimateMinutes | Tam sayı | > 0 |
| triggerCondition | Metin | en az 1 karakter |
| evidence | Metin | en az 1 karakter |
GET/v1/tasks/:id
Açıklama, sonuçlar ve eklerle bir görev.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: tasks:read
Yanıt
| Alan | Tür | Not |
|---|---|---|
| task | Nesne | |
| results | Nesne listesi | |
| attachments | Nesne listesi |
PATCH/v1/tasks/:id
Bir görevin alanlarını değiştirin.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: tasks:write
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| title | Metin | en az 1 karakter |
| descriptionMd | Metin veya null | |
| status | "hold" | "todo" | "in_progress" | "question" | "review" | "done" | |
| assignee | "owner" | "staff" | "claude" | "external" veya null | |
| area | "frontend" | "backend" | "design" | "infra" | "support" veya null | |
| dueDate | Tarih (YYYY-AA-GG) veya null | |
| estimateMinutes | Tam sayı veya null | > 0 |
| position | Metin | en az 1 karakter |
| triggerCondition | Metin veya null |
POST/v1/tasks/:id/claim
Bir görevi atomik olarak alın — iki çalışma asla aynı görevi almaz.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: tasks:write
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| maxAttempts | Tam sayı | ≥ 1 | ≤ 20 | Varsayılan: 3 |
| runId | UUID |
POST/v1/tasks/:id/decision
Bir kişinin bir sonuca onayı veya reddi; ret yorum gerektirir.
Erişim işletme sahibi ve çalışanlar
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| decision * | "approved" | "rejected" | |
| commentMd | Metin | en az 1 karakter | en fazla 20000 karakter |
| attachmentIds | UUID listesi | Varsayılan: [] |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| task | Nesne | |
| result | Nesne |
POST/v1/tasks/:id/handoff
Bir görevi Claude'a devredin.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: tasks:write
POST/v1/tasks/:id/result
Bir görevin durumunu bildirin (arbeitet, kontrolle, frage, master, blockiert, erledigt).
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: tasks:write
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| state * | "arbeitet" | "kontrolle" | "frage" | "master" | "blockiert" | "erledigt" | |
| summaryMd | Metin | en az 1 karakter |
| detailsMd | Metin | en az 1 karakter |
| prUrl | URL | |
| evidence | Metin | en az 1 karakter |
| runId | UUID |
Ajan çalışmaları
POST/v1/agent/runs
Bir ajanın çalışmasını başlatın.
Erişim yalnızca ajan anahtarları, kapsam: agent:run
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| projectId | UUID | |
| projectSlug | Metin | |
| meta | Nesne (serbest biçimli) | Varsayılan: {} |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| run | Nesne |
POST/v1/agent/runs/:id/finish
Bir ajan çalışmasını özetle veya hata durumuyla bitirin.
Erişim yalnızca ajan anahtarları
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| status * | "succeeded" | "failed" | |
| summary | Metin | en az 1 karakter |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| run | Nesne |
POST/v1/agent/runs/:id/heartbeat
Çalışan bir ajan çalışmasının canlılık sinyali.
Erişim yalnızca ajan anahtarları
Yanıt
| Alan | Tür | Not |
|---|---|---|
| run | Nesne |
Projeler
POST/v1/errors/:id/resolve
Açık bir hatayı çözüldü olarak işaretleyin — önce hata kaynağının erişimiyle hata izleyicide (Sentry, Bugsnag, Rollbar), ancak başarılı olursa VentionDesk'te. Sağlayıcı başarısız olursa (erişim salt okunur, hata bilinmiyor, yanıt yok) hata açık kalır: nedenle birlikte 409 veya 502. İşletme sahibi, çalışanlar ve errors:write kapsamlı ajanlar için. Gizleme ve silme burada yoktur.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: errors:write
Yanıt
| Alan | Tür | Not |
|---|---|---|
| issue | Nesne | |
| changed | true | false |
POST/v1/errors/:id/task
Bir hatadan görev oluşturun.
Erişim işletme sahibi ve çalışanlar
GET/v1/errors/summary
Genel bakış için tüm projelerdeki hata sayıları.
Erişim işletme sahibi ve çalışanlar
Yanıt
| Alan | Tür | Not |
|---|---|---|
| projects | Nesne listesi |
POST/v1/monitors/probe
Bir monitör URL'sini oluşturmadan önce kontrol edin ve son hedef dahil yönlendirmeleri bildirin.
Erişim işletme sahibi ve çalışanlar
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| url * | URL | en fazla 2048 karakter |
GET/v1/projects
Hesabın veya anahtarın görebildiği projeler.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: projects:read
Sorgu parametreleri
| Alan | Tür | Not |
|---|---|---|
| status | "active" | "blocked" | "review" | "paused" | |
| includeArchived | "true" | "false" | |
| q | Metin | en az 1 karakter |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| projects | Nesne listesi |
GET/v1/projects/:id
Kimliğine göre bir proje.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: projects:read
PATCH/v1/projects/:id/customer
Bir projeyi başka bir müşteriye atayın; talepler, taslaklar ve belgeler de taşınır.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| customerId * | UUID |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| project | Nesne | |
| changed | true | false | |
| moved | Nesne |
GET/v1/projects/:id/deploy
Hangi dağıtım hedeflerinin bulunduğu ve her birinde neyin eksik olduğu.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| targets | Nesne listesi |
POST/v1/projects/:id/deploy
Bir dağıtımı tetikleyin (202: tetiklendi, başarılı değil).
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| target * | "production" | "staging" | "preview" | |
| provider | "vercel" | "render" |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| provider | "vercel" | "render" | |
| target | "production" | "staging" | "preview" | |
| externalId | Metin veya null | |
| started | Tam sayı | > 0 |
POST/v1/projects/:id/error-sources
Hata izleyicideki bir projeyi bu projeye atayın.
Erişim işletme sahibi ve çalışanlar
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| provider * | "sentry" | "bugsnag" | "rollbar" | |
| externalId * | Metin | en az 1 karakter | en fazla 200 karakter |
DELETE/v1/projects/:id/error-sources/:sourceId
Bir hata kaynağını projeden ayırın.
Erişim işletme sahibi ve çalışanlar
GET/v1/projects/:id/errors
Bu proje için Sentry, Bugsnag veya Rollbar'dan hatalar. errors:read kapsamlı bir ajan, kaynaklar ve bağlantılar olmadan kendi projelerinin hatalarını alır.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: errors:read
Yanıt
| Alan | Tür | Not |
|---|---|---|
| issues | Nesne listesi | |
| stats | Nesne | |
| sources | Nesne listesi | |
| providers | "sentry" | "bugsnag" | "rollbar" listesi |
GET/v1/projects/:id/hosting
Projenin barındırma atamaları.
Erişim işletme sahibi ve çalışanlar
Yanıt
| Alan | Tür | Not |
|---|---|---|
| mappings | Nesne listesi | |
| providers | "netlify" | "cloudflare_pages" | "aws_amplify" | "railway" | "flyio" | "digitalocean_app_platform" listesi |
POST/v1/projects/:id/hosting
Barındırma sağlayıcısında bir site, uygulama veya hizmet atayın.
Erişim işletme sahibi ve çalışanlar
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| provider * | "netlify" | "cloudflare_pages" | "aws_amplify" | "railway" | "flyio" | "digitalocean_app_platform" | |
| externalId * | Metin | en az 1 karakter | en fazla 200 karakter |
DELETE/v1/projects/:id/hosting/:mappingId
Bir barındırma atamasını kaldırın.
Erişim işletme sahibi ve çalışanlar
DELETE/v1/projects/:id/render-services/:serviceId
Eskimiş bir Render hizmet kimliğini projeden ayırın.
Erişim işletme sahibi
GET/v1/projects/:id/report
Bir rapor için proje durumu: ilerleme, duruma göre görevler, açık ve vadesi geçmiş talepler, yol haritası, monitörler, dağıtımlar ve açık pull request'ler. Para yok — ne gelir ne bütçe ne de giderler.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: stats:read
GET/v1/projects/:id/roadmap
Bir projenin yol haritası aşamaları, planlanan sırayla.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: roadmap:write
Yanıt
| Alan | Tür | Not |
|---|---|---|
| phases | Nesne listesi |
POST/v1/projects/:id/roadmap
Bir yol haritası aşaması oluşturun. sort olmadan sona eklenir; bir sonraki açık aşama paneldeki kilometre taşıdır.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: roadmap:write
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| title * | Metin | en az 1 karakter | en fazla 200 karakter |
| startsOn * | Metin | sabit desen |
| endsOn * | Metin | sabit desen |
| sort | Tam sayı | ≥ 0 |
PATCH/v1/projects/:id/roadmap/:phaseId
Bir aşamayı değiştirin — başlık, dönem, tamamlanma veya sıra, yalnızca gönderilen alanlar. API silmez.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: roadmap:write
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| title | Metin | en az 1 karakter | en fazla 200 karakter |
| startsOn | Metin | sabit desen |
| endsOn | Metin | sabit desen |
| done | true | false | |
| sort | Tam sayı | ≥ 0 |
POST/v1/projects/:id/sync
Projenin GitHub verilerini gece yerine hemen eşitleyin.
Erişim işletme sahibi ve çalışanlar
GET/v1/projects/:id/time
Bir projenin zaman kayıtları: gün, süre, açıklama, görev, faturalanabilir ve faturalandı evet/hayır, kişinin adı — saatlik ücret, tutar ve fatura kimliği olmadan.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: time:read
Sorgu parametreleri
| Alan | Tür | Not |
|---|---|---|
| from | Metin | sabit desen |
| to | Metin | sabit desen |
| limit | Tam sayı | ≥ 1 | ≤ 500 | Varsayılan: 200 |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| entries | Nesne listesi | |
| totalSeconds | Tam sayı | ≥ 0 |
GET/v1/projects/by-slug/:slug
Slug'ına göre bir proje.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: projects:read
Talepler
GET/v1/tickets
Duruma, kanala, önceliğe, projeye veya müşteriye göre filtrelenmiş talepleri okuyun.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: tickets:read
Sorgu parametreleri
| Alan | Tür | Not |
|---|---|---|
| status | "open" | "in_progress" | "waiting" | "resolved" | |
| source | "contact_form" | "app" | "email" | "monitor" | "portal" | "phone" | "on_site" | "stripe" | "api" | |
| priority | "low" | "normal" | "high" | "critical" | |
| project | UUID | |
| projectSlug | Metin | |
| customer | UUID | |
| withSla | "true" | "false" | |
| q | Metin | en az 1 karakter |
| limit | Tam sayı | ≥ 1 | ≤ 100 | Varsayılan: 50 |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| tickets | Nesne listesi |
POST/v1/tickets
Bir talep oluşturun, örneğin bir telefon görüşmesinden sonra.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: tickets:write
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| subject * | Metin | en az 3 karakter |
| bodyMd * | Metin | en az 1 karakter |
| source * | "contact_form" | "app" | "email" | "monitor" | "portal" | "phone" | "on_site" | "stripe" | "api" | |
| customerId | UUID veya null | |
| projectId | UUID veya null | |
| priority | "low" | "normal" | "high" | "critical" | Varsayılan: "normal" |
| requesterName | Metin | |
| requesterEmail | E-posta | |
| requesterMeta | Nesne (serbest biçimli) |
DELETE/v1/tickets/:id
Bir talebi silin.
Erişim işletme sahibi ve çalışanlar
GET/v1/tickets/:id
Geçmişi dahil bir talep.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: tickets:read
Yanıt
| Alan | Tür | Not |
|---|---|---|
| ticket | Nesne | |
| messages | Nesne listesi |
PATCH/v1/tickets/:id
Bir talebin konusunu, durumunu, önceliğini, kanalını, müşterisini, projesini, sorumlusunu veya portal görünürlüğünü değiştirin.
Erişim işletme sahibi ve çalışanlar
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| subject | Metin | en az 3 karakter |
| status | "open" | "in_progress" | "waiting" | "resolved" | |
| priority | "low" | "normal" | "high" | "critical" | |
| source | "contact_form" | "app" | "email" | "monitor" | "portal" | "phone" | "on_site" | "stripe" | "api" | |
| customerId | UUID veya null | |
| projectId | UUID veya null | |
| assignedTo | UUID veya null | |
| portalVisible | true | false |
POST/v1/tickets/:id/messages
Geçmişe bir kayıt yazın: dahili not veya taslak. E-posta gitmez.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: tickets:write
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| bodyMd * | Metin | en az 1 karakter |
| isInternalNote | true | false | Varsayılan: false |
| isDraft | true | false | Varsayılan: false |
POST/v1/tickets/:id/reply
Müşteriye yanıt verin — e-posta gitmesinin tek yolu. Talebi “waiting” durumuna alır. Bir ajanın yanıtı her zaman bir yapay zekâ asistanının yazdığı notunu taşır ve anahtar başına saatte 20, talep başına günde 3 ile sınırlıdır (üzerinde 429).
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: tickets:reply
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| bodyMd * | Metin | en az 1 karakter |
| isInternalNote | true | false | Varsayılan: false |
| isDraft | true | false | Varsayılan: false |
| draftId | UUID |
POST/v1/tickets/:id/to-task
Bir talepten görev oluşturun — başlık olarak konu, açıklama olarak tüm geçmiş.
Erişim işletme sahibi ve çalışanlar
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| projectId * | UUID | |
| title | Metin | en az 10 karakter |
| assignee | "owner" | "staff" | "claude" | "external" veya null |
GET/v1/tickets/attachments/:id/url
Bir talebin eki için kısa ömürlü URL — bir ajan bunu yalnızca kendi projelerinin talepleri için alır.
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: tickets:read
Yanıt
| Alan | Tür | Not |
|---|---|---|
| url | URL | |
| expiresInSeconds | Tam sayı | > 0 |
Notlar
POST/v1/notes
Bir projeye not oluşturun (proje kimliği veya slug).
Erişim işletme sahibi, çalışanlar veya kapsamı şu olan ajan anahtarları: notes:write
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| projectId | UUID | |
| projectSlug | Metin | |
| bodyMd * | Metin | en az 1 karakter |
| kind | "idea" | "decision" | "risk" | Varsayılan: "idea" |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| note | Nesne |
POST/v1/notes/:id/to-task
Bir nottan görev oluşturun.
Erişim işletme sahibi ve çalışanlar
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| title | Metin | en az 25 karakter |
| assignee | "owner" | "staff" | "claude" | "external" veya null |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| ok | false | |
| error | Metin | |
| code | "note_already_converted" | |
| task | Nesne |
Fikirler
POST/v1/ideas
Bir fikir oluşturun — her zaman “Açık”. Bir ajan yalnızca oluşturur: hiçbir fikri okumaz, değiştirmez veya silmez; proje olmadan yalnızca tüm projeler için geçerli bir anahtarla.
Erişim işletme sahibi veya kapsamı şu olan ajan anahtarları: ideas:write
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| title * | Metin | en az 1 karakter | en fazla 200 karakter |
| bodyMd | Metin | en fazla 20000 karakter |
| tags | Metin listesi | Varsayılan: [] |
| potential | "low" | "medium" | "high" | |
| priority | "low" | "high" | |
| projectId | UUID veya null |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| idea | Nesne |
Zaman
GET/v1/time/entries
Zaman kayıtlarını okuyun.
Erişim işletme sahibi ve çalışanlar
Sorgu parametreleri
| Alan | Tür | Not |
|---|---|---|
| from | Metin | |
| to | Metin | |
| project | UUID | |
| user | UUID | |
| unbilled | "true" | "false" | |
| limit | Tam sayı | ≥ 1 | ≤ 500 | Varsayılan: 200 |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| entries | Nesne listesi |
POST/v1/time/entries
Sonradan zaman ekleyin.
Erişim işletme sahibi ve çalışanlar
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| label * | Metin | en az 1 karakter |
| startedAt * | Zaman damgası (ISO 8601) | |
| endedAt * | Zaman damgası (ISO 8601) | |
| seconds | Tam sayı | > 0 |
| projectId | UUID veya null | |
| ticketId | UUID veya null | |
| taskId | UUID veya null | |
| billable | true | false | Varsayılan: true |
DELETE/v1/time/entries/:id
Bir zaman kaydını silin.
Erişim işletme sahibi ve çalışanlar
PATCH/v1/time/entries/:id
Bir zaman kaydını değiştirin.
Erişim işletme sahibi ve çalışanlar
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| label | Metin | en az 1 karakter |
| seconds | Tam sayı | > 0 |
| billable | true | false | |
| projectId | UUID veya null | |
| ticketId | UUID veya null |
GET/v1/time/timer
Hesabın çalışan zamanlayıcısı.
Erişim işletme sahibi ve çalışanlar
Yanıt
| Alan | Tür | Not |
|---|---|---|
| timer | Nesne veya null |
POST/v1/time/timer/start
Zamanlayıcıyı başlatın.
Erişim işletme sahibi ve çalışanlar
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| label | Metin | Varsayılan: "" |
| projectId | UUID veya null | |
| ticketId | UUID veya null | |
| taskId | UUID veya null |
POST/v1/time/timer/stop
Zamanlayıcıyı durdurun ve zamanı kayıt olarak kaydedin.
Erişim işletme sahibi ve çalışanlar
GET/v1/time/unbilled
Henüz faturalanmamış faturalanabilir saatler, proje başına, tutar dahil.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| projects | Nesne listesi | |
| totals | Nesne |
Müşteriler
DELETE/v1/customers/:id
Dosyalar dahil bir müşteriyi silin.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| customerId | UUID | |
| shortName | Metin | |
| impact | Nesne | |
| files | Nesne | |
| portalAccounts | Nesne |
GET/v1/customers/:id/deletion
Bir müşteriyle birlikte nelerin kaldırılacağının önizlemesi.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| customerId | UUID | |
| shortName | Metin | |
| deletable | true | false | |
| reason | Metin veya null | |
| blockers | Nesne | |
| impact | Nesne |
POST/v1/customers/:id/portal-access
Bir iletişim kişisine müşteri portalı erişimi verin.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| email * | E-posta | |
| displayName | Metin | en az 1 karakter |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| access | Nesne | |
| Nesne |
DELETE/v1/customers/:id/portal-access/:userId
Bir hesabın portal erişimini kaldırın. Önceden verilmiş bir token yenilenene kadar geçerli kalır.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| revoked | Nesne |
POST/v1/customers/:id/portal-access/:userId/invite
Müşteri portalı davetini yeniden gönderin.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| Nesne |
Belgeler
GET/v1/documents
Müşteriye, projeye veya türe göre filtrelenmiş belgeleri okuyun.
Erişim oturum açmış her hesap; ne göreceğine rolü karar verir
Sorgu parametreleri
| Alan | Tür | Not |
|---|---|---|
| customer | UUID | |
| project | UUID | |
| type | "pdf" | "image" | "sheet" | "contract" | "other" | |
| q | Metin | en az 1 karakter | en fazla 120 karakter |
| limit | Tam sayı | ≥ 1 | ≤ 200 | Varsayılan: 50 |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| documents | Nesne listesi |
PATCH/v1/documents/:id
Bir belgenin atamasını, türünü, etiketlerini veya portal görünürlüğünü değiştirin.
Erişim oturum açmış her hesap; ne göreceğine rolü karar verir
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| name | Metin | en az 1 karakter | en fazla 200 karakter |
| type | "pdf" | "image" | "sheet" | "contract" | "other" | |
| projectId | UUID veya null | |
| sharedWithPortal | true | false | |
| tags | Metin listesi |
GET/v1/documents/:id/url
Bir belgeyi indirmek için kısa ömürlü URL.
Erişim oturum açmış her hesap; ne göreceğine rolü karar verir
Yanıt
| Alan | Tür | Not |
|---|---|---|
| url | URL | |
| expiresInSeconds | Tam sayı | > 0 |
Finans
GET/v1/finance/export
Mali müşavir için yıllık dışa aktarma: tablo başına bir CSV ve saklanan belgelerle ZIP.
Erişim işletme sahibi
GET/v1/invoices
Duruma, müşteriye veya “vadesi geçmiş”e göre filtrelenmiş faturaları okuyun. Bir ajan yalnızca kendi projelerinin taslaklarını görür.
Erişim işletme sahibi veya kapsamı şu olan ajan anahtarları: invoices:write
Sorgu parametreleri
| Alan | Tür | Not |
|---|---|---|
| status | "draft" | "open" | "overdue" | "paid" | "cancelled" | |
| customer | UUID | |
| overdue | "true" | "false" | |
| limit | Tam sayı | ≥ 1 | ≤ 200 | Varsayılan: 50 |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| invoices | Nesne listesi |
POST/v1/invoices
Bir fatura taslağı oluşturun — henüz fatura numarası olmadan. customerId olmadan projenin müşterisi geçerlidir; bir ajan yalnızca kendi projelerinden birinde taslak oluşturur. Kesinleştirme, gönderme ve ödemeler işletme sahibinde kalır.
Erişim işletme sahibi veya kapsamı şu olan ajan anahtarları: invoices:write
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| customerId | UUID | |
| projectId | UUID veya null | |
| paymentTermsDays | Tam sayı | ≥ 1 | ≤ 90 |
| vatRate | Tam sayı | |
| vatScheme | "standard" | "reverse_charge" | |
| serviceFrom | Metin | sabit desen |
| serviceTo | Metin | sabit desen |
| serviceDateEqualsInvoiceDate | true | false | Varsayılan: false |
| positions | Nesne listesi | Varsayılan: [] |
GET/v1/invoices/:id
Kalemler, toplamlar ve ödemelerle bir fatura.
Erişim işletme sahibi veya kapsamı şu olan ajan anahtarları: invoices:write
Yanıt
| Alan | Tür | Not |
|---|---|---|
| invoice | Nesne | |
| positions | Nesne listesi |
POST/v1/invoices/:id/cancel
Kesinleştirilmiş bir faturayı iptal edin; bir iptal belgesi oluşturulur.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| reason * | Metin | en az 3 karakter | en fazla 500 karakter |
| serviceRendered * | true | false |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| invoice | Nesne | |
| releasedEntries | Tam sayı | ≥ 0 |
| entries | "released" | "failed" | |
| correction | "stored" | "skipped" | "failed" | |
| taxOfficeConsent | true | false |
GET/v1/invoices/:id/cancellation/pdf
PDF olarak iptal belgesi.
Erişim işletme sahibi
POST/v1/invoices/:id/cancellation/send
İptal belgesini e-postayla gönderin.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| "sent" | "skipped" | ||
| reason | Metin | eksik olabilir |
| invoice | Nesne |
POST/v1/invoices/:id/dunning/send
Vadesi gelen hatırlatma kademesini gönderin.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| "sent" | "skipped" | ||
| reason | Metin | eksik olabilir |
| invoice | Nesne | |
| level | Tam sayı veya null | ≥ 1 | ≤ 4 |
POST/v1/invoices/:id/finalize
Bir taslağı kesinleştirin: sıralı numarayı verir, faturayı kilitler ve PDF'yi saklar.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| settle | Nesne |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| invoice | Nesne | |
| "stored" | "skipped" | "failed" | ||
| payment | "none" | "booked" | "failed" | |
| paymentError | Metin | eksik olabilir |
POST/v1/invoices/:id/payments
Bir ödeme veya geri ödeme kaydedin.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| amountCents * | Tam sayı | |
| paidOn | Metin | sabit desen |
| method | "transfer" | "stripe" | "cash" | "other" | Varsayılan: "transfer" |
| note | Metin | en fazla 500 karakter |
GET/v1/invoices/:id/pdf
PDF olarak fatura — kesinleştirildiğinde saklanan belge.
Erişim işletme sahibi
POST/v1/invoices/:id/positions
Bir taslağa kalem ekleyin.
Erişim işletme sahibi veya kapsamı şu olan ajan anahtarları: invoices:write
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| description * | Metin | en az 1 karakter |
| quantity * | Sayı | > 0 |
| unit | "hour" | "flat" | Varsayılan: "hour" |
| unitPriceCents * | Tam sayı | ≥ 0 |
| sort | Tam sayı |
DELETE/v1/invoices/:id/positions/:positionId
Bir taslaktan kalem kaldırın.
Erişim işletme sahibi veya kapsamı şu olan ajan anahtarları: invoices:write
PATCH/v1/invoices/:id/positions/:positionId
Bir taslağın kalemini değiştirin — yalnızca gönderilen alanlar. Kesinleştirilmiş bir fatura 409 ile yanıt verir.
Erişim işletme sahibi veya kapsamı şu olan ajan anahtarları: invoices:write
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| description | Metin | en az 1 karakter |
| quantity | Sayı | > 0 |
| unit | "hour" | "flat" | Varsayılan: "hour" |
| unitPriceCents | Tam sayı | ≥ 0 |
| sort | Tam sayı |
POST/v1/invoices/:id/remind
Bir ödeme hatırlatması gönderin.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| "sent" | "skipped" | ||
| reason | Metin | eksik olabilir |
| invoice | Nesne |
POST/v1/invoices/:id/send
Kesinleştirilmiş bir faturayı e-postayla gönderin.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| "sent" | "skipped" | ||
| reason | Metin | eksik olabilir |
| invoice | Nesne |
GET/v1/invoices/:id/stripe-refund
Bir Stripe ödemesinin iade edilip edilemeyeceği ve ne kadarının.
Erişim işletme sahibi
POST/v1/invoices/:id/stripe-refund
Stripe ile ödenmiş bir faturayı Stripe üzerinden iade edin; webhook üzerinden kaydedilir.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| amountCents | Tam sayı | > 0 |
GET/v1/invoices/:id/test-pay-link
Denemek için Stripe test modunda bir ödeme bağlantısı.
Erişim işletme sahibi
POST/v1/invoices/from-unbilled
Bir projenin açık faturalanabilir saatlerini fatura taslağına dönüştürün — zaman kaydı başına bir kalem.
Erişim işletme sahibi veya kapsamı şu olan ajan anahtarları: invoices:write
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| projectId * | UUID | |
| untilDate | Metin | |
| paymentTermsDays | Tam sayı | ≥ 1 | ≤ 90 |
| vatRate | Tam sayı | |
| vatScheme | "standard" | "reverse_charge" |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| invoice | Nesne | |
| entries | Tam sayı | ≥ 0 |
| hours | Sayı | ≥ 0 |
GET/v1/quotes
Teklifleri okuyun. Bir ajan yalnızca kendi projelerinin taslaklarını görür.
Erişim işletme sahibi veya kapsamı şu olan ajan anahtarları: quotes:write
Yanıt
| Alan | Tür | Not |
|---|---|---|
| quotes | Nesne listesi |
POST/v1/quotes
Bir teklif taslağı oluşturun — henüz numarasız. customerId olmadan projenin müşterisi geçerlidir; bir ajan yalnızca kendi projelerinden birinde taslak oluşturur ve asla bir aday için oluşturmaz.
Erişim işletme sahibi veya kapsamı şu olan ajan anahtarları: quotes:write
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| title * | Metin | en az 3 karakter |
| customerId | UUID veya null | |
| prospectName | Metin | |
| prospectEmail | E-posta | |
| projectId | UUID veya null | |
| validUntil | Metin | |
| vatRate | Tam sayı | |
| vatScheme | "standard" | "reverse_charge" | |
| positions | Nesne listesi | Varsayılan: [] |
DELETE/v1/quotes/:id
Bir teklif taslağını silin — henüz numarası yoktur.
Erişim işletme sahibi veya kapsamı şu olan ajan anahtarları: quotes:write
GET/v1/quotes/:id
Kalemleriyle bir teklif.
Erişim işletme sahibi veya kapsamı şu olan ajan anahtarları: quotes:write
Yanıt
| Alan | Tür | Not |
|---|---|---|
| quote | Nesne | |
| positions | Nesne listesi |
PATCH/v1/quotes/:id
Bir taslağın başlığını ve geçerliliğini değiştirin. Gönderilmiş bir teklif 409 ile yanıt verir.
Erişim işletme sahibi veya kapsamı şu olan ajan anahtarları: quotes:write
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| title | Metin | en az 3 karakter |
| validUntil | Metin veya null | sabit desen |
GET/v1/quotes/:id/pdf
PDF olarak bir teklif.
Erişim işletme sahibi
POST/v1/quotes/:id/positions
Bir teklif taslağına kalem ekleyin.
Erişim işletme sahibi veya kapsamı şu olan ajan anahtarları: quotes:write
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| description * | Metin | en az 1 karakter |
| quantity * | Sayı | > 0 |
| unit | "hour" | "flat" | Varsayılan: "hour" |
| unitPriceCents * | Tam sayı | ≥ 0 |
| sort | Tam sayı |
DELETE/v1/quotes/:id/positions/:positionId
Bir teklif taslağından kalem kaldırın.
Erişim işletme sahibi veya kapsamı şu olan ajan anahtarları: quotes:write
PATCH/v1/quotes/:id/positions/:positionId
Bir teklif taslağının kalemini değiştirin — yalnızca gönderilen alanlar.
Erişim işletme sahibi veya kapsamı şu olan ajan anahtarları: quotes:write
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| description | Metin | en az 1 karakter |
| quantity | Sayı | > 0 |
| unit | "hour" | "flat" | Varsayılan: "hour" |
| unitPriceCents | Tam sayı | ≥ 0 |
| sort | Tam sayı |
POST/v1/quotes/:id/send
Bir teklifi e-postayla gönderin.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| "sent" | "skipped" | ||
| reason | Metin | eksik olabilir |
| quote | Nesne |
Bağlantılar
GET/v1/integrations
İşletmenin bağlı kaynakları, sırlar olmadan.
Erişim işletme sahibi ve çalışanlar
Yanıt
| Alan | Tür | Not |
|---|---|---|
| integrations | Nesne listesi | |
| plattform | true | false | |
| githubInstallierbar | true | false |
POST/v1/integrations
Bir kaynak bağlayın. Erişim saklanmadan önce sağlayıcıda kontrol edilir.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| provider * | "vercel" | "render" | "netlify" | "cloudflare_pages" | "aws_amplify" | "railway" | "flyio" | "digitalocean_app_platform" | "postmark" | "mailgun" | "amazon_ses" | "resend" | "sentry" | "bugsnag" | "rollbar" | "stripe" | |
| fields * | Nesne (serbest biçimli) |
DELETE/v1/integrations/:id
Bir bağlantıyı kaldırın.
Erişim işletme sahibi
PATCH/v1/integrations/:id
Bir bağlantıyı düzenleyin; boş bir sır değişmeden kalır.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| fields * | Nesne (serbest biçimli) |
GET/v1/integrations/:id/webhook
Sağlayıcıya girilecek bir bağlantının webhook URL'si (Stripe, Sentry, Bugsnag, Rollbar).
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| url | URL | |
| signiert | true | false | |
| bereit | true | false |
GET/v1/integrations/:provider/error-projects
Erişimin hata izleyicide görebildiği projeler.
Erişim işletme sahibi ve çalışanlar
Yanıt
| Alan | Tür | Not |
|---|---|---|
| resources | Nesne listesi |
GET/v1/integrations/:provider/resources
Barındırma erişiminin sağlayıcıda görebildiği siteler, uygulamalar veya hizmetler.
Erişim işletme sahibi ve çalışanlar
Yanıt
| Alan | Tür | Not |
|---|---|---|
| resources | Nesne listesi |
GET/v1/integrations/github/callback
Kurulumdan sonra GitHub'dan dönüş yolu; kurulumu işletmeye bağlar.
Erişim imzalı state ve GitHub oturum açma
Sorgu parametreleri
| Alan | Tür | Not |
|---|---|---|
| installation_id | Metin | sabit desen |
| setup_action | Metin | en fazla 20 karakter |
| code | Metin | en fazla 200 karakter |
| state | Metin | en fazla 2000 karakter |
POST/v1/integrations/github/install-url
VentionDesk uygulamasını GitHub'a kurmak için URL.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| url | URL |
Hesap, ayarlar ve yönetim
GET/v1/admin/api-keys
İşletmenin API anahtarları, düz metin olmadan.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| keys | Nesne listesi |
POST/v1/admin/api-keys
Ajan veya giriş anahtarı oluşturun. Düz metin yalnızca bu tek yanıtta görünür.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| name * | Metin | en az 3 karakter |
| kind | "agent" | "intake" | Varsayılan: "agent" |
| scopes * | "projects:read" | "tasks:read" | "tasks:write" | "tickets:read" | "tickets:write" | "tickets:reply" | "notes:write" | "deployments:read" | "agent:run" | "intake:write" | "access-log:write" | "invoices:write" | "errors:read" | "errors:write" | "time:read" | "stats:read" | "quotes:write" | "roadmap:write" | "ideas:write" listesi | |
| projectIds * | UUID listesi veya null | |
| expiresAt | Zaman damgası (ISO 8601) |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| key | Nesne | |
| plaintext | Metin |
DELETE/v1/admin/api-keys/:id
Bir anahtarı iptal edin — hemen etkili olur.
Erişim işletme sahibi
PATCH/v1/admin/api-keys/:id
Bir anahtarın izinlerini ve projelerini değiştirin — anahtarın kendisi aynı kalır.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| scopes * | "projects:read" | "tasks:read" | "tasks:write" | "tickets:read" | "tickets:write" | "tickets:reply" | "notes:write" | "deployments:read" | "agent:run" | "intake:write" | "access-log:write" | "invoices:write" | "errors:read" | "errors:write" | "time:read" | "stats:read" | "quotes:write" | "roadmap:write" | "ideas:write" listesi | |
| projectIds * | UUID listesi veya null |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| key | Nesne |
DELETE/v1/admin/api-keys/:id/endgueltig
İptal edilmiş bir anahtarı kalıcı olarak silin.
Erişim işletme sahibi
GET/v1/admin/members
İşletmenin üyeleri ve rolleri.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| members | Nesne listesi |
PATCH/v1/admin/members/:id
Bir üyenin rolünü değiştirin.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| role * | "owner" | "staff" |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| member | Nesne | |
| activeHere | true | false |
DELETE/v1/admin/users/:id
Bir portal hesabını silin; geçmişteki ad ve adres önce takma adla değiştirilir.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| removed | Nesne | |
| account | "kept" | "deleted" | "locked" |
POST/v1/admin/users/invite
Bir çalışanı e-postayla davet edin.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| email * | E-posta | |
| role * | "owner" | "staff" | |
| displayName | Metin | en az 1 karakter |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| user | Nesne | |
| existingAccount | true | false | eksik olabilir | Varsayılan: false |
GET/v1/ki-apps
Bağlı yapay zekâ uygulamaları: tüm işletmelerde kendi uygulamalarınız, işletme sahibi için ayrıca işletmenin tümü.
Erişim işletme sahibi ve çalışanlar
Yanıt
| Alan | Tür | Not |
|---|---|---|
| apps | Nesne listesi | |
| alleImBetrieb | true | false |
POST/v1/ki-apps
Bir yapay zekâ uygulaması için onayı kaydedin (işletme, izinler, projeler) — oturum açmadaki onaydan önce. Uygulamayı çağıran değil, Supabase Auth belirtir.
Erişim işletme sahibi ve çalışanlar
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| authorizationId * | Metin | en az 1 karakter | en fazla 200 karakter |
| orgId * | UUID | |
| scopes * | "projects:read" | "tasks:read" | "tasks:write" | "tickets:read" | "tickets:write" | "tickets:reply" | "notes:write" | "deployments:read" | "agent:run" | "intake:write" | "access-log:write" | "invoices:write" | "errors:read" | "errors:write" | "time:read" | "stats:read" | "quotes:write" | "roadmap:write" | "ideas:write" listesi | |
| projectIds * | UUID listesi veya null |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| app | Nesne |
DELETE/v1/ki-apps/:id
Bir yapay zekâ uygulamasının bağlantısını kesin — hemen etkili olur; kendi uygulamalarınız için oturum açmadaki onay da geri alınır.
Erişim işletme sahibi ve çalışanlar
GET/v1/ki-apps/rahmen
Onay sayfasının sundukları: kişinin işletmeleri, izin verilen izinler ve projeler.
Erişim işletme sahibi ve çalışanlar
Yanıt
| Alan | Tür | Not |
|---|---|---|
| betriebe | Nesne listesi | |
| betrieb | UUID | |
| rolle | "owner" | "staff" | |
| erlaubt | "projects:read" | "tasks:read" | "tasks:write" | "tickets:read" | "tickets:write" | "tickets:reply" | "notes:write" | "deployments:read" | "agent:run" | "intake:write" | "access-log:write" | "invoices:write" | "errors:read" | "errors:write" | "time:read" | "stats:read" | "quotes:write" | "roadmap:write" | "ideas:write" listesi | |
| projekte | Nesne listesi |
GET/v1/ki-apps/vorgabe
Çalışanların bir yapay zekâ uygulamasına hangi izinleri verebileceği.
Erişim işletme sahibi ve çalışanlar
Yanıt
| Alan | Tür | Not |
|---|---|---|
| scopes | "projects:read" | "tasks:read" | "tasks:write" | "tickets:read" | "tickets:write" | "tickets:reply" | "notes:write" | "deployments:read" | "agent:run" | "intake:write" | "access-log:write" | "invoices:write" | "errors:read" | "errors:write" | "time:read" | "stats:read" | "quotes:write" | "roadmap:write" | "ideas:write" listesi | |
| abWerk | "projects:read" | "tasks:read" | "tasks:write" | "tickets:read" | "tickets:write" | "tickets:reply" | "notes:write" | "deployments:read" | "agent:run" | "intake:write" | "access-log:write" | "invoices:write" | "errors:read" | "errors:write" | "time:read" | "stats:read" | "quotes:write" | "roadmap:write" | "ideas:write" listesi | |
| waehlbar | "projects:read" | "tasks:read" | "tasks:write" | "tickets:read" | "tickets:write" | "tickets:reply" | "notes:write" | "deployments:read" | "agent:run" | "intake:write" | "access-log:write" | "invoices:write" | "errors:read" | "errors:write" | "time:read" | "stats:read" | "quotes:write" | "roadmap:write" | "ideas:write" listesi |
PUT/v1/ki-apps/vorgabe
Bu varsayılanı değiştirin.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| scopes * | "projects:read" | "tasks:read" | "tasks:write" | "tickets:read" | "tickets:write" | "tickets:reply" | "notes:write" | "deployments:read" | "agent:run" | "intake:write" | "access-log:write" | "invoices:write" | "errors:read" | "errors:write" | "time:read" | "stats:read" | "quotes:write" | "roadmap:write" | "ideas:write" listesi |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| scopes | "projects:read" | "tasks:read" | "tasks:write" | "tickets:read" | "tickets:write" | "tickets:reply" | "notes:write" | "deployments:read" | "agent:run" | "intake:write" | "access-log:write" | "invoices:write" | "errors:read" | "errors:write" | "time:read" | "stats:read" | "quotes:write" | "roadmap:write" | "ideas:write" listesi | |
| abWerk | "projects:read" | "tasks:read" | "tasks:write" | "tickets:read" | "tickets:write" | "tickets:reply" | "notes:write" | "deployments:read" | "agent:run" | "intake:write" | "access-log:write" | "invoices:write" | "errors:read" | "errors:write" | "time:read" | "stats:read" | "quotes:write" | "roadmap:write" | "ideas:write" listesi | |
| waehlbar | "projects:read" | "tasks:read" | "tasks:write" | "tickets:read" | "tickets:write" | "tickets:reply" | "notes:write" | "deployments:read" | "agent:run" | "intake:write" | "access-log:write" | "invoices:write" | "errors:read" | "errors:write" | "time:read" | "stats:read" | "quotes:write" | "roadmap:write" | "ideas:write" listesi |
GET/v1/me
Kendi hesabınız: rol, işletme, seçilebilecek işletmeler ve hizmet adresleri.
Erişim oturum açmış her hesap; ne göreceğine rolü karar verir
Yanıt
| Alan | Tür | Not |
|---|---|---|
| id | UUID | |
| role | "owner" | "staff" | "customer" | "agent" | |
| customerId | UUID veya null | |
| displayName | Metin | en az 1 karakter |
| E-posta | ||
| mfaRequired | true | false | |
| intake | Nesne | |
| organization | Nesne veya null | eksik olabilir | Varsayılan: null |
| memberships | Nesne listesi | eksik olabilir | Varsayılan: [] |
| support | Nesne veya null | eksik olabilir |
| locale | "de" | "en" | "zh" | "es" | "hi" | "tr" veya null | eksik olabilir |
PATCH/v1/me/locale
Kendi arayüz dilinizi hesaba kaydedin.
Erişim oturum açmış her hesap; ne göreceğine rolü karar verir
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| locale * | "de" | "en" | "zh" | "es" | "hi" | "tr" |
POST/v1/me/organization
Hesap birden fazla işletmeye aitse aktif işletmeyi değiştirin.
Erişim oturum açmış her hesap; ne göreceğine rolü karar verir
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| orgId * | UUID |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| organization | Nesne | |
| role | "owner" | "staff" |
GET/v1/settings
Belgeler için antet dahil işletmenin ayarları.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| company | Nesne |
PATCH/v1/settings
Ayarları ve anteti değiştirin.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| company * | Nesne |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| company | Nesne |
GET/v1/settings/agreements
Şartlara ve veri işleme sözleşmesine onayın durumu.
Erişim işletme sahibi
POST/v1/settings/agreements
Şartların veya veri işleme sözleşmesinin yeni sürümünü kabul edin veya reddedin.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| document * | "agb" | "avv" | |
| version * | Metin | en az 1 karakter | en fazla 40 karakter |
| decision * | "accepted" | "declined" |
GET/v1/settings/benachrichtigungen
Yeni talepte e-posta: açık veya kapalı, alıcılar, kanallar ve en düşük öncelik.
Erişim işletme sahibi
PATCH/v1/settings/benachrichtigungen
Yeni talepteki e-postayı yapılandırın (yalnızca işletme sahibi).
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| aktiv * | true | false | |
| wiederoeffnen | true | false | |
| empfaenger * | E-posta listesi veya null | |
| kanaele * | "contact_form" | "app" | "email" | "monitor" | "portal" | "phone" | "on_site" | "stripe" | "api" listesi veya null | |
| mindestPrioritaet * | "low" | "normal" | "high" | "critical" |
GET/v1/settings/mail
Müşterilere giden e-postaların göndericisi ve kendi gönderici alan adınızın durumu.
Erişim işletme sahibi
PATCH/v1/settings/mail
Gönderici adını ve gönderici adresini değiştirin.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| absenderName | Metin veya null | en fazla 60 karakter |
| postfachname | Metin | en fazla 40 karakter |
GET/v1/settings/mail-templates
Varsayılan metinler dahil işletmenin e-posta şablonları.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| vorlagen | Nesne listesi |
DELETE/v1/settings/mail-templates/:kind
Bir e-posta şablonunu varsayılan metne sıfırlayın.
Erişim işletme sahibi
PUT/v1/settings/mail-templates/:kind
Bir e-posta şablonunu kaydedin.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| subject * | Metin | en az 1 karakter | en fazla 200 karakter |
| html * | Metin | en az 1 karakter | en fazla 102400 karakter |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| kind | "invoice_send" | "invoice_reminder" | "dunning" | "invoice_cancellation" | "quote_send" | "ticket_reply" | "ticket_receipt" | "ticket_internal" | "ticket_reopened" | "member_invite" | "portal_invite" | "deletion_reminder" | |
| angepasst | true | false | |
| subject | Metin veya null | |
| html | Metin veya null | |
| aktualisiertAm | Metin veya null | |
| bereinigt | true | false |
DELETE/v1/settings/mail/domain
Kendi gönderici alan adınızı kaldırın.
Erişim işletme sahibi
POST/v1/settings/mail/domain
Kendi gönderici alan adınızı oluşturun; yanıt DNS kayıtlarını listeler.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| adresse * | Metin | en az 3 karakter | en fazla 254 karakter |
POST/v1/settings/mail/domain/verify
Gönderici alan adının DNS kayıtlarını kontrol ettirin.
Erişim işletme sahibi
VentionDesk aboneliği
GET/v1/abo
İşletmenin VentionDesk aboneliğinin durumu: plan, deneme süresi, askıya alma.
Erişim işletme sahibi ve çalışanlar
Yanıt
| Alan | Tür | Not |
|---|---|---|
| betrieb | Metin | |
| tarif | "solo" | "team" | "enterprise" | |
| abrechnung | "jaehrlich" | "monatlich" | |
| status | "trial" | "active" | "past_due" | "canceled" | |
| testphaseBis | Metin veya null | |
| laufzeitBis | Metin veya null | |
| kuendigtZum | Metin veya null | eksik olabilir | Varsayılan: null |
| loeschungAm | Metin veya null | eksik olabilir | Varsayılan: null |
| gesperrt | true | false | eksik olabilir | Varsayılan: false |
| sperrGrund | "beendet" | "testphase" | "zahlungsverzug" | "anbieter" veya null | eksik olabilir | Varsayılan: null |
| sperreAb | Metin veya null | eksik olabilir | Varsayılan: null |
| plaetze | Tam sayı veya null | |
| mitglieder | Tam sayı | |
| stripeKunde | true | false | |
| stripeAbo | true | false | eksik olabilir | Varsayılan: false |
| befreit | true | false | |
| stripeBereit | true | false |
POST/v1/abo/cancel
VentionDesk aboneliğini dönem sonunda iptal edin.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| nonce * | Metin | sabit desen |
| grund | "too_expensive" | "missing_features" | "switched_service" | "unused" | "too_complex" | "low_quality" | "customer_service" | "other" | |
| kommentar | Metin | en fazla 500 karakter |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| angenommen | true | |
| ausstehend | true | false | eksik olabilir |
| hinweis | Metin | eksik olabilir |
POST/v1/abo/change
VentionDesk aboneliğinin planını veya faturalama aralığını değiştirin.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| tarif * | "solo" | "team" | "enterprise" | |
| abrechnung * | "jaehrlich" | "monatlich" | |
| plaetze * | Tam sayı | ≥ 1 | ≤ 10000 |
| nonce * | Metin | sabit desen |
POST/v1/abo/checkout
VentionDesk aboneliği başlatın (Stripe Checkout'a yönlendirir).
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| tarif * | "solo" | "team" | "enterprise" | |
| abrechnung * | "jaehrlich" | "monatlich" |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| url | URL |
GET/v1/abo/export
Tüm işletmenin ZIP olarak veri dışa aktarması (yapı: bkz. Veri dışa aktarma).
Erişim işletme sahibi
POST/v1/abo/preview
Orantılı tutarla bir plan değişikliğinin önizlemesi.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| tarif * | "solo" | "team" | "enterprise" | |
| abrechnung * | "jaehrlich" | "monatlich" | |
| plaetze * | Tam sayı | ≥ 1 | ≤ 10000 |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| waehrung | Metin | |
| anteiligCent | Tam sayı | |
| rechnungCent | Tam sayı | |
| steuerCent | Tam sayı | |
| sofortCent | Tam sayı | |
| faelligAm | Metin veya null | |
| imTest | true | false |
GET/v1/abo/rechnungen
VentionDesk'in işletmeye kestiği faturalar.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| rechnungen | Nesne listesi |
POST/v1/abo/resume
Dönem hâlâ sürerken bir iptali geri alın.
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| nonce * | Metin | sabit desen |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| angenommen | true | |
| ausstehend | true | false | eksik olabilir |
| hinweis | Metin | eksik olabilir |
GET/v1/abo/verlauf
Aboneliğin geçmişi: kayıt, değişiklikler, iptal.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| eintraege | Nesne listesi |
POST/v1/abo/zahlungsdaten
Stripe'ta ödeme bilgilerini değiştirin (Stripe'a yönlendirir).
Erişim işletme sahibi
Gövde (JSON)
| Alan | Tür | Not |
|---|---|---|
| nonce * | Metin | sabit desen |
Yanıt
| Alan | Tür | Not |
|---|---|---|
| url | URL |
GET/v1/abo/zahlungsmittel
Abonelik için kayıtlı ödeme yöntemi.
Erişim işletme sahibi
Yanıt
| Alan | Tür | Not |
|---|---|---|
| zahlungsmittel | Nesne veya null |
Herkese açık giriş
POST/f/:publicKey
Üçüncü taraf bir sitedeki HTML formu: talep oluşturur (application/x-www-form-urlencoded).
Erişim URL'de herkese açık proje anahtarı (vd_pub_…)
Yanıt
| Alan | Tür | Not |
|---|---|---|
| ok | true | |
| ticket | Nesne |
POST/v1/contact
VentionDesk web sitesinin iletişim formu (/kontakt, künyeden bağlantılı).
Erişim herkese açık
Yanıt
| Alan | Tür | Not |
|---|---|---|
| ok | true |
POST/v1/intake/reports
Bir müşteri uygulamasının tarayıcısından bildirim, isteğe bağlı olarak ekran görüntüsüyle — herkese açık proje anahtarıyla.
Erişim x-ventiondesk-key başlığında herkese açık proje anahtarı, izin verilen kaynak
Yanıt
| Alan | Tür | Not |
|---|---|---|
| ok | true | |
| ticket | Nesne |
POST/v1/intake/tickets
Sunucudan sunucuya talep gönderme, isteğe bağlı olarak ekran görüntüsüyle — bir giriş anahtarıyla.
Erişim Bearer olarak giriş anahtarı (vd_intake_…)
Yanıt
| Alan | Tür | Not |
|---|---|---|
| ok | true | |
| ticket | Nesne |
POST/v1/signup
İşletme sahibi hesabı dahil yeni bir işletmenin kaydı.
Erişim herkese açık
Yanıt
| Alan | Tür | Not |
|---|---|---|
| ok | true | |
| E-posta | ||
| testphaseBis | Metin | |
| checkoutUrl | URL veya null | eksik olabilir | Varsayılan: null |
MCP
GET/.well-known/oauth-protected-resource
Korumalı kaynak meta verileri (RFC 9728): bir yapay zekâ uygulamasının oturum açması için MCP adresi ve yetkilendirme sunucusu (Supabase Auth).
Erişim herkese açık
GET/.well-known/oauth-protected-resource/mcp
Aynı meta veriler kaynağın yolu altında — yolu ekleyen istemciler için.
Erişim herkese açık
ALL/mcp
POST dışındaki her yöntem 405 ve Allow: POST ile yanıt verir.
Erişim herkese açık
POST/mcp
HTTP üzerinden MCP sunucusu (durumsuz): Claude için araçlar, bir ajan anahtarı veya bağlı bir yapay zekâ uygulamasının token'ı ile. Geçerli oturum açma olmadan 401, WWW-Authenticate ve meta verilere giden yolla.
Erişim Bearer olarak ajan anahtarı (vd_live_…) veya bağlı bir yapay zekâ uygulamasının token'ı
Webhook'lar
POST/webhooks/errors/:provider/:integrationId
Başlıkta imza bulunan bir hata izleyicinin webhook'u (Sentry).
Erişim sağlayıcı imzası
POST/webhooks/errors/:provider/:integrationId/:token
URL'de sır bulunan bir hata izleyicinin webhook'u (Bugsnag, Rollbar).
Erişim URL'de sır
POST/webhooks/stripe/:orgId
Bir işletmenin kendi Stripe hesabının Stripe webhook'u: faturaların ödemelerini ve iadelerini kaydeder.
Erişim Stripe-Signature imzası
Operasyon ve ödeme bağlantısı
GET/api/health
Hizmetin canlılık sinyali — süreç çalıştığı sürece yanıt verir.
Erişim herkese açık
GET/api/health/ready
Hazırlık: hangi hizmetlerin yapılandırıldığını bildirir; veritabanı olmadan “degraded”.
Erişim herkese açık
GET/pay/:token
Bir faturanın ödeme bağlantısı: Stripe ödeme sayfasına yönlendirir (303). Bağlantı fatura e-postasında ve PDF'te bulunur.
Erişim URL'de token
GET/pay/:token/abgebrochen
Ödeme Stripe'ta iptal edildiğinde dönüş sayfası.
Erişim URL'de token
GET/pay/:token/danke
Stripe'ta başarılı ödemeden sonra dönüş sayfası.
Erişim URL'de token