Skip to Content
Author's profile photo Francisco Lopez

SAP S/4HANA Finance 1610 – Bank Configuration

During the implementation of S/4HANA OP1610, we encountered difficulties in the customizing of Banks. In SPRO customizing options, the Performance Assistant, describes the use of Fiori Apps as the only way to configure banks in S/4HANA, but it is possible to configure them from the system, using another method.

These are the screens of what the system tells us when customizing in the following path (Transaction FI12): Financial Accounting (New) -> Bank Accounting -> Bank Accounts -> Define House Banks.


We can configure Banks following these steps:

1. First, we need to configure banks through transaction FI12_HBANK, as this is the new transaction in S/4HANA which replaces the obsolete FI12. To do this, it is necessary to implement the following SAP Note 2377529. After doing this, you will be able to configure the banks as usual.

2. You will notice that it is not possible to create and/or assign the account ID to banks. This is due to the changes in the system. The details are explained though the SAP Note 2424544.

3. If you follow the resolution in the SAP Note above, it says that the Bank Account ID, can be configured using the application “Manage House Banks” in transaction NWBC or Fiori Launchpad. So this gives an alternative to Fiori.

4. If you try to use the button “Create new bank account”, it won’t be possible, and the following message is displayed:

5. This message tells us that some configuration is missing. The customizing (SPRO) needed is showed now under the path: Financial Supply Chain Management -> Cash and Liquidity Management -> Bank Account Management -> Basic Settings

There is a missing part in the SAP Notes, and it is needed in order to configure Banks: It is mandatory to “Define Number Ranges for Bank Account Technical IDs” and “Define Number Ranges for Change Requests”.

6. When this customizing is done, we can return to Transaction NWBC. After clicking on the “New Bank Account” button, the menu for further configuration will be displayed. and the resolution in SAP Note 2424544 covers the rest. Using the “Connectivity Path”, you will find the field to assign the account ID for Bank, and you will be able to see it as usual in table T012K.

Note: If you use Fiori, an application for workflow might be needed in order to reflect the changes in table T012K.

I hope this information turns out to be helpful in your future implementations.

Kindest Regards.

Francisco López

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Kazim Rizvi
      Kazim Rizvi

      Hi Francisco, Please follow the configuration guide in the below link



      Author's profile photo Albert Chapman-Layland
      Albert Chapman-Layland

      Incidentally, we were having some difficulties getting the NWBC to work.  In the interim, to move things forward, I found there was a function group called 'FCLM_BAM_AMD' that I used to get the house bank account created and linked to the bank from FI-BL and created in BAM. Use at your own risk, but here is the program.  I would not use this for production purposes; it was just to help us continue prototyping while the tech guys sorted out the NWBC issues.

      *& Report ZCREATE_HBANK
      REPORT zcreate_hbank MESSAGE-ID 00.
      PARAMETERS p_bukrs TYPE bukrs OBLIGATORY DEFAULT '0001'.
      PARAMETERS p_acc TYPE fclm_bam_acc_num OBLIGATORY DEFAULT '432156789'.
      PARAMETERS p_desc TYPE fclm_bam_description OBLIGATORY DEFAULT 'SQUIDWARD'.
      PARAMETERS p_bene TYPE fclm_bam_beneficiary_name OBLIGATORY DEFAULT 'GIVE ME SOME CASH'.
      PARAMETERS p_commit TYPE boole_d DEFAULT ' '.
      PARAMETERS p_hktid TYPE fclm_bam_aclink_hbkid OBLIGATORY DEFAULT 'SQUID'.
      PARAMETERS p_bankn TYPE bankn OBLIGATORY DEFAULT '432567841290'.
      PARAMETERS p_hkont TYPE hkont OBLIGATORY DEFAULT '1800000'.
      DATA ls_t012 TYPE t012.
      DATA lt_db_amd TYPE fclm_bam_t_db_amd.
      DATA ls_db_amd TYPE fclm_bam_amd.
      DATA lt_msg TYPE bapirettab.
      DATA lt_db_amd_t TYPE fclm_bam_t_db_amd_t.
      DATA ls_db_amd_t TYPE fclm_bam_amd_t.
      DATA lt_db_amd_cur TYPE fclm_bam_t_db_amd_cur.
      DATA ls_db_amd_cur TYPE fclm_bam_amd_cur.
      DATA lt_db_ac_link2 TYPE fclm_bam_t_aclink2.
      DATA ls_db_ac_link2 LIKE LINE OF lt_db_ac_link2.
      FROM t012
      INTO ls_t012
      WHERE bukrs = p_bukrs AND hbkid = p_hbkid.
      IF sy-subrc <> 0.
        MESSAGE e398 WITH 'Invalid bukrs and bank ID' p_bukrs p_hbkid.
      MOVE-CORRESPONDING ls_t012 TO ls_db_amd.
      ls_db_amd-acc_num = p_acc.
      ls_db_amd-valid_from = '20190101'.
      ls_db_amd-valid_to = '99991231'.
      ls_db_amd-status = '02'."active
      ls_db_amd-acc_type_id = '02'."Current Account.   See FCLM_BAM_AC_TYPE
      ls_db_amd-beneficial = p_bene.
      APPEND ls_db_amd TO lt_db_amd.
      ls_db_amd_t-mandt = sy-mandt.
      ls_db_amd_t-langu = 'E'.
      ls_db_amd_t-description = p_desc.
      APPEND ls_db_amd_t TO lt_db_amd_t.
      ls_db_amd_cur-mandt = sy-mandt.
      ls_db_amd_cur-waers = p_curr.
      APPEND ls_db_amd_cur TO lt_db_amd_cur.
      ls_db_ac_link2-mandt = sy-mandt.
      ls_db_ac_link2-valid_from = '20190101'.
      ls_db_ac_link2-valid_to = '99991231'.
      ls_db_ac_link2-bukrs = p_bukrs.
      ls_db_ac_link2-hkont = p_hkont.
      ls_db_ac_link2-hbkid = p_hbkid.
      ls_db_ac_link2-bankn = p_bankn.
      ls_db_ac_link2-hktid = p_hktid.
      ls_db_ac_link2-guid = cl_system_uuid=>create_uuid_c32_static( ).**doens't happen in FM
      APPEND ls_db_ac_link2 TO lt_db_ac_link2.
          it_db_amd      = lt_db_amd
          it_db_amd_t    = lt_db_amd_t
          it_db_amd_cur  = lt_db_amd_cur
      *   IT_DB_AMD_LIM  =
      *   IT_DB_AMD_SIG  =
          it_db_ac_link2 = lt_db_ac_link2
          is_commit      = p_commit
          iv_skipappproc = 'X'
      *   IS_T012K       =
      *   IS_T012T       =
      *   IV_IBAN        =
      *   IV_IBAN_VALID_FROM       =
      *   IV_ACCTYPE     =
          is_t012        = ls_t012
      *   IV_WF_DEACTIVE =
          et_msg         = lt_msg
          failed         = 1
          OTHERS         = 2.
      IF sy-subrc <> 0.
      * Implement suitable error handling here
        LOOP AT lt_msg INTO DATA(ls_msg) WHERE type CA 'AEX'.
          WRITE:/ ls_msg-id, ls_msg-number, ls_msg-type, ls_msg-message, ls_msg-message_v1, ls_msg-message_v2, ls_msg-message_v3, ls_msg-message_v4.
      WRITE:/ 'Bank account', p_bukrs, p_hbkid, 'transferred to BAM.'.