Smstools

Webhooki

Otrzymuj czasowe wywołania zwrotne dotyczące aktualizacji w Smstools.

Czym są webhooks?

Czym są webhooks?

Webhooki są rozszerzeniem interfejsu API, ale zamiast twój kod żądać danych od Smstools, Smstools wysyła dane do ciebie. Dane przychodzą w żądaniu sieciowym do twojej aplikacji. Webhooki są również używane do powiadamiania twojej aplikacji o zdarzeniach, takich jak przychodzące połączenie lub wiadomość. Ponieważ serwery Smstools muszą być w stanie wysyłać dane do twojej aplikacji za pomocą webhooków, musisz skonfigurować serwer sieciowy, aby otrzymywać przychodzące żądania HTTP. Musisz również określić URL każdego webhooka na swoim serwerze sieciowym, aby dane mogły być wysyłane do każdego.

Czym są webhooks?

Typ Opis
delivery_report Raport dostarczenia po każdej wysłanej wiadomości. Czasami może być 2 webhooki: najpierw status „przesłano”, a później status „dostarczono” lub „nie dostarczono”. Czasami dostępne są dodatkowe szczegóły, gdy wiadomość nie została dostarczona.
read_report Potwierdzenie odczytu po przeczytaniu wiadomości. Potwierdzenie odczytu jest dostępne tylko dla Wiadomości społecznych lub poprzez użycie linku „Poproś o raport odczytu”.
inbox_message Wiadomość przychodząca. Dostępne tylko w przypadku korzystania z Wiadomości społecznych lub numeru wirtualnego.
call_forwarding Przekierowanie połączeń. Dostępne tylko, jeśli korzystasz z Social Messaging lub wirtualnego numeru.
add_contact 1 kontakt został dodany za pomocą API lub oprogramowania
delete_contact 1 kontakt został usunięty za pomocą API lub oprogramowania
add_group Grupa została dodana za pomocą API lub oprogramowania
delete_group Grupa została usunięta za pomocą API lub oprogramowania
add_optout Kontakt został dodany do listy opt-out za pomocą API lub oprogramowania
delete_optout Kontakt został usunięty z listy opt-out za pomocą API lub oprogramowania
funds_purchased Konto zrealizowało nowe zamówienie na środki
insufficient_funds Konto nie ma już dostępnych środków
email2sms_received Email2Sms otrzymał e-mail i próbował wysłać go przez SMS

Kody szczegółów raportu dostarczenia Status Wyjaśnienie
0 SUBMITTED Ta wiadomość została dostarczona przez operatora, ale nie otrzymaliśmy raportu dostarczenia.
1 DELIVERED Ta wiadomość została pomyślnie dostarczona.
2 NOT DELIVERED Ta wiadomość nie została dostarczona. Możliwy powód: odbiorca znajduje się poza zasięgiem sieci, problemy z siecią, odbiorca za granicą.
3 BUFFERED Ta wiadomość została dostarczona przez operatora, ale nie do odbiorcy.
4 REJECTED Ta wiadomość została odrzucona przez operatora.
5 REJECTED Szczegóły poniżej!
9 UNKNOWN Brak dostępnych raportów dostarczenia dla tej wiadomości.

Status Wyjaśnienie
10 Numer odbiorcy jest nieprawidłowy lub nieznany
11 Odbiorca tymczasowo znajduje się poza zasięgiem operatora sieciowego
12 Problem związany z telefonem.
13 Problem z siecią operatora
14 Wiadomość wygasła - powód nieznany
15 Odbiorca figuruje na czarnej liście
16 Problem z treścią wiadomości
17 Odbiorca nie może zostać uregulowany
18 Operator odrzucił to z powodu spamu
19 Abonent nie może odbierać wiadomości premium (zablokowane przez operatora)

Status Wyjaśnienie
2000 INSUFFICIENT_FUNDS
2001 TOO_LONG
2002 TOO_SHORT
2003 TIMEOUT
2004 GATEWAY_ISSUES
2005 INVALID_SENDER
2006 INVALID_NUMBER
4000 UNKNOWN
4001 EMPTY_MESSAGE
4002 EMPTY_CLIENT
4003 LOCKED
4004 BLOCKED
4005 JOB_FAILED
4006 DUPLICATE
4007 INVALID_CONTENT

Przykład: raport dostarczenia

								[
  {
	"webhook_id": "a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "delivery_report",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"message": {
	  "messageid": "e1qk89exbzgf6fzfunceym2sd67h88",
	  "datetime": "2019-01-01 00:00:00",
	  "datetime_utc": "2019-01-01 00:00:00",
	  "content": "here comes your message body",
	  "sender": "yoursender",
	  "receiver": "32470123456",
	  "reference": "yourref",
	  "delivery_code": "1",
	  "delivery_status": "delivered",
	  "delivery_status_datetime": "2019-01-01 00:00:00",
	  "delivery_code_detail": "10",
	  "delivery_code_detail_description": "Unknown Subscriber"
	}
  }
]

