gear-complex-codeAPI Dokümantasyonu

Genel Bakış

Bu servis, MARS Gift Card API, hediye kuponu işlem kodu oluşturma, ödeme/iade işlemleri ve mutabakat raporlaması sağlar.

Base URL: https://connect.marsneo.com

API Version: v1.3

Son Güncelleme Tarihi: 10.02.2026

Content-Type: application/json

Desteklenen Diller: Türkçe (tr), İngilizce (en)


Kimlik Doğrulama (Authentication)

MARS Gift Card API, güvenli kimlik doğrulama için HMAC-SHA256 imza mekanizması kullanır.

Gerekli Header'lar

Her API isteği aşağıdaki header'ları içermelidir:

Header
Tip
Zorunlu
Açıklama

Content-Type

string

Evet

application/json

X-Lang

string

Hayır

Dil kodu (tr/en). Varsayılan: tr

X-Client-Id

string

Evet

İstemci benzersiz kimliği

X-Timestamp

integer

Evet

Unix timestamp (saniye cinsinden)

X-Signature

string

Evet

HMAC-SHA256 imzası

HMAC Signature Oluşturma

İmza aşağıdaki adımlarla oluşturulur:

Data String Oluşturma:

HMAC-SHA256 Hesaplama:

Hex Format'a Çevirme:

Örnek İmza Oluşturma (JavaScript)

Timestamp Doğrulama Kuralları

  • Timestamp, Unix epoch formatında (saniye cinsinden) olmalıdır

  • Sunucu zamanı ile timestamp arasındaki fark ±5 dakika içinde olmalıdır

  • Geçersiz timestamp durumunda 1001 hata kodu döner

İmza Doğrulama Süreci

  1. Sunucu, istemciden gelen X-Client-Id ile ilişkili CLIENT_SECRET değerini alır

  2. Gelen X-Timestamp değeri ile aynı data string'i oluşturur: "{CLIENT_ID}:{TIMESTAMP}"

  3. Kendi HMAC-SHA256 imzasını hesaplar

  4. Hesaplanan imza ile gelen X-Signature değerini karşılaştırır

  5. Eşleşme varsa istek işlenir, yoksa 1001 hata kodu döner


Endpoint Bilgileri

Tüm endpoint'ler aşağıdaki base URL'i kullanır:

Örnek Full Endpoint URL'leri:


Request Format

Request Body Format

POST istekleri için request body JSON formatında gönderilmelidir:

Request Parametreleri

Path Parametreleri

URL içinde {parametre} şeklinde belirtilir.

Örnek:

Query Parametreleri

URL sonuna ?key=value&key2=value2 şeklinde eklenir.

Örnek:

Body Parametreleri

POST istekleri için JSON body içinde gönderilir.

Parametre Detayları

Parametre
Tip
Format
Açıklama

msisdn

string

E.164

Ülke kodu dahil telefon numarası (örn: 905551112233)

coupon_id

string

UUID/Integer

Kupon benzersiz kimliği

transaction_id

string

UUID

İşlem benzersiz kimliği

transaction_code

string

8 haneli

İşlem kodu

amount_cents

integer

Pozitif

Tutar (kuruş/cent cinsinden). 5000 = 50.00 TRY

branch_code

string

Maks 10 karakter

Şube kodu

client_reference

string

Maks 100 karakter

İstemci referans numarası

date

string

YYYY-MM-DD

Tarih formatı

status

string

SUCCESS/CANCEL

İşlem durumu

page

integer

Pozitif

Sayfa numarası (varsayılan: 1)

limit

integer

1-1000 arası

Sayfa başına kayıt sayısı

Request Örneği


Response Format

Başarılı Response

Tüm başarılı yanıtlar aşağıdaki standart formatı kullanır:

Örnek Başarılı Response:

Hata Response

Hata durumlarında dönen yanıt formatı:

Validasyon Hatası Örneği:

Servis Hatası Örneği:

Response Alanları

Alan
Tip
Açıklama

responseId

string

Yanıt benzersiz kimliği (loglama ve takip için)

isSuccessful

boolean

İşlem başarı durumu

errorCode

string

Hata kodu ("0" = başarılı, diğerleri hata)

message

string

Kullanıcıya gösterilecek mesaj

data

object/array/null

Endpoint'e özgü veri

dataHash

string/null

Veri bütünlük kontrolü için hash (gelecekte kullanılacak)

challenge

string/null

Güvenlik challenge'ı (gelecekte kullanılacak)


Hata Kodları

Kimlik Doğrulama Hataları

Kod
HTTP Status
Açıklama

1001

401

Invalid signature (İmza geçersiz)

1002

401

Invalid timestamp (Timestamp geçersiz veya süresi dolmuş)

1003

401

