Bölüm: API referansı

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

AlanTürNot
projectUUID
projectSlugMetin
status"hold" | "todo" | "in_progress" | "question" | "review" | "done"
assignee"owner" | "staff" | "claude" | "external"
claimable"true" | "false"
maxAttemptsTam sayı≥ 1 | ≤ 20 | Varsayılan: 3
limitTam sayı≥ 1 | ≤ 100 | Varsayılan: 20
qMetinen az 1 karakter

Yanıt

AlanTürNot
tasksNesne 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)

AlanTürNot
projectIdUUID
projectSlugMetin
title *Metinen az 25 karakter
descriptionMdMetinen az 1 karakter
area"frontend" | "backend" | "design" | "infra" | "support"
dueDateTarih (YYYY-AA-GG)
estimateMinutesTam sayı> 0
triggerConditionMetinen az 1 karakter
evidenceMetinen 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

AlanTürNot
taskNesne
resultsNesne listesi
attachmentsNesne 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)

AlanTürNot
titleMetinen az 1 karakter
descriptionMdMetin 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
dueDateTarih (YYYY-AA-GG) veya null
estimateMinutesTam sayı veya null> 0
positionMetinen az 1 karakter
triggerConditionMetin 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)

AlanTürNot
maxAttemptsTam sayı≥ 1 | ≤ 20 | Varsayılan: 3
runIdUUID

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)

AlanTürNot
decision *"approved" | "rejected"
commentMdMetinen az 1 karakter | en fazla 20000 karakter
attachmentIdsUUID listesiVarsayılan: []

Yanıt

AlanTürNot
taskNesne
resultNesne

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)

AlanTürNot
state *"arbeitet" | "kontrolle" | "frage" | "master" | "blockiert" | "erledigt"
summaryMdMetinen az 1 karakter
detailsMdMetinen az 1 karakter
prUrlURL
evidenceMetinen az 1 karakter
runIdUUID

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)

AlanTürNot
projectIdUUID
projectSlugMetin
metaNesne (serbest biçimli)Varsayılan: {}

Yanıt

AlanTürNot
runNesne

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)

AlanTürNot
status *"succeeded" | "failed"
summaryMetinen az 1 karakter

Yanıt

AlanTürNot
runNesne

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

AlanTürNot
runNesne

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

AlanTürNot
issueNesne
changedtrue | 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

AlanTürNot
projectsNesne 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)

AlanTürNot
url *URLen 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

AlanTürNot
status"active" | "blocked" | "review" | "paused"
includeArchived"true" | "false"
qMetinen az 1 karakter

Yanıt

AlanTürNot
projectsNesne 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)

AlanTürNot
customerId *UUID

Yanıt

AlanTürNot
projectNesne
changedtrue | false
movedNesne

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

AlanTürNot
targetsNesne 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)

AlanTürNot
target *"production" | "staging" | "preview"
provider"vercel" | "render"

Yanıt

AlanTürNot
provider"vercel" | "render"
target"production" | "staging" | "preview"
externalIdMetin veya null
startedTam 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)

AlanTürNot
provider *"sentry" | "bugsnag" | "rollbar"
externalId *Metinen 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

AlanTürNot
issuesNesne listesi
statsNesne
sourcesNesne 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

AlanTürNot
mappingsNesne 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)

AlanTürNot
provider *"netlify" | "cloudflare_pages" | "aws_amplify" | "railway" | "flyio" | "digitalocean_app_platform"
externalId *Metinen 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

AlanTürNot
phasesNesne 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)

AlanTürNot
title *Metinen az 1 karakter | en fazla 200 karakter
startsOn *Metinsabit desen
endsOn *Metinsabit desen
sortTam 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)

AlanTürNot
titleMetinen az 1 karakter | en fazla 200 karakter
startsOnMetinsabit desen
endsOnMetinsabit desen
donetrue | false
sortTam 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

AlanTürNot
fromMetinsabit desen
toMetinsabit desen
limitTam sayı≥ 1 | ≤ 500 | Varsayılan: 200

Yanıt

AlanTürNot
entriesNesne listesi
totalSecondsTam 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

AlanTürNot
status"open" | "in_progress" | "waiting" | "resolved"
source"contact_form" | "app" | "email" | "monitor" | "portal" | "phone" | "on_site" | "stripe" | "api"
priority"low" | "normal" | "high" | "critical"
projectUUID
projectSlugMetin
customerUUID
withSla"true" | "false"
qMetinen az 1 karakter
limitTam sayı≥ 1 | ≤ 100 | Varsayılan: 50

Yanıt

AlanTürNot
ticketsNesne 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)

