CPA System REST API Specification 3.5.7
CPA System REST API Specification 3.5.7
cpa-support
Version 3.5.7
Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
API changes and restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3. Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1. Interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1.1. Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1.2. Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Indirect interaction with subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Charging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2. Transaction messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.1. Mobile terminated message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Processing flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.2. Mobile originated message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Processing flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.3. Delivery report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Successful DLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Unsuccessful DLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Methods/ways for DLR transmitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Methods usage and restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Processing flow for transmitting DLR on a regular basis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Processing flow for transmitting DLR by request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4. Syntax notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1. Send MT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2. Receive MO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.3. Receive DLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.4. Get DLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5. Headers definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.1. Headers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.1.1. Authorization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Exceptions processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.1.2. Content-Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Exceptions processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.2. Header examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.2.1. MT message headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Acceptance response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.2.2. GET DLR request headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Acceptance response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2.3. MO/DLR messages headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6. Parameters definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.1. Mandatory parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.1.1. date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.1.2. destination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.1.3. content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.1.4. mid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.1.5. source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.1.6. status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.2. Optional parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.2.1. bearerType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.2.2. callbackNum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.2.3. contentExtended . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
img . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
caption & action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.2.4. contentType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.2.5. errorId . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.2.6. errorMsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.2.7. params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.2.8. rid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.2.9. serviceType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.2.10. ttl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7. Message types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7.1. SMS message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7.1.1. SMS/plain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7.1.2. SMS/silent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
7.1.3. SMS/binary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7.2. USSD message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.2.1. USSD/push . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.2.2. USSD/menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.3. Viber message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.3.1. Viber/text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Promo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.3.2. Viber/media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Text-image-button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8. General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.1. Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.1.1. Encoding for text/plain content type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
DLR, MO messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
MT message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.1.2. Encoding for smpp/binary content type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
MO message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
MT message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.1.3. Data encoding scheme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.2. HTTP verbs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.3. HTTP status codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.4. Connection properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.5. Integration FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.6. Error information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.6.1. Dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.6.2. Degenerate case for transmitting error 196867 via DLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
8.6.3. Validations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.7. Emoji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.7.1. Emoji in sms-traffic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Emoji length for sms-traffic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
8.7.2. Emoji & text formatting in viber-traffic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Emoji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Text formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Emoji and markdowns length for viber-traffic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
8.8. Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Appendix A: Multi-channeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
A.1. Service overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
A.1.1. Multi-mt message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Processing flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
A.1.2. Multi-dlr message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Quantity of delivery reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Methods/ways for multi-dlr transmitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Methods usage and restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Transmitting multi-dlr on a regular basis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Transmitting multi-dlr by request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
A.2. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
A.2.1. Send multi-mt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
A.2.2. Receive multi-dlr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
A.2.3. Get multi-dlr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
A.3. Headers definition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
A.4. Parameters definition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
A.4.1. Common parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
rid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
errorId . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
errorMsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
A.4.2. Multi-mt parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
destination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
bearerType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
contentType. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
serviceType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
callbackNum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
img . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
caption & action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
ttl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
A.4.3. Multi-dlr parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
mid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
mid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
A.5. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
A.5.1. sms (text/plain) + viber (text/plain) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
A.5.2. sms (text/plain) + viber (text/template) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
A.5.3. sms (text/plain) + viber (image/plain) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
A.5.4. sms (text/plain) + viber (text/img/button) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
A.6. Error dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
A.7. Release notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Revision history
1
Issue Description Author
V. 3.4.0 Specification reduced to REST API description for JSON format Tetyana Tiunova /
24.05.2019 1. Amended Chapter 'Introduction': Softengi
- extended paragraph 'Support and development'
2. Amended Chapter 'Overview': excluded XML format examples
3. Amended Chapter 'Transactions':
- 'REST API' section reduced to JSON format
- excluded XML-related descriptions
4. Amended Chapter 'Syntax notation': excluded 'XML' section
5. Amended Chapter 'Parameters definition':
- excluded XML-related parameters
6. Amended Chapter 'Message types':
- excluded XML-related descriptions and examples
7. Amended section 'Error information':
- excluded subsection 'XML error types'
- added new error type: 1066
8. Amended section 'Glossary': excluded XML-related descriptions
9. Section 'Message encoding' renamed to 'Encoding'
2
Issue Description Author
3
Issue Description Author
V. 3.4.7 1. Amended Chapter 'General': added section 'Integration FAQ' Tetyana Tiunova /
25.11.2020 Softengi
4
Issue Description Author
5
Issue Description Author
6
API changes and restrictions
The current section designed for the attention of all Content Providers to consider
indicated functionalities and plan necessary updates, development for your
systems if required
Get DLR method Access to GET DLR method restricted since 01.08.2021 01.08.2021 /
for those Content Providers that did not implement implemented
the feature to accept DLRs from CPA System on a
regular basis.
A detailed description of change provided in a section
Methods usage and restrictions
Transmitting error Error 196867 removed from the DLR structure, and 19.11.2021 /
196867 via DLR replaced with a new delivery status to indicate implemented
subscriber’s low balance since 19.11.2021.
A detailed description of change provided in a section
Degenerate case for transmitting error 196867 via DLR
7
Chapter 1. Introduction
Purpose and Scope
This document describes CPA System REST API for JSON data-interchange format.
• syntax
However, the development team recommends taking into account the following regarding the
implementation of interfaces for integration:
• REST API for JSON format is considered preferable and strongly recommended for
implementation since all new features are being developed for this particular format.
• REST API for XML format is implemented to allow legacy compatibility with Content Providers
software, which had been integrated with the previous version of the CPA System.
Support of XML format is considered an unpromising direction and has expired since 01.04.2019.
Related documentation
XML: Addition to CPA System API
The document specifies CPA System REST API for XML data-interchange format. The latest
document version can be downloaded via the link, or requested from KS responsible manager or
support team.
Confidentiality Statement
The information in this document is designated as 'commercial confidentiality'. Therefore, the
document or the information in it should not be provided to any party other than Kyivstar JSC (KS)
partners.
8
Chapter 2. Overview
The Content Provider Access System (CPA System) is a system that enables interaction between
subscriber and Content Provider. By Content Provider should be basically meant a system that
provides any informational services to subscriber. By subscriber should be basically meant a
person that employs the services provided by a telecommunication system or information
processing systems which transfers information.
Interaction between the subscriber and Content Provider derives from the following main needs:
As depicted in the Figure 1 subscriber sends a short message containing a defined token to a short
number dedicated for movie ordering. External content delivery system (SMS Centre) receives a
short message, performs required processing with billing system and forwards a short message to
CPA System. CPA System receives subscriber’s short message, processes this message, transforms it
into request and forwards it to Content Provider. Content Provider receives request and provides
access to movie for subscriber.
Mentioned example defines that subscriber himself requests an informational service. In a current
document is used a term ‘Mobile originated message’ (MO) to define a message with request for
informational service from subscriber to Content Provider.
If subscriber sends request for the information service to invalid short number,
then CPA System provides a general auto reply to inform that a requested
number is out of use.
9
For deeper detailing of Example 1 is provided POST method example of CPA System REST API,
which CPA System uses in order to send message to Content Provider.
JSON request
POST http://{environment}/api/requests
{
"rid": "d8549def-5d93-4e52-8b63-b282ccefa971",
"date": "1513296000000",
"source": "380672240001",
"destination": "101999",
"bearerType": "sms",
"contentType": "text/plain",
"content": "Hello Provider!"
}
10
As depicted in the Figure 2 Content Provider sends request to CPA System using CPA System API.
CPA System in its turn processes this request, transforms it into message and forwards it to External
content delivery system (SMS Centre). SMS Centre receives message, performs required processing
with billing system, and forwards a short message to subscriber.
Mentioned example defines that Content Provider sends an advertisement short message without
prior subscriber’s request. In current document is used term ‘Mobile terminated message’ (MT) to
define message with informational service from Content Provider to subscriber.
For deeper detailing of Example 2 is provided POST method example of CPA System REST API,
which Content Provider uses in order to send short message to subscriber.
JSON request
POST http://{environment}/api/contents
{
"source": "101999",
"destination": "380670000001",
"serviceType": "true"
"bearerType": "sms"
"contentType": "text/plain"
"content": "Hello World!"
}
11
Chapter 3. Transactions
The Content Provider Access System REST API is designed as a messaging protocol for interaction
between CPA System and Content Provider and implements following methods:
POST
• to accept content from Content Provider and forward it to subscriber (Mobile terminated
message)
• to forward subscriber’s request for content to Content Provider (Mobile originated message)
GET
• to accept request from Content Provider to retrieve Delivery report (Delivery report)
3.1. Interaction
3.1.1. Description
Interaction means an act of sending one message. The party which is sending the message is called
the sender and the party which receives the message is called the receiver. To complete the
interaction, sender and receiver perform following steps:
2. The sender initiates an HTTP connection to the URL corresponding to the receiver. (How the
sender learned which URL to use, is outside the scope of this document – one could safely
assume that these URLs are exchanged before, as a part of CPA System and Content Provider
initial setup.)
4. The sender submits a request, transmitting the message in the body of a request.
1. If message passes validation, the receiver generates HTTP response, which has HTTP status
code of 202 and contains message identifier (mid).
2. If message does not pass validation, the receiver generates HTTP response, which contains
HTTP status and error message.
12
3.1.2. Assumptions
CPA System APIs enable interaction between CPA System and Content Provider in order to either
transport subscriber’s order for content to Content Provider or provide content to subscriber.
However neither CPA System nor Content Provider does not interact with subscriber directly.
Mobile originated content request from subscriber is sent through defined communication channel
to External content delivery system, which in it’s turn delivers it to CPA System and than CPA
System forwards it to Content Provider. The same way Mobile terminated content response from
Content Provider is sent to CPA System, than forwarded to External content delivery system, which
in it’s turn delivers it to subscriber through defined communication channel.
For the purpose of current document can be used phrases like ‘deliver/send to subscriber’,
‘receive/accept from subscriber’ in order to facilitate understanding of general business logic. Upon
further thought it is necessary to understand that 'deliver/send' to- or ‘receive/accept' from
subscriber means indirect interaction through External content delivery system.
Charging
Content provided to subscriber can require subscriber’s charging. However CPA System does not
charge subscriber by itself. In case if charges for content are required, CPA System can only initiate
pre-check whether subscriber’s core balance is enough to be charged. Mentioned pre-check
operation is performed by external system.
For the purpose of current document can be used phrases like 'to initiate subscriber’s core balance
pre-check', ‘to initiate subscriber’s charging’ or common in order to facilitate understanding of
general business logic. Upon further thought it is necessary to understand that any actions for
subscriber’s charging are performed by external system.
13
3.2. Transaction messages
3.2.1. Mobile terminated message
Description
MT message - a message generated by Content Provider and sent to CPA System to provide
informational services (content) to the subscriber.
Processing flow
1. Content Provider sends MT message to CPA System (detailed syntax for MT message provided in
a section Send MT)
2. CPA System:
14
• matches MT message to Content Providers configurations to define an applicable rule
• checks that Content Provider does not exceed the limit of allowed MT messages per day
• converts MT message to a proper format according to the External content delivery system
API (SMS Center/Viber)
4. CPA System:
• accepts response from the External content delivery system (SMS Center/Viber)
In case if at least one validation passed unsuccessfully and MT message cannot be transmitted
further, CPA System fails MT message processing, and responses to Content Provider with an error
message (detailed list of possible errors provided in a section Error information).
15
3.2.2. Mobile originated message
Description
Processing flow
1. Subscriber sends a content request (sms message) to the Content Provider’s short number
2. SMS Center accepts a content request from the subscriber and transmits it to CPA System
3. CPA System:
16
4. Content Provider:
• accepts MO message
• provides response with HTTP code 204 (No content) to CPA System as a response to the
accepted MO message
5. CPA System:
17
3.2.3. Delivery report
Description
Delivery report (DLR) - a message generated by CPA System and sent to Content Provider in order to
inform on result of sending content to the subscriber. Initially, sending of Delivery report is
performed by CPA System automatically on a regular basis, but it also can be retrieved by Content
Provider manually.
In case if Content Provider requests DLR for the message, which is still in a process of sending to
the subscriber, then DLR for such MT cannot be found, and CPA System responses with HTTP code
404 (Not Found) and error message "Resource not found".
Successful DLR
Scenario for a successful DLR considers that MT message passed the whole processing flow on CPA
System side, and was forwarded to the External content delivery system successfully. Further
External content delivery system informs CPA System that content was sent to the subscriber. Based
on this information CPA System generates and sends DLR to Content Provider.
18
Unsuccessful DLR
Scenario for an unsuccessful DLR considers that MT message passed the whole processing flow on
CPA System side, but forwarding it to the External content delivery system passed unsuccessfully, or
MT message was rejected by External content delivery system. In such case CPA System generates
and sends to Content Provider DLR with the status which indicates unsuccessful delivery.
• regular transmitting - a basic/regular way when CPA System sends DLR to Content Provider as
soon as DLR is received from the External content delivery system; CPA System uses POST
method to send DLR to Content Provider
• Receive DLR
• Get DLR
GET DLR method cannot be assumed as the basic and single way to obtain delivery reports if
they are needed.
Access to GET DLR restricted for those Content Providers that did not implement
the feature to accept DLRs from CPA System on a regular basis
If Content Provider requests DLR, and it is restricted on CPA System side, then the following error
response is provided
{
"mid": "904705f0-3c5e-4556-8339-81b7fd2e3d83",
"errorId": 1041,
"errorMsg": "Get DLR request is not allowed"
}
19
Processing flow for transmitting DLR on a regular basis
A standard flow for transmitting DLR to Content Provider as soon as it was received from the
External content delivery system is depicted by the following sequence diagram.
Figure 5. Sequence diagram for transmitting DLR to Content Provider on a regular basis
1. External content delivery system (SMS Center/Viber) sends content to the subscriber
• accepts content
• provides a delivery report to the External content delivery system (SMS Center/Viber)
20
4. CPA System:
5. Content Provider:
• provides response with HTTP code 204 (No content) to CPA System as a response to the
accepted delivery report
6. CPA System:
Redelivery
In case if Content Provider is unavailable, and cannot accept DLR, then CPA System tries to
redeliver DLR twice according to the following schedule:
• second redelivery attempt is performed in 15 min after the first unsuccessful redelivery attempt
21
Processing flow for transmitting DLR by request
2. CPA System:
• responses with HTTP code 200 (OK) and body containing a delivery report
In case if DLR is not found in the database, then CPA System responds to Content Provider with
HTTP code 404 (Not Found) and the error message 'Resource not found'.
In case if access to Get DLR method is restricted, then CPA System responds to Content Provider
with HTTP code 403 (Forbidden) and the error message 'Get DLR request is not allowed'.
22
Chapter 4. Syntax notation
In current section are provided detailed syntax notation and examples of CPA System REST API.
4.1. Send MT
Resource
http://{environment}/api/contents
Method
POST
{
"source": "101999",
"destination": "380670000001",
"content": "Hello World!"
}
{
"rid": "d8549def-5d93-4e52-8b63-b282ccefa971",
"source": "101999",
"destination": "380670000001",
"serviceType": "true",
"bearerType": "sms",
"contentType": "text/plain",
"callbackNum": "69",
"ttl": 7200,
"content": "Hello World!"
}
23
Success HTTP response example
{
"mid": "904705f0-3c5e-4556-81b7fd2e3d83"
}
{
"mid": "904705f0-3c5e-4556-81b7fd2e3d83",
"errorId": 1019,
"errorMsg": "Invalid destination address"
}
24
Table 3. MT HTTP response body data parameters detailed description
25
4.2. Receive MO
Resource example
http://{environment}/api/requests
Method
POST
{
"rid": "d8549def-5d93-4e52-8b63-b282ccefa971",
"date": "1513296000000",
"source": "380672240001",
"destination": "101999",
"params": {"514":"1", "515":"1"},
"bearerType": "sms",
"contentType": "text/plain",
"content": "Hello Provider!"
}
26
Table 4. MO HTTP request body data parameters detailed description
27
4.3. Receive DLR
Resource example
http://{environment}/api/reports
Method
POST
{
"mid": "904705f0-3c5e-4556-8339-81b7fd2e3d83",
"date": "1513296000000",
"status": "delivered"
}
{
"mid": "904705f0-3c5e-4556-8339-81b7fd2e3d83",
"date": "1513296000000",
"status": "expired"
}
28
4.4. Get DLR
GET DLR method cannot be assumed as the basic and single way to obtain
delivery reports if they are needed. Access to GET DLR method restricted since
01.08.2021 for those Content Providers that do not implement the feature to
accept DLRs from CPA System on a regular basis.
Detailed syntax on how to receive DLRs provided in a section Receive DLR
Resource
http://{environment}/api/reports/{mid}
Method
GET
http://{environment}/api/reports/d8549def-5d93-4e52-8b63-b282ccefa971
{
"mid": "904705f0-3c5e-4556-8339-81b7fd2e3d83",
"date": "1513296000000",
"status": "delivered"
}
{
"mid": "904705f0-3c5e-4556-8339-81b7fd2e3d83",
"errorId": 1040,
"errorMsg": "Resource not found"
}
29
Error HTTP response example | Request DLR not allowed
{
"mid": "904705f0-3c5e-4556-8339-81b7fd2e3d83",
"errorId": 1041,
"errorMsg": "Get DLR request is not allowed"
}
30
Chapter 5. Headers definition
5.1. Headers
5.1.1. Authorization
Content Provider should set its login and password concatenated in the form
<username>:<password>, encoded using base64, into the Authorization header, as follows:
Exceptions processing
Unknown ip
If Content Provider sends the request from the unknown ip address, then CPA System rejects the
request with the following data:
Invalid login/password
If Content Provider sends the request with the invalid login or password, then CPA System rejects
the request with the following data:
5.1.2. Content-Type
The Content-Type entity is used to indicate the media type of the resource.
Content Provider should set its request data type into the Content-Type header, as follows:
Content-Type: application/json
Exceptions processing
Invalid Content-Type
If Content Provider sets the value that differs from the prescribed one by the current Specification,
then CPA System rejects the request with the following data:
31
5.2. Header examples
5.2.1. MT message headers
• Authorization
• Content-Type
CPA System expects that Content Provider sends the MT message with the following headers:
Acceptance response
If the MT message is accepted successfully, then CPA System provides to the Content Provider an
acceptance response with the following headers:
X-Correlation-ID: 80a53918-fa97-4650-89a8-e65cd610cf38
Content-Type: application/json
X-Correlation-ID
the unique identifier of the object into which the received MT message and its Delivery report
are aggregated; is used for service purposes by the support team of the CPA System, and can be
ignored by Content Providers.
Content Provider can send GET DLR request with the following headers:
Content Provider can send GET DLR request with the following header:
32
Acceptance response
If the GET DLR request is accepted successfully, then CPA System provides to the Content Provider
an acceptance response with the following header:
Content-Type: application/json
CPA System provides to the Content Provider the MO message, and the Delivery report with the
following headers:
33
Chapter 6. Parameters definition
6.1. Mandatory parameters
6.1.1. date
Definition
Parameter definition depends on request type:
• for MO date defines time and date when CPA System received subscriber’s request from
External content delivery System;
• for DLR date defines time and date when CPA System received DLR from External content
delivery System.
Format
Parameter format should be set as TIMESTAMP (UTC) in milliseconds.
Example
Features
1. Parameter has no default value.
6.1.2. destination
Definition
Parameter defines message destination number.
Destination number where the message is sent to depends on request type:
Features
1. Parameter has no default value.
34
6.1.3. content
Definition
Parameter defines content that is being sent; cannot be empty string.
Features
1. Parameter has no default value.
"bearerType": "sms"
"contentType": "text/plain"
Content on CPA System side and on SMS Centre side is proceed in a bit different ways.
CPA System does not split content into single parts, but it validates content according to max
recommended length, and encodes it according to provided characters:
• if content contains characters which belong only to the basic set of '7-bit default alphabet'
(SMSCDefaultAlphabet), then message is encoded to '7-bit default alphabet';
for this encoding recommended length is <= 1000 characters
• if content contains at least one character out of '7-bit default alphabet', then message is encoded
to UCS2(ISO/IEC-10646);
for this encoding recommended length is <= 499 characters
SMS Centre splits content into single message parts (for transport purposes), which are
concatenated into a one sms message on subscriber’s device side. A single message part length
depends on encoding:
• 70 symbols for UCS2 encoding, until it is not larger than max length.
35
5. Parameter’s length recommendations for ussd message
ussd/push ussd/menu
Parameter’s recommended length is applicable to any encoding but depends on a content type
(contentType)
6.1.4. mid
Definition
Message identifier - a string used to identify a particular Mobile terminated content response.
Parameters mid are used by CPA System and Content Provider in all messages concerning a
particular Mobile terminated content response.
Format
UUID.
Features
1. Parameter has no default value.
2. Parameter is generated by CPA System and sent back to Content Provider in acceptance
response.
6.1.5. source
Definition
Parameter defines number of message origin.
Source number where the message is received from depends on request type:
36
Features
1. Parameter has no default value.
3. Parameter value to be set, has some limitations for viber-traffic (for mt messages with
"bearerType": "viber"). Value to be set in a request should be equal to an identifier issued by
Viber, and should be provided by a manager.
6.1.6. status
Definition
Parameter defines result of sending content to subscriber (delivery status of MT message to
subscriber).
Features
1. Parameter is used only for request type DLR.
3. Parameter’s values vary depending on External content delivery system via which MT is being
delivered to subscriber (SMS Centre, Viber).
sms-traffic
For sms-traffic status is being set as closely as possible to Short Message Peer to Peer Protocol
Specification v3.4. CPA System does not implement statuses of SMPP Protocol strictly, but tries to
adhere as closely as possible. Some below mentioned statuses may be not used in a practice. Main
and definitely in-use values are: delivered, expired and undeliverable.
main statuses:
• expired - message is not delivered to the destination due to the time to live expiration
37
additional statuses:
• accepted - message has been accepted on SMS Centre side and delivery attempts will be made
• deleted - message has been cancelled or deleted on SMS Centre side (most likely deleted
manually by SMS Centre administrator)
• rejected - message was rejected on SMS Centre side due to internal business logic; no delivery
attempts were made
• rejected_spam - message was rejected on SMS Centre side as provided content is recognized as
spam; no delivery attempts were made
• unknown - most likely, SMS Centre failure, or message has already passed to the final status and
has been deleted from the SMS Centre, i.e. no longer exists on SMS Centre side
viber-traffic
For viber-traffic setting of status does not refer to domain standards, but is implemented in a way
to inherit sms-traffic statuses as close as possible.
• accepted_unmatched - message has been accepted on Viber side and delivery attempts will be
made, but sent template message did not match any Content Provider’s available templates;
additional intermediate status applicable only to template messages;
(as soon as message delivered to the destination successfully, accepted_unmatched status is being
updated to delivered)
• blacklist - message was rejected on Viber side due to subscriber reason, more specifically,
because subscriber unsubscribed from the specific sender or from receiving viber business
messages completely
• declined - message was rejected on Viber side due to subscriber reason, more specifically,
because subscriber is not registered on viber; has no viber application
• expired - message is not delivered to the destination due to the time to live expiration
• rejected - message was rejected on Viber side due to internal business logic, e.g. invalid request
syntax, invalid client configuration, billing errors, timeout; no delivery attempts were made
• seen - subscriber opened Viber application and entered the conversation with the specific
message
38
6.2. Optional parameters
Each request type has a set of mandatory and optional parameters. Must be taken
into account the following: if optional parameter is included to request body, than
it has to contain value, otherwise request is not being processed by CPA System.
6.2.1. bearerType
Definition
Parameter defines message type.
Features
1. Parameter max length is 10 symbols.
• sms
• ussd
• viber
"bearerType": "sms"
If parameter is not set in request, then CPA System sets default value.
6.2.2. callbackNum
Definition
Parameter defines Content Provider’s additional callback number or identifier used for billing,
charging purposes. Most commonly, parameter defines Content Provider’s billing identifier.
Parameter can be used only by preliminary agreement.
Features
1. Parameter is used only for request type MT.
5. Parameter value to be set, has some limitations for viber-traffic (for mt messages with
"bearerType": "viber"). Value to be set in a request should be equal to an identifier issued by
Kyivstar, and should be provided by a manager.
39
6.2.3. contentExtended
Definition
Parameter defines a complex media content that is being sent.
Features
1. Parameter is represented as an object with nested parameters to place additional content.
• label
• tag
• txt
• img
• caption
• action
label
Definition
Parameter defines type of content in a viber message to indicate whether viber message contains a
service plain text or promotion plain text, or media. Can be used for reports, analytics etc. on
Content Provider’s side.
Features
1. Parameter should be included in the object contentExtended.
• transaction
• promotion
40
5. If parameter is not set in request, then CPA System sets a proper value according to provided
contentType.
tag
Definition
Parameter defines a specific mark to indicate any kind of valuable for Content Provider
information. Can be used for reports, analytics etc. on Content Provider’s side.
Features
1. Parameter should be included in the object contentExtended.
txt
Definition
Parameter defines content represented as a text, that is being sent within a complex viber media
message or within a viber text message in a conjunction with additional information.
Features
1. Parameter should be included in the object contentExtended.
2. Parameter’s recommended length is applicable to any encoding but depends on a content type
(contentType):
3. Parameter is used only for request type MT, and can be used for the following viber message
types:
• "contentType": "text/plain";
• "contentType": "text/template";
• "contentType": "text/img/button".
4. Parameter should not be used for any other viber message types.
img
Definition
Parameter defines a web based link to the image.
Features
1. Parameter should be included in the object contentExtended.
41
3. Parameter is used only for request type MT, and can be used for the following viber media
message types:
• "contentType": "text/img/button";
• "contentType": "image/plain".
4. Parameter should not be used for any other viber message types.
Definition
Parameters caption and action must be used together as they both represent the button:
• action - a link to a necessary resource, redirection to which is executed within button pressing.
Features
1. Parameters should be included in the object contentExtended.
3. Parameters are used only for request type MT, and can be used for the following viber media
message type:
• "contentType": "text/img/button".
4. Parameter should not be used for any other viber message types.
6.2.4. contentType
Definition
Parameter defines type of content in parameter 'content' that is being sent.
Features
1. Parameter max length is 20 symbols.
• text/plain
• text/zero
• smpp/binary
• text/ussn
• text/ussr
• text/template
• image/plain
• text/img/button
42
a. for "bearerType": "sms", contentType can be set to:
• text/plain
• text/zero
• smpp/binary
• text/ussn
• text/ussr
• text/plain
• text/template
• image/plain
• text/img/button
If parameter is not set in request, then CPA System sets default value.
6.2.5. errorId
Definition
Parameter defines error identifier.
Features
1. Parameter has no default value.
6.2.6. errorMsg
Definition
Parameter defines error message.
Features
1. Parameter has no default value.
43
6.2.7. params
Definition
Object that contains a set of any optional parameters (TLV) according to 'Short Message Peer to Peer
Protocol Specification v3.4' needed for Content Provider.
Format
Object.
Features
1. Object is used only for request type MO.
2. Object can contain a set of optional parameters represented as pair: "key":"value". Quantity of
pairs can vary from 1 to n. Pairs are separated by commas.
6.2.8. rid
Definition
Request identifier - a string used to identify a particular Mobile originated content request.
Parameters rid are used by CPA System and Content Provider in all messages concerning a
particular Mobile originated content request and requested Mobile terminated content response.
Format
UUID.
Features
1. Parameter has no default value.
• for MT rid is optional. Content Provider must set rid only in requested MT, sent as response
to a particular MO.
6.2.9. serviceType
Definition
Parameter defines type of payment for the message. Also, parameter can be used to prioritize time-
sensitive traffic (e.g. one time passwords).
Features
1. Parameter is used only for request type MT.
44
3. Parameter can take one of the following values:
"serviceType": "false"
If parameter is not set in request, then CPA System sets default value.
6.2.10. ttl
Definition
Parameter defines time to live of MT message in CPA System in case if MT is not delivered to
External content delivery system from the first time. Parameter is also passed to External content
delivery system (SMS Centre, Viber), where it defines message time to live in case if it is not
delivered to subscriber from the first time.
Features
1. Parameter is used only for request type MT.
3. Parameter has a single default value for sms and viber messages.
"ttl": "86400"
If parameter is not set in a request, then CPA System sets a default value.
4. Parameter has allowed range of values limited by min and max values, that depend on a
message type (bearerType):
• for "bearerType": "sms" parameter value should be set in a range: 30 to 86400 seconds
(from 30 sec to 1 day)
• for "bearerType": "viber" parameter value should be set in a range: 30 to 1209600 seconds
(from 30 sec to 14 days)
If Content Provider sets value out of allowed range, then processing of provided MT is failed
with error 1071 'Invalid parameter value: %parameter%'.
45
Chapter 7. Message types
CPA System provides an opportunity to transfer different informational services from Content
provider to subscriber and vice verse by using different message and content types. One message
type can support several content types.
Detailed description, syntax and examples of different message types with relevant content types
are provided in next sections.
Within interaction between CPA System and Content Provider SMS message can be defined by
using following parameter:
"bearerType": "sms"
1. plain
2. binary
3. silent
7.1.1. SMS/plain
SMS/plain (plain short message; plain SMS message) - readable short message, represented by
standard ASCII characters, including numbers, symbols, and spaces.
Within interaction between CPA System and Content Provider SMS/plain can be defined by using
following parameters:
"bearerType": "sms"
"contentType": "text/plain"
However, it is not necessary to set above-mentioned parameters, as CPA System sets "bearerType":
"sms" and "contentType": "text/plain" by default if they are absent in request.
46
Content Provider can send SMS/plain as provided in following example.
{
"source": "101999",
"destination": "380670000001",
"content": "Hello World!"
}
MT HTTP request body data parameters detailed descriptions is provided in section Send MT.
7.1.2. SMS/silent
SMS/silent (silent short message; silent SMS message; short message type 0; SMS0) - a special type
of short message that is indicated neither on the display nor by an acoustic signal. SMS/silent is not
saved in phones memory and does not contain any content. Is frequently used to allow SMSC
perform subscriber’s core balance charging.
Within interaction between CPA System and Content Provider SMS/silent can be defined by using
following parameters:
"bearerType": "sms"
"contentType": "text/zero"
However, it is not necessary to set one above-mentioned parameter - bearerType, as CPA System sets
"bearerType": "sms" by default if it is absent in request.
{
"source": "101999",
"destination": "380670000001",
"contentType": "text/zero"
}
MT HTTP request body data parameters detailed descriptions is provided in section Send MT.
47
7.1.3. SMS/binary
SMS/binary (binary short message; binary SMS message) - a binary short message; commonly not
viewable by phone as text messages and used for data (e.g. images and ringing tones) or installation
messages.
Within interaction between CPA System and Content Provider SMS/binary can be defined by using
following parameters:
"bearerType": "sms"
"contentType": "smpp/binary"
However, it is not necessary to set one above-mentioned parameter - bearerType, as CPA System sets
"bearerType": "sms" by default if it is absent in request.
{
"source": "101999",
"destination": "380670000001",
"contentType": "smpp/binary"
"content": "SSBrbm93IHdoYXQgeW91IGdvb2dsZSBsYXN0IG5pZ2h0IEhBSEE="
}
MT HTTP request body data parameters detailed descriptions is provided in section Send MT.
48
7.2. USSD message
USSD (Unstructured Supplementary Service Data) - a communication protocol used by GSM cellular
telephones to communicate with the mobile network operator’s computers.
USSD message
USSD message (from subscriber’s viewpoint) - a code that consist of digits and special signs. A
typical USSD message starts with an asterisk *, followed by digits that comprise commands or
data. Groups of digits may be separated by additional asterisks. The message is terminated with
a sign #.
1. USSD/push.
2. USSD/menu.
7.2.1. USSD/push
USSD/push operation intends mono-directional message sending. Content Provider can send
message which requires no subscriber’s response. In current document is used term ‘Unstructured
Supplementary Services Notification’ (USSD notification, USSN message, USSN) to define
USSD/push message with informational service which requires no response.
Within interaction between CPA System and Content Provider USSN message can be defined by
using following parameters:
"bearerType": "ussd"
"contentType": "text/ussn"
However, it is not necessary to set one above-mentioned parameter - contentType, as CPA System
sets "contentType": "text/ussn" by default if it is absent in request.
{
"source": "101999",
"destination": "380670000001",
"bearerType": "ussd",
"content": "World enddate is tomorrow!"
}
MT HTTP request body data parameters detailed descriptions is provided in section Send MT.
49
7.2.2. USSD/menu
For deeper detailing of USSD/menu operation initiated by subscriber following examples flow may
be considered.
"bearerType": "ussd"
"contentType": "text/ussr"
{
"rid": "d8549def-5d93-4e52-8b63-b282ccefa971",
"date": "1513296000000",
"source": "380670000001",
"destination": "101999",
"bearerType": "ussd",
"contentType": "text/ussr",
"content": "666"
}
50
2. Content Provider responses
2.a. Content Provider’s message requires subscriber’s response in order to continue interaction.
{
"rid": "d8549def-5d93-4e52-8b63-b282ccefa971",
"source": "101999",
"destination": "380670000001",
"bearerType": "ussd",
"contentType": "text/ussr",
"content": "To know World enddate enter *13666#"
}
2.b. Content Provider’s message is final, terminates interaction, and requires no subscriber’s
response.
Final message requires no response and indicates interaction termination. Other words, final
message is expected to be a USSN message. Subscriber cannot answer on USSN message. Detailed
description of USSN message is provided in section USSD/push.
MT/MO HTTP request body data parameters detailed descriptions are provided in sections:
• Send MT
• Receive MO
51
7.3. Viber message
Viber message - an instant text or media message sent to subscriber via Viber software.
CPA System enables Content Providers to provide informational services to subscribers via Viber
applications.
The ability to provide informational services to subscribers via Viber is implemented as a standard
flow for MT message processing. This means that Content Provider sends MT message with a
specific set of parameters, which determine that the message should be sent via Viber. General MT
message processing flow remains the same and is detailed in the section Mobile terminated
message. The changes relate only to the parameters of the MT message. Detailed information on
viber message types with corresponding syntax are provided in next sections.
• text:
• template
• promotion
• media:
• image
Moreover, CPA System provides an opportunity to transfer within a viber message a special
additional information, that can be used on Content Provider’s side for any internal business logic,
for instance reports, statistics etc.
• a specific label - to indicate whether viber message contains a service text or promotion
information (either advertising text, or media)
• a specific mark - to indicate any kind of valuable for Content Provider information.
In order to provide media content and additional information should be used a parameter
contentExtended, represented as an object, to place following nested parameters:
• tag - a specific mark to indicate any kind of valuable for Content Provider information;
• txt - text;
• action - link to a necessary resource, redirection to which is executed within button pressing.
52
Object example
{
...// other request parameters
"contentExtended":
{
"label": "promotion",
"tag": "bb8",
"txt": "Hello World!",
"img": "https://i.redd.it/o7brzj18bcs21.jpg",
"caption": "Click to follow Star Wars",
"action": "https://www.starwars.com"
},
...// other request parameters
}
Detailed description of viber message types with corresponding syntax is provided in next sections.
53
7.3.1. Viber/text
Viber text message - a text message, represented by standard ASCII characters, including numbers,
symbols, and spaces.
1. template
2. promotion
Template
Template text message - a service text message, represented by standard ASCII characters,
including numbers, symbols, and spaces, with a predefined text structure which strictly
adheres a template.
Content restrictions
Templates may be used for following service messaging:
• order/delivery conformation
• order/delivery status
• registration conformation
• booking status
• advertisement/promotion
• any additional information that promotes a provided service (info on new arrivals, discounts,
special offers)
• holidays congratulations
54
Template example
Template - a text with parameters, which are specified through regular expressions (RegEx).
Content example
{
"content": "Hello Darth! Your order number is 999666"
}
Template mismatch
In case if sent template message did not match any available Content Providers templates, CPA
System does not reject the message, but proceeds it as promotion.
Syntax notation
Within interaction between CPA System and Content Provider template text message can be sent
in two ways:
"bearerType": "viber"
"contentType": "text/template"
55
Message example
{
"source": "16034",
"destination": "380670000001",
"bearerType": "viber",
"contentType": "text/template",
"content": "Hello Darth! Your order number is 999666",
"callbackNum": "KS_123456"
}
• general parameters to indicate that MT message should be sent as a template text message
"bearerType": "viber"
"contentType": "text/template"
"contentExtended": {
"label": "transaction",
"tag": "tag",
"txt": "Hello Darth! Your order number is 999666"
}
Message example
{
"source": "16034",
"destination": "380670000001",
"bearerType": "viber",
"contentType": "text/template",
"contentExtended":
{
"label": "transaction",
"tag": "tag",
"txt": "Hello Darth! Your order number is 999666"
},
"callbackNum": "KS_123456",
"ttl": 7200
}
56
Promo
Promo text message - a text message, represented by standard ASCII characters, including
numbers, symbols, and spaces, which contains promotion content.
A promotion text message is opposite to a template message, and is used to provide any
information that directly or indirectly promotes or advertises service/business. Promotion text
messages requires no preliminary manual interactions and are available out of the box.
Syntax notation
Within interaction between CPA System and Content Provider promo text message can be sent in
two ways:
"bearerType": "viber"
"contentType": "text/plain"
Message example
{
"source": "16034",
"destination": "380670000001",
"bearerType": "viber",
"contentType": "text/plain",
"content": "Hello World!",
"callbackNum": "KS_123456"
}
57
Message with additional information can be defined by using following parameters:
• general parameters to indicate that MT message should be sent as a promo text message
"bearerType": "viber"
"contentType": "text/plain"
"contentExtended": {
"label": "promotion",
"tag": "tag",
"txt": "Hello World!"
}
Message example
{
"source": "16034",
"destination": "380670000001",
"bearerType": "viber",
"contentType": "text/plain",
"contentExtended":
{
"label": "promotion",
"tag": "tag",
"txt": "Hello World!"
},
"callbackNum": "KS_123456",
"ttl": 7200
}
58
7.3.2. Viber/media
Viber media message - a complex media message, that can contain one of the following set of
content: either a single image or text combined with image and button.
Image
By image should be meant a web based link to the image, but not an uploaded image itself. Other
words viber media message represented by an image on a subscriber’s device, is transmitted as
a web based link to the image from Content Provider’s side.
Content Providers are expected not to share images that are offensive in any way.
Content Provider should take into consideration that Viber presents image as a
thumbnail in the resolution of 400x400 pixels. Therefore, if an image has lower
resolution, then it is going to be stretched, and can loose quality on subscriber’s
device.
59
Image
Current section provides syntax for a viber media message that contains image.
Viber image message - a media message, transmitted as a web based link to the image from
Content Provider’s side, but represented by an image on a subscriber’s device.
Within interaction between CPA System and Content Provider viber image message can be defined
by using following parameters:
• general parameters to indicate that MT message should be sent as a viber image message
"bearerType": "viber"
"contentType": "image/plain"
"contentExtended": {
"label": "promotion",
"tag": "tag",
"img": "https://i.redd.it/o7brzj18bcs21.jpg"
}
Content Provider can send viber image message as provided in a following example.
{
"source": "16034",
"destination": "380670000001",
"bearerType": "viber",
"contentType": "image/plain",
"contentExtended":
{
"label": "promotion",
"tag": "bb8",
"img": "https://i.redd.it/o7brzj18bcs21.jpg"
},
"callbackNum": "KS_123456",
"ttl": 7200
}
60
Text-image-button
Current section provides syntax for a complex viber media message that contains text, image and
button.
Within interaction between CPA System and Content Provider viber media message can be
defined by using following parameters:
• general parameters to indicate that MT message should be sent as a viber media message
"bearerType": "viber"
"contentType": "text/img/button"
• action - to set link to a necessary resource, redirection to which is executed within button
pressing.
"contentExtended": {
"label": "promotion",
"tag": "tag",
"txt": "Hello World!",
"img": "https://i.redd.it/o7brzj18bcs21.jpg",
"caption": "Click to follow Star Wars",
"action": "https://www.starwars.com"
}
Content Provider can send viber media message as provided in a following example.
61
Viber media message example
{
"source": "16034",
"destination": "380670000001",
"bearerType": "viber",
"contentType": "text/img/button",
"contentExtended":
{
"label": "promotion",
"tag": "bb8",
"txt": "Hello World!",
"img": "https://i.redd.it/o7brzj18bcs21.jpg",
"caption": "Click to follow Star Wars",
"action": "https://www.starwars.com"
},
"callbackNum": "KS_123456",
"ttl": 7200
}
62
Chapter 8. General
8.1. Encoding
CPA System processes different character encoding types for content that is being transferred from
subscriber to Content Provider and vice verse. Encoding type depends on message type and
provided content, and is detailed in following sections. Definite parameters' values that define data
encoding scheme are provided in section Data encoding scheme.
DLR, MO messages
CPA System accepts from External content delivery system DLR and MO messages encoded to:
• UCS2(ISO/IEC-10646).
CPA System sends to Content Provider DLR and MO messages encoded to:
• UTF-8.
MT message
• if content contains characters which belong only to the basic set of '7-bit default alphabet'
(SMSCDefaultAlphabet), then message is encoded to 7-bit default alphabet; using this encoding,
it is possible to send up to 160 characters in one sms message;
generally, indicated encoding is applied to plain text message in latin without emoji;
• if content contains at least one character out of '7-bit default alphabet', then message is encoded
to UCS2(ISO/IEC-10646); using this encoding, it is possible to send up to 70 characters in one sms
message;
generally, indicated encoding is applied to plain text message in cyrillic, or with emoji.
Basic character set for '7-bit default alphabet' can be found on Wikipedia.
MO message
CPA System accepts from External content delivery system MO message encoded to:
• Class 1 (ME-specific);
63
• Class 2 (SIM/USIM-specific);
• Class 3 (TE-specific);
MT message
CPA System accepts from Content Provider MT message encoded using base64.
Current section provides definite parameters values of data encoding scheme in accordance with:
text/plain
smpp/binary
64
8.2. HTTP verbs
Content Provider Access System tries to adhere as closely as possible to standard HTTP and REST
conventions in its use of HTTP verbs.
Verb Usage
GET Used to retrieve data from a specified resource. The data requested from
the server with GET can be in JSON format
POST POST is used to send data to a server to create a resource. The data sent to
the server with POST can be in JSON or XML formats
200 OK Standard response for successful HTTP requests. The actual response will
depend on the request method used. In a GET request, the response will
contain an entity corresponding to the requested resource. In a POST
request, the response will contain an entity describing or containing the
result of the action.
202 Accepted The request has been accepted for processing, but the processing has not
been completed. The request might or might not be eventually acted
upon, and may be disallowed when processing occurs.
400 Bad Request The server cannot or will not process the request due to something that is
perceived to be a client error (e.g., malformed request syntax, invalid
request message framing, or deceptive request routing).
401 Unauthorized Is used when authentication is required and has failed or has not yet
been provided.
403 Forbidden The request was valid, but the server is refusing action. The user might
not have the necessary permissions for a resource, or may need an
account of some sort.
404 Not Found The requested resource could not be found but may be available again in
the future. Subsequent requests by the client are permissible.
500 Internal Error The server encountered an unexpected condition which prevented it
from fulfilling the request.
502 Bad Gateway The server was acting as a gateway or proxy and received an invalid
response from the upstream server.
65
8.4. Connection properties
It is recommended to consider following characteristics for interaction with CPA System:
time delay is recommended due to the operation aspects of distributed service networking; in
case, if Content Provider receives http status 400 as a response for a requested MT, it is
recommended to redeliver a requested MT
Error dictionary contains description of all errors. Can be developed and supplemented.
ID Text Description
1000 Configuration error. Contact system Configuration error. Contact system support
support and/or manager from Kyivstar side
66
ID Text Description
1041 Get DLR request is not allowed Get DLR request is not allowed by CPA3 System
configuration. If you need Get DLR method,
contact system support and/or manager from
Kyivstar side
1042 Destination must contain only digits Provided destination contains illegal characters
1045 Messages not allowed from source: Provided source is restricted to send messages
source value
1051 Content have illegal characters: XXX Provided content contains illegal characters
1053 The subscriber does not have enough Subscriber’s balance is lower than tariff for the
money message that requires charging
1056 Message is not allowed with provided Content Provider’s message contains parameter
parameters that is not allowed with provided value
1059 All allowed free messages sent Request defined by rid has run out number of
free messages
1060 All allowed paid messages sent Request defined by rid has run out number of
paid messages
1061 Set callback number is not allowed It is not allowed to set callbackNum in MT
message for Content Provider
1063 Hashed destination is not allowed Provided hashed destination is not allowed
1064 Msisdn destination is not allowed Provided unhashed destination is not allowed
1067 Provided callback number is out of Content Provider’s message contains callbackNum
allowed range that has value out of allowed range
1068 Invalid request identifier (rid) format. Content Provider’s message contains rid that
Expected uuid has invalid format. Expected uuid
1069 Invalid parameter length: parameter Content Provider’s message contains parameter
name that has value out of max allowed range
1070 Message to idle subscriber is not Message to idle subscriber is not allowed
allowed
67
ID Text Description
1071 Invalid parameter value: parameter Content Provider’s message contains parameter
name that has invalid value according to current
Specification
1073 Service type is not supported Content Provider’s message contains serviceType
that does not match to allowed values
prescribed by current Specification
1074 Content type is not supported Content Provider’s message contains contentType
that does not match to allowed values
prescribed by current Specification
68
8.6.2. Degenerate case for transmitting error 196867 via DLR
ErrorId 196867 removed from the DLR structure, and replaced with a new status
since 19.11.2021.
CPA System has a defined structure for the Delivery report that prescribes 3 parameters:
• mid
• date
• status
However, there is a special case when CPA System transmits in the Delivery report an additional
parameter - errorId.
{
"mid": "904705f0-3c5e-4556-8339-81b7fd2e3d83",
"date": "1513296000000",
"status": "rejected",
"errorId": 196867
}
Provided DLR with errorId 196867 informs that MT message cannot be delivered to the subscriber
due to billing system error, most commonly due to subscriber’s low balance.
A new status - rejected_subscriber_billing_error will indicate the same as errorId 196867, that is -
content cannot be delivered to the subscriber due to billing system error, most commonly due to
subscriber’s low balance.
{
"mid": "904705f0-3c5e-4556-8339-81b7fd2e3d83",
"date": "1513296000000",
"status": "rejected_subscriber_billing_error"
}
69
8.6.3. Validations
First-level validation
On first-level validation CPA System processes following:
• source
• allowed lengths for parameters: serviceType, rid, source, bearerType, contentType
• destination
• hashed destination encoding
• ttl
All indicated checks are performed in a parallel, what leads to the following: if MT message
contains more than one invalid parameter among above-indicated, then error provided in response
can relate to any of them.
Example
MT message contains 3 invalid parameters:
{
"source": "",
"destination": "38067233076",
"serviceType": "falseeeeeeeeeeee",
"content": "test"
}
Processing of provided MT can be failed either with error 1018 'Invalid source address', or with
error 1069 'Invalid parameter length: %parameter%' for destination or serviceType.
CPA System checks that provided bearerType belongs to the allowed values, predefined by this
Specification.
Second-level validation
On second-level validation CPA System processes all necessary checks for each contentType within a
valid bearerType.
70
8.7. Emoji
CPA System provides an opportunity to transfer content that contains emoji.
Emoji - ideograms and smileys used in messages. Emoji exist in various genres, including facial
expressions, common objects, types of weather, animals, etc. They are much like emoticons, but
emoji are actual pictures instead of typographics.
Content Provider should take into consideration that display of emoji is impacted
by operating system and its version. Emoji are displayed in a different way on the
different OS, and the newer is OS version, the greater is percentage of correctly
displayed emoji.
In order to set an emoji to the sms/plain, it should be encoded to utf-16 escape sequence prepended
with \u in a big endian byte order, and should be placed to the content within other text.
1 grinning \ud83d\ude00
2 laughing \ud83d\ude06
3 joy \ud83d\ude02
4 wink \ud83d\ude09
6 vomiting \ud83e\udd2e
7 sneezing \ud83e\udd27
8 fear \ud83d\ude31
9 unicorn \ud83e\udd84
11 mushroom \ud83c\udf44
71
Emoji length for sms-traffic
If Content Provider sets (\ud83d\ude00) in a content, then emoji is encoded as a pair of 16-bit
characters in utf-16, and thus is counted as 2 16-bit characters toward a string length.
Example
"content": "Hello \ud83d\ude00"
Emoji
• utf-16 escape sequence prepended with \u in a big endian byte order (the same as for sms/plain)
1 smiley (smiley)
2 laugh (laugh)
3 happy (happy)
4 wink (wink)
5 inlove (inlove)
6 sick (sick)
7 angry (angry)
8 dead (dead)
9 spiderman (spiderman)
10 snowman (snowman)
11 cupcake (cupcake)
12 wine (wine)
13 rocket (rocket)
72
Text formatting
CPA System provides an opportunity to use text formatting for content transferred via Viber.
Text formatting can be applied by adding specific markdowns to any text string using the following
markdown guidelines.
1 bold One asterisk at each end of *This text will be bold* This text will be bold
the formatted string: *
2 italics One underscore at each end _This text will be in This text will be in
of the formatted string: _ italics_ italics
3 monospace Three backticks at each end ```This text will be in This text will be in
of the formatted string: ``` monospace``` monospace
4 strikethrough One tilde at each end of the ~This text will have a This text will have a
formatted string: ~ strikethrough~ strikethrough
73
Notes on markdown proper usage
use space after the last markdown symbol and before the next word
there must be a space after the last markdown symbol and before the next word for the
formatting to work
Compatibility
Only subscribers with Viber applications version 14.6 and above are able to see formatting in
messages; subscribers with older versions see the markdowns symbols instead.
Limitations
Formatted text is not available to use in templates. Requests for templates with markdowns will not
be approved.
If Content Provider sets (smiley) or uses any markdown symbols in a content, then each emoji
symbol and each markdown symbol is counted as a separate character toward a string length.
Example
"content": "Hello *world* (rocket)"
The overall character count of viber promo message should be 1000 characters,
or less, including emoji codes and markdowns symbols
74
8.8. Glossary
A glossary defines key terms and abbreviations relevant to Content Provider Access System for the
purpose of current document.
75
Message Identifier (mid)
a string used to identify a particular Mobile terminated content response.
Message identifiers are used by CPA System and Content Provider in all messages concerning a
particular Mobile terminated content response.
Mobile Originated Content Request (MO request; MO message; MO; content request)
message from subscriber to order informational services from Content Provider.
Mobile Terminated Content Response (MT response; MT message; MT; content response)
a message from Content Provider sent to CPA System to provide informational services (content)
to the subscriber.
76
Appendix A: Multi-channeling
Purpose and Scope
The current appendix describes a new service provided by CPA System - multi-channeling.
• service description
• processing flows
A full-featured service launch is scheduled for the end of this year (December of 2021).
77
A.1. Service overview
Multi-channeling - a service that enables Content Providers to send a generalized mt message
(multi-mt) with the included set of desired delivery channels and channels priority, in order to
deliver content to the subscriber via the most priority channel, and redeliver content via the next
channel if the first one is unavailable or expired.
• sms
• viber
78
A.1.1. Multi-mt message
Description
Multi-mt message - a message with an extended structure, that allows enclosing 2 messages for
different delivery channels and channels priority; multi-mt message is designed to be split into 2
different regular MT messages.
Multi-mt message allows including the following message types (bearerTypes) with their
corresponding content types (contentTypes):
• sms
• text/plain
• viber
• text/plain
• text/template
• image/plain
• text/img/button
• encloses messages designed for the following delivery channels: sms, viber
• enclosed messages must have different types: one - sms, another - viber
• encloses priority
Based on the above mentioned features, multi-mt can enclose the following message combinations:
79
Processing flow
• multi-mt message priority set as follows: the first delivery channel - sms, the second one - viber
• delivery via the sms-channel failed due to ttl expiration, delivery via the viber-channel succeed
80
Sequence diagram description
To transmit content from Content Provider to the subscriber, the below-mentioned interactions are
performed.
2. CPA System:
• converts message for the first delivery channel to a proper format according to the SMS
Center API
3. SMS Center:
4. CPA System:
5. SMS Center:
6. CPA System:
• converts message for the next delivery channel to a proper format according to the Viber
API
81
7. Viber:
8. CPA System:
9. Viber:
• responds with HTTP code 204 (No content) to CPA System to inform on multi-dlr message
acceptance
82
A.1.2. Multi-dlr message
Description
Multi-dlr message - a complex delivery report with an extended structure that encloses:
• messages delivery reports to the External content delivery systems (or the result of
processing if sending postponed due to priority, or skipped as delivery via the first channel was
successful and redelivery via the next channel is not needed)
• messages delivery reports to the subscriber (or the result of processing if sending skipped as
delivery via the first channel was successful and redelivery via the next channel is not needed)
The CPA System extracts 2 messages designed for the different delivery channels from the multi-mt
message, and tries to deliver the message via the most priority channel:
• if delivery succeeds, then CPA System skips delivery via the next channel
• if delivery failed/expired, then CPA System tries to redeliver the next message via the next
delivery channel.
As the result, there are several delivery results (or processing results if sending skipped).
Details
Multi-dlr message can contain from 1 to N delivery reports to the subscriber for viber-
traffic due to the following reasons:
• Viber provides the delivery report for every subscriber’s device (if the message was
delivered to the mobile application and the desktop application, that will result in 2
delivery reports with the status delivered)
• Viber can provide several delivery reports for one subscriber’s device: delivered as
the first one and seen as the next one
• CPA System generates an intermediate delivery report if the template message did not
match any Content Provider’s available templates (more details about template
messages are provided in the section Template)
83
Summarizing the above, the multi-dlr message contains:
How to match delivery report to the External content delivery systems with the delivery
report to the subscriber for one message
The delivery report to the External content delivery system, and the delivery report to the
subscriber for the same message can be identified by the same mid parameter value.
84
Methods/ways for multi-dlr transmitting
The ways for transmitting multi-dlr are designed very close to the ways for
transmitting a regular delivery report.
• regular transmitting - a basic/regular way when CPA System sends multi-dlr to Content
Provider as soon as delivery via all channels completed; CPA System uses POST method to send
multi-dlr to Content Provider
The detailed syntax for both methods is provided in the following sections:
• Receive multi-dlr
• Get multi-dlr
The methods usage and restrictions for multi-dlr are designed the same way as
for a regular delivery report. More details are provided in the section Methods
usage and restrictions
85
Transmitting multi-dlr on a regular basis
A standard flow for transmitting multi-dlr to Content Provider as soon as delivery via all channels
completed is depicted by the following sequence diagram.
Figure 8. Sequence diagram for transmitting multi-dlr to Content Provider on a regular basis
• multi-mt message priority set as follows: the first delivery channel - sms, the second one - viber
• delivery via the sms-channel failed due to ttl expiration, delivery via the viber-channel succeed
• process for transmitting MT message to SMS Center omitted to avoid the diagram overhead
86
Sequence diagram description
To transmit multi-dlr from CPA System to Content Provider, the below-mentioned interactions are
performed.
1. SMS Center:
2. CPA System:
3. Viber:
4. CPA System:
• generates multi-dlr
5. Content Provider:
• responds with HTTP code 204 (No content) to CPA System to inform on multi-dlr message
acceptance
6. CPA System:
87
Transmitting multi-dlr by request
2. CPA System:
• responds with HTTP code 200 (OK) and body containing a multi-dlr message
In case if multi-dlr is not found in the database, then CPA System responds to Content Provider with
HTTP code 404 (Not Found) and the error message 'Resource not found'.
In case if access to GET DLR method is restricted, then CPA System responds to Content Provider
with HTTP code 403 (Forbidden) and the error message 'Get DLR request is not allowed'.
88
A.2. Syntax
A.2.1. Send multi-mt
Resource
http://{environment}/api/contents
Method
POST
POST http://{environment}/api/contents
89
Success HTTP response example
{
"rid": "904705f0-3c5e-4556-81b7fd2e3d83"
}
{
"rid": "904705f0-3c5e-4556-81b7fd2e3d83",
"errorId": 2000,
"errorMsg": "Parameter not provided: `destination`"
}
90
# Name Type Required Description Ref
91
A.2.2. Receive multi-dlr
Resource example
http://{environment}/api/reports
Method
POST
{
"contents": [
{
"date": 1628179532080,
"mid": "6badca00-2e05-42df-b7f1-4a5642e38af8",
"state": "ACCEPTED"
},
{
"date": 1628179562228,
"mid": "d7c33333-749f-4027-a7bc-9ee66f48cad7",
"state": "ACCEPTED"
}
],
"reports": [
{
"date": 1628179562238,
"mid": "6badca00-2e05-42df-b7f1-4a5642e38af8",
"state": "EXPIRED"
},
{
"date": 1628180196644,
"mid": "d7c33333-749f-4027-a7bc-9ee66f48cad7",
"state": "DELIVERED"
}
],
"rid": "35dd7a57-75c6-4020-97a7-99beba3d9b1c"
}
92
Table 15. MULTI-DLR parameters description
93
A.2.3. Get multi-dlr
Resource
http://{environment}/api/reports/{rid}
Method
GET
http://{environment}/api/reports/35dd7a57-75c6-4020-97a7-99beba3d9b1c
{
"contents": [
{
"date": 1628179532080,
"mid": "6badca00-2e05-42df-b7f1-4a5642e38af8",
"state": "ACCEPTED"
},
{
"date": 1628179562228,
"mid": "d7c33333-749f-4027-a7bc-9ee66f48cad7",
"state": "ACCEPTED"
}
],
"reports": [
{
"date": 1628179562238,
"mid": "6badca00-2e05-42df-b7f1-4a5642e38af8",
"state": "EXPIRED"
},
{
"date": 1628180196644,
"mid": "d7c33333-749f-4027-a7bc-9ee66f48cad7",
"state": "DELIVERED"
}
],
"rid": "35dd7a57-75c6-4020-97a7-99beba3d9b1c"
}
94
Error HTTP response example | MULTI-DLR not found
{
"errorId": 1040,
"errorMsg": "Resource not found",
"rid": "35dd7a57-75c6-4020-97a7-99beba3d9b1c"
}
95
Table 21. Reports parameters description
96
A.3. Headers definition
The headers of multi-mt and multi-dlr messages repeat the headers of regular MT
messages and Delivery reports. The detailed syntax for headers is provided in the
section Headers definition.
1. common parameters - parameters used mostly for all message types (multi-mt and multi-dlr),
they include:
97
A.4.1. Common parameters
rid
Definition
Multi-mt message identifier - a string used to identify a particular multi-mt message.
Features
1. Parameter format is UUID.
3. Parameter is generated by CPA System and sent back to Content Provider in the acceptance
response.
errorId
Definition
Parameter defines error identifier.
Features
1. Parameter has no default value.
errorMsg
Definition
Parameter defines error message.
Features
1. Parameter has no default value.
98
A.4.2. Multi-mt parameters
The parameters of multi-mt message are designed very close to the parameters of a regular MT
message and in most cases repeat them completely.
destination
Definition
Parameter defines subscriber’s msisdn (phone number)
Features
1. Parameter has no default value.
2. Parameter has an allowed length limited by the following range: 12-15 digits.
priority
Definition
Parameter defines channels priority - which channel should be used as the first one, and which one
as the next.
Features
1. Parameter type is array of strings
2. Strings to be set to the array can take the following values: sms, viber
example description
"priority": ["sms","viber"] the first delivery attempt will be made via sms-channel, if it
failed, the next delivery attempt will be made via viber-channel
"priority": ["viber","sms"] the first delivery attempt will be made via viber-channel, if it
failed, the next delivery attempt will be made via sms-channel
99
content
Definition
Parameter defines an array that encloses two objects. Each object represents a stand-alone message
designed for the definite channel.
Features
1. Parameter type is array of objects
2. Enclosed object is designed very close to a regular MT message (MT message syntax provided in
section Send MT)
• source
• bearerType
• contentType
• serviceType
• callbackNum
• tag
• text
• img
• caption
• action
source
Definition
Parameter defines Content Provider’s short number, or alpha name.
Features
1. Parameter has no default value.
3. Parameter value to be set has some limitations for viber-traffic. Value to be set should be equal
to an identifier issued by Viber, and should be provided by a manager.
bearerType
Definition
Parameter defines message type.
Features
1. Parameter has no default value.
• sms
• viber
100
contentType
Definition
Parameter defines the type of content that is being sent.
Features
1. Parameter has no default value.
• text/plain
• text/template
• image/plain
• text/img/button
• text/plain
• text/template
• image/plain
• text/img/button
serviceType
Definition
Parameter defines the type of payment for the message.
Features
1. Parameter has no default value.
callbackNum
Definition
Parameter defines Content Provider’s additional callback number or identifier used for billing,
charging purposes. Most commonly, the parameter defines Content Provider’s billing identifier.
Parameter can be used only by preliminary agreement.
Features
1. Parameter has no default value.
4. Parameter value to be set has some limitations for viber-traffic. Value to be set should be equal
to an identifier issued by Kyivstar, and should be provided by a manager.
101
tag
Definition
Parameter defines a specific mark to indicate any kind of valuable for Content Provider
information. Can be used for reports, analytics etc. on Content Provider’s side.
Features
1. Parameter has a max allowed value length: 100 symbols.
text
Definition
Parameter defines content represented as a text.
Features
1. Parameter has no default value.
• "contentType": "text/plain"
• "contentType": "text/template"
• "contentType": "text/img/button"
4. Parameter has a max allowed value length that depends on bearerType, contentType and
encoding.
Content on CPA System side and on SMS Center side is processed in a bit different ways.
CPA System does not split text into single parts, but it validates text according to the max
recommended length, and encodes it according to the provided characters:
• if text contains characters that belong only to the basic set of '7-bit default alphabet'
(SMSCDefaultAlphabet), then the message is encoded to '7-bit default alphabet';
for this encoding recommended length is <= 1000 characters
• if text contains at least one character out of '7-bit default alphabet', then the message is encoded
to UCS2(ISO/IEC-10646);
for this encoding recommended length is <= 499 characters
102
SMS Centre splits text into single message parts (for transport purposes), which are concatenated
into one sms message on the subscriber’s device side. A single message part length depends on
encoding:
Hence, text is divided into single parts when it’s longer than 160 symbols for '7-bit default alphabet'
encoding, or longer than 70 symbols for UCS2 encoding until it is not larger than the max length.
img
Definition
Parameter defines a web based link to the image.
Features
1. Image recommended resolution is not less than 400x400 pixels.
• "contentType": "text/img/button"
• "contentType": "image/plain"
3. Parameter should not be used for any other viber message types.
Definition
Parameters caption and action must be used together as they both represent the button:
• action - a link to a necessary resource, redirection to which is executed within button pressing
Features
1. caption max allowed value length: 30 symbols.
• "contentType": "text/img/button"
3. Parameter should not be used for any other viber message types.
103
ttl
Definition
The parameter defines message time to live during which CPA System performs delivery via the
related delivery channel.
If the result of the delivery attempt is unknown (CPA System did not receive a successful delivery
status from the External content delivery systems - SMS Center or Viber during the ttl), then the
message is assumed as expired and CPA System proceeds to the next delivery channel.
Parameter is also passed to the External content delivery system, where it defines message time to
live in case if it is not delivered to the subscriber from the first time.
Features
1. Parameter value should be set in seconds.
2. Parameter has an allowed range limited by the following min-max values: 30-600 seconds.
104
A.4.3. Multi-dlr parameters
contents
Definition
The parameter defines an array that encloses 2 objects.
Each object represents either a message delivery report to the External content delivery system,
or the result of processing if sending is postponed due to priority or skipped as delivery via the first
channel was successful and redelivery via the next channel is not needed.
Under message is meant a separate MT message extracted from the multi-mt message.
Features
1. Parameter type is array of objects
2. Enclosed object is designed very close to a regular delivery report (DLR message syntax
provided in section Receive DLR)
• date
• mid
• state
date
Definition
The parameter defines either time and date when the message was sent to the External content
delivery system, or defines time and date, when the message processing was completed without
sending to the External content delivery system (skipped) as delivery via the first channel was
successful and redelivery via the next channel is not needed.
Format
Parameter format is set as TIMESTAMP (UTC) in milliseconds.
Example
Features
1. Parameter has no default value.
105
mid
Definition
Message identifier - a string used to identify a separate message extracted from the multi-mt
message.
Format
UUID.
Features
1. Parameter has no default value.
2. Parameter mid enclosed to contents always equals to the mid enclosed to reports for the same
message to identify delivery status to the External content delivery system and delivery
status to the subscriber for the message.
state
Definition
The parameter defines either the result of delivery the message to the External content delivery
system or defines the result of processing if the message was skipped as delivery via the first
channel was successful and redelivery via the next channel is not needed.
Features
1. Parameter has no default value.
• ACCEPTED - the message was accepted on the External content delivery system side; delivery
attempts to the subscriber will be made
• SKIP_PROCESS - the message processing was skipped as delivery via another channel was
performed successfully and redelivery is not needed
• WAIT - intermediate status - the message processing is not started yet as delivery via another
channel is being performed and the result from another channel is not received yet
(message awaits processing)
• REJECTED - the message was rejected on the External content delivery system side due to an
internal business logic; no delivery attempts to the subscriber will be made
• UNDELIVERABLE - the message was not sent to the External content delivery system due to an
internal system error; no delivery attempts to the subscriber will be made
106
reports
Definition
The parameter defines an array that encloses several objects.
Each object represents either a message delivery report to the subscriber, or the result of
processing if sending skipped as delivery via the first channel was successful and redelivery via the
next channel is not needed. Under message is meant a separate MT message extracted from the
multi-mt message.
Features
1. Parameter type is array of objects
2. Enclosed object is designed very close to a regular delivery report (DLR message syntax
provided in section Receive DLR)
• date
• mid
• state
date
Definition
The parameter defines either time and date when the message was sent to the subscriber, or
defines time and date, when the message processing was completed without sending (skipped) as
delivery via the first channel was successful and redelivery via the next channel is not needed.
Format
Parameter format is set as TIMESTAMP (UTC) in milliseconds.
Example
Features
1. Parameter has no default value.
107
mid
Definition
Message identifier - a string used to identify a separate message extracted from the multi-mt
message.
Format
UUID.
Features
1. Parameter has no default value.
2. Parameter mid enclosed to reports always equals to the mid enclosed to contents for the same
message to identify delivery status to the External content delivery system and delivery
status to the subscriber for the message.
state
Definition
The parameter defines either the result of delivery the message to the subscriber or defines the
result of processing if the message was skipped as delivery via the first channel was successful and
redelivery via the next channel is not needed.
Features
1. Parameter has no default value.
2. Parameter’s values vary depending on the External content delivery system (channel) via which
the message is being delivered to the subscriber (SMS Centre, Viber).
• the delivery process was skipped as the message sending process failed (the External
content delivery system rejected the message)
sms-traffic
• DELIVERED - message is delivered to the destination successfully
• EXPIRED - message is not delivered to the destination due to the time to live expiration
• REJECTED - message was rejected on SMS Centre side due to internal business logic; no delivery
attempts were made
• REJECTED_SPAM - message was rejected on SMS Centre side as provided content is recognized as
spam; no delivery attempts were made
108
• UNDELIVERABLE - message has encountered a delivery error and is deemed permanently
undeliverable; no further delivery attempts will be made; certain network or SMS Centre
internal errors result in the permanent non-delivery of a message; examples of such errors can
be: an unknown subscriber, or network error that indicates that the given destination mobile
could not support SMS, or service of receiving SMS is disabled
viber-traffic
• ACCEPTED_UNMATCHED - message has been accepted on Viber side and delivery attempts will be
made, but sent template message did not match any Content Provider’s available templates;
additional intermediate status applicable only to template messages
(as soon as the message is delivered to the destination successfully, accepted_unmatched status is
being updated to delivered)
• BLACKLIST - message was rejected on Viber side due to subscriber reason, more specifically,
because the subscriber unsubscribed from the specific sender or from receiving viber business
messages completely
• DECLINED - message was rejected on Viber side due to subscriber reason, more specifically,
because the subscriber is not registered on viber; has no viber application
• EXPIRED - message is not delivered to the destination due to the time to live expiration
• REJECTED - message was rejected on Viber side due to internal business logic, e.g. invalid request
syntax, invalid client configuration, billing errors, timeout; no delivery attempts were made
• SEEN - subscriber opened Viber application and entered the conversation with the specific
message
109
A.5. Examples
A.5.1. sms (text/plain) + viber (text/plain)
MULTI-MT example for the message combination: sms (text/plain) + viber (text/plain)
POST http://{environment}/api/contents
{
"destination": "380672330769",
"priority" : ["sms","viber"],
"content":[
{
"source": "Kyivstar",
"bearerType": "sms",
"contentType": "text/plain",
"serviceType": "false",
"callbackNum": "KS_000000",
"text": "sms text message",
"ttl": 30
},
{
"source": "16034",
"bearerType": "viber",
"contentType": "text/plain",
"serviceType": "false",
"callbackNum": "KS_000000",
"text": "viber text message",
"ttl": 30
}
]
}
110
A.5.2. sms (text/plain) + viber (text/template)
MULTI-MT example for the message combination: sms (text/plain) + viber (text/template)
POST http://{environment}/api/contents
{
"destination": "380672330769",
"priority" : ["sms","viber"],
"content":[
{
"source": "Kyivstar",
"bearerType": "sms",
"contentType": "text/plain",
"serviceType": "false",
"callbackNum": "KS_000000",
"text": "sms text message",
"ttl": 30
},
{
"source": "16034",
"bearerType": "viber",
"contentType": "text/template",
"serviceType": "false",
"callbackNum": "KS_000000",
"text": "viber template message",
"ttl": 30
}
]
}
111
A.5.3. sms (text/plain) + viber (image/plain)
MULTI-MT example for the message combination: sms (text/plain) + viber (image/plain)
POST http://{environment}/api/contents
{
"destination": "380672330769",
"priority" : ["sms","viber"],
"content":[
{
"source": "Kyivstar",
"bearerType": "sms",
"contentType": "text/plain",
"serviceType": "false",
"callbackNum": "KS_000000",
"text": "sms text message",
"ttl": 30
},
{
"source": "16034",
"bearerType": "viber",
"contentType": "image/plain",
"serviceType": "false",
"callbackNum": "KS_000000",
"img": "http://img.png",
"ttl": 30
}
]
}
112
A.5.4. sms (text/plain) + viber (text/img/button)
MULTI-MT example for the message combination: sms (text/plain) + viber (text/img/button)
POST http://{environment}/api/contents
{
"destination": "380672330769",
"priority" : ["sms","viber"],
"content":[
{
"source": "Kyivstar",
"bearerType": "sms",
"contentType": "text/plain",
"serviceType": "false",
"callbackNum": "KS_000000",
"text": "sms text message",
"ttl": 30
},
{
"source": "16034",
"bearerType": "viber",
"contentType": "itext/img/button",
"serviceType": "false",
"callbackNum": "KS_000000",
"text": "viber text message",
"img": "http://img.png",
"caption": "caption text",
"action": "http://google.com",
"ttl": 30
}
]
}
113
A.6. Error dictionary
Error dictionary contains description of all errors. Can be developed and supplemented.
ID Text Description
2000 Parameter not provided: parameter Content Provider’s multi-mt message is missing a
name mandatory parameter
2001 Invalid parameter length: parameter Content Provider’s multi-mt message contains a
name parameter that has value length out of the allowed
range
2002 Invalid parameter value: parameter Content Provider’s multi-mt message contains a
name parameter that has an invalid value according to
the prescribed possible values
2003 parameter name: parameter is not Content Provider’s multi-mt message contains a
allowed for provided message type parameter that is not allowed according to
(bearerType and contentType) provided message type and content type
2004 Invalid value for parameter Content Provider’s multi-mt message contains a
'destination': provided value parameter destination with a plain value, but the
provided value contains symbols except for digits.
Or, Content Provider’s multi-mt message contains
a parameter destination with a hashed value, but
the provided value contains additional symbols
except for allowed ones: 0-9a-fA-F
2005 Missing value for parameter 'source' Content Provider’s multi-mt message contains no
for priority: value mandatory parameter source or source is empty
2006 Wrong priority count: only 2 message Content Provider’s multi-mt message contains a
priorities supported parameter priority that has an unsupported
number of values
2007 Unsupported value for parameter Content Provider’s multi-mt message contains a
'priority': value parameter priority that has an invalid value
according to the prescribed possible values
2008 Wrong priority order: 'sms, viber' or Content Provider’s multi-mt message contains a
'viber, sms' are supported parameter priority that has an invalid order of
values
2009 Unknown bearer type: provided value Content Provider’s multi-mt message contains a
parameter bearerType but the provided value is
not allowed according to the prescribed possible
values
2010 Missing or unsupported value for Content Provider’s multi-mt message contains no
parameter 'bearerType' for priority: mandatory parameter bearerType, or bearerType is
value empty, or the provided value is not allowed
according to the prescribed possible values
114
ID Text Description
2012 Unsupported value for parameter Content Provider’s multi-mt message contains a
'serviceType': provided value parameter serviceType but the provided value is
not allowed according to the prescribed possible
values
2013 Missing value for parameter Content Provider’s multi-mt message contains no
'contentType' for priority: value mandatory parameter contentType
2014 Unsupported value for parameter Content Provider’s multi-mt message contains a
'contentType': provided value parameter contentType but the provided value is
empty, or not allowed according to the prescribed
possible values
2020 Configuration error. Contact system Configuration error. Contact system support
support and/or manager from Kyivstar side
2021 Set callback number is not allowed for Content Provider’s multi-mt message contains a
provided viber/sms message type parameter callbackNum that is not allowed
according to the provider’s configuration
2022 Provided callback number: \"provided Content Provider’s multi-mt message contains a
value\" - is out of allowed range for parameter callbackNum but the provided value is
provided viber/sms message type not allowed according to the provider’s
configuration
2100 Message is not allowed with provided Content Provider’s multi-mt message contains a
parameters parameter that is not allowed with the provided
value
2150 Provider messages pool limit reached, Content Provider’s message pool limit reached
request rejected, pool size: value
2300 Channel returns error id: errorId, msg: Internal CPA System error
\"errorMsg\" - message rejected
115
A.7. Release notes
Available Functionality:
The full-service functionality is available.
116