Jalebi - Release Notes - Release/25.03
**Published On **: 12 May 2025
**Stage Deployment On: **12 May 2025
**Production Go-Live On: **The release date will be communicated by account manager.
The following APIs are impacted by this release. Changes may include new parameters, updated logic, or behavior enhancements. Please refer to the corresponding API documentation links provided alongside each entry for complete details.
API Group | API Name | Existing Endpoint | New Endpoint | Current Payload | New Payload | Current Response | New Response |
---|---|---|---|---|---|---|---|
Loan | Pre Closure Loan | v1/loans/{loanId}/transactions?command=foreclosure | v1/loans/\{loanId}?command=preclosure | { "transactionDate":"29 March 2025", "locale":"en", "dateFormat":"dd MMMM yyyy", "note":"PreClosing Loan" } | { "transactionDate":"29 March 2025", "locale":"en", "dateFormat":"dd MMMM yyyy", "preclosureReasonCodeId": 3100, } | { "loanId": 3106, "changes": { "transactionDate": [ 2025, 3, 30 ] , "transactions": [ 85900 ] , "eventAmount": -1000, "note": "fsdfdsf" } } | { "loanId": 3106, "changes": { "transactionDate": [ 2025, 3, 30 ] , "transactions": [ 85900 ] , "eventAmount": -1000, "preclosureReason" : { -- NEW "id": 4001, "name": "Bankruptcy", "codeName": "LOAN_PRECLOSURE_REASON" } } } |
Loan | Loan PreClosure Template | v1/loans/{loanId}/transactions/template?command=foreclosure&dateFormat=dd+MMMM+yyyy&locale=en&transactionDate=30+March+2025 | v1/loans/{loanId}/transactions/template?command=preclosure&dateFormat=dd+MMMM+yyyy&locale=en&transactionDate=30+March+2025 | NA | NA | NA | ... "loanPreClosureReasonOptions": [ { "id": 3001, "name": "Bankruptcy", "position": 0, "active": true, "mandatory": false, "systemDefined": true, "parentId": 0, "codeName": "LOAN_PRECLOSURE_REASON", "isMasked": false } , { "id": 3002, "name": "Job loss", "position": 1, "active": true, "mandatory": false, "systemDefined": true, "parentId": 0, "codeName": "LOAN_PRECLOSURE_REASON", "isMasked": false } , . .] ... |
Loan | Loan Write-off | /v1/loans/{loanId}/transactions?command=writeoff | v1/loans/\{loanId}?command=writeoff | { "transactionDate":"30 March 2025", "note":"Testing", "locale":"en", "dateFormat":"dd MMMM yyyy" } | { "transactionDate":"29 March 2025", "locale":"en", "dateFormat":"dd MMMM yyyy", "writeoffReasonCodeId": 4100, } | { "id": "85896", "officeId": 1, "clientId": 16601, "loanId": 3104, "resourceId": 85896, "changes": { "transactionDate": "30 March 2025", "locale": "en", "dateFormat": "dd MMMM yyyy", "status": { "id": 601, "code": "loanStatusType.closed.written.off", "value": "Closed (written off)", "pendingApproval": false, "waitingForDisbursal": false, "active": false, "closedObligationsMet": false, "closedWrittenOff": true, "closedRescheduled": false, "closed": true, "overpaid": false } , "closedOnDate": "30 March 2025", "writtenOffOnDate": "30 March 2025", } } | { "id": "85896", "officeId": 1, "clientId": 16601, "loanId": 3104, "resourceId": 85896, "changes": { "transactionDate": "30 March 2025", "locale": "en", "dateFormat": "dd MMMM yyyy", "status": { "id": 601, "code": "loanStatusType.closed.written.off", "value": "Closed (written off)", "pendingApproval": false, "waitingForDisbursal": false, "active": false, "closedObligationsMet": false, "closedWrittenOff": true, "closedRescheduled": false, "closed": true, "overpaid": false } , "closedOnDate": "30 March 2025", "writtenOffOnDate": "30 March 2025", "writeoffReason" : { -- NEW "id": 4001, "name": "Legal Settlement or Court Order", "codeName": "LOAN_WRITEOFF_REASON" } } } |
Loan | Loan PreClosure Template | v1/loans/{loanId}/transactions/template?command=writeoff | v1/loans/\{loanId}/transactions/template?command=writeoff | NA | NA | NA | ... "loanWriteoffReasonOptions": [ { "id": 4001, "name": "Legal Settlement or Court Order", "position": 0, "active": true, "mandatory": false, "systemDefined": true, "parentId": 0, "codeName": "LOAN_WRITEOFF_REASON", "isMasked": false } , { "id": 4002, "name": "Government Loan Waiver Programs", "position": 1, "active": true, "mandatory": false, "systemDefined": true, "parentId": 0, "codeName": "LOAN_WRITEOFF_REASON", "isMasked": false } , . .] ... |
Notes API's
Notes API to support different entities and different entity_note_types
Entity | Note Type | Action |
---|---|---|
CLIENT | 1.client | UPDATE, DELETE APPROVE, REJECT, REVIEW, VERIFY |
SUSPICIOUS_CLIENT_AUDIT | 1.ofac.check | OFAC_CHECK |
SAVINGS_ACCOUNT | 1.review 2.block- NEW 3.blockAmount- NEW 4.close- NEW | SUSPEND, REVIEW, BLOCK, UNBLOCK, BLOCK_DEBIT, UNBLOCK_DEBIT, BLOCK_CREDIT, UNBLOCK_CREDIT, CLOSE, HOLD_AMOUNT, RELEASE_AMOUNT WITHDRAW |
SAVINGS_TRANSACTION | 1.review | REVIEW |
LOAN | 1.loan 2.approval - NEW 3.rejection - NEW 4.preclosure - NEW 5.writeoff - NEW | UPDATE APPROVE REJECT REVIEW WAIVE WRITE_OFF PRECLOSE |
LOAN_TRANSACTION | review | REVIEW |
GROUP | review | REVIEW |
DEBIT_CARD | review- NEW suspend- NEW block- NEW unblock- NEW | REVIEW SUSPEND BLOCK UNBLOCK |
CREDIT_CARD | review- NEW suspend- NEW block- NEW unblock- NEW | REVIEW SUSPEND BLOCK UNBLOCK |
CARD_AUTHORIZATION | review | REVIEW |
SHARE_ACCOUNT | review | REVIEW |
DISPUTE | dispute approve - NEW reject - NEW adjust - NEW | REVIEW APPROVE REJECT ADJUST |
COMPLIANCE_REVIEW | compliancereview approve - NEW reject - NEW | REVIEW APPROVE REJECT |
New APIs
POST API
API NAME | Method | URL Endpoint | Description |
---|---|---|---|
Create note | POST | /{resourceType}/{resourceId}/notes?action | Along with the notes Payload, BO should send the m_suspicious_client_audit's id in the payload, which means that the OFAC note is added to specific audit. |
Request
Payload | Description | |
---|---|---|
Current | { "note":"False positive DOB non-match." } | No Changes |
Response
Status Code | Current Response | New Response |
---|---|---|
200 | { "id": "3179", "officeId": 1, "clientId": 16601, "resourceId": 3179 } | { "id": "3179", "officeId": 1, "resourceId": 3179, "entityType": "client", "entityId": 16601, "actionType": "ofac.check" } |
GET API
API Name | Method | Endpoint |
---|---|---|
Get Notes | GET | One Single API to fetch all Entity Notes /{resourceType}/{resourceId}/notes |
Response
Status Code | Current Response | New Response |
---|---|---|
200 | [{ "id": 3179, "clientId": 16601, "noteType": { "id": 1200, "code": "ofac.check", "value": "OFAC check note" } , "note": "False positive DOB non-match.", "createdById": 9500, "createdByUsername": "balajibouser", "createdOn": "2025-02-27 17:18:58", "updatedById": 9500, "updatedByUsername": "balajibouser", "updatedOn": "2025-02-27 17:18:58", "cardAuthorizationId": 0, "cardId": 0 } , { "id": 2983, "clientId": 16601, "noteType": { "id": 100, "code": "ofac.check", "value": "OFAC check note" } , "note": "Blocked this client", "createdById": 1, "createdByUsername": "admin", "createdOn": "2025-02-13 10:18:15", "updatedById": 1, "updatedByUsername": "admin", "updatedOn": "2025-02-13 10:18:15", "cardAuthorizationId": 0, "cardId": 0 } ] | [{ "id": 3179, "entityType": { "id": 1200, "code": "client", "value": "clients" } , "entityId": 16601, "actionType": { "id": 1200, "code": "ofac.check", "value": "OFAC check note" } , "note": "False positive DOB non-match." } , { "id": 2983, "entityType": "client", "entityId": 16601, "actionType": { "id": 100, "code": "client", "value": "OFAC check note" } , "note": "Blocked this client" } ] |
Add Reason codes for : 1. Block Account, 2. Block Amount & 3. Close Account
APIs Undergoing Change
Get API - Account Block/ Account Close / Amount Block Template
URL Endpoint | |
---|---|
Description | There is no changes required in the API. Pass the query parameters name. |
Request
No Changes
Status Code | New Section in Response Proposed Response Message/Description/Error Message | Description |
---|---|---|
Current | ... "savingsAccountBlockReasonOptions": [ { "id": 3001, "name": "KYC Non-Compliance", "position": 0, "active": true, "mandatory": false, "systemDefined": true, "parentId": 0, "codeName": "ACCOUNT_BLOCK_REASON", "isMasked": false } , { "id": 3002, "name": "Suspicious Transactions", "position": 1, "active": true, "mandatory": false, "systemDefined": true, "parentId": 0, "codeName": "ACCOUNT_BLOCK_REASON", "isMasked": false } , . .] ... | New section savingsAccountBlockReasonOptions. Will be fetched from M_CODE and MCODE Values Table. |
POST API - Blocking Account
URL Endpoint |
Request
Current Payload | New Payload | Description | |
---|---|---|---|
Current | { "reason":"dgfgdfg" } | { "blockReasonCodeId": 5100, } | reason code - will be fetched in template and used here. |
Response
Status Code | Current Response | New Response | Description |
---|---|---|---|
200 | { "id": "4865", "officeId": 1, "clientId": 5139, "savingsId": 4865, "resourceId": 4865, "changes": { "subStatus": { "id": 400, "code": "SavingsAccountSubStatusEnum.block", "value": "Block", "none": false, "inactive": false, "dormant": false, "escheat": false, "block": true, "blockCredit": false, "blockDebit": false } } } | { "id": "4865", "officeId": 1, "clientId": 5139, "savingsId": 4865, "resourceId": 4865, "changes": { "subStatus": { "id": 400, "code": "SavingsAccountSubStatusEnum.block", "value": "Block", "none": false, "inactive": false, "dormant": false, "escheat": false, "block": true, "blockCredit": false, "blockDebit": false } , "blockReason" : { -- NEW "id": 3002, "name": "Suspicious Transactions", "codeName": "ACCOUNT_BLOCK_REASON" } } } | New Section blockReason will be added |
POST API - Blocking/Hold Amount
Request
Current Payload | New Payload | Description | |
---|---|---|---|
Current | { "reference":"Hold $45", "transactionAmount":45 } | { "transactionAmount":45 "holdAmountReasonCodeId": 6100 } | reason code - will be fetched in template and used here. |
Response
Status Code | Current Response | New Response | Description |
---|---|---|---|
200 | { "id": "265", "resourceId": 265 } | { "id": "265", "resourceId": 265, "changes": { "savingsAmountOnHold": 45, -- NEW "blockAmountReason" : { -- NEW "id": 3002, "name": "Suspicious Transactions", "codeName": "AMOUNT_BLOCK_REASON" } } } | New Section blockReason will be added |
POST API - Closing Account
URL Endpoint | v1/savingsaccounts/4865?command=close |
Request
Current Payload | New Payload | Description | |
---|---|---|---|
Current | { "closedOnDate":"01 April 2025", "dateFormat":"dd MMMM yyyy", "locale":"en", "withdrawBalance":false, "postInterestValidationOnClosure":true, "ignoreNegativeBalance":false, "paymentTypeId":1 } or { "closedOnDate":"01 April 2025", "dateFormat":"dd MMMM yyyy", "locale":"en", "withdrawBalance":true, "postInterestValidationOnClosure":true, "ignoreNegativeBalance":false, "paymentTypeId":1 } | { "closedOnDate":"01 April 2025", "dateFormat":"dd MMMM yyyy", "locale":"en", "withdrawBalance":false, "postInterestValidationOnClosure":true, "ignoreNegativeBalance":false, "paymentTypeId":1 "closeReasonCodeId": 5100 } | reason code - will be fetched in template and used here. |
Response
Status Code | Current Response | New Response | Description |
---|---|---|---|
200 | { "id": "1195", "officeId": 1, "clientId": 1798, "savingsId": 1195, "resourceId": 1195, "changes": { "locale": "en", "dateFormat": "dd MMMM yyyy", "closedOnDate": "01 April 2025", "status": "CLOSED" } } | { "id": "1195", "officeId": 1, "clientId": 1798, "savingsId": 1195, "resourceId": 1195, "changes": { "locale": "en", "dateFormat": "dd MMMM yyyy", "closedOnDate": "01 April 2025", "status": "CLOSED", "closeReason" : { -- NEW "id": 6002, "name": "Suspicious Transactions", "codeName": "ACCOUNT_CLOSE_REASON" } } } | New Section closeReason will be added |
403 | { "developerMessage": "Request was understood but caused a domain rule violation.", "httpStatusCode": "403", "defaultUserMessage": "Errors contain reason for domain rule violation.", "userMessageGlobalisationCode": "validation.msg.domain.rule.violation", "errors": [ { "developerMessage": "Please do a post interest on the closing date", "defaultUserMessage": "Please do a post interest on the closing date", "userMessageGlobalisationCode": "error.msg.postInterest.notDone", "parameterName": "id", "value": null, "args": [] } ] } |
POST API - Schedule Closing Account
URL Endpoint | v1/savingsaccounts/4865?command=scheduleclose |
Request
Current Payload | New Payload | |
---|---|---|
Current | { "closedOnDate":"03 April 2025", "dateFormat":"dd MMMM yyyy", "locale":"en", "withdrawBalance":true, "postInterestValidationOnClosure":true, "paymentTypeId":1, "reason":"Closing due to Suspicious Transactions" } | { "closedOnDate":"03 April 2025", "dateFormat":"dd MMMM yyyy", "locale":"en", "withdrawBalance":true, "postInterestValidationOnClosure":true, "paymentTypeId":1, "closeReasonCodeId": 5100 } |
Response
Current Response | New Response | |
---|---|---|
200 | { "id": "1195", "officeId": 1, "clientId": 1798, "savingsId": 1195, "resourceId": 1195, "changes": { "locale": "en", "dateFormat": "dd MMMM yyyy", "closedOnDate": "01 April 2025", "status": "CLOSED" } } | { "id": "17364", "officeId": 1, "clientId": 18712, "savingsId": 17364, "resourceId": 17364, "changes": { "subStatus": { "id": 400, "code": "SavingsAccountSubStatusEnum.block", "value": "Block", "none": false, "inactive": false, "dormant": false, "escheat": false, "block": true, "blockCredit": false, "blockDebit": false } , "closeReason": { "id": 7779, "name": "KYC Non-Compliance", "codeName": "ACCOUNT_CLOSE_REASON" } } } |
NEW API - Cancel Switch Classification
URL Endpoint | /v1/clients/{clientId}?command=cancelSwitchclassification |
Request Payload | { "switchClassificationRequestId": 651 } |
Response | { "id": "193", "clientId": 193, "resourceId": 193, "data": { "cancelledClassificationId": 4867, "oldClassificationId": 4868 } } |