İçeriğe geç
OmniChannels.ai

Ücretsiz araç

SMS iletim raporu (DLR) çözücü

Tek bir SMPP iletim makbuzunu veya bir toplu listeyi yapıştırın. Her alanın ne anlama geldiğini, iletimin ne kadar sürdüğünü, hangi webhook durumuna karşılık geldiğini ve bir SMPP command_status hatasının size ne söylediğini görün.

Ücretsiz · kayıt gerektirmez · tarayıcınızda çalışır

Bir veya daha fazla deliver_sm bildiriminin short_message metnini, satır başına bir tane olacak şekilde yapıştırın. 0x00000058 gibi yalın bir command_status da çözümlenir.

Çözümlenen bildirimler

Bildirimler: 4 · İletim oranı: %25

Bildirimler
4
İletim oranı
%25
DELIVRD ÷ stat değeri bilinen bildirimler
Medyan gecikme
1 sa 7 dk
Dikkat gerektirenler
0

stat değerine göre

  • DELIVRD1
  • ACCEPTD1
  • UNDELIV1
  • EXPIRED1

En yakın webhook durumuna göre

  • SENT1
  • DELIVERED1
  • FAILED2
  1. Satır 1stat:DELIVRDEn yakın webhook durumu: DELIVEREDNihai

    Cihaza iletildi.

    API'mizin normalleştirilmiş durumlarına gösterge niteliğinde eşleme.

    Mesaj kimliği
    2610101200457381
    submit_sm_resp içinde dönen message_id ile eşleşir.
    sub (gönderilen)
    001
    Başlangıçta gönderilen mesajlar, genellikle 001.
    dlvrd (iletilen)
    001
    İletilen mesajlar, genellikle 001 veya 000. Birçok SMSC bunu gevşek doldurur; bu yüzden stat değerine güvenin.
    Gönderim tarihi
    10 Eki 2026 12:00:05261010120005
    SMSC saati. Bildirim saat dilimi taşımaz (genellikle UTC).
    Tamamlanma tarihi
    10 Eki 2026 12:00:09261010120009
    SMSC saati. Bildirim saat dilimi taşımaz (genellikle UTC).
    İletim gecikmesi
    4 sn
    err
    000
    Hata yok.
    text
    Your code is 482913
    Özgün mesajın ilk 20 karakteri; çoğunlukla kesilmiş veya boştur.
  2. Satır 2stat:UNDELIVEn yakın webhook durumu: FAILEDNihai

    İletilemez: geçersiz veya etkin olmayan numara, engelli abone veya şebeke arızası.

    API'mizin normalleştirilmiş durumlarına gösterge niteliğinde eşleme.

    Mesaj kimliği
    2610101200457382
    submit_sm_resp içinde dönen message_id ile eşleşir.
    sub (gönderilen)
    001
    Başlangıçta gönderilen mesajlar, genellikle 001.
    dlvrd (iletilen)
    000
    İletilen mesajlar, genellikle 001 veya 000. Birçok SMSC bunu gevşek doldurur; bu yüzden stat değerine güvenin.
    Gönderim tarihi
    10 Eki 2026 12:002610101200
    SMSC saati. Bildirim saat dilimi taşımaz (genellikle UTC).
    Tamamlanma tarihi
    10 Eki 2026 14:152610101415
    SMSC saati. Bildirim saat dilimi taşımaz (genellikle UTC).
    İletim gecikmesi
    2 sa 15 dk
    err
    001
    Sıfır olmayan err değerleri SMSC'ye veya şebekeye özgüdür (çoğunlukla GSM şebeke nedenlerinden türetilir). Sağlayıcınızın hata listesine bakın.
    text
    Your order has shipp
    Özgün mesajın ilk 20 karakteri; çoğunlukla kesilmiş veya boştur.
  3. Satır 3stat:expiredEn yakın webhook durumu: FAILEDNihai

    Cihaza ulaşılamadan geçerlilik süresi doldu (çoğunlukla kapalı veya kapsama dışı).

    API'mizin normalleştirilmiş durumlarına gösterge niteliğinde eşleme.

    Mesaj kimliği
    2610101200457383
    submit_sm_resp içinde dönen message_id ile eşleşir.
    sub (gönderilen)
    001
    Başlangıçta gönderilen mesajlar, genellikle 001.
    dlvrd (iletilen)
    000
    İletilen mesajlar, genellikle 001 veya 000. Birçok SMSC bunu gevşek doldurur; bu yüzden stat değerine güvenin.
    Gönderim tarihi
    10 Eki 2026 12:012610101201
    SMSC saati. Bildirim saat dilimi taşımaz (genellikle UTC).
    Tamamlanma tarihi
    11 Eki 2026 00:012610110001
    SMSC saati. Bildirim saat dilimi taşımaz (genellikle UTC).
    İletim gecikmesi
    12 sa
    err
    000
    Hata yok.
    text
    Flash sale ends toni
    Özgün mesajın ilk 20 karakteri; çoğunlukla kesilmiş veya boştur.
  4. Satır 4stat:ACCEPTDEn yakın webhook durumu: SENTAra durum

    Şebeke tarafından kabul edildi. Genellikle nihai bir bildirim izler.SMPP v3.4, ACCEPTD'yi resmî olarak müşteri hizmetleri tarafından abone adına elle okunmuş olarak tanımlar; ancak çoğu SMSC ve toplayıcı bunu ara bir “şebeke tarafından kabul edildi” bildirimi olarak gönderir.

    API'mizin normalleştirilmiş durumlarına gösterge niteliğinde eşleme.

    Mesaj kimliği
    2610101200457384
    submit_sm_resp içinde dönen message_id ile eşleşir.
    sub (gönderilen)
    001
    Başlangıçta gönderilen mesajlar, genellikle 001.
    dlvrd (iletilen)
    000
    İletilen mesajlar, genellikle 001 veya 000. Birçok SMSC bunu gevşek doldurur; bu yüzden stat değerine güvenin.
    Gönderim tarihi
    10 Eki 2026 12:022610101202
    SMSC saati. Bildirim saat dilimi taşımaz (genellikle UTC).
    Tamamlanma tarihi
    10 Eki 2026 12:022610101202
    SMSC saati. Bildirim saat dilimi taşımaz (genellikle UTC).
    İletim gecikmesi
    0 sn
    err
    000
    Hata yok.
    text
    —
    Özgün mesajın ilk 20 karakteri; çoğunlukla kesilmiş veya boştur.
  5. Satır 5 · command_status0x00000058ESME_RTHROTTLEDGeçici

    Throttling error (ESME has exceeded allowed message limits)

    Üstel geri çekilmeyle (exponential backoff) daha sonra yeniden deneyin; sıkı bir döngüde asla.

