# TD-063 · Para harcayan işte tutarı ve alıcıyı göster

Ajan ödeme için onay istiyor ama ekranda ücretler dahil son tutar ve paranın kime gideceği yok. Desen ödemeden önce tutarı kalem kalem, alıcıyı adıyla gösterir ve tutar ya da alıcı değişirse onayı geçersiz sayar.

- Adres: https://tandem.komunite.com.tr/desen/para-harcayan-iste-tutari-ve-aliciyi-goster
- Yer: Eylemde > Onay
- Seviye: Hassas. Para, sağlık, hukuk, işe alım ya da kişisel veriye dokunan üründe gerekli.
- Son inceleme: 27 Ekim 2026, Komünite editörlüğü

## 30 saniyede dene

1. Ajanına küçük bir alışveriş işi ver ama satın almasını söyleme, yalnız en uygun seçeneği bulmasını iste.
2. Ajan ödeme adımına gelince duruyor mu? Duruyorsa ekranda kargo ve hizmet bedeli dahil son tutar, parayı alacak satıcı ve kullanılacak kart yazıyor mu?
3. Onay verdikten sonra sepete bir ürün ekle ya da teslimat seçeneğini değiştir. Ajan eski onayla ödemeye devam ediyor mu?
4. Ödeme bitince kartından çekilen tutarı ajanın raporundaki tutarla karşılaştır.

## Sorun

Kullanıcı asistandan annesine yarın teslim edilecek en uygun çiçeği bulmasını istiyor. Asistan birkaç mağazayı tarıyor, bir buket seçiyor ve soruyor: siparişi tamamlayayım mı? Ekranda buketin fiyatı var. Kullanıcı onaylıyor. Birkaç dakika sonra telefonuna kart bildirimi geliyor. Çekilen tutar ekranda gördüğünden yüksek, karşısında da tanımadığı bir satıcının adı yazıyor.

Bir ödeme üç soruya cevap verir: ne alınıyor, kime ödeniyor, toplam ne kadar. Asistanın onay sorusu bunlardan yalnız birini, o da yarım söylüyor. Kargo, hizmet bedeli ve öncelikli teslimat ödeme sayfasının son adımında ekleniyor, asistan ise soruyu o adımdan önce soruyor. Parayı alan taraf pazar yerindeki bir satıcı ve kullanıcı onun adını ilk kez kart bildiriminde görüyor. İade gerektiğinde kullanıcı kime yazacağını bilmiyor.

Para geri alınması zor bir kaynak. Yanlış bir ödeme iade talebi, itiraz ve bekleme demek. Bunu ajanın aldığı bir kararla yaşayan kullanıcı kartını ajana bir daha kolay vermez. Tutarı ve alıcıyı göstermeyen bir onay, kullanıcıya ne ödediğini ancak kart ekstresinde öğretir.

## Neden atlanıyor

