İade talebi oluştur

POST /Return/CreateReturnRequest — OMS API · İptal & İade

Gönderilmiş bir paket için iade paketi (iade talebi) oluşturur ve müşterinin kargoya vereceği iade kodunu (RMA) döner. Talep satıcının iade talepleri ekranına düşer; sonuç ReturnOrderPackageConfirmedEvent / ReturnOrderPackageRejectedEvent webhook'larıyla bildirilir.

Ne zaman çağrılır: Müşteri iade başlattığında.

  • returnPackageItemLines içinde iade adedi kadar satır gönderin; sourceOrderItemLineId değerleri tekil olmalıdır.
  • reasonId için GetStatusReasonByType (statusType=Returned) kullanın.
  • carrierCode gönderilmezse sistem uygun kargo firmasını seçer.
  • Ürünler farklı satıcı paketlerindeyse, pakete ait olmayan ürün varsa ya da sourceReturnPackageId zaten kullanılmışsa HTTP 200, isSuccess: false döner.

İstek gövdesi

  • pickupDate (string): Kargonun iadeyi alacağı tarih (tarih/saat olarak çözülebilir bir metin).
  • carrierCode (string): İade kargo firması kodu. Gönderilmezse sistem uygun firmayı seçer.
  • isConfirmed (boolean): İadenin onaylı olarak açılıp açılmayacağı. Varsayılan false (satıcı onayına düşer).
  • locationCode (string): İadenin teslim edileceği lokasyon kodu.
  • sourcePackageId (string, zorunlu): İadesi yapılan gönderi paketinin sourcePackageId değeri.
  • returnPackageItems (object[], zorunlu): İade edilen kalemler.
    • returnPackageItems.quantity (integer<int32>, zorunlu): İade adedi.
    • returnPackageItems.sourceOrderItemId (string, zorunlu): İade edilen kalemin sourceOrderItemId değeri.
    • returnPackageItems.returnPackageItemLines (object[]): İade edilen satırlar; adet kadar satır gönderin.
      • returnPackageItems.returnPackageItemLines.reasonId (integer<int32>, zorunlu): İade sebebi kimliği; GetStatusReasonByType (statusType=Returned) yanıtındaki id.
      • returnPackageItems.returnPackageItemLines.reasonDesc (string): İade açıklaması.
      • returnPackageItems.returnPackageItemLines.sourceOrderItemLineId (string, zorunlu): İade edilen satırın sourceOrderItemLineId değeri; tekil olmalıdır.
      • returnPackageItems.returnPackageItemLines.returnPackageItemLinePhotos (object[]): Satıra ait fotoğraflar.
  • returnPickupAddress (object): İadenin alınacağı adres.
    • returnPickupAddress.phone (string, zorunlu): Telefon numarası.
    • returnPickupAddress.region (string): Bölge bilgisi.
    • returnPickupAddress.isValid (boolean): Adresin doğrulanmış olup olmadığı.
    • returnPickupAddress.zipCode (string, zorunlu): Posta kodu.
    • returnPickupAddress.cityCode (string): İl kodu.
    • returnPickupAddress.cityName (string, zorunlu): İl adı.
    • returnPickupAddress.lastName (string, zorunlu): Alıcı soyadı.
    • returnPickupAddress.firstName (string, zorunlu): Alıcı adı.
    • returnPickupAddress.stateCode (string): Eyalet/bölge kodu.
    • returnPickupAddress.stateName (string): Eyalet/bölge adı (yurt dışı adresler).
    • returnPickupAddress.taxNumber (string): Vergi numarası (kurumsal fatura).
    • returnPickupAddress.taxOffice (string): Vergi dairesi (kurumsal fatura).
    • returnPickupAddress.streetCode (string): Cadde/sokak kodu.
    • returnPickupAddress.streetName (string): Cadde/sokak adı.
    • returnPickupAddress.addressType (string, zorunlu): Adres tipi: Shipment (teslimat) ya da Invoice (fatura).
    • returnPickupAddress.companyName (string): Firma adı (kurumsal fatura için).
    • returnPickupAddress.countryName (string, zorunlu): Ülke adı.
    • returnPickupAddress.phonePrefix (string): Telefon ülke kodu öneki.
    • returnPickupAddress.addressLine1 (string, zorunlu): Adres satırı 1.
    • returnPickupAddress.addressLine2 (string, zorunlu): Adres satırı 2. Alan zorunludur; ikinci satır yoksa - gibi bir değer gönderin.
    • returnPickupAddress.buildingCode (string): Bina kodu.
    • returnPickupAddress.districtCode (string): İlçe kodu.
    • returnPickupAddress.districtName (string, zorunlu): İlçe adı.
    • returnPickupAddress.provinceName (string): Vilayet adı (yurt dışı adresler).
    • returnPickupAddress.identityNumber (string): Kimlik numarası (bireysel fatura).
    • returnPickupAddress.sourceAddressId (string, zorunlu): Adresin sizin sisteminizdeki kimliği; sipariş içinde tekil olmalıdır (1, 2 gibi verilebilir).
    • returnPickupAddress.externalCityCode (string): İlin dış sistemdeki kodu.
    • returnPickupAddress.formattedAddress (string): Biçimlendirilmiş tam adres metni.
    • returnPickupAddress.neighborhoodCode (string): Mahalle kodu.
    • returnPickupAddress.addressAttributes (object[]): Adrese ait ek alanlar.
      • returnPickupAddress.addressAttributes.attributeKey (string, zorunlu): Ek alan adı.
      • returnPickupAddress.addressAttributes.attributeValue (string, zorunlu): Ek alan değeri.
    • returnPickupAddress.externalStateCode (string): Eyalet/bölgenin dış sistemdeki kodu.
    • returnPickupAddress.neighbourhoodName (string): Mahalle adı.
    • returnPickupAddress.externalStreetCode (string): Cadde/sokağın dış sistemdeki kodu.
    • returnPickupAddress.externalAddressCode (string): Adresin dış sistemdeki kodu.
    • returnPickupAddress.externalBuildingCode (string): Binanın dış sistemdeki kodu.
    • returnPickupAddress.externalDistrictCode (string): İlçenin dış sistemdeki kodu.
    • returnPickupAddress.externalNeighborhoodCode (string): Mahallenin dış sistemdeki kodu.
  • sourceReturnPackageId (string): İade paketine sizin vereceğiniz kimlik. Boşsa OMS üretir; aynı kimlikle ikinci iade reddedilir.