SMPP v3.4 command_status kodları

48 kod

KodAdAnlam (şartname)Ne yapmalı?
0x00000000ESME_ROKNo errorBaşarılı
0x00000001ESME_RINVMSGLENMessage length is invalidİsteği düzeltin
0x00000002ESME_RINVCMDLENCommand length is invalidİsteği düzeltin
0x00000003ESME_RINVCMDIDInvalid command IDİsteği düzeltin
0x00000004ESME_RINVBNDSTSIncorrect bind status for given commandBağlantı veya oturum
0x00000005ESME_RALYBNDESME already in bound stateBağlantı veya oturum
0x00000006ESME_RINVPRTFLGInvalid priority flagİsteği düzeltin
0x00000007ESME_RINVREGDLVFLGInvalid registered delivery flagİsteği düzeltin
0x00000008ESME_RSYSERRSystem errorGeçici
0x0000000AESME_RINVSRCADRInvalid source addressİsteği düzeltin
0x0000000BESME_RINVDSTADRInvalid destination addressİsteği düzeltin
0x0000000CESME_RINVMSGIDMessage ID is invalidİsteği düzeltin
0x0000000DESME_RBINDFAILBind failedBağlantı veya oturum
0x0000000EESME_RINVPASWDInvalid passwordBağlantı veya oturum
0x0000000FESME_RINVSYSIDInvalid system IDBağlantı veya oturum
0x00000011ESME_RCANCELFAILcancel_sm failedİsteği düzeltin
0x00000013ESME_RREPLACEFAILreplace_sm failedİsteği düzeltin
0x00000014ESME_RMSGQFULMessage queue fullGeçici
0x00000015ESME_RINVSERTYPInvalid service typeİsteği düzeltin
0x00000033ESME_RINVNUMDESTSInvalid number of destinationsİsteği düzeltin
0x00000034ESME_RINVDLNAMEInvalid distribution list nameİsteği düzeltin
0x00000040ESME_RINVDESTFLAGDestination flag is invalid (submit_multi)İsteği düzeltin
0x00000042ESME_RINVSUBREPInvalid 'submit with replace' request (submit_sm with replace_if_present_flag set)İsteği düzeltin
0x00000043ESME_RINVESMCLASSInvalid esm_class field dataİsteği düzeltin
0x00000044ESME_RCNTSUBDLCannot submit to distribution listİsteği düzeltin
0x00000045ESME_RSUBMITFAILsubmit_sm or submit_multi failedGeçici
0x00000048ESME_RINVSRCTONInvalid source address TONİsteği düzeltin
0x00000049ESME_RINVSRCNPIInvalid source address NPIİsteği düzeltin
0x00000050ESME_RINVDSTTONInvalid destination address TONİsteği düzeltin
0x00000051ESME_RINVDSTNPIInvalid destination address NPIİsteği düzeltin
0x00000053ESME_RINVSYSTYPInvalid system_type fieldBağlantı veya oturum
0x00000054ESME_RINVREPFLAGInvalid replace_if_present flagİsteği düzeltin
0x00000055ESME_RINVNUMMSGSInvalid number of messagesİsteği düzeltin
0x00000058ESME_RTHROTTLEDThrottling error (ESME has exceeded allowed message limits)Geçici
0x00000061ESME_RINVSCHEDInvalid scheduled delivery timeİsteği düzeltin
0x00000062ESME_RINVEXPIRYInvalid message validity period (expiry time)İsteği düzeltin
0x00000063ESME_RINVDFTMSGIDPredefined message invalid or not foundİsteği düzeltin
0x00000064ESME_RX_T_APPNESME receiver temporary app error codeGeçici
0x00000065ESME_RX_P_APPNESME receiver permanent app error codeİsteği düzeltin
0x00000066ESME_RX_R_APPNESME receiver reject message error codeİsteği düzeltin
0x00000067ESME_RQUERYFAILquery_sm request failedGeçici
0x000000C0ESME_RINVOPTPARSTREAMError in the optional part of the PDU bodyİsteği düzeltin
0x000000C1ESME_ROPTPARNOTALLWDOptional parameter not allowedİsteği düzeltin
0x000000C2ESME_RINVPARLENInvalid parameter lengthİsteği düzeltin
0x000000C3ESME_RMISSINGOPTPARAMExpected optional parameter missingİsteği düzeltin
0x000000C4ESME_RINVOPTPARAMVALInvalid optional parameter valueİsteği düzeltin
0x000000FEESME_RDELIVERYFAILUREDelivery failure (used for data_sm_resp)Geçici
0x000000FFESME_RUNKNOWNERRUnknown errorGeçici

