# 3. Non-Secure (Sigorta)

{% hint style="danger" %}
Not: Sigortacılık alanındaki işleyişi desteklemek ve kolaylaştırmak adına Kart numarasının ilk 8 ve son 4 hanesi ile işlem gerçekleştirilmesi için uygulanan bir yöntemdir.
{% endhint %}

<mark style="color:green;">`POST`</mark> `{{Base Adres}}/api/paywall/payment/startdirect/insurance`

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

**Servise gönderilecek örnek&#x20;**<mark style="color:green;">**JSON**</mark>**&#x20;ve&#x20;**<mark style="color:green;">**örnek kodlar**</mark>**&#x20;aşağıdaki gibidir.**

<table><thead><tr><th width="162">Parametre</th><th width="79">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>

<mark style="color:blue;">**Paywall İstek Payload**</mark>

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

```json5
{
    "PaymentDetail": {
        "Amount": 4.44,
        "MerchantUniqueCode": "{{$guid}}",
        "TrackingCode": "TrackingCode1",
        "CurrencyId": 1,
        "MerchantSuccessBackUrl": "https://itspaywall.com/successful",
        "MerchantFailBackUrl": "https://itspaywall.com/unsuccessful",
        "Installment": 1,
        "ChannelId": 0,
        "TagId": 0,
        "ClientIP": "1.1.1.1",
        "ProviderBased": false,
        "ProviderKey": "providerkey",
        "PosBased": false,
        "PosId": 0,
        "Half2D": false,
        "PayRouteByPass": false,
        "PayRouteType": 0,
        "RouteGroupKey": "route-003"
    },
    "Card": {
        "OwnerName": "test",
        "CardNoFirst": "41197901",
        "CardNoLast": "6389",
        "IdentityNumber": "17654932298",
        "UseAdditionalIdentityNumber": true,
        "AdditionalIdentityNumber": "1010101010"
        "UniqueCode": "",
        "CardSave": {
            "Nickname": "test karti",
            "RelationalId1": "007",
            "RelationalId2": "",
            "RelationalId3": "",
            "Save": false
        }
    },
    "Customer": {
        "FullName": "FullName",
        "Phone": "5555555555",
        "Email": "enes@paywall.one",
        "Country": "Country",
        "City": "City",
        "Address": "Address",
        "IdentityNumber": "IdentityNumber",
        "TaxNumber": "TaxNumber"
        "DeviceFingerprint": "FingerPrint",
        "UserAgent": "UserAgent",
        "UserRegisteredAt": "2026-01-13T12:00:00",
        "Location": {
            "Country": "Turkey",
            "City": "Istanbul",
            "Region": "europe",
            "Lat": "41.07",
            "Lon": "29.00"
        }
    },
    "UseFraudParameters": false, 
    "FraudParameters":{     
        "BypassFraud": false,        
        "OverrideActualParameters": false,
        "DeviceFingerprint": "test-FRD",
        "Amount": 101,       
        "ClientIP": "1.1.1.1",        
        "CountryCode": "TR-FRD",        
        "UserAgent": "UserAgent-FRD",        
        "Email": "FRD@gmail.com",        
        "Phone": "5435435454-FRD",
        "UserRegisteredAt": "2026-01-13T12:00:00",
        "Location": {
            "Country": "Turkey",
            "City": "Istanbul",
            "Region": "europe",
            "Lat": "41.07",
            "Lon": "29.00"
        }
    }
}
```

{% endcode %}
{% endtab %}

{% tab title="C#" %}

<pre class="language-csharp"><code class="lang-csharp">using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

public class Program
{
    static readonly HttpClient client = new HttpClient();

    public class PaymentDetail
    {
        public double Amount { get; set; }
        public string MerchantUniqueCode { get; set; }
        public int CurrencyId { get; set; }
        public string MerchantSuccessBackUrl { get; set; }
        public string MerchantFailBackUrl { get; set; }
        public int Installment { get; set; }
        public int ChannelId { get; set; }
        public int TagId { get; set; }
        public bool Half2D { get; set; }
    }

    public class CardInsurance
<strong>    {
</strong>       public string OwnerName { get; set; }
       public string UniqueCode { get; set; }
       public CardSave? CardSave { get; set; }
       public string IdentityNumber { get; set; }
       public string CardNoFirst { get; set; }
       public string CardNoLast { get; set; }
       public string TempCardToken { get; set; }
    }

    public class Customer
    {
        public string FullName { get; set; }
        public string Phone { get; set; }
        public string Email { get; set; }
        public string Country { get; set; }
        public string City { get; set; }
        public string Address { get; set; }
        public string IdentityNumber { get; set; }
        public string TaxNumber { get; set; }
    }

    public class Product
    {
        public string ProductId { get; set; }
        public string ProductName { get; set; }
        public string ProductCategory { get; set; }
        public string ProductDescription { get; set; }
        public double ProductAmount { get; set; }
    }

    public class Root
    {
        public PaymentDetail PaymentDetail { get; set; }
        public Card Card { get; set; }
        public Customer Customer { get; set; }
        public Product[] Products { get; set; }
    }

