İ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.
returnPackageItemLinesiçinde iade adedi kadar satır gönderin;sourceOrderItemLineIddeğerleri tekil olmalıdır.reasonIdiçinGetStatusReasonByType(statusType=Returned) kullanın.carrierCodegönderilmezse sistem uygun kargo firmasını seçer.- Ürünler farklı satıcı paketlerindeyse, pakete ait olmayan ürün varsa ya da
sourceReturnPackageIdzaten kullanılmışsa HTTP 200,isSuccess: falsedö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ılanfalse(satıcı onayına düşer).locationCode(string): İadenin teslim edileceği lokasyon kodu.sourcePackageId(string, zorunlu): İadesi yapılan gönderi paketininsourcePackageIddeğeri.returnPackageItems(object[], zorunlu): İade edilen kalemler.returnPackageItems.quantity(integer<int32>, zorunlu): İade adedi.returnPackageItems.sourceOrderItemId(string, zorunlu): İade edilen kaleminsourceOrderItemIddeğ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ındakiid.returnPackageItems.returnPackageItemLines.reasonDesc(string): İade açıklaması.returnPackageItems.returnPackageItemLines.sourceOrderItemLineId(string, zorunlu): İade edilen satırınsourceOrderItemLineIddeğ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 daInvoice(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,2gibi 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
isSuccessalanını mutlaka kontrol edin. - 400: Gövde doğrulanamadı (zorunlu alan eksik, tip uyumsuz ya da JSON bozuk). Yanıt ASP.NET Core
ValidationProblemDetailsbiçimindedir;errorsalanı hangi alanın hatalı olduğunu gösterir. - 401:
Authorizationbaşlığı yok, token geçersiz ya da süresi dolmuş. Gövde boş döner;/Auth/loginile yeni token alın. - 500: Beklenmeyen sunucu hatası. Bu yanıt PascalCase alan adlarıyla döner (diğer yanıtlardan farklı olarak) ve
nullalanlar 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ştuysatrue.statusCode(string): Kullanılmıyor; genelliklenull.errorMesssage(string): Hata mesajı. Yalnızca hata varsa döner.