How do subtypes work?
Helghardt Avenant avatar
Written by Helghardt Avenant
Updated over a week ago

What are subtypes and how do they work?

Subtypes are a way of a) categorizing a transaction and b) representing common transaction flows in the Rehive ecosystem. They are powerful because of the granular controls they allow admins to exert over their business logic.

What are transaction flows?

Rehive’s goal is to make it easy to build and manage a fintech app. Transactions are a core part of any fintech app, and we have identified common types of transactions (peer-to-peer send/receive, merchant features, withdrawals, deposits etc.) that form the backbone of most fintech use cases and bundled these into transaction flows.

Transaction flows represent what the optimal end-to-end experience of a transaction should look like for all involved parties. We want to make it easy for your customers to use your app and have a great experience, and easy for you to set up business rules for your app that fit your use case, help you to comply with regulations, mitigate risk, and efficiently conduct operational business tasks.

Subtypes are the backbone of transaction flows - they are how the Rehive platform and extensions identify and define what transaction flow is taking place. Because the system has a way of recognizing which transaction flow is happening, we are able to build our tools and features to make that transaction flow happen efficiently.

How do subtypes work? What kind of business logic can I implement by using them?

Subtypes give admins the ability to do the following:

  1. Filter different types of transactions according to subtype e.g. show all deposits, withdrawals, sends, receives, sales etc.

  2. Set limits, by group, on certain transaction flows to manage risk and maintain company floats e.g. setting a limit on withdrawals of funds from the system, while allowing a much higher limit on funds being moved within the ecosystem.

  3. Add fees on specific transaction flows e.g. adding a withdrawal fee.

  4. Control which accounts and currencies a user may conduct certain transaction flows in e.g. allowing peer-to-peer sends in USD but not withdrawals, or disallowing withdrawals from savings accounts.

How do I add a subtype?

Admins can either select subtypes predefined by Rehive and add those to their project, or they can add their own subtypes. It’s recommended that you choose from Rehive’s predefined ones. Any project created on Rehive will have our recommended subtypes added by default.

To add a predefined subtype, navigate to Transactions in the Rehive Admin Dashboard and click “Subtypes” in the transactions submenu. On the transaction subtypes page, click the “Add default subtypes” button near the top right. This will take you to a page where you can select which subtypes you want to add. You’ll be able to see the type, label and description of the subtypes.

To add a custom subtype, on the transaction subtypes page click the “Add subtype” button. When adding a custom subtype:

  • Select if it is a credit or debit subtype.

  • Select the usage type. Usage type is an optional way of adding additional limitations on your subtype i.e. that it can only be used alone (single) or can only be used with another subtype as part of a transfer (partner). Select “Null” if you don’t want to add a usage limitation.

  • Select a partner subtype if usage type is partner. (Coming soon)

  • Add the subtype’s name. A label will autogenerate, but you can rename it if you want.

  • Add a subtype description about how the subtype should be used.

What are the reserved subtypes?

You can view the reserved list of Rehive subtypes in the "Transaction subtypes" section of the Rehive Standard Configurations document.

How do subtypes link to fees and limits?

Fees

There are two ways subtypes work with fees:

  1. When setting up a fee, an admin can decide what fee structure works best for their business use case. Admins can then set up fees on specific transaction flows e.g. setting up a fee on withdrawals or internal sends.

  2. When a fee is triggered, it creates a separate fee transaction. When creating a fee, admins must select what subtype that fee transaction will be. Setting a subtype for fees allows admins to track fees more easily.

Limits

Limits can be set per group tier per subtype per currency e.g. users in the customer group can have a limit on sending USD when on tier 1. Subtypes allow admins to set more granular controls on limits, where different limits can be set on different transaction flows.

How do subtype controls work? What are all the areas they can be configured on?

Subtype controls allow admins to define their business logic and have more granular control over their transaction flows and user experience in the app. Subtype controls can be set on 4 different levels:

  • Global

  • Group

  • Group tier

  • Single user account

Globally, for a specific group, or for a particular group tier, admins can set the following controls per subtype:

  • Allow or disallow a subtype e.g. disallow withdrawals for the “business” group.

  • Allow or disallow one or more currencies for a specific subtype e.g. disallow USD for send subtypes for the “individual” group, tier 1.

  • Allow or disallow a subtype for one or more accounts for a specific subtype e.g. disallow deposits for savings accounts globally.

  • Allow or disallow a subtype for combinations of currencies and accounts e.g. disallow EUR for deposits on both savings and general accounts, and also disallow USD withdrawals from general accounts, on specific groups and tiers.

On single user accounts, the account is already specified, so admins can only disallow one or more currencies per subtype.

If subtypes are disallowed in general or for specific currencies or accounts, those subtype actions will not be available in the app, helping to define the user experience of the app and making it easy for end users to see what transaction activities are available to them.

How do I hide or restrict transaction flows and actions on accounts using subtypes?

You can use subtype controls to restrict transaction flows and actions on accounts.

Globally, for a specific group, or for a particular group tier, admin can set the following controls per subtype:

  • Allow or disallow a subtype e.g. disallow withdrawals for the business group.

  • Allow or disallow one or more currencies for a specific subtype e.g. disallow USD for send subtypes for the personal group tier 1.

  • Allow or disallow a subtype for one or more accounts for a specific subtype e.g. disallow deposits for savings accounts globally.

  • Allow or disallow a subtype for combinations of currencies and accounts e.g. disallow EUR for deposits on both savings and general accounts, and also disallow USD withdrawals from general accounts

On single user accounts, the account is already specified, so admins can only disallow one or more currencies per subtype.

Did this answer your question?