Açıklamalar SMPP v3.4 şartnamesinin 5.1.3 bölümünü izler.

Bildirimleri kendiniz ayrıştırmak istemiyor musunuz? SMS API'miz normalleştirilmiş iletim durumlarını webhook'unuza gönderir; yüksek hacim için SMPP bağlantıları da mevcuttur. Webhook belgeleriSMPP rehberiKurumsal SMS API'si

Buraya yazdığınız hiçbir şey sunucularımıza gönderilmez.

Kısa yanıt

SMPP iletim raporu (DLR), bir SMS gönderdikten sonra SMSC'nin deliver_sm PDU içinde döndürdüğü makbuzdur. Metni şu kalıbı izler: id, sub, dlvrd, submit date, done date, stat, err ve text. stat alanı sonucu taşır: DELIVRD cihaza iletildi demektir; UNDELIV, EXPIRED, DELETED ve REJECTD nihai hatalardır; ENROUTE ve ACCEPTD ara durumlardır. Tarihler YYMMDDhhmm biçimindedir, bazen saniyeyle birlikte.

Bir SMS iletim makbuzu nasıl çözülür

  1. 1

    Makbuz metnini kopyalayın

    SMPP istemcinizden veya SMSC günlüğünden deliver_sm PDU'nun short_message alanını alın; örneğin id:… sub:001 dlvrd:001 … stat:DELIVRD err:000. Günlük önekleri yok sayılır.

  2. 2

    Satır başına bir tane yapıştırın

    Tek bir makbuzu veya yüzlercesini yapıştırın. 0x00000058 veya ESME_RTHROTTLED gibi bir command_status değerini de kendi satırına yapıştırabilirsiniz.

  3. 3

    Çözülen alanları okuyun

    Her makbuz; durumun anlamını, nihai olup olmadığını, en yakın webhook durumunu, okunabilir tarihleri, iletim gecikmesini ve eksik veya tutarsız alanlar için uyarıları gösterir.

  4. 4

    Toplu özeti inceleyin

    stat ve webhook durumuna göre sayıları, iletim oranını ve medyan gecikmeyi görün; ardından hepsini bir destek talebi veya test verisi için JSON olarak kopyalayın.

