> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.ness-solutions.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Piegādes atskaišu saņemšana, izmantojot webhook

Konta iestatījumos varat norādīt HTTP(S) adresi priekš _"webhook"_, kas mūsu pusē tiks izsaukts ikreiz, kad parādīsies jauna piegādes atskaite ziņojumam, kas nosūtīts caur jūsu API kontu.  

|| Atkarībā no Jūsu ugunsmūra iestatījumiem, varētu būt noderīgi pievienot [mūsu IP adreses](https://help.sales.lv/lv/article/musu-ip-adreses-pexyjf/) izņēmumiem (whitelist), lai šo pieprasījumu saņemšana vienmēr būtu veiksmīga.

Uz klienta norādīto adresi atskaites tiks piegādātas kā HTTP POST pieprasījumi ar šiem parametriem:  

* **MSSID**: SMS ID, kāds tika saņemts no SendOne vai AddBatchRecipients komandām. 
* **DLR**: piegādes statuss ar vienu no šīm vērtībām: 
_- Delivered_: SMS piegādāta. 
_- Sent_: SMS nosūtīta, bet nav zināms vai saņemta (vārteja nav nodevusi DLR). 
_- Buffered_: SMS nodota piegādei, bet stāv rindā. 
_- Undelivered_: SMS nav izdevies piegādāt. 
_- Error_: sistēmas vai vārtejas kļūda. 
_- Other_: cita, neatpazīta piegādes atskaite. Error un Other statusiem normālos apstākļos nevajadzētu atgadīties vispār.
* **Expired** (0/1): Ja īsziņa netika piegādāta (atskaitē parādās statuss __Undelivered __), šis statuss precizēs to vai tas bija īsziņas noilguma iestāšanās dēļ (saņēmēja tālruņa numurs ir derīgs, bet īsziņas derīguma termiņa periodā nebija sasniedzams) 
* **HMAC**: Autentifikācijas kods ziņojumu pārbaudei.

Sīkāku informāciju par konkrēto piegādes statusu nozīmi varat atrast šeit: [SMS piegādes statusu skaidrojums](https://help.sales.lv/lv/article/sms-piegades-statusu-skaidrojums-zlgmeg/)

##### Atskaites _"webhook"_ pieprasījumu pārbaude

Lai pārliecinātos, ka šie _"webhook"_ pieprasījumi ir autentiski, iespējams pārbaudīt IP adresi, lai redzētu, vai tā sakrīt ar [vienu no mūsējām](https://help.sales.lv/lv/article/musu-ip-adreses-pexyjf/), taču papildus tam, tagad šie pieprasījumi satur arī autentifikācijas kodu, kuru iespējams izmantot atskaites pārbaudei.  
Šis pārbaudes kods, pazīstams kā [HMAC](https://en.wikipedia.org/wiki/HMAC), tiek aprēķināts izmantojot SHA-256 jaucējfunkciju _(hash function)_ un tā saturā ir 64 heksadecimālu rakstzīmju virkne. 
Vērtība tiek iegūta no klienta API atslēgas, ziņojuma indentifikatora (MSSID) and piegādes atskaites vērtības (DLR):

```HMAC = SHA-256( API ATSLĒGA + SHA-256( API ATSLĒGA + MSSID + DLR ) )```
Ja saņemtā vērtība sakrīt ar to, ko varat aprēķināt savā pusē, saņemot pieprasījumu, varat būt pietiekami pārliecināts, ka dati nav izmainīti. 

###### PHP piemērs HMAC vērtības aprēķināšanai saņemot pieprasījumu

```
// Pieņemot, ka $_POST vērtības ir aizpildītas pareizi, pārbaudes kods nav iekļauts. 
$api_key = 'YOURAPIKEYHERE';
$hmac = hash('sha256', $api_key.hash('sha256', $api_key.$_POST['MSSID'].$_POST['DLR']));

if ($hmac == $_POST['HMAC']) {
    // Pieprasījums ir derīgs 
}
```