Geliştirici merkezi

Tica uygulamanızı güvenilir veri akışlarına bağlayın.

Entegrasyon Servisi ile Tica-app’inize bağlanan domainlerin event akışlarına abone olun; webhook ve cursor tabanlı polling ile veriyi kendi akışınızda güncel tutun.

Entegrasyona başvur Uygulama başvurusu

Tek entegrasyon, iki senkron yolu

Webhook değişiklikleri anlık iletir. Polling ise ilk aktarımı, kaçırılan teslimatları ve cursor sonrası değişiklikleri tamamlar. Her uygulama kurulumu kendi domain_id alanına bağlıdır.

Ortamlar ve kimlik doğrulama

Stage: https://stage-integration.tica.tr
Production: https://integration.tica.tr
Kimlik doğrulama: kurulumunuza tanımlı Bearer client key

Başlamadan önce

Uygulama başvuru ve ön gereksinimleri

Yeni bir Tica uygulaması için bilgilerinizi gönderin. Başvuru incelendikten sonra uygulama kaydı, webhook imzalama secret’ı ve uygun scope’lar tanımlanır.

  • HTTPS ile erişilebilen bir webhook URL’i ve hızlı bir 2xx yanıtı hazırlayın.
  • Ham gövdeyi HMAC ile doğrulayın; delivery_id alanını idempotent işleyin.
  • Polling’i yalnızca sunucu/worker üzerinden çağırın; client key’i tarayıcı veya mobil uygulamaya koymayın.
  • Stage ve production secret’larını, kurulumlarını ve yerel verilerini birbirinden ayırın.

Uygulama başvurusu

Gönderim, bilgileri [email protected] adresine e-posta taslağı olarak açar.

Webhook olayları

Şema sürümü: 1. Her teslimat ortak zarf alanlarını içerir: delivery_id, event_id, event_name, installation_id, domain_id, aggregate_type, aggregate_id, aggregate_version, occurred_at ve payload.

Sipariş

order.createdorder.updated

Numara, müşteri ve adres, durum/ödeme, tutarlar ve order_products satırları.

Ürün

product.createdproduct.updatedproduct.deleted

Ad, açıklama, fiyat, SKU/barkod, KDV, uygunluk, görsel, kategori ve marka verisi.

Ürün varyantı

product_variant.createdproduct_variant.updatedproduct_variant.deleted

Ürün bağlantısı, seçenekler, SKU/barkod, fiyat, görsel, aktiflik ve stok takibi.

Stok

stock.createdstock.updatedstock.deleted

Ürün/varyant, şube, miktar, rezerve miktar, sınırsız stok ve eşik bilgileri.

Kullanıcı

user.createduser.updated

domain_id ile ilişkilendirilmiş kullanıcı profil alanları; hassas kimlik doğrulama alanları gönderilmez.

Genişletilmiş entegrasyon

order.status_changedorder.payment_updatedorder.cancelledorder.refundedorder.deliveredstock.adjustedcategory.*brand.*campaign.*coupon.*customer.*return_request.*invoice.createdshipment.*

Değişim eventleri changed_fields ve uygun olduğunda güvenli previous_values taşır.

Olaylar en az bir kez teslim edilir. İmzayı ham gövde üzerinden doğrulayın, delivery_id için benzersiz kayıt oluşturun ve güvenle kuyruğa aldıktan sonra 2xx dönün.

Webhook sözleşmesi

Olayı soldan seçin. Sağda uygulamanıza yapılan gerçek request body ve webhook alıcınızın döndürmesi gereken response koşulu ayrı gösterilir.

order.created

{"delivery_id":"delivery_...","event_id":"...","event_name":"order.created","schema_version":1,"app_slug":"my-app","installation_id":"installation_...","domain_id":42,"domain":"","aggregate_type":"order","aggregate_id":"...","aggregate_version":1,"occurred_at":"2026-07-26T10:00:00+03:00","payload":{"order_id":"...","order_number":"1001","domain_id":42,"user_id":9,"status":"PENDING","payment_status":"PENDING","order_type":"DELIVERY","order_platform":"WEB","delivery_fee":20.0,"discount_price":0.0,"final_price":120.0,"coupon_info":{},"order_products":[{"product_id":"...","variant_id":"...","sku":"KHV-250","quantity":2,"unit_price":50.0,"total_price":100.0,"extras_price":0.0,"option_values":{},"variant_option_values":{},"extras":[],"removals":[]}],"aggregate_version":1,"created_at":"2026-07-26T10:00:00+03:00","updated_at":"2026-07-26T10:00:00+03:00","id":"..."}}

