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-Type
application/json테스트
https://tbgw.settlebank.co.kr/spay/APIVBank.do운영
https://gw.settlebank.co.kr/spay/APIVBank.doImportant 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
Unique merchant ID assigned by Hecto Financial
└verAN(4)Alphanumeric, up to 4 bytes*Message version
Message version
└methodA(2)Alphabetic, up to 2 bytes*Payment method
Payment method
└bizTypeAN(2)Alphanumeric, up to 2 bytes*Business type code
Business type code
*A7: Duplicate Amount Check
└encCdN(2)Numeric, up to 2 bytes*Encryption type code
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)
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)
Request date (yyyyMMdd)
└trdTmN(6)Numeric, up to 6 bytes*Request time (HHmmss)
Request time (HHmmss)
└mobileYnA(1)Alphabetic, up to 1 bytesMobile indicator
Mobile indicator
Y: Mobile web/app N: PC or other└osTypeA(1)Alphabetic, up to 1 bytesOS type
OS type
A: Android I: IOS W: Windows M: Mac E: Otherdata Object
└pktHashAN(64)Alphanumeric, up to 64 bytes*
SHA-256Hash value generated using SHA256(실시간 생성)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
Bank code
*Fixed to Kbank
└vAcntNoAN(14)Alphanumeric, up to 14 bytes*
AES-256AES-256/ECB/PKCS5Padding + Base64Virtual account number (phone number + 3 digits for B2B)Virtual account number (phone number + 3 digits for B2B)
└ordNmAN(30)Alphanumeric, up to 30 bytesOrderer name
Orderer name
└trdAmtN(9)Numeric, up to 9 bytes*
AES-256AES-256/ECB/PKCS5Padding + Base64Transaction amountTransaction amount
└dpstrNmAHN(50)Alphanumeric + Korean, up to 50 bytesAccount holder name
Account holder name
Response Parameters
타입 표기법
N숫자A영문H한글AN영문+숫자AHN영문+한글+숫자예: AN(10) = 영문+숫자, 최대 10byte
params Object
└mchtIdAN(10)Alphanumeric, up to 10 bytes*Merchant ID
nxva_sb_ilMerchant ID
└verAN(4)Alphanumeric, up to 4 bytes*Message version
0A18Message version
└methodA(2)Alphabetic, up to 2 bytes*Payment method
VAPayment method
└bizTypeAN(2)Alphanumeric, up to 2 bytes*Business type code
A7Business type code
└encCdN(2)Numeric, up to 2 bytes*Encryption type code
23Encryption type code
└mchtTrdNoAN(100)Alphanumeric, up to 100 bytes*Merchant order number
ORDER20211231100000Merchant order number
└trdNoAN(40)Alphanumeric, up to 40 bytes*Hecto Financial transaction number
STBK_0123456789Hecto Financial transaction number
└trdDtN(8)Numeric, up to 8 bytes*Request date
20211231Request date
└trdTmN(6)Numeric, up to 6 bytes*Request time
120000Request time
└outStatCdAN(4)Alphanumeric, up to 4 bytes*Transaction status code
0021Transaction status code
0021: Success 0031: Failure└outRsltCdAN(4)Alphanumeric, up to 4 bytes*Result code (0000 indicates success)
0000Result 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*Result message
Processed successfully.Result message
data Object
└pktHashAN(64)Alphanumeric, up to 64 bytes*Hash value passed as-is from the request
75ac014c33165f3ee0c331123a0049f37a6e1578f8cec1d3d0374ffb75f18496Hash value passed as-is from the request
└bankCdAN(3)Alphanumeric, up to 3 bytes*Bank code
089Bank code
└vAcntNoAN(14)Alphanumeric, up to 14 bytes*
AES-256AES-256/ECB/PKCS5PaddingVirtual account number01012345678Virtual account number
*실제 응답값은 AES-256 암호화된 값입니다. 복호화 후 사용하세요.
└trdAmtN(9)Numeric, up to 9 bytes*
AES-256AES-256/ECB/PKCS5PaddingTransaction amount1000Transaction amount
*실제 응답값은 AES-256 암호화된 값입니다. 복호화 후 사용하세요.
└dupAmtCntN(6)Numeric, up to 6 bytes*Duplicate amount count (0 if none)
0Duplicate amount count (0 if none)
└dpstrNmAHN(50)Alphanumeric + Korean, up to 50 bytes*Account holder name (B2C: '010가상계좌', B2B: '010_CustomerName')
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?
Code Samples
HectoFinancial GitHub