    public static async Task Main()
    {
        Root root = new Root
        {
            PaymentDetail = new PaymentDetail
            {
                Amount = 9.85,
                MerchantUniqueCode = "AJSHFSAKFHASKHFA",
                CurrencyId = 1,
                MerchantSuccessBackUrl = "https://merchantsite.site.com/success",
                MerchantFailBackUrl = "https://merchantsite.site.com/fail",
                Installment = 1,
                ChannelId = 0,
                TagId = 0,
                Half2D = false
            },
            Card = new Card
            {
                OwnerName = "John Doe",
                IdentityNumber = "11111111110",
                CardNoFirst = "54456766",
                CardNoLast = "1234",
                UniqueCode = ""
            },
            Customer = new Customer
            {
                FullName = "FullName",
                Phone = "5336662211",
                Email = "enes@xcompany.com",
                Country = "Country",
                City = "City",
                Address = "Address",
                IdentityNumber = "IdentityNumber",
                TaxNumber = "TaxNumber"
            },
            Products = new Product[] {
                new Product {
                    ProductId = "ProductId",
                    ProductName = "ProductName",
                    ProductCategory = "ProductCategory",
                    ProductDescription = "ProductDescription",
                    ProductAmount = 9.85
                }
            }
        };

        string json = JsonConvert.SerializeObject(root, Formatting.Indented);
        var data = new StringContent(json, Encoding.UTF8, "application/json");

        client.DefaultRequestHeaders.Add("apikeypublic", "%%");
        client.DefaultRequestHeaders.Add("apiclientpublic", "%%");

        var url = "{{Base Adres}}/api/paywall/payment/startdirect/insurance";
        var response = await client.PostAsync(url, data);

        string result = response.Content.ReadAsStringAsync().Result;
        Console.WriteLine(result);
    }
}
</code></pre>

{% endtab %}

{% tab title="GO" %}

```go
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"
)

type PaymentDetail struct {
	Amount                 float64 `json:"Amount"`
	MerchantUniqueCode     string  `json:"MerchantUniqueCode"`
	CurrencyId             int     `json:"CurrencyId"`
	MerchantSuccessBackUrl string  `json:"MerchantSuccessBackUrl"`
	MerchantFailBackUrl    string  `json:"MerchantFailBackUrl"`
	Installment           int     `json:"Installment"`
	ChannelId              int     `json:"ChannelId"`
	TagId                  int     `json:"TagId"`
	Half2D                 bool    `json:"Half2D"`
}

type Card struct {
	OwnerName   string `json:"OwnerName"`
	Number      string `json:"Number"`
	ExpireMonth string `json:"ExpireMonth"`
	ExpireYear  string `json:"ExpireYear"`
	Cvv         string `json:"Cvv"`
	UniqueCode  string `json:"UniqueCode"`
}

type Customer struct {
	FullName      string `json:"FullName"`
	Phone         string `json:"Phone"`
	Email         string `json:"Email"`
	Country       string `json:"Country"`
	City          string `json:"City"`
	Address       string `json:"Address"`
	IdentityNumber string `json:"IdentityNumber"`
	TaxNumber      string `json:"TaxNumber"`
}

type Product struct {
	ProductId          string  `json:"ProductId"`
	ProductName        string  `json:"ProductName"`
	ProductCategory    string  `json:"ProductCategory"`
	ProductDescription string  `json:"ProductDescription"`
	ProductAmount      float64 `json:"ProductAmount"`
}

type Data struct {
	PaymentDetail PaymentDetail `json:"PaymentDetail"`
	Card          Card          `json:"Card"`
	Customer      Customer      `json:"Customer"`
	Products      []Product     `json:"Products"`
}

type ResponseData struct {
	ErrorCode int
	Result    bool
	Message   string
	Body      string
}

func main() {
	data := Data{
		PaymentDetail: PaymentDetail{
			Amount:                 9.85,
			MerchantUniqueCode:     "AJSHFSAKFHASKHFA",
			CurrencyId:             1,
			MerchantSuccessBackUrl: "https://merchantsite.site.com/success",
			MerchantFailBackUrl:    "https://merchantsite.site.com/fail",
			Installement:           1,
			ChannelId:              0,
			TagId:                  0,
			Half2D:                 false,
		},
		Card: Card{
			OwnerName:   "John Doe",
			Number:      "5528790000000008",
			ExpireMonth: "12",
			ExpireYear:  "2030",
			Cvv:         "123",
			UniqueCode:  "",
		},
		Customer: Customer{
			FullName:       "FullName",
			Phone:          "5336662211",
			Email:          "enes@xcompany.com",
			Country:        "Country",
			City:           "City",
			Address:        "Address",
			IdentityNumber: "IdentityNumber",
			TaxNumber:      "TaxNumber",
		},
		Products: []Product{
			{
				ProductId:          "ProductId",
				ProductName:        "ProductName",
				ProductCategory:    "ProductCategory",
				ProductDescription: "ProductDescription",
				ProductAmount:      9.85,
			},
		},
	}

	payloadBuf := new(bytes.Buffer)
	json.NewEncoder(payloadBuf).Encode(data)

	req, _ := http.NewRequest("POST", "{{Base Adres}}/api/paywall/payment/startdirect/insurance", payloadBuf)

	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("apikeypublic", "%%")
	req.Header.Set("apiclientpublic", "%%")

	client := &http.Client{}
	res, e := client.Do(req)
	if e != nil {
		panic(e)
	}

	defer res.Body.Close()

	body, _ := ioutil.ReadAll(res.Body)

	var responseData ResponseData
	json.Unmarshal(body, &responseData)

	fmt.Println("ErrorCode: ", responseData.ErrorCode)
	fmt.Println("Result: ", responseData.Result)
	fmt.Println("Message: ", responseData.Message)
	fmt.Println("Body: ", responseData.Body)
}
```

