# Banking (은행 API)

※ 마지막 업데이트: 2023-05-16



## 정의

* 네임스페이스: GST.PlusWin6.Banking
* 어셈블리: GST.PlusWin6.Banking.dll

## 종속성

* GST.PlusWin6.Dtos.dll (API 통신에 필요한 데이터 유형(클래스)이 정의된 어셈블리)
* DevExpress Library (인터넷 뱅킹 이용자 정보를 입력받는 폼에서 참조)

## 설명

* 각 은행에서 제공하는 API는 PW6 백엔드 서버에 REST API 형태로 서비스가 구현되어 있으며, C# 윈폼(Windows Forms) 개발 환경에서 REST API 사용을 쉽게하기 위하여 클라이언트용 클래스를 제공



## KB 국민은행 표준 API (Baro ERP)

* KB국민은행에서 "BaroERP.exe" 실행 모듈 제공을 통해 인터페이스를 지원하고 있음
* 국민은행에서 배포하는 **"바로ERP 표준API 개발가이드"(이하 개발가이드) 파일을 반드시 참고**
* 클라이언트용 BaroERPClient 클래스를 참조하여 개발하며 모든 메서드는 개발가이드 파일에 JSON 포맷의 DTO 형식으로 값을 반환
* 은행 코드는 공통 코드 "SYS081", 카드 코드는 "SYS082"를 사용



### 사용자(고객사) 안내

* 국민은행 인터넷뱅킹을 가입하고, 바로 ERP 약정을 진행해야 사용 가능
* \[바로 ERP 약정 절차] : 국민은행 홈페이지 > 기업 > Star CMS > 부가서비스 > 바로ERP > 서비스약정



### BaroERPClient&#x20;

### \<Constructor>

```csharp
public BaroERPClient();

public BaroERPClient(string baseHost, string jwt, string refreshToken);
```



### \<Property>

### BaseHost

* PW6 백엔드 서버 주소

```csharp
public string BaseHost { get; set; }
```

### Jwt

* 로그인 인증 JWT

```csharp
public string Jwt { get; set; }
```

### RefreshToken

* 로그인 인증 RefreshToken

```csharp
public string RefreshToken { get; set; }
```



### \<Method>

### SetBankingInfo

* 인터넷 뱅킹 ID와 비밀번호를 설정

```csharp
public void SetBankingInfo(string id, string password);
```



### SetBankingInfoFromPopup

* 인터넷 뱅킹 ID와 비밀번호를 설정하는 팝업 실행
*

    <div align="left"><figure><img src="https://1258057271-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FN7mAtb6b5ngySagoioAF%2Fuploads%2F9XDvu5RwcOHy1V7Dqk4i%2Fimage.png?alt=media&#x26;token=b5ca2bd4-735a-47c4-8c55-f40a61105dc8" alt=""><figcaption></figcaption></figure></div>

```csharp
public void SetBankingInfoFromPopup();
```



### OpenBatchScrappingSite

