Savings Accounts
Manage savings accounts including deposits, withdrawals, interest calculation, and account lifecycle
/fineract-provider/api/v1/savingsaccountsList savings accounts
Retrieves a list of all savings accounts. Supports filtering by client, product type, and status.
Query Parameters
sqlSearchstringSQL-style search query
externalIdstringFilter by external ID
offsetintegerPagination offset
Returns
Request
curl --request GET \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json"Response
{
"totalFilteredRecords": 25,
"pageItems": [
{
"id": 1,
"displayName": "Sample Item 1",
"status": "active"
},
{
"id": 2,
"displayName": "Sample Item 2",
"status": "active"
}
]
}/fineract-provider/api/v1/savingsaccounts/{accountId}Retrieve savings account
Gets detailed information about a specific savings account including balance, transactions, and charges.
Path Parameters
accountIdintegerrequiredSavings account ID
Query Parameters
associationsstringInclude associated data (transactions, charges)
staffInSelectedOfficeOnlybooleanFilter staff to selected office
Returns
Request
curl --request GET \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts/:accountId" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json"Response
{
"id": 1,
"status": {
"id": 300,
"code": "statusType.active",
"value": "Active"
},
"officeId": 1,
"officeName": "Head Office",
"createdDate": "2024-01-15",
"lastModifiedDate": "2024-01-20"
}/fineract-provider/api/v1/savingsaccounts/templateRetrieve savings account template
Returns template data needed to create a new savings account.
Query Parameters
clientIdintegerClient ID
groupIdintegerGroup ID
productIdintegerProduct ID
Returns
Request
curl --request GET \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts/template" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json"Response
{
"totalFilteredRecords": 25,
"pageItems": [
{
"id": 1,
"displayName": "Sample Item 1",
"status": "active"
},
{
"id": 2,
"displayName": "Sample Item 2",
"status": "active"
}
]
}/fineract-provider/api/v1/savingsaccountsSubmit new savings application
Opens a new savings account application for a client with the specified product and settings.
Request Bodyrequired
Savings account details
clientIdintegerClient ID
groupIdintegerGroup ID (for group accounts)
productIdintegerSavings product ID
fieldOfficerIdintegerAssigned staff member
submittedOnDatestringSubmission date
externalIdstringExternal reference
nominalAnnualInterestRatenumberOverride interest rate
interestCompoundingPeriodTypeintegerCompounding period
interestPostingPeriodTypeintegerInterest posting period
interestCalculationTypeintegerInterest calculation method
interestCalculationDaysInYearTypeintegerDays in year for calculation
minRequiredOpeningBalancenumberMinimum opening balance
lockinPeriodFrequencyintegerLock-in period
lockinPeriodFrequencyTypeintegerLock-in period type
withdrawalFeeForTransfersbooleanApply withdrawal fee on transfers
allowOverdraftbooleanAllow overdraft
overdraftLimitnumberOverdraft limit amount
enforceMinRequiredBalancebooleanEnforce minimum balance
minRequiredBalancenumberMinimum required balance
withHoldTaxbooleanWithhold tax on interest
dateFormatstringlocalestringReturns
Request
curl --request POST \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json" \
--data '{
"clientId": 1,
"groupId": 1,
"productId": 1,
"fieldOfficerId": 1,
"submittedOnDate": "01 January 2024",
"externalId": "sample_externalId",
"nominalAnnualInterestRate": 1000,
"interestCompoundingPeriodType": 1,
"interestPostingPeriodType": 1,
"interestCalculationType": 1,
"interestCalculationDaysInYearType": 1,
"minRequiredOpeningBalance": 1000,
"lockinPeriodFrequency": 1,
"lockinPeriodFrequencyType": 1,
"withdrawalFeeForTransfers": true,
"allowOverdraft": true,
"overdraftLimit": 1000,
"enforceMinRequiredBalance": true,
"minRequiredBalance": 1000,
"withHoldTax": true,
"dateFormat": "01 January 2024",
"locale": "sample_locale"
}'Response
{
"officeId": 1,
"resourceId": 1,
"changes": {}
}/fineract-provider/api/v1/savingsaccounts/{accountId}Modify savings application
Updates a savings account application that is still in 'Submitted and pending approval' status.
Path Parameters
accountIdintegerrequiredAccount ID
Request Bodyrequired
Updated account details
nominalAnnualInterestRatenumberminRequiredOpeningBalancenumberexternalIdstringdateFormatstringlocalestringReturns
Request
curl --request PUT \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts/:accountId" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json" \
--data '{
"nominalAnnualInterestRate": 1000,
"minRequiredOpeningBalance": 1000,
"externalId": "sample_externalId",
"dateFormat": "01 January 2024",
"locale": "sample_locale"
}'Response
{
"officeId": 1,
"resourceId": 1,
"changes": {}
}/fineract-provider/api/v1/savingsaccounts/{accountId}Delete savings application
Deletes a savings account application that is still in 'Submitted and pending approval' status.
Path Parameters
accountIdintegerrequiredAccount ID to delete
Returns
Request
curl --request DELETE \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts/:accountId" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json"Response
{
"resourceId": 1,
"changes": {}
}/fineract-provider/api/v1/savingsaccounts/{accountId}?command=approveApprove savings application
Approves a pending savings account application.
Path Parameters
accountIdintegerrequiredAccount ID to approve
Request Bodyrequired
Approval details
approvedOnDatestringnotestringdateFormatstringlocalestringReturns
Request
curl --request POST \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts/:accountId?command=approve" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json" \
--data '{
"approvedOnDate": "01 January 2024",
"note": "sample_note",
"dateFormat": "01 January 2024",
"locale": "sample_locale"
}'Response
{
"officeId": 1,
"resourceId": 1,
"changes": {}
}/fineract-provider/api/v1/savingsaccounts/{accountId}?command=undoApprovalUndo savings approval
Reverts an approved savings account back to pending status.
Path Parameters
accountIdintegerrequiredAccount ID
Request Bodyrequired
Undo details
notestringReturns
Request
curl --request POST \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts/:accountId?command=undoApproval" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json" \
--data '{
"note": "sample_note"
}'Response
{
"officeId": 1,
"resourceId": 1,
"changes": {}
}/fineract-provider/api/v1/savingsaccounts/{accountId}?command=rejectReject savings application
Rejects a pending savings account application.
Path Parameters
accountIdintegerrequiredAccount ID to reject
Request Bodyrequired
Rejection details
rejectedOnDatestringnotestringdateFormatstringlocalestringReturns
Request
curl --request POST \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts/:accountId?command=reject" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json" \
--data '{
"rejectedOnDate": "01 January 2024",
"note": "sample_note",
"dateFormat": "01 January 2024",
"locale": "sample_locale"
}'Response
{
"officeId": 1,
"resourceId": 1,
"changes": {}
}/fineract-provider/api/v1/savingsaccounts/{accountId}?command=activateActivate savings account
Activates an approved savings account, making it ready for transactions.
Path Parameters
accountIdintegerrequiredAccount ID to activate
Request Bodyrequired
Activation details
activatedOnDatestringdateFormatstringlocalestringReturns
Request
curl --request POST \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts/:accountId?command=activate" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json" \
--data '{
"activatedOnDate": "01 January 2024",
"dateFormat": "01 January 2024",
"locale": "sample_locale"
}'Response
{
"officeId": 1,
"resourceId": 1,
"changes": {}
}/fineract-provider/api/v1/savingsaccounts/{accountId}?command=closeClose savings account
Closes an active savings account. The balance must be zero or transferred.
Path Parameters
accountIdintegerrequiredAccount ID to close
Request Bodyrequired
Closure details
closedOnDatestringwithdrawBalancebooleanWithdraw remaining balance
paymentTypeIdintegerPayment type for withdrawal
notestringdateFormatstringlocalestringReturns
Request
curl --request POST \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts/:accountId?command=close" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json" \
--data '{
"closedOnDate": "01 January 2024",
"withdrawBalance": true,
"paymentTypeId": 1,
"note": "sample_note",
"dateFormat": "01 January 2024",
"locale": "sample_locale"
}'Response
{
"officeId": 1,
"resourceId": 1,
"changes": {}
}/fineract-provider/api/v1/savingsaccounts/{accountId}?command=calculateInterestCalculate interest
Calculates accrued interest on the savings account without posting it.
Path Parameters
accountIdintegerrequiredAccount ID
Returns
Request
curl --request POST \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts/:accountId?command=calculateInterest" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json"Response
{
"officeId": 1,
"resourceId": 1,
"changes": {}
}/fineract-provider/api/v1/savingsaccounts/{accountId}?command=postInterestPost interest
Posts accrued interest to the savings account balance.
Path Parameters
accountIdintegerrequiredAccount ID
Returns
Request
curl --request POST \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts/:accountId?command=postInterest" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json"Response
{
"officeId": 1,
"resourceId": 1,
"changes": {}
}/fineract-provider/api/v1/savingsaccounts/{accountId}?command=blockBlock savings account
Blocks all transactions on a savings account.
Path Parameters
accountIdintegerrequiredAccount ID to block
Request Bodyrequired
Block reason
reasonForBlockstringReturns
Request
curl --request POST \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts/:accountId?command=block" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json" \
--data '{
"reasonForBlock": "sample_reasonForBlock"
}'Response
{
"officeId": 1,
"resourceId": 1,
"changes": {}
}/fineract-provider/api/v1/savingsaccounts/{accountId}?command=unblockUnblock savings account
Removes the block on a savings account, allowing transactions again.
Path Parameters
accountIdintegerrequiredAccount ID to unblock
Returns
Request
curl --request POST \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts/:accountId?command=unblock" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json"Response
{
"officeId": 1,
"resourceId": 1,
"changes": {}
}/fineract-provider/api/v1/savingsaccounts/{accountId}/transactions?command=depositMake a deposit
Records a deposit transaction to the savings account.
Path Parameters
accountIdintegerrequiredSavings account ID
Request Bodyrequired
Deposit details
transactionDatestringtransactionAmountnumberpaymentTypeIdintegerPayment method
accountNumberstringcheckNumberstringroutingCodestringreceiptNumberstringbankNumberstringnotestringdateFormatstringlocalestringReturns
Request
curl --request POST \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts/:accountId/transactions?command=deposit" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json" \
--data '{
"transactionDate": "01 January 2024",
"transactionAmount": 1000,
"paymentTypeId": 1,
"accountNumber": "sample_accountNumber",
"checkNumber": "sample_checkNumber",
"routingCode": "sample_routingCode",
"receiptNumber": "sample_receiptNumber",
"bankNumber": "sample_bankNumber",
"note": "sample_note",
"dateFormat": "01 January 2024",
"locale": "sample_locale"
}'Response
{
"officeId": 1,
"resourceId": 1,
"changes": {}
}/fineract-provider/api/v1/savingsaccounts/{accountId}/transactions?command=withdrawalMake a withdrawal
Records a withdrawal transaction from the savings account.
Path Parameters
accountIdintegerrequiredSavings account ID
Request Bodyrequired
Withdrawal details
transactionDatestringtransactionAmountnumberpaymentTypeIdintegeraccountNumberstringcheckNumberstringroutingCodestringreceiptNumberstringbankNumberstringnotestringdateFormatstringlocalestringReturns
Request
curl --request POST \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts/:accountId/transactions?command=withdrawal" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json" \
--data '{
"transactionDate": "01 January 2024",
"transactionAmount": 1000,
"paymentTypeId": 1,
"accountNumber": "sample_accountNumber",
"checkNumber": "sample_checkNumber",
"routingCode": "sample_routingCode",
"receiptNumber": "sample_receiptNumber",
"bankNumber": "sample_bankNumber",
"note": "sample_note",
"dateFormat": "01 January 2024",
"locale": "sample_locale"
}'Response
{
"officeId": 1,
"resourceId": 1,
"changes": {}
}/fineract-provider/api/v1/savingsaccounts/{accountId}/transactions?command=holdAmountHold amount
Places a hold on a portion of the savings balance, making it unavailable for withdrawal.
Path Parameters
accountIdintegerrequiredAccount ID
Request Bodyrequired
Hold details
transactionDatestringtransactionAmountnumberAmount to hold
reasonForBlockstringdateFormatstringlocalestringReturns
Request
curl --request POST \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts/:accountId/transactions?command=holdAmount" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json" \
--data '{
"transactionDate": "01 January 2024",
"transactionAmount": 1000,
"reasonForBlock": "sample_reasonForBlock",
"dateFormat": "01 January 2024",
"locale": "sample_locale"
}'Response
{
"officeId": 1,
"resourceId": 1,
"changes": {}
}/fineract-provider/api/v1/savingsaccounts/{accountId}/transactions/{transactionId}?command=releaseAmountRelease held amount
Releases a previously held amount, making it available again.
Path Parameters
accountIdintegerrequiredAccount ID
transactionIdintegerrequiredHold transaction ID
Returns
Request
curl --request POST \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts/:accountId/transactions/:transactionId?command=releaseAmount" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json"Response
{
"officeId": 1,
"resourceId": 1,
"changes": {}
}/fineract-provider/api/v1/savingsaccounts/{accountId}/transactions/{transactionId}Retrieve savings transaction
Gets details of a specific savings account transaction.
Path Parameters
accountIdintegerrequiredAccount ID
transactionIdintegerrequiredTransaction ID
Returns
Request
curl --request GET \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts/:accountId/transactions/:transactionId" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json"Response
{
"id": 1,
"status": {
"id": 300,
"code": "statusType.active",
"value": "Active"
},
"officeId": 1,
"officeName": "Head Office",
"createdDate": "2024-01-15",
"lastModifiedDate": "2024-01-20"
}/fineract-provider/api/v1/savingsaccounts/{accountId}/transactions/{transactionId}?command=undoUndo savings transaction
Reverses a savings account transaction.
Path Parameters
accountIdintegerrequiredAccount ID
transactionIdintegerrequiredTransaction ID to undo
Returns
Request
curl --request POST \
--url "https://your-fineract-instance.com/fineract-provider/api/v1/savingsaccounts/:accountId/transactions/:transactionId?command=undo" \
--header "Authorization: Basic {credentials}" \
--header "Fineract-Platform-TenantId: default" \
--header "Content-Type: application/json"Response
{
"officeId": 1,
"resourceId": 1,
"changes": {}
}Was this page helpful?