Overview
Organization Settings control core configuration for your organization, including name, accounting period, notification preferences, and advanced loan/dividend rules.Permission required:
settings:read(to view settings)settings:write(to modify settings)
API Endpoints
Get Organization Settings
Retrieve organization configuration:Update Organization Name
Update organization display name:Update Organization Settings
Update operational settings:| Field | Type | Required | Description |
|---|---|---|---|
accountingPeriod | enum | No | Period type: MONTHLY, QUARTERLY, YEARLY |
enableEmail | boolean | No | Enable email notifications |
enableSms | boolean | No | Enable SMS notifications |
loanSettings | object | No | Loan policies and rules |
dividendSettings | object | No | Dividend distribution settings |
accountingPeriod cannot be changed after periods have been closed.
Configurable Settings
Organization Name
Field:name
Description: Display name shown throughout application
Example: “Agatabo Cooperative ABC”
API: PUT /organizations/{organizationId}
Accounting Period
Field:accountingPeriod
Values: MONTHLY, QUARTERLY, YEARLY
Default: MONTHLY
API: PUT /organizations/{id}/settings
- MONTHLY: Close books every month (recommended)
- QUARTERLY: Close books every 3 months
- YEARLY: Close books annually
MONTHLY for active organizations. Use QUARTERLY or YEARLY only for low-activity organizations.
See: Period Closing
Email Notifications
Field:enableEmail
Type: boolean
Default: true
API: PUT /organizations/{id}/settings
- Loan approvals
- Loan payment reminders
- Loan payment confirmations
- Contribution reminders
- General announcements
- Members must have email addresses in profiles
- Email service must be configured by system administrator
SMS Notifications
Field:enableSms
Type: boolean
Default: false
API: PUT /organizations/{id}/settings
- Loan approvals
- Loan payment reminders
- Urgent notifications
- Members must have phone numbers in profiles
- Pindo SMS service must be configured by administrator
- SMS credits must be available
Loan Settings
Field:loanSettings
Type: JSON object
API: PUT /organizations/{id}/settings
Example configuration:
| Field | Type | Description |
|---|---|---|
min_loan_amount | number | Minimum loan amount allowed |
max_loan_amount | number | Maximum loan amount allowed |
interest_rate | number | Default interest rate (percentage) |
coverage_ratio | number | Loan-to-collateral ratio |
min_savings_ratio | number | Minimum savings as % of loan |
max_loan_percentage | number | Max loan as multiple of savings |
disbursement_fee_percentage | number | Fee charged on disbursement (%) |
- Percentage fields stored as decimals in database (10% = 0.1)
- API accepts percentages, converts automatically
- Invalid settings can prevent loan creation
- Modify with technical assistance
Dividend Settings
Field:dividendSettings
Type: JSON object
API: PUT /organizations/{id}/settings
Example configuration:
| Field | Type | Description |
|---|---|---|
default_distribution_method | string | Distribution method: by_contribution, equal |
min_pool_amount | number | Minimum amount to create dividend pool |
require_minimum_savings | boolean | Require minimum savings for eligibility |
minimum_savings_balance | number | Minimum savings balance required |
Immutable Settings
These fields are set at organization creation and cannot be changed via API:Currency Code
Field:currencyCode
Default: RWF (Rwandan Franc)
Example values: RWF, USD, KES, TZS
Why immutable: Changing currency would corrupt existing financial records. All transactions, balances, and reports are in this currency.
Amount Scale
Field:amountScale
Default: 0 (whole numbers)
Values:
0= Whole numbers (e.g., 10000)2= Two decimal places (e.g., 10000.50)
0for currencies without subdivisions (RWF)2for currencies with cents (USD)
Timezone
Field:timezone
Default: Africa/Kigali
Example values: Africa/Kigali, Africa/Nairobi, Africa/Dar_es_Salaam, UTC
Usage:
- Transaction timestamps displayed in this timezone
- Date range filters use this timezone
- Report “as of” dates calculated in this timezone
Date Format
Field:dateFormat
Default: DD/MM/YYYY
Example values:
DD/MM/YYYY(10/06/2026)MM/DD/YYYY(06/10/2026)YYYY-MM-DD(2026-06-10)
Directional Rounding
Field:directionalRounding
Default: false
Values:
false= Standard rounding (0.5 rounds up)true= Banker’s rounding (round to nearest even)
quantizeByFlow function.
Read-Only Fields
Organization ID:id - System-generated UUID
Numeric ID: numericId - Sequential organization number
Organization Type: type - Always TONTINE
Created At: createdAt - Organization creation timestamp
Onboarding Completed: onboardingCompleted - Setup wizard status
Common Use Cases
Change Organization Name
API call:Enable Email Notifications
API call:Switch from Monthly to Quarterly
Requirement: No periods closed yet (cannot change after closing). API call:Configure Loan Rules
API call:Best Practices
Configuring organization settings:Initial setup:
- ✅ Set currency and amount scale correctly (immutable!)
- ✅ Verify timezone matches physical location
- ✅ Choose appropriate accounting period (monthly recommended)
- ✅ Configure loan settings before disbursing first loan
- ✅ Test notifications with your own email/phone
- ✅ Limit
settings:writepermission to trusted administrators - ✅ Document custom configurations (loan/dividend settings)
- ✅ Review audit logs after settings changes
- ✅ Test settings in staging environment first (if available)
- ✅ Communicate settings changes to organization members
- ✅ Choose period type before closing first period
- ✅ Cannot change after periods closed (plan ahead)
- ✅ Monthly provides best oversight for active organizations
- ✅ Quarterly reduces admin burden for smaller groups
- ✅ Keep JSON configuration backed up
- ✅ Validate JSON before saving (invalid JSON breaks features)
- ✅ Use percentage fields correctly (10% = enter 10, not 0.1)
- ✅ Modify with technical assistance if unsure
Troubleshooting
Q: Can’t edit organization settings A: Check:- You have
settings:writepermission - You’re logged in as organization user
- Correct organization selected via
x-organization-idheader
Q: Currency or decimal precision wrong A: If no transactions recorded:
- Contact system administrator to manually update database
- Risky - backup first
- Cannot change (would corrupt existing data)
- May need to export, create new organization, re-import
- Contact support for migration assistance
Q: Accounting period change rejected A: Error: “Cannot change accounting period after closing periods” Cause: You’ve already closed at least one period. Solution: Cannot change. Accounting period is locked after first close. Contact support if absolutely necessary.
Q: Notifications not sending A: Check:
enableEmailorenableSmsistrue- Members have valid email addresses/phone numbers
- Email/SMS service configured by administrator
- Check spam folder (emails)
- Verify SMS credits available (SMS)
Q: Loan settings not applying A: Verify:
- Settings saved successfully (check response)
- JSON is valid (no syntax errors)
- Percentage fields use correct values
- Refresh application to load new settings
GET /organizations/{id} to confirm they saved.
Q: Can’t change timezone A: Timezone is immutable. Cannot be changed after organization creation. Why: Historical transaction timestamps would become ambiguous. Workaround: None. Timezone is permanent.
Related Topics
Period Closing
Accounting period management
Audit Trail
Track settings changes
Permissions
Manage settings:write access
User Preferences
Individual user settings