order.updated

{"delivery_id":"delivery_...","event_id":"...","event_name":"order.updated","schema_version":1,"app_slug":"my-app","installation_id":"installation_...","domain_id":42,"domain":"","aggregate_type":"order","aggregate_id":"...","aggregate_version":2,"occurred_at":"2026-07-26T10:05:00+03:00","payload":{"order_id":"...","order_number":"1001","domain_id":42,"status":"PREPARING","payment_status":"SUCCESS","payment_method":"credit_card","final_price":120.0,"order_products":[],"aggregate_version":2,"created_at":"2026-07-26T10:00:00+03:00","updated_at":"2026-07-26T10:05:00+03:00","id":"..."}}

order.status_changed

{"delivery_id":"delivery_...","event_id":"...","event_name":"order.status_changed","schema_version":1,"app_slug":"my-app","installation_id":"installation_...","domain_id":42,"aggregate_type":"order","aggregate_id":"...","aggregate_version":3,"occurred_at":"2026-07-26T10:10:00Z","payload":{"order_id":"...","order_number":"1001","domain_id":42,"status":"SHIPPED","changed_fields":["status"],"previous_values":{"status":"PREPARING"},"aggregate_version":3,"updated_at":"2026-07-26T10:10:00Z"}}

order.payment_updated

{"delivery_id":"delivery_...","event_id":"...","event_name":"order.payment_updated","schema_version":1,"app_slug":"my-app","installation_id":"installation_...","domain_id":42,"aggregate_type":"order","aggregate_id":"...","aggregate_version":4,"occurred_at":"2026-07-26T10:11:00Z","payload":{"order_id":"...","order_number":"1001","domain_id":42,"payment_status":"SUCCESS","payment_method":"credit_card","changed_fields":["payment_status"],"previous_values":{"payment_status":"PENDING"},"aggregate_version":4,"updated_at":"2026-07-26T10:11:00Z"}}

product.created

{"delivery_id":"delivery_...","event_id":"...","event_name":"product.created","schema_version":1,"app_slug":"my-app","installation_id":"installation_...","domain_id":42,"domain":"","aggregate_type":"product","aggregate_id":"...","aggregate_version":1,"occurred_at":"2026-07-26T10:00:00+03:00","payload":{"name":"Filtre Kahve","slug":"filtre-kahve","domain_id":42,"description":"250 g","base_price":50.0,"b2b_price":null,"discount_price":0.0,"original_price":0.0,"increment_factor":1.0,"weight":1.0,"barcode":null,"product_code":"KHV","buy_price":0.0,"kdv":20.0,"price_without_vat":0.0,"brand_id":null,"is_available":true,"availability_override":null,"images":[],"meta":{},"option_groups":[],"category_ids":[],"variant_count":0,"default_variant_id":null,"created_at":"2026-07-26T10:00:00+03:00","updated_at":"2026-07-26T10:00:00+03:00","id":"..."}}

product.updated

{"delivery_id":"delivery_...","event_id":"...","event_name":"product.updated","schema_version":1,"app_slug":"my-app","installation_id":"installation_...","domain_id":42,"domain":"","aggregate_type":"product","aggregate_id":"...","aggregate_version":2,"occurred_at":"2026-07-26T10:05:00+03:00","payload":{"name":"Filtre Kahve","slug":"filtre-kahve","domain_id":42,"base_price":55.0,"discount_price":0.0,"is_available":true,"images":[],"category_ids":[],"variant_count":1,"created_at":"2026-07-26T10:00:00+03:00","updated_at":"2026-07-26T10:05:00+03:00","id":"..."}}

product.deleted

