Monthly Statement Generation
The Monthly Statement Generation API notifies the subscriber whenever a new monthly statement is generated for one or more accounts in the XD Ledger.
The subscriber must return a 200 response to confirm successful delivery of the callback notification. Any response other than 200 is treated as a failure, and the system will retry sending the notification according to the configured retry settings until a 200 response is received. If no 200 response is received after the configured attempts, the subscription for this event will be moved to a disabled state. The subscription can be re-enabled later if required.
Example
Request Parameters
| Parameter | Description |
|---|---|
| source Mandatory | String Where the event originated. Constant value: "PL". |
| eventId Mandatory | String Unique identifier of this webhook delivery. Helpful for idempotency — you should ignore duplicates with the same eventId. |
| eventName Mandatory | String The type of event being delivered. Always "MONTHLY STATEMENT GENERATION". |
| groupId Mandatory | String Identifier(s) used to logically group webhook events. Useful for tracing related events. |
| Payload Mandatory | Object |
| payload.accountIDs | String List of account IDs included in this monthly statement batch. |
| payload.batch_id | String Unique identifier for the generated statement batch. Useful for reconciliation or fetching statement data. |
| payload.pageNumber | Integer The current page number in case the statement data is paginated. |
| payload.totalPages | Integer Total number of pages in the batch. |
| payload.timestamp | String ISO 8601 timestamp (with timezone) when the statement was generated. |
| signature Mandatory | String Signature for validating that the webhook originated from NetXD. Always verify before processing. |
Body
{
"source": "PL",
"eventId": "EVT24681357",
"eventName": "MONTHLY STATEMENT GENERATION",
"groupId": [
"900615385515312"
],
"payload": {
"accountIDs": [
"8146030",
"8146033",
"8146038",
"8146041",
"8146044",
"8146047",
"8146051",
"8146056",
"8146061",
"8146068"
],
"batch_id": "e560dc1769e74a66b024462d107852aa",
"pageNumber": 1,
"totalPages": 1,
"timestamp": "2025-09-03T19:32:20.323256091+05:30"
},
"signature": "{{Signature}}"
}
Response: 200
{
//The response for this callback notification from the subscriber should be 200 for a successfull delivery of notification. If the response is other than 200, it is meant as failed status of notification. Hence, the notification is sent for ‘n’ number of times till getting the response as 200. If still the response is not 200, the subscription for this event will be cancelled.
}