* \[일괄 조회] 사이트([https://cms.kbstar.com/quics?page=C066759](https://cms.kbstar.com/quics?page=C066759)) 실행
* 일괄조회: 대외기관(예: 타은행, 카드사, 국세청 등)에서 제공하는 정보를 가져오기 위해 StarCMS에서 최신 정보를 스크래핑

```csharp
public void OpenBatchScrappingSite();
```



### OpenTransferAndApprovalSite

* \[이체 및 결재] 사이트([https://cms.kbstar.com/quics?page=C066733](https://cms.kbstar.com/quics?page=C066733)) 실행

```csharp
public void OpenTransferAndApprovalSite();
```



### \<Functions>

* 전체 72개 중 19개 구현 (필요한 기능이 있을 경우 요청할 것)

| API No. \[거래코드]        | 기능명                   | 메서드 이름                                      |
| ---------------------- | --------------------- | ------------------------------------------- |
| 3.1) \[KFK12DF340]     | 예금주성명조회               | GetDepositor                                |
| 3.2) \[KFK124A240]     | 예금계좌잔액조회              | GetAccountInfo                              |
| 3.3) \[KFK124A141]     | 예금계좌 거래내역조회           | GetTransactionHistory                       |
| 3.4) \[CA2010]         | 10건이하이체 등록            | RegisterTransferOfSmall                     |
| 3.5) \[CA1150]         | 대량이체 등록               | RegisterTransferOfLarge                     |
| 3.6) \[CA1031]         | 급여이체 등록               | RegisterTransferOfSalary                    |
| 3.7)                   | 지로 조회납부 조회            |                                             |
| 3.8)                   | 지로 조회납부 등록            |                                             |
| 3.9)                   | 지로 입력납부 등록            |                                             |
| 3.10)                  | 국세 조회납부 조회            |                                             |
| 3.11)                  | 국세 조회납부 조회            |                                             |
| 3.12)                  | 국세 자진납부 등록            |                                             |
| 3.13)                  | 건별 전자납부번호 관세납부 조회     |                                             |
| 3.14)                  | 10건이하 관세납부 조회         |                                             |
| 3.15)                  | 10건이하 관세납부 등록         |                                             |
| 3.16) \[CB1101211]     | ERP 거래 등록내역조회         | GetERPTransactionRegistrationList           |
| 3.17)                  | 가상계좌 입금내역조회           |                                             |
| 3.18)                  | 가상계좌 계좌내역조회           |                                             |
| 3.19) \[CA0008]        | 출금계좌목록 조회             | GetWithdrawalAccountList                    |
| 3.20)                  | 전체회원사 조회              |                                             |
| 3.21)                  | 관세사/무역업체조회            |                                             |
| 3.22)                  | 일반지로장표구분조회            |                                             |
| 3.23)                  | 외화예금거래내역조회(보통예금)      |                                             |
| 3.24)                  | 외화송금 처리결과 조회          |                                             |
| 3.25)                  | 거래확인증(당행외화송금)         |                                             |
| 3.26)                  | 해외은행송금 등록             |                                             |
| 3.27)                  | 국내간송금(당행외화이체)         |                                             |
| 3.28)                  | 국내간송금(타행외화이체)         |                                             |
| 3.29)                  | 외상매출채권 구매기업 채권명세 등록   |                                             |
| 3.30)                  | 구매자금대출 추심명세등록         |                                             |
| 3.31)                  | 환율조회                  |                                             |
| 3.32)                  | 일중환율변동추이              |                                             |
| 3.33) \[CA0001LSELS43] | 타은행수시입출거래내역조회         | GetTransactionHistoryOfOtherBank            |
| 3.34)                  | 타은행외화거래내역조회           |                                             |
| 3.35) \[CA0001LSELS74] | 카드정보조회                | GetCardInfo                                 |
| 3.36) \[CA0001LSELS38] | 카드한도내역조회              | GetCardLimitList                            |
| 3.37) \[CA0001LSELS05] | 카드승인내역조회              | GetCardApprovalList                         |
| 3.38)                  | 카드청구내역조회              |                                             |
| 3.39)                  | 카드대사내역조회              |                                             |
| 3.40)                  | 신용카드매입매출내역조회          |                                             |
| 3.41)                  | 현금영수증매입매출내역조회         |                                             |
| 3.42)                  | 세금계산서매입매출내역조회         |                                             |
| 3.43)                  | 세금계산서매입매출내역상세조회       |                                             |
| 3.44)                  | 실시간집금처리결과조회           |                                             |
| 3.45)                  | 자동집금처리결과조회            |                                             |
| 3.46)                  | 자동집금처리결과상세조회          |                                             |
| 3.47) \[CA0001LSELS39] | 사업자번호조회               | GetBusinessNumber                           |
| 3.48)                  | 집금대상그룹조회              |                                             |
| 3.49)                  | 글로벌은행거래내역상세 조회        |                                             |
| 3.50) \[CB1101311]     | 이체결과내역조회              | GetTransferHistory                          |
| 3.51) \[CA0001LSELS09] | 카드승인다건내역조회            | GetCardApprovalMultiList                    |
| 3.52) \[CA0001LMLCB00] | 전체계좌목록조회              | GetAccountList                              |
| 3.53) \[CA0001LSELS28] | 타행계좌목록조회              | GetAccountListOfAnotherBank                 |
| 3.54)                  | 외화송금 상세처리결과 조회        |                                             |
| 3.55)                  | 가입여부 확인               |                                             |
| 3.56)                  | 지방세 자치단체별 구분 조회       |                                             |
| 3.57)                  | 지방세 간략 조회             |                                             |
| 3.58)                  | 지방세 상세 조회             |                                             |
| 3.59)                  | 지방세 선택납부 등록           |                                             |
| 3.60)                  | 지방세 전체납부 등록           |                                             |
| 3.61)                  | 지로납부 간략 조회            |                                             |
| 3.62)                  | 지로납부 상세 조회            |                                             |
| 3.63)                  | 지방세 납부내역 간략조회         |                                             |
| 3.64)                  | 지방세 납부내역 상세조회         |                                             |
| 3.65)                  | 지방세 전체납부 납부내역 간략조회    |                                             |
| 3.66)                  | 지방세 전체납부 건별 납부내역 간략조회 |                                             |
| 3.67)                  | 지방세 전체납부 납부내역 상세 조회   |                                             |
| 3.68)                  | 관세납부 단건 등록            |                                             |
| 3.69)                  | ERP 거래 등록내역 삭제        |                                             |
| 3.70) \[BFE72P80S1]    | 오픈뱅킹 타행 계좌목록조회        | GetOpenBankingAccountListOfAnotherBank      |
| 3.71) \[BFE72P20S9]    | 오픈뱅킹 타행 계좌거래내역조회      | GetOpenBankingTransactionHistoryOfOtherBank |
| 3.72)                  | 오픈뱅킹 잔액모으기 등록         |                                             |



