{
  "info": {
    "_postman_id": "b6f1d2a0-2191-4c3e-9a51-0219000000a1",
    "name": "Veri Merkezi — WhatsApp Business API",
    "description": "Resmî Postman koleksiyonu — Veri Merkezi WhatsApp Business API, sürüm 2.32.1 (25.10.2026).\nBelgeler, OpenAPI, SDK'lar ve bu koleksiyon aynı sürümdedir. 68 uç (+ HEAD /media/{media_id}), 10 klasör.\n\n## Kurulum\n1. Koleksiyonu Postman'e import edin\n2. Koleksiyon değişkenlerini doldurun:\n   - `api_key`: vmk_live_... veya vmk_test_... (panel/api)\n   - `phone_number_id`: bağlı WhatsApp numaranızın ID'si\n   - `test_recipient`: kendi test numaranız\n3. Hazırsınız! Kimlik doğrulama koleksiyon düzeyinde Bearer {{api_key}}.\n\n## Webhook olayları\n35 olay; '*' aboneliği klasik 12 olayı kapsar, diğerleri açıkça seçilmeli.\n\n## Dokümantasyon\nhttps://api.verimerkezi.app/referans/ · OpenAPI: https://api.verimerkezi.app/sdk/openapi.yaml.txt",
    "version": "2.32.1",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{api_key}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "base_url",
      "value": "https://api.verimerkezi.app/wa"
    },
    {
      "key": "api_key",
      "value": ""
    },
    {
      "key": "phone_number_id",
      "value": "1234567890"
    },
    {
      "key": "test_recipient",
      "value": "905550000000"
    },
    {
      "key": "waba_id",
      "value": "1234567890"
    },
    {
      "key": "media_id",
      "value": "1234567890"
    },
    {
      "key": "template_id",
      "value": "1234567890"
    },
    {
      "key": "webhook_id",
      "value": "1234567890"
    },
    {
      "key": "call_id",
      "value": "wacid.1234567890"
    },
    {
      "key": "flow_id",
      "value": "1234567890123456"
    }
  ],
  "item": [
    {
      "name": "1. Hesap & Ayarlar",
      "item": [
        {
          "name": "GET /me",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/me",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "me"
              ]
            }
          }
        },
        {
          "name": "GET /reports/summary",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/reports/summary?period=30d",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "reports",
                "summary"
              ],
              "query": [
                {
                  "key": "period",
                  "value": "30d"
                }
              ]
            },
            "description": "Kapsam: reports:read. period: 7d | 30d | 90d."
          }
        },
        {
          "name": "PATCH /account/settings — Hesap ayarları",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/account/settings",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                "settings"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"revoke_edit_clean\": true,\n  \"automation_enabled\": true,\n  \"opt_out_autoreply_enabled\": true,\n  \"default_automation_enabled\": true,\n  \"default_opt_out_autoreply_enabled\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Kapsam: profile:write. İlk üç alan TÜM mevcut numaralara, default_* alanları sonradan bağlanacak numaralara uygulanır. Değerler boolean; en az bir alan."
          }
        },
        {
          "name": "PATCH /account/retention — KVKK saklama süreleri",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/account/retention",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                "retention"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"messages_days\": 365,\n  \"media_days\": 180,\n  \"webhook_deliveries_days\": 30\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Kapsam: profile:write. messages_days/media_days 1-3650, webhook_deliveries_days 1-365 (gün). En az bir alan."
          }
        },
        {
          "name": "POST /privacy/erasure — KVKK silme/unutulma",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/privacy/erasure",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "privacy",
                "erasure"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"wa_id\": \"{{test_recipient}}\",\n  \"phone_number_id\": \"{{phone_number_id}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Kapsam: profile:write. wa_id (telefon) veya user_id (BSUID) zorunlu. 202 döner ve privacy.erasure_completed olayı yayınlanır. İdempotent."
          }
        }
      ]
    },
    {
      "name": "2. Mesajlar",
      "item": [
        {
          "name": "POST /messages — Text",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number_id\": \"{{phone_number_id}}\",\n  \"to\": \"{{test_recipient}}\",\n  \"text\": \"Merhaba! Test mesajı.\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/messages",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "messages"
              ]
            }
          }
        },
        {
          "name": "POST /messages — Template",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number_id\": \"{{phone_number_id}}\",\n  \"to\": \"{{test_recipient}}\",\n  \"template\": {\n    \"name\": \"hosgeldin\",\n    \"language\": { \"code\": \"tr\" },\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [{ \"type\": \"text\", \"text\": \"Ahmet\" }]\n      }\n    ]\n  }\n}"
            },
            "url": {
              "raw": "{{base_url}}/messages",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "messages"
              ]
            }
          }
        },
        {
          "name": "POST /messages — Template (medya başlıklı, header göndermeden)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number_id\": \"{{phone_number_id}}\",\n  \"to\": \"{{test_recipient}}\",\n  \"template\": {\n    \"name\": \"kampanya_gorselli\",\n    \"language\": {\n      \"code\": \"tr\"\n    },\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"Ahmet\"\n          }\n        ]\n      }\n    ]\n  }\n}"
            },
            "url": {
              "raw": "{{base_url}}/messages",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "messages"
              ]
            },
            "description": "Kapsam: messages:send (2.25.0). Şablon medya başlıklıysa ve Veri Merkezi'nde kayıtlıysa `header` bileşeni gönderilmez: kayıtlı medya kalıcı bağlantıyla (GET /templates → header_media.url) otomatik eklenir. `header` gönderirseniz aynen kullanılır."
          }
        },
        {
          "name": "POST /messages — Template (dinamik URL düğmesi)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number_id\": \"{{phone_number_id}}\",\n  \"to\": \"{{test_recipient}}\",\n  \"template\": {\n    \"name\": \"police_yenileme_hatirlatma_named\",\n    \"language\": {\n      \"code\": \"tr\"\n    },\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"Ayşe Yılmaz\"\n          }\n        ]\n      },\n      {\n        \"type\": \"button\",\n        \"sub_type\": \"url\",\n        \"index\": \"0\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"abc123\"\n          }\n        ]\n      }\n    ]\n  }\n}"
            },
            "url": {
              "raw": "{{base_url}}/messages",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "messages"
              ]
            },
            "description": "Kapsam: messages:send (2.25.0). `parameters[0].text` şablon adresinin sonundaki {{1}} yerine geçer. Sabit adresli URL düğmesine button bileşeni GÖNDERİLMEZ. Uyumsuzlukta 422 invalid_template_parameters (field)."
          }
        },
        {
          "name": "POST /messages — Dinamik URL Butonu",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number_id\": \"{{phone_number_id}}\",\n  \"to\": \"{{test_recipient}}\",\n  \"template\": {\n    \"name\": \"sepet_kurtarma\",\n    \"language\": { \"code\": \"tr\" },\n    \"components\": [\n      { \"type\": \"body\", \"parameters\": [{ \"type\": \"text\", \"text\": \"Ahmet\" }] },\n      { \"type\": \"button\", \"sub_type\": \"url\", \"index\": 0, \"parameters\": [{ \"type\": \"text\", \"text\": \"d32eec6c,5cbd62f6\" }] }\n    ]\n  }\n}"
            },
            "url": {
              "raw": "{{base_url}}/messages",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "messages"
              ]
            }
          }
        },
        {
          "name": "POST /messages — Video (medya) gönder",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number_id\": \"{{phone_number_id}}\",\n  \"to\": \"{{test_recipient}}\",\n  \"type\": \"video\",\n  \"video\": {\n    \"link\": \"https://example.com/video.mp4\",\n    \"caption\": \"Tanıtım videosu\"\n  }\n}"
            },
            "url": {
              "raw": "{{base_url}}/messages",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "messages"
              ]
            }
          }
        },
        {
          "name": "POST /messages/read — Okundu + yazıyor",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number_id\": \"{{phone_number_id}}\",\n  \"message_id\": \"<wamid>\",\n  \"typing\": true\n}"
            },
            "url": {
              "raw": "{{base_url}}/messages/read",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "messages",
                "read"
              ]
            }
          }
        },
        {
          "name": "POST /messages — Alıntılı cevap",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/messages",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "messages"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number_id\": \"{{phone_number_id}}\",\n  \"to\": \"{{test_recipient}}\",\n  \"type\": \"text\",\n  \"text\": \"Yanıtınız için teşekkürler.\",\n  \"context\": {\n    \"message_id\": \"wamid.HBgL...\"\n  }\n}"
            }
          }
        },
        {
          "name": "POST /messages — Tepki (emoji)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/messages",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "messages"
              ]
            },
            "description": "emoji \"\" gönderilirse tepki kaldırılır.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number_id\": \"{{phone_number_id}}\",\n  \"to\": \"{{test_recipient}}\",\n  \"type\": \"reaction\",\n  \"reaction\": {\n    \"message_id\": \"wamid.HBgL...\",\n    \"emoji\": \"👍\"\n  }\n}"
            }
          }
        },
        {
          "name": "POST /messages — Konum gönder",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/messages",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "messages"
              ]
            },
            "description": "v2.21.0 — Serbest mesaj (24 saat pencere, 1 kredi). latitude -90..90, longitude -180..180 zorunlu; name / address isteğe bağlı (≤1000). Hata: 422 invalid_location.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number_id\": \"{{phone_number_id}}\",\n  \"to\": \"{{test_recipient}}\",\n  \"type\": \"location\",\n  \"location\": {\n    \"latitude\": 41.0082,\n    \"longitude\": 28.9784,\n    \"name\": \"Merkez Ofis\",\n    \"address\": \"Örnek Mah. Örnek Cad. No:1, İstanbul\"\n  }\n}"
            }
          }
        },
        {
          "name": "POST /messages — Kişi kartı gönder",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/messages",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "messages"
              ]
            },
            "description": "v2.21.0 — Serbest mesaj (24 saat pencere, 1 kredi). 1–20 kart; name.formatted_name zorunlu. phones[].wa_id verilirse alıcıda Mesaj gönder / Kişiyi kaydet düğmeleri çıkar. Hata: 422 invalid_contacts.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number_id\": \"{{phone_number_id}}\",\n  \"to\": \"{{test_recipient}}\",\n  \"type\": \"contacts\",\n  \"contacts\": [\n    {\n      \"name\": { \"formatted_name\": \"Destek Hattı\", \"first_name\": \"Destek\", \"last_name\": \"Hattı\" },\n      \"phones\": [ { \"phone\": \"+905550000000\", \"type\": \"WORK\", \"wa_id\": \"905550000000\" } ],\n      \"emails\": [ { \"email\": \"destek@example.com\", \"type\": \"WORK\" } ],\n      \"org\": { \"company\": \"Örnek A.Ş.\", \"title\": \"Müşteri Hizmetleri\" }\n    }\n  ]\n}"
            }
          }
        },
        {
          "name": "POST /messages — Düğmeli mesaj (interactive button)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/messages",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "messages"
              ]
            },
            "description": "v2.22.0 — Serbest mesaj (24 saat pencere, 1 kredi). 1–3 yanıt düğmesi; title ≤20 (benzersiz), id ≤256; body ≤1024, footer ≤60; header text/image/video/document. Seçim message.received data.interactive (button_reply, reply_id/reply_title) olarak gelir. Hata: 422 invalid_interactive.",
            "body": {
              "mode": "raw",
              "raw": "{\n    \"phone_number_id\": \"{{phone_number_id}}\",\n    \"to\": \"{{test_recipient}}\",\n    \"type\": \"interactive\",\n    \"interactive\": {\n        \"type\": \"button\",\n        \"header\": {\n            \"type\": \"text\",\n            \"text\": \"Randevu\"\n        },\n        \"body\": {\n            \"text\": \"Yarın 14:00 randevunuzu onaylıyor musunuz?\"\n        },\n        \"footer\": {\n            \"text\": \"Örnek Klinik\"\n        },\n        \"action\": {\n            \"buttons\": [\n                {\n                    \"type\": \"reply\",\n                    \"reply\": {\n                        \"id\": \"onay\",\n                        \"title\": \"Onaylıyorum\"\n                    }\n                },\n                {\n                    \"type\": \"reply\",\n                    \"reply\": {\n                        \"id\": \"degistir\",\n                        \"title\": \"Saati değiştir\"\n                    }\n                }\n            ]\n        }\n    }\n}"
            }
          }
        },
        {
          "name": "POST /messages — Liste mesajı (interactive list)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/messages",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "messages"
              ]
            },
            "description": "v2.22.0 — Serbest mesaj (24 saat pencere, 1 kredi). action.button ≤20; 1–10 bölüm, toplam ≤10 satır; satır id ≤200 (benzersiz), title ≤24, description ≤72; body ≤4096; header yalnız text. Seçim data.interactive (list_reply, reply_id/reply_title/reply_description). Hata: 422 invalid_interactive.",
            "body": {
              "mode": "raw",
              "raw": "{\n    \"phone_number_id\": \"{{phone_number_id}}\",\n    \"to\": \"{{test_recipient}}\",\n    \"type\": \"interactive\",\n    \"interactive\": {\n        \"type\": \"list\",\n        \"header\": {\n            \"type\": \"text\",\n            \"text\": \"Şubelerimiz\"\n        },\n        \"body\": {\n            \"text\": \"Size en yakın şubeyi seçin.\"\n        },\n        \"footer\": {\n            \"text\": \"Hafta içi 09:00-18:00\"\n        },\n        \"action\": {\n            \"button\": \"Şube seç\",\n            \"sections\": [\n                {\n                    \"title\": \"İstanbul\",\n                    \"rows\": [\n                        {\n                            \"id\": \"ist-kadikoy\",\n                            \"title\": \"Kadıköy\",\n                            \"description\": \"Örnek Cad. No:1\"\n                        },\n                        {\n                            \"id\": \"ist-besiktas\",\n                            \"title\": \"Beşiktaş\"\n                        }\n                    ]\n                },\n                {\n                    \"title\": \"Ankara\",\n                    \"rows\": [\n                        {\n                            \"id\": \"ank-cankaya\",\n                            \"title\": \"Çankaya\"\n                        }\n                    ]\n                }\n            ]\n        }\n    }\n}"
            }
          }
        },
        {
          "name": "POST /messages — Bağlantı düğmesi (interactive cta_url)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/messages",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "messages"
              ]
            },
            "description": "v2.22.0 — Serbest mesaj (24 saat pencere, 1 kredi). display_text ≤20, url http(s); body ≤1024, footer ≤60. Dokunma webhook olayı üretmez. Hata: 422 invalid_interactive.",
            "body": {
              "mode": "raw",
              "raw": "{\n    \"phone_number_id\": \"{{phone_number_id}}\",\n    \"to\": \"{{test_recipient}}\",\n    \"type\": \"interactive\",\n    \"interactive\": {\n        \"type\": \"cta_url\",\n        \"header\": {\n            \"type\": \"image\",\n            \"image\": {\n                \"link\": \"https://example.com/kargo.jpg\"\n            }\n        },\n        \"body\": {\n            \"text\": \"Siparişiniz kargoya verildi.\"\n        },\n        \"footer\": {\n            \"text\": \"Örnek Mağaza\"\n        },\n        \"action\": {\n            \"name\": \"cta_url\",\n            \"parameters\": {\n                \"display_text\": \"Kargo takibi\",\n                \"url\": \"https://example.com/takip?no=12345\"\n            }\n        }\n    }\n}"
            }
          }
        },
        {
          "name": "POST /messages — Konum isteği (interactive location_request_message)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/messages",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "messages"
              ]
            },
            "description": "v2.22.0 — Serbest mesaj (24 saat pencere, 1 kredi). Yalnız body (≤1024); header/footer yok. Kullanıcının konumu message.received type \"location\" (context.message_id = bu mesaj) olarak gelir. Hata: 422 invalid_interactive.",
            "body": {
              "mode": "raw",
              "raw": "{\n    \"phone_number_id\": \"{{phone_number_id}}\",\n    \"to\": \"{{test_recipient}}\",\n    \"type\": \"interactive\",\n    \"interactive\": {\n        \"type\": \"location_request_message\",\n        \"body\": {\n            \"text\": \"Teslimat için konumunuzu paylaşır mısınız?\"\n        },\n        \"action\": {\n            \"name\": \"send_location\"\n        }\n    }\n}"
            }
          }
        },
        {
          "name": "GET /messages — Uzlaştırma (kaçan olaylar)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/messages?phone_number_id={{phone_number_id}}&since=2026-09-22T00:00:00Z&limit=100",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "messages"
              ],
              "query": [
                {
                  "key": "phone_number_id",
                  "value": "{{phone_number_id}}"
                },
                {
                  "key": "since",
                  "value": "2026-09-22T00:00:00Z"
                },
                {
                  "key": "limit",
                  "value": "100"
                }
              ]
            },
            "description": "Okuma — kredi/kota tüketmez."
          }
        },
        {
          "name": "POST /test/inbound — Sandbox sahte gelen mesaj",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/test/inbound",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "test",
                "inbound"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number_id\": \"{{phone_number_id}}\",\n  \"type\": \"text\",\n  \"from\": \"{{test_recipient}}\",\n  \"text\": \"Merhaba, bu bir test mesajıdır.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "YALNIZ test anahtarı (vmk_test_). type: text | revoke | edit (revoke/edit için original_message_id). İmzalı message.received / message.revoked / message.edited olayları aboneliklerinize gider; Meta'ya istek gitmez. 202 döner."
          }
        },
        {
          "name": "POST /test/inbound — örnek contact.synced (app_contact_sync)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number_id\": \"{{phone_number_id}}\",\n  \"type\": \"app_contact_sync\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/test/inbound",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "test",
                "inbound"
              ]
            },
            "description": "Yalnız vmk_test_ anahtarı (2.23.0). add/update/remove içeren örnek contact.synced olayını, olayı seçmiş webhook aboneliklerinize gönderir. Rehbere kayıt yazılmaz."
          }
        }
      ]
    },
    {
      "name": "3. Şablonlar",
      "item": [
        {
          "name": "GET /templates",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/templates?status=APPROVED",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "templates"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "APPROVED",
                  "disabled": true
                },
                {
                  "key": "category",
                  "value": "UTILITY",
                  "disabled": true
                },
                {
                  "key": "language",
                  "value": "tr",
                  "disabled": true
                },
                {
                  "key": "q",
                  "value": "yenileme",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "50",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "disabled": true
                }
              ]
            }
          }
        },
        {
          "name": "POST /templates — Oluştur & Meta'ya gönder",
          "request": {
            "method": "POST",
            "url": {
              "raw": "{{base_url}}/templates",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "templates"
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"waba_id\": \"{{waba_id}}\",\n  \"name\": \"police_yenileme_hatirlatma\",\n  \"language\": \"tr\",\n  \"category\": \"UTILITY\",\n  \"allow_category_change\": true,\n  \"components\": [\n    {\n      \"type\": \"BODY\",\n      \"text\": \"Sayın {{1}}, {{2}} plakalı aracınızın poliçesi {{3}} tarihinde sona eriyor.\",\n      \"example\": {\n        \"body_text\": [\n          [\n            \"Ahmet Yılmaz\",\n            \"34 ABC 123\",\n            \"12.10.2026\"\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"FOOTER\",\n      \"text\": \"Mim Gökmen Sigorta\"\n    },\n    {\n      \"type\": \"BUTTONS\",\n      \"buttons\": [\n        {\n          \"type\": \"QUICK_REPLY\",\n          \"text\": \"Teklif istiyorum\"\n        }\n      ]\n    }\n  ]\n}"
            },
            "description": "Kapsam: templates:write. 2.25.0: parameter_format (POSITIONAL | NAMED), allow_category_change, message_send_ttl_seconds, cta_url_link_tracking_opted_out, header_media_ref; NAMED değişkenler, metin başlıkta 1 değişken, LOCATION başlık, COPY_CODE düğmesi. Aynı WABA'da aynı ad+dil → 409 template_exists. Hatalarda error.field ve (Meta kaynaklıysa) meta_code, meta_subcode, meta_message, meta_user_title, meta_user_message, fbtrace_id."
          }
        },
        {
          "name": "POST /templates — NAMED değişken, başlık değişkeni, COPY_CODE",
          "request": {
            "method": "POST",
            "url": {
              "raw": "{{base_url}}/templates",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "templates"
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"waba_id\": \"{{waba_id}}\",\n  \"name\": \"police_yenileme_hatirlatma_named\",\n  \"language\": \"tr\",\n  \"category\": \"UTILITY\",\n  \"parameter_format\": \"NAMED\",\n  \"components\": [\n    {\n      \"type\": \"HEADER\",\n      \"format\": \"TEXT\",\n      \"text\": \"Poliçe {{police_no}}\",\n      \"example\": {\n        \"header_text_named_params\": [\n          {\n            \"param_name\": \"police_no\",\n            \"example\": \"TR-2026-001\"\n          }\n        ]\n      }\n    },\n    {\n      \"type\": \"BODY\",\n      \"text\": \"Sayın {{ad_soyad}}, {{bitis_tarihi}} tarihinde biten poliçeniz için teklifiniz hazır.\",\n      \"example\": {\n        \"body_text_named_params\": [\n          {\n            \"param_name\": \"ad_soyad\",\n            \"example\": \"Ayşe Yılmaz\"\n          },\n          {\n            \"param_name\": \"bitis_tarihi\",\n            \"example\": \"30.10.2026\"\n          }\n        ]\n      }\n    },\n    {\n      \"type\": \"FOOTER\",\n      \"text\": \"Sorularınız için bize yazabilirsiniz\"\n    },\n    {\n      \"type\": \"BUTTONS\",\n      \"buttons\": [\n        {\n          \"type\": \"URL\",\n          \"text\": \"Teklifi gör\",\n          \"url\": \"https://ornek.com/teklif/{{1}}\",\n          \"example\": [\n            \"https://ornek.com/teklif/abc123\"\n          ]\n        },\n        {\n          \"type\": \"COPY_CODE\",\n          \"example\": \"YENI2026\"\n        }\n      ]\n    }\n  ]\n}"
            },
            "description": "Kapsam: templates:write (2.25.0). NAMED değişkenli şablonlar yalnız API ile (POST /messages, components ile) gönderilebilir."
          }
        },
        {
          "name": "POST /templates/validate — Ön doğrula",
          "request": {
            "method": "POST",
            "url": {
              "raw": "{{base_url}}/templates/validate",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "templates",
                "validate"
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number_id\": \"{{phone_number_id}}\",\n  \"name\": \"deneme\",\n  \"language\": \"tr\",\n  \"category\": \"UTILITY\",\n  \"components\": [\n    {\n      \"type\": \"BODY\",\n      \"text\": \"Merhaba {{1}}\",\n      \"example\": {\n        \"body_text\": [\n          [\n            \"Ahmet\"\n          ]\n        ]\n      }\n    }\n  ]\n}"
            }
          }
        },
        {
          "name": "POST /templates/sync — Meta'dan senkronla",
          "request": {
            "method": "POST",
            "url": {
              "raw": "{{base_url}}/templates/sync",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "templates",
                "sync"
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number_id\": \"{{phone_number_id}}\"\n}"
            },
            "description": "WABA başına dakikada 1. Sınırda 429 sync_rate_limited + retry_after. phone_number_id opsiyonel (yoksa tüm aktif WABA'lar)."
          }
        },
        {
          "name": "POST /templates/media — Başlık örnek medyası (header_handle)",
          "request": {
            "method": "POST",
            "url": {
              "raw": "{{base_url}}/templates/media",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "templates",
                "media"
              ]
            },
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "file",
                  "type": "file",
                  "src": []
                },
                {
                  "key": "format",
                  "value": "IMAGE",
                  "type": "text",
                  "description": "IMAGE | VIDEO | DOCUMENT (verilmezse dosya türünden çıkarılır)"
                },
                {
                  "key": "waba_id",
                  "value": "{{waba_id}}",
                  "type": "text"
                }
              ]
            },
            "description": "Kapsam: templates:write (2.25.0). Üç giriş (biri): multipart file, JSON {url} ya da JSON {media_id, phone_number_id}. Kabul: JPEG/PNG ≤5 MB (IMAGE), MP4 ≤16 MB (VIDEO), PDF ≤100 MB (DOCUMENT). 201: header_handle (kısa ömürlü; HEADER example.header_handle[0]'a koyun), header_media_ref (POST /templates gövdesine), format, mime_type, file_size, waba_id. Test anahtarı: header_handle '4::test…', header_media_ref null, simulated true."
          }
        },
        {
          "name": "POST /templates/media — URL ile (JSON)",
          "request": {
            "method": "POST",
            "url": {
              "raw": "{{base_url}}/templates/media",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "templates",
                "media"
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://cdn.example.com/kampanya.jpg\",\n  \"format\": \"IMAGE\",\n  \"waba_id\": \"{{waba_id}}\"\n}"
            },
            "description": "Kapsam: templates:write (2.25.0). Sunucu herkese açık https adresini indirir. media_id girişi: {\"media_id\":\"1234567890\",\"phone_number_id\":\"{{phone_number_id}}\"}."
          }
        },
        {
          "name": "GET /templates/{id} — Ayrıntı",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/templates/{{template_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "templates",
                "{{template_id}}"
              ]
            },
            "description": "Kapsam: templates:read. 2.25.0: previous_category, parameter_format, rejected_reason_text, header_media_ref ve edit_limit {editable, edits_last_30d, max_edits_30d, next_edit_at}."
          }
        },
        {
          "name": "PATCH /templates/{id} — Düzenle",
          "request": {
            "method": "PATCH",
            "url": {
              "raw": "{{base_url}}/templates/{{template_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "templates",
                "{{template_id}}"
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"components\": [\n    {\n      \"type\": \"BODY\",\n      \"text\": \"Sayın {{1}}, poliçeniz {{2}} tarihinde bitiyor.\",\n      \"example\": {\n        \"body_text\": [\n          [\n            \"Ahmet\",\n            \"12.10.2026\"\n          ]\n        ]\n      }\n    }\n  ]\n}"
            },
            "description": "Kapsam: templates:write. Yalnız APPROVED/REJECTED/PAUSED (409 template_not_editable). Onaylı: 24 saatte 1, 30 günde 10; kategori değişmez (422 category_not_editable); sınırda 429 template_edit_limit (next_edit_at, retry_after). TÜM bileşenler gönderilir. POST /templates/{id} eşdeğeridir."
          }
        },
        {
          "name": "POST /templates/{id} — Düzenle (PATCH eşdeğeri)",
          "request": {
            "method": "POST",
            "url": {
              "raw": "{{base_url}}/templates/{{template_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "templates",
                "{{template_id}}"
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"components\": [\n    {\n      \"type\": \"BODY\",\n      \"text\": \"Sayın {{1}}, poliçeniz {{2}} tarihinde bitiyor.\",\n      \"example\": {\n        \"body_text\": [\n          [\n            \"Ahmet\",\n            \"12.10.2026\"\n          ]\n        ]\n      }\n    }\n  ]\n}"
            },
            "description": "Kapsam: templates:write (2.25.0). PATCH /templates/{id} ile aynı davranış, gövde ve hatalar."
          }
        },
        {
          "name": "POST /templates/{id}/copy — Kopyala",
          "request": {
            "method": "POST",
            "url": {
              "raw": "{{base_url}}/templates/{{template_id}}/copy",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "templates",
                "{{template_id}}",
                "copy"
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"police_yenileme_hatirlatma_en\",\n  \"language\": \"en_US\",\n  \"components\": [\n    {\n      \"type\": \"BODY\",\n      \"text\": \"Dear {{1}}, your policy expires on {{2}}.\",\n      \"example\": {\n        \"body_text\": [\n          [\n            \"Ahmet\",\n            \"12.10.2026\"\n          ]\n        ]\n      }\n    }\n  ]\n}"
            },
            "description": "Kapsam: templates:write (2.25.0). Kaynağın bileşenleri, parameter_format ve başlık medyası (VM kopyası varsa) kullanılır; components verilirse onlar esas alınır. 202: yeni şablon (PENDING). Medya başlıklı kaynakta VM kopyası yoksa 422 invalid_request (field: header_media_ref)."
          }
        },
        {
          "name": "DELETE /templates/{id} — Sil",
          "request": {
            "method": "DELETE",
            "url": {
              "raw": "{{base_url}}/templates/{{template_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "templates",
                "{{template_id}}"
              ]
            },
            "description": "Kapsam: templates:write. 2.25.0 düzeltmesi: yalnız bu dil silinir (Meta: name + hsm_id). Adın tüm dilleri için DELETE /templates?name=…"
          }
        },
        {
          "name": "DELETE /templates?name= — Ada göre sil (tüm diller)",
          "request": {
            "method": "DELETE",
            "url": {
              "raw": "{{base_url}}/templates?name=police_yenileme_hatirlatma&waba_id={{waba_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "templates"
              ],
              "query": [
                {
                  "key": "name",
                  "value": "police_yenileme_hatirlatma"
                },
                {
                  "key": "waba_id",
                  "value": "{{waba_id}}",
                  "description": "Birden çok WABA varsa zorunlu"
                }
              ]
            },
            "description": "Kapsam: templates:write (2.25.0). Adın TÜM dillerini siler; yanıt ids ve languages. Tek dil için DELETE /templates/{id}."
          }
        }
      ]
    },
    {
      "name": "4. Kişiler",
      "item": [
        {
          "name": "GET /contacts",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/contacts?limit=50",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "contacts"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "50"
                }
              ]
            }
          }
        },
        {
          "name": "POST /contacts",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone\": \"905550000001\",\n  \"name\": \"Ayşe Müşteri\",\n  \"email\": \"ayse@firma.com\",\n  \"tags\": [\"vip\", \"istanbul\"]\n}"
            },
            "url": {
              "raw": "{{base_url}}/contacts",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "contacts"
              ]
            }
          }
        },
        {
          "name": "POST /contacts/bulk",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"contacts\": [\n    { \"phone\": \"905550000001\", \"name\": \"Ayşe Müşteri\", \"email\": \"ayse@firma.com\", \"tags\": [\"vip\"] },\n    { \"phone\": \"905550000002\", \"name\": \"Mehmet Yılmaz\", \"company\": \"Yılmaz Ltd.\" }\n  ],\n  \"skip_duplicates\": true,\n  \"country_code\": \"90\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/contacts/bulk",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "contacts",
                "bulk"
              ]
            }
          }
        },
        {
          "name": "GET /contacts/opted-out — Abonelikten çıkanlar",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/contacts/opted-out?limit=50",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "contacts",
                "opted-out"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "50"
                }
              ]
            },
            "description": "Kapsam: contacts:read. limit 1-200, cursor ile sayfalama."
          }
        },
        {
          "name": "GET /app-contacts — Uygulama rehberi (coexistence)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/app-contacts?phone_number_id={{phone_number_id}}&include_removed=true&limit=200",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "app-contacts"
              ],
              "query": [
                {
                  "key": "phone_number_id",
                  "value": "{{phone_number_id}}"
                },
                {
                  "key": "updated_since",
                  "value": "2026-10-13T00:00:00+03:00",
                  "disabled": true
                },
                {
                  "key": "include_removed",
                  "value": "true"
                },
                {
                  "key": "limit",
                  "value": "200"
                },
                {
                  "key": "cursor",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "Kapsam: contacts:read (2.23.0). Telefondaki WhatsApp Business uygulaması rehberi; panel kişi rehberinden (/contacts) ayrı. Sıralama updated_at desc, id desc; limit 1-200, cursor ile sayfalama. source: app_initial_sync | app_sync | app_backfill. Değişiklikler contact.synced olayıyla gelir ('*' kapsamaz). Test anahtarı 3 örnek kayıt döner."
          }
        },
        {
          "name": "GET /numbers/{phone_number_id}/app-contacts/sync — Rehber senkron durumu",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/numbers/{{phone_number_id}}/app-contacts/sync",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "numbers",
                "{{phone_number_id}}",
                "app-contacts",
                "sync"
              ]
            },
            "description": "Kapsam: contacts:read (2.23.0). coexistence, sync_supported, reason (not_coexistence | number_detached | null), initial_sync.status (not_requested | requested | in_progress | completed | expired | failed), last_event_at, contact_count, removed_count. Meta ilk aktarımı bağlantıdan sonraki 24 saatte bir kez verir; tekrar isteme ucu yoktur."
          }
        }
      ]
    },
    {
      "name": "5. Krediler",
      "item": [
        {
          "name": "GET /credit/balance",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/credit/balance",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "credit",
                "balance"
              ]
            }
          }
        },
        {
          "name": "GET /credit/packages",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/credit/packages",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "credit",
                "packages"
              ]
            }
          }
        },
        {
          "name": "GET /credit/usage",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/credit/usage?days=30",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "credit",
                "usage"
              ],
              "query": [
                {
                  "key": "days",
                  "value": "30"
                }
              ]
            }
          }
        },
        {
          "name": "GET /credit/transactions",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/credit/transactions?limit=50",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "credit",
                "transactions"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "50"
                },
                {
                  "key": "cursor",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "type",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "source",
                  "value": "",
                  "disabled": true
                }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "6. Medya",
      "item": [
        {
          "name": "POST /media — Dosya yükle (→ media_id)",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{base_url}}/media",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "media"
              ]
            },
            "description": "Dosyayı Meta'ya yükler; dönen media_id (30 gün) POST /messages'ta {type}.id olarak kullanılır.",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "phone_number_id",
                  "value": "{{phone_number_id}}",
                  "type": "text"
                },
                {
                  "key": "file",
                  "type": "file",
                  "src": []
                }
              ]
            }
          }
        },
        {
          "name": "GET /media — Kayıtları listele",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/media?limit=50&source=inbound",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "media"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "50"
                },
                {
                  "key": "source",
                  "value": "inbound"
                },
                {
                  "key": "kind",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "disabled": true
                }
              ]
            }
          }
        },
        {
          "name": "GET /media/{media_id}?meta=1 — Üstveri",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/media/{{media_id}}?meta=1",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "media",
                "{{media_id}}"
              ],
              "query": [
                {
                  "key": "meta",
                  "value": "1"
                }
              ]
            }
          }
        },
        {
          "name": "GET /media/{media_id} — Dosyayı indir",
          "request": {
            "method": "GET",
            "description": "Yanıt dosyanın kendisidir; Postman'de \"Send and Download\" ile kaydedin. Büyük dosyalarda Range başlığı kullanılabilir.",
            "url": {
              "raw": "{{base_url}}/media/{{media_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "media",
                "{{media_id}}"
              ]
            }
          }
        },
        {
          "name": "HEAD /media/{media_id} — Başlıklar",
          "request": {
            "method": "HEAD",
            "url": {
              "raw": "{{base_url}}/media/{{media_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "media",
                "{{media_id}}"
              ]
            }
          }
        }
      ]
    },
    {
      "name": "7. Numaralar & Profil",
      "item": [
        {
          "name": "GET /numbers",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/numbers",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "numbers"
              ]
            }
          }
        },
        {
          "name": "GET /meta/error-codes — Hata kodları sözlüğü",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/meta/error-codes?source=meta_message",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "meta",
                "error-codes"
              ],
              "query": [
                {
                  "key": "source",
                  "value": "meta_message",
                  "disabled": true,
                  "description": "meta_message | meta_template | meta_account | meta_call | vm"
                }
              ]
            }
          }
        },
        {
          "name": "GET /numbers/{id}/history-import — Durum",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/numbers/{{phone_number_id}}/history-import",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "numbers",
                "{{phone_number_id}}",
                "history-import"
              ]
            }
          }
        },
        {
          "name": "POST /numbers/{id}/history-import — Başlat",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/numbers/{{phone_number_id}}/history-import",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "numbers",
                "{{phone_number_id}}",
                "history-import"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{}"
            }
          }
        },
        {
          "name": "PATCH /numbers/{id}/settings — Otomasyon/opt-out",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/numbers/{{phone_number_id}}/settings",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "numbers",
                "{{phone_number_id}}",
                "settings"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"automation_enabled\": false,\n  \"opt_out_autoreply_enabled\": false\n}"
            }
          }
        },
        {
          "name": "POST /numbers/{id}/detach — Numarayı ayır",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/numbers/{{phone_number_id}}/detach",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "numbers",
                "{{phone_number_id}}",
                "detach"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"purge_messages\": false,\n  \"reason\": \"Numara başka sisteme taşındı\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Kapsam: profile:write (yalnız vmk_live_). Numara Meta/WABA’da kayıtlı kalır; yalnız hesabınızdan ayrılır. purge_messages ZORUNLU: false = kayıtlar kalır; true = mesaj içerikleri, medya, konuşma/form/ham webhook kayıtları en geç 24 saatte silinir — GERİ ALINAMAZ (kredi/fatura/izin kayıtları kalır). deregister_meta:true → 422 deregister_not_supported. Sonrasında gönderim/şablon/form/arama uçları 409 number_detached. Olaylar: number.detached, number.purged ('*' kapsamaz). Tekrar çağrı → already:true, silme yeniden zamanlanmaz. Yeniden bağlama: panel /panel/wa/baglan."
          }
        },
        {
          "name": "GET /profile/{phone_number_id}",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/profile/{{phone_number_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "profile",
                "{{phone_number_id}}"
              ]
            },
            "description": "Kapsam: profile:read."
          }
        },
        {
          "name": "PATCH /profile/{phone_number_id} — Profili güncelle",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/profile/{{phone_number_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "profile",
                "{{phone_number_id}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"about\": \"Hafta içi 09:00-18:00\",\n  \"description\": \"İşletme açıklaması\",\n  \"email\": \"info@example.com\",\n  \"websites\": [\n    \"https://example.com\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Kapsam: profile:write. Alanlar: about (≤139), description (≤512), address (≤256), email, vertical, websites (≤2). Coexistence numaralarda desteklenmez."
          }
        }
      ]
    },
    {
      "name": "8. Webhook Yönetimi",
      "item": [
        {
          "name": "POST /webhooks — Abonelik oluştur (secret 1 kez)",
          "request": {
            "method": "POST",
            "url": {
              "raw": "{{base_url}}/webhooks",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "webhooks"
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://api.firmaniz.com/wa-webhook\",\n  \"events\": [\n    \"message.received\",\n    \"message.status.delivered\",\n    \"template.approved\"\n  ],\n  \"description\": \"Production Bot\"\n}"
            }
          }
        },
        {
          "name": "GET /webhooks — Abonelikleri listele",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/webhooks",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "webhooks"
              ]
            }
          }
        },
        {
          "name": "PATCH /webhooks/{id} — Güncelle",
          "request": {
            "method": "PATCH",
            "url": {
              "raw": "{{base_url}}/webhooks/{{webhook_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "webhooks",
                "{{webhook_id}}"
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"events\": [\n    \"message.received\",\n    \"message.status.failed\"\n  ],\n  \"active\": true\n}"
            }
          }
        },
        {
          "name": "DELETE /webhooks/{id} — Sil",
          "request": {
            "method": "DELETE",
            "url": {
              "raw": "{{base_url}}/webhooks/{{webhook_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "webhooks",
                "{{webhook_id}}"
              ]
            }
          }
        },
        {
          "name": "POST /webhooks/{id}/test — Test bildirimi",
          "request": {
            "method": "POST",
            "url": {
              "raw": "{{base_url}}/webhooks/{{webhook_id}}/test",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "webhooks",
                "{{webhook_id}}",
                "test"
              ]
            }
          }
        },
        {
          "name": "POST /webhooks/{id}/rotate-secret — Secret döndür",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/webhooks/{{webhook_id}}/rotate-secret",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "webhooks",
                "{{webhook_id}}",
                "rotate-secret"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"grace_seconds\": 86400\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Kapsam: webhooks:write. Yeni secret YALNIZCA bu yanıtta döner. grace_seconds (0-604800, vars. 86400) boyunca eski secret X-VeriMerkezi-Signature-256-Previous başlığıyla ikinci imza olarak gönderilir."
          }
        },
        {
          "name": "GET /health — Teslimat sağlığı",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/health",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "health"
              ]
            }
          }
        },
        {
          "name": "POST /webhooks/redeliver — Dead-letter yeniden teslim",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/webhooks/redeliver",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "webhooks",
                "redeliver"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"since\": \"2026-09-22T00:00:00Z\"\n}"
            }
          }
        }
      ]
    },
    {
      "name": "9. Arama (Calling)",
      "description": "WhatsApp Cloud API Calling. Kapsam: calls:read / calls:write. Ses WebRTC ile Meta ile sizin uç arasında akar; API yalnız SDP iletir. Olaylar: call.connect, call.status, call.terminate, call.permission_reply ('*' kapsamaz — açıkça seçin).",
      "item": [
        {
          "name": "GET /numbers/{phone_number_id}/calling — Arama ayarları",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/numbers/{{phone_number_id}}/calling",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "numbers",
                "{{phone_number_id}}",
                "calling"
              ]
            },
            "description": "Kapsam: calls:read. ?raw=1 Meta ham yanıtını ekler."
          }
        },
        {
          "name": "PATCH /numbers/{phone_number_id}/calling — Ayarları güncelle",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/numbers/{{phone_number_id}}/calling",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "numbers",
                "{{phone_number_id}}",
                "calling"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"enabled\": true,\n  \"callback_permission\": true,\n  \"call_icon_visibility\": \"DEFAULT\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Kapsam: calls:write. Yalnız verilen alanlar değişir (enabled, callback_permission, call_icon_visibility: DEFAULT | DISABLE_ALL, call_hours)."
          }
        },
        {
          "name": "GET /calls — Arama geçmişi",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/calls?phone_number_id={{phone_number_id}}&limit=50",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "calls"
              ],
              "query": [
                {
                  "key": "phone_number_id",
                  "value": "{{phone_number_id}}"
                },
                {
                  "key": "limit",
                  "value": "50"
                }
              ]
            },
            "description": "Kapsam: calls:read. Filtreler: phone_number_id, from, to (ISO 8601), peer, cursor, limit."
          }
        },
        {
          "name": "POST /calls — İşletme başlatmalı arama",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/calls",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "calls"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number_id\": \"{{phone_number_id}}\",\n  \"to\": \"{{test_recipient}}\",\n  \"sdp_offer\": \"v=0\\r\\no=- 0 0 IN IP4 127.0.0.1\\r\\n...\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Kapsam: calls:write. Kullanıcının arama izni gerekir. sdp_offer: WebRTC SDP (RFC 8866). biz_opaque opsiyonel (≤512). 201 + call_id."
          }
        },
        {
          "name": "GET /calls/permission — Arama izni durumu",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/calls/permission?phone_number_id={{phone_number_id}}&to={{test_recipient}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "calls",
                "permission"
              ],
              "query": [
                {
                  "key": "phone_number_id",
                  "value": "{{phone_number_id}}"
                },
                {
                  "key": "to",
                  "value": "{{test_recipient}}"
                }
              ]
            },
            "description": "Kapsam: calls:read. status: no_permission | temporary | permanent."
          }
        },
        {
          "name": "POST /calls/permission-request — Arama izni iste",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/calls/permission-request",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "calls",
                "permission-request"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number_id\": \"{{phone_number_id}}\",\n  \"to\": \"{{test_recipient}}\",\n  \"body\": \"Sizi arayabilmemiz için izin verir misiniz?\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Kapsam: calls:write. 24 saatlik hizmet penceresi içinde etkileşimli izin isteği gönderir (mesaj olarak 1 kredi)."
          }
        },
        {
          "name": "POST /calls/{call_id}/pre_accept",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/calls/{{call_id}}/pre_accept",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "calls",
                "{{call_id}}",
                "pre_accept"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sdp_answer\": \"v=0\\r\\n...\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Kapsam: calls:write. Gelen aramada medya bağlantısını önceden kurar."
          }
        },
        {
          "name": "POST /calls/{call_id}/accept",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/calls/{{call_id}}/accept",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "calls",
                "{{call_id}}",
                "accept"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sdp_answer\": \"v=0\\r\\n...\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Kapsam: calls:write. Gelen aramayı kabul eder."
          }
        },
        {
          "name": "POST /calls/{call_id}/reject",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/calls/{{call_id}}/reject",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "calls",
                "{{call_id}}",
                "reject"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Kapsam: calls:write."
          }
        },
        {
          "name": "POST /calls/{call_id}/terminate",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/calls/{{call_id}}/terminate",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "calls",
                "{{call_id}}",
                "terminate"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Kapsam: calls:write. İşletme başlatmalı aramalar için tek eylem."
          }
        }
      ]
    },
    {
      "name": "10. Formlar (Flows)",
      "description": "WhatsApp Flows (Formlar). Kapsam: flows:read / flows:write. Formlar WABA düzeyindedir; yönetim kredisiz, form mesajı (POST /messages type: flow) 1 kredi. Olaylar: flow.completed, flow.status_changed ('*' kapsamaz — açıkça seçin). Meta arayüzünde oluşturulan formlar için {flow_id} uçlarına ?phone_number_id= ekleyin.",
      "item": [
        {
          "name": "GET /flows — Formlar",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/flows?phone_number_id={{phone_number_id}}&limit=25",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "flows"
              ],
              "query": [
                {
                  "key": "phone_number_id",
                  "value": "{{phone_number_id}}"
                },
                {
                  "key": "limit",
                  "value": "25"
                }
              ]
            },
            "description": "Kapsam: flows:read. Numaranın WABA'sındaki formlar. 2.26.0: her formda id, waba_id, phone_number_id, updated_at; yanıtta next_cursor + has_more — sonraki sayfa için ?cursor=<next_cursor> (ya da ?after=). limit ≤ 200."
          }
        },
        {
          "name": "POST /flows — Form oluştur",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/flows",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "flows"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number_id\": \"{{phone_number_id}}\",\n  \"name\": \"Başvuru formu\",\n  \"categories\": [\n    \"LEAD_GENERATION\"\n  ],\n  \"flow_json\": {\n    \"version\": \"7.2\",\n    \"screens\": [\n      {\n        \"id\": \"WELCOME\",\n        \"title\": \"Başvuru\",\n        \"terminal\": true,\n        \"layout\": {\n          \"type\": \"SingleColumnLayout\",\n          \"children\": [\n            {\n              \"type\": \"TextInput\",\n              \"name\": \"ad\",\n              \"label\": \"Ad Soyad\",\n              \"required\": true\n            },\n            {\n              \"type\": \"Footer\",\n              \"label\": \"Gönder\",\n              \"on-click-action\": {\n                \"name\": \"complete\",\n                \"payload\": {\n                  \"ad\": \"${form.ad}\"\n                }\n              }\n            }\n          ]\n        }\n      }\n    ]\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Kapsam: flows:write. DRAFT oluşturur; Meta doğrulama hataları validation_errors'ta. Idempotency-Key desteklenir. Test anahtarıyla 403 test_mode_unsupported. 2.26.0: Meta 'Type mismatch in an equality operation' verirse yanıtta hint (flow_chained_equality | crm_update_required) + hint_message; Meta bir ifadede tek eşitlik kabul eder, koşulu iç içe If'lere bölün (≤ 3 seviye)."
          }
        },
        {
          "name": "GET /flows/{flow_id} — Ayrıntı",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/flows/{{flow_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "flows",
                "{{flow_id}}"
              ]
            },
            "description": "Kapsam: flows:read. status: DRAFT | PUBLISHED | DEPRECATED | BLOCKED | THROTTLED."
          }
        },
        {
          "name": "PUT /flows/{flow_id}/json — JSON güncelle",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/flows/{{flow_id}}/json",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "flows",
                "{{flow_id}}",
                "json"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"flow_json\": {\n    \"version\": \"7.2\",\n    \"screens\": [\n      {\n        \"id\": \"WELCOME\",\n        \"title\": \"Başvuru\",\n        \"terminal\": true,\n        \"layout\": {\n          \"type\": \"SingleColumnLayout\",\n          \"children\": [\n            {\n              \"type\": \"TextInput\",\n              \"name\": \"ad\",\n              \"label\": \"Ad Soyad\",\n              \"required\": true\n            },\n            {\n              \"type\": \"Footer\",\n              \"label\": \"Gönder\",\n              \"on-click-action\": {\n                \"name\": \"complete\",\n                \"payload\": {\n                  \"ad\": \"${form.ad}\"\n                }\n              }\n            }\n          ]\n        }\n      }\n    ]\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Kapsam: flows:write. Yalnız DRAFT (aksi 409 flow_not_draft). 2.26.0: zincirlenmiş eşitlikte hint + hint_message (bkz. POST /flows)."
          }
        },
        {
          "name": "POST /flows/{flow_id}/publish — Yayınla",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{base_url}}/flows/{{flow_id}}/publish",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "flows",
                "{{flow_id}}",
                "publish"
              ]
            },
            "description": "Kapsam: flows:write. Yayınlanan form değiştirilemez."
          }
        },
        {
          "name": "POST /flows/{flow_id}/deprecate — Kullanımdan kaldır",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{base_url}}/flows/{{flow_id}}/deprecate",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "flows",
                "{{flow_id}}",
                "deprecate"
              ]
            },
            "description": "Kapsam: flows:write."
          }
        },
        {
          "name": "DELETE /flows/{flow_id} — Taslağı sil",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{base_url}}/flows/{{flow_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "flows",
                "{{flow_id}}"
              ]
            },
            "description": "Kapsam: flows:write. Yalnız DRAFT."
          }
        },
        {
          "name": "GET /flows/{flow_id}/preview — Önizleme",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/flows/{{flow_id}}/preview?invalidate=false",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "flows",
                "{{flow_id}}",
                "preview"
              ],
              "query": [
                {
                  "key": "invalidate",
                  "value": "false"
                }
              ]
            },
            "description": "Kapsam: flows:read. preview_url + expires_at."
          }
        },
        {
          "name": "GET /flows/{flow_id}/metrics — Metrikler",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/flows/{{flow_id}}/metrics?from=2026-10-01&to=2026-10-07&metric=ENDPOINT_REQUEST_COUNT&granularity=DAY",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "flows",
                "{{flow_id}}",
                "metrics"
              ],
              "query": [
                {
                  "key": "from",
                  "value": "2026-10-01"
                },
                {
                  "key": "to",
                  "value": "2026-10-07"
                },
                {
                  "key": "metric",
                  "value": "ENDPOINT_REQUEST_COUNT"
                },
                {
                  "key": "granularity",
                  "value": "DAY"
                }
              ]
            },
            "description": "Kapsam: flows:read. Meta yanıtı aynen (yalnız Endpoint'li formlar)."
          }
        },
        {
          "name": "POST /messages — Form mesajı (type: flow)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/messages",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "messages"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number_id\": \"{{phone_number_id}}\",\n  \"to\": \"{{test_recipient}}\",\n  \"type\": \"flow\",\n  \"flow\": {\n    \"flow_id\": \"{{flow_id}}\",\n    \"flow_token\": \"crm-basvuru-42\",\n    \"cta\": \"Formu Aç\",\n    \"body\": \"Başvurunuzu 1 dakikada tamamlayın.\",\n    \"screen\": \"WELCOME\",\n    \"data\": {}\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Kapsam: messages:send. 1 kredi, 24 saat pencere. mode: draft ile yayınlanmamış formu deneyin. Yanıtta flow.flow_token döner. (Bu öğe /messages ucunun örneğidir; uç sayısına eklenmez.)"
          }
        }
      ]
    }
  ]
}