Bir SMPP iletim makbuzunun yapısı

registered_delivery değeri 1 olarak bir SMS gönderdiğinizde SMSC, daha sonra alıcı veya alıcı-verici bağlantısı üzerinden bir deliver_sm PDU gönderir. esm_class içindeki 0x04 biti bunu gelen mesaj değil iletim makbuzu olarak işaretler; short_message alanı metin biçimli bir makbuz taşır. SMPP v3.4 spesifikasyonunun B Ekinde bu biçim örnek olarak verilir ve neredeyse tüm SMSC'ler onu izler: id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm done date:YYMMDDhhmm stat:DDDDDDD err:E text:….

B Eki katı bir kural değil örnek olduğundan gerçek makbuzlar değişir: küçük harfli anahtarlar, fazladan boşluklar, alt çizgili submit_date, saniyeli 12 haneli tarihler veya eksik text. Bu çözücü hepsini kabul eder ve hangi alanların eksik olduğunu söyler.

  • id: SMSC'nin submit_sm_resp içinde döndürdüğü mesaj kimliği. Makbuzu mesajınızla eşleştirmek için kullanın. Spesifikasyon örneği 10 karakter gösterir, ancak birçok SMSC daha uzun, bazen onaltılık kimlikler kullanır.
  • sub ve dlvrd: başlangıçta gönderilen ve iletilen mesaj sayısı, 3 haneli. Esas olarak dağıtım listeleri için önemlidir; tek SMS'te genellikle 001 ve 001 (veya 000) olur.
  • submit date ve done date: mesajın gönderildiği ve nihai duruma ulaştığı zaman, SMSC'nin saatine göre.
  • stat: nihai veya ara durum, DELIVRD gibi 7 harfli bir kod.
  • err: 3 karakterli hata kodu, ağa veya SMSC'ye özgü; 000 hata yok demektir.
  • text: özgün mesajın ilk 20 karakteri, çoğu zaman kısaltılmış veya boş.
  • İsteğe bağlı TLV'ler bu veriyi daha temiz biçimde tekrarlayabilir: receipted_message_id (0x001E), message_state (0x0427) ve network_error_code (0x0423).

DLR stat kodları ve anlamları

SMPP v3.4 sekiz mesaj durumu tanımlar. ENROUTE ve ACCEPTD ara durumlardır; diğerleri nihaidir. API'miz her kanalı altı webhook durumuna normalleştirir (SUBMITTED, SENT, DELIVERED, READ, FAILED, REJECTED) ve çözücü her stat değeri için en yakın eşleşmeyi gösterir. Bu eşlemeyi gösterge olarak değerlendirin: hesabınız için kesin kural devreye alma sırasında netleştirilir.

  • DELIVRD (message_state 2): cihaza iletildi. En yakın webhook durumu: DELIVERED.
  • ACCEPTD (6): resmî tanımı 'müşteri hizmetleri tarafından abone adına elle okundu'dur, ancak çoğu SMSC bunu ara 'ağ tarafından kabul edildi' makbuzu olarak gönderir. En yakın: SENT.
  • ENROUTE (1): hâlâ yolda, örneğin yeniden deneme için kuyrukta. En yakın: SENT.
  • UNDELIV (5): iletilemez, örneğin geçersiz veya etkin olmayan numara. En yakın: FAILED.
  • EXPIRED (3): cihaza ulaşılamadan geçerlilik süresi doldu, çoğunlukla cihaz kapalı veya kapsama dışı olduğu için. En yakın: FAILED.
  • DELETED (4): iletimden önce silindi, örneğin cancel_sm ile. En yakın: FAILED.
  • REJECTD (8): ağ veya bir güvenlik duvarı tarafından reddedildi, örneğin kayıtsız bir SMS başlığı (Sender ID) ya da engellenen içerik. En yakın: REJECTED.
  • UNKNOWN (7): SMSC'de nihai durum yok. Kanıtlanmış bir hata değil, doğrulanmamış olarak değerlendirin.