Przykład: wiadomość przychodząca

								[
  {
	"webhook_id": "a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "inbox_message",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"message": {
	  "id": "12345678",
	  "date": "2019-01-01 00:00:00",
	  "date_utc": "2019-01-01 00:00:00",
	  "sender": "sendernumber",
	  "receiver": "12345678",
	  "content": "message content",
	  "type": "sms",
	  "file": null,
	  "processed": 0
	},
	"isreply": {
	  "reply": true,
	  "orig_message_content": "original message content",
	  "orig_messageid": "985zvqipp73csuuha2079fbshx",
	  "orig_messagedate": "2019-01-01 00:00:00",
	  "orig_messagedate_utc": "2019-01-01 00:00:00",
	  "orig_sender": "32471123456",
	  "orig_receiver": "12345678",
	  "orig_reference": ""
	}
  }
]

Przykład: przekierowanie połączeń

								[
  {
	"webhook_id": "a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "call_forwarding",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"message": {
	  "id": "12345678",
	  "date": "2019-01-01 00:00:00",
	  "date_utc": "2019-01-01 00:00:00",
	  "sender": "sendernumber",
	  "receiver": "12345678",
	  "content": "Incoming VOIP Call - Forwarded to XXXXX",
	  "content_type": "complete",
	  "type": "call"
	}
  }
]

Przykład: raport potwierdzenia odczytu

								[
  {
	"webhook_id": "a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "read_report",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"message": {
	  "messageid": "e1qk89exbzgf6fzfunceym2sd67h88",
	  "datetime": "2019-01-01 00:00:00",
	  "datetime_utc": "2019-01-01 00:00:00",
	  "content": "here comes your message body",
	  "sender": "yoursender",
	  "receiver": "32470123456",
	  "reference": "yourref",
	  "delivery_code": "1",
	  "delivery_status": "delivered",
	  "delivery_status_datetime": "2019-01-01 00:00:00",
	  "read_status": "message_read",
	  "read_datetime": "2019-01-01 00:01:00"
	}
  }
]

Przykład: Dodaj kontakt

								[
  {
	"webhook_id": "a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "add_contact",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"contact": {
	  "action": "add",
	  "groupid": "12345",
	  "groupname": "Groupname",
	  "receiver": "32498123456",
	  "firstname": "John",
	  "lastname": "Doe",
	  "Custom1": null,
	  "Custom2": null,
	  "Custom3": null,
	  "Custom4": null,
	  "Custom5": null,
	  "Custom6": null,
	  "Custom7": null,
	  "Custom8": null,
	  "unsubscribed": null,
	  "unsubscribe_date": null
	}
  }
]

Przykład: Usuń kontakt

								[
  {
	"webhook_id": "a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "delete_contact",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"contact": {
	  "action": "delete",
	  "groupid": "12345",
	  "groupname": "Groupname",
	  "receiver": "32498123456",
	  "firstname": "John",
	  "lastname": "Doe",
	  "Custom1": null,
	  "Custom2": null,
	  "Custom3": null,
	  "Custom4": null,
	  "Custom5": null,
	  "Custom6": null,
	  "Custom7": null,
	  "Custom8": null,
	  "unsubscribed": null,
	  "unsubscribe_date": null
	}
  }
]

Przykład: Dodaj grupę

								[
  {
	"webhook_id": "a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "add_group",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"group": {
	  "action": "add",
	  "groupid": "12345",
	  "groupname": "Groupname"
	}
  }
]

Przykład: Usuń grupę

								[
  {
	"webhook_id": "a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "delete_group",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"message": {
	  "id": "12345678",
	  "date": "2019-01-01 00:00:00",
	  "content": "Group deleted",
	  "type": "group"
	}
  }
]

Przykład: Dodaj opt-out

								[
  {
	"webhook_id": "a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "add_optout",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"optout": {
	  "action": "add",
	  "id": "1234",
	  "number": "32498123456",
	  "memo": "Sample opt-out",
	  "date": "2025-08-04",
	  "date_utc": "2025-08-04"
	}
  }
]

Przykład: Usuń opt-out

								[
  {
	"webhook_id": "a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "delete_optout",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"optout": {
	  "action": "delete",
	  "number": "32498123456",
	  "date": "2025-08-04",
	  "date_utc": "2025-08-04"
	}
  }
]

Przykład: Zakupione środki

								[
  {
	"webhook_id": "a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "funds_purchased",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"funds": {
	  "order_id": "1234",
	  "item_amount": 1,
	  "currency": "eur",
	  "total_price": 10,
	  "price_excl": 0,
	  "purchase_type": "credits",
	  "payment_mode": "online",
	  "reference": "Reference",
	  "date": "2025-08-04 14:33:45",
	  "date_utc": "2025-08-04 12:33:45"
	}
  }
]

Przykład: Niewystarczające środki

								[
  {
	"webhook_id": "a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "insufficient_funds",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"funds": {
	  "item_amount": "0.000",
	  "item_type": "balance",
	  "message": "Insufficient funds",
	  "date": "2025-08-04 14:34:22",
	  "date_utc": "2025-08-04 12:34:22"
	}
  }
]

Przykład: Wyzwalacz Email2SMS

								[
  {
	"webhook_id": "a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "email2sms_received",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"email2sms": {
	  "sender": "[email protected]",
	  "receiver": {
		"group": false,
		"receiver": "32498123456"
	  },
	  "result": "Success",
	  "status": "Message Sent",
	  "email_message_id": "abc123def456",
	  "sms_message_id": "985zvqipp73csuuha2079fbshx",
	  "date": "2025-01-01 00:00:00",
	  "date_utc": "2025-01-01 00:00:00"
	}
  }
]