15 uç · /api/shop/v1/returns
İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 15 ucun elle doğrulanmış gövde örneği henüz yok; o uçlarda iskelet gövdesizdir — uydurma bir alan yazmıyoruz.
idattachment_iddosya yalnız buradan, kimlik + tenant guard'ıyla okunur.
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/returns/<id>/attachments/<attachment_id>/file" \
-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/returns/<id>/exchange" \
-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/returns/<id>/inspect" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}iditem_idcurl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/returns/<id>/items/<item_id>/decide" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}idTF8 · iade-kargo-etiketi: onaylı (approved|refunded) talebe taşıyıcı-registry'den etiket (return-id-idempotent). Kayıtlı olmayan taşıyıcı → 409. Etiket talebe yazılır (müşteri storefront listesinde görür — kutuya koyacağı iade-kodu/etiket).
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/returns/<id>/label" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}idoperatör alanıdır ve storefront yanıtında yer almaz. Talep yoksa 404.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/returns/<id>/note" \
-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/returns/<id>/receive" \
-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/returns/<id>/refund" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}idcurl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/returns/<id>/tracking" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}carrier`x-shop-webhook-signature` = HMAC-SHA256(settings `shipping.webhook_secret`, raw-body); secret yoksa 401. Body: {event_id, tracking_number, status, description?}. İade (label_carrier + label_tracking) ile bulunur; yok → 404 (olay tüketilmez). Replay → no-op ack. `delivered` → iade approved→received ilerletir (guarded, best-effort; zaten received/inspected/refunded ise no-op). received refund AÇMAZ (admin_refund precondition approved|inspected) → money-safe. Canlı-carrier webhook-secret → TF21. BLE-6439.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/storefront/returns/webhook/<carrier>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}