Fee/Fine Data Structures
In Folio, fee/fine information is stored as accounts and actions
- Accounts are where the core charge is held and created when a fee/fine is created and applied to a user account.
- The associated JSON schema is accountdata.json (https://github.com/folio-org/mod-feesfines/blob/master/ramls/accountdata.json)
- An individual account record has a required userId - that's how it's linked to the user record
- An individual user may have zero, one, or more accounts - e.g., if they've never had a fine charged, they would have no account records.
- Accounts have feeFineId and ownerId - this links to the fee fine owner, and the type of fee/fine that was charged. Types of fines are configurable for manual charges in Settings → Users → Fee Fines. For automatic charges, they are configured in FOLIO itself. Types of fee/fines in the system can be retrieved via an API call (GET /feefines)
- Hardcoded attributes (with allowed values) include:
- Status
- Open
- Closed
- Payment Status
- Outstanding
- Paid partially
- Paid fully
- Waived partially
- Waived fully
- Transferred partially
- Transferred fully
- Refunded partially
- Refunded fully
- Cancelled as error
- Status
- Actions are where transactions are kept on the account
- The associated JSON schema is feefineactiondata.json (https://github.com/folio-org/mod-feesfines/blob/master/ramls/feefineactiondata.json)
- Accounts will always have at least one action, created when the account was created
- A feefineactiondata record has a required attribute of accountId which links it to the account.
- Hardcoded attributes (with allowed values) include
- TypeAction
- Outstanding
- Paid partially
- Paid fully
- Waived partially
- Waived fully
- Transferred partially
- Transferred fully
- Refunded partially
- Refunded fully
- Cancelled as error
- Staff info only
- TypeAction
Considerations for Migration
Migrating as a manual charge versus an automatic charge