.. _customer_management: Customers Management #################### .. toctree:: :maxdepth: 1 .. contents:: :local: .. 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/CMSnewMerchant1.png :width: 500 :align: center :alt: pic107 manager faq | .. image:: ../_static/images/CMSnewMerchant2.png :width: 500 :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`. | 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 | 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. Level Configuration =================== Level configuration can be done for :code:`Deposits` and :code:`Withdrawals`. In order to add configurations press :code:`+` button and select the currency. | .. image:: ../_static/images/CMSleveladd.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/CMSlevel.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:`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. | Press edit button to change level name or add/remove projects from level or :code:`Delete "currency"` in order to delete the whole configuration for the currency. 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. Filters ------- Transaction filters in System are intended for rejection of certain transactions on various reasons. | .. image:: ../_static/images/CMSfilters.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/CMScustomer.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/CMScreatecustomer.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/CMSupload.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. 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. 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.