Business Process
BusinessProcess
is any process that can cause balance change of Coin
. It’s main purpose is grouping Transaction
s by business function they perform. For example, GateProcess
can have up to 8 Transaction
s: several funds holds, accounting transfers, hold captures etc. So to show transaction history for a user we need to group them into a “container” which is our BusinessProcess
. BusinessProcess
class is defined as abstract to force developer to specify related business information in each implementation. JPA inheritance strategy is JOINED
, so each subclass must have it’s own table and therefore migration for it.
Business Process Classes
Process Type | Purpose | Comments |
---|---|---|
BankProcess | Business process for top up or withdrawal via bank. | |
CardAttachmentProcess | Business process of Payment Card verification. | |
CardRefundProcess | Returning funds to customer after they performed “processed” card payment. | |
CashDeskProcess | Process of manipulations with client coin via cash desk. Possible manipulations are: charge, redeem. | |
CashbackPaymentProcess | Payment for an invoice created by a merchant. | |
ClientTransactionProcess | Transaction between two coins. Possible operations are: transfer between two client coins, splitting one client coin into two, merge two client coins into one, issue of a client coin, checking balance of a client coin, withdrawal from a client coin, issuing a prepaid coin or transfer from client’s coin to a prepaid coin, transfer from a prepaid coin to a client coin. | |
ContractTransitProcess | Payment for a new contract settings. | |
DepositProcess | Operation, occurred with deposit coin: deposit top-up, payment of a profit form deposit, capitalization of profits, accruing deposit, paying out a deposit. | |
ExchangeProcess | Exchange process between coins. | |
ExchangeReserveProcess | Business process for top up or withdrawal exchange reserve wallet via bank. | |
TopUpExchangeProcess* | Process specifies top up part of an exchange process | *deprecated in V4.17.0 new process: ExchangeProcess |
WithdrawExchangeProcess* | Process specifies withdraw part of an exchange process. | *deprecated in V4.17.0 new process: ExchangeProcess |
GateProcess | Manipulation with a coin via gate: top-up, withdrawal, product purchase. | |
MerchantBaseProcess | ||
MerchantInvoiceProcess | Customer pays for the invoice from merchant. | |
MerchantPaymentProcess | Customer pays for merchant’s product. | |
SystemCashProcess | ||
CashReserveProcess | Transfer of cash or securities from cash desk or provider account coin to reserve coin and vice versa. | |
InvestmentProcess | Input of cash or securities into the system to cash desk or provider account coin. |
Business Process Types
businessProcess class | businessProcess. businessProcessType | UI field name (filter “Types”) | businessProcessType |
---|---|---|---|
GateProcess | gate_redeem | Withdrawal via provider | withdrawal from client coin through gate provider |
ClientTransactionProcess | client_transaction_transfer | Transfer | transfer from one client coin to another (from client1 coin to client2 coin) |
ClientTransactionProcess | client_transaction_issue | Account creation | creation a new client coin (transaction with amount = 0) |
ClientTransactionProcess | client_create_prepaid | Voucher creation | voucher creation from client coin |
ClientTransactionProcess | client_charge_prepaid | Voucher activation | payment of voucher amount to client coin |
MerchantPaymentProcess | merchant_payment | Merchant payment | payment for merchant goods and services to merchant coin |
MerchantInvoiceProcess | merchant_invoice | Invoice | the payment for the invoice that was created by merchant. |
GateProcess | gate_charge | Top up via provider | top up of client coin through gate provider |
GateProcess | gate_purchase | Purchase via provider | product purchase using client coin |
GateProcess | gate_issue_card | Issue Card | issue card using client coin |
ExchangeProcess | exchange_transaction | Currency exchange | currency exchange operation |
ExchangeReserveProcess | exchange_reserve_top_up | Top up Exchange reserve | top up of exchange reserve coin from bank account |
ExchangeReserveProcess | exchange_reserve_withdraw | Withdraw Exchange reserve | withdraw from exchange reserve coin to bank account |
CashDeskProcess | cash_desk_redeem | Withdrawal via cash desk | withdrawal from client coin through cash desk |
CashDeskProcess | cash_desk_charge | Top up via cash desk | top up of client through cash desk |
InvestmentProcess | cash_investment | Provider/cash desk account top up | investment money to cash desk |
CashReserveProcess | cash_collect | Cash collect | money movement between cash desks (collect money) |
CashReserveProcess | cash_input | Cash input | money movement between cash desks (input money) |
ContractTransitProcess | contract_transit | Contract change fee | |
BankProcess | bank_topup | Topup via bank | top up of client coin from bank account |
BankProcess | bank_redeem | Withdrawal via bank | withdrawal from client coin to bank account |
Business Process Statuses
BusinessProcessStatus
reflects step in BusinessProcess
flow.
Business process is created in either pending
or limited
statuses and transits to declined
, rejected
, error
or processed
, waiting_for_approval
statuses.
See more details about limited operations management
Status | Meaning | Comments |
---|---|---|
limited | Process was restricted by limit profile and need to be approved | |
pending | Process was created and is waiting for processing or declining | |
declined | Pending process was declined | |
processed | Pending process has been processed | |
error | Error occurred while processing. | |
rejected | Limited process has been rejected by anti-fraud | |
waiting_for_approval | Process was created and is waiting for approval by Compliance or Administrator |
Business Process Flow
Status | Can transit to | Transition Reason |
---|---|---|
pending | processed | Pending process was completed successfully. |
declined | Pending process was declined because of some decision. For example, when accountant decides to decline request to withdraw funds via cash desk. | |
error | Pending process failed due to some internal exception. | |
limited | processed | Limited process, which was approved by anti-fraud specialist, was completed successfully. |
rejected | Limited process was rejected by anti-fraud specialist. | |
pending | Limited process, which was approved by anti-fraud specialist, was requested to process again. | |
error | Limited process failed due to some internal exception. | |
waiting_for_approval | pending | Process which was approved by anti-fraud specialist, was requested to process again |
declined | Process which was waiting for approval declined because of some decision. For example, when Compliance decides to decline a request to issue a card via 3rd party provider. | |
error | Process failed due to some internal exception. |