{% endtab %}

{% tab title="Java" %}

```xml
<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.12.5</version>
    </dependency>
    <dependency>
        <groupId>com.squareup.okhttp3</groupId>
        <artifactId>okhttp</artifactId>
        <version>4.9.0</version>
    </dependency>
</dependencies>
```

```java
import okhttp3.*;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import java.io.IOException;

public class Main {

    public static void main(String[] args) throws IOException {
        OkHttpClient client = new OkHttpClient();
        ObjectMapper mapper = new ObjectMapper();

        // Create JSON in a readable way
        ObjectNode rootNode = mapper.createObjectNode();
        rootNode.put("Amount", 9.85);
        rootNode.put("MerchantUniqueCode", "AJSHFSAKFHASKHFA");
        rootNode.put("CurrencyId", 1);
        rootNode.put("MerchantSuccessBackUrl", "https://merchantsite.site.com/success");
        rootNode.put("MerchantFailBackUrl", "https://merchantsite.site.com/fail");
        rootNode.put("Installment", 1);
        rootNode.put("ChannelId", 0);
        rootNode.put("TagId", 0);
        rootNode.put("Half2D", false);
        // and so on for all fields

        String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(rootNode);

        MediaType mediaType = MediaType.parse("application/json");
        RequestBody body = RequestBody.create(mediaType, json);
        Request request = new Request.Builder()
            .url("{{Base Adres}}/api/paywall/payment/startdirect/insurance")
            .post(body)
            .addHeader("Content-Type", "application/json")
            .addHeader("apikeypublic", "%%")
            .addHeader("apiclientpublic", "%%")
            .build();

        Response response = client.newCall(request).execute();
        System.out.println(response.body().string());
    }
}
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
$url = '{{Base Adres}}/api/paywall/payment/startdirect/insurance';
$data = array(
    "PaymentDetail" => array(
        "Amount" => 9.85,
        "MerchantUniqueCode" => "AJSHFSAKFHASKHFA",
        "CurrencyId" => 1,
        "MerchantSuccessBackUrl" => "https://merchantsite.site.com/success",
        "MerchantFailBackUrl" => "https://merchantsite.site.com/fail",
        "Installment" => 1,
        "ChannelId" => 0,
        "TagId" => 0,
        "Half2D" => false
    ),
    "Card" => array(
        "OwnerName" => "John Doe",
        "Number" => "5528790000000008",
        "ExpireMonth" => "12",
        "ExpireYear" => "2030",
        "Cvv" => "123",
        "UniqueCode" => ""
    ),
    "Customer" => array(
        "FullName" => "FullName",
        "Phone" => "5336662211",
        "Email" => "enes@xcompany.com",
        "Country" => "Country",
        "City" => "City",
        "Address" => "Address",
        "IdentityNumber" => "IdentityNumber",
        "TaxNumber" => "TaxNumber"
    ),
    "Products" => array(
        array(
            "ProductId" => "ProductId",
            "ProductName" => "ProductName",
            "ProductCategory" => "ProductCategory",
            "ProductDescription" => "ProductDescription",
            "ProductAmount" => 9.85
        )
    )
);
$options = array(
    'http' => array(
        'header'  => "Content-type: application/json\r\n" .
                     "apikeypublic: %PUBLICKEY%\r\n" . 
                     "apiclientpublic: %PUBLICCLIENT%\r\n",
        'method'  => 'POST',
        'content' => json_encode($data),
    ),
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result === FALSE) { /* Handle error */ }

// Decode
$response = json_decode($result);

// ErrorCode-Result-Message
echo "ErrorCode: " . $response->ErrorCode . "\n";
echo "Result: " . ($response->Result ? "true" : "false") . "\n";
echo "Message: " . $response->Message . "\n";

// Decode Body
$body = json_decode($response->Body);
var_dump($result);
?>
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

url = '{{Base Adres}}/api/paywall/payment/startdirect/insurance'

headers = {
    'Content-Type': 'application/json',
    'apikeypublic': '%%',
    'apiclientpublic': '%%'
}

data = {
    "PaymentDetail": {
        "Amount": 9.85,
        "MerchantUniqueCode": "AJSHFSAKFHASKHFA",
        "CurrencyId": 1,
        "MerchantSuccessBackUrl": "https://merchantsite.site.com/success",
        "MerchantFailBackUrl": "https://merchantsite.site.com/fail",
        "Installment": 1,
        "ChannelId": 0,
        "TagId": 0,
        "Half2D": False
    },
    "Card": {
        "OwnerName": "John Doe",
        "Number": "5528790000000008",
        "ExpireMonth": "12",
        "ExpireYear": "2030",
        "Cvv": "123",
        "UniqueCode": ""
    },
    "Customer": {
        "FullName": "FullName",
        "Phone": "5336662211",
        "Email": "enes@xcompany.com",
        "Country": "Country",
        "City": "City",
        "Address": "Address",
        "IdentityNumber": "IdentityNumber",
        "TaxNumber": "TaxNumber"
    },
    "Products": [{
        "ProductId": "ProductId",
        "ProductName": "ProductName",
        "ProductCategory": "ProductCategory",
        "ProductDescription": "ProductDescription",
        "ProductAmount": 9.85
    }]
}

response = requests.post(url, headers=headers, data=json.dumps(data))

if response.status_code == 200:
    response_data = response.json()

    print("ErrorCode: ", response_data.get('ErrorCode'))
    print("Result: ", response_data.get('Result'))
    print("Message: ", response_data.get('Message'))

    body = json.loads(response_data.get('Body'))
    print(body)
else:
    print(f'Request failed with status code {response.status_code}')
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
require 'net/http'
require 'uri'
require 'json'

uri = URI.parse("{{Base Adres}}/api/paywall/payment/startdirect/insurance")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri.path, {
  'Content-Type' => 'application/json',
  'apikeypublic' => '%%',
  'apiclientpublic' => '%%'
})

request.body = JSON.generate({
  "PaymentDetail" => {
    "Amount" => 9.85,
    "MerchantUniqueCode" => "AJSHFSAKFHASKHFA",
    "CurrencyId" => 1,
    "MerchantSuccessBackUrl" => "https://merchantsite.site.com/success",
    "MerchantFailBackUrl" => "https://merchantsite.site.com/fail",
    "Installment" => 1,
    "ChannelId" => 0,
    "TagId" => 0,
    "Half2D" => false
  },
  "Card" => {
    "OwnerName" => "John Doe",
    "Number" => "5528790000000008",
    "ExpireMonth" => "12",
    "ExpireYear" => "2030",
    "Cvv" => "123",
    "UniqueCode" => ""
  },
  "Customer" => {
    "FullName" => "FullName",
    "Phone" => "5336662211",
    "Email" => "enes@xcompany.com",
    "Country" => "Country",
    "City" => "City",
    "Address" => "Address",
    "IdentityNumber" => "IdentityNumber",
    "TaxNumber" => "TaxNumber"
  },
  "Products" => [
    {
      "ProductId" => "ProductId",
      "ProductName" => "ProductName",
      "ProductCategory" => "ProductCategory",
      "ProductDescription" => "ProductDescription",
      "ProductAmount" => 9.85
    }
  ]
})

response = http.request(request)
puts response.body
```