### \<Guide>

* 메뉴 폼 클래스 내 BaroERPClient 타입의 필드 멤버를 정의

```csharp
private BaroERPClient _BaroERPClient = null;
```

* 생성자에서 BaroERPClient 개체를 초기화

```csharp
public SY_Z1000(params object[] args) : base(ref args)
{
    InitializeComponent();
    
    _BaroERPClient = new BaroERPClient();
    
    ...
}
```

* 이후 BaroERPClient 개체의 메서드를 사용하여 각 폼 컨셉에 맞는 기능을 구현



### \<Example>

* GridView에 은행코드와 계좌번호를 입력하고 셀의 돋보기 버튼을 클릭하면 예금주가 세팅되도록 하는 기능의 예시입니다.

<figure><img src="https://1258057271-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FN7mAtb6b5ngySagoioAF%2Fuploads%2FQJ2MTbVknyTrF035WaSA%2Fimage.png?alt=media&#x26;token=73596e91-00bb-4cd4-a476-545de58ef3e8" alt=""><figcaption></figcaption></figure>

```csharp
private BaroERPClient _BaroERPClient = null;

public AC_Z0000()
{
    InitializeComponent();
    _BaroERPClient = new BaroERPClient();
    ... 

    riBteAccountNumber.ButtonClick += OnButtonClick;
}


private void OnButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
{
    string bankCode = gvwList.GetFocusedRowCellValue("bank_code")?.ToString() ?? string.Empty;
    string accountNumber = gvwList.GetFocusedRowCellValue("account_number")?.ToString() ?? string.Empty;

    if (!string.IsNullOrEmpty(bankCode) && !string.IsNullOrEmpty(accountNumber))
    {
        DpstrOutDTO result = _BaroERPClient.GetDepositor(bankCode, accountNumber);

        string depositor = string.Empty;
        if (result?.rtn_code?.Equals("0000") ?? false)
        {
            depositor = result.mnrcv_acn_dpstr_name;
        }
        
        gvwList.SetFocusedRowCellValue("depositor", depositor);
    }
}
```