AlanTürNot
subject *Metinen az 3 karakter
bodyMd *Metinen az 1 karakter
source *"contact_form" | "app" | "email" | "monitor" | "portal" | "phone" | "on_site" | "stripe" | "api"
customerIdUUID veya null
projectIdUUID veya null
priority"low" | "normal" | "high" | "critical"Varsayılan: "normal"
requesterNameMetin
requesterEmailE-posta
requesterMetaNesne (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

AlanTürNot
ticketNesne
messagesNesne 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)

AlanTürNot
subjectMetinen 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"
customerIdUUID veya null
projectIdUUID veya null
assignedToUUID veya null
portalVisibletrue | 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)

AlanTürNot
bodyMd *Metinen az 1 karakter
isInternalNotetrue | falseVarsayılan: false
isDrafttrue | falseVarsayı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)

AlanTürNot
bodyMd *Metinen az 1 karakter
isInternalNotetrue | falseVarsayılan: false
isDrafttrue | falseVarsayılan: false
draftIdUUID

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)

AlanTürNot
projectId *UUID
titleMetinen 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

AlanTürNot
urlURL
expiresInSecondsTam 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)

AlanTürNot
projectIdUUID
projectSlugMetin
bodyMd *Metinen az 1 karakter
kind"idea" | "decision" | "risk"Varsayılan: "idea"

Yanıt

AlanTürNot
noteNesne

POST/v1/notes/:id/to-task

Bir nottan görev oluşturun.

Erişim işletme sahibi ve çalışanlar

Gövde (JSON)

AlanTürNot
titleMetinen az 25 karakter
assignee"owner" | "staff" | "claude" | "external" veya null

Yanıt

AlanTürNot
okfalse
errorMetin
code"note_already_converted"
taskNesne

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)

AlanTürNot
title *Metinen az 1 karakter | en fazla 200 karakter
bodyMdMetinen fazla 20000 karakter
tagsMetin listesiVarsayılan: []
potential"low" | "medium" | "high"
priority"low" | "high"
projectIdUUID veya null

Yanıt

AlanTürNot
ideaNesne

Zaman

GET/v1/time/entries

Zaman kayıtlarını okuyun.

Erişim işletme sahibi ve çalışanlar

Sorgu parametreleri

AlanTürNot
fromMetin
toMetin
projectUUID
userUUID
unbilled"true" | "false"
limitTam sayı≥ 1 | ≤ 500 | Varsayılan: 200

Yanıt

AlanTürNot
entriesNesne listesi

POST/v1/time/entries

Sonradan zaman ekleyin.

Erişim işletme sahibi ve çalışanlar

Gövde (JSON)

AlanTürNot
label *Metinen az 1 karakter
startedAt *Zaman damgası (ISO 8601)
endedAt *Zaman damgası (ISO 8601)
secondsTam sayı> 0
projectIdUUID veya null
ticketIdUUID veya null
taskIdUUID veya null
billabletrue | falseVarsayı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)

AlanTürNot
labelMetinen az 1 karakter
secondsTam sayı> 0
billabletrue | false
projectIdUUID veya null
ticketIdUUID veya null

GET/v1/time/timer

Hesabın çalışan zamanlayıcısı.

Erişim işletme sahibi ve çalışanlar

Yanıt

AlanTürNot
timerNesne veya null

POST/v1/time/timer/start

Zamanlayıcıyı başlatın.

Erişim işletme sahibi ve çalışanlar

Gövde (JSON)

AlanTürNot
labelMetinVarsayılan: ""
projectIdUUID veya null
ticketIdUUID veya null
taskIdUUID 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

AlanTürNot
projectsNesne listesi
totalsNesne

Müşteriler

DELETE/v1/customers/:id

Dosyalar dahil bir müşteriyi silin.

Erişim işletme sahibi

Yanıt

AlanTürNot
customerIdUUID
shortNameMetin
impactNesne
filesNesne
portalAccountsNesne

GET/v1/customers/:id/deletion

Bir müşteriyle birlikte nelerin kaldırılacağının önizlemesi.

Erişim işletme sahibi

Yanıt

AlanTürNot
customerIdUUID
shortNameMetin
deletabletrue | false
reasonMetin veya null
blockersNesne
impactNesne

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)

AlanTürNot
email *E-posta
displayNameMetinen az 1 karakter

Yanıt

AlanTürNot
accessNesne
mailNesne

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

AlanTürNot
revokedNesne

POST/v1/customers/:id/portal-access/:userId/invite

Müşteri portalı davetini yeniden gönderin.

Erişim işletme sahibi

Yanıt

