Notifications about Catapush messages can be received via HTTP callbacks. Every callback has the User-Agent header set to Catapush.
Callbacks for outgoing messages can be configured to be sent in three forms:
GET with a query string.
POST with an application/x-www-form-urlencoded body.
POST with an application/json body.
For each outgoing message lifecycle events Catapush sends a callback request with the information about the specific event, encoded in the query string or the request body as a set of key-value pairs described in the following table.
Key name |
Value type |
Constraints |
Description |
type |
String |
Mandatory |
Always set to MessageStatus |
timestamp |
String (ISO-8601 UTC) |
Mandatory |
Date and time of the message event. |
applicationId |
String |
Mandatory |
Identifies the application that sent the message. |
messageId |
String (UUID) |
Mandatory |
Identifies the message in the context of Catapush. |
recipient |
String |
Mandatory |
Identifies the recipient of the message. |
status |
String |
Mandatory |
Describes the current status of the message. |
messageRef |
String |
Optional |
External, application specific, identifier for the message. |
recipientRef |
String |
Optional |
External, application specific, identifier for the recipient of the message. |
fallbackRef |
String |
Optional |
The mobile number of the recipient for the fallback message. |
The status key specifies one of the following possible message lifecycle events.
Notification status value |
Description |
enqueued |
The message has been sent enqueued in the Catapush system, but it may have not yet been delivered. |
delivered |
The message has been successfully delivered to the recipient’s device, but it may have not yet been read by the recipient. |
read |
The message has been read by the recipient. |
expired |
The message was sent, but it has not been delivered before the specified expire time to the recipient’s device. |
fallbackOnUndelivered |
A fallback message is necessary, because the catapush message was not delivered before the specified fallback time to the recipient’s device. |
fallbackOnUnread |
A fallback message is necessary, because the catapush message was delivered to the recipient’s device but not read before the specified fallback time. |
fallbackSent |
A fallback message (SMS) has been sent to the recipient’s mobile number, but it may not have been delivered yet. |
fallbackDelivered |
A fallback message (SMS) has been delivered to the recipient’s mobile number. |
fallbackExpired |
The SMS carrier could not deliver the fallback message in time. |
fallbackInvalidNumber |
The SMS carrier could not deliver the fallback message because the recipient’s mobile number is invalid. |
fallbackPhoneError |
The SMS carrier could not deliver the fallback message because the recipient’s mobile phone cannot receive SMS (it usually happens if the phone SMS memory is full). |
fallbackOperatorError |
The SMS carrier is not currently available to send messages. |
iOSError |
Catapush tried to send an Apple push notification to the recipient’s device but there was an error. It usually happens when there’s a wrong configuration of the Apple push integration. |
iOSErrorInvalidToken |
Catapush can’t send an Apple push notification to the recipient’s device because the specified device push token in invalid. It usually happens if the user uninstalls the app. |
AndroidError |
Catapush tried to send a Google push notification to the recipient’s device but there was an error. It usually happens when there’s a wrong configuration of the Google push integration. |
AndroidErrorInvalidToken |
Catapush can’t send a Google push notification to the recipient’s device because the specified device push token in invalid. It usually happens if the user uninstalls the app. |
PushSent |
A push message has been successfully sent to the recipient’s device. |
IdentifierNotFound |
The message was not delivered because the recipient does not exists |