iyzipay

package module
v1.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 23, 2024 License: MIT Imports: 9 Imported by: 0

README

Go Client for Iyzico API

gopher

Proje Durumu Go Rapor Kartı GoDoc Lisans

iyzipay paketi, Iyzico API ile etkileşim kurmak için bir Go istemcisi sağlar. Bu paket, Non3DS istekleri, BIN kontrolü ve ödeme sorgulamaları gibi çeşitli işlevleri destekler.

Kurulum

Paketi yüklemek için go get komutunu kullanın:

go get github.com/JspBack/iyzipay-go

Özellikler

  • Non3DS İstekleri: Non3DS ödeme isteklerini işleyin.
  • BIN ve taksit Kontrolü: Kredi kartı BIN'lerini ve taksitlerini doğrulayın.
  • Ödeme Sorgulama: Ödeme durumlarını sorgulayın.
  • 3DS İstekleri: 3D Secure işlemleri desteği.
  • PWI Desteği: Ödeme Penceresi Entegrasyonu (ödemek için yeni bir ekran açar).
  • Ödeme Formu Entegrasyonu: Sorunsuz ödeme işleme için ödeme formlarını entegre edin.
  • MarketPlace API'leri: MarketPlace API'leri ile etkileşim. (yada MerchantPlace)
  • Kart Saklama: Kullanıcıların kredi kartı bilgilerini güvenli bir şekilde saklayın ve tekrar eden ödemeler için kullanın.
  • Abonelik API'leri: Abonelik hizmetlerini yönetin.
  • Iyzilink API'leri: Iyzilink hizmetleri ile entegrasyon.
  • Ceppos App2App entegrasyonu

Planlanan Özellikler

  • Ekstra Hizmetler: Diğer ekstra hizmetler eklenecektir.

Basit Kullanımı

// Olabildiğince basit tuttum 😎
apikey := os.Getenv("IYZIPAY_API_KEY")
apiSecret := os.Getenv("IYZIPAY_API_SECRET")

client, err := iyzipay.New(apikey, apiSecret)
if err != nil {
    fmt.Println(err)
}

binReq := &iyzipay.BinRequest{
    Locale:         "tr",
    BinNumber:      "454671",
    ConversationId: "123456789",
}

binRes, err := client.BinControlRequest(binReq)
if err != nil {
    fmt.Println(err)
}

if binRes.Status == "success" {
    fmt.Println("Bin Number: ", binRes.CardAssociation) // VISA
    return
}

Örnekler

Örnekler /examples dosyası içerisinde.

Notlar

Şu an hala geliştirme aşamasında muhtemelen hatalara denk gelebilirsiniz.(Ayrıca ilk go paketim 😄).
App2App entegrasyonu mobile özel geliştirilmiş sanırım ama go'da da mobile build alınabildiği için ekledim.

Katkıda Bulunma

Bir pull request oluşturarak projeye destek olabilirsiniz. 🙂

Bilinen Problemler

[GENEL]

  • Unauthorized (401) hataları panic oluşturuyor (hata formatı farklı olduğu için).
  • Pazaryeri, Abonelik, İptal ve iade, Iyzilink, App2App örnekleri yok (test edilmediler veya hatalı çalışıyorlar).

[IYZILINK]

  • Iyzilink entegrasyonunda IyzilinkUpdate,IyzilinkDelete çalışmıyor 'sistem hatası' dönüyor.
  • Iyzilink entegrasyonunda IyzilinkGetDetail, IyzilinkGetList'ten gelen veri filtrelenerek alınıyor. Bu doğru bir kullanım değil ama geçici bir çözüm, çünkü IyzilinkGetDetail'den dönen veri IyzilinkGetList'ten dönen veri tipinde yani doğru çalışmıyor.

Lisans

MIT Lisansı altında dağıtılmaktadır, daha fazla ayrıntı için lütfen kod içindeki lisans dosyasına bakın.

Read this in english

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func WithBinRequest

func WithBinRequest(binRequest bool) tdsOptions

Otomatik olarak bin kontrolü yapar. Eğer bin kontrol yapmak istemiyorsanız binRequest parametresini false yapabilirsiniz.

func WithHtmlDecodeRequest

func WithHtmlDecodeRequest(htmlDecodeRequest bool) tdsOptions

Otomatik olarak html içeriğini decode eder. Eğer decode etmek istemiyorsanız htmlDecodeRequest parametresini false yapabilirsiniz.

Types

type A2ACreatePaymentRequest added in v1.0.2

type A2ACreatePaymentRequest struct {
	// Tahsil edilmek istenen tutar.
	//
	// zorunlu
	Amount string `json:"amount" validate:"required"`

	// İşlem yapılacak olan müşterinin eposta bilgisidir.
	//
	// zorunlu
	Email string `json:"email" validate:"required,email"`

	// Üye iş yeri tarafından iletilen ödeme kaynağı bilgisi.
	//
	// zorunlu değil
	PaymentSource string `json:"paymentSource" validate:"omitempty"`

	// İşlem sonrası uygulamanıza geri dönülmesi sağlayan parametredir.
	//
	// zorunlu
	CallBackUrl string `json:"callBackUrl" validate:"required,url"`
}

type A2ACreatePaymentResponse added in v1.0.2

type A2ACreatePaymentResponse struct {
	A2ARefundPaymentResponse

	// Ödemenin iyzico tarafındaki işlem id'dir.
	PaymentId string `json:"paymentId"`
}

type A2AInquiryPaymentRequest added in v1.0.2

type A2AInquiryPaymentRequest struct {
	// Url'de dönen şifrelenmiş değer.
	//
	// zorunlu
	Data string `json:"data" validate:"required"`

	// Ödeme başlatılırken kullanılan benzersiz id'dir.
	//
	// zorunlu
	PaymentSessionToken string `json:"paymentSessionToken" validate:"required"`
}

type A2AInquiryPaymentResponse added in v1.0.2

type A2AInquiryPaymentResponse struct {
	// Yapılan isteğin sonucunu bildirir.
	Status string `json:"status"`

	// İstekte belirtilen locale değeri geri dönülür, varsayılan değeri tr’dir.
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir.
	SystemTime int `json:"systemTime"`

	// İstek esnasında gönderilmişse, sonuçta aynen geri iletilir.
	ConversationID string `json:"conversationId"`

	// Tamamlan ceppos işlemi değerlerini içerir.
	InStoreCompleteOperation InStoreCompleteOperation `json:"inStoreCompleteOperation"`
}

type A2AListResponse added in v1.0.2

type A2AListResponse struct {
	// Yapılan isteğin sonucunu bildirir.
	Status string `json:"status"`

	// İstekte belirtilen locale değeri geri dönülür, varsayılan değeri tr’dir.
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir..
	SystemTime int `json:"systemTime"`

	// İstek esnasında gönderilmişse, sonuçta aynen geri iletilir..
	ConversationID string `json:"conversationId"`

	// İlgili üye işyerine ait kullanıcıları listeler.
	UserInfoList []UserInfo `json:"userInfoList"`
}

type A2ARefundPaymentRequest added in v1.0.2

type A2ARefundPaymentRequest struct {
	// İptal/İade edilmek istenen tutar.
	//
	// zorunlu
	RefundAmount string `json:"refundAmount" validate:"required"`

	// Ödemenin iyzico tarafındaki işlem id'sidir.
	//
	// zorunlu
	PaymentId int `json:"paymentId" validate:"required"`

	// İlgili üye işyerine ait kullanıcının eposta bilgisidir.
	//
	// zorunlu
	Email string `json:"email" validate:"required,email"`

	// İşlem sonrası uygulamanıza geri dönülmesi sağlayan parametredir.
	//
	// zorunlu
	CallBackUrl string `json:"callBackUrl" validate:"required,url"`
}

type A2ARefundPaymentResponse added in v1.0.2

type A2ARefundPaymentResponse struct {
	// Yapılan isteğin sonucunu bildirir.
	Status string `json:"status"`

	// İstekte belirtilen locale değeri geri dönülür, varsayılan değeri tr’dir.
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir..
	SystemTime int `json:"systemTime"`

	// İstek esnasında gönderilmişse, sonuçta aynen geri iletilir..
	ConversationID string `json:"conversationId"`

	// Ceppos app'ini uyandırmak için kullanılan link.
	DeepLinkUrl string `json:"deepLinkUrl"`

	// İşlem başlatılırken kullanılan benzersiz id'dir.
	PaymentSessionToken string `json:"paymentSessionToken"`
}

type App2AppClient added in v1.0.2

type App2AppClient struct {

	// App2App APIKey, Iyzipay'den aldığınız App2App işlemler için özel anahtardır.
	A2AapiKey string

	// App2App APISecret, Iyzipay'den aldığınız App2App işlemler için özel gizli anahtardır.
	A2AsecretKey string
	// contains filtered or unexported fields
}

App2AppClient, Iyzipay App2App API ile etkileşim kurmak için kullanılan istemciyi temsil eder.

func NewApp2AppClient added in v1.0.2

func NewApp2AppClient(apiKey, apiSecret, a2AapiKey, a2AsecretKey, merchantId string) (*App2AppClient, error)

NewApp2AppClient, yeni bir App2App clientı oluşturur.

func (*App2AppClient) App2AppListUsers added in v1.0.2

func (i *App2AppClient) App2AppListUsers() (response A2AListResponse, err error)

App2App kullanıcı listeleme isteği Kullanıcı listeleme servisi üye işyerine tanımlamış olan kullanıcılar listeler. Listelenen kullanıcıların ceppos kullanma yetki durumunu bu servisle öğrenebilirsiniz.

func (*App2AppClient) App2CreatePayment added in v1.0.2

func (i *App2AppClient) App2CreatePayment(req *A2ACreatePaymentRequest) (response A2ACreatePaymentResponse, err error)

App2App ödeme oluşturma isteği Ödeme başlatma servisinin isteğinde tahsil edilecek tutar ve kullanıcı listeleme servisinde listelenen kullanıcının eposta bilgisi iletilmektedir.

func (*App2AppClient) App2InquiryPayment added in v1.0.2

func (i *App2AppClient) App2InquiryPayment(req *A2AInquiryPaymentRequest) (response A2AInquiryPaymentResponse, err error)

App2App sorgu isteği Ödeme işlemi sonrası callback parametre değerindeki url'e yönlendiğinde url'de data ve paymentSessionToken değerleri dönecektir. Bu değerleri kullanarak ödemeyi sorgulayabilirsiniz.

func (*App2AppClient) App2RefundPayment added in v1.0.2

func (i *App2AppClient) App2RefundPayment(req *A2ARefundPaymentRequest) (response A2ARefundPaymentResponse, err error)

App2App iptal/iade isteği Başarılı gerçekleşen bir ödemeyi iptal veya iade etmek istediğinizde bu servisi kullanabilirsiniz.

İptal / İade işlemi fiziki olarak gerçekleşmek zorundadır. Ceppos işlemleri iyzico paneli üzerinden iade edilememektedir.

type BasketItem

type BasketItem struct {
	// Üye işyeri tarafındaki sepetteki ürüne ait id. Not: Bir ödeme isteğine maksimum 500 basketItem eklenebilir
	//
	// zorunlu.
	ID string `json:"id" validate:"required"`

	// Üye işyeri tarafındaki sepetteki ürüne ait tutar. 0 ve 0’dan küçük olamaz; tutarlar toplamı sepet tutarına (price) eşit olmalıdır.
	//
	// zorunlu.
	Price string `json:"price" validate:"required,numeric"`

	// Üye işyeri tarafındaki sepetteki ürüne ait isim.
	//
	// zorunlu.
	Name string `json:"name" validate:"required"`

	// Üye işyeri tarafındaki sepetteki ürüne ait kategori 1
	//
	// zorunlu.
	Category1 string `json:"category1" validate:"required"`

	// Üye işyeri tarafındaki sepetteki ürüne ait kategori 2
	//
	// zorunlu değil.
	Category2 string `json:"category2" validate:"omitempty"`

	// Üye işyeri tarafındaki sepetteki ürüne ait tip. Geçerli enum değerler: PHYSICAL ve VIRTUAL.
	//
	// zorunlu.
	ItemType string `json:"itemType" validate:"required,oneof=PHYSICAL VIRTUAL"`
}

type BillingAddress

type BillingAddress struct {
	// Üye işyeri tarafındaki alıcıya ait adres bilgisi.
	//
	// zorunlu.
	Address string `json:"address" validate:"required"`

	// Üye işyeri tarafındaki alıcıya ait posta kodu.
	//
	// zorunlu değil.
	ZipCode string `json:"zipCode,omitempty" validate:"omitempty,numeric"`

	// Üye işyeri tarafındaki alıcıya ait iletişim adı.
	//
	// zorunlu.
	ContactName string `json:"contactName" validate:"required"`

	// Üye işyeri tarafındaki alıcıya ait şehir bilgisi.
	//
	// zorunlu.
	City string `json:"city" validate:"required"`

	// Üye işyeri tarafındaki alıcıya ait ülke bilgisi.
	//
	// zorunlu.
	Country string `json:"country" validate:"required"`
}

type BinRequest

type BinRequest struct {
	// Dil (default: tr).
	//
	// zorunlu değil.
	Locale string `json:"locale,omitempty" validate:"omitempty,oneof=tr en"`

	// Kartın ilk 6 hanesi.
	//
	// zorunlu değil
	BinNumber string `json:"binNumber,omitempty" validate:"omitempty,numeric"`

	// İstek ve yanıtı eşleştirmek için kullanılan Konuşma ID'si.
	//
	// zorunlu değil.
	ConversationId string `json:"conversationId,omitempty" validate:"omitempty"`
}

type BinResponse

type BinResponse struct {
	// İşlem sonucu başarılı ise success, başarısız ise failure döner.
	Status string `json:"status"`

	// İstek sonucun dilini belirten parametre.
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir
	SystemTime int `json:"systemTime"`

	// İstek ve yanıtı eşleştirmek için kullanılan Konuşma ID'si.
	ConversationId string `json:"conversationId"`

	// Kartın ilk 6 hanesi.
	BinNumber string `json:"binNumber"`

	// Kartın tipi.
	CardType string `json:"cardType"`

	// Kartın markası.
	CardAssociation string `json:"cardAssociation"`

	// Kartın ailesi.
	CardFamily string `json:"cardFamily"`

	// Banka adı.
	BankName string `json:"bankName"`

	// Banka kodu.
	BankCode int `json:"bankCode"`

	// ???
	Commercial int `json:"commercial"`
}

type Buyer

type Buyer struct {
	// Üye işyeri tarafındaki alıcıya ait id.
	//
	// zorunlu.
	ID string `json:"id" validate:"required"`

	// Üye işyeri tarafındaki alıcıya ait ad.
	//
	// zorunlu.
	Name string `json:"name" validate:"required"`

	// Üye işyeri tarafındaki alıcıya ait soyad.
	//
	// zorunlu.
	Surname string `json:"surname" validate:"required"`

	// Üye işyeri tarafındaki alıcıya ait kimlik (TCKN) numarası
	//
	// zorunlu.
	IdentityNumber string `json:"identityNumber" validate:"required,numeric"`

	// Üye işyeri tarafındaki alıcıya ait e-posta bilgisi. E-posta adresi alıcıya ait geçerli ve erişilebilir bir adres olmalıdır
	//
	// zorunlu.
	Email string `json:"email" validate:"required,email"`

	// Üye işyeri tarafındaki alıcıya ait GSM numarası
	//
	// zorunlu değil.
	GSMNumber string `json:"gsmNumber" validate:"omitempty"`

	// Üye işyeri tarafındaki alıcıya ait kayıt tarihi. Tarih formatı 2015-09-17 23:45:06 şeklinde olmalıdır.
	//
	// zorunlu değil.
	RegistrationDate string `json:"registrationDate" validate:"omitempty,iyziDate"`

	// Üye işyeri tarafındaki alıcıya ait son giriş tarihi. Tarih formatı 2015-09-17 23:45:06 şeklinde olmalıdır.
	//
	// zorunlu değil.
	LastLoginDate string `json:"lastLoginDate" validate:"omitempty,iyziDate"`

	// Üye işyeri tarafındaki alıcıya ait kayıt adresi.
	//
	// zorunlu.
	RegistrationAddress string `json:"registrationAddress" validate:"required"`

	// Üye işyeri tarafındaki alıcıya ait şehir bilgisi.
	//
	// zorunlu.
	City string `json:"city" validate:"required"`

	// Üye işyeri tarafındaki alıcıya ait ülke bilgisi.
	//
	// zorunlu.
	Country string `json:"country" validate:"required"`

	// Üye işyeri tarafındaki alıcıya ait posta kodu.
	//
	// zorunlu değil.
	ZipCode string `json:"zipCode" validate:"omitempty,numeric"`

	// Üye işyeri tarafındaki alıcıya ait IP adresi.
	//
	// zorunlu.
	IP string `json:"ip" validate:"required,ip"`
}

type CFInquiryRequest