Yanıtlar

  • 200: Başarılı. Gövdedeki isSuccess alanını mutlaka kontrol edin.
  • 400: Gövde doğrulanamadı (zorunlu alan eksik, tip uyumsuz ya da JSON bozuk). Yanıt ASP.NET Core ValidationProblemDetails biçimindedir; errors alanı hangi alanın hatalı olduğunu gösterir.
  • 401: Authorization başlığı yok, token geçersiz ya da süresi dolmuş. Gövde boş döner; /Auth/login ile yeni token alın.
  • 500: Beklenmeyen sunucu hatası. Bu yanıt PascalCase alan adlarıyla döner (diğer yanıtlardan farklı olarak) ve null alanlar da yazılır.

200 yanıt alanları

  • data (object): Oluşan iade paketi.
    • data.rmaCode (string): Müşterinin kargoya vereceği iade (RMA) kodu.
    • data.cargoName (string): İade kargo firması adı.
    • data.carrierCode (string): İade kargo firması kodu.
    • data.rmaExpireDay (integer<int32>): RMA kodunun geçerli olduğu gün sayısı.
    • data.rmaExpireDate (string<date-time>): RMA kodunun geçerlilik bitişi.
    • data.refundPayments (object[]): Oluşan ödeme iadeleri. Yalnızca doluysa döner.
      • data.refundPayments.total (number<double>): Ödeme tutarı.
      • data.refundPayments.status (integer<int32>): İade durumu kodu.
      • data.refundPayments.authCode (string): Provizyon kodu. Yalnızca doluysa döner.
      • data.refundPayments.interest (number<double>): Vade farkı.
      • data.refundPayments.paidDate (string<date-time>): Ödeme zamanı. Yalnızca doluysa döner.
      • data.refundPayments.posPoint (number<double>): POS puanı. Yalnızca doluysa döner.
      • data.refundPayments.refundId (string): İade kaydı kimliği.
      • data.refundPayments.createdOn (string<date-time>): Oluşma zamanı. Yalnızca doluysa döner.
      • data.refundPayments.statusName (string): İade durumu adı.
      • data.refundPayments.paymentType (string): Ödeme tipi.
      • data.refundPayments.refundTotal (number<double>): İade edilecek tutar.
      • data.refundPayments.transactionId (string): İşlem kimliği. Yalnızca doluysa döner.
      • data.refundPayments.paymentMethodId (string): Ödeme yöntemi kimliği.
      • data.refundPayments.transactionCode (string): İşlem kodu. Yalnızca doluysa döner.
      • data.refundPayments.captureTransactionId (string): Tahsilat işlem kimliği. Yalnızca doluysa döner.
    • data.returnPackageId (string): Oluşan iade paketinin kimliği.
  • isSuccess (boolean, zorunlu): İade talebi oluştuysa true.
  • statusCode (string): Kullanılmıyor; genellikle null.
  • errorMesssage (string): Hata mesajı. Yalnızca hata varsa döner.