err kodları: neden evrensel bir liste yok

err alanı üç karakter genişliğindedir ve SMPP spesifikasyonu değerlerini tanımlamaz. 000 her zaman hata yok demektir, ancak sıfır olmayan değerler SMSC üreticisinden, operatörden veya aradaki bir toplayıcıdan gelir. Bazı SMSC'ler GSM MAP hata nedenlerini aktarır (örneğin MAP hatası 1 bilinmeyen abone, 27 ulaşılamayan abonedir), diğerleri her şeyi kendi tablosuna eşler.

Makbuz network_error_code TLV'sini (0x0423) taşıyorsa daha güvenilirdir: ilk oktet ağ türünü (3 GSM demektir), sonraki ikisi hata kodunu verir. Sıfır olmayan err içeren bir DELIVRD makbuzu tutarsızdır ve sağlayıcınızla görüşmeye değer; çözücü bunu işaretler.

command_status hataları ile iletim makbuzları

SMPP sorunları iki anda bildirir. submit_sm_resp içindeki command_status milisaniyeler içinde gelir ve SMSC'nin isteğinizi kabul edip etmediğini söyler; 0x00000000 (ESME_ROK) kabul edildi demektir, iletildi demek değildir. İletim makbuzu saniyeler ile günler sonra gelir ve nihai sonucu taşır.

command_status değerleri SMPP v3.4'ün 5.1.3 bölümünde tanımlıdır. Üretimde en yaygın olanlar 0x00000058 ESME_RTHROTTLED (anlaşılan saniye başına mesaj sayısını aştınız: yavaşlayın ve üstel geri çekilmeyle yeniden deneyin), 0x00000014 ESME_RMSGQFUL (kuyruk dolu: geri çekilin), 0x0000000A ve 0x0000000B (geçersiz kaynak veya hedef adres) ile 0x0000000D veya 0x0000000E'dir (bağlantı başarısız ya da yanlış parola). 0x00000400 ile 0x000004FF arasındaki değerler SMSC üreticisine özgü hatalara ayrılmıştır; bunları sağlayıcınıza sorun.

Tarihler, saat dilimleri ve iletim gecikmesi

Makbuz tarihleri YYMMDDhhmm biçimindedir ve birçok SMSC saniye ekler (YYMMDDhhmmss). Makbuz saat dilimi taşımaz: zaman, SMSC saatinin kullandığı zamandır, genellikle UTC. Çözücü tarihleri yazıldığı gibi gösterir ve gecikmeyi done date eksi submit date olarak hesaplar; ikisi de aynı saatten geldiği sürece saat diliminden etkilenmez.

Gecikme yararlı bir kalite göstergesidir. Ulaşılabilir bir cihaza giden sağlıklı OTP trafiği genellikle saniyeler içinde tamamlanır. Uzun gecikmeler ardından EXPIRED geliyorsa cihazların kapalı veya dolaşımda olduğuna işaret eder; submit tarihinden önce bir done tarihi ise iki saatin uyuşmadığı anlamına gelir. Dakika düzeyindeki tarihler saniyenin altındaki gecikmeyi ölçemez; bu yüzden saniye gönderen SMSC'leri tercih edin.

Makbuzları üretimde güvenilir biçimde işleme