type CFInquiryRequest struct {
	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir
	//
	// zorunlu değil.
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// Checkout form için oluşturulan tekil değer. Her istek için özel üretilir ve işyerine dönülür. Ödemenin sonucunu öğrenmek için zorunlu bir alandır.
	//
	// zorunlu
	Token string `json:"token" validate:"required"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir
	//
	// zorunlu değil.
	ConversationId string `json:"conversationId" validate:"omitempty"`
}

type CFInquiryResponse

type CFInquiryResponse struct {
	Non3DSPaymentResponse

	//Bankadan dönen değerdir. Sadece ödeme başarısız ise ve işlem 3ds ile yapılmışsa bu değer döner. 0,2,3,4,5,6,7 değerlerini alabilir.
	MdStatus int `json:"mdStatus"`

	// Checkout form için oluşturulan tekil değer. Her istek için özel üretilir ve işyerine dönülür. Ödemenin sonucunu öğrenmek için zorunlu bir alandır.
	Token string `json:"token"`

	// Ödeme isteğinin durumunu gösterir. Success ise karttan ilgili tutar çekilmiştir. SUCCESS, FAILURE, INIT_THREEDS, CALLBACK_THREEDS, BKM_POS_SELECTED, CALLBACK_PECCO
	PaymentStatus string `json:"paymentStatus"`

	// Ödeme akışında üye işyerine başarılı ve hatalı sonucu bildirmek üzere alınan URL adresi.
	CallbackUrl string `json:"callbackUrl"`
}

type CFRequest

type CFRequest struct {
	InitPWIRequest `validate:"dive"`

	// Ödeme kanalı. Geçerli değerler SHOPIFY, MAGENTO, PRESTASHOP, WOOCOMMERCE, OPENCART
	//
	// zorunlu değil.
	PaymentSource string `json:"paymentSource" validate:"omitempty,oneof=SHOPIFY MAGENTO PRESTASHOP WOOCOMMERCE OPENCART"`

	// Kayıtlı kullanıcı ID’si Veya key'i ? (Dökümantasyon belirsiz)
	//
	// zorunlu değil.
	CardUserKey string `json:"cardUserKey" validate:"omitempty"`
}

type CFResponse

type CFResponse struct {
	InitPWIResponse

	// Ödeme sayfası için dönen script tagi
	CheckoutFormContent string `json:"checkoutFormContent"`

	// Ödeme sayfası url bilgisi
	PaymentPageUrl string `json:"paymentPageUrl"`
}

type CancelPaymentRequest added in v1.0.1

type CancelPaymentRequest struct {
	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir.
	Locale string `json:"locale,omitempty" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir.
	ConversationID string `json:"conversationId,omitempty" validate:"omitempty"`

	// İşlemin gönderildiği ip adresi.
	Ip string `json:"ip,omitempty" validate:"omitempty,ip"`

	// iyzico tarafından işleme verilen benzersiz ödeme numarası.
	PaymentID string `json:"paymentId" validate:"required"`
}

type CancelPaymentResponse added in v1.0.1

type CancelPaymentResponse struct {
	// Yapılan isteğin sonucunu bildirir. İşlem başarılı ise success, hatalı ise failure döner.
	Status string `json:"status"`

	// İstekte belirtilen locale değeri geri dönülür, varsayılan değeridir.
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir
	SystemTime int64 `json:"systemTime"`

	// İstek esnasında gönderilmişse, sonuçta aynen geri iletilir.
	ConversationID string `json:"conversationId"`

	// İade alıcı referansı(ARN). Tüketicilerin iadeleri takip edebilecekleri bir değer.
	Price string `json:"price"`

	// İptali yapılan ödeme para birimi.
	Currency string `json:"currency"`

	// İptali yapılan ödeme para birimi.
	PaymentId string `json:"paymentId"`
}

type CardStorageCard

type CardStorageCard struct {
	// Saklanacak kartın son kullanma yılı.
	//
	// zorunlu
	ExpireYear string `json:"expireYear" validate:"required,numeric,len=4"`

	// Saklanacak kartın son kullanma ayı.
	//
	// zorunlu
	ExpireMonth string `json:"expireMonth" validate:"required,numeric,len=2,oneof=01 02 03 04 05 06 07 08 09 10 11 12"`

	// Saklanacak kartın kart numarası.
	//
	// zorunlu
	CardNumber string `json:"cardNumber" validate:"required,numeric"`

	// Saklanacak kartın sahibinin adı soyadı.
	//
	// zorunlu
	CardHolderName string `json:"cardHolderName" validate:"required"`
}

type CardStorageDeleteRequest

type CardStorageDeleteRequest struct {
	// Kart kaydedildikten sonra dönen saklı karda ait token.
	//
	// zorunlu
	CardToken string `json:"cardToken" validate:"required"`

	// Saklanacak kartın sahibinin kart saklama servisindeki kullanıcı kimliği.
	//
	// zorunlu
	CardUserKey string `json:"cardUserKey" validate:"required"`

	// Iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır
	//
	// zorunlu değil.
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir
	//
	// zorunlu değil.
	ConversationId string `json:"conversationId" validate:"omitempty"`
}

type CardStorageDeleteResponse

type CardStorageDeleteResponse struct {
	// Üye işyeri tarafındaki sepetteki ürüne ait tip. Geçerli enum değerler: PHYSICAL ve VIRTUAL.
	Status string `json:"status"`

	// İstekte belirtilen locale değeri geri dönülür, varsayılan değeri tr’dir.
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir.
	SystemTime int64 `json:"systemTime"`

	// İstek esnasında gönderilmişse, sonuçta aynen geri iletililir.
	ConversationID string `json:"conversationId"`
}

type CardStorageExUserRequest

type CardStorageExUserRequest struct {
	// Saklanacak karta verilecek isim
	//
	// zorunlu
	CardAlias string `json:"cardAlias" validate:"required"`

	// Saklanacak kartın sahibinin kart saklama servisindeki kullanıcı kimliği.
	//
	// zorunlu
	CardUserKey string `json:"cardUserKey" validate:"required"`

	Card *CardStorageCard `json:"card" validate:"dive"`

	// Saklanacak kart için özel Id.
	//
	// zorunlu değil.
	ExternalId string `json:"externalId" validate:"omitempty"`

	// Iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır
	//
	// zorunlu değil.
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir
	//
	// zorunlu değil.
	ConversationId string `json:"conversationId" validate:"omitempty"`
}

type CardStorageExUserResponse

type CardStorageExUserResponse struct {
	CardStorageResponse
}

type CardStorageNewUserRequest

type CardStorageNewUserRequest struct {
	// Saklanacak karta verilecek isim
	//
	// zorunlu
	CardAlias string `json:"cardAlias" validate:"required"`

	// Saklanacak kart sahibinin email adresi.
	//
	// zorunlu
	Email string `json:"email" validate:"required,email"`

	Card *CardStorageCard `json:"card" validate:"dive"`

	// Saklanacak kart için özel Id.
	//
	// zorunlu değil.
	ExternalId string `json:"externalId" validate:"omitempty"`

	// Iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır
	//
	// zorunlu değil.
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir
	//
	// zorunlu değil.
	ConversationId string `json:"conversationId" validate:"omitempty"`
}

type CardStorageNewUserResponse

type CardStorageNewUserResponse struct {
	CardStorageResponse

	// Oluşturulan kullanıcının emaili
	Email string `json:"email"`
}

type CardStorageResponse

type CardStorageResponse struct {
	// Üye işyeri tarafındaki sepetteki ürüne ait tip. Geçerli enum değerler: PHYSICAL ve VIRTUAL.
	Status string `json:"status"`

	// İstekte belirtilen locale değeri geri dönülür, varsayılan değeri tr’dir.
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir.
	SystemTime int64 `json:"systemTime"`

	// İstek esnasında gönderilmişse, sonuçta aynen geri iletililir.
	ConversationID string `json:"conversationId"`

	// Eğer istekte verildiyse özel Id'yi çevirir
	ExternalId *string `json:"externalId"`

	// Saklanan kartın sahibinin kart saklama servisindeki kullanıcı kimliği
	CardUserKey string `json:"cardUserKey"`

	// Saklanan kartın sahibinin kart saklama servisindeki kartın tokeni
	CardToken string `json:"cardToken"`

	// Saklanana kartın adı
	CardAlias string `json:"cardAlias"`

	// Saklana kartın ilk 6 hanesi
	BinNumber string `json:"binNumber"`

	// Saklanan kartın son 4 hanesi
	LastFourDigits string `json:"lastFourDigits"`

	// Saklanan kartın ait olduğu kart tipi. Geçerli değerler: CREDIT_CARD, DEBIT_CARD, PREPAID_CARD
	CardType string `json:"cardType"`

	// Saklanan kartın ait olduğu kuruluş. Geçerli değerler: VISA, MASTER_CARD, AMERICAN_EXPRESS, TROY
	CardAssociation string `json:"cardAssociation"`

	// Saklanan kartın ait olduğu aile. Geçerli değerler: Bonus, Axess, World, Maximum, Paraf, CardFinans, Advantage
	CardFamily string `json:"cardFamily"`

	// Saklanan kartın ait olduğu bankayı temsil eden kod.
	CardBankCode int `json:"cardBankCode"`

	// Saklanan kartın ait olduğu banka adı
	CardBankName string `json:"cardBankName"`
}

type CardStorageRetrieveRequest

type CardStorageRetrieveRequest struct {
	// Iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır
	//
	// zorunlu
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir
	//
	// zorunlu değil.
	ConversationId string `json:"conversationId" validate:"omitempty"`

	// Saklanan kartların sahibinin kart saklama servisindeki kullanıcı kimliği.
	//
	// zorunlu
	CardUserKey string `json:"cardUserKey" validate:"required"`
}

type CardStorageRetrieveResponse

type CardStorageRetrieveResponse struct {
	Status string `json:"status"`

	Locale string `json:"locale"`

	SystemTime int64 `json:"systemTime"`

	ConversationID string `json:"conversationId"`

	CardUserKey string `json:"cardUserKey"`

	CardDetails []StoredCard `json:"cardDetails"`
}

type CfSubscriptionData added in v1.0.1

type CfSubscriptionData struct {
	// Abonelik için üretilen eşsiz referans kodu.
	ReferenceCode string `json:"referenceCode"`

	// Abonelik güncellemelerinde üye işeyerinin eşleştirme yapılabileceği eşsiz referans kodu.
	ParentReferenceCode string `json:"parentReferenceCode"`

	// Aboneliğe ait plan referans kodu.
	PricingPlanReferenceCode string `json:"pricingPlanReferenceCode"`

	// Müşteri bilgilerine istinaden oluşturulmuş eşsiz müşteri kodu. Bu kod email adresi baz alınarak oluşturulur ve müşteri işlemleri bu kod ile de yapılabilir.
	CustomerReferenceCode string `json:"customerReferenceCode"`

	// Abonelik durumunu gösterir. İstek esnasında gönderilmişse, sonuçta aynen geri iletilir. Gönderilmemişse ACTIVE değeri döner.
	SubscriptionStatus string `json:"subscriptionStatus"`

	// Ödeme planında belirlenen deneme süresidir. Bu süreç boyunca karttan ödeme alınmaz.
	TrialDays int `json:"trialDays"`

	// Deneme süresinin başlangıç tarihini gösteren unix timestamp değeridir.
	TrialStartDate int `json:"trialStartDate"`

	// Deneme süresinin bitiş tarihini gösteren unix timestamp değeridir.
	TrialEndDate int `json:"trialEndDate"`

	// Abonelik oluşturulma tarihinin unix timestamp değeridir.
	CreatedDate int `json:"createdDate"`

	// Abonelik başlangıç tarihinin unix timestamp değeridir.
	StartDate int `json:"startDate"`

	// Abonelik bitiş tarihinin unix timestamp değeridir.
	EndDate int `json:"endDate"`
}

type ConvertedPayout

type ConvertedPayout struct {
	// Tahsilat tutarının kırılım bazındaki dağılımı. Üye işyeri tarafından mutlaka saklanmalıdır.
	PaidPrice float64 `json:"paidPrice"`

	// iyzico işlem komisyon tutarının kırılım bazında dağılmış tutarı
	IyziCommissionRateAmount float64 `json:"iyziCommissionRateAmount"`

	// iyzico işlem ücretinin kırılım bazında dağılmış tutarı
	IyziCommissionFee float64 `json:"iyziCommissionFee"`

	// Kırılım bazında üye işyeri blokaj tutarının, üye işyerine yansıyan rakamı. Blokaj tutarı mümkün olduğunca üye işyerine yansıtılır.
	// Eğer blokaj tutarı, üye işyeri tutarından daha büyükse bu durumda alt üye işyerine de yansıtılır.
	BlockageRateAmountMerchant float64 `json:"blockageRateAmountMerchant"`

	// Dökümantasyonda belirtilmemiş
	BlockageRateAmountSubMerchant float64 `json:"blockageRateAmountSubMerchant"`

	// Dökümantasyonda belirtilmemiş
	SubMerchantPayoutAmount float64 `json:"subMerchantPayoutAmount"`

	// Bu kırılım için, iyzico işlem ücreti, komisyon tutarı ve blokajlar düşüldükten sonra üye işyerine gönderilecek tutar.
	MerchantPayoutAmount float64 `json:"merchantPayoutAmount"`

	// Bu kırılım için, iyzico işlem ücreti, komisyon tutarı ve blokajlar düşüldükten sonra üye işyerine gönderilecek tutar.
	IyziConversionRate float64 `json:"iyziConversionRate"`

	// Bu kırılım için, iyzico işlem ücreti, komisyon tutarı ve blokajlar düşüldükten sonra üye işyerine gönderilecek tutar.
	IyziConversionRateAmount float64 `json:"iyziConversionRateAmount"`

	// Ödemenin alındığı para birimi.
	Currency string `json:"currency"`
}

type CreateSubscriptionPlanRequest added in v1.0.1

type CreateSubscriptionPlanRequest struct {
	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir. en olarak kullanılabilir
	//
	// zorunlu değil
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir. En yaygın kullanış biçimi üye iş yerinin ürün numarasıdır
	//
	// zorunlu değil
	ConversationId string `json:"conversationId" validate:"omitempty"`

	// Plan adı. Ödeme planı ile ilgili kısa bir bilgilendirme olacak şekilde değer girilmelidir
	//
	// zorunlu
	Name string `json:"name" validate:"required"`

	// Planın ilişkilendirileceği ürünün referans kodu.
	//
	// zorunlu
	ProductReferenceCode string `json:"productReferenceCode" validate:"required"`

	// Ödeme periyodunun kaç kez tekrarlanacağını belirler. Örneğin ayda bir ödeme alan planınıza bu değeri 12 olarak girerseniz, 12 ay boyunca ödeme alınacaktır.
	//
	// zorunlu değil
	RecurrenceCount int `json:"recurrenceCount" validate:"omitempty"`

	// Abonelik tipini belirtir. RECURRING değeri girilmelidir.
	//
	// zorunlu
	PlanPaymentType string `json:"planPaymentType" validate:"required,oneof=RECURRING"`

	// Deneme süresi veya ücretsiz kullanım süresi olarak kullanılır. Bu değer girilirse, ilk ödeme girilen gün sayısı sonunda alınır.
	//
	// zorunlu değil
	TrialPeriodDays int `json:"trialPeriodDays" validate:"omitempty"`

	// Ödeme periodunun hangi sıklıkta olacağını belirler. Örneğin paymentInterval değeri WEEKLY, paymentIntervalCount değeri 2 olursa, ödemeler 2 hafta bir alınır.
	//
	// zorunlu
	PaymentIntervalCount int `json:"paymentIntervalCount" validate:"required"`

	// Tekrarlı ödemenin alınacağı periodu belirler. DAILY, WEEKLY, MONTHLY, YEARLY değerlerini alabilir.
	//
	// zorunlu
	PaymentInterval string `json:"paymentInterval" validate:"required,oneof=DAILY WEEKLY MONTHLY YEARLY"`

	// Ödemenin alınacağı para birimi. TL, USD, EUR olabilir. TL dışındaki para birimlerinin hesabınıza tanımlandığından emin olunuz.
	//
	// zorunlu
	CurrencyCode string `json:"currencyCode" validate:"required,oneof=TL USD EUR"`

	// Ödeme periyotlarında karttan çekilecek tutar. Plan için geçerli abonelik fiyatı.
	//
	// zorunlu
	Price float64 `json:"price" validate:"required,gt=0"`
}

type CreateSubscriptionProductRequest

type CreateSubscriptionProductRequest struct {
	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir. en olarak kullanılabilir
	//
	// zorunlu değil
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir. En yaygın kullanış biçimi üye iş yerinin ürün numarasıdır
	//
	// zorunlu değil
	ConversationId string `json:"conversationId" validate:"omitempty"`

	// Ürün adı. Eşsiz bir isim olmalıdır. Mevcut bir isim başka bir ürüne verilemez.
	//
	// zorunlu
	Name string `json:"name" validate:"required"`

	// Ürün açıklaması. Bu açıklama müşterilere gösterilebilir veya tarafınızda bir not olabilir.
	//
	// zorunlu değil
	Description string `json:"description" validate:"omitempty"`
}

type DeleteSubscriptionPlanRequest added in v1.0.1

type DeleteSubscriptionPlanRequest struct {
	// Plana ait referans kodu
	//
	// zorunlu
	PricingPlanReferenceCode string `json:"pricingPlanReferenceCode" validate:"required"`
}