AlanTürNot
mailNesne

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

AlanTürNot
customerUUID
projectUUID
type"pdf" | "image" | "sheet" | "contract" | "other"
qMetinen az 1 karakter | en fazla 120 karakter
limitTam sayı≥ 1 | ≤ 200 | Varsayılan: 50

Yanıt

AlanTürNot
documentsNesne 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)

AlanTürNot
nameMetinen az 1 karakter | en fazla 200 karakter
type"pdf" | "image" | "sheet" | "contract" | "other"
projectIdUUID veya null
sharedWithPortaltrue | false
tagsMetin 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

AlanTürNot
urlURL
expiresInSecondsTam 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

AlanTürNot
status"draft" | "open" | "overdue" | "paid" | "cancelled"
customerUUID
overdue"true" | "false"
limitTam sayı≥ 1 | ≤ 200 | Varsayılan: 50

Yanıt

AlanTürNot
invoicesNesne 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)

AlanTürNot
customerIdUUID
projectIdUUID veya null
paymentTermsDaysTam sayı≥ 1 | ≤ 90
vatRateTam sayı
vatScheme"standard" | "reverse_charge"
serviceFromMetinsabit desen
serviceToMetinsabit desen
serviceDateEqualsInvoiceDatetrue | falseVarsayılan: false
positionsNesne listesiVarsayı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

AlanTürNot
invoiceNesne
positionsNesne 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)

AlanTürNot
reason *Metinen az 3 karakter | en fazla 500 karakter
serviceRendered *true | false

Yanıt

AlanTürNot
invoiceNesne
releasedEntriesTam sayı≥ 0
entries"released" | "failed"
correction"stored" | "skipped" | "failed"
taxOfficeConsenttrue | 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

AlanTürNot
mail"sent" | "skipped"
reasonMetineksik olabilir
invoiceNesne

POST/v1/invoices/:id/dunning/send

Vadesi gelen hatırlatma kademesini gönderin.

Erişim işletme sahibi

Yanıt

AlanTürNot
mail"sent" | "skipped"
reasonMetineksik olabilir
invoiceNesne
levelTam 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)

AlanTürNot
settleNesne

Yanıt

AlanTürNot
invoiceNesne
pdf"stored" | "skipped" | "failed"
payment"none" | "booked" | "failed"
paymentErrorMetineksik olabilir

POST/v1/invoices/:id/payments

Bir ödeme veya geri ödeme kaydedin.

Erişim işletme sahibi

Gövde (JSON)

AlanTürNot
amountCents *Tam sayı
paidOnMetinsabit desen
method"transfer" | "stripe" | "cash" | "other"Varsayılan: "transfer"
noteMetinen 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)

AlanTürNot
description *Metinen az 1 karakter
quantity *Sayı> 0
unit"hour" | "flat"Varsayılan: "hour"
unitPriceCents *Tam sayı≥ 0
sortTam 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)

AlanTürNot
descriptionMetinen az 1 karakter
quantitySayı> 0
unit"hour" | "flat"Varsayılan: "hour"
unitPriceCentsTam sayı≥ 0
sortTam sayı

POST/v1/invoices/:id/remind

Bir ödeme hatırlatması gönderin.

Erişim işletme sahibi

Yanıt

AlanTürNot
mail"sent" | "skipped"
reasonMetineksik olabilir
invoiceNesne

POST/v1/invoices/:id/send

Kesinleştirilmiş bir faturayı e-postayla gönderin.

Erişim işletme sahibi

Yanıt

AlanTürNot
mail"sent" | "skipped"
reasonMetineksik olabilir
invoiceNesne

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)

AlanTürNot
amountCentsTam sayı> 0

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)

AlanTürNot
projectId *UUID
untilDateMetin
paymentTermsDaysTam sayı≥ 1 | ≤ 90
vatRateTam sayı
vatScheme"standard" | "reverse_charge"

Yanıt

AlanTürNot
invoiceNesne
entriesTam sayı≥ 0
hoursSayı≥ 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

AlanTürNot
quotesNesne 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)

AlanTürNot
title *Metinen az 3 karakter
customerIdUUID veya null
prospectNameMetin
prospectEmailE-posta
projectIdUUID veya null
validUntilMetin
vatRateTam sayı
vatScheme"standard" | "reverse_charge"
positionsNesne listesiVarsayı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

AlanTürNot
quoteNesne
positionsNesne 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)

AlanTürNot
titleMetinen az 3 karakter
validUntilMetin veya nullsabit 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)

AlanTürNot
description *Metinen az 1 karakter
quantity *Sayı> 0
unit"hour" | "flat"Varsayılan: "hour"
unitPriceCents *Tam sayı≥ 0
sortTam 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)

