İletim raporu webhook'u kaydetme
POST/webhooks/report
İstek: POST https://ext-api.netgsm.com.tr/sms/v3/webhooks/report
Canlı ortam: https://ext-api.netgsm.com.tr/sms/v3
Hesabın iletim raporlarının gönderileceği adres. Hesap başına bir tane; var olanın üzerine kayıt 409 ile reddedilir; önce mevcut kaydı silmeniz gerekir. Etkinleştirme gerekmez; alt kullanıcı için SMS menüsü gerekir.
Request
- application/json
Bodyrequired
Host'u yalnızca genel (public) adreslere çözümlenen mutlak bir http ya da https URL - loopback, özel, link-local ya da başka bir şekilde iç adres olamaz. Port verilirse 1 ile 65535 arasındadır.
Possible values: <= 1024 characters
Webhook adresinizin Netgsm'den beklediği başlık; örneğin adresiniz bir kimlik doğrulama bilgisi istiyorsa "Authorization: Bearer Name: value biçiminde; yalnızca yazdırılabilir ASCII, satır sonu olmadan. Değer virgül (,) ya da iki nokta üst üste (:) içeremez. İsteğe bağlı; boş bırakılırsa ek başlık gönderilmez.
Possible values: <= 500 characters
Responses
- 201
- 400
- 401
- 403
- 409
- 429
- 500
- 503
Kaydedildi.
- application/json
- Schema
- Example (auto)
Schema
Kayıtta verilen başlık satırı; verilmediyse null.
Webhook'un kaydedildiği zaman.
{
"url": "string",
"headers": "string",
"registeredAt": "2024-07-29T15:51:28.071Z"
}
INVALID_REQUEST. url eksik, çok uzun ya da host içeren mutlak bir http(s) URL değil; host'u çözümlenmiyor ya da yalnızca genel (public) adreslere çözümlenmiyor; headers çok uzun, tek bir Name: value satırı değil ya da değerinde virgül veya iki nokta üst üste var; gövde JSON değil.
- application/json
- Schema
- Example (auto)
Schema
- Array [
- ]
- Array [
- ]
Possible values: [INVALID_REQUEST]
Okunabilir ayrıntı. UNAUTHENTICATED için no bearer token ya da invalid or expired token. REJECTED_HEADER için ret adıdır; yalnızca rakamlardan oluşan bir göndericide (subscriber number headers were not offered) ekini taşıyabilir. RATE_LIMITED için sınırı belirtir; FORBIDDEN ve REJECTED_IYS için sabit bir cümledir. SERVICE_UNAVAILABLE ve INTERNAL_ERROR genel bir cümle taşır; bildirirken requestId değerini paylaşmanız gerekir.
İsteğe özgü kimlik, 32 onaltılık karakter. Bir sorun bildirirken bu değeri paylaşmanız, isteğin kayıtlarda bulunmasını sağlar.
violations object[]nullablerequired
Yalnızca gövde doğrulamasından gelen INVALID_REQUEST için dolu, aksi halde null.
rejectedItems object[]
Yalnızca NO_DELIVERABLE_MESSAGES yanıtında bulunur; diğer hatalarda alan hiç yer almaz. Reddedilen kayıtlar, index sırasıyla ilk 100 tanesi; 202 yanıtındaki rejectedItems ile aynıdır.
Possible values: <= 100
Kaydın istekteki messages dizisindeki sırası, sıfırdan başlar.
Kayıttaki alıcı. Kayıt null ise ya da alıcısı yoksa null.
| Değer | Ne zaman |
|---|---|
INVALID_RECIPIENT | Numara eksik ya da biçimi yanlış; bkz. recipient. |
INVALID_MESSAGE | Metin eksik ya da boş. |
MESSAGE_TOO_LONG | Metin, encoding ve gönderici türüne göre sınırı aşıyor; bkz. encoding. |
MALFORMED_ENTRY | Kayıt null. |
DUPLICATE_RECIPIENT | Aynı alıcı istekte daha sonra yeniden geçiyor. Yalnızca son geçen kayıt gönderilir, öncekiler bu nedenle reddedilir; son kayıt başka bir nedenle reddedilse bile. Numaralar yazıldığı gibi karşılaştırılır. Mükerrer gönderime izin verilen hesaplarda uygulanmaz. |
NO_INTERNATIONAL_PERMISSION | Numara yurt dışı (- ile başlıyor) ve hesabın yurt dışı gönderim izni yok. İzin için destek ekibiyle iletişime geçmelisiniz. Yalnızca başka bir hatası olmayan kayıtlarda bildirilir. |
Bir kayıt birden fazla nedenle hatalıysa tek neden bildirilir; öncelik: DUPLICATE_RECIPIENT,
MALFORMED_ENTRY, MESSAGE_TOO_LONG, INVALID_RECIPIENT, INVALID_MESSAGE,
NO_INTERNATIONAL_PERMISSION.
Possible values: [INVALID_RECIPIENT, INVALID_MESSAGE, MESSAGE_TOO_LONG, MALFORMED_ENTRY, DUPLICATE_RECIPIENT, NO_INTERNATIONAL_PERMISSION]
Yalnızca rejectedItems ile birlikte bulunur. 100'den fazla kayıt reddedildiğinde true.
{
"code": "INVALID_REQUEST",
"message": "string",
"requestId": "string",
"timestamp": "2024-07-29T15:51:28.071Z",
"violations": [
{
"field": "string",
"message": "string"
}
],
"rejectedItems": [
{
"index": 0,
"recipient": "string",
"reason": "INVALID_RECIPIENT"
}
],
"rejectedItemsTruncated": true
}
UNAUTHENTICATED. Bearer token yok ya da token geçersiz veya süresi dolmuş; message no bearer token ya da invalid or expired token.
- application/json
- Schema
- Example (auto)
Schema
- Array [
- ]
- Array [
- ]
Possible values: [UNAUTHENTICATED]
Okunabilir ayrıntı. UNAUTHENTICATED için no bearer token ya da invalid or expired token. REJECTED_HEADER için ret adıdır; yalnızca rakamlardan oluşan bir göndericide (subscriber number headers were not offered) ekini taşıyabilir. RATE_LIMITED için sınırı belirtir; FORBIDDEN ve REJECTED_IYS için sabit bir cümledir. SERVICE_UNAVAILABLE ve INTERNAL_ERROR genel bir cümle taşır; bildirirken requestId değerini paylaşmanız gerekir.
İsteğe özgü kimlik, 32 onaltılık karakter. Bir sorun bildirirken bu değeri paylaşmanız, isteğin kayıtlarda bulunmasını sağlar.
violations object[]nullablerequired
Yalnızca gövde doğrulamasından gelen INVALID_REQUEST için dolu, aksi halde null.
rejectedItems object[]
Yalnızca NO_DELIVERABLE_MESSAGES yanıtında bulunur; diğer hatalarda alan hiç yer almaz. Reddedilen kayıtlar, index sırasıyla ilk 100 tanesi; 202 yanıtındaki rejectedItems ile aynıdır.
Possible values: <= 100
Kaydın istekteki messages dizisindeki sırası, sıfırdan başlar.
Kayıttaki alıcı. Kayıt null ise ya da alıcısı yoksa null.
| Değer | Ne zaman |
|---|---|
INVALID_RECIPIENT | Numara eksik ya da biçimi yanlış; bkz. recipient. |
INVALID_MESSAGE | Metin eksik ya da boş. |
MESSAGE_TOO_LONG | Metin, encoding ve gönderici türüne göre sınırı aşıyor; bkz. encoding. |
MALFORMED_ENTRY | Kayıt null. |
DUPLICATE_RECIPIENT | Aynı alıcı istekte daha sonra yeniden geçiyor. Yalnızca son geçen kayıt gönderilir, öncekiler bu nedenle reddedilir; son kayıt başka bir nedenle reddedilse bile. Numaralar yazıldığı gibi karşılaştırılır. Mükerrer gönderime izin verilen hesaplarda uygulanmaz. |
NO_INTERNATIONAL_PERMISSION | Numara yurt dışı (- ile başlıyor) ve hesabın yurt dışı gönderim izni yok. İzin için destek ekibiyle iletişime geçmelisiniz. Yalnızca başka bir hatası olmayan kayıtlarda bildirilir. |
Bir kayıt birden fazla nedenle hatalıysa tek neden bildirilir; öncelik: DUPLICATE_RECIPIENT,
MALFORMED_ENTRY, MESSAGE_TOO_LONG, INVALID_RECIPIENT, INVALID_MESSAGE,
NO_INTERNATIONAL_PERMISSION.
Possible values: [INVALID_RECIPIENT, INVALID_MESSAGE, MESSAGE_TOO_LONG, MALFORMED_ENTRY, DUPLICATE_RECIPIENT, NO_INTERNATIONAL_PERMISSION]
Yalnızca rejectedItems ile birlikte bulunur. 100'den fazla kayıt reddedildiğinde true.
{
"code": "UNAUTHENTICATED",
"message": "string",
"requestId": "string",
"timestamp": "2024-07-29T15:51:28.071Z",
"violations": [
{
"field": "string",
"message": "string"
}
],
"rejectedItems": [
{
"index": 0,
"recipient": "string",
"reason": "INVALID_RECIPIENT"
}
],
"rejectedItemsTruncated": true
}
FORBIDDEN. SMS menüsü olmayan bir alt kullanıcı.
- application/json
- Schema
- Example (auto)
Schema
- Array [
- ]
- Array [
- ]
Possible values: [FORBIDDEN]
Okunabilir ayrıntı. UNAUTHENTICATED için no bearer token ya da invalid or expired token. REJECTED_HEADER için ret adıdır; yalnızca rakamlardan oluşan bir göndericide (subscriber number headers were not offered) ekini taşıyabilir. RATE_LIMITED için sınırı belirtir; FORBIDDEN ve REJECTED_IYS için sabit bir cümledir. SERVICE_UNAVAILABLE ve INTERNAL_ERROR genel bir cümle taşır; bildirirken requestId değerini paylaşmanız gerekir.
İsteğe özgü kimlik, 32 onaltılık karakter. Bir sorun bildirirken bu değeri paylaşmanız, isteğin kayıtlarda bulunmasını sağlar.
violations object[]nullablerequired
Yalnızca gövde doğrulamasından gelen INVALID_REQUEST için dolu, aksi halde null.
rejectedItems object[]
Yalnızca NO_DELIVERABLE_MESSAGES yanıtında bulunur; diğer hatalarda alan hiç yer almaz. Reddedilen kayıtlar, index sırasıyla ilk 100 tanesi; 202 yanıtındaki rejectedItems ile aynıdır.
Possible values: <= 100
Kaydın istekteki messages dizisindeki sırası, sıfırdan başlar.
Kayıttaki alıcı. Kayıt null ise ya da alıcısı yoksa null.
| Değer | Ne zaman |
|---|---|
INVALID_RECIPIENT | Numara eksik ya da biçimi yanlış; bkz. recipient. |
INVALID_MESSAGE | Metin eksik ya da boş. |
MESSAGE_TOO_LONG | Metin, encoding ve gönderici türüne göre sınırı aşıyor; bkz. encoding. |
MALFORMED_ENTRY | Kayıt null. |
DUPLICATE_RECIPIENT | Aynı alıcı istekte daha sonra yeniden geçiyor. Yalnızca son geçen kayıt gönderilir, öncekiler bu nedenle reddedilir; son kayıt başka bir nedenle reddedilse bile. Numaralar yazıldığı gibi karşılaştırılır. Mükerrer gönderime izin verilen hesaplarda uygulanmaz. |
NO_INTERNATIONAL_PERMISSION | Numara yurt dışı (- ile başlıyor) ve hesabın yurt dışı gönderim izni yok. İzin için destek ekibiyle iletişime geçmelisiniz. Yalnızca başka bir hatası olmayan kayıtlarda bildirilir. |
Bir kayıt birden fazla nedenle hatalıysa tek neden bildirilir; öncelik: DUPLICATE_RECIPIENT,
MALFORMED_ENTRY, MESSAGE_TOO_LONG, INVALID_RECIPIENT, INVALID_MESSAGE,
NO_INTERNATIONAL_PERMISSION.
Possible values: [INVALID_RECIPIENT, INVALID_MESSAGE, MESSAGE_TOO_LONG, MALFORMED_ENTRY, DUPLICATE_RECIPIENT, NO_INTERNATIONAL_PERMISSION]
Yalnızca rejectedItems ile birlikte bulunur. 100'den fazla kayıt reddedildiğinde true.
{
"code": "FORBIDDEN",
"message": "string",
"requestId": "string",
"timestamp": "2024-07-29T15:51:28.071Z",
"violations": [
{
"field": "string",
"message": "string"
}
],
"rejectedItems": [
{
"index": 0,
"recipient": "string",
"reason": "INVALID_RECIPIENT"
}
],
"rejectedItemsTruncated": true
}
ALREADY_EXISTS. Kayıtlı bir iletim raporu webhook'u var; önce silmeniz gerekir. Hesap için başka bir iletim raporu webhook kaydı sürerken de döner; o tamamlandığında istek yeniden gönderilebilir.
- application/json
- Schema
- Example (auto)
Schema
- Array [
- ]
- Array [
- ]
Possible values: [ALREADY_EXISTS]
Okunabilir ayrıntı. UNAUTHENTICATED için no bearer token ya da invalid or expired token. REJECTED_HEADER için ret adıdır; yalnızca rakamlardan oluşan bir göndericide (subscriber number headers were not offered) ekini taşıyabilir. RATE_LIMITED için sınırı belirtir; FORBIDDEN ve REJECTED_IYS için sabit bir cümledir. SERVICE_UNAVAILABLE ve INTERNAL_ERROR genel bir cümle taşır; bildirirken requestId değerini paylaşmanız gerekir.
İsteğe özgü kimlik, 32 onaltılık karakter. Bir sorun bildirirken bu değeri paylaşmanız, isteğin kayıtlarda bulunmasını sağlar.
violations object[]nullablerequired
Yalnızca gövde doğrulamasından gelen INVALID_REQUEST için dolu, aksi halde null.
rejectedItems object[]
Yalnızca NO_DELIVERABLE_MESSAGES yanıtında bulunur; diğer hatalarda alan hiç yer almaz. Reddedilen kayıtlar, index sırasıyla ilk 100 tanesi; 202 yanıtındaki rejectedItems ile aynıdır.
Possible values: <= 100
Kaydın istekteki messages dizisindeki sırası, sıfırdan başlar.
Kayıttaki alıcı. Kayıt null ise ya da alıcısı yoksa null.
| Değer | Ne zaman |
|---|---|
INVALID_RECIPIENT | Numara eksik ya da biçimi yanlış; bkz. recipient. |
INVALID_MESSAGE | Metin eksik ya da boş. |
MESSAGE_TOO_LONG | Metin, encoding ve gönderici türüne göre sınırı aşıyor; bkz. encoding. |
MALFORMED_ENTRY | Kayıt null. |
DUPLICATE_RECIPIENT | Aynı alıcı istekte daha sonra yeniden geçiyor. Yalnızca son geçen kayıt gönderilir, öncekiler bu nedenle reddedilir; son kayıt başka bir nedenle reddedilse bile. Numaralar yazıldığı gibi karşılaştırılır. Mükerrer gönderime izin verilen hesaplarda uygulanmaz. |
NO_INTERNATIONAL_PERMISSION | Numara yurt dışı (- ile başlıyor) ve hesabın yurt dışı gönderim izni yok. İzin için destek ekibiyle iletişime geçmelisiniz. Yalnızca başka bir hatası olmayan kayıtlarda bildirilir. |
Bir kayıt birden fazla nedenle hatalıysa tek neden bildirilir; öncelik: DUPLICATE_RECIPIENT,
MALFORMED_ENTRY, MESSAGE_TOO_LONG, INVALID_RECIPIENT, INVALID_MESSAGE,
NO_INTERNATIONAL_PERMISSION.
Possible values: [INVALID_RECIPIENT, INVALID_MESSAGE, MESSAGE_TOO_LONG, MALFORMED_ENTRY, DUPLICATE_RECIPIENT, NO_INTERNATIONAL_PERMISSION]
Yalnızca rejectedItems ile birlikte bulunur. 100'den fazla kayıt reddedildiğinde true.
{
"code": "ALREADY_EXISTS",
"message": "string",
"requestId": "string",
"timestamp": "2024-07-29T15:51:28.071Z",
"violations": [
{
"field": "string",
"message": "string"
}
],
"rejectedItems": [
{
"index": 0,
"recipient": "string",
"reason": "INVALID_RECIPIENT"
}
],
"rejectedItemsTruncated": true
}
RATE_LIMITED. Hesap için bu uç noktanın sınırı aşıldı; message sınırı belirtir. Retry-After yalnızca hesabın gönderimi askıya alındığında bulunmaz.
Response Headers
İsteğin tekrarlanabileceği zamana kadar kalan tam saniye.
- application/json
- Schema
- Example (auto)
Schema
- Array [
- ]
- Array [
- ]
Possible values: [RATE_LIMITED]
Okunabilir ayrıntı. UNAUTHENTICATED için no bearer token ya da invalid or expired token. REJECTED_HEADER için ret adıdır; yalnızca rakamlardan oluşan bir göndericide (subscriber number headers were not offered) ekini taşıyabilir. RATE_LIMITED için sınırı belirtir; FORBIDDEN ve REJECTED_IYS için sabit bir cümledir. SERVICE_UNAVAILABLE ve INTERNAL_ERROR genel bir cümle taşır; bildirirken requestId değerini paylaşmanız gerekir.
İsteğe özgü kimlik, 32 onaltılık karakter. Bir sorun bildirirken bu değeri paylaşmanız, isteğin kayıtlarda bulunmasını sağlar.
violations object[]nullablerequired
Yalnızca gövde doğrulamasından gelen INVALID_REQUEST için dolu, aksi halde null.
rejectedItems object[]
Yalnızca NO_DELIVERABLE_MESSAGES yanıtında bulunur; diğer hatalarda alan hiç yer almaz. Reddedilen kayıtlar, index sırasıyla ilk 100 tanesi; 202 yanıtındaki rejectedItems ile aynıdır.
Possible values: <= 100
Kaydın istekteki messages dizisindeki sırası, sıfırdan başlar.
Kayıttaki alıcı. Kayıt null ise ya da alıcısı yoksa null.
| Değer | Ne zaman |
|---|---|
INVALID_RECIPIENT | Numara eksik ya da biçimi yanlış; bkz. recipient. |
INVALID_MESSAGE | Metin eksik ya da boş. |
MESSAGE_TOO_LONG | Metin, encoding ve gönderici türüne göre sınırı aşıyor; bkz. encoding. |
MALFORMED_ENTRY | Kayıt null. |
DUPLICATE_RECIPIENT | Aynı alıcı istekte daha sonra yeniden geçiyor. Yalnızca son geçen kayıt gönderilir, öncekiler bu nedenle reddedilir; son kayıt başka bir nedenle reddedilse bile. Numaralar yazıldığı gibi karşılaştırılır. Mükerrer gönderime izin verilen hesaplarda uygulanmaz. |
NO_INTERNATIONAL_PERMISSION | Numara yurt dışı (- ile başlıyor) ve hesabın yurt dışı gönderim izni yok. İzin için destek ekibiyle iletişime geçmelisiniz. Yalnızca başka bir hatası olmayan kayıtlarda bildirilir. |
Bir kayıt birden fazla nedenle hatalıysa tek neden bildirilir; öncelik: DUPLICATE_RECIPIENT,
MALFORMED_ENTRY, MESSAGE_TOO_LONG, INVALID_RECIPIENT, INVALID_MESSAGE,
NO_INTERNATIONAL_PERMISSION.
Possible values: [INVALID_RECIPIENT, INVALID_MESSAGE, MESSAGE_TOO_LONG, MALFORMED_ENTRY, DUPLICATE_RECIPIENT, NO_INTERNATIONAL_PERMISSION]
Yalnızca rejectedItems ile birlikte bulunur. 100'den fazla kayıt reddedildiğinde true.
{
"code": "RATE_LIMITED",
"message": "string",
"requestId": "string",
"timestamp": "2024-07-29T15:51:28.071Z",
"violations": [
{
"field": "string",
"message": "string"
}
],
"rejectedItems": [
{
"index": 0,
"recipient": "string",
"reason": "INVALID_RECIPIENT"
}
],
"rejectedItemsTruncated": true
}
INTERNAL_ERROR, message internal error. Beklenmeyen hata; bildirirken requestId değerini paylaşmanız gerekir.
- application/json
- Schema
- Example (auto)
Schema
- Array [
- ]
- Array [
- ]
Possible values: [INTERNAL_ERROR]
Okunabilir ayrıntı. UNAUTHENTICATED için no bearer token ya da invalid or expired token. REJECTED_HEADER için ret adıdır; yalnızca rakamlardan oluşan bir göndericide (subscriber number headers were not offered) ekini taşıyabilir. RATE_LIMITED için sınırı belirtir; FORBIDDEN ve REJECTED_IYS için sabit bir cümledir. SERVICE_UNAVAILABLE ve INTERNAL_ERROR genel bir cümle taşır; bildirirken requestId değerini paylaşmanız gerekir.
İsteğe özgü kimlik, 32 onaltılık karakter. Bir sorun bildirirken bu değeri paylaşmanız, isteğin kayıtlarda bulunmasını sağlar.
violations object[]nullablerequired
Yalnızca gövde doğrulamasından gelen INVALID_REQUEST için dolu, aksi halde null.
rejectedItems object[]
Yalnızca NO_DELIVERABLE_MESSAGES yanıtında bulunur; diğer hatalarda alan hiç yer almaz. Reddedilen kayıtlar, index sırasıyla ilk 100 tanesi; 202 yanıtındaki rejectedItems ile aynıdır.
Possible values: <= 100
Kaydın istekteki messages dizisindeki sırası, sıfırdan başlar.
Kayıttaki alıcı. Kayıt null ise ya da alıcısı yoksa null.
| Değer | Ne zaman |
|---|---|
INVALID_RECIPIENT | Numara eksik ya da biçimi yanlış; bkz. recipient. |
INVALID_MESSAGE | Metin eksik ya da boş. |
MESSAGE_TOO_LONG | Metin, encoding ve gönderici türüne göre sınırı aşıyor; bkz. encoding. |
MALFORMED_ENTRY | Kayıt null. |
DUPLICATE_RECIPIENT | Aynı alıcı istekte daha sonra yeniden geçiyor. Yalnızca son geçen kayıt gönderilir, öncekiler bu nedenle reddedilir; son kayıt başka bir nedenle reddedilse bile. Numaralar yazıldığı gibi karşılaştırılır. Mükerrer gönderime izin verilen hesaplarda uygulanmaz. |
NO_INTERNATIONAL_PERMISSION | Numara yurt dışı (- ile başlıyor) ve hesabın yurt dışı gönderim izni yok. İzin için destek ekibiyle iletişime geçmelisiniz. Yalnızca başka bir hatası olmayan kayıtlarda bildirilir. |
Bir kayıt birden fazla nedenle hatalıysa tek neden bildirilir; öncelik: DUPLICATE_RECIPIENT,
MALFORMED_ENTRY, MESSAGE_TOO_LONG, INVALID_RECIPIENT, INVALID_MESSAGE,
NO_INTERNATIONAL_PERMISSION.
Possible values: [INVALID_RECIPIENT, INVALID_MESSAGE, MESSAGE_TOO_LONG, MALFORMED_ENTRY, DUPLICATE_RECIPIENT, NO_INTERNATIONAL_PERMISSION]
Yalnızca rejectedItems ile birlikte bulunur. 100'den fazla kayıt reddedildiğinde true.
{
"code": "INTERNAL_ERROR",
"message": "string",
"requestId": "string",
"timestamp": "2024-07-29T15:51:28.071Z",
"violations": [
{
"field": "string",
"message": "string"
}
],
"rejectedItems": [
{
"index": 0,
"recipient": "string",
"reason": "INVALID_RECIPIENT"
}
],
"rejectedItemsTruncated": true
}
SERVICE_UNAVAILABLE. Hiçbir şey yapılmadı; yeniden denemek güvenlidir.
- application/json
- Schema
- Example (auto)
Schema
- Array [
- ]
- Array [
- ]
Possible values: [SERVICE_UNAVAILABLE]
Okunabilir ayrıntı. UNAUTHENTICATED için no bearer token ya da invalid or expired token. REJECTED_HEADER için ret adıdır; yalnızca rakamlardan oluşan bir göndericide (subscriber number headers were not offered) ekini taşıyabilir. RATE_LIMITED için sınırı belirtir; FORBIDDEN ve REJECTED_IYS için sabit bir cümledir. SERVICE_UNAVAILABLE ve INTERNAL_ERROR genel bir cümle taşır; bildirirken requestId değerini paylaşmanız gerekir.
İsteğe özgü kimlik, 32 onaltılık karakter. Bir sorun bildirirken bu değeri paylaşmanız, isteğin kayıtlarda bulunmasını sağlar.
violations object[]nullablerequired
Yalnızca gövde doğrulamasından gelen INVALID_REQUEST için dolu, aksi halde null.
rejectedItems object[]
Yalnızca NO_DELIVERABLE_MESSAGES yanıtında bulunur; diğer hatalarda alan hiç yer almaz. Reddedilen kayıtlar, index sırasıyla ilk 100 tanesi; 202 yanıtındaki rejectedItems ile aynıdır.
Possible values: <= 100
Kaydın istekteki messages dizisindeki sırası, sıfırdan başlar.
Kayıttaki alıcı. Kayıt null ise ya da alıcısı yoksa null.
| Değer | Ne zaman |
|---|---|
INVALID_RECIPIENT | Numara eksik ya da biçimi yanlış; bkz. recipient. |
INVALID_MESSAGE | Metin eksik ya da boş. |
MESSAGE_TOO_LONG | Metin, encoding ve gönderici türüne göre sınırı aşıyor; bkz. encoding. |
MALFORMED_ENTRY | Kayıt null. |
DUPLICATE_RECIPIENT | Aynı alıcı istekte daha sonra yeniden geçiyor. Yalnızca son geçen kayıt gönderilir, öncekiler bu nedenle reddedilir; son kayıt başka bir nedenle reddedilse bile. Numaralar yazıldığı gibi karşılaştırılır. Mükerrer gönderime izin verilen hesaplarda uygulanmaz. |
NO_INTERNATIONAL_PERMISSION | Numara yurt dışı (- ile başlıyor) ve hesabın yurt dışı gönderim izni yok. İzin için destek ekibiyle iletişime geçmelisiniz. Yalnızca başka bir hatası olmayan kayıtlarda bildirilir. |
Bir kayıt birden fazla nedenle hatalıysa tek neden bildirilir; öncelik: DUPLICATE_RECIPIENT,
MALFORMED_ENTRY, MESSAGE_TOO_LONG, INVALID_RECIPIENT, INVALID_MESSAGE,
NO_INTERNATIONAL_PERMISSION.
Possible values: [INVALID_RECIPIENT, INVALID_MESSAGE, MESSAGE_TOO_LONG, MALFORMED_ENTRY, DUPLICATE_RECIPIENT, NO_INTERNATIONAL_PERMISSION]
Yalnızca rejectedItems ile birlikte bulunur. 100'den fazla kayıt reddedildiğinde true.
{
"code": "SERVICE_UNAVAILABLE",
"message": "string",
"requestId": "string",
"timestamp": "2024-07-29T15:51:28.071Z",
"violations": [
{
"field": "string",
"message": "string"
}
],
"rejectedItems": [
{
"index": 0,
"recipient": "string",
"reason": "INVALID_RECIPIENT"
}
],
"rejectedItemsTruncated": true
}
Callbacks
- POST deliveryReport
POST{$request.body#/url}
İletim raporları, kayıtlı adrese periyodik olarak ve toplu hâlde POST ile gönderilir.
Bir istek, hesabın bekleyen raporlarından bir grubu numbers dizisinde taşır. Bekleyen rapor
sayısı fazlaysa raporlar aynı periyotta birden fazla isteğe bölünebilir.
- Kayıt sırasında
headersverildiyse o başlık her istekte gönderilir; isteğin Netgsm'den geldiğini bu başlıkla doğrulayabilirsiniz. - Bağlantının 60 saniye içinde kurulması, yanıtın 10 dakika içinde gelmesi gerekir; aksi halde istek başarısız sayılır.
- Herhangi bir
2xxyanıt, raporların teslim alındığı anlamına gelir. Yanıt gövdesi okunmaz. - Zaman aşımı,
2xxdışındaki bir yanıt ya da bağlantı hatası durumunda o istekteki raporlar yeniden gönderilmez. Bu raporlaraGET /reportile ulaşılabilir. - Zamanlar saat dilimi bilgisi olmadan, Türkiye saatiyle (UTC+3)
yyyy-MM-dd HH:mm:ssbiçimindedir. status,operatorveerrorCodesayısal kodlardır;GET /reportise aynı bilgiyi ad olarak döndürür. Karşılıkları alan açıklamalarındaki tablolardadır.
Örnek gövde:
{
"numbers": [
{
"jobid": "179309912974612345062827",
"number": "5xxxxxxxxx",
"status": 1,
"operator": 10,
"msglen": 1,
"deliveredDate": "2026-10-27 14:06:12",
"errorCode": 0,
"referansID": "8f3a1c"
},
{
"jobid": "179309912974612345062827",
"number": "5xxxxxxxxx",
"status": 2,
"operator": 30,
"msglen": 1,
"deliveredDate": "2026-10-27 14:09:40",
"errorCode": 115,
"referansID": null
}
]
}
- application/json
Bodyrequired
- Array [
- ]
numbers object[]required
Bu istekle gönderilen raporlar; her alıcı için bir satır.
Send uç noktasının döndürdüğü görev numarası (jobId).
Alıcı numarası.
İletim sonucu, sayısal kod. Bekleyen (henüz sonuçlanmamış) gönderimler webhook ile bildirilmez; yalnızca sonuçlananlar gelir.
| Kod | Anlamı | GET /report karşılığı |
|---|---|---|
1 | İletildi | DELIVERED |
2 | Ulaştırılamadı; nedeni errorCode alanındadır | NOT_DELIVERED |
3 | Hatalı numara | NOT_DELIVERED, INVALID_NUMBER |
4 | Operatöre gönderilemedi | NOT_DELIVERED, NOT_SENT_TO_OPERATOR |
8 | Operatör kabul etmedi | NOT_DELIVERED, OPERATOR_REJECTED |
11 | Operatör hatası | NOT_DELIVERED, OPERATOR_ERROR |
12 | Gönderim hatası | NOT_DELIVERED, SEND_ERROR |
13 | Mükerrer | NOT_DELIVERED, DUPLICATE |
14 | Kredisi yetmedi | NOT_DELIVERED, INSUFFICIENT_CREDIT |
15 | Kara liste | NOT_DELIVERED, BLACKLISTED |
16 | İYS ret | NOT_DELIVERED, IYS_REJECTED |
17 | İYS hata | NOT_DELIVERED, IYS_ERROR |
18 | Mesaj oluşturulamadı | NOT_DELIVERED, MESSAGE_NOT_CREATED |
19 | Hatalı numara formatı | NOT_DELIVERED, INVALID_NUMBER_FORMAT |
20 | NTS'den onay alınamadı | NOT_DELIVERED, NTS_NOT_APPROVED |
22 | Yurt dışı gönderim izni yok | NOT_DELIVERED, NO_INTERNATIONAL_PERMISSION |
Alıcının operatörü, sayısal kod.
| Kod | Operatör | GET /report karşılığı |
|---|---|---|
10 | Vodafone | VODAFONE |
20 | Türk Telekom | TURK_TELEKOM |
30 | Turkcell | TURKCELL |
40, 41, 43 | Netgsm | NETGSM |
45 | Akontel | AKONTEL |
210–218 | Yurt dışı | INTERNATIONAL |
Operatörü belirlenemeyen kayıtlarda (örneğin numara hatalıysa) 0 gelir.
Mesajın kapladığı SMS parça sayısı.
İletildiği zaman, yyyy-MM-dd HH:mm:ss biçiminde, Türkiye saatiyle. Tarih bilgisi yoksa boş string ("").
İletilmeme nedeni. Yalnızca status 2 olduğunda anlamlıdır; diğer durumlarda
nedeni status belirtir ve bu alanın değeri dikkate alınmamalıdır.
| Kod | Anlamı | GET /report failReason |
|---|---|---|
111 | Zaman aşımı | TIMEOUT |
112 | Mobil cihaz SMS gönderimine kapalı | SMS_DISABLED_ON_DEVICE |
113 | Mobil cihaz desteklemiyor | DEVICE_NOT_SUPPORTED |
114 | Yönlendirme başarısız | ROUTING_FAILED |
115 | Hedef operatörden zaman aşımı | OPERATOR_TIMEOUT |
116 | Tanımlanamayan abone | UNKNOWN_SUBSCRIBER |
117 | Yasadışı abone | ILLEGAL_SUBSCRIBER |
119 | Sistemsel hata | SYSTEM_ERROR |
status 2 iken 0 ya da null gelirse neden bilinmiyordur (GET /report'ta UNKNOWN).
Gönderimde verilen referans (GET /report yanıtındaki referenceId). Verilmediyse null.
Callbacks Responses
- 200
Raporlar teslim alındı. Herhangi bir 2xx yanıt aynı anlama gelir.
Örnek istek
curl -X POST 'https://ext-api.netgsm.com.tr/sms/v3/webhooks/report' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"url": "https://example.com/report",
"headers": "Authorization: Bearer token123"
}'