.. meta:: :description: Customers Management in Centiwise manager UI: module for designing custom payment flows tailored to specific merchant business processes. .. _customer_management: Customers Management #################### .. role:: ex .. role:: code Introduction ============ Customer Management - is a module which allows to set custom payment flow. It is located at Settings -> Customers management. This screen contains the list of all Merchants in the system tat are connected to Customers Management. | .. image:: ../_static/images/CMStotal.png :width: 700 :align: center :alt: pic107 manager faq | On this screen it is possible to make a search by Merchants or to add new Merchant(Configuration) into the Customer Management module by pressing :code:`Add new` button on the right top corner of the screen. Adding New Merchant To Customer Management ========================================== After pressing :code:`Add new` button, this screen will popup: | .. image:: ../_static/images/cmsNewMerchant3.png :width: 350 :align: center :alt: pic107 manager faq | First select the Merchant in :code:`Merchant` field which will be connected to Customer Management system. | Then select one of the operation mode - :code:`CRM(API)` or :code:`Payment Gateway`. - :code:`CRM(API)` - allows to determine Customer by :ex:`merchant customer id`. Not configured levels are created if :ex:`customer level` parameter is present in API calls. - :code:`Payment Gateway` - allows to determine Customer by internal :ex:`customer id`. | .. warning:: Please note that for proper operation, the parameter must match the Client Definition value set on the endpoint or project In default behavior select either :code:`Project` or :code:`Unknown Level`. - :code:`Project` - In case if not configured customer level is present in API calls, Project and Endpoint settings (:code:`Client definition`) will be used. - :code:`Unknown Level` - In case if not configured customer level is present in API calls, Unknown level settings will be used. | .. warning:: Any misconfiguration may lead to payment processing stop. After selecting :code:`Operation mode` and :code:`Default behaviour`, (by choice) select one of the choices or both: - Reset individual payment settings when customer level changed. - Automatically add all merchant projects to Unknown level - Reset show in from when changing customer level. | After adding Merchant to Customer Management it is possible to edit or delete configuration. CRM ------------------------------ :code:`CRM (API)` - allows to determine Customer by :ex:`merchant customer id`. | Parameters used in :code:`CRM` configuration: - :ex:`merchant_customer_identifier` - :ex:`customer_level` .. warning:: customer_id should not be included in the request. .. uml:: :align: center title CRM operation mode start :(1) Receiving [merchant_customer_identifier] and [customer_level] from Connecting Party; if ( (2) System will check if such user was already registered in Customer Management. Does customer with such [merchant_customer_identifier] already exist? ) then (Yes) :(3) Customer was already registered in Customer Management. Customer is being identified by merchant_customer_identifier; :(4) Routing will be chosen according to the level sent in the request. Customer level in the system will be set equal to customer_level in request.; else (No) :(5) Registering new customer in Customer Management with id passed in merchant_customer_identifier. New Customer is being identified by merchant_customer_identifier; :(6) Routing will be chosen according to the level sent in the request. Customer level in the system will be set equal to customer_level in request.; endif :(7) Routing being adjusted according to level specifications.; stop | (3), (5) :ex:`merchant_customer_identifier` should not be passed with empty value. If :ex:`merchant_customer_identifier` is sent with an empty value, the customer will be created in Customer Management and can only be identified using the Client Definition configured at the Project or Endpoint level. | (4), (6) In case of :ex:`customer_level` being sent empty, customer will be granted an empty level or :code:`Unknown level`, if :ex:`Unknown level` Default Behaviour was configured. .. warning:: Parameters being sent improperly could lead to transactions being incorrectly routed or not being processed entirely. Payment Gateway ------------------------------ :code:`PNE (GATE)` - allows to determine Customer by internal customer id. | Parameters used in :code:`PNE` configuration: - :ex:`customer_id` - :ex:`customer_level` .. warning:: merchant_customer_identifier should not be included in the request. .. uml:: :align: center title PNE (GATE) operation mode start :(1) Receiving [customer_id] and [customer_level] from Connecting Party.; if ( (2) System will check if such user was already registered in Customer Management. Does customer with such [customer_id] exist? ) then (yes) :(3) Customer was already registered in Customer Management. Customer is being identified by customer_id; :(4) Routing is chosen according to the level of customer in Customer Management. Customer level in the system will be set equal to customer_level in request.; else (No) :(5) In case of customer with customer_id value sent in the request have not been found in Customer Management, routing rules won't be applied.; endif :(7) Routing being adjusted according to level specifications; stop | (3), (5) In case of :ex:`customer_id` being sent empty, :ex:`Client Definition` set on Project or Endpoint level being checked and if no customer found, new customer with new :ex:`customer_id` will be created. | (4), (6) In case of :ex:`customer_level` being sent empty, routing will be set according to :ex:`Unknown level` or :ex:`Project` default behavior that was configured. .. warning:: Parameters being sent improperly could lead to transactions being incorrectly routed or not being processed entirely. If Auto leveling is enabled for the Merchant, Customer level can also change automatically based on accumulated transaction history, independently of this request flow — see :ref:`Auto Leveling `. Level Configuration =================== Level configuration can be done for :code:`Deposits` and :code:`Withdrawals`. In order to add configurations press :code:`+Add` button and select the name, currency and projects. | .. image:: ../_static/images/CMSAddLevelV2.png :width: 500 :align: center :alt: pic107 manager faq | .. note:: The currency may vary based on the currencies in which the Merchant's Projects are available. | .. image:: ../_static/images/CMSLevelScreen.png :width: 500 :align: center :alt: pic107 manager faq | :code:`unknown` is a default level that will be created automatically. | On the screen shown above, all levels will be displayed with the next information: - :code:`Level name` - :code:`Currency` - supported currencies on the level - :code:`Projects` - all Merchant's projects that are connected to Customer Management. - :code:`Created` and :code:`Modified` - which will show the time - configuration was created or modified. | Configuration for a specific currency can be toggled on/off or whole configuration can be deleted. Press edit button to add/remove projects from level. Customer level configuration ---------------------------- Press on :code:`Level Name` to access Customer level configuration. In opened window select :code:`Level configuration` to setup custom payment flow for Customer level or Filters to add additional checks for level. .. image:: ../_static/images/CMScustomerlevel.png :width: 500 :align: center :alt: pic107 manager faq | This screen will display information about level such as - :code:`Payment direction` - Deposit or Withdrawal, :code:`Currency`, :code:`Level name`, :code:`Status` - which shows the status of level (active/disabled). | .. image:: ../_static/images/CMSconfig.png :width: 500 :align: center :alt: pic107 manager faq | In :code:`Payment methods` section all available methods for Payment Cashier will be displayed. By pressing on any of the methods :code:`Configuration` window will popup. | In :code:`Configuration` section press :code:`Reset to default` to restore all setup to default; | Check or uncheck the :code:`Show in form` box to show/hide selected payment method from the Payment Cashier Form; | Set min/max amount which will set or override these parameters on Endpoint level. | Press :code:`Save` button for the configuration to be applied. | | In :code:`Gate list` select which Routing route or gate will be available for selected level. | | After all configurations - changed payment methods will be moved to :code:`Edited` tab. All unchanged methods will be shown in :code:`Default` tab. .. _auto_leveling: Auto leveling ---------------------------- Auto leveling allows Customer level to be changed automatically, based on configured rules, without manual intervention from Manager. .. note:: Auto leveling is only available when Customer Management is configured in :code:`Payment Gateway` (PNE) operation mode. Transactions are being counted only for card/email :code:`Client Definition` configurations on Endpoint/Project. Rules are configured separately for :code:`Deposit` and :code:`Withdrawal` payment directions. | .. image:: ../_static/images/CMSAutoLeveling.png :width: 500 :align: center :alt: pic107 manager faq | - :code:`Collect Data from` - selects the entity whose transaction history is used to calculate the rule: :code:`Merchant` or :code:`Manager`. - :code:`Type of calculation` - selects which transaction metric triggers the level change: :code:`Count`, :code:`Amount`, :code:`Count and Amount` or :code:`Count or Amount`. .. note:: :code:`Currency` selection is only available for :code:`Amount`, :code:`Count and Amount` and :code:`Count or Amount` types of calculation. | .. image:: ../_static/images/CMSAutoLevelingAddRule.png :width: 500 :align: center :alt: pic107 manager faq | For each level added to the rule, :code:`Level name` should be selected, together with the threshold value(s) required for :code:`Customer` to reach that level, depending on the selected :code:`Type of calculation`. | .. warning:: Customer level is changed by only one level at a time, even if the transaction count/amount would be enough to cover several levels in the line. Transactions are counted within a rolling 180-day window from the last level change, and any amount exceeding the current level's threshold is carried over towards the next level for the remainder of that window. Auto leveling does not automatically downgrade a Customer level. | New Customers tracked under an Auto leveling rule are assigned the first level of the rule's line, rather than the :code:`unknown` level, since :code:`unknown` remains a technical level for projects not connected to a rule. .. note:: This behaviour applies only to Customers created under an Auto leveling rule and does not change the :code:`Default behaviour` (:code:`Project` / :code:`Unknown Level`) configured for the Merchant. Filters ------- Transaction filters in System are intended for rejection of certain transactions on various reasons. | .. image:: ../_static/images/CMSFiltersV2.png :width: 500 :align: center :alt: pic107 manager faq | There are three level filters: - Сustomer id usage frequency for last 24 hours (daily limit) - Сustomer id usage frequency for last 7 days (weekly limit) - Сustomer id usage frequency for last month (monthly limit) | .. list-table:: :widths: 40, 50, 10 :header-rows: 1 :class: longtable table-text-justify table-text-center * - Name - Description - Value * - amount limit - maximum total transactions amount for the last 24 hours (week, month) for exact Customer id - 99999 * - calendar week starts from Sunday - | "Yes": calendar week starts from Sunday, | "No": calendar week starts from Monday - Yes/No * - for all merchant currencies in CMS - current total transactions amount or count for the last 24 hours (week, month) for this customer id would be calculated "Yes": for all merchant levels in all currencies in payment direction (Deposit or Withdrawal) and converted to the currency of the current level for comparison with the amount limit "No": for current level only - * - quantity limit - maximum total transactions count for the last 24 hours (week, month) for exact Customer id - 99999 * - subtract Cancel transactions - - * - use calendar day - - **Error codes** .. list-table:: :widths: 25, 25, 50 :header-rows: 1 :class: longtable * - # - Code - Name * - 19000 - - Daily amount limit exceeded for customer id * - 19001 - - Daily quantity limit exceeded for customer id * - 19002 - - Weekly amount limit exceeded for customer id * - 19003 - - Weekly quantity limit exceeded for customer id * - 19004 - - Monthly amount limit exceeded for customer id * - 19005 - - Monthly quantity limit exceeded for customer id Customers ========= Individual configuration can be done for :code:`Customers`. Depending on the parameter that were sent (:code:`customer_id`, :code:`customer_level`, :code:`merchant_customer_identifier`), customer can be created automatically or manually through :code:`Customers` screen. Press on :code:`Customers` in order to access the :code:`Customers` screen. .. image:: ../_static/images/CMSCustomersScreenV2.png :width: 500 :align: center :alt: pic107 manager faq | All customers with brief information will be displayed on this screen. .. image:: ../_static/images/CMScustomerfilter2.png :width: 500 :align: center :alt: pic107 manager faq | As shown on the image above, press :code:`1` - :code:`Show filter` to open additional criterion for search. In popp up screen select next criterion: (Payment Gateway's) Customer IDs, Merchant Customer IDs, Deposit level name, Withdrawal level name, Email or Date range (creation dates). | It is possible to add,change or delete information from the :code:`2` bar or through filter section. | Select group of customers or all of them to :code:`Set global limit` or :code:`Change level` - for all selected customers. | Press :code:`Create` to create new customer. | .. image:: ../_static/images/CMScreatecustomerV2.png :width: 500 :align: center :alt: pic107 manager faq | Press :code:`Download` to download list of all customers with their details. | | Press :code:`Upload` to upload the list of the customers with their details using the options, shown below: .. image:: ../_static/images/CMSuploadV2.png :width: 500 :align: center :alt: pic107 manager faq | :code:`Upload CSV` - for uploading the list of customers; | :code:`Download template` - for downloading an example file; | :code:`gen mock` - for generating customers with fake data. .. image:: ../_static/images/CMSuploadUpdate.png :width: 500 :align: center :alt: pic107 manager faq | :code:`Upload CSV` - for uploading the list of existing customers with new configuration; | .. note:: The uploaded file fully overwrites the configuration: existing data may be not only added, but also overwritten or erased. Make sure the file contains complete and correct data. Common Settings --------------- By pressing on any customer's ID next window will pop-up: | .. image:: ../_static/images/CMScustomerconfig.png :width: 500 :align: center :alt: pic107 manager faq | In :code:`Common settings` all customer information will be shown. Under Actions menu, press :code:`Edit info` to change customer information except :code:`Customer ID` and :code:`Merchant customer ID`. The :code:`Virtual terminal` button will allow to open the virtual terminal with al customer information directly from this screen. :code:`All orders` will show all orders associated with customer. Individual Payment Settings --------------------------- Individual payment settings allows to setup Cashier Payment Form for each customer separately. First choose level and currency for the setup. Then select :code:`Use as global limit for customer` if min/max amount for currency should be applied for all available solutions . Select :code:`Payment methods` and apply setup if needed. By pressing :code:`Virtual terminal` button Virtual terminal with all customer information will be opened.