{% endtab %}

{% tab title="TypeScript" %}

```typescript
import axios, { AxiosResponse } from 'axios';

interface ResponseData {
  ErrorCode: number;
  Result: boolean;
  Message: string;
  Body: string;
}

let data = {
  PaymentDetail: {
    Amount: 9.85,
    MerchantUniqueCode: "AJSHFSAKFHASKHFA",
    CurrencyId: 1,
    MerchantSuccessBackUrl: "https://merchantsite.site.com/success",
    MerchantFailBackUrl: "https://merchantsite.site.com/fail",
    Installment: 1,
    ChannelId: 0,
    TagId: 0,
    Half2D: false
  },
  Card: {
    OwnerName: "John Doe",
    Number: "5528790000000008",
    ExpireMonth: "12",
    ExpireYear: "2030",
    Cvv: "123",
    UniqueCode: ""
  },
  Customer: {
    FullName: "FullName",
    Phone: "5336662211",
    Email: "enes@xcompany.com",
    Country: "Country",
    City: "City",
    Address: "Address",
    IdentityNumber: "IdentityNumber",
    TaxNumber: "TaxNumber"
  },
  Products: [{
    ProductId: "ProductId",
    ProductName: "ProductName",
    ProductCategory: "ProductCategory",
    ProductDescription: "ProductDescription",
    ProductAmount: 9.85
  }]
};

let config = {
  method: 'post',
  url: '{{Base Adres}}/api/paywall/payment/startdirect/insurance',
  headers: { 
    'Content-Type': 'application/json', 
    'apikeypublic': '%%', 
    'apiclientpublic': '%%'
  },
  data : data
};

axios(config)
.then(function (response: AxiosResponse<ResponseData>) {
  console.log(response.data);
})
.catch(function (error) {
  console.log(error);
});
```

{% endtab %}

{% tab title="Curl" %}

```sh
curl --location --request POST '{{Base Adres}}/api/paywall/payment/startdirect/insurance' \
--header 'Content-Type: application/json' \
--header 'apikeypublic: %%PUBLICKEY%%' \
--header 'apiclientpublic: %%PUBLICCLIENT%%' \
--data-raw '{
    "PaymentDetail": {
        "Amount": 9.85,
        "MerchantUniqueCode": "FASLSZDPOT3535BFNGI",
        "CurrencyId": 1,
        "MerchantSuccessBackUrl": "https://merchantsite.site.com/success",
        "MerchantFailBackUrl": "https://merchantsite.site.com/fail",
        "Installment": 1,
        "ChannelId": 0,
        "TagId": 0,
        "Half2D": false
    },
    "Card": {
        "OwnerName": "John Doe",
        "Number": "5528790000000008",
        "ExpireMonth": "12",
        "ExpireYear": "2030",
        "Cvv": "123",
        "UniqueCode": ""
    },
    "Customer": {
        "FullName": "FullName",
        "Phone": "5336662211",
        "Email": "enes@xcompany.com",
        "Country": "Country",
        "City": "City",
        "Address": "Address",
        "IdentityNumber": "IdentityNumber",
        "TaxNumber": "TaxNumber"
    },
    "Products": [{
        "ProductId": "ProductId",
        "ProductName": "ProductName",
        "ProductCategory": "ProductCategory",
        "ProductDescription": "ProductDescription",
        "ProductAmount": 9.85
    }]
}'
```

