Account Services
To add account service data, we have introduced new APIs called account services APIs. The account services for one or more arrangement can be fetched and updated through the APIs. HMS has been enhanced to support the arrangement information of ACCOUNTS, DEPOSITS LENDING, and PORTFOLIO with the merger enhancement. The arrangement information can be fetched from HMS and updated through the APIs. The following modes of data manipulation can be done for account service Information.
Get criteria: To get details of the account services for a single account or more than one account.
Event Ingestion: The process of obtaining data about the account services from transact.
The Get API retrieves data from a server at the specified resource and the Put API creates and updates the account services with request payload. The account service data to the holdings MS is also updated through event ingestion. Under the Holdings MS- ERD a new table for service arrangement is added with the primary key as arrangement id, facility, effective date, versions, services, serviceid, serviceavailability, customeroption, and processing date as attributes. This data will be ingested from AA.ARR.FACILITY application of Transact.
| Attribute | Data Type | Description | T24 Mapping |
|---|---|---|---|
| arrangementId | string | Primary Key-<companyid> - the company Id is appended so that system clearly knows the company of the arrangement if the uniqueness of the key cannot be guaranteed across companies. | |
| serviceId | Dynamic enum | All the data will be configured in ms_reference_data with type is AA. SERVICE, the data should be ingested from EB.LOOKUP file for all the records start with AA.SERVICE, 2nd part of EB.LOOKUP id will be persisted in the value fields, where the actual description from EB.LOOKUP description field | EB.LOOKUP> AA.SERVICE |
| serviceAvailability | String | This will only accept values like AVAILABLE, BLOCKED and OPTIONAL | |
| customerOption | string | This will only accept the values like OPT-IN or OPT-OUT | |
| processingDate | date | The date of processing of transaction |
Accounts have a various services which are associated with it while creation of account. There are services which are optional. These services can be opted-in or opted-out based on the customer needs. To enable these functionalities in HMS we have introduced the CRED APIs given below. The following are the list of services provided for the account.
| SERVICE ID | DESCRIPTION |
|---|---|
| AMEND.STOP | Amend Payment Stop |
| CARD.ISSUE | Debit Card |
| CASH.POOL | Cash Pool |
| DIR.DEBIT | For Direct Debit |
| FUNDING | Funding |
| ISSUE.CHQ | Cheque |
| LIQUIDATE | Liquidation |
| MAIN.SWEEP | Maintenance Sweep |
| SETTLEMENT | Settlement |
| SETUP.STOP | Setup Payment Stop |
| STO | Standing Order |
| SURP.SWEEP | Surplus Sweep |
| TZ.STOP | Stop Instruction |
The following are the list of APIs available in HMS for account service:
| TABLE NAME | OPERATION ID | URI | API DESCRIPTION |
|---|---|---|---|
| Services | getAccountServicesdata | /holdings/accounts/arrangements/{arrangementId}/accountServices | Get the account services data for an arrangement. |
| Services | createArrangementInfoV5 | /holdings/arrangements | Create arrangement info with services data for an arrangement. |
| Services | updateArrangementInfoV5 | /holdings/arrangements | Update arrangement info with services data for an arrangement. |
| Arrangement | getBulkArrangementForParty | /holdings/parties/{partyId}/arrangements/bulkArrangements | Get the list of bulk arrangements available for the given party. |
| Arrangement | getPartyArrangementDetails | /holdings/parties/{partyId}/bulkArrangements | Get all the arrangement details available for the given party. |
| Arrangement | getBulkArrangements | /holdings/bulkArrangements/{arrangementId} | Get ArrangementDetails for the list of arrangementid/IBAN |
Get Account Services
Get Account services will take arrangementId or other alternate reference ID like IBAN as path parameter. Company Id is a mandatory query parameter. It will resolve the arrangement Id and company ID internally and return the account service information.
{
"arrangement": [
{
"extArrangementId": "GB0010001-AAA211062C006",
"service": [
{
"serviceName": "CARD.ISSUE",
"mandatoryService": "true/false",
"subscribe": "true/false"
}
]
}
]
}
Create ArrangementInfoV5
Create Arrangement Info will take arrangementId as path parameter and request body. In the request body we will provide the service information.
{
"arrangements": [
{
"extArrangementId": "GB0010001-AA20079Z2QSV",
"accountCategory": 6001,
"arrangementStatus": "AUTH",
"arrangementStatusDate": "2021-04-24",
"country": "GB",
"creationDate": "2021-04-24",
"currency": "USD",
"externalIndicator": false,
"linkedReference": "GB0010001-89707",
"productLine": "ACCOUNTS",
"productGroup": "SAVINGS.ACCOUNTS",
"product": "Savings Accounts",
"isPortFolioAccount": false,
"iban": "GB58DEMO60161300122696",
"estmtEnabled": false,
"isPortfolio": true,
"company": {
"companyReference": "GB0010001",
"defaultLanguageReference": "1"
},
"interests": [
{
"interestProperty": "CRINTEREST",
"paymentFrequency": "Monthly",
"effectiveRate": "2"
}
],
"accountArrangement": {
"closureDate": "2021-04-24"
},
"depositArrangement": {
"maturityDate": "2021-04-24"
},
"lendingArrangement": {
"maturityDate": "2021-04-24",
"termAmount": 6001,
"sanctionedDate": "2021-04-24"
},
"portfolioArrangement": {
"serviceType": "string",
"marginLending": false,
"investmentStrategy": "string",
"recommendedInvestmentStrategy": "string",
"riskProfileValidityFlag": false,
"riskProfileExpiryDate": "2021-04-24"
},
"roles": [
{
"partyId": "GB0010001-100100",
"partyRole": "Owner"
}
],
"alternateReferences": [
{
"alternateType": "ACCOUNT/T24.IBAN",
"alternateId": "GB0010001-10227"
}
],
"services": [
{
"serviceName": "CARD.ISSUE",
"mandatoryService": "true/false",
"subscribe": "true/false"
}
]
}
]
}
UpdateArrangementInfoV5
Update Account Services will take arrangementId as path param and request body.
{
"arrangements": [
{
"extArrangementId": "GB0010001-AA20079Z2QSV",
"accountCategory": 6001,
"arrangementStatus": "AUTH",
"arrangementStatusDate": "2021-04-24",
"country": "GB",
"creationDate": "2021-04-24",
"currency": "USD",
"externalIndicator": false,
"linkedReference": "GB0010001-89707",
"productLine": "ACCOUNTS",
"productGroup": "SAVINGS.ACCOUNTS",
"product": "Savings Accounts",
"isPortFolioAccount": false,
"iban": "GB58DEMO60161300122696",
"estmtEnabled": false,
"isPortfolio": true,
"company": {
"companyReference": "GB0010001",
"defaultLanguageReference": "1"
},
"interests": [
{
"interestProperty": "CRINTEREST",
"paymentFrequency": "Monthly",
"effectiveRate": "2"
}
],
"accountArrangement": {
"closureDate": "2021-04-24"
},
"depositArrangement": {
"maturityDate": "2021-04-24"
},
"lendingArrangement": {
"maturityDate": "2021-04-24",
"termAmount": 6001,
"sanctionedDate": "2021-04-24"
},
"portfolioArrangement": {
"serviceType": "string",
"marginLending": false,
"investmentStrategy": "string",
"recommendedInvestmentStrategy": "string",
"riskProfileValidityFlag": false,
"riskProfileExpiryDate": "2021-04-24"
},
"roles": [
{
"partyId": "GB0010001-100100",
"partyRole": "Owner"
}
],
"alternateReferences": [
{
"alternateType": "ACCOUNT/T24.IBAN",
"alternateId": "GB0010001-10227"
}
],
"services": [
{
"serviceName": "CARD.ISSUE",
"mandatoryService": "true/false",
"subscribe": "true/false"
}
]
}
]
}
Get Bulk Arrangement for Party
Get Bulk Arrangement for Party will take partyId as path param and return the bulk arrangement details for the given party.
{
"arrangement": [
{
"extArrangementId": "GB0010001-AA20079Z2QSV",
"productId": "MORTGAGE",
"productDescription": "Mortgage",
"productDescriptionsLanguage": [
{
"languageReference": "1",
"languageDescription": "British English",
"languageMnemonic": "GB"
}
],
"arrangementStatus": "CURRENT",
"shortTitle": "Mortgage Loan",
"shortTitlesLanguage": [
{
"languageReference": "1",
"languageDescription": "British English",
"languageMnemonic": "GB"
}
]
}
]
}
Get Party Arrangement Details
Get Party Arrangement Details will take partyId as path param and productline, partyalternaterequired, portfolioAccount, isPortfolio, includeclosedones, includeunauth, and company as query parameter. Based on the query parameter the API will return the party arrangement details.
{
"arrangement": [
{
"arrangementId": "ARR202660H2EBX93IM",
"accountCategory": "83",
"arrangementStatus": "AUTH",
"arrangementStatusDate": "2020-09-22 05:43:34.0",
"country": "GB",
"creationDate": "2020-09-22 05:43:34.0",
"startDate": "2020-09-22 05:43:34.0",
"currency": "USD",
"description": "Accounts Arrangement",
"dormancyStatus": "Pending",
"eStmtEnabled": true,
"extArrangementId": "GB0010001-AA20079Z2QSV",
"extSystemInfo": "AA20079Z2QSV",
"externalIndicator": false,
"linkedReference": "GB0010001-89707",
"originalContractDate": "2020-09-22 05:43:34.0",
"productLine": "ACCOUNTS",
"productGroup": "CURRENT.ACCOUNTS",
"product": "SME.ACCOUNT",
"service": [
{
"serviceName": "CARD.ISSUE",
"mandatoryService": "true/false",
"subscribe": "true/false"
}
],
"relationshipPlan": "Unauth",
"closureDate": "2020-09-22 05:43:34.0",
"shortTitle": "MR.",
"shortTitlesLanguage": [
{
"languageReference": "1",
"languageDescription": "desc",
"languageMnemonic": "GB"
}
],
"activeBranch": "GB00010001",
"systemReference": "AccountTBC",
"activeBranchLanguage": [
{
"languageReference": "1",
"languageDescription": "desc",
"languageMnemonic": "GB"
}
],
"managingOfficer": {
"managingOfficerId": "1",
"managingOfficerName": "Implementation"
},
"portfolioId": "100336-1",
"isPortfolioAccount": true,
"company": {
"companyReference": "GB0010001",
"defaultLanguageReference": "1",
"extensionData": "string"
},
"productDescription": "Current Account (SME)",
"productDescriptionsLanguage": [
{
"languageReference": "1",
"languageDescription": "desc",
"languageMnemonic": "GB"
}
],
"role": [
{
"partyId": "GB0010001-100100",
"partyRole": {
"roleId": "OWNER",
"description": [
{
"languageReference": "1",
"languageDescription": "desc",
"languageMnemonic": "GB"
}
],
"isBeneficialOwner": true,
"maxTaxLiabPercentage": 500.06,
"legalEntityId": "GB0010001"
},
"alternateReferences": [
{
"alternateType": "554433100100",
"alternateId": "MPID/T24.IBAN"
}
],
"extensionData": "string"
}
],
"postingRestrict": [
{
"postingRestrict": "1",
"restrictionType": "DEBITS",
"description": "Posting No Debit",
"descriptionsLanguage": [
{
"languageReference": "1",
"languageDescription": "desc",
"languageMnemonic": "GB"
}
],
"startDate": "2020-09-22 05:43:34.0",
"allowTransaction": "Y(es) or N(o) or Blank(Null)",
"transactionCode": [
"string"
]
}
],
"arrangementRef": "ARR202660H2EBX93IM",
"iban": "AL47212110090000000235698741",
"returnCode": "404",
"additionalErrorInfo": "Arrangement Failed",
"processDate": "2020-09-22 05:43:34.0",
"coolingOffDate": "2020-09-22 05:43:34.0",
"legalEntityId": "GB0010001",
"lendingArrangement": {
"maturityDate": "2020-09-22 05:43:34.0",
"renewalDate": "2020-09-22 05:43:34.0",
"overdueStatus": "Pending",
"principalAmount": 500.06,
"termAmount": 500.06,
"sanctionedDate": "2020-09-22 05:43:34.0",
"lastPaymentDate": "2020-09-22 05:43:34.0",
"lastPaymentAmount": 500.06,
"totalDueAmount": 500.06,
"dueDate": "2020-09-22 05:43:34.0",
"currentDue": 500.06
},
"accountArrangement": {
"overdraftStatus": "Pending"
},
"depositArrangement": {
"maturityDate": "2020-09-22 05:43:34.0",
"renewalDate": "2020-09-22 05:43:34.0"
},
"interest": [
{
"interestPropertyName": "CRINTEREST",
"interestFrequency": "Every 3 Months",
"interestRate": "5.6",
"interestAccrued": "100.09",
"interestYtd": "50.07",
"lastPeriodInterest": "54.98",
"lastPeriodEndDate": "2020-09-22 05:43:34.0",
"interestDue": "45.98",
"interestDueDate": "2020-09-22 05:43:34.0",
"intRateTierType": "string",
"effectiveRate": 5.6,
"periodicIndex": 0,
"floatingIndex": 0,
"linkedRate": 0,
"fixedRate": 0
}
],
"paymentSchedule": [
{
"paymentType": "string",
"paymentMethod": "string",
"property": "string",
"scheduleAmount": 500.06,
"paymentFrequency": "Every 3 Months"
}
],
"alternateReferences": [
{
"alternateType": "554433100100",
"alternateId": "MPID/T24.IBAN"
}
],
"isPortfolio": true,
"portfolioArrangement": {
"serviceType": "string",
"marginLending": true,
"investmentStrategy": "string",
"recommendedInvestmentStrategy": "string",
"riskProfileValidityFlag": true,
"riskProfileExpiryDate": "2020-09-22 05:43:34.0",
"extensionData": "string"
},
"extensionData": "string"
}
]
}
Get Bulk Arrangements
Get Bulk Arrangements will take arrangementId as path param and altname(IBAN), and partyalternaterequired(yes/no) as query param.
{
"arrangementResponse": [
{
"arrangementId": "ARR202660H2EBX93IM",
"accountCategory": "83",
"arrangementStatus": "AUTH",
"arrangementStatusDate": "2020-09-22 05:43:34.0",
"country": "GB",
"creationDate": "2020-09-22 05:43:34.0",
"startDate": "2020-09-22 05:43:34.0",
"currency": "USD",
"description": "Accounts Arrangement",
"dormancyStatus": "Pending",
"eStmtEnabled": true,
"extArrangementId": "GB0010001-AA20079Z2QSV",
"extSystemInfo": "AA20079Z2QSV",
"externalIndicator": false,
"linkedReference": "GB0010001-89707",
"originalContractDate": "2020-09-22 05:43:34.0",
"productLine": "ACCOUNTS",
"productGroup": "CURRENT.ACCOUNTS",
"product": "SME.ACCOUNT",
"service": [
{
"serviceName": "CARD.ISSUE",
"mandatoryService": "true/false",
"subscribe": "true/false"
}
],
"relationshipPlan": "Unauth",
"closureDate": "2020-09-22 05:43:34.0",
"shortTitle": "MR.",
"shortTitlesLanguage": [
{
"languageReference": "1",
"languageDescription": "desc",
"languageMnemonic": "GB"
}
],
"activeBranch": "GB00010001",
"systemReference": "AccountTBC",
"activeBranchLanguage": [
{
"languageReference": "1",
"languageDescription": "desc",
"languageMnemonic": "GB"
}
],
"managingOfficer": {
"managingOfficerId": "1",
"managingOfficerName": "Implementation"
},
"portfolioId": "100336-1",
"isPortfolioAccount": true,
"company": {
"companyReference": "GB0010001",
"defaultLanguageReference": "1",
"extensionData": "string"
},
"productDescription": "Current Account (SME)",
"productDescriptionsLanguage": [
{
"languageReference": "1",
"languageDescription": "desc",
"languageMnemonic": "GB"
}
],
"role": [
{
"partyId": "GB0010001-100100",
"partyRole": {
"roleId": "OWNER",
"description": [
{
"languageReference": "1",
"languageDescription": "desc",
"languageMnemonic": "GB"
}
],
"isBeneficialOwner": true,
"maxTaxLiabPercentage": 500.06,
"legalEntityId": "GB0010001"
},
"alternateReferences": [
{
"alternateType": "554433100100",
"alternateId": "MPID/T24.IBAN"
}
],
"extensionData": "string"
}
],
"postingRestrict": [
{
"postingRestrict": "1",
"restrictionType": "DEBITS",
"description": "Posting No Debit",
"descriptionsLanguage": [
{
"languageReference": "1",
"languageDescription": "desc",
"languageMnemonic": "GB"
}
],
"startDate": "2020-09-22 05:43:34.0",
"allowTransaction": "Y(es) or N(o) or Blank(Null)",
"transactionCode": [
"string"
]
}
],
"arrangementRef": "ARR202660H2EBX93IM",
"iban": "AL47212110090000000235698741",
"returnCode": "404",
"additionalErrorInfo": "Arrangement Failed",
"processDate": "2020-09-22 05:43:34.0",
"coolingOffDate": "2020-09-22 05:43:34.0",
"legalEntityId": "GB0010001",
"lendingArrangement": {
"maturityDate": "2020-09-22 05:43:34.0",
"renewalDate": "2020-09-22 05:43:34.0",
"overdueStatus": "Pending",
"principalAmount": 500.06,
"termAmount": 500.06,
"sanctionedDate": "2020-09-22 05:43:34.0",
"lastPaymentDate": "2020-09-22 05:43:34.0",
"lastPaymentAmount": 500.06,
"totalDueAmount": 500.06,
"dueDate": "2020-09-22 05:43:34.0",
"currentDue": 500.06
},
"accountArrangement": {
"overdraftStatus": "Pending"
},
"depositArrangement": {
"maturityDate": "2020-09-22 05:43:34.0",
"renewalDate": "2020-09-22 05:43:34.0"
},
"interest": [
{
"interestPropertyName": "CRINTEREST",
"interestFrequency": "Every 3 Months",
"interestRate": "5.6",
"interestAccrued": "100.09",
"interestYtd": "50.07",
"lastPeriodInterest": "54.98",
"lastPeriodEndDate": "2020-09-22 05:43:34.0",
"interestDue": "45.98",
"interestDueDate": "2020-09-22 05:43:34.0",
"intRateTierType": "string",
"effectiveRate": 5.6,
"periodicIndex": 0,
"floatingIndex": 0,
"linkedRate": 0,
"fixedRate": 0
}
],
"paymentSchedule": [
{
"paymentType": "string",
"paymentMethod": "string",
"property": "string",
"scheduleAmount": 500.06,
"paymentFrequency": "Every 3 Months"
}
],
"alternateReferences": [
{
"alternateType": "554433100100",
"alternateId": "MPID/T24.IBAN"
}
],
"isPortfolio": true,
"portfolioArrangement": {
"serviceType": "string",
"marginLending": true,
"investmentStrategy": "string",
"recommendedInvestmentStrategy": "string",
"riskProfileValidityFlag": true,
"riskProfileExpiryDate": "2020-09-22 05:43:34.0",
"extensionData": "string"
},
"extensionData": "string"
}
]
In this topic