type DeleteSubscriptionPlanResponse added in v1.0.1

type DeleteSubscriptionPlanResponse struct {
	// Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner.
	Status string `json:"status"`

	// Dönen sonucun o anki unix timestamp değeridir.
	SystemTime int64 `json:"systemTime"`
}

type DeleteSubscriptionProductRequest

type DeleteSubscriptionProductRequest struct {
	// Ürüne ait eşsiz referans kodu
	//
	// zorunlu
	ProductReferenceCode string `json:"productReferenceCode" validate:"required"`
}

type DetailItem added in v1.0.2

type DetailItem struct {
	// Tamamlanan ceppos işleminin fiş bilgi başlığı
	Key string `json:"key"`

	// Tamamlanan ceppos işleminin fiş bilgi değeri
	Value string `json:"value"`
}

type DetailResponseData added in v1.0.2

type DetailResponseData struct {
	// Ürün ismi.
	Name string `json:"name"`

	// İstek esnasında gönderilmişse, sonuçta aynen geri iletilir.
	ConversationID string `json:"conversationId"`

	// Ürün açıklaması.
	Description string `json:"description"`

	// Ürün fiyatı.
	Price float64 `json:"price"`

	// Ürünün para birimi ID'si.
	CurrencyId int `json:"currencyId"`

	// Ürünün para birimi.
	CurrencyCode string `json:"currencyCode"`

	// iyzico tarafından üretilen değer.
	Token string `json:"token"`

	// iyzico tarafından kullanılan tip.
	ProductType string `json:"productType"`

	// Ürünün durumu.
	ProductStatus string `json:"productStatus"`

	// Üye işyeri numarası
	MerchantId int `json:"merchantId"`

	// Ürünün satın alma linki.
	Url string `json:"url"`

	// Ürün resmi.
	ImageUrl string `json:"imageUrl"`

	// Ürün adres durumu.
	AddressIgnorable bool `json:"addressIgnorable"`

	// Satılan ürün sayısı.
	SoldCount int `json:"soldCount"`

	// Taksit durumu.
	InstallmentRequested bool `json:"installmentRequested"`

	// Ürünün stok durumu.
	StockEnabled bool `json:"stockEnabled"`

	// Toplam stok sayısı.
	StockCount int `json:"stockCount"`

	// ???
	PresetPriceValues []int `json:"presetPriceValues"`

	// ???
	FlexibleLink bool `json:"flexibleLink"`

	// ???
	CategoryType string `json:"categoryType"`
}

type GetSubscriberDetailRequest added in v1.0.1

type GetSubscriberDetailRequest struct {
	// Abone referans kodu
	CustomerReferenceCode string `json:"customerReferenceCode" validate:"required"`
}

type GetSubscriberListRequest added in v1.0.1

type GetSubscriberListRequest struct {
	// Belirtilen sayfa için tüm aboneleri getirir.
	//
	// zorunlu
	Page int `json:"page" validate:"required"`

	// Bir sayfada kaç adet abone getirileceğini belirler.
	//
	// zorunlu
	Count int `json:"count" validate:"required"`
}

type GetSubscriberListRequestResponse added in v1.0.1

type GetSubscriberListRequestResponse struct {
	// Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner.
	Status string `json:"status"`

	// Dönen sonucun o anki unix timestamp değeridir
	SystemTime int64 `json:"systemTime"`

	// Abone bilgileri
	Data PaginatedSubscriberData `json:"data"`
}

type GetSubscriptionPlanDetailRequest added in v1.0.1

type GetSubscriptionPlanDetailRequest struct {
	// Plana ait referans kodu
	//
	// zorunlu
	PricingPlanReferenceCode string `json:"pricingPlanReferenceCode" validate:"required"`
}

type GetSubscriptionPlanListRequest added in v1.0.1

type GetSubscriptionPlanListRequest struct {
	// Belirtilen sayfa için tüm planları getirir.
	//
	// zorunlu
	Page int `json:"page" validate:"required"`

	// Sayfa başına kaç plan listelenceğini belirtir.
	//
	// zorunlu
	Count int `json:"count" validate:"required"`
}

type GetSubscriptionPlanListResponse added in v1.0.1

type GetSubscriptionPlanListResponse struct {
	// Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner.
	Status string `json:"status"`

	// Dönen sonucun o anki unix timestamp değeridir.
	SystemTime int64 `json:"systemTime"`

	Data PaginatedSubscriptionPlan `json:"data"`
}

type GetSubscriptionProductDetailRequest

type GetSubscriptionProductDetailRequest struct {
	// Ürüne ait eşsiz referans kodu
	//
	// zorunlu
	ProductReferenceCode string `json:"productReferenceCode" validate:"required"`
}

type GetSubscriptionProductListRequest

type GetSubscriptionProductListRequest struct {
	// Belirtilen sayfa için tüm ürünleri getirir
	//
	// zorunlu
	Page int `json:"page" validate:"required"`

	// Sayfa başına kaç ürün listeleneceğini belirtir
	//
	// zorunlu
	Count int `json:"count" validate:"required"`
}

type GetSubscriptionProductListResponse

type GetSubscriptionProductListResponse struct {
	// Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner.
	Status string `json:"status"`

	// Dönen sonucun o anki unix timestamp değeridir.
	SystemTime int64 `json:"systemTime"`

	Data PaginatedSubscription `json:"data"`
}

type InStoreCompleteOperation added in v1.0.2

type InStoreCompleteOperation struct {
	// Tamamlan ceppos işlemi
	Transaction Transaction `json:"transaction"`

	// Ödeme Oturumu
	PaymentSession *string `json:"paymentSession"`

	// İşlem Tipi
	TransactionType *string `json:"transactionType"`

	// Ödeme Başarısız Sonucu
	PaymentFailedResult *string `json:"paymentFailedResult"`
}

type IndividualSubMerchantRequest

type IndividualSubMerchantRequest struct {
	IndividualSubMerchantUpdateRequest
	// Bireysel için PERSONAL değeri gönderilmelidir.
	//
	// zorunlu
	SubMerchantType string `json:"SubMerchantType" validate:"required,oneof=PERSONAL"`
}

type IndividualSubMerchantUpdateRequest

type IndividualSubMerchantUpdateRequest struct {
	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir.
	//
	// zorunlu değil
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir
	//
	// zorunlu değil
	ConversationId string `json:"conversationId" validate:"omitempty"`

	// Alt üye işyeri adı.
	//
	// zorunlu değil
	Name string `json:"name" validate:"omitempty"`

	// Alt üye işyeri e-posta adresi.
	//
	// zorunlu
	Email string `json:"email" validate:"required,email"`

	// Alt üye işyeri telefon numarası.
	//
	// zorunlu değil
	GsmNumber string `json:"gsmNumber" validate:"omitempty"`

	// Alt üye işyeri adresi.
	//
	// zorunlu
	Address string `json:"address" validate:"required"`

	// Alt üye işyeri IBAN bilgisi. contactName ve contactSurname ile uyumlu bir IBAN olmalı. Eğer alt üye işyeri ekleme esnasında boş bırakılırsa, ürüne onay vermeden önce mutlaka doldurulmalıdır.
	//
	// zorunlu değil
	Iban string `json:"iban" validate:"omitempty"`

	// Alt üye işyeri adı.
	//
	// zorunlu
	ContactName string `json:"contactName" validate:"required"`

	// Alt üye işyeri soyadı.
	//
	// zorunlu
	ContactSurname string `json:"contactSurname" validate:"required"`

	// Para birimi default TL olarak belirlenmiştir. USD, EUR, GBP, RUB, CHF ve NOK para birimleri de belirlenebilir
	//
	// zorunlu değil
	Currency string `json:"currency" validate:"omitempty,oneof=TRY USD EUR GBP RUB CHF NOK"`

	// Alt üye işyeri tekil dış ID’si, sizin sisteminizdeki ID olabilir.
	//
	// zorunlu
	SubMerchantExternalId string `json:"SubMerchantExternalId" validate:"required"`

	// Alt üye işyeri TC Kimlik Numarası.
	//
	// zorunlu
	IdentityNumber string `json:"identityNumber" validate:"required"`
}

type InitPWIRequest

type InitPWIRequest struct {
	// İstek yapılan dil bilgisidir. İki karakterli dil kodu olarak gönderilir. Örnek: tr, en
	//
	// zorunlu değil
	Locale string `json:"locale" validate:"omitempty"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir
	//
	// zorunlu değil
	ConversationID string `json:"conversationId" validate:"omitempty"`

	// Ödeme sepet tutarı. Kırılım tutarlar toplamı, sepet tutarına eşit olmalı.
	//
	// zorunlu
	Price string `json:"price" validate:"required,numeric"`

	// Üye işyeri sepet id’si.
	//
	// zorunlu değil
	BasketId string `json:"basketId" validate:"omitempty"`

	// Ödeme grubu, varsayılan PRODUCT. Geçerli değerler enum içinde sunulmaktadır: PRODUCT, LISTING, SUBSCRIPTION
	//
	// zorunlu değil
	PaymentGroup string `json:"paymentGroup" validate:"omitempty,oneof=PRODUCT LISTING SUBSCRIPTION"`

	// Ödeme akışında üye işyerine başarılı ve hatalı sonucu bildirmek üzere alınan URL adresi. Geçerli bir ssl sertifikasına sahip olmalıdır.
	//
	// zorunlu
	CallbackUrl string `json:"callbackUrl" validate:"required,httpsurl"`

	// Para birimi. Default değeri TL’dir. Kullanılabilen diğer değerler ise USD, EUR, GBP ve IRR’dir.
	//
	// zorunlu
	Currency string `json:"currency" validate:"required,oneof=TRY USD EUR GBP IRR"`

	// İndirim, vergi, taksit komisyonları gibi değerlerin dahil edildiği tutar.
	//
	// zorunlu
	PaidPrice string `json:"paidPrice" validate:"required,numeric"`

	// Taksit bilgisi, tek çekim için 1 gönderilmelidir. Geçerli değerler: 1, 2, 3, 6, 9.
	//
	// zorunlu değil
	EnabledInstallments []string `json:"enabledInstallments" validate:"omitempty,dive,oneof=1 2 3 6 9"`

	// Alıcı bilgileri
	Buyer Buyer `json:"buyer" validate:"required,dive"`

	// Kargo adresi (PHYSICAL product tipi seçilmişse zorunlu)
	ShippingAddress ShippingAddress `json:"shippingAddress" validate:"omitempty,dive"`

	// Fatura adresi
	BillingAddress BillingAddress `json:"billingAddress" validate:"required,dive"`

	// Sepet içerikleri
	BasketItems []BasketItem `json:"basketItems" validate:"required,dive"`
}

type InitPWIResponse

type InitPWIResponse struct {
	// Yapılan isteğin sonucunu bildirir. İşlem başarılı ise success, hatalı ise failure döner.
	Status string `json:"status"`

	// İstekte belirtilen locale değeri geri dönülür, varsayılan değeridir.
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir
	SystemTime int64 `json:"systemTime"`

	// İstek esnasında gönderilmişse, sonuçta aynen geri iletilir.
	ConversationID string `json:"conversationId"`

	// iyzico ile ödeme için oluşturulan tekil değer. Her istek için özel üretilir ve işyerine dönülür.
	// Ödemenin sonucunu öğrenmek için zorunlu bir alandır. Varsayılan olarak 1800 saniye geçerliliği vardır.
	Token string `json:"token"`

	// iyzico ile ödeme için üretilmiş olan token ve link değerinin geçerlilik süresi.
	TokenExpireTime int64 `json:"tokenExpireTime"`

	// iyzico ile ödeme sayfasının eşsiz linki. Son kullanıcının ödeme yapması için yönlendirilmesi gereken adres.
	PayWithIyzicoPageUrl string `json:"payWithIyzicoPageUrl"`

	// İmza bilgisi.
	Signature string `json:"signature"`
}

type InitSubscriptionWithCheckoutFormRequest added in v1.0.1

type InitSubscriptionWithCheckoutFormRequest struct {
	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir. en olarak kullanılabilir
	//
	// zorunlu değil.
	Locale string `json:"locale,omitempty" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir. En yaygın kullanış biçimi üye iş yerinin sipariş numarasıdır
	//
	// zorunlu değil.
	ConversationId string `json:"conversationId,omitempty" validate:"omitempty"`

	// İşlem sonucunda yönlendirilecek sayfa adresidir.(https olmalıdır.)
	//
	// zorunlu.
	CallbackUrl string `json:"callbackUrl" validate:"required,httpsurl"`

	// Eğer abonelik fiziksel bir ürün ise gönderilmelidir.
	//
	// zorunlu değil.
	ShippingAddress ShippingAddress `json:"shippingAddress,omitempty" validate:"omitempty"`

	// Fatura adresi bilgileri
	//
	// zorunlu.
	BillingAddress BillingAddress `json:"billingAddress" validate:"required,dive"`

	// Abone kimlik bilgileri
	//
	// zorunlu.
	IdentityNumber string `json:"identityNumber" validate:"required"`

	// Abone telefon numarası
	//
	// zorunlu.
	GsmNumber string `json:"gsmNumber" validate:"required"`

	// Abone e-posta adresi
	//
	// zorunlu.
	Email string `json:"email" validate:"required,email"`

	// Abone soyadı
	//
	// zorunlu.
	Surname string `json:"surname" validate:"required"`

	// Abone adı
	//
	// zorunlu.
	Name string `json:"name" validate:"required"`

	// Abonelik başlangıç durumu (PENDING veya ACTIVE)
	//
	// zorunlu değil.
	SubscriptionInitialStatus string `json:"subscriptionInitialStatus" validate:"omitempty,oneof=PENDING ACTIVE"`

	// Abonelikte uygulanacak abonelik planı referans kodu.
	//
	// zorunlu.
	PricingPlanReferenceCode string `json:"pricingPlanReferenceCode" validate:"required"`
}

type InitSubscriptionWithCheckoutFormResponse added in v1.0.1

type InitSubscriptionWithCheckoutFormResponse struct {
	// Yapılan isteğin sonucunu belirtir. Aboneliğin başarılı şekilde başlaması durumunda success değeri döner.
	Status string `json:"status"`

	// Checkout form için üretilmiş olan token değerinin geçerlilik süresi.
	SystemTime int64 `json:"systemTime"`

	// Checkout formun gösterilmesi için gerekli javascript html kodu.
	CheckoutFormContent string `json:"checkoutFormContent"`

	// Checkout form için oluşturulan tekil değer. Her istek için özel üretilir ve işyerine dönülür. Abonelik detaylarını öğrenmek için kullanılmalıdır.
	Token string `json:"token"`

	// Checkout form için üretilmiş olan token değerinin geçerlilik süresi.
	TokenExpireTime int64 `json:"tokenExpireTime"`
}

type InitSubscriptionWithNonTDSRequest added in v1.0.1