{% endtab %}
{% endtabs %}

#### <mark style="color:blue;">Ana Dizin:</mark> <mark style="color:orange;">`PaymentDetail`</mark>

<table><thead><tr><th width="209">Parametre</th><th width="94">Tip</th><th width="121">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>Amount</td><td>decimal</td><td>Evet</td><td>Ödeme sepet tutarı.</td></tr><tr><td>MerchantUniqueCode</td><td>string</td><td>Evet</td><td>Ödeme başlatma için gönderilen istek içerisindeki MerchantUniqueCode ile aynı değer olmalıdır. Bu kod sizin tarafınızdan işleme ait verilen tekil değerdir. İptal/İade/Ödeme Sorgulama işlemlerinin hepsinde bir ödemeyi tekilleştirmeniz ve takip etmeniz için kullanılmaktadır.<br><br><mark style="color:red;">Uzunluk: 250 karakter</mark></td></tr><tr><td>TrackingCode</td><td>string</td><td>Hayır</td><td>Ödeme'nin tarafınızdaki ikincil takip numarası olarak kullanılabilir. MerchantUniqueCode parametresine ek ilişkilendirmeniz gereken ek bilgiyi bu parametre altında gönderebilirsiniz. <br><br><mark style="color:blue;"><strong>Önemli not:</strong></mark> Tekil değildir, tekrar tekrar verilebilir. İhtiyaç halinde tekilliği sizin tarafınızdan yönetilmelidir</td></tr><tr><td>CurrencyId</td><td>int</td><td>Evet</td><td>Para birimi<br><br>Bkz: <a href="/pages/bahfUMz1dqpN1ZCnpVtM">İncele</a></td></tr><tr><td>Installment</td><td>int</td><td>Evet</td><td>Taksit bilgisi, tek çekim için 1 gönderilmelidir</td></tr><tr><td>ClientIP</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren tarafın IP bilgisi. Müşteri/Kullanıcı/Üye vb.<br><br><mark style="color:red;">Uzunluk: 15 karakter</mark></td></tr><tr><td>TagId</td><td>int?</td><td>Hayır</td><td>Ödemelerinize etiketleme uygulamak istediğinizde kullanılır</td></tr><tr><td>ChannelId</td><td>int?</td><td>Hayır</td><td>Ödemelerinizin Paywall'a iletildiği kanalları ayrıştırmak istediğinizde kullanılır</td></tr><tr><td>EndOfTheDay</td><td>int?</td><td>Hayır</td><td>Gün sonu değeridir. Bağlı sağlayıcılar arasından ödemenizin sadece "Ertesi Gün" ödemeleri sağlayıcılardan geçmesini istediğinizde bu parametreyi dolu göndermelisiniz<br>Bkz: <a href="/pages/Gw9eZHjCiOMFXmyjycAF">İncele</a></td></tr><tr><td>RegionId</td><td>short?</td><td>Hayır</td><td>Ödemenizin hangi ülke altındaki sağlayıcılardan geçmesini istediğinizi belirtebileceğiniz parametredir. Belirtilmediği durumda ödemeniz 'Global' olarak işlenir</td></tr><tr><td>ProviderBased</td><td>bool</td><td>Hayır</td><td>Ödemenizin hangi sağlayıcıdan geçmesi gerektiğine kendi tarafınızda karar verdiğinizde kullanılır</td></tr><tr><td>ProviderKey</td><td>string</td><td>Evet/Hayır</td><td>Ödemenizin geçmesini istediğiniz sağlayıcı anahtarı<br><br>Bkz: <a href="/pages/xcaKRIoyfounPa4Z7Nvu">Liste</a></td></tr><tr><td>PosBased</td><td>bool</td><td>Hayır</td><td>Ödemenizin hangi sağlayıcıdan geçmesi gerektiğine kendi tarafınızda karar verdiğinizde kullanılır</td></tr><tr><td>PosId</td><td>int</td><td>Evet/Hayır</td><td>Ödemenizin geçmesini istediğiniz sağlayıcının bağlantı kimlik numarasıdır. Paywall panelinden temin bağlı sağlayıcılar listesinde yer almaktadır</td></tr><tr><td>PayRouteByPass</td><td>bool</td><td>Hayır</td><td>Paywall panelinden ayarlanan PayRoute ayarlı bypass edilmek isteniyor mu? Bu parametreyle varsayılan ayarı ezebilir, ödeme özelinde routing tipini değiştirebilirsiniz</td></tr><tr><td>PayRouteType</td><td>short</td><td>Evet/Hayır</td><td><code>PayRouteByPass</code> parametresinin true gönderilmesi durumda, <code>PayRouteType</code> parametresi de dolu gönderilmelidir. Ödeme özelinde routing tipinin ne olacağını bu parametreyle belirtebilirsiniz<br><br>Bkz: <a href="/pages/1Dk9V7ha13cYQ7LpykZx">PayRoute Tipleri</a></td></tr><tr><td>RouteGroupKey</td><td>string</td><td>Evet/Hayır</td><td>Paywall panelinden PayRoute'un RouteGroup ayarlanması veya ödeme özelinde PayRoute'un bypass edilmesi ve PayRouteType'ın RouteGroup olarak belirtilmesi durumda ödemenin hangi RouteGroup özelinde işleneceğini bu parametreyle belirtmeniz gerekmektedir</td></tr><tr><td>MarketPlace <mark style="color:red;">></mark> BasketAmount</td><td>decimal</td><td>Hayır</td><td>Pazaryeri kapsamında kullanılır</td></tr></tbody></table>

