Omnichannel API

Delivery Report

Delivery reports are JSON encoded HTTP POST messages sent from the following IPs:

  • 5.9.48.210
  • 5.9.235.252
  • 213.239.195.15

The provided Delivery report URL (drl_url) endpoint should respond with a HTTP status code within the range 200-399, otherwise the DRL will be considered undelivered.

Request body (JSON encoded)

KeyTypeValue
omnimessage_idstringUnique identifier for the Omnimessage
message_id
string
Unique identifier for the Message
sender
string Sender used for this message
status
string
Machine-readable status code

ACKOperator has accepted the message for delivery
DELIVRDThe message has been successfully delivered to the handset
UNDELIVUnable to deliver message to the handset
FAILEDFailed to deliver message to the handset
UNKNOWNUnknown status has been reported by the operator
ACCEPTD
Message has been accepted for the delivery and is in the operators's delivery queue
REJECTDThe message was rejected by the operator
EXPIREDDelivery of the message expired
NACK
The message delivery has been rejected
error
string
Human-readable error message
errintegerMachine-readable error code

0
No error
1
Delivery faiture
2
Sending message expired
3
Invalid number
4
Error crediting account
5
Invalid number format
6Too many identical messages sent
7
Sender name not allowed
8
Operator blacklisted
9
Unroutable
999
General temporary error

Successful DLR example

{
    "status": "DELIVRD",
    "sender": "MySender",
    "err": 0,
    "message_id": "3e28ec48-d620-4191-a96e-d91ba8ecc949",
    "to": "+3725555555",
    "channel": "viber",
    "error": null,
    "omnimessage_id": "d7248cda-6c1a-4436-acf5-aaf249bb67d3"
}
                    

Failed DLR example

{
    "status": "NACK",
    "sender": "MySender",
    "err": 7,
    "message_id": "4e07b416-98df-4c93-87a4-88ede67cfc0e",
    "to": "+3725555555",
    "channel": "viber",
    "error": "Sender name not allowed",
    "omnimessage_id": "a372bb8a-09a2-4c85-8d46-c3b741e068aa"
}