> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orkesta.com.tr/llms.txt
> Use this file to discover all available pages before exploring further.

# Ortak Ödeme/Link/QR İşlem Oluştur

> Checkout oturumu oluşturur ve token döner

## 🚀 Checkout/Link/QR Ödemesi Başlatma

Checkout oturumu oluşturur ve token döner. Bu token ile müşteri ödeme sayfasına yönlendirilir.

**`POST`** `https://api-test.fincraft.com.tr/api/v1/checkout/process`

## Request Body

```json theme={null}
{
    "referenceId": "{{$guid}}",
    "amount": 100,
    "currency": "TRY",
    "clientIpAddress": "1.1.1.1",
    "phoneNumber": "+905551234567",
    "tokenExpireTimeInMillis": 600000,
    "products": [
        {
            "name": "Test Product 1",
            "price": 50,
            "externalId": "1",
            "subMerchantMemberId": "EXT1234567"
        },
        {
            "name": "Test Product 2",
            "price": 50,
            "externalId": "2",
            "subMerchantMemberId": "EXT1234567"
        }
    ]
}
```

## Request Parametreleri

| Parametre                 | Tip    | Zorunlu | Validation        | Açıklama                                                                    |
| ------------------------- | ------ | ------- | ----------------- | --------------------------------------------------------------------------- |
| `referenceId`             | UUID   | Evet    | -                 | Referans kimliği, 3D complete, sorgulama, iade vs işlemleri için kullanılır |
| `phoneNumber`             | String | Hayır   | -                 | Müşteri telefon numarası                                                    |
| `tokenExpireTimeInMillis` | Long   | Hayır   | -                 | Token geçerlilik süresi (milisaniye). Default: 3600000 (1 saat)             |
| `products`                | List   | Evet    | @NotEmpty, @Valid | Satın alınan ürünlerin listesi. En az 1 ürün olmalıdır.                     |

## Response Body

```json theme={null}
{
    "status": "INIT",
    "systemTime": 1760110755,
    "locale": "TR",
    "referenceId": "367f8c72-487a-4aba-a7b4-3220e74d9ee0",
    "token": "e3efc47d-ddeb-471e-bf31-43c8a58b1c4d",
    "tokenExpireTimeInMillis": 600000,
    "fullPageUrl": "https://checkout-dev.fincraft.com.tr/checkout?token=e3efc47d-ddeb-471e-bf31-43c8a58b1c4d",
    "qrCodeUrl": "https://api-test.fincraft.com.tr/api/v1/qr/62f04494-4960-4d85-9e8e-891873e0cb36"
}
```

## cURL Örneği

```bash theme={null}
curl -X POST https://api-test.fincraft.com.tr/api/v1/checkout/process \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "referenceId": "{{$guid}}",
    "amount": 100,
    "currency": "TRY",
    "clientIpAddress": "1.1.1.1",
    "phoneNumber": "+905551234567",
    "tokenExpireTimeInMillis": 600000,
    "products": [
        {"name": "Test Product 1", "price": 50, "externalId": "1"},
        {"name": "Test Product 2", "price": 50, "externalId": "2"}
    ]
  }'
```

<Warning>
  **Önemli Notlar**

  * Checkout token tek kullanımlıktır (başarılı ödeme sonrası tekrar kullanılamaz)
  * Token süresi dolmadan ödeme tamamlanmalıdır
  * Her checkout için yeni token oluşturulmalıdır
  * Status SUCCESS veya WAITING olan checkout'lar tekrar kullanılamaz
</Warning>
