Teknik Entegrasyon
Maxxla ile POS ve kasa entegrasyonu nasıl yapılır?
Bu sayfa, POS/kasa sistemi teknik ekibinin Maxxla’ya bağlanırken hangi verileri göndereceğini, hangi olayları dinleyeceğini ve testte neyi doğrulayacağını açıklar.
En kısa doğru özet
Akış
Entegrasyonun çalışma modeli
Entegrasyonun amacı POS/kasa sistemini Maxxla’nın müşteri, web menü, sipariş ve MAXX PARA akışlarıyla tutarlı hale getirmektir.
1. İşletme eşleştirme
Maxxla tarafındaki business_id ile POS/kasa tarafındaki mağaza veya şube kodu bire bir eşleştirilir.
2. Ürün ve fiyat aktarımı
POS sistemi ürün adı, kategori, fiyat, aktiflik ve stok/satış durumu bilgisini Maxxla’ya düzenli gönderir.
3. Sipariş oluşturma
Maxxla, web menü veya uygulama siparişini POS sistemine açar; POS sisteminden durum güncellemeleri geri alınır.
4. MAXX PARA işlemi
Satış tamamlandığında kazanım veya kullanım bilgisi kuruş hassasiyetinde Maxxla’ya iletilir.
5. Mutabakat ve log
Her işlem tekil external_order_id ile izlenir; tekrar gönderimler idempotent kabul edilir.
Zorunlu Alanlar
Her entegrasyonda ortak veri sözlüğü
POS tarafı bu alanları doğru gönderirse sipariş, mutabakat ve MAXX PARA süreçleri izlenebilir olur.
business_idMaxxla işletme/şube ID’si.
external_store_idPOS/kasa tarafındaki mağaza veya şube kodu.
external_product_idÜrün için POS tarafındaki tekil ID.
external_order_idSipariş veya fiş için POS tarafındaki tekil ID.
total_amountİndirimlerden önce/sonra net satış tutarı; kuruş hassasiyetinde.
used_maxx_paraMüşterinin kullandığı MAXX PARA tutarı. Yoksa 0.00 gönderilir.
earned_maxx_paraSatıştan kazanılan MAXX PARA tutarı. Maxxla kural motoru hesaplıyorsa boş bırakılır.
statusSipariş durumu: pending, confirmed, preparing, ready, out_for_delivery, delivered, cancelled.
API Örnekleri
POS ekibinin uygulayacağı temel istekler
Endpoint isimleri işletmeye verilen sandbox dokümanında netleştirilir. Aşağıdaki payload yapısı entegrasyonda beklenen veri mantığını gösterir.
Ürün/fiyat senkronizasyonu
POST /pos/products/sync
Authorization: Bearer <api_key>
Idempotency-Key: product-sync-2026-04-30-001
{
"business_id": "maxxla-business-id",
"external_store_id": "SUBE-001",
"products": [
{
"external_product_id": "SKU-1001",
"name": "Et Tantuni",
"category": "Tantuni",
"price": 270.00,
"currency": "TRY",
"is_active": true,
"is_available": true,
"barcode": "8690000000001"
}
]
}Sipariş durum güncelleme
POST /pos/orders/status
Authorization: Bearer <api_key>
Idempotency-Key: order-status-ORD-123-ready
{
"business_id": "maxxla-business-id",
"external_order_id": "POS-FIS-123",
"maxxla_order_id": "maxxla-order-id",
"status": "ready",
"updated_at": "2026-04-30T14:30:00+03:00"
}MAXX PARA kazanım bildirimi
POST /pos/maxx-para/earn
Authorization: Bearer <api_key>
Idempotency-Key: earn-POS-FIS-123
{
"business_id": "maxxla-business-id",
"external_order_id": "POS-FIS-123",
"customer_phone": "05XXXXXXXXX",
"total_amount": 245.00,
"earned_maxx_para": 12.25,
"description": "Sipariş #POS-FIS-123 ile kazanıldı"
}MAXX PARA kullanım bildirimi
POST /pos/maxx-para/redeem
Authorization: Bearer <api_key>
Idempotency-Key: redeem-POS-FIS-124
{
"business_id": "maxxla-business-id",
"external_order_id": "POS-FIS-124",
"customer_id": "maxxla-customer-id",
"gross_total": 200.00,
"used_maxx_para": 60.00,
"grand_total": 140.00
}Güvenlik
Teknik kurallar
Canlı entegrasyonda API anahtarı, imza ve idempotency olmadan işlem alınmaz.
- API anahtarı sunucu tarafında saklanır; mobil istemciye veya tarayıcıya gömülmez.
- Her write isteğinde `Idempotency-Key` gönderilir.
- Tutarlar `12.25` formatında ve TRY para birimiyle gönderilir.
- İptal/iade işlemleri ayrı ters kayıt olarak gönderilir; geçmiş kayıt silinmez.
- Maxxla, MAXX PARA kazanma ve kullanma kayıtlarını platform logu olarak saklar; ticari sorumluluk işletme ile müşteri arasındaki alışveriştedir.
Webhook imza kontrolü
X-Maxxla-Signature: sha256=<hex_digest>
X-Maxxla-Timestamp: 1777520000
signature = HMAC_SHA256(
secret,
timestamp + "." + raw_request_body
)Test Planı
Canlıya çıkmadan önce geçilecek checklist
Bu liste tamamlanmadan entegrasyonu canlı işletmeye açmayız. Böylece kasa, sipariş ve MAXX PARA kayıtları kuruşu kuruşuna tutar.
Test işletmesi ve test API anahtarı alınır.
Ürün listesi en az bir kategori ve bir aktif ürünle senkronize edilir.
Paket servis, gel-al ve masaya servis siparişi ayrı ayrı test edilir.
Tamamı kart/nakit, kısmi MAXX PARA ve tamamı MAXX PARA kullanım senaryoları denenir.
Aynı external_order_id iki kez gönderildiğinde çift kayıt oluşmadığı doğrulanır.
İptal ve iade durumunda MAXX PARA kazanım/kullanım ters kayıtları kontrol edilir.
Canlıya geçmeden önce son 20 test işlemi Maxxla ekibiyle mutabık kalınır.
Teknik ekibinizle 30 dakikalık başlangıç görüşmesi yapalım.
İşletme tipinizi, POS/kasa altyapınızı ve sipariş akışınızı birlikte netleştirip sandbox bilgilerini paylaşalım.