type InitSubscriptionWithNonTDSRequest struct {
	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir. en olarak kullanılabilir
	//
	// zorunlu değil.
	Locale string `json:"locale,omitempty" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir. En yaygın kullanış biçimi üye iş yerinin sipariş numarasıdır
	//
	// zorunlu değil.
	ConversationID string `json:"conversationId,omitempty" validate:"omitempty"`

	// Eğer abonelik fiziksel bir ürün ise gönderilmelidir.
	//
	// zorunlu değil.
	ShippingAddress ShippingAddress `json:"shippingAddress,omitempty" validate:"omitempty"`

	// Fatura adresi bilgileri
	//
	// zorunlu.
	BillingAddress BillingAddress `json:"billingAddress" validate:"required,dive"`

	// Abone kimlik bilgileri
	//
	// zorunlu.
	IdentityNumber string `json:"identityNumber" validate:"required"`

	// Abone telefon numarası
	//
	// zorunlu.
	GsmNumber string `json:"gsmNumber" validate:"required"`

	// Abone email bilgisi
	//
	// zorunlu.
	Email string `json:"email" validate:"required,email"`

	// Abone soyadı
	//
	// zorunlu.
	Surname string `json:"surname" validate:"required"`

	// Abone adı
	//
	// zorunlu.
	Name string `json:"name" validate:"required"`

	// Abonelik başlangıç durumu (PENDING veya ACTIVE)
	//
	// zorunlu değil.
	SubscriptionInitialStatus string `json:"subscriptionInitialStatus" validate:"omitempty,oneof=PENDING ACTIVE"`

	// Abonelikte uygulanacak plan referans kodu.
	//
	// zorunlu.
	PricingPlanReferenceCode string `json:"pricingPlanReferenceCode" validate:"required"`

	// Abone kart bilgileri
	PaymentCard PaymentCard `json:"paymentCard" validate:"required,dive"`
}

type InitTDSRequest

type InitTDSRequest struct {
	PaymentRequest `validate:"dive"`

	// 3D Secure işlemi başlatıldığında, banka tarafından kullanıcıya gösterilecek sayfa URL'si.(https olmalıdır.)
	//
	// zorunlu.
	CallbackUrl string `json:"callbackUrl" validate:"required,httpsurl"`
}

type InitTDSResponse

type InitTDSResponse struct {
	// Servis yanıt sonucu (başarılı/başarısız)
	Status string `json:"status"`

	// Dil bilgisi
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir
	SystemTime int64 `json:"systemTime"`

	// Konuşma Id'si
	ConversationID string `json:"conversationId"`

	// 3D Secure işlem için html içeriği (base64 şifreli)
	ThreeDSHtmlContent string `json:"threeDSHtmlContent"`

	// İstek sonrası dönen İşlem Id'si
	PaymentID string `json:"paymentId"`

	// İstek sonrası dönen imza
	Signature string `json:"signature"`
}

type InquiryRequest

type InquiryRequest struct {
	// Ödemenin ID'si. Tüccarların bu ödeme ID'sini sistemlerinde saklamaları gerekmektedir (bu ID, iptal talepleri için kullanılacaktır).
	//
	// zorunlu.
	PaymentId string `json:"paymentId" validate:"required"`

	// İşlemin gönderildiği IP adresi.
	//
	// zorunlu.
	Ip string `json:"ip" validate:"required,ip"`

	// İstek ve yanıtı eşleştirmek için kullanılan Konuşma ID'si.
	//
	// zorunlu değil.
	ConversationID string `json:"conversationId" validate:"omitempty"`

	// Dil (default: tr).
	//
	// zorunlu değil.
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// Ödeme için kullanılan konuşma ID'si.
	//
	// zorunlu değil.
	PaymentConversationID string `json:"paymentConversationId" validate:"omitempty"`
}

type InquiryResponse

type InquiryResponse Non3DSPaymentResponse

type InquirySubscriptionWithCheckoutFormRequest added in v1.0.1

type InquirySubscriptionWithCheckoutFormRequest struct {
	// Checkout form için oluşturulan tekil değer. Her istek için özel üretilir ve işyerine dönülür.
	//
	// zorunlu
	Token string `json:"token" validate:"required"`
}

type InstallmentDetail added in v1.0.1

type InstallmentDetail struct {
	// Kartın ilk 6 hanesi.
	BinNumber string `json:"binNumber"`

	// Toplam tutar.
	Price float32 `json:"price"`

	// Eğer ödeme yapılan kart yerel bir kart ise, kartın ait olduğu tipi. Geçerli değerler: CREDIT_CARD, DEBIT_CARD, PREPAID_CARD
	CardType string `json:"cardType"`

	// Eğer ödeme yapılan kart yerel bir kart ise, kartın ait olduğu kuruluş. Geçerli değerler: TROY, VISA, MASTER_CARD, AMERICAN_EXPRESS.
	CardAssociation string `json:"cardAssociation"`

	// Kartın ailesi.
	CardFamilyName string `json:"cardFamilyName"`

	// İşlemin 3ds yapılmasına gerek olup olmadığını gösterir. 1 veya 0 değerlerini alır. 1 ise işlem 3ds ile yapılmalıdır.
	Force3ds int `json:"force3ds"`

	// Eğer ödeme yapılan kart yerel bir kart ise, kartın ait olduğu banka adı.
	BankName string `json:"bankName"`

	// Eğer ödeme yapılan kart yerel bir kart ise, kartın ait olduğu banka kodu.
	BankCode int `json:"bankCode"`

	// ???
	ForceCvc int `json:"forceCvc"`

	// Taksitler
	InstallmentPrices []InstallmentPrice `json:"installmentPrices"`
}

type InstallmentPrice added in v1.0.1

type InstallmentPrice struct {
	// Taksit başına düşen tutar.
	InstallmentPrice float32 `json:"installmentPrice"`

	// Toplam taksitli tutar.
	TotalPrice float32 `json:"totalPrice"`

	// Taksit sayısı.
	InstallmentNumber int `json:"installmentNumber"`
}

type InstallmentRequest added in v1.0.1

type InstallmentRequest struct {
	// Dil (default: tr).
	//
	// zorunlu değil.
	Locale string `json:"locale,omitempty" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir.
	//
	// zorunlu değil.
	ConversationId string `json:"conversationId,omitempty" validate:"omitempty"`

	// Taksite bölünecek tutar.
	//
	// zorunlu.
	Price string `json:"price" validate:"required,numeric"`

	// Kartın ilk 6 hanesi.
	//
	// zorunlu değil.
	BinNumber string `json:"binNumber,omitempty" validate:"omitempty"`
}

type InstallmentResponse added in v1.0.1

type InstallmentResponse struct {
	// İşlem sonucu başarılı ise success, başarısız ise failure döner.
	Status string `json:"status"`

	// İstek sonucun dilini belirten parametre.
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir
	SystemTime int `json:"systemTime"`

	// İstek ve yanıtı eşleştirmek için kullanılan Konuşma ID'si.
	ConversationId string `json:"conversationId"`

	// Taksit bilgileri.
	InstallmentDetails []InstallmentDetail `json:"installmentDetails"`
}

type ItemTransaction

type ItemTransaction struct {
	// Üye işyeri tarafından iletilen, sepetteki ürüne ait id
	ItemID string `json:"itemId"`

	// Ödeme kırılımına ait id, üye işyeri tarafından mutlaka saklanmalıdır.
	// Ödeme kırılımının iadesi, onayı, onay geri çekmesi ve iyzico ile iletişimde kullanılır. Tercihen itemId ile ilişkili bir şekilde tutulmalıdır.
	PaymentTransactionID string `json:"paymentTransactionId"`

	// Ödeme kırılımının durumu. Ödeme fraud kontrolünde ise 0 değeri döner, bu durumda fraudStatus değeri de 0’dır.
	// Ödeme, fraud kontrolünden sonra reddedilirse -1 döner. Pazaryeri modelinde ürüne onay verilene dek bu değer 1 olarak döner.
	// Pazaryeri modelinde ürüne onay verilmişse bu değer 2 olur. Geçerli değerler: 0, -1, 1 ve 2.
	TransactionStatus int `json:"transactionStatus"`

	// Üye işyeri tarafındaki sepetteki ürüne ait tutar.
	Price float64 `json:"price"`

	// Tahsilat tutarının kırılım bazındaki dağılımı. Üye işyeri tarafından mutlaka saklanmalıdır.
	PaidPrice float64 `json:"paidPrice"`

	// Üye işyerinin uyguladığı vade/komisyon oranının kırılım bazında dağılmış oranı.
	MerchantCommissionRate float64 `json:"merchantCommissionRate"`

	// iyzico işlem komisyon tutarının kırılım bazında dağılmış tutarı.
	MerchantCommissionRateAmount float64 `json:"merchantCommissionRateAmount"`

	// iyzico işlem komisyon tutarının kırılım bazında dağılmış tutarı.
	IyziCommissionRateAmount float64 `json:"iyziCommissionRateAmount"`

	// iyzico işlem ücretinin kırılım bazında dağılmış tutarı.
	IyziCommissionFee float64 `json:"iyziCommissionFee"`

	// Kırılım bazında üye işyeri blokaj oranı. iyzico – üye işyeri anlaşmasına göre, üye işyerine işlem bazında blokaj uygulayabilir.
	// Bu blokaj üye işyeri fraud riskini önlemek içindir, blokaj süresi boyunca para iyzico’da tutulur, bu süre sonrasında üye işyerine gönderilir.
	BlockageRate float64 `json:"blockageRate"`

	// Kırılım bazında üye işyeri blokaj tutarının, üye işyerine yansıyan rakamı. Blokaj tutarı mümkün olduğunca üye işyerine yansıtılır.
	// Eğer blokaj tutarı, üye işyeri tutarından daha büyükse bu durumda alt üye işyerine de yansıtılır.
	BlockageRateAmountMerchant float64 `json:"blockageRateAmountMerchant"`

	// Dökümantasyonda belirtilmemiş
	BlockageRateAmountSubMerchant float64 `json:"blockageRateAmountSubMerchant"`

	// İşlem bazında blokaj çözülme tarihi. yyyy-MM-dd HH:mm:ss formatındadır, örneğin 2015-10-19 14:36:52
	BlockageResolvedDate string `json:"blockageResolvedDate"`

	// Alt üye işyerine IBAN adresine gönderilmiş tutar.
	SubMerchantPrice float64 `json:"subMerchantPrice"`

	// Dökümantasyonda belirtilmemiş
	SubMerchantPayoutRate float64 `json:"subMerchantPayoutRate"`

	// Dökümantasyonda belirtilmemiş
	SubMerchantPayoutAmount float64 `json:"subMerchantPayoutAmount"`

	// Bu kırılım için, iyzico işlem ücreti, komisyon tutarı ve blokajlar düşüldükten sonra üye işyerine gönderilecek tutar.
	MerchantPayoutAmount float64 `json:"merchantPayoutAmount"`

	// Dökümantasyonda belirtilmemiş
	ConvertedPayout ConvertedPayout `json:"convertedPayout"`
}

type IyzilinkCreateRequest added in v1.0.2

type IyzilinkCreateRequest struct {
	// İstek ve yanıtı eşleştirmek için kullanılan Konuşma ID'si.
	//
	// zorunlu değil
	ConversationID string `json:"conversationId" validate:"omitempty"`

	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir. en olarak kullanılabilir.
	//
	// zorunlu değil
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// Ürünün ekranda görünen ismi.
	//
	// zorunlu
	Name string `json:"name" validate:"required"`

	// Ürün fiyatı.
	//
	// zorunlu
	Price string `json:"price" validate:"required"`

	// Taksitli Satış Durumu. Gönderilmezse false değeri alır.
	//
	// zorunlu değil
	InstallmentRequested string `json:"installmentRequested" validate:"omitempty,oneof=true false"`

	// Ürün satın alınırken adres isteme parametresi. Gönderilmese true değerini alır.
	//
	// zorunlu değil
	AddressIgnorable string `json:"addressIgnorable" validate:"omitempty,oneof=true false"`

	// Ürünün para birimi.
	//
	// zorunlu
	CurrencyCode string `json:"currencyCode" validate:"required"`

	// Ürünün base64 formatında resmi.
	//
	// zorunlu
	EncodedImageFile string `json:"encodedImageFile" validate:"required,base64"`

	// Ürünün ekranda görünen açıklaması.
	//
	// zorunlu
	Description string `json:"description" validate:"required"`

	ProductBuyerInfo *ProductBuyerInfo `json:"productBuyerInfo" validate:"omitempty"`

	// Stok sayısı.
	//
	// zorunlu
	StockCount int `json:"stockCount" validate:"required"`

	// Stok onayı, normalde gelen değer FALSE.
	//
	// zorunlu
	StockEnabled bool `json:"stockEnabled" validate:"required"`
}

type IyzilinkDeleteRequest added in v1.0.2

type IyzilinkDeleteRequest struct {
	// İstek ve yanıtı eşleştirmek için kullanılan Konuşma ID'si.
	//
	// zorunlu değil
	ConversationID string `json:"conversationId" validate:"omitempty"`

	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir. en olarak kullanılabilir.
	//
	// zorunlu değil
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// Iyzilink'e ait token.
	//
	// zorunlu
	Token string `json:"token" validate:"required"`
}

type IyzilinkDeleteResponse added in v1.0.2

type IyzilinkDeleteResponse struct {
	// İşlem sonucu başarılı ise success, başarısız ise failure döner.
	Status string `json:"status"`

	// Dönen sonucun o anki unix timestamp değeridir.
	SystemTime int `json:"systemTime"`
}

type IyzilinkGetDetailRequest added in v1.0.2

type IyzilinkGetDetailRequest struct {
	// İstek ve yanıtı eşleştirmek için kullanılan Konuşma ID'si.
	//
	// zorunlu değil
	ConversationID string `json:"conversationId" validate:"omitempty"`

	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir. en olarak kullanılabilir.
	//
	// zorunlu değil
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// Sayfa numarası.
	//
	// zorunlu
	Page int `json:"page" validate:"required"`

	// Sayfada görüntülenen ürün sayısı.
	//
	// zorunlu
	Count int `json:"count" validate:"required"`

	// Iyzilink'e ait token.
	//
	// zorunlu
	Token string `json:"token" validate:"required"`
}

type IyzilinkGetDetailResponse added in v1.0.2

type IyzilinkGetDetailResponse struct {
	// Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner.
	Status string `json:"status"`

	// Kullanılan dil.
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir
	SystemTime int `json:"systemTime"`

	// İşlem sonucu gelen iyzilink verisi.
	Data DetailResponseData `json:"data"`
}

type IyzilinkGetListRequest added in v1.0.2

type IyzilinkGetListRequest struct {
	// İstek ve yanıtı eşleştirmek için kullanılan Konuşma ID'si.
	//
	// zorunlu değil
	ConversationID string `json:"conversationId" validate:"omitempty"`

	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir. en olarak kullanılabilir.
	//
	// zorunlu değil
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// Sayfa numarası.
	//
	// zorunlu
	Page int `json:"page" validate:"required"`

	// Sayfada görüntülenen ürün sayısı.
	//
	// zorunlu
	Count int `json:"count" validate:"required"`
}

type IyzilinkGetListResponse added in v1.0.2

type IyzilinkGetListResponse struct {
	// İşlem sonucu başarılı ise success, başarısız ise failure döner.
	Status string `json:"status"`

	// Kullanılan dil.
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir.
	SystemTime int `json:"systemTime"`

	// İstek esnasında gönderilmişse, sonuçta aynen geri iletilir.
	ConversationID string `json:"conversationId"`

	// İşlem sonucu gelen iyzilink verisi.
	Data ListResponseData `json:"data"`
}

type IyzilinkResponse added in v1.0.2

type IyzilinkResponse struct {
	// İstek ve yanıtı eşleştirmek için kullanılan Konuşma ID'si.
	ConversationID string `json:"conversationId"`

	IyzilinkDeleteResponse

	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir. en olarak kullanılabilir.
	Locale string `json:"locale"`

	// Başarılı işlem sonucu oluşan iyzilink verisi.
	Data ResponseData `json:"data"`
}

type IyzilinkStatusUpdateRequest added in v1.0.2

type IyzilinkStatusUpdateRequest struct {
	// İstek ve yanıtı eşleştirmek için kullanılan Konuşma ID'si.
	//
	// zorunlu değil
	ConversationID string `json:"conversationId" validate:"omitempty"`

	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir. en olarak kullanılabilir.
	//
	// zorunlu değil
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// Iyzilink'e ait token.
	//
	// zorunlu
	Token string `json:"token" validate:"required"`

	// Iyzilink'in durumu.
	//
	// zorunlu
	ProductStatus string `json:"productStatus" validate:"required,oneof=ACTIVE PASSIVE"`
}

type IyzilinkStatusUpdateResponse added in v1.0.2

type IyzilinkStatusUpdateResponse struct {
	// İşlem sonucu başarılı ise success, başarısız ise failure döner.
	Status string `json:"status"`

	// Kullanılan dil.
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir.
	SystemTime int `json:"systemTime"`

	// İstek esnasında gönderilmişse, sonuçta aynen geri iletilir.
	ConversationID string `json:"conversationId"`
}

type IyzilinkUpdateRequest added in v1.0.2

type IyzilinkUpdateRequest struct {
	// İstek ve yanıtı eşleştirmek için kullanılan Konuşma ID'si.
	//
	// zorunlu değil
	ConversationID string `json:"conversationId" validate:"omitempty"`

	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir. en olarak kullanılabilir.
	//
	// zorunlu değil
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// Ürünün ekranda görünen ismi.
	//
	// zorunlu
	Name string `json:"name" validate:"required"`

	// Ürün fiyatı.
	//
	// zorunlu
	Price string `json:"price" validate:"required"`

	// Taksitli Satış Durumu. Gönderilmezse false değeri alır.
	//
	// zorunlu değil
	InstallmentRequested string `json:"installmentRequested" validate:"omitempty,oneof=true false"`

	// ???
	SoldLimit string `json:"soldLimit" validate:"omitempty"`

	// Ürün satın alınırken adres isteme parametresi. Gönderilmese true değerini alır.
	//
	// zorunlu değil
	AddressIgnorable string `json:"addressIgnorable" validate:"omitempty,oneof=true false"`

	// Ürünün para birimi.
	//
	// zorunlu
	CurrencyCode string `json:"currencyCode" validate:"required"`

	// Ürünün para birimi.
	//
	// zorunlu
	EncodedImageFile string `json:"encodedImageFile" validate:"required,base64"`

	// Ürünün ekranda görünen açıklaması.
	//
	// zorunlu
	Description string `json:"description" validate:"required"`

	// Iyzilink'e ait token.
	//
	// zorunlu
	Token string `json:"token" validate:"required"`
}

type IyzipayClient

type IyzipayClient struct {
	// contains filtered or unexported fields
}

Iyzipay, Iyzipay API ile etkileşim kurmak için kullanılan istemciyi temsil eder.

func New

func New(apiKey, apiSecret string) (*IyzipayClient, error)

New, yeni bir Iyzipay clientı oluşturur.

func (*IyzipayClient) ApproveProduct

func (i *IyzipayClient) ApproveProduct(req *MarketplaceProductRequest) (response MarketplaceProductResponse, err error)

Pazaryeri çözümünde, ödeme iyzico’dan geçtikten sonra, üye işyeri ödeme içinde yer alan kırılıma / ürüne onay verene dek para korumalı havuz hesapta bekletilir. Üye işyeri bu sürede ödemeyi iptal edebilir, ödemenin kırılımını iade edebilir ya da ürün alıcıya ulaştı ve işlem sorunsuz tamamlandıysa para transferi için ürüne onay verebilir veya verdiği ürün onayını geri çekebilir.