AlanTürNot
descriptionMetinen az 1 karakter
quantitySayı> 0
unit"hour" | "flat"Varsayılan: "hour"
unitPriceCentsTam sayı≥ 0
sortTam sayı

POST/v1/quotes/:id/send

Bir teklifi e-postayla gönderin.

Erişim işletme sahibi

Yanıt

AlanTürNot
mail"sent" | "skipped"
reasonMetineksik olabilir
quoteNesne

Bağlantılar

GET/v1/integrations

İşletmenin bağlı kaynakları, sırlar olmadan.

Erişim işletme sahibi ve çalışanlar

Yanıt

AlanTürNot
integrationsNesne listesi
plattformtrue | false
githubInstallierbartrue | 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)

AlanTürNot
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)

AlanTürNot
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

AlanTürNot
urlURL
signierttrue | false
bereittrue | 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

AlanTürNot
resourcesNesne 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

AlanTürNot
resourcesNesne 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

AlanTürNot
installation_idMetinsabit desen
setup_actionMetinen fazla 20 karakter
codeMetinen fazla 200 karakter
stateMetinen 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

AlanTürNot
urlURL

Hesap, ayarlar ve yönetim

GET/v1/admin/api-keys

İşletmenin API anahtarları, düz metin olmadan.

Erişim işletme sahibi

Yanıt

AlanTürNot
keysNesne 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)

AlanTürNot
name *Metinen 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
expiresAtZaman damgası (ISO 8601)

Yanıt

AlanTürNot
keyNesne
plaintextMetin

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)

AlanTürNot
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

AlanTürNot
keyNesne

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

AlanTürNot
membersNesne listesi

PATCH/v1/admin/members/:id

Bir üyenin rolünü değiştirin.

Erişim işletme sahibi

Gövde (JSON)

AlanTürNot
role *"owner" | "staff"

Yanıt

AlanTürNot
memberNesne
activeHeretrue | 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

AlanTürNot
removedNesne
account"kept" | "deleted" | "locked"

POST/v1/admin/users/invite

Bir çalışanı e-postayla davet edin.

Erişim işletme sahibi

Gövde (JSON)

AlanTürNot
email *E-posta
role *"owner" | "staff"
displayNameMetinen az 1 karakter

Yanıt

AlanTürNot
userNesne
existingAccounttrue | falseeksik 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

AlanTürNot
appsNesne listesi
alleImBetriebtrue | 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)

AlanTürNot
authorizationId *Metinen 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

AlanTürNot
appNesne

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

AlanTürNot
betriebeNesne listesi
betriebUUID
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
projekteNesne 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

AlanTürNot
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)

AlanTürNot
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

AlanTürNot
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

AlanTürNot
idUUID
role"owner" | "staff" | "customer" | "agent"
customerIdUUID veya null
displayNameMetinen az 1 karakter
emailE-posta
mfaRequiredtrue | false
intakeNesne
organizationNesne veya nulleksik olabilir | Varsayılan: null
membershipsNesne listesieksik olabilir | Varsayılan: []
supportNesne veya nulleksik olabilir
locale"de" | "en" | "zh" | "es" | "hi" | "tr" veya nulleksik 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)

AlanTürNot
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)

AlanTürNot
orgId *UUID

Yanıt

AlanTürNot
organizationNesne
role"owner" | "staff"

GET/v1/settings

Belgeler için antet dahil işletmenin ayarları.

Erişim işletme sahibi

Yanıt

AlanTürNot
companyNesne

PATCH/v1/settings

Ayarları ve anteti değiştirin.

Erişim işletme sahibi

Gövde (JSON)

AlanTürNot
company *Nesne

Yanıt

AlanTürNot
companyNesne

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)

AlanTürNot
document *"agb" | "avv"
version *Metinen 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)

AlanTürNot
aktiv *true | false
wiederoeffnentrue | 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)

AlanTürNot
absenderNameMetin veya nullen fazla 60 karakter
postfachnameMetinen fazla 40 karakter

GET/v1/settings/mail-templates

Varsayılan metinler dahil işletmenin e-posta şablonları.

Erişim işletme sahibi

Yanıt

AlanTürNot
vorlagenNesne 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)

AlanTürNot
subject *Metinen az 1 karakter | en fazla 200 karakter
html *Metinen az 1 karakter | en fazla 102400 karakter

Yanıt

