# 1. Oluştur

## Ortak Ödeme Sayfası Oluştur

<mark style="color:green;">`POST`</mark> `{{BaseAddress}}/api/paywall/checkout/generate`

{% hint style="info" %}
Önemli: Ödeme başlatma servisini kullanabilmeniz için 'Header' alanında '**apikeypublic**' ve '**apiclientpublic**' parametrelerini göndermeniz gerekmektedir.\
\
[<mark style="color:green;">**PaymentAPI Adresi**</mark>](https://developer.paywall.one/ortam)
{% endhint %}

{% hint style="info" %}
Ortak ödeme sayfasına <mark style="color:red;">ExpireDateTime</mark> tanımlanmadığı durumda, ortak ödeme sayfaları varsayılan olarak <mark style="color:red;">10 dakika</mark> süre boyunca geçerli olur
{% endhint %}

<table><thead><tr><th width="198">Parametre</th><th width="150">Tip</th><th width="107">Zorunlu</th><th width="403">Açıklama</th></tr></thead><tbody><tr><td>apikeypublic</td><td>string</td><td>Evet</td><td>Üye işyeri panelinden temin etmiş olduğunuz Public Key.</td></tr><tr><td>apiclientpublic</td><td>string</td><td>Evet</td><td>Üye işyeri panelinden temin etmiş olduğunuz Public Client.</td></tr></tbody></table>

#### Servise gönderilmesi gereken parametreler şu şekildedir :

<table><thead><tr><th width="259">Parametre</th><th width="152">Tip</th><th width="138">Zorunlu</th><th width="336">Açıklama</th></tr></thead><tbody><tr><td>UniqueCode</td><td>string</td><td>Evet</td><td>Ödeme'nin sizin tarafınızdaki takip/sipariş/sepet kodu</td></tr><tr><td>Amount</td><td>decimal</td><td>Evet</td><td>Ürün/Hizmet tutarı</td></tr><tr><td>LanguageId</td><td>int</td><td>Hayır</td><td>Ortak ödeme sayfasının dil ayarını kullanıcı segmentinize göre değiştirebilirsiniz.<br><br>Bkz: <a href="../sistem-verileri/dil-secenekleri">Dil Seçenekleri</a></td></tr><tr><td>CurrencyId</td><td>int</td><td>Evet</td><td>Para birimi<br><br><a href="https://paywall.gitbook.io/tr/sistem-verileri/para-birimleri">https://paywall.gitbook.io/tr/sistem-verileri/para-birimleri</a></td></tr><tr><td>CallbackSupport</td><td>bool</td><td>Evet</td><td>Başarılı ödeme sonuçları bir adrese geribildirim olarak POST atılır</td></tr><tr><td>CallbackAddress</td><td>string</td><td>Hayır</td><td>Başarılı ödeme sonuçlarının geribildirim atılacağı adres</td></tr><tr><td>InstallmentSupport</td><td>bool</td><td>Evet</td><td>Taksit seçenekleri ekranda görünsün mü?</td></tr><tr><td>InstallmentDynamic</td><td>bool</td><td>Hayır</td><td>Taksit seçenekleri aktif sağlayıcılarınız arasındaki aktif taksitleriniz kullanılarak listelenebilir. Bu listeleme kullanıcının girdiği kart ailesi bağlı olarak yapılacaktır.</td></tr><tr><td>SuccessBackUrl</td><td>string</td><td>Evet</td><td>Başarılı ödeme sonucunda yönlendirilecek sayfa</td></tr><tr><td>FailBackUrl</td><td>string</td><td>Evet</td><td>Başarısız ödeme sonucunda yönlendirilecek sayfa</td></tr><tr><td>Force3D</td><td>bool</td><td>Evet</td><td>Ortak ödeme sayfasında kullanıcı "Güvenli Ödeme" için zorlansın mı?</td></tr><tr><td>ShowProduct</td><td>bool</td><td>Evet</td><td>Ödemeye konu olan ürünler ortak ödeme sayfasında listelensin mi?</td></tr><tr><td>ExpireDateTime</td><td>datetime</td><td>Hayır</td><td>Ortak ödeme sayfasının yaşam süresi. Sizin tarafınızdan da belirlenebilir, belirlenmediği taktirde 10 dakika olarak belirlenir</td></tr><tr><td>Products</td><td>List&#x3C;<mark style="color:blue;">Products</mark>></td><td>Evet</td><td>Ödemeye konu olan ürün bilgileri (İzin verilmesi durumunda ortak ödeme sayfasında listelenir)</td></tr><tr><td>Customer</td><td><h4><mark style="color:blue;">Customer</mark></h4></td><td>Evet</td><td>Ödemeye konu olan müşteri bilgileri (Ortak ödeme sayfasında görüntülenmez. Raporlamalarda kullanılır)</td></tr><tr><td>CardWallSupport</td><td>bool</td><td>Hayır</td><td>Ortak ödeme sayfasında kayıtlı kart desteğini aktif etmek için kullanabilirsiniz.</td></tr><tr><td>CardWallRelationalId1</td><td>string</td><td>Hayır</td><td>Kart'ın ilişkilendirilmesi istenen unique bilgi</td></tr><tr><td>CardWallRelationalId2</td><td>string</td><td>hayır</td><td>Kart'ın ilişkilendirilmesi istenen unique ikinci bilgi (listeleme anında tüm bilgiler gönderilmelidir)</td></tr><tr><td>CardWallRelationalId3</td><td>string</td><td>Hayır</td><td>Kart'ın ilişkilendirilmesi istenen unique üçüncü bilgi (listeleme anında tüm bilgiler gönderilmelidir)</td></tr><tr><td>PayWatchSupport</td><td>bool</td><td>Hayır</td><td>Ödemeler PayWatch ile izlensin mi? (Sadece 'Başladı' durumunda olanlar)</td></tr><tr><td>PayWatchMin</td><td>short</td><td>Evet (Koşullu)</td><td>PayWatch ödeme işleminin kaç dakika sonrasında çalışsın?<br><br><mark style="color:red;">Minimum: 5 | Maksimum: 20</mark></td></tr><tr><td>PayWatchCallbackAddress</td><td>string</td><td>Hayır</td><td>Dolu gönderilmesi durumunda PayWatch'ın tespit ettiği ödemedeki değişiklik sonrasında belirtilen adrese geri bildirim atılır</td></tr><tr><td>MasterpassSupport</td><td>bool</td><td>Hayır</td><td>Ortak ödeme sayfasında Masterpass desteğinin aktif olması için ilgili parametreyi <code>true</code> göndermeniz gerekmektedir.<br><br><strong>Not:</strong> Bu parametrenin <code>true</code> gönderilmesiyle birlikte Paywall panelinde Sanal Pos sağlayıcılar sayfasındaki Masterpass eklentisini de aktif etmeniz gerekmektedir.</td></tr><tr><td>UseMasterpassAlternative</td><td>bool</td><td>Hayır</td><td>Ortak ödeme sayfasında Masterpass'de kayıtlı olmayan, manuel girilen ve kullanıcı tarafından Masterpass'de kayıt edilmek istenmeyen kartlı işlemler için Masterpass harici Paywall panelinde bağlantı kurulmuş Sanal Pos sağlayıcıları kullanılması isteniyorsa, bu parametre <code>true</code> olarak gönderilmelidir</td></tr><tr><td>RouteGroupKey</td><td>string</td><td>Evet/Hayır</td><td>RouteGroup ile ödeme alınması istenmesi durumda bu parametreyle ilgili RouteGroup'un anahtar bilgisi iletilmelidir</td></tr><tr><td>SupportCampaign</td><td>bool</td><td>Hayır</td><td>Ortak ödeme sayfasında kullanılan kart bilgisine verilen kampanyaların listelenebilmesi için ilgili parametre <code>true</code> gönderilmelidir.<br><br><strong>Not:</strong> Kampanya sorgusunun yapılabilmesi için Paywall panelinde bağlı olan sanal pos sağlayıcılarından en az 1 tanesi Kampanyalı Pos olarak işaretlenmelidir</td></tr><tr><td>SupportReward<br><br><mark style="color:orange;"><strong><code>*Yakında</code></strong></mark></td><td>bool</td><td>Hayır</td><td>Ortak ödeme sayfasında ilgili kart bilgileri için Para Puan kullanılabilmesi için parametrenin <code>true</code> olarak gönderilmesi gerekmektedir</td></tr></tbody></table>

#### Yukardaki parametreler içerisindeki <mark style="color:blue;">Products</mark>:

<table><thead><tr><th width="238.66015625">Parametre</th><th width="151">Tip</th><th width="112">Zorunlu</th><th width="336">Açıklama</th></tr></thead><tbody><tr><td>ProductId</td><td>string</td><td>Evet</td><td>Ürününüzün sisteminizdeki kimliği</td></tr><tr><td>ProductImage</td><td>string</td><td>Hayır</td><td>Ürününüzün görseline ait url</td></tr><tr><td>ProductName</td><td>string</td><td>Evet</td><td>Ürününüzün adı</td></tr><tr><td>ProductCategory</td><td>string</td><td>Evet</td><td>Ürününüzün kategorisi</td></tr><tr><td>ProductDescription</td><td>string</td><td>Evet</td><td>Ürününüzün açıklaması</td></tr><tr><td>ProductAmount</td><td>decimal</td><td>Evet</td><td>Ürününüzün tutarı</td></tr><tr><td>MemberId</td><td>int</td><td>Hayır</td><td>MarketPlace modeli için zorunludur. Alt üye işyerinin Paywall sistemindeki MemberId bilgisiyle doldurulmalıdır.</td></tr><tr><td>MemberEarningCalculated</td><td><p>bool</p><p><br></p></td><td>Hayır</td><td>Pazaryeri kapsamında, alt şirketin hak edişini siz hesapladıysanız bu parametreyi true göndermelisiniz</td></tr><tr><td>MemberEarning</td><td><p>decimal</p><p><br></p></td><td>Hayır</td><td>Pazaryeri kapsamında, alt şirketin hak edişini siz hesapladıysanız bu parametreyi hak ediş değerini Paywall'a bildirmelisiniz</td></tr><tr><td>MemberCustomCommission</td><td>bool</td><td>Hayır</td><td>Pazaryeri kapsamında, alt şirkete bu satış özelinde komisyon belirtmek isterseniz kullanılan parametredir</td></tr><tr><td>MemberCommission</td><td><p>decimal</p><p><br></p></td><td>Hayır</td><td>Pazaryeri kapsamında, alt şirkete bu satış özelinde komisyon belirtmek isterdiğinizde, komisyon değerinin gönderildiği parametredir</td></tr></tbody></table>

#### Yukardaki parametreler içerisindeki <mark style="color:blue;">Customer</mark>:

<table><thead><tr><th width="197">Parametre</th><th width="154">Tip</th><th width="112">Zorunlu</th><th width="336">Açıklama</th></tr></thead><tbody><tr><td>FullName</td><td>string</td><td>Evet</td><td>Müşteri ad/soyad</td></tr><tr><td>Phone</td><td>string</td><td>Evet</td><td>Müşteri telefon numarası<br><br><strong>Not:</strong> Masterpass için zorunludur</td></tr><tr><td>Email</td><td>string</td><td>Evet</td><td>Müşteri E-Posta</td></tr><tr><td>Country</td><td>string</td><td>Hayır</td><td>Ülke</td></tr><tr><td>City</td><td>string</td><td>Hayır</td><td>Şehir</td></tr><tr><td>Address</td><td>decimal</td><td>Hayır</td><td>Açık Adres</td></tr><tr><td>IdentityNumber</td><td>string</td><td>Hayır</td><td>Bireysel Müşteri</td></tr><tr><td>TaxNumber</td><td>string</td><td>Hayır</td><td>Kurumsal Müşteri</td></tr><tr><td>CustomerId</td><td>string</td><td>Evet/Hayır</td><td>Ödeyici kullanıcının sisteminizdeki Id bilgisiyle doldurmanız gerekmektedir<br><br><strong>Not:</strong> Masterpass için zorunludur</td></tr></tbody></table>

Servise gönderilecek örnek bir JSON dosyası şu şekildedir :

{% tabs %}
{% tab title="JSON" %}

```json5
{
    "UniqueCode": "{{$guid}}",
    "Amount": 10.0,
    "CurrencyId": 1,
    "LanguageId": 1,
    "CallbackSupport": true,
    "PayWatchSupport": true,
    "CallbackAddress": "https://yourwebservice.com/callback",
    "PayWatchMin": 5,
    "PayWatchCallbackAddress": "https://yourwebservice.com/callback/paywatch",
    "SuccessBackUrl": "https://yourwebservice.com/callback/success",
    "FailBackUrl": "https://yourwebservice.com/callback/unsuccessful",
    "Force3D": false,
    "InstallmentSupport": true,
    "InstallmentDynamic": true,
    "CardWallSupport": false,
    "CardWallRelationalId1": "user-id",
    "CardWallRelationalId2": null,
    "CardWallRelationalId3": null,
    "ShowProduct": true,
    "ReceiverInfoSupport": false,
    "ReceiverAddressSupport": false,
    "RegionId": null,
    "ProviderBased": false,
    "ProviderKey": "",
    "ProviderCondition": {
      "Installment": null
    },
    "InterestConfirmationPopup": true,
    "SkipInterest": false,
    "SkipInterestCondition": null,
    "Customer": {
        "FullName":"{{$randomFirstName}}",
        "Phone":"905123456789", // Must for Masterpass
        "Email":"{{$randomEmail}}",
        "Country":"{{$randomCountry}}",
        "City":"{{$randomCity}}",
        "Address":"{{$randomStreetAddress}}",
        "IdentityNumber":"2523123412",
        "TaxNumber":"456345456",
        "CustomerId": "72845" // Must for Masterpass (Payer's userid in your system)
    },
    "Products": [
      {
       "MemberId": 12345,
       "MemberEarningCalculated": true,
       "MemberEarning": 96.39,
       "MemberCustomCommission": true,
       "MemberCommission": 2.61,
       "ProductId": "1",
       "ProductImage": "https://yourwebsite.com/photoimage",
       "ProductName": "1",
       "ProductCategory": "1",
       "ProductDescription": null,
       "ProductAmount": 10
      }
    ],
    "ExpireDateTime": null,
    "RouteGroupKey": "route-999",
    "MasterpassSupport": true, // If payment page will support Masterpass
    "UseMasterpassAlternative": true, // If payment page will support altervative providers than Masterpass
    "SupportCampaign": true,
    "SupportReward": false // Soon
  }
```

{% endtab %}
{% endtabs %}

Servisten dönen parametreler şu şekildedir:

<table><thead><tr><th width="189">Parametre</th><th width="100.33333333333331">Tip</th><th>Açıklama</th></tr></thead><tbody><tr><td>ErrorCode</td><td>int</td><td>Hata kodu. İşlem başarılı ise '0' değerini döner.</td></tr><tr><td>Result</td><td>bool</td><td>True ya da false değeri döner. İşlem başarılı iste 'true' değerini döner.</td></tr><tr><td>Message</td><td>string</td><td>İşlem hatalıysa, bu hataya dair belirtilen mesajdır, locale parametresine göre dil desteği sunar.</td></tr><tr><td>Body</td><td>string</td><td>Link parametresi altında ödeme linkini döner</td></tr></tbody></table>

{% tabs %}
{% tab title="JSON" %}
{% code lineNumbers="true" %}

```json
{
    "ErrorCode": 0,
    "Result": true,
    "Message": "",
    "Body": {
        "Id": 13284456,
        "Guid": "a2319b22-b442-4b9d-bc87-b800be680761",
        "UniqueCode": "OAEASG54455565256792",
        "Amount": 25.0,
        "Link": "https://dev-checkout.itspaywall.com/checkout/?CheckoutId=a2319b22-b442-4b9d-bc87-b800be680761"
    }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}