<mark style="color:blue;">**Ana Dizin:**</mark> <mark style="color:orange;">`Card`</mark>

<table><thead><tr><th width="260">Parametre</th><th width="84">Tip</th><th width="128">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>OwnerName</td><td>string</td><td>Evet/Hayır</td><td>Ödemenin alınacağı kart sahibinin adı soyadı.<br><br><mark style="color:red;">Uzunluk: 150 karakter</mark></td></tr><tr><td>CardNoFirst</td><td>string</td><td>Evet/Hayır</td><td><p>Kart numarasının ilk 8 rakamı</p><p><br><mark style="color:red;">Uzunluk: 20 karakter</mark></p></td></tr><tr><td>CardNoLast</td><td>string</td><td>Evet/Hayır</td><td>kart numarasının son 4 rakamı</td></tr><tr><td>IdentityNumber</td><td>string</td><td>Evet/Hayır</td><td>Kullanıcının TCKN numarası veya vergi kimlik numarası</td></tr><tr><td>UseAdditionalIdentityNumber</td><td>bool</td><td>Evet/Hayır</td><td>Sigortacılık ödemelerinde kullanılan kartlar bazı durumlarda <code>TCKN</code> bazı durumlarda ise <code>VKN</code> bilgisine bağlı olabilir. Bu ayrımdan emin değilseniz ve kart sahibinin her 2 bilgisine de sahipseniz, 2 bilgiyi de aynı anda Paywall'a iletebilirsiniz. Paywall öncelikli olarak <code>IdentityNumber</code> ile ödemeyi almayı dener, eğer ödeme başarısız olursa ve <code>UseAdditionalIdentityNumber</code> parametresini <code>true</code> göndermişseniz, başarsız olan ödeme bir de <code>AdditionalIdentityNumber</code> parametresi ile denenir</td></tr><tr><td>AdditionalIdentityNumber</td><td>string</td><td>Evet/Hayır</td><td>Kart sahibinin alternatif kimlik bilgisi. <code>UseAdditionalIdentityNumber</code> parametresi <code>true</code> gönderildiğinde kullanılır</td></tr><tr><td>UniqueCode</td><td>string</td><td>Evet/Hayır</td><td>Kayıtlı karta ait kimlik bilgisi. Kaydetme ve listeleme anında Paywall'dan döner</td></tr><tr><td>TempCardToken</td><td>string</td><td>Evet/Hayır</td><td>Geçici kayıtlı kart (Client-Side Tokenization) ile ödeme almak istediğinizde kullanılması gereken parametredir</td></tr><tr><td>Partner<mark style="color:red;">? ></mark><br>PartnerBased</td><td>bool?</td><td>Evet/Hayır</td><td>Kartları Partner tabanlı kurguladığınızda kullanılacak parametredir</td></tr><tr><td>Partner<mark style="color:red;">? ></mark><br>PartnerIdentity</td><td>string</td><td>Evet/Hayır</td><td>Kartları Partner tabanlı kurguladığınızda, şirketinizin Paywall'daki partnerlik kimlik bilgisidir. Bu bilgiyi Paywall panelinden edinebilirsiniz</td></tr><tr><td>CardSave<mark style="color:red;">? ></mark><br>Save</td><td>bool</td><td>Evet/Hayır</td><td>Ödeme anında, ödemenin başarılı olması durumunda kartın kayıt edilmesi istenirse True gönderilmelidir. True gönderildiğinde CardSave objesi altındaki diğer parametreler dikkate alınır</td></tr><tr><td>CardSave<mark style="color:red;">? ></mark><br>Nickname</td><td>string</td><td>Evet/Hayır</td><td>Kart'a ait takma isimdir</td></tr><tr><td>CardSave<mark style="color:red;">? ></mark><br>RelationalId1</td><td>string</td><td>Evet/Hayır</td><td>Kart'ın ilişki değeridir</td></tr><tr><td>CardSave<mark style="color:red;">? ></mark><br>RelationalId2</td><td>string</td><td>Evet/Hayır</td><td>Kart'ın ikinci (ağaç yapısı) ilişki değeridir</td></tr><tr><td>CardSave<mark style="color:red;">? ></mark><br>RelationalId3</td><td>string</td><td>Evet/Hayır</td><td>Kart'ın üçüncü (ağaç yapısı) ilişki değeridir</td></tr></tbody></table>

<mark style="color:blue;">**Ana Dizin:**</mark> <mark style="color:orange;">`Customer`</mark>