İlk neden ürün baskısı. Satın almayı tek dokunuşa indirmek huniyi kısaltır, toplam fiyatı baştan göstermek ise satışı düşürür. Blake ve arkadaşları bunu bir bilet pazarında ölçtü. Tam fiyatı baştan belirgin göstermek [satın alınan biletin hem sayısını hem kalitesini düşürdü](https://www.nber.org/papers/w25186). Fiyatı gizlemek karşılaştırmayı zorlaştırdı ve tüketicilerin daha çok harcamasına yol açtı. Ajanla alışveriş yapan ürün aynı çekimin içinde. Ucuz görünen bir onay sorusu daha çok onay alır.

İkinci neden teknik. Son tutar ödemenin son ekranında oluşuyor, çoğu zaman satıcının sayfasında ve satıcının düzeninde. Tarayıcıda çalışan ajan bu sayfayı görüntüden okuyor ve sayfa ücretleri katlanmış satırlarda, küçük yazıda tutuyorsa ajanın gördüğü toplam yanlış oluyor. Ajan tutarı ekrandan çıkarıyor, ödeme sistemine sormuyor.

Üçüncü neden ölçümde. Ekip tamamlanan siparişi ve dönüşümü sayar. Onaylanan tutarla tahsil edilen tutar arasındaki fark bir iade talebinde, bir kart itirazında görünür. Oradan geriye, ödeme sorusunda yazmayan kargo bedeline giden çizgi kurulmaz.

## Desen

Para çıkmadan önce kullanıcı üç şeyi görür: ne aldığını, kime ödediğini, toplam ne kadar ödeyeceğini. Onay bu üçüne bağlanır. Biri değişirse onay düşer.

1. **Ödeme ayrı bir adım.** Ajan bulma, karşılaştırma ya da sepet hazırlama işinden ödemeye kendiliğinden geçmez. Kullanıcı satın almayı açıkça istemediyse ajan ödeme sayfasının önünde durur.
2. **Son tutarı kalem kalem göster.** Ürün, kargo, hizmet bedeli, vergi, bahşiş ve toplam, para birimiyle. Ajan tutarı sayfanın görüntüsünden tahmin etmez, ödeme sisteminden ya da sayfanın yapısal verisinden okur. Okuyamıyorsa ödemez ve bunu söyler.
3. **Alıcıyı adıyla göster.** Parayı alacak taraf yazılır: pazar yerindeki satıcı, aracı, abonelik sahibi. Kullanılacak kart ve iade için kime gidileceği de aynı yerde durur.
4. **Onayı tutara ve alıcıya bağla.** Onaydan sonra sepete bir şey eklenirse, teslimat seçeneği ya da satıcı değişirse eski onay geçmez, ajan yeniden sorar. Onay düğmesinde tutarın kendisi yazar.
5. **Önceden yetkiye tavan koy.** Kullanıcı yokken ödeyen ajanın yetkisi tutar tavanı, izin verilen alıcılar ve süreyle sınırlıdır. Tavanı kod uygular, prompt hatırlatır.
6. **Ödemeden sonra gerçeği oku.** Rapor ödeme sisteminin döndürdüğü tutarı yazar. Onaylanan tutardan farklıysa ajan bunu açıkça söyler.

Bu kuralların çekirdeği yeni sayılmaz. Avrupa'da ödeme hizmeti sağlayıcıları uzaktan yapılan bir ödemede müşteriyi doğrularken aynı şeyi yapmak zorunda. Ajanın onay ekranı bu yükümlülüğün dışında kaldığı için ürünü yapanın yazması gerekiyor.

## Önce ve sonra

Aynı çiçek siparişi, iki ayrı onay ekranıyla. Solda asistan yalnız ürün fiyatını söyleyip siparişi tamamlamak için onay istiyor. Sağda ücretler dahil son tutarı, parayı alacak satıcıyı ve kartı gösteriyor, onayın bu tutara ve bu satıcıya bağlı olduğunu yazıyor.

Örnek ekran (kurgusal): Kullanıcı asistandan annesine yarın teslim edilecek en uygun çiçeği bulmasını istemiş. Asistan bir pazar yerinde sepeti hazırlamış ve ödeme adımına gelmiş.

### Önce: Asistan · sipariş

- Kullanıcı: Annem için yarın teslim edilecek en uygun çiçeği bul.
- Adım (tamam): Seçenekler karşılaştırıldı · 6 mağaza tarandı
- AI: En uygun seçeneği buldum, 349 TL'lik mevsim buketi. Siparişi tamamlayayım mı?
- Düğmeler: Onayla · Vazgeç

1. Kullanıcı yalnız bulmasını istedi, asistan ödemeye geçmiş. Onay sorusunda ürün fiyatı var, kargo, hizmet bedeli ve son tutar yok.
2. Paranın hangi satıcıya gideceği ve hangi kartın kullanılacağı yazmıyor. Kullanıcı neyi onayladığını kart ekstresinde öğrenecek.

### Sonra: Asistan · sipariş

- Kullanıcı: Annem için yarın teslim edilecek en uygun çiçeği bul.
- Adım (tamam): Seçenekler karşılaştırıldı · 6 mağaza tarandı
- AI: En uygun seçeneği buldum. Satın almamı istersen ödeme ayrıntısı aşağıda, onayın olmadan ödeme yapmam.
- İçerik (Ödeme özeti): Mevsim buketi 349,00 TL · yarın teslimat 89,90 TL · hizmet bedeli 25,00 TL · Toplam 463,90 TL
- Bilgi: Alıcı: Kırçiçeği Atölyesi (pazar yeri satıcısı) · kart ****4821 · iade ve destek satıcıda
- Uyarı: Tutar ya da satıcı değişirse bu onay geçersiz olur ve yeniden sorarım.
- Düğmeler: 463,90 TL öde · Daha ucuz teslimat ara

1. Asistan bulma işinden ödemeye kendiliğinden geçmiyor. Ödeme özeti ücretler dahil son tutarı, parayı alacak satıcıyı ve kullanılacak kartı gösteriyor.
2. Onay bu tutara ve bu satıcıya bağlı. Sepet ya da satıcı değişirse eski onay geçmiyor, düğmede tutarın kendisi yazıyor.

## Piyasada

Google'ın ajan ödemeleri için duyurduğu AP2 protokolünde kullanıcı alışveriş anında oradaysa ajanın sunduğu sepeti onaylıyor ve bu onay bir sepet yetkisini imzalıyor. Google'a göre bu kayıt [tam ürünlerin ve fiyatın değiştirilemez kaydı](https://cloud.google.com/blog/products/ai-machine-learning/announcing-agents-to-payments-ap2-protocol). Kullanıcı yoksa önceden imzaladığı niyet yetkisi fiyat sınırlarını, zamanlamayı ve öteki koşulları belirliyor.

Stripe'ın ajanlar için paylaşılan ödeme token'ı ödeme yetkisini aynı mantıkla daraltıyor. Ajan token'ı müşterinin ödeme yöntemiyle ve satıcının profiliyle oluşturuyor, [para birimi, azami tutar ve geçerlilik süresi](https://docs.stripe.com/agentic-commerce/concepts/shared-payment-tokens?agent-seller=agent) koyuyor. Token yalnız o satıcıya veriliyor ve ajan onu istediği an iptal edebiliyor.

Amazon'un Buy for Me özelliğinde ajan, Amazon'un satmadığı bir ürünü markanın kendi sitesinden alıyor. Satın almadan önce müşteri bir ödeme sayfasında [teslimat adresini, vergileri, kargo ücretini ve ödeme yöntemini](https://www.aboutamazon.com/news/retail/amazon-shopping-app-buy-for-me-brands) onaylıyor. Amazon teslimatı, iadeyi ve müşteri hizmetini marka mağazasının yürüttüğünü de yazıyor. Parayı alan taraf ile uygulamanın sahibi farklı ve bu fark açıkça söyleniyor.

OpenAI'ın Operator sistem kartı satın almayı tamamlamak gibi eylemlerden önce açık onayı politika olarak koyuyor. Risk çok yüksek görüldüğünde kart modelin yardımını tamamen kısıtladığını yazıyor ve örnek olarak [hisse senedi alıp satmayı](https://cdn.openai.com/operator_system_card.pdf) veriyor. Aynı ajanın onay sormadan ödeme yaptığı bir vaka aşağıda.

## Kanıt

**Operator, Şubat 2025.** Washington Post yazarı Geoffrey Fowler, Operator'dan teslim edilebilecek en ucuz bir düzine yumurtayı bulmasını istedi. Satın almasını istemedi. Ajan bir sitede alt sipariş sınırına takıldı, aramayı başka bir teslimat servisine taşıdı ve Fowler'ın kartıyla [onayını almadan 31,43 dolarlık bir sipariş verdi](https://www.adn.com/alaska-life/2025/02/09/i-let-chatgpts-new-agent-manage-my-life-it-spent-31-on-a-dozen-eggs/). Tutarın içinde yumurtanın fiyatına eklenen bahşiş, öncelik ücreti, teslimat ve hizmet bedelleri vardı. Ajan toplamı 19,68 dolar diye bildirdi. Fowler'a göre büyük olasılıkla ödeme ekranı bu ücretlerin bir kısmını gizlediği için. OpenAI, Operator'ın [neden zaman zaman onay göndermediğini incelediğini](https://www.adn.com/alaska-life/2025/02/09/i-let-chatgpts-new-agent-manage-my-life-it-spent-31-on-a-dozen-eggs/) ve onay şartlarını sıkılaştırmaya başladığını açıkladı. Vaka desenin iki ayağını birden gösteriyor: ödeme sorulmadı, ajanın bildirdiği tutar da yanlıştı.

Kuralın kendisi Avrupa ödeme mevzuatında yazılı. AB'nin güçlü müşteri doğrulaması için çıkardığı 2018/389 sayılı düzenlemenin dinamik bağlama maddesi, ödeme hizmeti sağlayıcısının ödeyeni [ödemenin tutarından ve alıcısından haberdar etmesini](https://web.archive.org/web/20250124105053/https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32018R0389) istiyor. Doğrulama kodu bu tutara ve bu alıcıya özgü üretiliyor, tutar ya da alıcı değişirse kod geçersiz oluyor. Avrupa Bankacılık Otoritesi toplu ödemede kodun [toplu ödemedeki her bir alıcıya](https://www.eba.europa.eu/single-rule-book-qa/qna/view/publicId/2018_4435) bağlanması gerektiğini söylüyor. Bir ajan birden çok satıcıya ödüyorsa onay ekranının her birini ayrı göstermesi bu yüzden yeni bir fikir sayılmaz.

Bu düzenleme bankaların doğrulama adımı için yazıldı, ajanın kendi onay ekranını kapsamıyor. AI ajanlarında onay ekranının içeriğini hatalı ödemeyle ilişkilendiren yayımlanmış bir ölçüm bulamadık.

## Ölçüm

Tamamlanan sipariş sayısı bu desenin işe yarayıp yaramadığını söylemez. Bakılacak yer, kullanıcının onayladığı ile ödediği arasındaki fark.

- **Onay ile tahsilat farkı.** Her ödemede onay ekranındaki toplamı ödeme sisteminin döndürdüğü tutarla karşılaştır. Fark sıfır olmalı, sıfır değilse kaynağı kayda geçsin.
- **Onaysız para çıkışı.** Günlükte ödeme araçlarına giden çağrılardan onay kaydı olmayanları say. Hedef sıfır.
- **Geçersiz sayılan onay.** Tutar ya da alıcı değiştiği için yeniden sorulan ödemeler. Hiç görülmüyorsa kontrol çalışmıyor olabilir, bir testle dene.
- **Onay ekranında vazgeçme.** Son tutarı görüp ödemeyi bırakan ya da daha ucuz seçeneğe geçen kullanıcıların payı. Sıfıra yakınsa kullanıcı ekranı okumadan geçiyor olabilir.
- **İade ve itiraz.** Ajanın yaptığı ödemelerden gelen iade talepleri ve kart itirazları. Desenin işe yaradığını en açık bu sayının düşüşü gösterir.

## Ajanına ver

Üç metin var. Denetim promptu ürünündeki her para çıkışı yolunu bulur, onay ekranında son tutarın, alıcının ve ödeme yönteminin görünüp görünmediğine ve onayın bunlara bağlı olup olmadığına bakar, yalnız rapor yazar. Uygulama promptu ödemeyi ayrı bir adıma alır, kalem kalem tutarı ve alıcıyı gösteren onayı kurar ve tutar değişince onayı düşürür. Önce planı gösterir, onayınla uygular ve eski onayla ödeme yapılmadığını doğrulayan bir test ekler. Kural kodlama ajanının kendi çalışması için. Ödeme koduna dokunan ajan da tutarı ve alıcıyı göstersin.

## Sınır

Ödemeyi kullanıcının kendisi tamamlıyorsa, ajan yalnız sepeti doldurup ödeme sağlayıcının sayfasını açıyorsa ve o sayfa son tutarı gösteriyorsa ikinci bir onay ekranı gereksiz. Desen, parayı ajanın kendisi çıkardığı yerde gerekli.

Küçük ve sık ödemeler, ücretli bir API çağrısı ya da dakika başı bir servis gibi, her seferinde sorulamaz. Böyle işlerde tek tek onay yerine önceden verilen bir yetki kullan. Tutar tavanı, alıcı listesi ve süre olsun, harcama her dönemin sonunda bir özet olarak kullanıcıya dönsün.

Desen fiyatın iyi olduğunu doğrulamaz. Ajanın bulduğu en ucuz seçenek gerçekten en ucuz olmayabilir, alıcının adı yazması satıcının güvenilir olduğunu göstermez. Bunlar ayrı denetimler.

Ajanın onay ekranı bankanın ya da ödeme sağlayıcısının kimlik doğrulamasının yerini tutmaz. İkisi üst üste durur, bu desen yalnız birinciyi düzeltir.

## Promptlar

### Denetim promptu

```
Bu depoda kullanıcı adına para harcayabilen bir AI ajanı ya da otomasyon var (satın alma, ödeme, abonelik, bağış, transfer, ücretli API çağrısı). Görevin, ajanın ödemeden önce kullanıcıya son tutarı ve parayı alacak tarafı gösterip göstermediğini ve onayın bu ikisine bağlı olup olmadığını denetlemek. Hiçbir dosyayı değiştirme, yalnız rapor yaz.

1. Para çıkışına yol açan bütün yolları bul: ödeme sağlayıcı çağrıları, sepet ve ödeme araçları, tarayıcı ajanının ödeme formunu doldurduğu adımlar, kayıtlı kartla yapılan çağrılar, ödeme yetkisi ya da token üreten kod.
2. Ajan araştırma ya da karşılaştırma işinden ödemeye kendiliğinden geçebiliyor mu? Ödeme adımı ayrı bir onaya bağlı mı, yoksa ilk görevin onayı mı yetiyor?
3. Onay ekranı ne gösteriyor: yalnız ürün fiyatı mı, yoksa kargo, hizmet bedeli, vergi, bahşiş dahil son tutar mı? Para birimi yazıyor mu? Tutar ödeme sisteminden mi okunuyor, sayfa metninden ya da modelin tahmininden mi geliyor?
4. Parayı alacak taraf (satıcı, pazar yerindeki mağaza, aracı, abonelik sahibi) ve kullanılacak ödeme yöntemi onay ekranında adıyla yazıyor mu? İade ve destek için kime gidileceği belli mi?
5. Onay verildikten sonra tutar ya da alıcı değişirse (sepete ürün eklenmesi, teslimat seçeneği, satıcı değişimi, kur farkı) onay geçersiz sayılıyor mu, yoksa eski onayla ödeme yapılıyor mu?
6. Kullanıcı yokken çalışan ödemeler için önceden verilen yetki tutar tavanı, alıcı ve süreyle sınırlı mı? Tavan kodda mı uygulanıyor, yalnız promptta mı yazıyor?
7. Ödemeden sonra kullanıcıya bildirilen tutar ödeme sisteminin döndürdüğü gerçek tutar mı? Onaylanan tutarla farkı karşılaştırılıyor mu?

Rapor biçimi: her ödeme yolu için dosya ve satır, onay ekranında görünen alanlar, eksik alanlar (son tutar, alıcı, ödeme yöntemi), onayın tutara ve alıcıya bağlı olup olmadığı, olası sonuç ve önerdiğin düzeltme. Onaysız para çıkışı olan yoldan başla.

```

### Uygulama promptu

```
Bu depodaki AI ajanına "para harcayan işte tutarı ve alıcıyı göster" desenini uygula. Önce planı göster, onayımı aldıktan sonra kodu değiştir.

Hedef davranış:
1. Ödeme ayrı bir adım olsun. Ajan bulma, karşılaştırma ya da sepet hazırlama işinden ödemeye kendiliğinden geçmesin, ödemeden önce durup sorsun.
2. Onay ekranında ücretler dahil son tutarı kalem kalem göster: ürün, kargo, hizmet bedeli, vergi, bahşiş ve toplam, para birimiyle. Tutarı ödeme sisteminden ya da ödeme sayfasının yapısal verisinden oku. Son tutar okunamıyorsa ödeme yapma, "son tutar okunamadı" de.
3. Parayı alacak tarafı adıyla göster (pazar yerindeki satıcı dahil), kullanılacak ödeme yöntemini ve iade için kime gidileceğini yaz.
4. Onayı tutara, para birimine ve alıcıya bağla. Onaydan sonra bunlardan biri değişirse onayı geçersiz say ve yeniden sor. Onay düğmesinde tutarın kendisi yazsın.
5. Kullanıcı yokken ödeme yapılacaksa önceden verilen yetkiyi tutar tavanı, izin verilen alıcılar ve süreyle sınırla. Tavanı kodda uygula.
6. Ödemeden sonra gerçek tahsil edilen tutarı ödeme sisteminden oku, raporda göster ve onaylanan tutardan farklıysa açıkça söyle.

Uygularken:
- Fiyatlandırma ve ödeme sağlayıcısının kendi kimlik doğrulama adımlarını değiştirme. Bu desen onların önüne gelen ajan onayını düzeltir.
- Tutarı modelin yazdığı metinden alma, yapısal veriden al.
- Bir test ekle: onaydan sonra sepete bir ürün ekle ve ödemenin eski onayla yapılmadığını doğrula. Bir test daha: ödeme sayfasında son tutar okunamadığında ödemenin durduğunu doğrula.

```

### AGENTS.md kuralı

```
## Para harcayan işte tutarı ve alıcıyı göster
- Kullanıcı açıkça satın almamı istemediyse ödeme adımına geçme. Bulmak ve karşılaştırmak ödeme yetkisi vermez.
- Ödemeden önce ücretler dahil son tutarı, para birimini, parayı alacak tarafı ve ödeme yöntemini göster.
- Tutarı ödeme sisteminden ya da yapısal veriden oku. Okuyamıyorsan ödeme yapma ve bunu söyle.
- Onaydan sonra tutar ya da alıcı değişirse onayı geçersiz say ve yeniden sor.
- Ödemeden sonra tahsil edilen gerçek tutarı raporla, onaylanan tutardan farklıysa açıkça yaz.

```

## Kaynaklar

1. [Price Salience and Product Choice](https://www.nber.org/papers/w25186), Blake, Moshary, Sweeney, Tadelis (NBER Working Paper 25186), Ekim 2018
2. [Announcing Agent Payments Protocol (AP2)](https://cloud.google.com/blog/products/ai-machine-learning/announcing-agents-to-payments-ap2-protocol), Google Cloud, 16 Eylül 2025
3. [Shared payment tokens](https://docs.stripe.com/agentic-commerce/concepts/shared-payment-tokens?agent-seller=agent), Stripe Docs
4. [Amazon’s new 'Buy for Me' feature helps customers find and buy products from other brands’ sites](https://www.aboutamazon.com/news/retail/amazon-shopping-app-buy-for-me-brands), Amazon, 3 Nisan 2025
5. [Operator System Card](https://cdn.openai.com/operator_system_card.pdf), OpenAI, 23 Ocak 2025
6. [I let ChatGPT’s new ‘agent’ manage my life. It spent $31 on a dozen eggs.](https://www.adn.com/alaska-life/2025/02/09/i-let-chatgpts-new-agent-manage-my-life-it-spent-31-on-a-dozen-eggs/), Geoffrey A. Fowler, The Washington Post (Anchorage Daily News kopyası), 9 Şubat 2025
7. [Commission Delegated Regulation (EU) 2018/389 (regulatory technical standards for strong customer authentication and common and secure open standards of communication)](https://web.archive.org/web/20250124105053/https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32018R0389), EUR-Lex, Avrupa Birliği, 27 Kasım 2017
8. [Q&A 2018_4435: Dynamic Linking for batch payments](https://www.eba.europa.eu/single-rule-book-qa/qna/view/publicId/2018_4435), European Banking Authority, 20 Aralık 2019

---

Kaynak: https://tandem.komunite.com.tr · Metin CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/deed.tr), promptlar ve kural MIT-0 (https://opensource.org/license/mit-0).
