Webhooks
CAMS follows webhook best security practice to ensure the confidentiality, integrity, and availability of the messages.
HTTPS Protocol
All webhook URLs submitted by the client must use the https
protocol.
Whitelisted IP Addresses
CAMS uses static private IP addresses for it's webhooks so that client systems can use a whitelist to ignore traffic from other sources, this will also eliminate requests originating from other IP addresses.
Webhook Authentication
Webhooks are sent with an OAuth2.0 access token which can be verified using a pre-shared public key.
Unique ID
All unique messages will have a unique identifier to prevent replay attacks.
Message Order
Sometimes, due to network conditions, messages may arrive out of order. This can cause confusion in downstream systems resulting in stale data.
To remedy this, messages are transmitted with a messageTime
field indicating the time the event occurred. This time can then be used by downstream systems, so that any messages received afterwards and with a time before that messageTime
can be ignored.
Retry Policy
Sometimes a downstream client system is down when a critical message is sent. To account for this, all messages are sent synchronously over HTTPS, and should the response code be something other than 200
or should the request otherwise fail, the message will be sent again after a delay computed using an exponential backoff. An example is below:
Retry | Retry Delay (seconds) |
---|---|
1 | 5 |
2 | 25 |
3 | 125 |
4 | 625 |
5 | 3125 |
Message Failure
Failure of the message occurs when all retries have been exhausted and the message has yet to be acknowledged. When this happens the message will be marked as FAILED
.
Retrieve Outstanding Messages
At any time a downstream client system can submit a request for all failed or otherwise unacknowledged messages. It is generally a good practice to do this from the downstream system any time it recovers from a failure, or otherwise comes back online.
Last updated