Webhook notifications
when an event is triggered corresponding to one of the webhook you subscribe to, a notification will be send to the merchant url provided during the webhook creation.
SlimPay will send a Webhook notification in UTF-8 encoded notification message using HTTPS POST to the specified webhook URL to inform the merchant about updates he has subscribe to.
SlimPay will make a secure connection with your server before sending your webhook notification. You must handle HTTPS with a valid server certificate. The security is supported using TLS version 1.2 or 1.3. HTTP is not supported in test or live mode.
The request will be as follows:
POST follow(https://merchantURL) HTTP/1.1
header:
slimpay-signature: t=1697636543411,v1=cab163c1a3a51511ea5b59b2a0cee78e5f961914603df00181f0269a2a0e1cf3
Content-Type: application/json
{
"Id":"ea8e7c26-3074-11ee-bd43-000000000000",
"version":"1",
"createdAt":1701430746769,
"eventType":"order_slimcollectpay.update",
"data":{
"uuid":"c9ebea6a-903d-11ee-8312-000000000000",
"status":"COMPLETED",
"code":20005,
"statusMessage":"The order is completed"
}
}
We expect to receive a quick notification response, within 10 seconds to verify/store/acknowledge the webhook notification with HTTP 200 response.
The below lists all the headers that you will receive:
id
The value for the prefix t corresponds to the timestamp (unix epoch time), and v1 corresponds to the signature., Read-Only.
The below lists all of the parameters that you will receive:
id
UUID of the notification. Constraints: 36 characters, Read-Only.
version
Version of the data structure of the notification. The current version is 1. Constraints: Integer, Read-Only.
createdAt
The date the notification was created. Constraints: Epoch time, i.e. 1701430746769, Read-Only.
eventType
The event type indicates the type of the notification. Constraints: one of [order_slimcollectpay.update, order_slimcollectverify.update, order_signDocument.update, order_signMandate.update, mandate_slimcollectpay.update, mandate_slimcollectverify.update, payment_slimcollectpay.update], Read-Only.
id
UUID if the notification
data
A set of additional information linked to the nature of the eventype.
data » uuid
UUID of the order/mandate/payment depending on the eventType. Constraints: 36 characters, Read-Only.
data » status
Status associated to the order/mandate/payment depending on the eventType. Constraints: Text, 50 characters maximum, Read-Only.
data » code
Code associated to the order/mandate/payment depending on the eventType. Constraints: Integrer, Read-Only.
data » statusMessage
text associated to the order/mandate/payment depending on the eventType. Constraints: Text, Read-Only.
The corresponding values between the eventType, the status, code and message is provided in the table below:
EventType | Status | Merchant Code | StatusMessage, english |
---|---|---|---|
payment_slimcollectpay.update | PROCESSING | 10001 | The payment is initiated by the subscriber |
NOT_PROCESSED | 10002 | A technical errror occured {: + Error Msg from Aggregator?} | |
NOT_PROCESSED | 10003 | The payment is cancelled by the subscriber {: + Msg from Aggregator?} | |
NOT_PROCESSED | 10004 | Warning - The payment is not received after 4 days | |
NOT_PROCESSED | 10005 | Your link has expired | |
PROCESSED | 10006 | Your payment is available in your bank account | |
REFUND | 10007 | A refund occurred | |
order_slimcollectpay.update | ABORTED_BYSERVER | 20001 | A technical errror occured {: + Error Msg from Aggregator?} |
ABORTED_BYCLIENT | 20002 | The order is cancelled by the subscriber {: + Msg from Aggregator?} | |
ABORTED_BYSERVER | 20003 | Your link has expired | |
ABORTED_BYSERVER | 20004 | Warning - A technical errror occured, payment not received | |
COMPLETED | 20005 | The order is completed | |
order_slimcollectverify.update | ABORTED_BYSERVER | 20001 | A technical errror occured {: + Error Msg from Aggregator?} |
ABORTED_BYCLIENT | 20002 | The order is cancelled by the subscriber {: + Msg from Aggregator?} | |
COMPLETED | 20005 | The order is completed | |
ABORTED_BYSERVER | 20003 | Your link has expired | |
order_signDocument.update | ABORTED_BYSERVER | 20001 | A technical errror occured {: + Error Msg from Aggregator?} |
ABORTED_BYCLIENT | 20002 | The order is cancelled by the subscriber {: + Msg from Aggregator?} | |
COMPLETED | 20005 | The order is completed | |
order_signMandate.update | ABORTED_BYSERVER | 20001 | A technical errror occured {: + Error Msg from Aggregator?} |
ABORTED_BYCLIENT | 20002 | The order is cancelled by the subscriber {: + Msg from Aggregator?} | |
COMPLETED | 20005 | The order is completed | |
mandate_slimcollectpay.update | MANDATE_ACTIVE | 30001 | The mandate is approved |
MANDATE_REJECTED | 30002 | The subscriber did not provide its consent. Mandate is rejected | |
MANDATE_EXPIRED | 30003 | The link and mandate have expired | |
MANDATE_EXPIRED | 30004 | Warning - A technical errror occured, mandate expired | |
MANDATE_ACTIVE | 30005 | The mandate becomes active after receiving payment. | |
MANDATE_REJECTED | 30006 | The mandate is rejected due to no action from the subscriber. | |
MANDATE_REVOKED | 30007 | The mandate is revoked. | |
MANDATE_AMENDED | 30008 | The mandate is amended. | |
mandate_slimcollectverify.update | MANDATE_ACTIVE | 30001 | The mandate is approved |
MANDATE_REJECTED | 30002 | The subscriber did not provide its consent. Mandate is rejected | |
MANDATE_EXPIRED | 30003 | The link and mandate have expired | |
MANDATE_REVOKED | 30007 | The mandate is revoked. | |
MANDATE_AMENDED | 30008 | The mandate is amended. |
- Merchant should be able to manage duplicate events: it may be possible that merchant received duplicates events. Your application should be idempotent.
- It is also possible that a notification is not sent in case of technical issues. The merchant should implement a fail-safe.
- The notifications are asynchronous so the order is not fixed.