Ürün onayı vermek için kullanılır.

func (*IyzipayClient) BinControlRequest

func (i *IyzipayClient) BinControlRequest(req *BinRequest) (response BinResponse, err error)

Kart bilgilerini öğrenmek için kullanılır.

func (*IyzipayClient) CancelPayment added in v1.0.1

func (i *IyzipayClient) CancelPayment(req *CancelPaymentRequest) (response CancelPaymentResponse, err error)

Yapılan ödemenin iptali için kullanılır.

func (*IyzipayClient) CheckPWIPaymentRequest

func (i *IyzipayClient) CheckPWIPaymentRequest(req *PWIInquiryRequest) (response PWIInquiryResponse, err error)

PWI ile gerçekleştirilen ödeme sorgulama isteği yapılır.

Response içerisinde gelen paymentId saklanmalıdır.

func (*IyzipayClient) CheckoutFormPaymentInquiryRequest

func (i *IyzipayClient) CheckoutFormPaymentInquiryRequest(req *CFInquiryRequest) (response *CFInquiryResponse, err error)

Checkout Form ile yapılan ödeme isteği için sorgulama yapmak için kullanılır.

Ödemenin tamamlanması gerekli.

func (*IyzipayClient) CheckoutFormPaymentRequest

func (i *IyzipayClient) CheckoutFormPaymentRequest(req *CFRequest, CFFormType string) (response *CFResponse, err error)

Checkout Fom ile ödeme isteği yapmak için kullanılır.

Bu istekte dönecek olan html elementi için 3 farklı CFFormType belirleyebilirsiniz. "responsive", "popup", "iframe".

func (*IyzipayClient) CreatSubscriptionProduct

func (i *IyzipayClient) CreatSubscriptionProduct(req CreateSubscriptionProductRequest) (response SubscriptionProductResponse, err error)

Abonelik ürünü oluşturmak için kullanılır.

Not: Sandbox ortamında çalışmamaktadır.(Iyzico panelden eklentiler kısmından abonelik eklentisini aktif etmeniz gerekmektedir.)

func (*IyzipayClient) CreateCardStorageExUser

func (i *IyzipayClient) CreateCardStorageExUser(req *CardStorageExUserRequest) (response CardStorageExUserResponse, err error)

Kart saklama işlemi için mevcut kullanıcı ile kart saklama isteği

Response içerisinde dönen cardToken saklanmalıdır.

func (*IyzipayClient) CreateCardStorageNewUser

func (i *IyzipayClient) CreateCardStorageNewUser(req *CardStorageNewUserRequest) (response CardStorageNewUserResponse, err error)

Kart saklama işlemi için yeni kullanıcı ile kart saklama isteği

Response içerisinde dönen cardUserKey ve cardToken saklanmalıdır.

func (*IyzipayClient) CreateIndividualSubMerchant

func (i *IyzipayClient) CreateIndividualSubMerchant(req *IndividualSubMerchantRequest) (response SubMerchantResponse, err error)

Bireysel Alt Üye Oluşturma İsteği (Pazaryeri müşterisi olmanız gerekmektedir)

SubMerchantKey alanı için dönen sonuç saklanmalıdır.

func (*IyzipayClient) CreateLimitedCompanySubMerchant

func (i *IyzipayClient) CreateLimitedCompanySubMerchant(req *LimitedCompanySubMerchantRequest) (response SubMerchantResponse, err error)

Limited/Anonim Şirket Alt Üye Oluşturma (Pazaryeri müşterisi olmanız gerekmektedir)

SubMerchantKey alanı için dönen sonuç saklanmalıdır.

func (*IyzipayClient) CreatePrivateSubMerchant

func (i *IyzipayClient) CreatePrivateSubMerchant(req *PrivateSubMerchantRequest) (response SubMerchantResponse, err error)

Şahıs Şirketi Alt Üye Oluşturma (Pazaryeri müşterisi olmanız gerekmektedir)

SubMerchantKey alanı için dönen sonuç saklanmalıdır.

func (*IyzipayClient) CreateSubscriptionPlan added in v1.0.1

func (i *IyzipayClient) CreateSubscriptionPlan(req CreateSubscriptionPlanRequest) (response SubscriptionPlanResponse, err error)

Abonelik ürünü için fiyatlandırma planı oluşturmak için kullanılır.

Not: Sandbox ortamında çalışmamaktadır.(Iyzico panelden eklentiler kısmından abonelik eklentisini aktif etmeniz gerekmektedir.)

func (*IyzipayClient) DeleteCardStorageCard

func (i *IyzipayClient) DeleteCardStorageCard(req *CardStorageDeleteRequest) (response CardStorageDeleteResponse, err error)

Kart saklama işlemi için kart silme isteği

func (*IyzipayClient) DeleteSubscriptionPlan added in v1.0.1

func (i *IyzipayClient) DeleteSubscriptionPlan(req DeleteSubscriptionPlanRequest) (response DeleteSubscriptionPlanResponse, err error)

Abonelik ürünü için fiyatlandırma planı silmek için kullanılır.

Not: Sandbox ortamında çalışmamaktadır.(Iyzico panelden eklentiler kısmından abonelik eklentisini aktif etmeniz gerekmektedir.)

func (*IyzipayClient) DeleteSubscriptionProduct

func (i *IyzipayClient) DeleteSubscriptionProduct(req DeleteSubscriptionProductRequest) (response SubscriptionProductResponse, err error)

Abonelik ürünü silmek için kullanılır.

Not: Sandbox ortamında çalışmamaktadır.(Iyzico panelden eklentiler kısmından abonelik eklentisini aktif etmeniz gerekmektedir.)

func (*IyzipayClient) DisapproveProduct

func (i *IyzipayClient) DisapproveProduct(req *MarketplaceProductRequest) (response MarketplaceProductResponse, err error)

Ürün onayını geri çekmek için kullanılır.

func (*IyzipayClient) FinalizeTDSPayment

func (i *IyzipayClient) FinalizeTDSPayment(req *TDSPaymentRequest) (response TDSPaymentResponse, err error)

3DS işlemlerinin tamamlanması için kullanılır.

ÖNEMLİ: Size geri dönen htmlde 3D Secure işlemini tamamlamanız gerekmektedir.

func (*IyzipayClient) GetCardStorageCards

func (i *IyzipayClient) GetCardStorageCards(req *CardStorageRetrieveRequest) (response CardStorageRetrieveResponse, err error)

func (*IyzipayClient) GetSubscriberDetail added in v1.0.1

func (i *IyzipayClient) GetSubscriberDetail(req *GetSubscriberDetailRequest) (response SubscriberResponse, err error)

Abone bilgilerini sorgulamak için kullanılır.

Not: Sandbox ortamında çalışmamaktadır.(Iyzico panelden eklentiler kısmından abonelik eklentisini aktif etmeniz gerekmektedir.)

func (*IyzipayClient) GetSubscriberList added in v1.0.1

func (i *IyzipayClient) GetSubscriberList(req *GetSubscriberListRequest) (response GetSubscriberListRequestResponse, err error)

Abone listesini sorgulamak için kullanılır.

Not: Sandbox ortamında çalışmamaktadır.(Iyzico panelden eklentiler kısmından abonelik eklentisini aktif etmeniz gerekmektedir.)

func (*IyzipayClient) GetSubscriptionPlanDetail added in v1.0.1

func (i *IyzipayClient) GetSubscriptionPlanDetail(req GetSubscriptionPlanDetailRequest) (response SubscriptionPlanResponse, err error)

Abonelik ürünü için fiyatlandırma planı detaylarını getirmek için kullanılır.

Not: Sandbox ortamında çalışmamaktadır.(Iyzico panelden eklentiler kısmından abonelik eklentisini aktif etmeniz gerekmektedir.)

func (*IyzipayClient) GetSubscriptionPlanList added in v1.0.1

func (i *IyzipayClient) GetSubscriptionPlanList(req GetSubscriptionPlanListRequest) (response GetSubscriptionPlanListResponse, err error)

Abonelik ürünleri için fiyatlandırma planlarını listelemek için kullanılır.

Not: Sandbox ortamında çalışmamaktadır.(Iyzico panelden eklentiler kısmından abonelik eklentisini aktif etmeniz gerekmektedir.)

func (*IyzipayClient) GetSubscriptionProductDetail

func (i *IyzipayClient) GetSubscriptionProductDetail(req GetSubscriptionProductDetailRequest) (response SubscriptionProductResponse, err error)

Abonelik ürünü detaylarını getirmek için kullanılır.

Not: Sandbox ortamında çalışmamaktadır.(Iyzico panelden eklentiler kısmından abonelik eklentisini aktif etmeniz gerekmektedir.)

func (*IyzipayClient) GetSubscriptionProductList

func (i *IyzipayClient) GetSubscriptionProductList(req GetSubscriptionProductListRequest) (response GetSubscriptionProductListResponse, err error)

Abonelik ürünlerini listelemek için kullanılır.

Not: Sandbox ortamında çalışmamaktadır.(Iyzico panelden eklentiler kısmından abonelik eklentisini aktif etmeniz gerekmektedir.)

func (*IyzipayClient) InitializeSubscriptionWithCheckoutForm added in v1.0.1

func (i *IyzipayClient) InitializeSubscriptionWithCheckoutForm(req InitSubscriptionWithCheckoutFormRequest) (response InitSubscriptionWithCheckoutFormResponse, err error)

CheckoutForm ile Abonelik başlatma isteği yapmak için kullanılır.

Abonelik süreci her zaman için ACTIVE veya PENDING durumu ile başlar. Eğer durum PENDING ise veya durum ACTIVE ancak ödeme planında bir deneme süresi belirtilmişse, iyzico abonelik isteğinde sadece kartın validasyonunu gerçekleştirir. Kart validasyonu 1 TL’lik bir çekim ve akabinde iade ile gerçekleşir. Bunun dışında herhangi bir işlem veya ödeme gerçekleşmez.

Istekten dönen script etiketi ile birlikte bu 2 divi kullanabilirsiniz:

<div id="iyzipay-checkout-form" class="responsive"></div>

<div id="iyzipay-checkout-form" class="popup"></div>

Not: Sandbox ortamında çalışmamaktadır.(Iyzico panelden eklentiler kısmından abonelik eklentisini aktif etmeniz gerekmektedir.)

func (*IyzipayClient) InitializeSubscriptionWithNonTDS added in v1.0.1

func (i *IyzipayClient) InitializeSubscriptionWithNonTDS(req InitSubscriptionWithNonTDSRequest) (response SubscriptionPaymentResponse, err error)

3D Secure olmayan Abonelik başlatma isteği yapmak için kullanılır.

Not: Sandbox ortamında çalışmamaktadır.(Iyzico panelden eklentiler kısmından abonelik eklentisini aktif etmeniz gerekmektedir.)

func (*IyzipayClient) InitializeTDSPayment

func (i *IyzipayClient) InitializeTDSPayment(req *InitTDSRequest, opts ...tdsOptions) (response InitTDSResponse, decodedHtmlContent string, err error)

TROY, MASTERCARD, VISA ve AMEX markalı kartlarla yapılan işlemleri destekler. BONUS, WORLD, MAXIMUM, AXESS, CARDFINANS, PARAF, ADVANTAGE gibi taksit programlarına katılmış olan kartlara 2, 3, 6, 9 ve 12 taksit seçenekleri sunulmaktadır. Response da dönen paymentId saklanmalıdır.

Bincontrol işlemi otomatik olarak yapılyor eğer bin kontrol yapmak istemiyorsanız binRequest parametresini false yapabilirsiniz.(Eğer kayıtlı kart ile ödeme yapılıyorsa bin kontrolü yapılmıyor.)

Html içeriği otomatik olarak decode ediliyor eğer decode etmek istemiyorsanız htmlDecodeRequest parametresini false yapabilirsiniz.

func (*IyzipayClient) InitilizePWIPaymentRequest

func (i *IyzipayClient) InitilizePWIPaymentRequest(req *InitPWIRequest) (response InitPWIResponse, err error)

PWI ile ödeme başlatma isteği yapılır.

Response içerisinde gelen token ve payWithIyzicoPageUrl saklanmalıdır.

func (*IyzipayClient) InquirySubscriptionWithCheckoutForm added in v1.0.1

func (i *IyzipayClient) InquirySubscriptionWithCheckoutForm(req InquirySubscriptionWithCheckoutFormRequest) (response SubscriptionPaymentResponse, err error)

CheckoutForm ile Abonelik sorgulama isteği yapmak için kullanılır.

Ödemenin tamamlanması gerekli.

Not: Sandbox ortamında çalışmamaktadır.(Iyzico panelden eklentiler kısmından abonelik eklentisini aktif etmeniz gerekmektedir.)

func (*IyzipayClient) InstallmentControlRequest added in v1.0.1

func (i *IyzipayClient) InstallmentControlRequest(req *InstallmentRequest) (response InstallmentResponse, err error)

Kartın taksit bilgilerini sorgulamak için kullanılır.

Talepte BIN numarası belirtilmemişse, mevcut tüm taksit seçenekleri görüntülenecektir. Ancak, BIN numarası verilirse, yalnızca ilgili ve o karta özel taksit seçeneklerini içerecektir.

force3ds değeri 1 olarak dönerse, işlemin 3DS ile işlenmesi gerektiği anlamına gelir. 0 ise tercihlere göre işlem yapılabilir. İşyeri hesabında 3DS zorunlu olarak ayarlanmışsa, bu değer sürekli olarak 1 döndürür.

func (*IyzipayClient) IyzilinkCreate added in v1.0.2

func (i *IyzipayClient) IyzilinkCreate(req *IyzilinkCreateRequest) (response IyzilinkResponse, err error)

Iyzilink oluşturma isteği

func (*IyzipayClient) IyzilinkDelete added in v1.0.2

func (i *IyzipayClient) IyzilinkDelete(req *IyzilinkDeleteRequest) (response IyzilinkDeleteResponse, err error)

Iyzilink silme isteği

func (*IyzipayClient) IyzilinkGetDetail added in v1.0.2

func (i *IyzipayClient) IyzilinkGetDetail(req *IyzilinkGetDetailRequest) (response IyzilinkGetDetailResponse, err error)

Iyzilink detay sorgulama isteği Token bazlı çalışmıyor nedense o yüzden clientta filtreleme ile çözdüm(şimdilik).[liste içerisinden token ile arama yapılıyor] Veri sayısı çok olursa bu yöntem performansı düşürebilir.

func (*IyzipayClient) IyzilinkGetList added in v1.0.2

func (i *IyzipayClient) IyzilinkGetList(req *IyzilinkGetListRequest) (response IyzilinkGetListResponse, err error)

Iyzilink listeleme isteği

func (*IyzipayClient) IyzilinkStatusUpdate added in v1.0.2

func (i *IyzipayClient) IyzilinkStatusUpdate(req *IyzilinkStatusUpdateRequest) (response IyzilinkStatusUpdateResponse, err error)

Iyzilink durum güncelleme isteği

func (*IyzipayClient) IyzilinkUpdate added in v1.0.2

func (i *IyzipayClient) IyzilinkUpdate(req *IyzilinkUpdateRequest) (response IyzilinkResponse, err error)

Iyzilink güncelleme isteği

func (*IyzipayClient) NonTDSPaymentRequest

func (i *IyzipayClient) NonTDSPaymentRequest(req *PaymentRequest) (response Non3DSPaymentResponse, err error)

3D Secure olmayan ödeme işlemi için istek oluşturur

func (*IyzipayClient) PaymentInquiryRequest

func (i *IyzipayClient) PaymentInquiryRequest(req *InquiryRequest) (response InquiryResponse, err error)

İşlem sorgulama isteği

func (*IyzipayClient) RefundPaymentToIyzicoAccount added in v1.0.1

func (i *IyzipayClient) RefundPaymentToIyzicoAccount(req *RefundPaymentIyzicoRequest) (response RefundPaymentIyzicoResponse, err error)

Yapılan ödemenin Iyzico hesabına iadesi için kullanılır.

func (*IyzipayClient) RefundPaymentV1 added in v1.0.1

func (i *IyzipayClient) RefundPaymentV1(req *RefundPaymentV1Request) (response RefundPaymentResponse, err error)

Yapılan ödemenin iadesi için kullanılır.

func (*IyzipayClient) RefundPaymentV2 added in v1.0.1

func (i *IyzipayClient) RefundPaymentV2(req *RefundPaymentV2Request) (response RefundPaymentResponse, err error)

Yapılan ödemenin iadesi için kullanılır.

v1 ile benzerdir sadece paymentTransactionId yerine paymentId kullanır.

func (*IyzipayClient) SubMerchantInquiry

func (i *IyzipayClient) SubMerchantInquiry(req *SubMerchantInquiryRequest) (response SubMerchantInquiryResponse, err error)

Alt Üye Sorgulama İsteği (Pazaryeri müşterisi olmanız gerekmektedir)

func (*IyzipayClient) UpdateIndividualSubMerchant