<table><thead><tr><th width="174">Parametre</th><th width="110">Tip</th><th width="100">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>FullName</td><td>string</td><td>Evet</td><td>Üye işyeri tarafındaki alıcıya ait ad</td></tr><tr><td>Phone</td><td>string</td><td>Evet</td><td>Üye işyeri tarafındaki alıcıya ait GSM numarası.</td></tr><tr><td>Email</td><td>string</td><td>Evet</td><td>İşyeri tarafındaki alıcıya ait e-posta bilgisi.</td></tr><tr><td>Country</td><td>string</td><td>Evet</td><td>Üye işyeri tarafındaki alıcıya ait ülke bilgisi.</td></tr><tr><td>City</td><td>string</td><td>Evet</td><td>Üye işyeri tarafındaki alıcıya ait şehir bilgisi.</td></tr><tr><td>Address</td><td>string</td><td>Evet</td><td>Üye işyeri tarafındaki alıcıya ait kayıt adresi.</td></tr><tr><td>IdentityNumber</td><td>string</td><td>Hayır</td><td>Üye işyeri tarafındaki alıcıya ait kimlik (TCKN) numarası.</td></tr><tr><td>TaxNumber</td><td>string</td><td>Hayır</td><td>Üye işyeri tarafındaki alıcıya ait vergi kimlik  numarası.</td></tr><tr><td>DeviceFingerprint</td><td>string</td><td>Hayır</td><td>Üye işyeri tarafındaki alıcıya ait cihaz parmak izi bilgisi</td></tr><tr><td>UserAgent</td><td>string</td><td>Hayır</td><td>Üye işyeri tarafındaki alıcıya ait kullanımda olan useragent bilgileri</td></tr><tr><td>UserRegisteredAt</td><td>datetime</td><td>Hayır</td><td>Kullanıcının sisteminizdeki kayıt tarihi</td></tr><tr><td>Location</td><td>Location</td><td>Hayır</td><td>Kullanıcının konum bilgilerinin iletildiği obje</td></tr></tbody></table>

<mark style="color:blue;">**Ana Dizin:**</mark> <mark style="color:orange;">`Location`</mark>

<table><thead><tr><th width="272">Parametre</th><th width="109">Tip</th><th width="122">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>Country</td><td>string</td><td>Hayır</td><td>Kullanıcının ülke bilgisi</td></tr><tr><td>City</td><td>string</td><td>Hayır</td><td>Kullanıcının şehir bilgisi</td></tr><tr><td>Region</td><td>string</td><td>Hayır</td><td>Kullanıcının bölge bilgisi</td></tr><tr><td>Lat</td><td>string</td><td>Hayır</td><td>Kullanıcı konumunun harita üzerindeki enlem bilgisi</td></tr><tr><td>Lon</td><td>string</td><td>Hayır</td><td>Kullanıcı konumunun harita üzerindeki boylam bilgisi</td></tr></tbody></table>

<mark style="color:blue;">**Ana Dizin:**</mark> <mark style="color:orange;">`FraudParameters`</mark>

{% hint style="info" %}
Fraud kontrolleri için FraudParameters dizini içindeki parametrelerin geçerli olması için Ana Dizin içerisinde bulunan UserFraudParameters bilgisinin <mark style="color:$success;">**True**</mark> olarak gönderilmesi gerekmektedir. Aksi durumda PaymentDetail içerisindeki bilgiler ile Fraud kontrolü yapılacaktır.
{% endhint %}

<table><thead><tr><th width="272">Parametre</th><th width="109">Tip</th><th width="122">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>ByPassFraud</td><td>string</td><td>Evet</td><td>True gönderilmesi durumunda önceden ayarlanmış fraud kontrollerinin bypass edilmesini sağlar.</td></tr><tr><td>OverrideActualParameters</td><td>string</td><td>Evet</td><td>True gönderilmesi durumunda fraud kontrolleri için "PaymentDetail" dizini altındaki parametreler yerine "FraudParameters" altındaki parametreler ile işlemler devam eder ve kayıt altına alınır. </td></tr><tr><td>DeviceFingerprint</td><td>string</td><td>Hayır</td><td>Fraud kontrolüne girecek cihaz parmak izi bilgisi.</td></tr><tr><td>Amount</td><td>string</td><td>Hayır</td><td>Fraud kontrolüne girecek tutar bilgisi.</td></tr><tr><td>ClientIP</td><td>string</td><td>Hayır</td><td>Fraud kontrolüne girecek müşteri IP bilgisi.</td></tr><tr><td>CountryCode</td><td>string</td><td>Hayır</td><td>Fraud kontrolüne girecek ülke kodu bilgisi.</td></tr><tr><td>UserAgent</td><td>string</td><td>Hayır</td><td>Fraud kontrolüne girecek UserAgent'ların listesi</td></tr><tr><td>Email</td><td>string</td><td>Hayır</td><td>Fraud kontrolüne girecek e-mail adres bilgisi</td></tr><tr><td>Phone</td><td>string</td><td>Hayır</td><td>Fraud kontrolüne girecek telefon numarası bilgisi</td></tr><tr><td>UserRegisteredAt</td><td>datetime</td><td>Hayır</td><td>Kullanıcının sisteminizdeki kayıt tarihi</td></tr><tr><td>Location</td><td>Location</td><td>Hayır</td><td>Kullanıcının konum bilgilerinin iletildiği obje</td></tr></tbody></table>

<mark style="color:blue;">**Paywall Cevap**</mark>

<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>nesne</td><td>İşlem hatalıysa, bu hataya dair belirtilen kodudur.</td></tr></tbody></table>

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