{"delivery_id":"delivery_...","event_id":"...","event_name":"product.deleted","schema_version":1,"app_slug":"my-app","installation_id":"installation_...","domain_id":42,"domain":"","aggregate_type":"product","aggregate_id":"...","aggregate_version":2,"occurred_at":"2026-07-26T10:10:00+03:00","payload":{"name":"Filtre Kahve","slug":"filtre-kahve","domain_id":42,"base_price":55.0,"is_available":true,"category_ids":[],"created_at":"2026-07-26T10:00:00+03:00","updated_at":"2026-07-26T10:05:00+03:00","id":"..."}}

product_variant.created

{"delivery_id":"delivery_...","event_id":"...","event_name":"product_variant.created","schema_version":1,"app_slug":"my-app","installation_id":"installation_...","domain_id":42,"domain":"","aggregate_type":"product_variant","aggregate_id":"...","aggregate_version":1,"occurred_at":"2026-07-26T10:00:00+03:00","payload":{"product_id":"...","domain_id":42,"option_values":{"size":"250 g"},"title":"250 g","sku":"KHV-250","barcode":null,"price":50.0,"buy_price":null,"kdv":null,"b2b_price":null,"b2b_only":false,"compare_at_price":null,"cost":null,"image":null,"images":[],"is_active":true,"stock_tracking":true,"pack_size":1,"stock_anchor_variant_id":null,"option_signature":"","created_at":"2026-07-26T10:00:00+03:00","updated_at":"2026-07-26T10:00:00+03:00","id":"..."}}

product_variant.updated

{"delivery_id":"delivery_...","event_id":"...","event_name":"product_variant.updated","schema_version":1,"app_slug":"my-app","installation_id":"installation_...","domain_id":42,"domain":"","aggregate_type":"product_variant","aggregate_id":"...","aggregate_version":1,"occurred_at":"2026-07-26T10:05:00+03:00","payload":{"product_id":"...","domain_id":42,"option_values":{"size":"250 g"},"title":"250 g","sku":"KHV-250","price":55.0,"images":[],"is_active":true,"stock_tracking":true,"pack_size":1,"option_signature":"","created_at":"2026-07-26T10:00:00+03:00","updated_at":"2026-07-26T10:05:00+03:00","id":"..."}}

product_variant.deleted

{"delivery_id":"delivery_...","event_id":"...","event_name":"product_variant.deleted","schema_version":1,"app_slug":"my-app","installation_id":"installation_...","domain_id":42,"domain":"","aggregate_type":"product_variant","aggregate_id":"...","aggregate_version":1,"occurred_at":"2026-07-26T10:10:00+03:00","payload":{"product_id":"...","domain_id":42,"option_values":{"size":"250 g"},"title":"250 g","sku":"KHV-250","price":55.0,"images":[],"is_active":true,"stock_tracking":true,"pack_size":1,"created_at":"2026-07-26T10:00:00+03:00","updated_at":"2026-07-26T10:05:00+03:00","id":"..."}}

stock.created

{"delivery_id":"delivery_...","event_id":"...","event_name":"stock.created","schema_version":1,"app_slug":"my-app","installation_id":"installation_...","domain_id":42,"domain":"","aggregate_type":"stock","aggregate_id":"...","aggregate_version":1,"occurred_at":"2026-07-26T10:00:00+03:00","payload":{"variant_id":"...","branch_id":1,"domain_id":42,"quantity":10,"reserved":0,"is_unlimited":false,"low_stock_threshold":10,"created_at":"2026-07-26T10:00:00+03:00","updated_at":"2026-07-26T10:00:00+03:00","id":"..."}}

stock.updated

{"delivery_id":"delivery_...","event_id":"...","event_name":"stock.updated","schema_version":1,"app_slug":"my-app","installation_id":"installation_...","domain_id":42,"domain":"","aggregate_type":"stock","aggregate_id":"...","aggregate_version":1,"occurred_at":"2026-07-26T10:05:00+03:00","payload":{"variant_id":"...","branch_id":1,"domain_id":42,"quantity":7,"reserved":2,"is_unlimited":false,"low_stock_threshold":10,"created_at":"2026-07-26T10:00:00+03:00","updated_at":"2026-07-26T10:05:00+03:00","id":"..."}}