func (i *IyzipayClient) UpdateIndividualSubMerchant(req *IndividualSubMerchantUpdateRequest) (response UpdateSubMerchantResponse, err error)

Bireysel Alt Üye Güncelleme İsteği (Pazaryeri müşterisi olmanız gerekmektedir)

func (*IyzipayClient) UpdateLimitedCompanySubMerchant

func (i *IyzipayClient) UpdateLimitedCompanySubMerchant(req *LimitedCompanySubMerchantUpdateRequest) (response UpdateSubMerchantResponse, err error)

Limited/Anonim Şirket Alt Üye Güncelleme İsteği (Pazaryeri müşterisi olmanız gerekmektedir)

func (*IyzipayClient) UpdatePrivateSubMerchant

func (i *IyzipayClient) UpdatePrivateSubMerchant(req *PrivateSubMerchantUpdateRequest) (response UpdateSubMerchantResponse, err error)

Şahıs Şirketi Alt Üye Güncelleme İsteği (Pazaryeri müşterisi olmanız gerekmektedir)

func (*IyzipayClient) UpdateSubMerchantProduct

func (i *IyzipayClient) UpdateSubMerchantProduct(req *SubMerchantProductUpdateRequest) (response SubMerchantProductUpdateResponse, err error)

func (*IyzipayClient) UpdateSubscriber added in v1.0.1

func (i *IyzipayClient) UpdateSubscriber(req *UpdateSubscriberRequest) (response SubscriberResponse, err error)

Abone bilgilerini güncellemek için kullanılır.

Not: Sandbox ortamında çalışmamaktadır.(Iyzico panelden eklentiler kısmından abonelik eklentisini aktif etmeniz gerekmektedir.)

func (*IyzipayClient) UpdateSubscriptionPlan added in v1.0.1

func (i *IyzipayClient) UpdateSubscriptionPlan(req UpdateSubscriptionPlanRequest) (response SubscriptionPlanResponse, err error)

Abonelik ürünü için fiyatlandırma planı güncellemek için kullanılır.

Not: Sandbox ortamında çalışmamaktadır.(Iyzico panelden eklentiler kısmından abonelik eklentisini aktif etmeniz gerekmektedir.)

func (*IyzipayClient) UpdateSubscriptionProduct

func (i *IyzipayClient) UpdateSubscriptionProduct(req UpdateSubscriptionProductRequest) (response SubscriptionProductResponse, err error)

Abonelik ürünü güncellemek için kullanılır.

Not: Sandbox ortamında çalışmamaktadır.(Iyzico panelden eklentiler kısmından abonelik eklentisini aktif etmeniz gerekmektedir.)

type LimitedCompanySubMerchantRequest

type LimitedCompanySubMerchantRequest struct {
	LimitedCompanySubMerchantUpdateRequest
	// Limited veya Anonim Şirket için LIMITED_OR_JOINT_STOCK_COMPANY değeri gönderilmelidir.
	//
	// zorunlu
	SubMerchantType string `json:"SubMerchantType" validate:"required,oneof=LIMITED_OR_JOINT_STOCK_COMPANY"`
}

type LimitedCompanySubMerchantUpdateRequest

type LimitedCompanySubMerchantUpdateRequest struct {
	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir.
	//
	// zorunlu değil
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir
	//
	// zorunlu değil
	ConversationId string `json:"conversationId" validate:"omitempty"`

	// Alt üye işyeri adı.
	//
	// zorunlu değil
	Name string `json:"name" validate:"omitempty"`

	// Alt üye işyeri e-posta adresi.
	//
	// zorunlu
	Email string `json:"email" validate:"required,email"`

	// Alt üye işyeri telefon numarası.
	//
	// zorunlu değil
	GsmNumber string `json:"gsmNumber" validate:"omitempty"`

	// Alt üye işyeri adresi.
	//
	// zorunlu
	Address string `json:"address" validate:"required"`

	// Alt üye işyeri IBAN bilgisi. legalCompanyTitle ile uyumlu bir IBAN olmalı. Eğer alt üye işyeri ekleme esnasında boş bırakılırsa, ürüne onay vermeden önce mutlaka doldurulmalıdır.
	//
	// zorunlu değil
	Iban string `json:"iban" validate:"omitempty"`

	// Alt üye işyeri vergi dairesi.
	//
	// zorunlu
	TaxOffice string `json:"taxOffice" validate:"required"`

	// Alt üye işyeri vergi numarası.
	//
	// zorunlu değil
	TaxNumber string `json:"taxNumber" validate:"omitempty"`

	// Alt üye işyeri yasal şirket ünvanı.
	//
	// zorunlu
	LegalCompanyTitle string `json:"legalCompanyTitle" validate:"required"`

	// Para birimi default TL olarak belirlenmiştir. USD, EUR, GBP, RUB, CHF ve NOK para birimleri de belirlenebilir
	//
	// zorunlu değil
	Currency string `json:"currency" validate:"omitempty,oneof=TRY USD EUR GBP RUB CHF NOK"`

	// Alt üye işyeri tekil dış ID’si, sizin sisteminizdeki ID olabilir
	//
	// zorunlu
	SubMerchantExternalId string `json:"SubMerchantExternalId" validate:"required"`
}

type ListResponseData added in v1.0.2

type ListResponseData struct {
	// Listeleme durumu.
	ListingReviewed bool `json:"listingReviewed"`

	// Toplam iyzilink sayısı.
	TotalCount int `json:"totalCount"`

	// Sayfa numarası.
	CurrentPage int `json:"currentPage"`

	// Toplam sayfa sayısı.
	PageCount int `json:"pageCount"`

	// Sayfada görüntülenen iyzilink verisi.
	Items []DetailResponseData `json:"items"`
}

type MarketplaceProductRequest

type MarketplaceProductRequest struct {
	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir.
	//
	// zorunlu değil
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşmesi yapmak için kullanılabilir.
	//
	// zorunlu değil
	ConversationId string `json:"conversationId" validate:"omitempty"`

	// Ödeme kırılımına ait ürünün iyzico taradından belirlenmiş unique id'si.
	//
	// zorunlu
	PaymentTransactionId string `json:"paymentTransactionId" validate:"required"`
}

type MarketplaceProductResponse

type MarketplaceProductResponse struct {
	// Yapılan isteğin sonucunu bildirir. İşlem başarılı ise success, hatalı ise failure döner
	Status string `json:"status"`

	// İstekte belirtilen locale değeri geri dönülür, varsayılan değeri tr'dir.
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir.
	SystemTime string `json:"systemTime"`

	// İstek esnasında gönderilmişse, sonuçta aynen geri iletilir
	ConversationId string `json:"conversationId"`

	// Ödeme kırılımına ait ürünün iyzico taradından belirlenmiş unique id'si.
	PaymentTransactionId string `json:"paymentTransactionId"`
}

type Non3DSPaymentResponse

type Non3DSPaymentResponse struct {
	// İşlem sonucu başarılı ise success, başarısız ise failure döner.
	Status string `json:"status"`

	// İstekte belirtilen locale değeri geri dönülür, varsayılan değeri tr’dir.
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir.
	SystemTime int64 `json:"systemTime"`

	// İstek esnasında gönderilmişse, sonuçta aynen geri iletililir.
	ConversationID string `json:"conversationId"`

	// Ödeme sepet tutarı. Kırılım tutarlar toplamı sepet tutarına eşit olmalı.
	Price float64 `json:"price"`

	// İndirim vade farkı vs. hesaplanmış POS’tan geçen, tahsil edilen, nihai tutar.
	PaidPrice float64 `json:"paidPrice"`

	// Ödemenin taksit bilgisi, tek çekim için 1 döner. Geçerli değerler: 1, 2, 3, 6, 9, 12.
	Installment int `json:"installment"`

	// Ödemeye ait id, üye işyeri tarafından mutlaka saklanmalıdır. Ödemenin iptali ve iyzico ile iletişimde kullanılır.
	PaymentID string `json:"paymentId"`

	// Ödeme işleminin fraud filtrelerine göre durumu. Eğer ödemenin fraud risk skoru düşük ise ödemeye anında onay verilir, bu durumda 1 değeri döner.
	// Eğer fraud risk skoru yüksek ise ödeme işlemi reddedilir ve -1 döner. Eğer ödeme işlemi daha sonradan incelenip karar verilecekse 0 döner.
	// Geçerli değerler: 0, -1 ve 1. Üye işyeri sadece 1 olan işlemlerde ürünü kargoya vermelidir, 0 olan işlemler için bilgilendirme beklemelidir.
	FraudStatus int `json:"fraudStatus"`

	// Üye işyerinin uyguladığı vade/komisyon oranı. Örneğin price=100, paidPrice=110 ise üye işyeri vade/komisyon oranı %10’dur. Bilgi amaçlıdır.
	MerchantCommissionRate float64 `json:"merchantCommissionRate"`

	// Üye işyerinin uyguladığı vade/komisyon tutarı. Örneğin price=100, paidPrice=110 ise üye işyeri vade/komisyon tutarı 10’dur. Bilgi amaçlıdır.
	MerchantCommissionRateAmount float64 `json:"merchantCommissionRateAmount"`

	// Ödemeye ait iyzico işlem komisyon tutarı.
	IyziCommissionRateAmount float64 `json:"iyziCommissionRateAmount"`

	// Ödemeye ait iyzico işlem ücreti
	IyziCommissionFee float64 `json:"iyziCommissionFee"`

	// Eğer ödeme yapılan kart yerel bir kart ise, kartın ait olduğu kart tipi. Geçerli değerler: CREDIT_CARD, DEBIT_CARD, PREPAID_CARD.
	CardType string `json:"cardType"`

	// Eğer ödeme yapılan kart yerel bir kart ise, kartın ait olduğu kuruluş. Geçerli değerler: VISA, MASTER_CARD, AMERICAN_EXPRESS, TROY
	CardAssociation string `json:"cardAssociation"`

	// Eğer ödeme yapılan kart yerel bir kart ise, kartın ait olduğu aile. Geçerli değerler: Bonus, Axess, World, Maximum, Paraf, CardFinans, Advantage
	CardFamily string `json:"cardFamily"`

	// Ödeme yapılan kartın ilk 6 hanesi
	BinNumber string `json:"binNumber"`

	// Ödeme yapılan kartın son 4 hanesi
	LastFourDigits string `json:"lastFourDigits"`

	// Üye işyeri tarafından gönderilen sepet id’si
	BasketID string `json:"basketId"`

	// Ödemenin alındığı para birimi
	Currency string `json:"currency"`

	// Sepetteki ürünlerin listesi
	ItemTransactions []ItemTransaction `json:"itemTransactions"`

	// Metadata (Dökümantasyona eklenmemiş ama response içinde var)
	AuthCode string `json:"authCode"`

	// Metadata (Dökümantasyona eklenmemiş ama response içinde var)
	Phase string `json:"phase"`

	// Metadata (Dökümantasyona eklenmemiş ama response içinde var)
	HostReference string `json:"hostReference"`

	// Metadata (Dökümantasyona eklenmemiş ama response içinde var)
	Signature string `json:"signature"`
}

type PWIInquiryRequest

type PWIInquiryRequest struct {
	// İstek yapılan dil bilgisidir. İki karakterli dil kodu olarak gönderilir. Örnek: tr, en
	//
	// zorunlu değil
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir
	//
	// zorunlu değil
	ConversationID string `json:"conversationId" validate:"omitempty"`

	// Checkout form için oluşturulan tekil değer. Her istek için özel üretilir ve işyerine dönülür. Ödemenin sonucunu öğrenmek için zorunlu bir alandır.
	//
	// zorunlu
	Token string `json:"token" validate:"required"`
}

type PWIInquiryResponse

type PWIInquiryResponse struct {
	Non3DSPaymentResponse

	//Bankadan dönen değerdir. Sadece ödeme başarısız ise ve işlem 3ds ile yapılmışsa bu değer döner. 0,2,3,4,5,6,7 değerlerini alabilir.
	MdStatus int `json:"mdStatus"`
}

type PaginatedSubscriberData added in v1.0.1

type PaginatedSubscriberData struct {
	// Toplam kaç tane sonuç geldiğini belirtir.
	TotalCount int `json:"totalCount"`

	// Hangi sayfa için listeleme yapıldığını belirtir.
	CurrentPage int `json:"currentPage"`

	// Toplam kaç sayfa sonuç geldiğini belirtir.
	PageCount int `json:"pageCount"`

	// Abone detayları
	Items []SubscriberData `json:"items"`
}

type PaginatedSubscription added in v1.0.1

type PaginatedSubscription struct {
	// Toplam kaç tane sonuç geldiğini belirtir.
	TotalCount int `json:"totalCount"`

	// Hangi sayfa için listeleme yapıldığını belirtir.
	CurrentPage int `json:"currentPage"`

	// Toplam kaç sayfa sonuç geldiğini belirtir.
	PageCount int `json:"pageCount"`

	// Ürün detayları
	Items []Subscription `json:"items"`
}

type PaginatedSubscriptionPlan added in v1.0.1

type PaginatedSubscriptionPlan struct {
	// Toplam kaç tane sonuç geldiğini belirtir.
	TotalCount int `json:"totalCount"`

	// Hangi sayfa için listeleme yapıldığını belirtir.
	CurrentPage int `json:"currentPage"`

	// Toplam kaç sayfa sonuç geldiğini belirtir.
	PageCount int `json:"pageCount"`

	// Plan detayları
	Items []PricingPlan `json:"items"`
}

type PaymentCard

type PaymentCard struct {
	// Saklı kartın sahibinin kart saklama servisindeki kullanıcı kimliği. Eğer saklı kart ile ödeme yapılacaksa zorunludur.
	//
	// zorunlu değil.
	CardUserKey string `json:"cardUserKey,omitempty" validate:"omitempty"`

	// Ödemenin alınacağı saklı kartın token’ı. Eğer saklı kart ile ödeme yapılacaksa zorunludur.
	//
	// Abonelik servisinde de geçerlidir.
	//
	// zorunlu değil.
	CardToken string `json:"cardToken,omitempty" validate:"omitempty"`

	// Saklı kartın kullanılabilmesi için kullanıcı için oluşturulmuş token. Geçerlilik süresi 30 dakikadır.
	//
	// Abonelik servisinde geçerlidir.
	//
	// zorunlu değil.
	ConsumerToken string `json:"consumerToken,omitempty" validate:"omitempty"`

	// Kartın iyzico ortamında çözümlenmesi için kullanıcı için oluşturulmul değer. Geçerlilik süresi 30 dakikadır.
	//
	// Abonelik servisinde geçerlidir.
	//
	// zorunlu değil.
	UCSToken string `json:"ucstoken,omitempty" validate:"omitempty"`

	// Kartın saklanması için gerekli değer.
	//
	// Abonelik servisinde geçerlidir.
	//
	// Abonelik servisinde zorunludur ve true olmalıdır.
	RegisterConsumerCard bool `json:"registerConsumerCard,omitempty" validate:"omitempty"`

	// Ödemenin alınacağı kart sahibinin adı soyadı. Eğer saklı kart ile ödeme yapılmıyorsa zorunludur.
	//
	// zorunlu değil.
	CardHolderName string `json:"cardHolderName,omitempty" omitempty:"required"`

	// Ödemenin alınacağı kart numarası. Eğer saklı kart ile ödeme yapılmıyorsa zorunludur.
	//
	// zorunlu değil.
	CardNumber string `json:"cardNumber,omitempty" validate:"omitempty,creditcard"`

	// Ödemenin alınacağı kartın son kullanma tarihi yılı. Eğer saklı kart ile ödeme yapılmıyorsa zorunludur
	//
	// zorunlu değil.
	ExpireYear string `json:"expireYear,omitempty" validate:"omitempty,numeric,len=4"`

	// Ödemenin alınacağı kartın son kullanma tarihi ayı. Eğer saklı kart ile ödeme yapılmıyorsa zorunludur.
	//
	// zorunlu değil.
	ExpireMonth string `json:"expireMonth,omitempty" validate:"omitempty,numeric,len=2,oneof=01 02 03 04 05 06 07 08 09 10 11 12"`

	// Ödemenin alınacağı kartın güvenlik kodu. Eğer saklı kart ile ödeme yapılmıyorsa zorunludur. Saklı kartla ödeme yapılırken gönderilirse aynen bankaya iletilir
	//
	// zorunlu değil.
	CVC string `json:"cvc,omitempty" validate:"omitempty,numeric,len=3"`

	// Ödeme esnasında kartın kaydedilip kaydedilmeyeceğini belirleyen parametre. Varsayılan değeri 0 olup, geçerli değerler 0 ve 1’dir
	//
	// zorunlu değil.
	RegisterCard int `json:"registerCard,omitempty" validate:"omitempty,oneof=0 1"`
}

type PaymentRequest

