Duplicate Amount Check (A7) API

An API that checks whether a transaction has already been issued at the same amount. Used for B2B to prevent duplicate issuance.


Test Key Information


API Information

POST/spay/APIVBank.do
Content-Typeapplication/json
테스트https://tbgw.settlebank.co.kr/spay/APIVBank.do
운영https://gw.settlebank.co.kr/spay/APIVBank.do

Important Notes

NOTE

Required for B2B Use

For B2B service, you must call the duplicate amount check API before issuance to verify for duplicates. If a virtual account has already been issued, the issuance request will fail.

Request Parameters

타입 표기법
N숫자A영문H한글AN영문+숫자AHN영문+한글+숫자
예: AN(10) = 영문+숫자, 최대 10byte

params Object

└mchtIdAN(12)Alphanumeric, up to 12 bytes*
Unique merchant ID assigned by Hecto Financial
└verAN(4)Alphanumeric, up to 4 bytes*
Message version
└methodA(2)Alphabetic, up to 2 bytes*
Payment method
└bizTypeAN(2)Alphanumeric, up to 2 bytes*
Business type code
*A7: Duplicate Amount Check
└encCdN(2)Numeric, up to 2 bytes*
Encryption type code
└mchtTrdNoAN(100)Alphanumeric, up to 100 bytes*
Merchant order number (same as the order number to be used in the issuance request)
└trdDtN(8)Numeric, up to 8 bytes*
Request date (yyyyMMdd)
└trdTmN(6)Numeric, up to 6 bytes*
Request time (HHmmss)
└mobileYnA(1)Alphabetic, up to 1 bytes
Mobile indicator
Y: Mobile web/app N: PC or other
└osTypeA(1)Alphabetic, up to 1 bytes
OS type
A: Android I: IOS W: Windows M: Mac E: Other

data Object

└pktHashAN(64)Alphanumeric, up to 64 bytes*SHA-256(실시간 생성)
Hash value generated using SHA256
*Transaction date + transaction time + merchant ID + merchant order number + transaction amount (plaintext) + hash key
└bankCdAN(3)Alphanumeric, up to 3 bytes*
Bank code
*Fixed to Kbank
└vAcntNoAN(14)Alphanumeric, up to 14 bytes*AES-256AES-256/ECB/PKCS5Padding + Base64
Virtual account number (phone number + 3 digits for B2B)
└ordNmAN(30)Alphanumeric, up to 30 bytes
Orderer name
└trdAmtN(9)Numeric, up to 9 bytes*AES-256AES-256/ECB/PKCS5Padding + Base64
Transaction amount
└dpstrNmAHN(50)Alphanumeric + Korean, up to 50 bytes
Account holder name

Response Parameters

타입 표기법
N숫자A영문H한글AN영문+숫자AHN영문+한글+숫자
예: AN(10) = 영문+숫자, 최대 10byte

params Object

└mchtIdAN(10)Alphanumeric, up to 10 bytes*nxva_sb_il
Merchant ID
└verAN(4)Alphanumeric, up to 4 bytes*0A18
Message version
└methodA(2)Alphabetic, up to 2 bytes*VA
Payment method
└bizTypeAN(2)Alphanumeric, up to 2 bytes*A7
Business type code
└encCdN(2)Numeric, up to 2 bytes*23
Encryption type code
└mchtTrdNoAN(100)Alphanumeric, up to 100 bytes*ORDER20211231100000
Merchant order number
└trdNoAN(40)Alphanumeric, up to 40 bytes*STBK_0123456789
Hecto Financial transaction number
└trdDtN(8)Numeric, up to 8 bytes*20211231
Request date
└trdTmN(6)Numeric, up to 6 bytes*120000
Request time
└outStatCdAN(4)Alphanumeric, up to 4 bytes*0021
Transaction status code
0021: Success 0031: Failure
└outRsltCdAN(4)Alphanumeric, up to 4 bytes*0000
Result code (0000 indicates success)
*VA03: For B2B use, an already-issued virtual account number exists (issuance request will fail)
└outRsltMsgAHN(200)Alphanumeric + Korean, up to 200 bytes*Processed successfully.
Result message

data Object

└pktHashAN(64)Alphanumeric, up to 64 bytes*75ac014c33165f3ee0c331123a0049f37a6e1578f8cec1d3d0374ffb75f18496
Hash value passed as-is from the request
└bankCdAN(3)Alphanumeric, up to 3 bytes*089
Bank code
└vAcntNoAN(14)Alphanumeric, up to 14 bytes*AES-256AES-256/ECB/PKCS5Padding01012345678
Virtual account number
*실제 응답값은 AES-256 암호화된 값입니다. 복호화 후 사용하세요.
└trdAmtN(9)Numeric, up to 9 bytes*AES-256AES-256/ECB/PKCS5Padding1000
Transaction amount
*실제 응답값은 AES-256 암호화된 값입니다. 복호화 후 사용하세요.
└dupAmtCntN(6)Numeric, up to 6 bytes*0
Duplicate amount count (0 if none)
└dpstrNmAHN(50)Alphanumeric + Korean, up to 50 bytes*010가상계좌
Account holder name (B2C: '010가상계좌', B2B: '010_CustomerName')

Request Example

{
  "params": {
    "mchtId": "nxva_sb_il",
    "ver": "0A18",
    "method": "VA",
    "bizType": "A7",
    "encCd": "23",
    "mchtTrdNo": "ORDER20211231100000",
    "trdDt": "20211231",
    "trdTm": "120000",
    "mobileYn": "N",
    "osType": "W"
  },
  "data": {
    "pktHash": "hash value",
    "bankCd": "089",
    "vAcntNo": "AES-encrypted virtual account number",
    "ordNm": "Hong Gil-dong",
    "trdAmt": "AES-encrypted amount",
    "dpstrNm": "010가상계좌"
  }
}

Response Example

{
  "params": {
    "mchtId": "nxva_sb_il",
    "ver": "0A18",
    "method": "VA",
    "bizType": "A7",
    "encCd": "23",
    "mchtTrdNo": "ORDER20211231100000",
    "trdNo": "STBK_0123456789",
    "trdDt": "20211231",
    "trdTm": "120000",
    "outStatCd": "0021",
    "outRsltCd": "0000",
    "outRsltMsg": "Processed successfully."
  },
  "data": {
    "pktHash": "hash value",
    "bankCd": "089",
    "vAcntNo": "AES-encrypted virtual account number",
    "trdAmt": "AES-encrypted amount",
    "dupAmtCnt": "0",
    "dpstrNm": "010가상계좌"
  }
}
💬

Need technical support?

무엇이든 물어보세요