Partner API referansı
Hızlı başlangıç ve imza doğrulama. Uçların tam listesi ve şemaları için bu deponun packages/contracts/openapi/kefildar-v1.yaml dosyasına bakın -- bu API'nin tek doğruluk kaynağı odur; her canlı uç bu dosyaya karşı otomatik doğrulanır.
1. Anahtarınızı alın
Kefildar hesabınızın telefon numarasıyla birlikte [E-POSTA ADRESİ] adresine yazarak başvurun. İki Kefildar yetkilisi ayrı ayrı onayladıktan sonra X-Kefildar-Key ve gizli anahtarınız size bir kez iletilir. Bu site (developer.kefildar.com) hiçbir hesap veya anahtar bilgisi tutmaz -- yalnızca dokümantasyondur.
2. İstekleri imzalayın
Kimlik doğrulamalı her uç dört başlık ister; tek doğrulama biçimi budur:
X-Kefildar-Key: kf_live_... X-Kefildar-Timestamp: <unix zaman damgası> X-Kefildar-Nonce: <yalnızca bir kez kullanılan rastgele değer> X-Kefildar-Signature: HMAC-SHA256(secret, METHOD.PATH.TIMESTAMP.NONCE.SHA256(body))
Zaman damgası sunucu saatinden 5 dakikadan fazla sapamaz; her nonce yalnızca bir kez kabul edilir. Aşağıdaki örnek Node.js ile imzayı hesaplar:
const crypto = require('crypto')
function signRequest({ method, path, body, keyId, secret }) {
const timestamp = Math.floor(Date.now() / 1000).toString()
const nonce = crypto.randomBytes(16).toString('hex')
const bodyHash = crypto.createHash('sha256').update(body ?? '').digest('hex')
const canonical = [method.toUpperCase(), path, timestamp, nonce, bodyHash].join('.')
const signature = crypto.createHmac('sha256', secret).update(canonical).digest('hex')
return {
'X-Kefildar-Key': keyId,
'X-Kefildar-Timestamp': timestamp,
'X-Kefildar-Nonce': nonce,
'X-Kefildar-Signature': signature,
}
}3. Yetkiler (scopes)
Başvurunuz onaylanırken size hangi yetkilerin verileceği belirlenir:
contracts:create-- satışlarınızdan taslak sözleşme oluşturmacontracts:read-- sözleşme durumu okumapayments:read-- ödeme durumu okumaescrow:read-- havuzda bekleyen tutarı okumawebhooks:manage-- webhook uç noktası ekleme/listeleme
4. Sık kullanılan uçlar
GET /api/v1/public/documents/{verification_code}-- kimlik gerektirmez, evrak doğrulamaPOST /api/v1/partner/contracts-- satıştan taslak sözleşme oluşturma (Idempotency-Keyzorunlu)GET /api/v1/partner/contracts/{verification_code}/payment-status-- ödeme durumuGET /api/v1/partner/webhook-endpoints/POST /api/v1/partner/webhook-endpoints-- webhook uç noktası yönetimi
5. Webhook olayları
Her istek webhook-id, webhook-timestamp ve webhook-signature: v1,HMAC-SHA256(secret, "{id}.{timestamp}.{ham gövde}") başlıklarını taşır. Yeniden deneme aralıkları: 5sn, 1dk, 5dk, 30dk, 2sa, 6sa, 12sa, 24sa. Aynı olayı birden fazla kez alabilirsiniz (en-az-bir-kez teslim) -- id alanına göre tekilleştirin.
- contract.created
- contract.accepted
- escrow.funded
- payment.failed
- milestone.paid
- dispute.opened
- dispute.resolved
6. Hata biçimi
{"error": {"type": "validation_error", "code": "invalid_buyer_phone", "message": "...", "request_id": "req_...", "details": {"field": "buyer.phone"}}}