AlanTürNot
kind"invoice_send" | "invoice_reminder" | "dunning" | "invoice_cancellation" | "quote_send" | "ticket_reply" | "ticket_receipt" | "ticket_internal" | "ticket_reopened" | "member_invite" | "portal_invite" | "deletion_reminder"
angepassttrue | false
subjectMetin veya null
htmlMetin veya null
aktualisiertAmMetin veya null
bereinigttrue | 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)

AlanTürNot
adresse *Metinen 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

AlanTürNot
betriebMetin
tarif"solo" | "team" | "enterprise"
abrechnung"jaehrlich" | "monatlich"
status"trial" | "active" | "past_due" | "canceled"
testphaseBisMetin veya null
laufzeitBisMetin veya null
kuendigtZumMetin veya nulleksik olabilir | Varsayılan: null
loeschungAmMetin veya nulleksik olabilir | Varsayılan: null
gesperrttrue | falseeksik olabilir | Varsayılan: false
sperrGrund"beendet" | "testphase" | "zahlungsverzug" | "anbieter" veya nulleksik olabilir | Varsayılan: null
sperreAbMetin veya nulleksik olabilir | Varsayılan: null
plaetzeTam sayı veya null
mitgliederTam sayı
stripeKundetrue | false
stripeAbotrue | falseeksik olabilir | Varsayılan: false
befreittrue | false
stripeBereittrue | false

POST/v1/abo/cancel

VentionDesk aboneliğini dönem sonunda iptal edin.

Erişim işletme sahibi

Gövde (JSON)

AlanTürNot
nonce *Metinsabit desen
grund"too_expensive" | "missing_features" | "switched_service" | "unused" | "too_complex" | "low_quality" | "customer_service" | "other"
kommentarMetinen fazla 500 karakter

Yanıt

AlanTürNot
angenommentrue
ausstehendtrue | falseeksik olabilir
hinweisMetineksik 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)

AlanTürNot
tarif *"solo" | "team" | "enterprise"
abrechnung *"jaehrlich" | "monatlich"
plaetze *Tam sayı≥ 1 | ≤ 10000
nonce *Metinsabit desen

POST/v1/abo/checkout

VentionDesk aboneliği başlatın (Stripe Checkout'a yönlendirir).

Erişim işletme sahibi

Gövde (JSON)

AlanTürNot
tarif *"solo" | "team" | "enterprise"
abrechnung *"jaehrlich" | "monatlich"

Yanıt

AlanTürNot
urlURL

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)

AlanTürNot
tarif *"solo" | "team" | "enterprise"
abrechnung *"jaehrlich" | "monatlich"
plaetze *Tam sayı≥ 1 | ≤ 10000

Yanıt

AlanTürNot
waehrungMetin
anteiligCentTam sayı
rechnungCentTam sayı
steuerCentTam sayı
sofortCentTam sayı
faelligAmMetin veya null
imTesttrue | false

GET/v1/abo/rechnungen

VentionDesk'in işletmeye kestiği faturalar.

Erişim işletme sahibi

Yanıt

AlanTürNot
rechnungenNesne listesi

POST/v1/abo/resume

Dönem hâlâ sürerken bir iptali geri alın.

Erişim işletme sahibi

Gövde (JSON)

AlanTürNot
nonce *Metinsabit desen

Yanıt

AlanTürNot
angenommentrue
ausstehendtrue | falseeksik olabilir
hinweisMetineksik olabilir

GET/v1/abo/verlauf

Aboneliğin geçmişi: kayıt, değişiklikler, iptal.

Erişim işletme sahibi

Yanıt

AlanTürNot
eintraegeNesne listesi

POST/v1/abo/zahlungsdaten

Stripe'ta ödeme bilgilerini değiştirin (Stripe'a yönlendirir).

Erişim işletme sahibi

Gövde (JSON)

AlanTürNot
nonce *Metinsabit desen

Yanıt

AlanTürNot
urlURL

GET/v1/abo/zahlungsmittel

Abonelik için kayıtlı ödeme yöntemi.

Erişim işletme sahibi

Yanıt

AlanTürNot
zahlungsmittelNesne 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

AlanTürNot
oktrue
ticketNesne

POST/v1/contact

VentionDesk web sitesinin iletişim formu (/kontakt, künyeden bağlantılı).

Erişim herkese açık

Yanıt

AlanTürNot
oktrue

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

AlanTürNot
oktrue
ticketNesne

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

AlanTürNot
oktrue
ticketNesne

POST/v1/signup

İşletme sahibi hesabı dahil yeni bir işletmenin kaydı.

Erişim herkese açık

Yanıt

AlanTürNot
oktrue
emailE-posta
testphaseBisMetin
checkoutUrlURL veya nulleksik 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

API referansı | VentionDesk Dokümanları