Top-up Void API

Voids a completed Money top-up or Points issuance transaction.


API Information

POST/v1/approval/charge/cancel
Content-Typeapplication/json
테스트https://tb-mps-api.hectofinancial.co.kr/v1/approval/charge/cancel
운영https://mps-api.hectofinancial.co.kr/v1/approval/charge/cancel

Void Types

Division CodeTypeDescription
MCMoney top-up voidVoids a Money top-up transaction (partial void not available)
PCPoints issuance voidVoids a Points issuance transaction (partial void available)

Request Parameters

타입 표기법
N숫자A영문H한글AN영문+숫자AHN영문+한글+숫자
예: AN(10) = 영문+숫자, 최대 10byte
custNoAN(20)Alphanumeric, up to 20 bytes*
Prepaid member number.
*Unique prepaid member number assigned by Hecto Financial.
mTrdNoAN(50)Alphanumeric, up to 50 bytes*
Merchant transaction reference number.
*Transaction reference number generated by the merchant (no Korean characters).
orgTrdNoAN(50)Alphanumeric, up to 50 bytes*
Original transaction approval number.
*Original transaction approval number issued by Hecto Financial.
orgTrdDtAN(8)Alphanumeric, up to 8 bytes*
Original transaction date.
*yyyyMMdd format.
divCdAN(2)Alphanumeric, up to 2 bytes*
Division code.
MC: Money top-up void PC: Points issuance void
blcAmtAN(7)Alphanumeric, up to 7 bytes*AES-256AES-256/ECB/PKCS5Padding + Base64
Current balance.
*Money or Points balance. AES-256/ECB/PKCS5Padding encryption required. For Money void, provide the Money balance.
reqDtAN(8)Alphanumeric, up to 8 bytes
Request date.
*yyyyMMdd format. If omitted, the server date is used automatically.
reqTmAN(6)Alphanumeric, up to 6 bytes
Request time.
*HHmmss format. If omitted, the server time is used automatically.
trdSumryAN(50)Alphanumeric, up to 50 bytes
Transaction summary.
*Reason for the top-up void.
mResrvField1AN(255)Alphanumeric, up to 255 bytes
Merchant reserve field 1.
*Transmitted in plaintext. Do not include sensitive personal information.
mResrvField2AN(255)Alphanumeric, up to 255 bytes
Merchant reserve field 2.
*Transmitted in plaintext. Do not include sensitive personal information.
mResrvField3AN(255)Alphanumeric, up to 255 bytes
Merchant reserve field 3.
*Transmitted in plaintext. Do not include sensitive personal information.
cnclAmtAN(7)Alphanumeric, up to 7 bytesAES-256AES-256/ECB/PKCS5Padding + Base64
Void request amount.
*Used only for partial void of a Points issuance transaction. AES-256/ECB/PKCS5Padding encryption required. If omitted, the full amount is voided.
pktHashAN(200)Alphanumeric, up to 200 bytes*SHA-256(실시간 생성)
SHA-256 hash value.
*Signature composition: prepaid member number + merchant ID + merchant transaction reference number + original transaction approval number + original transaction date + hash key.

Response Parameters

타입 표기법
N숫자A영문H한글AN영문+숫자AHN영문+한글+숫자
예: AN(10) = 영문+숫자, 최대 10byte
rsltCdAN(4)Alphanumeric, up to 4 bytes*0000
Result code.
0000: Success Other: Failure
rsltMsgAN(255)Alphanumeric, up to 255 bytes*Success
Result message.

rsltObj (Response Object)

custNoAN(20)Alphanumeric, up to 20 bytes*2400001605
Prepaid member number.
mtrdNoAN(50)Alphanumeric, up to 50 bytes*ORDER20240716
Merchant transaction reference number.
*No Korean characters.
trdNoAN(50)Alphanumeric, up to 50 bytes*24071616270200002193
Transaction approval number.
*Transaction approval number issued by Hecto Financial.
trdAmtN(7)Numeric, up to 7 bytes*10000
Transaction amount.
custBdnFeeAmtN(7)Numeric, up to 7 bytes*0
Customer-borne fee amount.
mnyBlcN(7)Numeric, up to 7 bytes*15000
Money balance.
*Money balance after the transaction.
pntBlcAN(7)Alphanumeric, up to 7 bytes*0
Points balance.
*Points balance after the transaction.
trdDtAN(8)Alphanumeric, up to 8 bytes*20241212
Transaction date.
*yyyyMMdd format.
trdTmAN(6)Alphanumeric, up to 6 bytes*192035
Transaction time.
*HHmmss format.
pktHashAN(200)Alphanumeric, up to 200 bytes*
SHA-256 hash value.
*Signature composition: prepaid member number + merchant ID + merchant transaction reference number + Hecto Financial transaction approval number + transaction amount + hash key.

Request Examples

Money Top-up Void (Full Void)

{
  "custNo": "2400001605",
  "mTrdNo": "ORDER20240716",
  "orgTrdNo": "24071616270200002193",
  "orgTrdDt": "20241010",
  "divCd": "MC",
  "blcAmt": "AES-encrypted balance",
  "trdSumry": "Customer changed mind",
  "pktHash": "hash value"
}

Points Issuance Partial Void

{
  "custNo": "2400001605",
  "mTrdNo": "ORDER20240716",
  "orgTrdNo": "24071616270200002193",
  "orgTrdDt": "20241010",
  "divCd": "PC",
  "blcAmt": "AES-encrypted balance",
  "cnclAmt": "AES-encrypted void amount",
  "trdSumry": "Partial void",
  "pktHash": "hash value"
}

Response Examples

Success

{
  "rsltCd": "0000",
  "rsltMsg": "Success",
  "rsltObj": {
    "custNo": "2400001605",
    "mtrdNo": "ORDER20240716",
    "trdNo": "24071616270200002193",
    "trdAmt": "10000",
    "custBdnFeeAmt": "0",
    "mnyBlc": "15000",
    "pntBlc": "0",
    "trdDt": "20241212",
    "trdTm": "192035",
    "pktHash": "f395b6725a9a18f2563ce34f8bc76698051d27c05de5ba815f463f00429061c"
  }
}

Failure (Insufficient Balance)

{
  "rsltCd": "2002",
  "rsltMsg": "Insufficient balance available for void."
}

Important Notes

Partial Void Restriction

Money top-up transactions cannot be partially voided. Partial void is only available for Points issuance transactions.
  • The balance must be sufficient when voiding a top-up.
  • Amounts that have already been spent cannot be voided.
  • Money top-ups can only be fully voided.
  • Points issuances can be partially voided.
  • If cnclAmt is not provided, the full amount is voided.
💬

Need technical support?