stock.deleted

{"delivery_id":"delivery_...","event_id":"...","event_name":"stock.deleted","schema_version":1,"app_slug":"my-app","installation_id":"installation_...","domain_id":42,"domain":"","aggregate_type":"stock","aggregate_id":"...","aggregate_version":1,"occurred_at":"2026-07-26T10:10:00+03:00","payload":{"variant_id":"...","branch_id":1,"domain_id":42,"quantity":7,"reserved":2,"is_unlimited":false,"low_stock_threshold":10,"created_at":"2026-07-26T10:00:00+03:00","updated_at":"2026-07-26T10:05:00+03:00","id":"..."}}

stock.adjusted

{"delivery_id":"delivery_...","event_id":"...","event_name":"stock.adjusted","schema_version":1,"app_slug":"my-app","installation_id":"installation_...","domain_id":42,"aggregate_type":"stock","aggregate_id":"...","aggregate_version":2,"occurred_at":"2026-07-26T10:12:00Z","payload":{"id":"...","domain_id":42,"variant_id":"...","branch_id":1,"previous_quantity":10,"quantity":7,"quantity_delta":-3,"reason":"order_reserved","reference_type":"order","reference_id":"...","changed_fields":["quantity"],"previous_values":{"quantity":10},"updated_at":"2026-07-26T10:12:00Z"}}

category.updated

{"delivery_id":"delivery_...","event_id":"...","event_name":"category.updated","schema_version":1,"app_slug":"my-app","installation_id":"installation_...","domain_id":42,"aggregate_type":"category","aggregate_id":"...","aggregate_version":2,"occurred_at":"2026-07-26T10:13:00Z","payload":{"id":"...","domain_id":42,"name":"Filtre Kahveler","slug":"filtre-kahveler","parent_id":null,"sort_order":2,"changed_fields":["name","sort_order"],"previous_values":{"name":"Kahveler","sort_order":1},"updated_at":"2026-07-26T10:13:00Z"}}

user.created

{"delivery_id":"delivery_...","event_id":"...","event_name":"user.created","schema_version":1,"app_slug":"my-app","installation_id":"installation_...","domain_id":42,"domain":"","aggregate_type":"user","aggregate_id":"9","aggregate_version":1760000000000000000,"occurred_at":"2026-07-26T10:00:00+03:00","payload":{"id":9,"email":"[email protected]","phone":"905551112233","first_name":"Ayşe","last_name":"Yılmaz","domain_id":42,"is_active":true,"is_verified":true,"is_superuser":false,"b2b":false,"branch_id":null,"allowed_menus":[],"meta":{},"lid":null,"created_at":"2026-07-26T10:00:00+03:00","updated_at":"2026-07-26T10:00:00+03:00"}}

user.updated

{"delivery_id":"delivery_...","event_id":"...","event_name":"user.updated","schema_version":1,"app_slug":"my-app","installation_id":"installation_...","domain_id":42,"domain":"","aggregate_type":"user","aggregate_id":"9","aggregate_version":1760000000000000001,"occurred_at":"2026-07-26T10:05:00+03:00","payload":{"id":9,"email":"[email protected]","phone":"905551112233","first_name":"Ayşe","last_name":"Demir","domain_id":42,"is_active":true,"is_verified":true,"is_superuser":false,"b2b":false,"branch_id":null,"allowed_menus":[],"meta":{},"lid":null,"created_at":"2026-07-26T10:00:00+03:00","updated_at":"2026-07-26T10:05:00+03:00"}}

Polling sözleşmesi

Kaynağı soldan seçin. Sağda ilk senkron (oluşturulmuş kayıtlar) ve cursor ile artımlı senkron (güncellenen kayıtlar) için ayrı request ve gerçek koleksiyon zarfındaki response örnekleri görünür.

Her çağrıda Authorization: Bearer <installation-client-key> gönderin. Polling, yeni ve güncellenmiş kayıtları ayrı endpointlerle değil, next_cursor ile ilerleyen aynı koleksiyon üzerinden taşır; cursor aynı zaman damgasındaki kayıtları (updated_at,id) ile ayırır. Bir kaydı domain_id + id ile idempotent birleştirin.