İçeriğe geç

Olaylar

Her olayın aynı beş alanı vardır:

Alan Tür Anlamı
id UUID Olayın kimliği; Quatlas-Event-Id başlığında da var. Aynı şirkete anlatılan aynı olgu her zaman aynı kimliği taşır: tekilleştirmeyi buna göre yapın.
type string Olayın türü; Quatlas-Event-Type başlığında da var.
occurredAt date-time (UTC) Olgunun gerçekleştiği an.
livemode boolean Deneme alanı olayında ve webhook.test olayında false.
data object Olayın ilgili olduğu kayıtlar ve türünün taşıdığı birkaç olgu.

data her zaman yedi tanımlayıcı alan taşır; geçerli değilse her biri null olur:

Alan Tür Anlamı
shipmentRequestId UUID ya da null Talep.
requestNumber string ya da null Talebin referans numarası (REQ-048213).
externalReference string ya da null Talebin sizdeki numarası; yalnız talebin sahibi şirketinizse (gönderici taraf).
dealId UUID ya da null Anlaşma, oluştuktan sonra.
dealNumber string ya da null Anlaşmanın referans numarası (DEAL-206447), oluştuktan sonra.
quoteNumber string ya da null Anlaşma oluştuktan sonra kazanan teklifin referans numarası (QTE-731905); request.bid_received olayında gelen teklifin numarası.
shipmentNumber string ya da null Operasyonun referans numarası (SHPT-012618), anlaşma canlıya geçtikten sonra.

Gövdeler bilerek incedir: hiçbir zaman fiyat, taraf adı, yer ya da belgenin içeriği taşımaz. Ayrıntıyı API’den, aşağıda adı geçen kapsamla okuyun.

Olay talebin sahibi olan şirkete gidiyorsa ve talepte metadata varsa, data kendi alanlarınızı metadata olarak da taşır. Başka kimseye gönderilmez: aynı anlaşmanın taşıyıcıya giden teslimatları onu hiç taşımaz.

Olay Ne zaman Kime Ek data Ayrıntı için
request.published Talep pazara çıktı. Talebin sahibi GET /shipment-requests/{id} (requests:read)
request.bid_received Talebe bir teklif geldi. Talebin sahibi bidCount GET /shipment-requests/{id} (requests:read)
request.awarded Talep verildi ve bir anlaşma açıldı. Talebin sahibi ve teklifi kazanan taşıyıcı GET /deals/{id} (deals:read)
request.cancelled Talep uygulamada ya da API’den iptal edildi. Talebin sahibi reason GET /shipment-requests/{id} (requests:read)
request.updated Talebin ilanı değişti (uygulamada ya da API’den) ya da metadata, sipariş numarası veya masraf merkezi API’den değişti. API’den bir güncelleme tek bir olay doğurur ve değiştirdiği her şeyi sayar. Talebin sahibi changedFields, revision GET /shipment-requests/{id} (requests:read)
deal.live Kapanış odası bitti, operasyon başladı. İki taraf GET /deals/{id} (deals:read)
shipment.milestone Bir kilometre taşı kaydedildi. İki taraf milestoneType, milestoneAt GET /deals/{id}/tracking (tracking:read)
shipment.eta_changed Taşıyıcı teslim tahminini güncelledi. İki taraf GET /deals/{id}/tracking (tracking:read)
shipment.delivered Sefer, yükün tamamı ya da bir kısmı teslim edilerek bitti. İki taraf GET /deals/{id}/tracking (tracking:read)
document.uploaded Anlaşmaya bir belge yüklendi. İki taraf documentId, category GET /deals/{id}/documents (documents:read)
cost.approved Bir ek maliyet onaylandı. İki taraf GET /deals/{id}/costs (costs:read)
invoice.issued Şirketinize bir komisyon faturası kesildi. Yalnız faturanın alıcısı invoiceId, invoiceNumber Uygulamada (v1’de fatura uç noktası yok)
webhook.test Biri Test gönder’e bastı. Denenen abonelik subscriptionId, integrationId

Abonelik istediği olay türlerini seçer; webhook.test seçilmez, istek üzerine gönderilir. v1 içinde yeni olay türleri eklenebilir; bir tür asla kaldırılmaz ya da yeniden adlandırılmaz. Bilmediğiniz türleri yok sayın.

