Müşteri kaydının anahtarı Poyra’nın ürettiği bir kimlik değil, işyerinin kendi referansıdır (customerRef). Bu referans ödemede, kayıtlı kartta, abonelikte ve risk hız sayaçlarında zaten dolaşır; ayrı bir kimliğe geçirmek çalışan entegrasyonları kırmak olurdu.

Müşteri kaydı

  • Uç bir upsert’tür; “önce müşteri yarat” zorunluluğu yoktur. Kayıt sonradan açılsa bile geçmiş ödemeler referans üzerinden kendiliğinden bağlanır.
  • Telefon E.164’e normalleştirilir (0532…+90532…); sabit hat numaraları bilinçli olarak reddedilir.
  • GET /v1/customers/{ref} tek görünüm döner: müşteri bilgisi, ödeme toplamları, son ödemeler, kayıtlı kartlar, abonelikler ve talimatlar. Müşteri kaydı hiç açılmamışsa bile ödeme geçmişi döner.

Kayıtlı kartlar (Kasa)

Kart saklama Kasa modülünün işidir: POST /v1/vault/cards kartı ayrı bir şifreleme anahtarıyla (Vault anahtarı, konnektör sırlarından yalıtık) saklar ve tok_… jetonu döner. CVV asla saklanmaz; yanıtta PAN yoktur, yalnız maskeli numara döner. Tekilleştirme, PAN’ın geri türetilemeyen parmak iziyle yapılır. Kart silme (DELETE /v1/vault/cards/{token}) kriptografik imhadır: şifreli içerik kullanılamaz hâle gelir, kayıt izi durur.

Ödeme talimatı (mandate)

Kayıtlı kartla tekrarlayan ya da tek tık tahsilat için müşteriden alınmış onayın kaydıdır — bir itiraz geldiğinde “yetkisiz işlem” savunmasının ilk belgesi:
  • textVersion zorunludur: onay metni değişince yeni onay gerekir.
  • acceptedIp müşterinin adresi olmalıdır — sunucunuzun IP’sini yazmak, savunmada işe yaramayan bir kayıt bırakır.
  • Aynı kart için ikinci aktif talimat 409 mandate.already_active döner: iki aktif onay, hangisinin dayanak olduğunu belirsiz bırakır.
  • Talimat silinmez, iptal edilir (POST /v1/mandates/{id}/revoke).

KVKK silme: kişisel veri gider, mali kayıt kalır

Silme hakkı ile VUK’un 5 ve TTK’nın 10 yıllık saklama yükümlülüğü çatışır. Poyra’nın çözümü ikisini ayırmaktır:
  • Referans korunur çünkü ödeme, abonelik ve kasa kayıtları ona bağlıdır; silmek mali defteri koparırdı. Referans işyerinin kendi anahtarıdır ve tek başına kimliği açığa çıkarmaz.
  • Talimatların iptali otomatiktir: kişisel verisi silinmiş müşteriden tekrarlayan çekime devam etmek, silme talebini anlamsız kılardı.
  • Silinmiş müşteri yeniden güncellenemez (409 customer.erased) — yeniden veri girmek silme talebini geçersiz kılardı. Kayıtlı kartın imhası ayrı kapıdandır (Kasa ucu).
Panelde müşteri detayının en altındaki KVKK bloğu, silinecek alanları ve iptal edilecek talimat sayısını önceden gösterir; onay kutusuna ek olarak müşteri referansının aynen yazılmasını ister. İşlem denetim defterine customer.erase eylemi olarak düşer.