```json
{
    "ErrorCodeType": 1,
    "ErrorMessage": null,
    "ErrorCode": 0,
    "Result": true,
    "Message": "",
    "Body": {
        "Payment": {
            "PaymentId": 2090323,
            "ActivityId": 4201860,
            "UniqueCode": "142e9761-9591-4b33-a61f-a2f81f9cc1ec",
            "MerchantUniqueKey": "0da34f8a-4eb5-4ce4-8c0f-7ffdad5fce6b",
            "PaymentGatewayId": 4023,
            "PaymentGatewayName": "VakıfBankinsurance",
            "PaymentGatewayProviderName": "Vakıfbank"
        },
        "Error": {
            "ProviderErrorCode": null,
            "ProviderErrorMessage": null,
            "BankErrorCode": null,
            "BankErrorMessage": null,
            "IsHttpError": false,
            "HttpStatusCode": 200,
            "HasPaywallUnifiedError": false,
            "UnifiedByPaywall": {
                "ErrorCode": "",
                "ErrorMessage": ""
            }
        },
        "Fraud": {
            "Evaluated": true,
            "Action": "Allow",
            "Score": 0,
            "MatchedRules": "",
            "BlockedByBlacklist": false,
            "BlacklistType": null,
            "ReviewUrl": "",
            "IsAsyncFraudPending": false
        }
    }
}
```

{% endcode %}
{% endtab %}

{% tab title="JSON - Fraud Review" %}
{% code lineNumbers="true" %}

```json
{
    "ErrorCodeType": 1,
    "ErrorMessage": null,
    "ErrorCode": 0,
    "Result": true,
    "Message": "",
    "Body": {
        "Payment": {
            "PaymentId": 2090323,
            "ActivityId": 4201860,
            "UniqueCode": "142e9761-9591-4b33-a61f-a2f81f9cc1ec",
            "MerchantUniqueKey": "0da34f8a-4eb5-4ce4-8c0f-7ffdad5fce6b",
            "PaymentGatewayId": 4023,
            "PaymentGatewayName": "VakıfBankinsurance",
            "PaymentGatewayProviderName": "Vakıfbank"
        },
        "Error": {
            "ProviderErrorCode": null,
            "ProviderErrorMessage": null,
            "BankErrorCode": null,
            "BankErrorMessage": null
        },
        "Fraud": {
            "Evaluated": true,
            "Action": "Review",
            "Score": 0,
            "MatchedRules": "Temp email detected",
            "BlockedByBlacklist": false,
            "BlacklistType": null,
            "ReviewUrl": "https://test-panel.itspaywall.com/fraud?id=xxx",
            "IsAsyncFraudPending": false
        }
    }
}
```

{% endcode %}
{% endtab %}

{% tab title="JSON - Fraud Score Block" %}
{% code lineNumbers="true" %}

```json
{
    "ErrorCodeType": 1,
    "ErrorMessage": null,
    "ErrorCode": 0,
    "Result": true,
    "Message": "",
    "Body": {
        "Payment": {
            "PaymentId": 2090323,
            "ActivityId": 4201860,
            "UniqueCode": "142e9761-9591-4b33-a61f-a2f81f9cc1ec",
            "MerchantUniqueKey": "0da34f8a-4eb5-4ce4-8c0f-7ffdad5fce6b",
            "PaymentGatewayId": 4023,
            "PaymentGatewayName": "VakıfBankinsurance",
            "PaymentGatewayProviderName": "Vakıfbank"
        },
        "Error": {
            "ProviderErrorCode": null,
            "ProviderErrorMessage": null,
            "BankErrorCode": null,
            "BankErrorMessage": null
        },
        "Fraud": {
            "Evaluated": true,
            "Action": "Block",
            "Score": 70,
            "MatchedRules": "Temp email detected",
            "BlockedByBlacklist": false,
            "BlacklistType": null,
            "ReviewUrl": "https://test-panel.itspaywall.com/fraud?id=xxx",
            "IsAsyncFraudPending": false    
        }    
    }
}
```

{% endcode %}
{% endtab %}

{% tab title="JSON - Block" %}
{% code lineNumbers="true" %}

```json
{
    "ErrorCodeType": 1,
    "ErrorMessage": null,
    "ErrorCode": 0,
    "Result": true,
    "Message": "",
    "Body": {
        "Payment": {
            "PaymentId": 2090323,
            "ActivityId": 4201860,
            "UniqueCode": "142e9761-9591-4b33-a61f-a2f81f9cc1ec",
            "MerchantUniqueKey": "0da34f8a-4eb5-4ce4-8c0f-7ffdad5fce6b",
            "PaymentGatewayId": 4023,
            "PaymentGatewayName": "VakıfBankinsurance",
            "PaymentGatewayProviderName": "Vakıfbank"
        },
        "Error": {
            "ProviderErrorCode": null,
            "ProviderErrorMessage": null,
            "BankErrorCode": null,
            "BankErrorMessage": null
        },
        "Fraud": {
            "Evaluated": true,
            "Action": "Block",
            "Score": 100,
            "MatchedRules": "Temp email detected",
            "BlockedByBlacklist": false,
            "BlacklistType": null,
            "ReviewUrl": "https://test-panel.itspaywall.com/fraud?id=xxx",
            "IsAsyncFraudPending": false        
        }    
    }
}
```

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.paywall.one/odeme-servisi/3.-non-secure-sigorta.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