type PaymentRequest struct {
	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir. en olarak kullanılabilir.
	//
	// zorunlu değil.
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir. En yaygın kullanış biçimi üye iş yerinin sipariş numarasıdır.
	//
	// zorunlu değil.
	ConversationID string `json:"conversationId" validate:"omitempty"`

	// Ödeme sepet tutarı. Kırılım (sepetin içerisindeki ürünler) tutarlar toplamı sepet tutarına eşit olmalı.
	//
	// zorunlu.
	Price string `json:"price" validate:"required,numeric"`

	// İndirim vade farkı vs. hesaplanmış POS’tan geçecek nihai tutar. Price değerinden küçük, büyük veya eşit olabilir
	//
	// zorunlu.
	PaidPrice string `json:"paidPrice" validate:"required,numeric"`

	// Taksit bilgisi, tek çekim için 1 gönderilmelidir. Geçerli değerler: 1, 2, 3, 6, 9, 12
	//
	// zorunlu.
	Installment int `json:"installment" validate:"required,numeric,gte=1,lte=12"`

	// Ödeme kanalı. Geçerli değerler enum içinde sunulmaktadır: WEB, MOBILE, MOBILE_WEB, MOBILE_IOS, MOBILE_ANDROID, MOBILE_WINDOWS, MOBILE_TABLET, MOBILE_PHONE
	//
	// zorunlu değil.
	PaymentChannel string `` /* 138-byte string literal not displayed */

	// Üye işyeri tarafından ilgili ödemenin sepetini tanımlamak için kullanılan id'dir. Sipariş numarası ya da anlamlı bir değer olabilir.
	//
	// zorunlu değil.
	BasketID string `json:"basketId" validate:"omitempty"`

	// Ödeme grubu, varsayılan PRODUCT. Geçerli değerler enum içinde sunulmaktadır: PRODUCT, LISTING, SUBSCRIPTION, OTHER.
	//
	// zorunlu değil.
	PaymentGroup string `json:"paymentGroup" validate:"omitempty,oneof=PRODUCT LISTING SUBSCRIPTION OTHER"`

	// Müşterinin ödeme işlemi için kullanılacak bilgiler
	//
	// zorunlu.
	Buyer Buyer `json:"buyer" validate:"required,dive"`

	// Ödeme kartı bilgileri
	//
	// zorunlu.
	PaymentCard PaymentCard `json:"paymentCard" validate:"required,dive"`

	// Müşterinin ödeme işlemi sırasında seçtiği teslimat adresi (Sepetteki ürünlerden en az 1 tanesi fiziksel ürün (itemType=PHYSICAL) ise zorunludur.)
	//
	// zorunlu değil.
	ShippingAddress ShippingAddress `json:"shippingAddress,omitempty" validate:"omitempty"`

	// Müşterinin ödeme işlemi sırasında seçtiği fatura adresi
	//
	// zorunlu.
	BillingAddress BillingAddress `json:"billingAddress" validate:"required,dive"`

	// Sepet içerisindeki ürünlerin listesi
	//
	// zorunlu.
	BasketItems []BasketItem `json:"basketItems" validate:"required,dive"`

	// Ödemenin alınacağı para birimi default TL olarak belirlenmiştir. Diğer değerler ise USD, EUR, GBP olmak üzere, farklı para birimleri ile alışverişin hesabınıza tanımlandığından emin olunuz.
	//
	// zorunlu.
	Currency string `json:"currency" validate:"required"`
}

type PricingPlan

type PricingPlan struct {
	// Dökümantasyonda belirtilmemiş
	ReferenceCode string `json:"referenceCode"`

	// Dökümantasyonda belirtilmemiş
	CreatedDate string `json:"createdDate"`

	// Dökümantasyonda belirtilmemiş
	Name string `json:"name"`

	// Dökümantasyonda belirtilmemiş
	Price float64 `json:"price"`

	// Dökümantasyonda belirtilmemiş
	PaymentInterval string `json:"paymentInterval"`

	// Dökümantasyonda belirtilmemiş
	PaymentIntervalCount int `json:"paymentIntervalCount"`

	// Dökümantasyonda belirtilmemiş
	TrialPeriodDays int `json:"trialPeriodDays"`

	// Dökümantasyonda belirtilmemiş
	CurrencyCode string `json:"currencyCode"`

	// Dökümantasyonda belirtilmemiş
	ProductReferenceCode string `json:"productReferenceCode"`

	// Dökümantasyonda belirtilmemiş
	PlanPaymentType string `json:"planPaymentType"`

	// Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner.
	Status string `json:"status"`
}

type PrivateSubMerchantRequest

type PrivateSubMerchantRequest struct {
	PrivateSubMerchantUpdateRequest
	// Şahıs Şirketi için PRIVATE_COMPANY değeri gönderilmelidir.
	//
	// zorunlu
	SubMerchantType string `json:"SubMerchantType" validate:"required,oneof=PRIVATE_COMPANY"`
}

type PrivateSubMerchantUpdateRequest

type PrivateSubMerchantUpdateRequest struct {
	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir.
	//
	// zorunlu değil
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir
	//
	// zorunlu değil
	ConversationId string `json:"conversationId" validate:"omitempty"`

	// Alt üye işyeri adı.
	//
	// zorunlu değil
	Name string `json:"name" validate:"omitempty"`

	// Alt üye işyeri e-posta adresi.
	//
	// zorunlu
	Email string `json:"email" validate:"required,email"`

	// Alt üye işyeri telefon numarası.
	//
	// zorunlu değil
	GsmNumber string `json:"gsmNumber" validate:"omitempty"`

	// Alt üye işyeri adresi.
	//
	// zorunlu
	Address string `json:"address" validate:"required"`

	// Alt üye işyeri IBAN bilgisi. legalCompanyTitle ile uyumlu bir IBAN olmalı. Eğer alt üye işyeri ekleme esnasında boş bırakılırsa, ürüne onay vermeden önce mutlaka doldurulmalıdır.
	//
	// zorunlu değil
	Iban string `json:"iban" validate:"omitempty"`

	// Alt üye işyeri vergi dairesi.
	//
	// zorunlu
	TaxOffice string `json:"taxOffice" validate:"required"`

	// Alt üye işyeri yasal şirket ünvanı.
	//
	// zorunlu
	LegalCompanyTitle string `json:"legalCompanyTitle" validate:"required"`

	// Para birimi default TL olarak belirlenmiştir. USD, EUR, GBP, RUB, CHF ve NOK para birimleri de belirlenebilir
	//
	// zorunlu değil
	Currency string `json:"currency" validate:"omitempty,oneof=TRY USD EUR GBP RUB CHF NOK"`

	// Alt üye işyeri tekil dış ID’si, sizin sisteminizdeki ID olabilir
	//
	// zorunlu
	SubMerchantExternalId string `json:"SubMerchantExternalId" validate:"required"`

	// Alt üye işyeri TC Kimlik Numarası.
	//
	// zorunlu değil
	IdentityNumber string `json:"identityNumber" validate:"omitempty"`
}

type ProductBuyerInfo added in v1.0.2

type ProductBuyerInfo struct {
	// Alıcı ismi
	//
	// zorunlu değil
	BuyerName string `json:"buyerName" validate:"omitempty"`

	// Alıcı soy ismi.
	//
	// zorunlu değil
	BuyerSurname string `json:"buyerSurname" validate:"omitempty"`

	// Alıcı şehri.
	//
	// zorunlu değil
	BuyerCity string `json:"buyerCity" validate:"omitempty"`

	// Alıcı ülkesi.
	//
	// zorunlu değil
	BuyerCountry string `json:"buyerCountry" validate:"omitempty"`

	// Alıcı GSM.
	//
	// zorunlu değil
	BuyerGsmNumber string `json:"buyerGsmNumber" validate:"omitempty"`

	// Alıcı email adresi.
	//
	// zorunlu değil
	BuyerEmail string `json:"buyerEmail" validate:"omitempty,email"`

	// Alıcı adresi.
	//
	// zorunlu değil
	BuyerAddress string `json:"buyerAddress" validate:"omitempty"`
}

type Receipt added in v1.0.2

type Receipt struct {
	// Tamamlan ceppos işleminin fiş bilgilerinin detayları
	Detail []DetailItem `json:"detail"`

	// Tamamlan ceppos işleminin fiş bilgileri
	PaymentBrandUrl string `json:"paymentBrandUrl"`

	// Üye İşyeri Logo Linki
	MerchantLogoURL *string `json:"merchantLogoURL"`

	// Kart Kuruluşu
	SchemaName string `json:"schemaName"`

	// Onay Durumu
	Approved bool `json:"approved"`

	// İade Onay Durumu
	RefundApproved bool `json:"refundApproved"`

	// İptal Onay Durumu
	VoidApproved bool `json:"voidApproved"`
}

type RefundPaymentIyzicoRequest added in v1.0.1

type RefundPaymentIyzicoRequest struct {
	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir.
	//
	// zorunlu değil.
	Locale string `json:"locale,omitempty" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir.
	//
	// zorunlu değil.
	ConversationID string `json:"conversationId,omitempty" validate:"omitempty"`

	// iyzico tarafında yapılmış ödeme işleminin benzersiz ödeme numarası.
	//
	// zorunlu
	PaymentID string `json:"paymentId" validate:"required"`

	// Müşterinin işlem sonucu yönlendirileceği ve notifikasyon gönderilecek URL
	//
	// zorunlu
	CallbackUrl string `json:"callbackUrl" validate:"required,httpsurl"`
}

type RefundPaymentIyzicoResponse added in v1.0.1

type RefundPaymentIyzicoResponse struct {
	// Yapılan isteğin sonucunu bildirir. İşlem başarılı ise success, hatalı ise failure döner.
	Status string `json:"status"`

	// İstekte belirtilen locale değeri geri dönülür, varsayılan değeri tr’dir.
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir.
	SystemTime int64 `json:"systemTime"`

	// İstek esnasında gönderilmişse, sonuçta aynen geri iletilir.
	ConversationID string `json:"conversationId"`

	// iyzico hesabına iade işlemi için oluşturulan eşsiz değer. Yönlendirilme sırasında callBackUrl'e de bu değer gönderilir
	Token string `json:"token"`

	// Müşterinin iyzico hesabına iade sürecini tamamlayabilmesi için yönlendirilmesi gereken link
	Url string `json:"url"`
}

type RefundPaymentResponse added in v1.0.1

type RefundPaymentResponse struct {
	// Yapılan isteğin sonucunu bildirir. İşlem başarılı ise success, hatalı ise failure döner.
	Status string `json:"status"`

	// İstekte belirtilen locale değeri geri dönülür, varsayılan değeridir.
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir
	SystemTime int64 `json:"systemTime"`

	// İstek esnasında gönderilmişse, sonuçta aynen geri iletilir.
	ConversationID string `json:"conversationId"`

	// İade alıcı referansı(ARN). Tüketicilerin iadeleri takip edebilecekleri bir değer.
	HostReference string `json:"hostReference"`

	// İade alıcı referansı(ARN). Tüketicilerin iadeleri takip edebilecekleri bir değer.
	Price string `json:"price"`

	// İptali yapılan ödeme para birimi.
	Currency string `json:"currency"`

	// İptali yapılan ödeme para birimi.
	PaymentId string `json:"paymentId"`

	// iyzico tarafından işleme verilen benzersiz ödeme kırılım numarası.
	PaymentTransactionID string `json:"paymentTransactionId"`
}

type RefundPaymentV1Request added in v1.0.1

type RefundPaymentV1Request struct {
	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir. en olarak kullanılabilir
	//
	// zorunlu değil.
	Locale string `json:"locale,omitempty" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir.
	//
	// zorunlu değil.
	ConversationID string `json:"conversationId,omitempty" validate:"omitempty"`

	// İşlemin gönderildiği ip adresi.
	//
	// zorunlu
	Ip string `json:"ip,omitempty" validate:"omitempty,ip"`

	// İşlemin gönderildiği ip adresi.
	//
	// zorunlu
	Price string `json:"price" validate:"required"`

	// iyzico tarafından işleme verilen benzersiz ödeme kırılım numarası.
	//
	// zorunlu
	PaymentTransactionID string `json:"paymentTransactionId" validate:"required"`
}

type RefundPaymentV2Request added in v1.0.1