Missing authentication headers (Kimlik doğrulama header'ları eksik)

1004

403

Client not authorized (İstemci yetkisiz)

1005

401

Client ID not found (Client ID bulunamadı)

Validasyon Hataları

Kod
HTTP Status
Açıklama

422

422

Validation failed (Girdi validasyon hatası)

400

400

Bad request (Hatalı istek formatı)

404

404

Resource not found (Kaynak bulunamadı)

409

409

Conflict (Çakışma - örn: kod zaten kullanılmış)

Servis Hataları

Kod
HTTP Status
Açıklama

500

500

Internal server error (Sunucu hatası)

503

503

Service unavailable (Servis kullanılamıyor)

504

504

Gateway timeout (Ağ geçidi zaman aşımı)

1000

500

General error (Genel hata)


API Endpoints

1

İşlem Kodu Oluştur (Generate Transaction Code)

Bir kupon için tek kullanımlık 8 haneli işlem kodu üretir (5 dakika geçerli).

Endpoint: POST /api/v1/gift-card/{coupon_id}/transaction-code

Path Parametreleri:

Parametre
Tip
Zorunlu
Açıklama

coupon_id

string

Evet

Kupon ID'si

Request Body:

Alan
Tip
Zorunlu
Açıklama

msisdn

string

Evet

Telefon numarası (ownership kontrolü için)

Örnek İstek:

Başarılı Response (201 Created):

Hata Durumları:

  • 400: Kupon aktif değil veya bakiye yetersiz

  • 404: Kupon bulunamadı veya MSISDN eşleşmiyor

  • 409: Aktif (süresi dolmamış) bir kod zaten mevcut

2

Ödeme İşlemi (Pay Transaction)

İşlem kodu ile kupon bakiyesinden ödeme alır.

Endpoint: POST /api/v1/gift-card/transactions/pay

Request Body:

Alan
Tip
Zorunlu
Açıklama

transactionCode

string

Evet

8 haneli işlem kodu

amountCents

integer

Evet

Ödeme tutarı (kuruş cinsinden)

branchCode

string

Hayır

Şube kodu

clientReference

string

Hayır

İstemci referans numarası

Örnek İstek:

Başarılı Response (200 OK):

Hata Durumları:

  • 400: İşlem kodu kullanılmış veya tutar geçersiz

  • 404: İşlem kodu bulunamadı

  • 409: İşlem kodu süresi dolmuş

  • 422: Bakiye yetersiz

3

İade İşlemi (Refund Transaction)

Tamamlanmış bir işlemi iade eder.

Endpoint: POST /api/v1/gift-card/transactions/refund

Request Body:

Alan
Tip
Zorunlu
Açıklama

transactionId

string

Evet

Orijinal işlem ID'si (UUID)

amountCents

integer

Evet

İade tutarı (kuruş cinsinden)

branchCode

string

Hayır

Şube kodu

clientReference

string

Hayır

İstemci referans numarası

Örnek İstek:

Başarılı Response (200 OK):

Hata Durumları:

  • 400: İade tutarı orijinal tutardan büyük veya işlem zaten iade edilmiş

  • 404: Orijinal işlem bulunamadı

  • 409: İşlem aynı anda başka bir süreçte iade ediliyor

4

Mutabakat Özeti (Reconciliation Summary)

Belirli bir günün toplam işlem sayısı ve tutarını döner.

Endpoint: GET /api/v1/gift-card/reconciliation/summary

Query Parametreleri:

Parametre
Tip
Zorunlu
Açıklama

date

string

Evet

Tarih (YYYY-MM-DD formatında)

Örnek İstek:

Başarılı Response (200 OK):

Hata Durumları:

  • 422: Tarih formatı geçersiz

  • 404: Belirtilen tarih için kayıt bulunamadı

5

Mutabakat Detayları (Reconciliation Details)

Belirli bir günün tüm işlem satırlarını listeler.

Endpoint: GET /api/v1/gift-card/reconciliation/summary/details

Query Parametreleri:

Parametre
Tip
Zorunlu
Açıklama

date

string

Evet

Tarih (YYYY-MM-DD formatında)

status

string

Hayır

İşlem durumu (SUCCESS/CANCEL). Boş ise tümü

page

integer

Hayır

Sayfa numarası (varsayılan: 1)

limit

integer

Hayır

Sayfa başına kayıt (varsayılan: 100, maks: 1000)

Örnek İstek:

Başarılı Response (200 OK):

Hata Durumları:

  • 422: Tarih formatı veya parametreler geçersiz

  • 404: Belirtilen tarih için kayıt bulunamadı


Kullanım Örnekleri

Senaryo 1: Kupon ile Ödeme

Senaryo 2: İade İşlemi

Senaryo 3: Günlük Mutabakat

© 2026 MARS Finansal Yazılım A.Ş. Tüm hakları saklıdır. Bu dokümanın izinsiz kopyalanması, çoğaltılması veya dağıtılması yasaktır.

Last updated