Akış
Her takvim tetiklemesinde Payven, sizin adınıza yeni bir transfer otomatik oluşturur (POST /transfers/bulk/create muadili). Transferin onay ve gönderim adımları (4-eyes) operatör eylemiyle veya konsol otomasyonuyla yapılır.
Endpoint’ler
transfer-admin rolü.
Oluşturma
| Alan | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
name | string | Zorunlu | İnsan-okur ad (raporlama için) |
external_id | string | Önerilir | Sizin sisteminizdeki kayıt kimliği |
source_account_id | UUID | Zorunlu | Hangi hesaptan çekilecek |
recipient_id | UUID | Zorunlu | Saklı alıcı kimliği (tek kullanımlık IBAN desteklenmez) |
amount.value | long (kuruş) | Zorunlu | Sabit tutar |
transfer_type | enum | Zorunlu | fast, eft, remittance |
schedule | object | Zorunlu | Takvim — bkz. aşağıda |
starts_at | datetime | Zorunlu | İlk üretim zamanı |
ends_at | datetime | Opsiyonel | Son tarih (boş = sınırsız) |
Schedule yapısı
frequency | Açıklama | Ek alanlar |
|---|---|---|
daily | Her gün | hour |
weekly | Her hafta | day_of_week (monday–sunday), hour |
monthly | Her ay | day_of_month (1–28; ay sonu için last), hour |
cron | İleri seviye | cron_expression (örn. "0 9 1 * *") |
timezone IANA formatındadır (örn. Europe/Istanbul); takvim hesaplamaları bu zona göre yapılır, gönderim anında UTC’ye normalize edilir.
Yanıt
Pause / Resume
Tekrarlayan transferi geçici olarak durdurmak için:is_active: false olur, sonraki tetiklemeler atlanır. Aktif etmek için /resume:
Yetersiz bakiye senaryosu
Tetikleme anında kaynak hesapta yeterli bakiye yoksa transferfailed statüsünde oluşur (error_code: "insufficient_balance"). Tekrarlayan kayıt devam eder — sonraki periyodda yeniden denenir. Operasyonel olarak transfer.failed webhook’una abone olmanız önerilir.
Hata response’ları
| HTTP | code | Anlam |
|---|---|---|
403 | forbidden | transfer-admin rolü yok |
404 | recipient_not_found | recipient_id bulunamadı veya pasif |
404 | source_account_not_found | source_account_id bulunamadı |
422 | invalid_schedule | Takvim parametreleri uyumsuz (örn. weekly ama day_of_week yok) |
422 | invalid_state_transition | Pasif kaydı pause veya aktif kaydı resume etme denemesi |
Webhook olayları
Tekrarlayan kayıt kendisi olay yayınlamaz; ancak ürettiği her transfer için standarttransfer.created / .succeeded / .failed olayları yayınlanır. Webhook payload’unda data.recurring_transfer_id alanı, hangi tekrarlayan kayıttan geldiğini gösterir.