Alan Olay Tür Anlamı
bidCount request.bid_received integer Talepteki o anki açık teklif sayısı. Yalnız sayı: kimin teklif verdiği ya da teklifin ne olduğu asla yazmaz.
reason request.cancelled string ya da null Talep sahibinin verdiği gerekçe, varsa.
changedFields request.updated string dizisi Değişen: origin, destination, transportMode, modePolicy, cargo, schedule, incoterm ya da notes (ilan); purchaseOrderNumber, costCenter ya da metadata (kendi kayıtlarınız).
revision request.updated integer Değişiklikten sonra ilanın revizyonu; yalnız ilan değişince artar.
metadata Talep sahibine giden her olay metin değerli nesne Talepteki metadata’nız, varsa. Başka şirkete hiç gönderilmez.
milestoneType shipment.milestone string Loaded, Departed, Arrived, InTransit, AtCustoms, ModeHandover, OutForDelivery, Delivered ya da Exception.
milestoneAt shipment.milestone date-time (UTC) Kilometre taşının gerçekleştiği an.
documentId document.uploaded UUID Belge; GET /documents/{id}/download için.
category document.uploaded string Belgenin kategorisi, örneğin CommercialInvoice, PackingList ya da BillOfLading.
invoiceId invoice.issued UUID Fatura.
invoiceNumber invoice.issued string Faturanın numarası.
subscriptionId webhook.test UUID Denenen abonelik.
integrationId webhook.test UUID Aboneliğin entegrasyonu.

v1 içinde data alanına yeni alanlar eklenebilir. Bilmediklerinizi yok sayın.

request.bid_received
{
"id": "<olay-kimliği>",
"type": "request.bid_received",
"occurredAt": "2026-10-13T10:02:11Z",
"livemode": true,
"data": {
"shipmentRequestId": "<talep-kimliği>",
"requestNumber": "REQ-048213",
"externalReference": "EBA-2026-000123",
"dealId": null,
"dealNumber": null,
"quoteNumber": "QTE-731905",
"shipmentNumber": null,
"bidCount": 3
}
}
request.updated, bir değişiklikten sonra
{
"id": "<olay-kimliği>",
"type": "request.updated",
"occurredAt": "2026-10-13T11:15:42Z",
"livemode": true,
"data": {
"shipmentRequestId": "<talep-kimliği>",
"requestNumber": "REQ-048213",
"externalReference": "EBA-2026-000123",
"dealId": null,
"dealNumber": null,
"quoteNumber": null,
"shipmentNumber": null,
"changedFields": ["cargo", "schedule"],
"revision": 2,
"metadata": { "costCenter": "LOJ-210" }
}
}
request.awarded, taşıyıcının aldığı hâliyle
{
"id": "<olay-kimliği>",
"type": "request.awarded",
"occurredAt": "2026-10-14T09:02:10Z",
"livemode": true,
"data": {
"shipmentRequestId": "<talep-kimliği>",
"requestNumber": "REQ-048213",
"externalReference": null,
"dealId": "<anlaşma-kimliği>",
"dealNumber": "DEAL-206447",
"quoteNumber": "QTE-731905",
"shipmentNumber": null
}
}
document.uploaded
{
"id": "<olay-kimliği>",
"type": "document.uploaded",
"occurredAt": "2026-10-15T13:20:05Z",
"livemode": true,
"data": {
"shipmentRequestId": "<talep-kimliği>",
"requestNumber": "REQ-048213",
"externalReference": "EBA-2026-000123",
"dealId": "<anlaşma-kimliği>",
"dealNumber": "DEAL-206447",
"quoteNumber": "QTE-731905",
"shipmentNumber": "SHPT-012618",
"documentId": "<belge-kimliği>",
"category": "PackingList"
}
}
webhook.test
{
"id": "<olay-kimliği>",
"type": "webhook.test",
"occurredAt": "2026-10-13T08:00:00Z",
"livemode": false,
"data": {
"subscriptionId": "<abonelik-kimliği>",
"integrationId": "<entegrasyon-kimliği>"
}
}

OpenAPI’den üretilen API başvurusu (İngilizce) her olayı başlıklarıyla listeler.