> For the complete documentation index, see [llms.txt](https://docs.morpara.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.morpara.com/api-dokumantasyonu/editor/3d-secure-odeme/3d-odeme-baslat.md).

# 3D Ödeme Başlat

3D Ödeme Başlatma adımı, kartlı bir ödemenin **3D Güvenli doğrulama sürecine sokulmasını** sağlar.

Bu çağrı sonucunda API tarafından bankaya yönlendirme için gerekli olan **Base64 encoded 3D içerik** döner.\
Üye işyeri bu içeriği decode ederek son kullanıcıyı bankanın 3D Güvenli doğrulama ekranına yönlendirmelidir.

> ⚠️ Bu adımda ödeme **henüz tamamlanmaz**.\
> Kullanıcının bankadaki doğrulama işlemini tamamlamasından sonra **3D Ödeme Tamamlama (Auth3d)** adımı çağrılmalıdır.

***

### Endpoint

```http
POST /v1/Payment/Init3d
```

***

### Headers

| Anahtar        | Tür    | Açıklama                                 | Örnek                      |
| -------------- | ------ | ---------------------------------------- | -------------------------- |
| x-ClientID     | String | API istemcisi için benzersiz tanımlayıcı | sizin-istemci-id'niz       |
| x-ClientSecret | String | API istemcisi için gizli anahtar         | sizin-gizli-anahtarınız    |
| x-GrantType    | String | Kullanılan erişim tokeni türü            | istemci\_kimlik\_bilgileri |
| x-Scope        | String | API kapsamı                              | pf\_write, pf\_read        |
| x-Timestamp    | String | İstek zaman damgası                      | 2024-12-17T12:34:56Z       |

***

### Request Body

| Alan                                | Zorunlu | Tür          | Açıklama                                    | Örnek                          |
| ----------------------------------- | ------- | ------------ | ------------------------------------------- | ------------------------------ |
| merchantId                          | ✅       | Integer      | Üye işyeri için benzersiz kimlik            | 100000000000004                |
| returnUrl                           | ✅       | String (URL) | Başarılı doğrulama sonrası yönlendirme URL  | <https://www.ornek.com/basari> |
| failUrl                             | ✅       | String (URL) | Başarısız doğrulama sonrası yönlendirme URL | <https://www.ornek.com/hata>   |
| paymentMethod                       | ✅       | String       | Ödeme yöntemi                               | CARDPAYMENT                    |
| language                            | ✅       | String       | İşlem dili                                  | tr                             |
| conversationId                      | ✅       | String       | İşlem takip numarası                        | MSD2024030500000000115         |
| sign                                | ✅       | String       | İsteğin doğrulanması için dijital imza      | AAVWY3RZKJVVCEAD8LDQB4K        |
| paymentInstrumentType               | ✅       | String       | Ödeme aracı türü                            | CARD                           |
| cardDetails.cardNo                  | ✅       | String       | Kart numarası                               | 4508034508034581               |
| cardDetails.expDate                 | ✅       | String       | Son kullanma tarihi (AAYY)                  | 1226                           |
| cardDetails.cvv                     | ✅       | String       | Kart güvenlik kodu                          | 000                            |
| transactionDetails.transactionType  | ✅       | String       | İşlem türü                                  | SALE                           |
| transactionDetails.installmentCount | ✅       | Integer      | Taksit sayısı                               | 1                              |
| transactionDetails.amount           | ✅       | Float        | İşlem tutarı                                | 60.00                          |
| transactionDetails.currencyCode     | ✅       | Integer      | Para birimi kodu (ISO 4217)                 | 949                            |
| transactionDetails.vftFlag          | ❌       | Boolean      | VFT’nin etkin olup olmadığını gösterir      | false                          |
| cardHolderInfo.cardHolderName       | ✅       | String       | Kart sahibinin adı                          | Selim Dil                      |
| cardHolderInfo.buyerGsm             | ✅       | String       | Alıcının GSM numarası                       | 55555555                       |
| extraParameter.pfSubMerchantId      | ❌       | String       | Alt üye işyeri kimliği                      | 12345                          |

### Response Body

Bu servis **Base64 encoded 3D içerik** döner.\
Dönen veri decode edilerek kullanıcı tarayıcısında render edilmelidir.

#### Örnek Request

```http
POST /v1/Payment/Init3d
Content-Type: application/json
x-ClientID: sizin-istemci-id'niz
x-ClientSecret: sizin-gizli-anahtarınız
x-GrantType: istemci_kimlik_bilgileri
x-Scope: pf_write, pf_read
x-Timestamp: 2024-12-17T12:34:56Z
```

```json
{
  "merchantId": 100000000000004,
  "returnUrl": "https://www.ornek.com/basari",
  "failUrl": "https://www.ornek.com/hata",
  "paymentMethod": "CARDPAYMENT",
  "language": "tr",
  "conversationId": "MSD2024030500000000115",
  "sign": "AAVWY3RZKJVVCEAD8LDQB4K...",
  "paymentInstrumentType": "CARD",
  "cardDetails": {
    "cardNo": "4508034508034581",
    "expDate": "1226",
    "cvv": "000"
  },
  "transactionDetails": {
    "transactionType": "SALE",
    "installmentCount": 1,
    "amount": 60.00,
    "currencyCode": 949,
    "vftFlag": false
  },
  "cardHolderInfo": {
    "cardHolderName": "Selim Dil",
    "buyerGsm": "55555555"
  },
  "extraParameter": {
    "pfSubMerchantId": "12345"
  }
}

```

#### Örnek Response

```json
{
  "threeDSecureContent": "PGh0bWw+Li4uPC9odG1sPg=="
}
```

> `threeDSecureContent` alanı **Base64 decode edilerek** kullanıcıya gösterilmelidir.