type RefundPaymentV2Request struct {
	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir.
	Locale string `json:"locale,omitempty" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir.
	ConversationID string `json:"conversationId,omitempty" validate:"omitempty"`

	// İşlemin gönderildiği ip adresi.
	Ip string `json:"ip,omitempty" validate:"omitempty,ip"`

	// İade edilmek istenen tutar.
	Price string `json:"price" validate:"required"`

	// iyzico tarafından işleme verilen benzersiz ödeme numarası.
	PaymentID string `json:"paymentId" validate:"required"`
}

type ResponseData added in v1.0.2

type ResponseData struct {
	// Başarılı işlem sonucu oluşan iyzilink tokeni.
	Token string `json:"token"`

	// Başarılı işlem sonucu oluşan iyzilink urli.
	Url string `json:"url"`

	// Başarılı işlem sonucu oluşan iyzilink resim urli.
	ImageUrl string `json:"imageUrl"`
}

type ShippingAddress

type ShippingAddress struct {
	// Üye işyeri tarafındaki alıcıya ait adres bilgisi.
	//
	// zorunlu.
	Address string `json:"address" validate:"omitempty"`

	// Üye işyeri tarafındaki alıcıya ait posta kodu.
	//
	// zorunlu değil.
	ZipCode string `json:"zipCode,omitempty" validate:"omitempty,numeric"`

	// Üye işyeri tarafındaki alıcıya ait iletişim adı.
	//
	// zorunlu.
	ContactName string `json:"contactName" validate:"omitempty"`

	// Üye işyeri tarafındaki alıcıya ait şehir bilgisi.
	//
	// zorunlu.
	City string `json:"city" validate:"omitempty"`

	// Üye işyeri tarafındaki alıcıya ait ülke bilgisi.
	//
	// zorunlu.
	Country string `json:"country" validate:"omitempty"`
}

type StoredCard

type StoredCard struct {
	// Saklanan kartın sahibinin kart saklama servisindeki kartın tokeni
	CardToken string `json:"cardToken"`

	// Saklanana kartın adı
	CardAlias string `json:"cardAlias"`

	// Saklana kartın ilk 6 hanesi
	BinNumber string `json:"binNumber"`

	// Saklanan kartın son 4 hanesi
	LastFourDigits string `json:"lastFourDigits"`

	// Saklanan kartın ait olduğu kart tipi. Geçerli değerler: CREDIT_CARD, DEBIT_CARD, PREPAID_CARD
	CardType string `json:"cardType"`

	// Saklanan kartın ait olduğu kuruluş. Geçerli değerler: VISA, MASTER_CARD, AMERICAN_EXPRESS, TROY
	CardAssociation string `json:"cardAssociation"`

	// Saklanan kartın ait olduğu aile. Geçerli değerler: Bonus, Axess, World, Maximum, Paraf, CardFinans, Advantage
	CardFamily string `json:"cardFamily"`

	// Saklanan kartın ait olduğu bankayı temsil eden kod.
	CardBankCode int `json:"cardBankCode"`

	// Saklanan kartın ait olduğu banka adı
	CardBankName string `json:"cardBankName"`
}

type SubMerchantInquiryRequest

type SubMerchantInquiryRequest struct {

	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir.
	//
	// zorunlu değil
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir.
	//
	// zorunlu değil
	ConversationID string `json:"conversationId" validate:"omitempty"`

	// Alt üye işyeri tekil dış ID’si.
	//
	// zorunlu
	SubMerchantExternalId string `json:"subMerchantExternalId" validate:"required"`
}

type SubMerchantInquiryResponse

type SubMerchantInquiryResponse struct {

	// Yapılan isteğin sonucunu bildirir. İşlem başarılı ise success, hatalı ise failure döner
	Status string `json:"status"`

	// İstekte belirtilen locale değeri geri dönülür, varsayılan değeri tr’dir.
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir
	SystemTime int64 `json:"systemTime"`

	// İstek esnasında gönderilmişse, sonuçta aynen geri iletilir.
	ConversationId string `json:"conversationId"`

	// Alt üye işyeri adı.
	Name string `json:"name"`

	// Alt üye işyeri e-posta adresi.
	Email string `json:"email"`

	// Alt üye işyeri telefon numarası
	GsmNumber string `json:"gsmNumber"`

	// Alt üye işyeri adresi.s
	Address string `json:"address"`

	// Alt üye işyeri IBAN bilgisi. legalCompanyTitle ile uyumlu bir IBAN olmalı
	Iban string `json:"iban"`

	// Alt üye banka ülkesi
	BankCountry string `json:"bankCountry"`

	// Para birimi default TL olarak belirlenmiştir. USD, EUR, GBP, RUB, CHF ve NOK para birimleri de belirlenebilir
	Currency string `json:"currency"`

	// Alt üye işyeri vergi dairesi.
	TaxOffice string `json:"taxOffice"`

	// Alt üye işyeri yasal şirket ünvanı
	LegalCompanyTitle string `json:"legalCompanyTitle"`

	// Alt üye işyeri yasal şirket ünvanı
	SubMerchantExternalId string `json:"subMerchantExternalId"`

	// Alt üye işyeri TC Kimlik Numarası
	IdentityNumber string `json:"identityNumber"`

	// Alt üye tipi.
	SubMerchantType string `json:"subMerchantType"`

	// Alt üye işyerini simgeleyen tekil değer
	SubMerchantKey string `json:"subMerchantKey"`
}

type SubMerchantProductUpdateRequest

type SubMerchantProductUpdateRequest struct {
	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir
	//
	// zorunlu değil
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir
	//
	// zorunlu değil
	ConversationId string `json:"conversationId" validate:"omitempty"`

	// Ödeme kırılımına ait id.
	//
	// zorunlu
	PaymentTransactionId string `json:"paymentTransactionId" validate:"required"`

	// Alt üye işyerine IBAN adresine gönderilmesi istenen tutar.
	//
	// zorunlu
	SubMerchantPrice string `json:"subMerchantPrice" validate:"required,numeric"`

	// Alt üye işyeri oluşturma sorgusundan dönen değer.
	//
	// zorunlu
	SubMerchantKey string `json:"subMerchantKey" validate:"required"`
}

type SubMerchantProductUpdateResponse

type SubMerchantProductUpdateResponse struct {
	// İşlem sonucu başarılı ise success, başarısız ise failure döner.
	Status string `json:"status"`

	// İstekte belirtilen locale değeri geri dönülür, varsayılan değeri tr’dir.
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir
	SystemTime int64 `json:"systemTime"`

	// İstek esnasında gönderilmişse, sonuçta aynen geri iletilir.
	ConversationId string `json:"conversationId"`

	// Alt üye işyeri adı.
	ItemId string `json:"itemId"`

	// Ödeme kırılımına ait id, üye işyeri tarafından mutlaka saklanmalıdır.
	// Ödeme kırılımının iadesi, onayı, onay geri çekmesi ve iyzico ile iletişimde kullanılır. Tercihen itemId ile ilişkili bir şekilde tutulmalıdır.
	PaymentTransactionId string `json:"paymentTransactionId"`

	// Ödeme kırılımının durumu. Ödeme fraud kontrolünde ise 0 değeri döner, bu durumda fraudStatus değeri de 0’dır.
	// Ödeme, fraud kontrolünden sonra reddedilirse -1 döner. Pazaryeri modelinde ürüne onay verilene dek bu değer 1 olarak döner.
	// Pazaryeri modelinde ürüne onay verilmişse bu değer 2 olur. Geçerli değerler: 0, -1, 1 ve 2.
	TransactionStatus int `json:"transactionStatus"`

	// Toplem tutar
	Price float64 `json:"price"`

	// Müşterinin ödediği tutar
	PaidPrice float64 `json:"paidPrice"`

	// Üye işyerinin uyguladığı vade/komisyon oranı. Örneğin price=100, paidPrice=110 ise üye işyeri vade/komisyon oranı %10’dur. Bilgi amaçlıdır.
	MerchantCommissionRate float64 `json:"merchantCommissionRate"`

	// Üye işyerinin uyguladığı vade/komisyon tutarı. Örneğin price=100, paidPrice=110 ise üye işyeri vade/komisyon tutarı 10’dur. Bilgi amaçlıdır.
	MerchantCommissionRateAmount float64 `json:"merchantCommissionRateAmount"`

	// Ödemeye ait iyzico işlem komisyon tutarı.
	IyziCommissionRateAmount float64 `json:"iyziCommissionRateAmount"`

	// Ödemeye ait iyzico işlem ücreti
	IyziCommissionFee float64 `json:"iyziCommissionFee"`

	// Kırılım bazında üye işyeri blokaj oranı. iyzico – üye işyeri anlaşmasına göre, üye işyerine işlem bazında blokaj uygulayabilir.
	// Bu blokaj üye işyeri fraud riskini önlemek içindir, blokaj süresi boyunca para iyzico’da tutulur, bu süre sonrasında üye işyerine gönderilir.
	BlockageRate float64 `json:"blockageRate"`

	// Kırılım bazında üye işyeri blokaj tutarının, üye işyerine yansıyan rakamı. Blokaj tutarı mümkün olduğunca üye işyerine yansıtılır.
	// Eğer blokaj tutarı, üye işyeri tutarından daha büyükse bu durumda alt üye işyerine de yansıtılır.
	BlockageRateAmountMerchant float64 `json:"blockageRateAmountMerchant"`

	// Dökümantasyonda belirtilmemiş
	BlockageRateAmountSubMerchant float64 `json:"blockageRateAmountSubMerchant"`

	// İşlem bazında blokaj çözülme tarihi. yyyy-MM-dd HH:mm:ss formatındadır, örneğin 2015-10-19 14:36:52
	BlockageResolvedDate string `json:"blockageResolvedDate"`

	// Alt üye işyeri oluşturma sorgusundan dönen değer.
	SubMerchantKey string `json:"subMerchantKey"`

	// Alt üye işyerine IBAN adresine gönderilmiş tutar.
	SubMerchantPrice float64 `json:"subMerchantPrice"`

	// Dökümantasyonda belirtilmemiş
	SubMerchantPayoutRate float64 `json:"subMerchantPayoutRate"`

	// Dökümantasyonda belirtilmemiş
	SubMerchantPayoutAmount float64 `json:"subMerchantPayoutAmount"`

	// Bu kırılım için, iyzico işlem ücreti, komisyon tutarı ve blokajlar düşüldükten sonra üye işyerine gönderilecek tutar.
	MerchantPayoutAmount float64 `json:"merchantPayoutAmount"`

	ConvertedPayout ConvertedPayout `json:"convertedPayout"`
}

type SubMerchantResponse

type SubMerchantResponse struct {
	UpdateSubMerchantResponse
	// Alt üye işyerini simgeleyen tekil değer.
	SubMerchantKey string `json:"SubMerchantKey"`
}

type SubscriberData added in v1.0.1

type SubscriberData struct {
	// Abone referans kodu
	ReferenceCode string `json:"referenceCode"`

	// Abone oluşturulma tarihi
	CreatedDate int `json:"createdDate"`

	// Abone güncelleme tarihi
	Status string `json:"status"`

	// Abone adı
	Name string `json:"name"`

	// Abone soyadı
	Surname string `json:"surname"`

	// Abone kimlik numarası
	IdentityNumber string `json:"identityNumber"`

	// Abone e-posta adresi
	Email string `json:"email"`

	// Abone telefon numarası
	GsmNumber string `json:"gsmNumber"`

	// Abone fatura adresi
	ContactEmail string `json:"contactEmail"`

	// Abone telefon numarası
	ContactGsmNumber string `json:"contactGsmNumber"`

	// Abone fatura adresi
	BillingAddress BillingAddress `json:"billingAddress"`

	// Abone kargo adresi
	ShippingAddress *ShippingAddress `json:"shippingAddress"`
}

type SubscriberResponse added in v1.0.1

type SubscriberResponse struct {
	// Yapılan isteğin sonucunu bildirir. İşlem başarılı ise success, hatalı ise failure döner.
	Status string `json:"status"`

	// Dönen sonucun o anki unix timestamp değeridir
	SystemTime int64 `json:"systemTime"`

	// Abone bilgileri
	Data SubscriberData `json:"data"`
}

type Subscription

type Subscription struct {
	// Oluşturulan ürüne ait eşsiz referans kodu. Ürün güncellemek veya silmek, ürün detayı görmek ve plan oluşturmak için kullanılır.
	ReferenceCode string `json:"referenceCode"`

	// Ürün oluşturulma tarihi.
	CreatedDate string `json:"createdDate"`

	// Ürün adı. İstek sırasında ürüne verdiğiniz isimdir.
	Name string `json:"name"`

	// Ürün adı. İstek sırasında ürüne verdiğiniz isimdir.
	Description string `json:"description"`

	// Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner.
	Status string `json:"status"`

	// Ürün'e bağlı planları gösterir. Ürün oluşturulduğu anda henüz bir plan olmadığı için boş gelmektedir.
	PricingPlans []PricingPlan `json:"pricingPlans"`
}

type SubscriptionPaymentResponse added in v1.0.1

type SubscriptionPaymentResponse struct {
	// Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner.
	Status string `json:"status"`

	// Dönen sonucun o anki unix timestamp değeridir.
	SystemTime int64 `json:"systemTime"`

	Data CfSubscriptionData `json:"data"`
}

type SubscriptionPlan added in v1.0.1

type SubscriptionPlan struct {
	// Oluşturulan ürüne ait eşsiz referans kodu. Ürün güncellemek veya silmek, ürün detayı görmek ve plan oluşturmak için kullanılır.
	ReferenceCode string `json:"referenceCode"`

	// Ürün oluşturulma tarihi.
	CreatedDate string `json:"createdDate"`

	// Ürün adı. İstek sırasında ürüne verdiğiniz isimdir.
	Name string `json:"name"`

	// İstekte gönderdiğiniz değer geri iletilir. Ödeme periyotlarında karttan çekilecek tutardır.
	Price float64 `json:"price"`

	// İstekte gönderdiğiniz değer geri iletilir. Tekrarlı ödemenin alınacağı periodu belirler.
	PaymentInterval string `json:"paymentInterval"`

	// İstekte gönderdiğiniz değer geri iletilir. Ödeme periodunun hangi sıklıkta olacağını belirler.
	PaymentIntervalCount int `json:"paymentIntervalCount"`

	// İstekte gönderdiğiniz değer geri iletilir. Bu değer gönderilmediyse 0 olarak döner.
	TrialPeriodDays int `json:"trialPeriodDays"`

	// İstekte gönderdiğiniz değer geri iletilir. Ödemenin alınacağı para birimi.
	CurrencyCode string `json:"currencyCode"`

	// Plana bağlı ürünün referans kodu. İstekte gönderdiğiniz ürün bilgisi geri iletilir.
	ProductReferenceCode string `json:"productReferenceCode"`

	// RECURRING değerini döner ve ödemenin tekrarlı olduğunu belirtir
	PlanPaymentType string `json:"planPaymentType"`

	// Planın durumunu gösterir. ACTIVE değerini alır.
	Status string `json:"status"`

	// İstekte gönderdiğiniz değer geri iletilir. Ödeme periyodunun kaç kez tekrarlanacağını belirler.
	RecurrenceCount *int `json:"recurrenceCount"`
}

type SubscriptionPlanResponse added in v1.0.1

type SubscriptionPlanResponse struct {
	// Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner.
	Status string `json:"status"`

	// Dönen sonucun o anki unix timestamp değeridir.
	SystemTime int64 `json:"systemTime"`

	// Ürün bilgilerini içerirr
	Data SubscriptionPlan `json:"data"`
}

type SubscriptionProductResponse

type SubscriptionProductResponse struct {
	// Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner.
	Status string `json:"status"`

	// Dönen sonucun o anki unix timestamp değeridir.
	SystemTime int64 `json:"systemTime"`

	// Ürün bilgilerini içerirr
	Data Subscription `json:"data"`
}

type TDSPaymentRequest

type TDSPaymentRequest struct {
	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir. en olarak kullanılabilir
	//
	// zorunlu değil.
	Locale string `json:"locale" validate:"omitempty"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir. En yaygın kullanış biçimi üye iş yerinin sipariş numarasıdır
	//
	// zorunlu değil.
	ConversationId string `json:"conversationId" validate:"omitempty"`

	// 3D dönüş bağlantı adresinizden alacağınız paymentid değeridir.
	//
	// zorunlu.
	PaymentId string `json:"paymentId" validate:"required"`

	// 3DInit isteği oluştururken kullandığınız conversationId değeridir.
	//
	// zorunlu.
	PaymentConversationId string `json:"paymentConversationId" validate:"required"`
}

type TDSPaymentResponse

type TDSPaymentResponse struct {
	Non3DSPaymentResponse

	//Bankadan dönen değerdir. Sadece ödeme başarısız ise ve işlem 3ds ile yapılmışsa bu değer döner. 0,2,3,4,5,6,7 değerlerini alabilir.
	MdStatus int `json:"mdStatus"`
}

type Transaction added in v1.0.2

type Transaction struct {
	// Tamamlan ceppos işlemi tarihi
	TransactionDate string `json:"transactionDate"`

	// Tamamlan ceppos işlemi tarihinin ISO değeri
	TransactionDateISO string `json:"transactionDateISO"`

	// Tamamlan ceppos işleminin fiş bilgileri
	Receipt Receipt `json:"receipt"`

	// Ekran Mesajı
	ScreenMessage string `json:"screenMessage"`

	// Yerleşik Kayıt Numarası
	Rrn string `json:"rrn"`

	// Tahsil Edilen Tutar
	Amount float64 `json:"amount"`

	// Kur Kodu
	CurrencyCode string `json:"currencyCode"`

	// İşlem Kodu
	TransactionCode string `json:"transactionCode"`

	// Kayıt No
	RecordId int `json:"recordId"`

	// Maskeli Kart No
	MaskedPan string `json:"maskedPan"`

	// Otorizasyon Kodu
	AuthorizationCode string `json:"authorizationCode"`

	// Yanıt Kodu Değeri
	ResponseCodeValue string `json:"responseCodeValue"`

	// Durum Kodu
	StatusCode string `json:"statusCode"`

	// Sonuç Metni
	ResultText string `json:"resultText"`

	// İptal Edilebilme
	IsVoidable bool `json:"isVoidable"`

	// İade Edilebilme
	IsRefundable bool `json:"isRefundable"`

	// Banka Yanıt Kodu Değeri
	BankResponseCodeValue string `json:"bankResponseCodeValue"`

	// Issuer Bin No
	IssuerBin string `json:"issuerBin"`

	// Acquirer No
	AcquirerId string `json:"acquirerId"`

	// Temizleme tarihi
	ClearingDate *string `json:"clearingDate"`

	// İndirim Durumu
	HasDiscount bool `json:"hasDiscount"`

	// Taksit Durumu
	HasInstallment bool `json:"hasInstallment"`
}

type UpdateSubMerchantResponse

type UpdateSubMerchantResponse struct {
	// Yapılan isteğin sonucunu bildirir. İşlem başarılı ise success, hatalı ise failure döner.
	Status string `json:"status"`

	// İstekte belirtilen locale değeri geri dönülür, varsayılan değeri tr’dir.
	Locale string `json:"locale"`

	// Dönen sonucun o anki unix timestamp değeridir
	SystemTime int64 `json:"systemTime"`

	// İstek esnasında gönderilmişse, sonuçta aynen geri iletilir.
	ConversationId string `json:"conversationId"`
}

type UpdateSubscriberRequest added in v1.0.1

type UpdateSubscriberRequest struct {
	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir. en olarak kullanılabilir
	//
	// zorunlu değil.
	Locale string `json:"locale,omitempty" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir. En yaygın kullanış biçimi üye iş yerinin sipariş numarasıdır
	//
	// zorunlu değil.
	ConversationID string `json:"conversationId,omitempty" validate:"omitempty"`

	// Abone adı
	//
	// zorunlu
	Name string `json:"name" validate:"required"`

	// Abone soyadı
	//
	// zorunlu
	Surname string `json:"surname" validate:"required"`

	// Abone e-posta adresi
	//
	// zorunlu
	CustomerReferenceCode string `json:"customerReferenceCode" validate:"required"`

	// Abone fatura adresi
	//
	// zorunlu
	BillingAddress BillingAddress `json:"billingAddress" validate:"required,dive"`

	// Abone kimlik numarası
	//
	// zorunlu.
	IdentityNumber string `json:"identityNumber" validate:"required"`

	// Abone kargo adresi
	//
	// zorunlu değil.
	ShippingAddress ShippingAddress `json:"shippingAddress,omitempty" validate:"omitempty"`
}

type UpdateSubscriptionPlanRequest added in v1.0.1

type UpdateSubscriptionPlanRequest struct {
	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir. en olarak kullanılabilir
	//
	// zorunlu değil
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir.
	//
	// zorunlu değil
	ConversationId string `json:"conversationId" validate:"omitempty"`

	// Plan adı. Ödeme planı ile ilgili kısa bir bilgilendirme olacak şekilde değer girilmelidir.
	//
	// zorunlu
	Name string `json:"name" validate:"required"`

	// Plana ait eşsiz referans kodu. Plan güncellemek veya silmek, plan detayını görmek, abonelik başlatmak için kullanılır
	//
	// zorunlu
	PricingPlanReferenceCode string `json:"pricingPlanReferenceCode" validate:"required"`

	// Deneme süresi veya ücretsiz kullanım süresi olarak kullanılır. Bu değer girilirse, ilk ödeme girilen gün sayısı sonunda alınır.
	//
	// zorunlu değil
	TrialPeriodDays int `json:"trialPeriodDays" validate:"omitempty"`
}

type UpdateSubscriptionProductRequest

type UpdateSubscriptionProductRequest struct {
	// iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir. en olarak kullanılabilir.
	//
	// zorunlu değil
	Locale string `json:"locale" validate:"omitempty,oneof=tr en"`

	// Ürüne ait eşsiz referans kodu
	//
	// zorunlu
	ProductReferenceCode string `json:"productReferenceCode" validate:"required"`

	// Ürüne verilecek yeni isim.
	//
	// zorunlu
	Name string `json:"name" validate:"required"`

	// Ürüne verilecek yeni açıklama.
	Description string `json:"description" validate:"omitempty"`
}

type UserInfo added in v1.0.2

type UserInfo struct {
	// İlgili üye işyerine ait kullanıcının eposta bilgisidir.
	Email string `json:"email"`

	//İlgili üye işyerine ait kullanıcının ceppos kullanabilme yetkisini gösterir.
	CanPerformAction bool `json:"canPerformAction"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL