{
  "info": {
    "name": "Nitelora API v1",
    "description": "Nitelora API örnek istekleri. Koleksiyon değişkenlerinden `tabanUrl` ve `anahtar` (sk_test_…) alanlarını doldurun. Test anahtarıyla SMS gönderilmez; doğrulama kodu her zaman 123456'dır.\n\nBelgeler: {{tabanUrl}}/gelistirici",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{anahtar}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "tabanUrl",
      "value": "https://nitelora.com"
    },
    {
      "key": "anahtar",
      "value": "sk_test_..."
    },
    {
      "key": "onayId",
      "value": ""
    },
    {
      "key": "onayToken",
      "value": ""
    },
    {
      "key": "zarfId",
      "value": ""
    },
    {
      "key": "imzaciToken",
      "value": ""
    },
    {
      "key": "sablonId",
      "value": ""
    },
    {
      "key": "tibbiId",
      "value": ""
    }
  ],
  "item": [
    {
      "name": "1. Hesap",
      "item": [
        {
          "name": "Hesap bilgisi",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{tabanUrl}}/v1/hesap",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "hesap"
              ]
            },
            "description": "Anahtarın bağlı olduğu klinik, test/canlı modu."
          }
        },
        {
          "name": "Webhook adresini ayarla",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{tabanUrl}}/v1/hesap/webhook",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "hesap",
                "webhook"
              ]
            },
            "description": "Yanıttaki webhookSecret ile X-Nitelora-Imza başlığını doğrulayın.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://yazilim.example.com/nitelora-webhook\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Onay şablonları",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{tabanUrl}}/v1/sablonlar",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "sablonlar"
              ]
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "2. Onay linki (şablonlu)",
      "item": [
        {
          "name": "Onay oluştur — tedavi planı",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "url": {
              "raw": "{{tabanUrl}}/v1/onaylar",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "onaylar"
              ]
            },
            "description": "Hasta onayLinki'ni SMS ile alır (test modunda gönderilmez).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sablon\": \"dis-tedavi-plani\",\n  \"imzaci\": {\n    \"ad\": \"Ayşe Yılmaz\",\n    \"telefon\": \"05321234567\"\n  },\n  \"hekim\": {\n    \"ad\": \"Dt. Mehmet Kaya\",\n    \"tescilNo\": \"12345\"\n  },\n  \"veriler\": {\n    \"tedavi\": \"2 adet implant (36, 46)\",\n    \"tutar\": \"45.000 TL\",\n    \"odeme\": \"6 eşit taksit\",\n    \"sure\": \"3–4 ay\"\n  },\n  \"refNo\": \"HASTA-1029\",\n  \"gecerlilikSaat\": 72\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const j = pm.response.json();",
                  "if (j && j.id) pm.collectionVariables.set('onayId', j.id);",
                  "pm.test('2xx', () => pm.expect(pm.response.code).to.be.below(300));",
                  "if (j?.onayLinki) pm.collectionVariables.set('onayToken', j.onayLinki.split('/').pop());"
                ]
              }
            }
          ]
        },
        {
          "name": "Onay durumu",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{tabanUrl}}/v1/onaylar/{{onayId}}",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "onaylar",
                "{{onayId}}"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Onaylar (liste)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{tabanUrl}}/v1/onaylar?durum=bekliyor",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "onaylar?durum=bekliyor"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Hasta: kod iste (test)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{tabanUrl}}/api/p/{{onayToken}}/kod",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "api",
                "p",
                "{{onayToken}}",
                "kod"
              ]
            },
            "description": "Hasta sayfasının yaptığı çağrı; test için.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amac\": \"onay\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Hasta: onayla (test, kod 123456)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{tabanUrl}}/api/p/{{onayToken}}/onayla",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "api",
                "p",
                "{{onayToken}}",
                "onayla"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"kod\": \"123456\",\n  \"okudum\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Onaylı PDF",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{tabanUrl}}/v1/onaylar/{{onayId}}/pdf",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "onaylar",
                "{{onayId}}",
                "pdf"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Kanıt paketi",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{tabanUrl}}/v1/onaylar/{{onayId}}/kanit",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "onaylar",
                "{{onayId}}",
                "kanit"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Hatırlat (SMS)",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{tabanUrl}}/v1/onaylar/{{onayId}}/hatirlat",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "onaylar",
                "{{onayId}}",
                "hatirlat"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "İptal",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{tabanUrl}}/v1/onaylar/{{onayId}}/iptal",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "onaylar",
                "{{onayId}}",
                "iptal"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "3. Tıbbi rıza (SBYS üzerinden)",
      "description": "Yönetmelik (RG 27.10.2026/33413) m.8/7-b: hasta formu inceler, telefonuna gelen kodu hekime söyler, kodu hekim SBYS'den girer.",
      "item": [
        {
          "name": "Tıbbi rıza oluştur",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{tabanUrl}}/v1/onaylar",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "onaylar"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sablon\": \"implant-riza\",\n  \"imzaci\": {\n    \"ad\": \"Ayşe Yılmaz\",\n    \"telefon\": \"05321234567\",\n    \"tckn\": \"10000000146\"\n  },\n  \"hekim\": {\n    \"ad\": \"Dt. Mehmet Kaya\",\n    \"tescilNo\": \"12345\",\n    \"kullanici\": \"sbys-hekim-42\",\n    \"ekipDogrulandi\": true\n  },\n  \"veriler\": {\n    \"islem\": \"Alt çene implant\",\n    \"bolge\": \"36, 46\",\n    \"anestezi\": \"Lokal\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const j = pm.response.json();",
                  "if (j && j.id) pm.collectionVariables.set('tibbiId', j.id);",
                  "pm.test('2xx', () => pm.expect(pm.response.code).to.be.below(300));"
                ]
              }
            }
          ]
        },
        {
          "name": "Telefon doğrulama kodu gönder",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{tabanUrl}}/v1/onaylar/{{tibbiId}}/kod",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "onaylar",
                "{{tibbiId}}",
                "kod"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amac\": \"telefon\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Telefonu doğrula (hekim girer)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{tabanUrl}}/v1/onaylar/{{tibbiId}}/telefon-dogrula",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "onaylar",
                "{{tibbiId}}",
                "telefon-dogrula"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"kod\": \"123456\",\n  \"hekim\": {\n    \"ad\": \"Dt. Mehmet Kaya\",\n    \"tescilNo\": \"12345\",\n    \"kullanici\": \"sbys-hekim-42\",\n    \"ekipDogrulandi\": true\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Rıza kodu gönder",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{tabanUrl}}/v1/onaylar/{{tibbiId}}/kod",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "onaylar",
                "{{tibbiId}}",
                "kod"
              ]
            },
            "description": "Telefon kodundan sonra 30 sn bekleyin.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amac\": \"onay\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Rızayı kaydet (hekim girer)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{tabanUrl}}/v1/onaylar/{{tibbiId}}/riza",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "onaylar",
                "{{tibbiId}}",
                "riza"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"kod\": \"123456\",\n  \"hekim\": {\n    \"ad\": \"Dt. Mehmet Kaya\",\n    \"tescilNo\": \"12345\",\n    \"kullanici\": \"sbys-hekim-42\",\n    \"ekipDogrulandi\": true\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "4. PDF imzalatma (zarf)",
      "item": [
        {
          "name": "Zarf oluştur (PDF + 2 imzacı, sıralı)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "url": {
              "raw": "{{tabanUrl}}/v1/zarflar",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "zarflar"
              ]
            },
            "description": "belge: PDF'in base64'ü. Konumlar sayfaya oranla 0–1, sol üst başlangıç.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"baslik\": \"Kira sözleşmesi\",\n  \"belgeAdi\": \"sozlesme.pdf\",\n  \"belge\": \"JVBERi0xLjMKJZOMi54gUmVwb3J0TGFiIEdlbmVyYXRlZCBQREYgZG9jdW1lbnQgKG9wZW5zb3VyY2UpCjEgMCBvYmoKPDwKL0YxIDIgMCBSCj4+CmVuZG9iagoyIDAgb2JqCjw8Ci9CYXNlRm9udCAvSGVsdmV0aWNhIC9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nIC9OYW1lIC9GMSAvU3VidHlwZSAvVHlwZTEgL1R5cGUgL0ZvbnQKPj4KZW5kb2JqCjMgMCBvYmoKPDwKL0NvbnRlbnRzIDggMCBSIC9NZWRpYUJveCBbIDAgMCA1OTUuMjc1NiA4NDEuODg5OCBdIC9QYXJlbnQgNyAwIFIgL1Jlc291cmNlcyA8PAovRm9udCAxIDAgUiAvUHJvY1NldCBbIC9QREYgL1RleHQgL0ltYWdlQiAvSW1hZ2VDIC9JbWFnZUkgXQo+PiAvUm90YXRlIDAgL1RyYW5zIDw8Cgo+PiAKICAvVHlwZSAvUGFnZQo+PgplbmRvYmoKNCAwIG9iago8PAovQ29udGVudHMgOSAwIFIgL01lZGlhQm94IFsgMCAwIDU5NS4yNzU2IDg0MS44ODk4IF0gL1BhcmVudCA3IDAgUiAvUmVzb3VyY2VzIDw8Ci9Gb250IDEgMCBSIC9Qcm9jU2V0IFsgL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSSBdCj4+IC9Sb3RhdGUgMCAvVHJhbnMgPDwKCj4+IAogIC9UeXBlIC9QYWdlCj4+CmVuZG9iago1IDAgb2JqCjw8Ci9QYWdlTW9kZSAvVXNlTm9uZSAvUGFnZXMgNyAwIFIgL1R5cGUgL0NhdGFsb2cKPj4KZW5kb2JqCjYgMCBvYmoKPDwKL0F1dGhvciAoYW5vbnltb3VzKSAvQ3JlYXRpb25EYXRlIChEOjIwMjYxMTA2MDEwNDI3KzAzJzAwJykgL0NyZWF0b3IgKGFub255bW91cykgL0tleXdvcmRzICgpIC9Nb2REYXRlIChEOjIwMjYxMTA2MDEwNDI3KzAzJzAwJykgL1Byb2R1Y2VyIChSZXBvcnRMYWIgUERGIExpYnJhcnkgLSBcKG9wZW5zb3VyY2VcKSkgCiAgL1N1YmplY3QgKHVuc3BlY2lmaWVkKSAvVGl0bGUgKHVudGl0bGVkKSAvVHJhcHBlZCAvRmFsc2UKPj4KZW5kb2JqCjcgMCBvYmoKPDwKL0NvdW50IDIgL0tpZHMgWyAzIDAgUiA0IDAgUiBdIC9UeXBlIC9QYWdlcwo+PgplbmRvYmoKOCAwIG9iago8PAovRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0ZsYXRlRGVjb2RlIF0gL0xlbmd0aCAxMTYKPj4Kc3RyZWFtCkdhczJAWW1zI1EnRUU+YUU/YytnOFY6L0RQT1xUOiw8Q1kjZCMicUJAXmInMmFkbGZuYU5HbUhXJjBcXC9LLDEpPkJJbCFwPmI3PUZHPjV1QkklZigsOT5DTVZSVE5kciMlVXBUR3EmdSk7LEg+JFFDZn4+ZW5kc3RyZWFtCmVuZG9iago5IDAgb2JqCjw8Ci9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvRmxhdGVEZWNvZGUgXSAvTGVuZ3RoIDExNgo+PgpzdHJlYW0KR2FzMkBZbXMjUSdFRT5hRT9jK2cyJT0uaDl1Y28wLCEoUCJkIyJxQkBeYicyYWRsZm5hTkdtSFRKV0RkKChIKSMqQk4uOnFzajUvPiFwbVwxbTM0TzhdUzZCLkJaWEdxJF0nZjVXPyZ0MTlxaT4pJms9fj5lbmRzdHJlYW0KZW5kb2JqCnhyZWYKMCAxMAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwNjEgMDAwMDAgbiAKMDAwMDAwMDA5MiAwMDAwMCBuIAowMDAwMDAwMTk5IDAwMDAwIG4gCjAwMDAwMDA0MDIgMDAwMDAgbiAKMDAwMDAwMDYwNSAwMDAwMCBuIAowMDAwMDAwNjczIDAwMDAwIG4gCjAwMDAwMDA5MzQgMDAwMDAgbiAKMDAwMDAwMDk5OSAwMDAwMCBuIAowMDAwMDAxMjA1IDAwMDAwIG4gCnRyYWlsZXIKPDwKL0lEIApbPDNjMTNjMDQ2ODg2ZWIyZDM0MzRhNDRhMmU1ZTBlZDFhPjwzYzEzYzA0Njg4NmViMmQzNDM0YTQ0YTJlNWUwZWQxYT5dCiUgUmVwb3J0TGFiIGdlbmVyYXRlZCBQREYgZG9jdW1lbnQgLS0gZGlnZXN0IChvcGVuc291cmNlKQoKL0luZm8gNiAwIFIKL1Jvb3QgNSAwIFIKL1NpemUgMTAKPj4Kc3RhcnR4cmVmCjE0MTEKJSVFT0YK\",\n  \"sirali\": true,\n  \"gecerlilikGun\": 7,\n  \"refNo\": \"SOZ-77\",\n  \"imzacilar\": [\n    {\n      \"ad\": \"Ayşe Yılmaz\",\n      \"telefon\": \"05321234567\",\n      \"eposta\": \"ayse@ornek.com\",\n      \"rol\": \"Kiracı\"\n    },\n    {\n      \"ad\": \"Mehmet Kaya\",\n      \"telefon\": \"05339876543\",\n      \"rol\": \"Mal sahibi\"\n    }\n  ],\n  \"alanlar\": [\n    {\n      \"imzaci\": 0,\n      \"tur\": \"imza\",\n      \"sayfa\": 1,\n      \"x\": 0.08,\n      \"y\": 0.8,\n      \"genislik\": 0.3,\n      \"yukseklik\": 0.07\n    },\n    {\n      \"imzaci\": 0,\n      \"tur\": \"ad_soyad\",\n      \"sayfa\": 1,\n      \"x\": 0.08,\n      \"y\": 0.88,\n      \"genislik\": 0.3,\n      \"yukseklik\": 0.025\n    },\n    {\n      \"imzaci\": 1,\n      \"tur\": \"imza\",\n      \"sayfa\": 1,\n      \"x\": 0.6,\n      \"y\": 0.8,\n      \"genislik\": 0.3,\n      \"yukseklik\": 0.07\n    },\n    {\n      \"imzaci\": 1,\n      \"tur\": \"tarih\",\n      \"sayfa\": 1,\n      \"x\": 0.6,\n      \"y\": 0.88,\n      \"genislik\": 0.15,\n      \"yukseklik\": 0.025\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const j = pm.response.json();",
                  "if (j?.imzacilar?.[0]) pm.collectionVariables.set('imzaciToken', j.imzacilar[0].imzaLinki.split('/').pop());",
                  "if (j?.id) pm.collectionVariables.set('zarfId', j.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Zarf durumu",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{tabanUrl}}/v1/zarflar/{{zarfId}}",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "zarflar",
                "{{zarfId}}"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Zarf detayı (alanlar, zaman çizelgesi)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{tabanUrl}}/v1/zarflar/{{zarfId}}/detay",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "zarflar",
                "{{zarfId}}",
                "detay"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "İmzacı: görünüm",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{tabanUrl}}/api/i/{{imzaciToken}}",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "api",
                "i",
                "{{imzaciToken}}"
              ]
            },
            "description": "İmzacı sayfasının yaptığı çağrı; test için."
          }
        },
        {
          "name": "İmzacı: kod iste",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{tabanUrl}}/api/i/{{imzaciToken}}/kod",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "api",
                "i",
                "{{imzaciToken}}",
                "kod"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "İmzacı: imzala (test)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{tabanUrl}}/api/i/{{imzaciToken}}/imzala",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "api",
                "i",
                "{{imzaciToken}}",
                "imzala"
              ]
            },
            "description": "imza: el imzası PNG (en az 50x20 piksel).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"kod\": \"123456\",\n  \"onay\": true,\n  \"ad\": \"Ayşe Yılmaz\",\n  \"imza\": \"data:image/png;base64,<PNG>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "İmzalı PDF",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{tabanUrl}}/v1/zarflar/{{zarfId}}/pdf",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "zarflar",
                "{{zarfId}}",
                "pdf"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Kanıt paketi",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{tabanUrl}}/v1/zarflar/{{zarfId}}/kanit",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "zarflar",
                "{{zarfId}}",
                "kanit"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Zarflar (liste)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{tabanUrl}}/v1/zarflar?durum=bekliyor&adet=50",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "zarflar?durum=bekliyor&adet=50"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "İptal",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{tabanUrl}}/v1/zarflar/{{zarfId}}/iptal",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "zarflar",
                "{{zarfId}}",
                "iptal"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "5. Belge şablonları ve toplu gönderim",
      "item": [
        {
          "name": "Zarftan şablon oluştur",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{tabanUrl}}/v1/zarflar/{{zarfId}}/sablon",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "zarflar",
                "{{zarfId}}",
                "sablon"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ad\": \"Kira sözleşmesi şablonu\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const j = pm.response.json();",
                  "if (j && j.id) pm.collectionVariables.set('sablonId', j.id);",
                  "pm.test('2xx', () => pm.expect(pm.response.code).to.be.below(300));"
                ]
              }
            }
          ]
        },
        {
          "name": "Şablonlar",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{tabanUrl}}/v1/zarf-sablonlari",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "zarf-sablonlari"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Şablondan gönder",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "url": {
              "raw": "{{tabanUrl}}/v1/zarf-sablonlari/{{sablonId}}/gonder",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "zarf-sablonlari",
                "{{sablonId}}",
                "gonder"
              ]
            },
            "description": "Kişiler şablondaki rol sırasıyla.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"imzacilar\": [\n    {\n      \"ad\": \"Selin Ak\",\n      \"telefon\": \"05321230001\"\n    },\n    {\n      \"ad\": \"Burak Ak\",\n      \"telefon\": \"05321230002\"\n    }\n  ],\n  \"refNo\": \"SOZ-78\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Toplu gönder",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "url": {
              "raw": "{{tabanUrl}}/v1/zarf-sablonlari/{{sablonId}}/toplu",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "v1",
                "zarf-sablonlari",
                "{{sablonId}}",
                "toplu"
              ]
            },
            "description": "En fazla 100 satır; her satır ayrı belge. Idempotency-Key ile tekrar denemede çift belge oluşmaz.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"satirlar\": [\n    {\n      \"imzacilar\": [\n        {\n          \"ad\": \"Kiracı 1\",\n          \"telefon\": \"05321230011\"\n        },\n        {\n          \"ad\": \"Mal sahibi\",\n          \"telefon\": \"05321230099\"\n        }\n      ],\n      \"refNo\": \"T-1\"\n    },\n    {\n      \"imzacilar\": [\n        {\n          \"ad\": \"Kiracı 2\",\n          \"telefon\": \"05321230012\"\n        },\n        {\n          \"ad\": \"Mal sahibi\",\n          \"telefon\": \"05321230099\"\n        }\n      ],\n      \"refNo\": \"T-2\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "6. Doğrulama (herkese açık)",
      "item": [
        {
          "name": "Kayıt kimliğiyle doğrula",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{tabanUrl}}/api/dogrula/{{onayId}}",
              "host": [
                "{{tabanUrl}}"
              ],
              "path": [
                "api",
                "dogrula",
                "{{onayId}}"
              ]
            },
            "description": "Kimlik gerektirmez."
          }
        }
      ]
    }
  ]
}