Tami üzerinden gerçekleşen işlemlerin son durumunu ve komisyon bilgilerini öğrenmek için kullanılacak servistir. Belirli bir işlem özelinde veya belirli tarih aralığındaki tüm işlemler sorgulanabilir.
İşlemin son durumu ve bu siparişle ilgili yapılan tüm işlemlere ait bilgileri gösteren servistir. Her bir işlemin son durumu görüntülenmek istenirse işlem detay görüntüleme parametresi false gönderilir.
Sandbox test portaline https://sandbox-portal.tami.com.tr adresinden ulaşabilirsin. Test kullanıcıları ile test portale giriş yapıldığında bu kullanıcıya bağlı işyeri tarafından gerçekleştirilen işlemleri görüntülenebilir. İşlemler iptal/iade edilebilir. Test kullanıcı bilgileri için TeknikDestek@tami.com.tr adresine ulaşabilirsin.
Bir çok işlem tipi için gönderilen isteğin header bilgisine PG-Auth-Token eklenmelidir. PG-Auth-Token değeri “MerchantNumber:TerminalNumber:Hash” değerlerinden oluşur.
Burada hash hesabı yapılırken üye işyerine ait merchantNumber, terminalNumber ve secretKey bilgileri sha256 ile hashleyip stringe çevrilerek elde edilir.
Tami test portalına https://sandbox-portal.tami.com.tr adresinden erişebilirsiniz. Bu adresten yukarıda iletilen kullanıcılar ile portal ekranını görüntüleyebilirsin.
Üretim ortamı bilgileriniz için https://portal.tami.com.tr adresinden üye olabilir veya e-ticaret destek birimine başvurabilirsin.
Test ortamında yapılacak çalışmalarda "https://sandbox-paymentapi.tami.com.tr/payment/orderQuery" url'i kullanılacaktır.
Üretim ortamında yapılacak çalışmalarda ise "https://paymentapi.tami.com.tr/api/v0/payment/orderQuery" url'i kullanılacaktır.
| Alan | Format | (O)psiyonel/(Z)orunlu / (Ş)artlı | Açıklama |
|---|---|---|---|
| orderId | String | Ş | Sorgulanmak istenen satış işlemine ait sipariş numarası bilgisidir. StartDate, endDate girilmezse bu alanın iletilmesi zorunludur. |
| isTransactionDetail | String | O | Eğer true gönderilirse siparişin başından geçen tüm işlemler paylaşılacaktır. Eğer false , boş ya da hiç gönderilmezse siparişin sadece son statüsüne ait bilgiler iletilir. |
| startDate | String | Ş | Eğer sipariş numarasına göre değil tarih aralığına göre sorgulama yapılmak istenirse bu alan zorunludur. Örnek format: "DD-MM-YYYY HH:MM:SS"Başlangıç bitiş tarihi arasına maximum 30 günlük bir aralık verilebilir. |
| endDate | String | Ş | Eğer sipariş numarasına göre değil tarih aralığına göre sorgulama yapılmak istenirse bu alan zorunludur. Örnek format: "DD-MM-YYYY HH:MM:SS" |
| page | Integer | O | Sorgulanmak istenen tarih aralığındaki işlemler sayfa sayfa çekilmek istenirse iletilir. İlk sayfanın datası çekilirken “0” gönderilmelidir. |
| size | Integer | O | Sayfalandırma yapıldığında bir sayfada kaç işlem gösterilmesi isteniyorsa bu değerle iletilir. |
| sortField | String | O | Sorgulama sonucunun belirli bir değere göre sıralı gelmesi için kullanılır. Örn: “orderDate” |
| sortDirection | Enum | O | Dönen cevaptaki sıralamanın artan, azalan olarak sıralanmasını belirleyen alandır. Alabileceği değerler; ASC, DESC |
| securityHash | String | Z | Dokumanda belirtilen şekilde hesaplanıp iletilmesi beklenen değerdir. Eksik veya hatalı iletilirse sorgulama yapılamaz. |
| Parametre Adı | Format | Açıklama |
|---|---|---|
| success | String | Sorgulama işleminin sonucudur. True olması istenen işleme ait veriler dönülür |
| errorCode | String | Success alanı false olması durumunda bu alan cevapta yer alır ve alınan hatanın kodudur |
| errorMessage | String | Success alanı false olması durumunda bu alan cevapta yer alır ve alınan hatanın açıklamasıdır |
| systemTime | DateTime | Yapılan işlem sorgulamanın zamanıdır |
| correlationId | String | Üye işyeri tarafından iletilen sorgulama işleminin işlem numarasıdır |
| amount | Number | İşlemin işlem yapılabilir tutar bilgisidir. Örneğin 100 tllik bir işlem 20 tllik bir iade transactionı geçirdiyse tutar 80 tl görünecektir. |
| orderDate | dateTime | Satış işleminin oluşturulma tarihidir |
| currency | String | İşlemin döviz kodudur |
| installmentCount | Number | İşlemin taksit sayısıdır |
| orderStatus | String | Siparişin son işlem tipini gösterir. AUTH/REVERSE/REFUND/PARTIAL_REFUND/PRE_AUTH/POST_AUTH/CHARGEBACK değerlerini alabilir |
| PaymentStatus | String | İşlemin son statüsünü gösterir. NOT_COMPLETED/SUCCESS/FAIL/TIME_OUT değerlerini alabilir |
| commissionRate | Big Decimal | İşleme ait komisyon oranı bilgisidir. |
| commissionAmount | Big Decimal | İşleme ait hesaplanmış komisyon tutarını ifade eder |
| transactionFee | Big Decimal | İşlem ücreti bilgisidir |
| holdPeriod | Integer | İşlemin bloke gün sayısını ifade eder |
| card | Object | İşlem yapan karta ait bilgiler içermektedir. |
| card/binNumber | String | İşlem yapılan kartın ilk 8 hanesi |
| card/cardBrand | String | Kart ödül grubu bilgisidir. BONUS, WORLD, AXESS vb. |
| card/cardOrganization | String | Kart organizasyon bilgisidir. AMEX, TROY, MASTERCARD, VISA vb. |
| card/cardType | String | Kart tipidir. CREDIT, DEBIT |
| transactions | List | isTransactionDetail='true' gönderilirse ilgili orderın başından geçen tüm transaction verisi dönülecektir. |
| transactions/amount | Number | ilgili kaydın tutarı |
| transactions/transactionType | String | ilgili kaydın işlem türü |
| transactions/transactionStatus | String | ilgili kaydın başarı durumu |
| transactions/transactionDate | dateTime | ilgili kaydın tarihi |
| transactions/reason | String | İşlem iade/iptal edilirken bir reason alanı gönderilirse sorgulamada da bu alan dönülecektir. |
| transactions/bankAuthCode | String | Banka Onay Kodu |
| transactions/bankReferenceNumber | String | İşleme ait Retref numarası |
| transactions/fraudStatus | String | Fraud kontrolleri sonrasındaki statü durumudur |
| securityHash | String | İşlemin sonucunun doğru kaynaktan geldiğini belirlemek için kullanılacak değer. Belgeler bunun nasıl hesaplanması gerektiğini belirtir. |
| pageInfo | Object | Dönen cevaptaki işlemlerin sayfalandırılması ile ilgili bilgiler içerir |
| pageInfo/page | Integer | Sorgulama yapılan datanın döndüğü sayfa sayısını ifade eder |
| pageInfo/size | Integer | Sorgulama yapılan data için dönen cevaptaki sayfada satış işlem adedini belirtir. |
| pageInfo/totalElements | Integer | Requestte sayfa sayfa dönüş istendiyse, istenen tarih aralığındaki toplam işlem adedini ifade eder.Not: Her farklı sipariş numarası 1 işlem demektir. İşleme ait iptal/iade gibi işlemler bu işlem sayısına dahil edilmez |
| pageInfo/totalPages | Integer | Requestte sayfa sayfa dönüş istendiyse istenen size’a göre, girilen tarih aralığında toplam kaç sayfa olduğunu ifade eder |
| pageInfo/isFirst | Boolean | Sorgulama cevabında gösterilen sayfa, ilk sayfa ise true olarak gösterilir. Alabileceği değerler true/false |
| pageInfo/isLast | Boolean | Sorgulama cevabında gösterilen sayfa, son sayfa ise true olarak gösterilir. Alabileceği değerler true/false |
| pageInfo/hashNext | Boolean | Sorgulama cevabında gösterilecek farklı sayfa var ise true olarak gösterilir. Alabileceği değerler true/false |
| pageInfo/hashPrevious | Boolean | Sorgulama cevabında gösterilen sayfadan önce farklı bir sayfa varsa true gösterilir. Alabileceği değerler true/false |
Yapılacak servis isteklerinde ve gelen servis cevaplarında securityHash alanının hesaplanması için buradaki dokümantasyondan yararlanabilirsin.
Aşağıda, çeşitli yazılım dilleri kullanılarak yazılmış özel kod örneklerinin linkleri verilmiştir. Tercih ettiğiniz programlama diline ait link üzerinden, önceden belirlenmiş değerlerle yazılmış olan kodları detaylı bir şekilde inceleyebilirsin.
Bu örnekler, ilgili işlem tipini içeren kodları içermektedir ve farklı dillerde yazıldığı için çeşitli yaklaşımları ve pratikleri de gözlemleyebilirsin. Bu sayede tercih ettiğiniz programlama diline dair daha iyi anlaşılır ve özgün örneklerle çalışma imkanı bulabilirsin.
C# Kod Örnekleri için tıklayınız.
VB.Net Kod Örnekleri için tıklayınız.
Java Kod Örnekleri için tıklayınız.
PHP Kod Örnekleri için tıklayınız.
NodeJS Kod Örnekleri için tıklayınız.
Unutmayın ki bu örnekler ön tanımlı değerlerle yazılmıştır ve gerçek projelerde kullanımı için gerekli uyarlama ve güvenlik önlemleri alman gerekebilir.
Hata kodları listesine bu sayfadan ulaşabilirsin.
Test kartları listesine bu sayfadan ulaşabilirsin.