21 uç · /api/shop/v1/payments
İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 21 ucun elle doğrulanmış gövde örneği henüz yok; o uçlarda iskelet gövdesizdir — uydurma bir alan yazmıyoruz.
payment_idcurl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/payments/<payment_id>/captures" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}payment_id(webhook yok) → merchant kuyruğa elle işleyebilmeli. Webhook yoluyla AYNI çekirdeği kullanır.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/payments/<payment_id>/disputes" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/payments/<payment_id>/refunds" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}payment_idcurl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/payments/<payment_id>/refunds" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/payments/reconciliation" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/payments/reconciliation/<run_id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/payments/reconciliation/exceptions" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}idcurl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/payments/reconciliation/exceptions/<id>/resolve" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}intent_idcurl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/storefront/payments/<intent_id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}intent_idcurl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/storefront/payments/<intent_id>/confirm" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}order_idyoksa/zaten-sonuçlanmışsa 404. ⚠ **GÜVENLİK — stub ACS üretimde kimlik DOĞRULAYAMAZ (fail-closed):** Bu uç ağa hiç çıkmaz; gerçek banka ACS'i (imzalı sonuç) TF21'de gelir. `outcome` istekten okunduğu için, üretimde serbest bıraksaydık saldırgan `/3ds/init` (acs_ref al) + `/3ds/callback` (outcome=success) ile `threeds_status='authenticated'` yazıp risk step-up kapısını KENDİ KENDİNE geçerdi (mock-social deseninin ödeme karşılığı). Bu yüzden ÜRETİMDE stub asla `authenticated` yazmaz → step-up tamamlanamaz ve sipariş fail-CLOSED bloke kalır (gerçek step-up için TF21 ACS gerekir). Üretim-dışında (sandbox/dev) tam akış test edilebilir kalır.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/storefront/payments/<order_id>/3ds/callback" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}order_idcurl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/storefront/payments/<order_id>/3ds/init" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/storefront/payments/masterpass/cards" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}server-side üretilir, dönmez. customer_token verilirse müşteriye bağlanır.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/storefront/payments/masterpass/link" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}HAREKET ETMEZ + gerçek provizyon/kayıt = TF21 (canlı-key). Bağlı değilse 404; geçersiz tutar 400.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/storefront/payments/masterpass/pay" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/storefront/payments/masterpass/unlink" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}providerHMAC-SHA256(settings `fulfillment.webhook_secret`, raw-body). Secret yoksa **401** (taşıyıcı-webhook deseninin aynısı; imzasız çağrı kabul EDİLMEZ). Body: `{event_id, request_id, status, tracking_number?}`. - Bilinmeyen durum → 400 (allowlist). - Aynı `event_id` tekrarı → **no-op ack** (idempotent). - **Geriye dönüş kabul edilmez**: gelen durumun rütbesi mevcuttan küçükse yok sayılır (ağ sırası bozulursa `shipped` sonrası gecikmiş `picked` durumu geri almasın). - `shipped` → `shop.shipments` kaydı (mevcut sevkiyat modeline bağlanır).
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/storefront/payments/webhook/<provider>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}