İşleminiz başarısız olsa bile her deliver_sm'ye deliver_sm_resp ile yanıt verin; aksi hâlde SMSC onu yeniden gönderir ve bağlantıyı kısıtlayabilir. Ham makbuzu saklayın, ardından mesaj kimliğine göre eşzamansız ve tekrarlanabilir biçimde işleyin; çünkü makbuzlar iki kez veya sırasız gelebilir: geç gelen bir ENROUTE asla DELIVRD'nin üzerine yazmamalıdır.

Makbuzları hiç ayrıştırmak istemiyorsanız REST SMS API'miz aynı bilgiyi normalleştirilmiş webhook durumları olarak iletir ve kaçırılan makbuzlar POST /sms/resendDlr ile yeniden gönderilebilir. TLS üzerinden SMPP bağlantıları yüksek hacimli göndericiler ve bayiler için mevcuttur.

İletim raporu soruları

Bir SMS iletim raporunda stat:DELIVRD ne anlama gelir?

DELIVRD, SMPP'deki 'iletildi' mesaj durumudur: SMSC mesajın alıcının cihazına ulaştığının onayına sahiptir. Mesajın açıldığı veya okunduğu anlamına gelmez; düz SMS'te okundu bilgisi yoktur. Webhook'larımızda DELIVERED'a karşılık gelir.

UNDELIV, EXPIRED ve REJECTD arasındaki fark nedir?

UNDELIV, ağın mesajı iletemediği anlamına gelir; örneğin numara geçersiz veya etkin değildir. EXPIRED, geçerlilik süresi bitene kadar iletim denemelerinin sürdüğü anlamına gelir; genellikle telefon kapalı veya kapsama dışıdır. REJECTD, ağın veya bir güvenlik duvarının mesajı reddettiği anlamına gelir; örneğin kayıtsız bir SMS başlığı (Sender ID) ya da engellenen içerik.

Bir SMPP DLR'de ACCEPTD ne anlama gelir?

SMPP v3.4 spesifikasyonunda ACCEPTD, mesajın müşteri hizmetleri tarafından abone adına elle okunduğu anlamına gelir. Uygulamada çoğu SMSC ve toplayıcı bunu ağın mesajı kabul ettiğini belirten bir ara makbuz olarak kullanır ve ardından nihai bir DELIVRD veya hata makbuzu gelir.

SMPP hatası 0x00000058 nedir?

0x00000058, ESME_RTHROTTLED'dir: bağlantınızın izin verdiğinden daha fazla saniye başına mesaj gönderdiniz. Geçicidir. Gönderim hızınızı düşürün, bekleyen submit_sm PDU'larda makul bir pencere tutun ve reddedilen mesajları hemen değil, üstel geri çekilmeyle yeniden deneyin.

err:000 ne anlama gelir ve diğer err kodlarını nerede bulabilirim?

err:000 hata yok demektir. Sıfır olmayan err değerleri SMPP spesifikasyonunda tanımlı değildir; SMSC üreticisinden, operatörden veya bir toplayıcıdan gelir ve bazıları GSM MAP hata nedenlerini aktarır. Sağlayıcınızdan hata tablosunu isteyin ve varsa network_error_code TLV'sine bakın.

Bir SMPP iletim makbuzu hangi tarih biçimini kullanır?

submit date ve done date YYMMDDhhmm biçimini kullanır; örneğin 10 Ekim 2026 saat 12:01 için 2610101201. Birçok SMSC saniye ekler (YYMMDDhhmmss). Saat dilimi yoktur; SMSC'nin saatidir, genellikle UTC.

Neden iletim raporu almadım?

Yaygın nedenler: submit_sm içinde registered_delivery değerinin 1 olmaması, alıcı bağlantısı olmadan yalnızca gönderici bağlantısı kullanılması, hedef ağın makbuz döndürmemesi veya istemcinizin deliver_sm'yi onaylamamasıdır. Bazı rotalar yalnızca ara makbuzlar döndürür. REST trafiği için webhook uç noktanızı kontrol edin ve makbuzları /sms/resendDlr ile yeniden gönderin.

Bu aracı kullanırken makbuz metnim bir yere gönderiliyor mu?

Hayır. Çözücü tamamen tarayıcınızda çalışır. Yapıştırdığınız hiçbir şey, mesaj kimlikleri veya mesaj metni dahil, sunucularımıza gönderilmez.

Diğer ücretsiz araçlar