본문으로 건너뛰기

💳 네이티브 결제 연동

API 업데이트 공지

최근 API 엔드포인트 및 매개변수에 업데이트가 있었습니다. 자세한 내용은 변경 기록을 참조하십시오.

Native Checkout API: 사용자는 사이트/앱에 구축된 결제 페이지의 QR 코드를 스캔하거나 주소를 복사하여 결제할 수 있습니다.

Native Checkout API와 연동하여 사이트/앱의 결제 페이지를 구축하십시오. 사용자는 사이트/앱 내에서 결제합니다. 외부 페이지로 안내할 필요가 없습니다. 사용자의 결제 경험을 완벽하게 제어하십시오.

📦 1. 주문 생성

  • 인터페이스 설명: 이 인터페이스를 통해 결제 주문을 제출하고 영수증 정보를 얻습니다.
  • 인터페이스 주소: POST /api/order/create

요청 매개변수

필드유형필수설명
out_trade_nostring판매자 주문 ID
currency_idint전역 고유 통화 ID
fiat_namestring아니요법정 화폐 이름 (USD / USDT / JPY / CHF / CAD / NOK / SEK / HKD / SGD / KRW / TWD / CNY / INR / BRL / MXN / ZAR / RUB / TRY / EUR / GBP / AUD / VND / THB)
fiat_amountstring아니요법정 화폐 금액 ("1.2")
token_amountstring아니요토큰 금액
callback_urlstring아니요콜백 URL
time_outint64아니요10자리 만료 타임스탬프, 0을 입력하면 기본값은 30분(1753513764)입니다

응답 필드 설명

필드유형설명예시
trade_nostring트랜잭션 ID"20250629153045a7b3c9d2e5f8a1b4c6"
chainstring블록체인 네트워크"Tron"
tokenstring암호화폐 토큰"TRX"
contractstring토큰 계약 주소"TRX"
amountstring트랜잭션 금액"15.724197"
modestring결제 모드"address"
pay_addressstring수취인 주소"TSg8kWPE2s7z5Lon6bSnZZrYnquGHx2..."
time_expireinteger만료 타임스탬프1753515371
decimalinteger토큰 소수점 자리수6
chain_idinteger체인 ID3448148188
equityinteger지분 가치1
create_timeinteger생성 타임스탬프1753513571
amount_collectedstring수집된 금액"0"
need_confirmsinteger필요한 확인 수0
already_confirmsinteger현재 확인 수0
entrust_urlstring결제 URL"https://checkout.pay.halochat.io/20260....b876498e0771e1"
refererstring리퍼러 정보""
chain_infoobject체인 정보{"token": "TRX", "rpc": "...", ...}

성공 응답 예시

{
"code": 0,
"msg": "success",
"data": {
"trade_no": "20260317173635066d54f5b6c7269d41",
"chain": "Tron",
"token": "TRX",
"contract": "TRX",
"amount": "16.556743",
"mode": "address",
"pay_address": "THgSjcyhyxfzrjtS7VYw1vnHvb7QkMsY...",
"time_expire": 1773741995,
"decimal": 6,
"chain_id": 3448148188,
"equity": 1,
"create_time": 1773740196,
"amount_collected": "",
"need_confirms": 0,
"already_confirms": 0,
"entrust_url": "https://checkout.pay.halochat.io/20260317173635066d54f5b6c7269d41",
"referer": "",
"chain_info": {
"token": "TRX",
"abi": "",
"rpc": "https://nile.trongrid.io",
"browser_url": "https://nile.tronscan.org/#/transaction",
"decimal": 6,
"logo": "https://halo-n.oss-ap-southeast-1.aliyuncs.com/png/202505/45d1f4b5-b80f-4331-af78-ec557f97d832.png",
"series": "Tron",
"monitor_chain_id": 3448148188
}
}
}

🔍 2. 주문 조회

  • 인터페이스 설명: 이 인터페이스를 사용하여 주문 상태를 조회합니다.
  • 인터페이스 주소: POST /api/order/detail

요청 매개변수

필드유형필수설명
trade_nostring트랜잭션 ID

응답 필드 설명

필드유형설명예시
trade_nostring트랜잭션 ID (플랫폼)"20250629153045a7b3c9d2e5f8a1b4c6"
out_trade_nostring판매자의 주문 ID"202401011753513569"
chainstring블록체인 네트워크"Tron"
tokenstring암호화폐 토큰"TRX"
contractstring토큰 계약 주소"TRX"
fiat_namestring법정 화폐 이름"USD"
fiat_amountstring지불할 법정 화폐 금액"5"
amountstring보낼 암호화폐 금액"15.724197"
modestring결제 모드"address"
pay_addressstring수취인 암호화폐 주소"TSg8kWPE2s7z5Lon6bSnZZrYnquGHx2bsj"
statusstring트랜잭션 상태"TO-BE-PAID"
time_expireinteger만료 타임스탬프 (Unix)1753515371
decimalinteger토큰 소수점 자리수6
chain_idinteger체인 ID3448148188
equityinteger지분 가치1
create_timeinteger생성 타임스탬프 (Unix)1753513571
amount_collectedstring수집된 금액"0"
need_confirmsinteger필요한 확인 수0
already_confirmsinteger현재 확인 수0
entrust_urlstring결제 URL (해당하는 경우)""
refererstring리퍼러 정보""
chain_infoobject체인 정보{"token": "TRX", "rpc": "...", ...}

성공 응답 예시

{
"code": 0,
"msg": "success",
"data": {
"trade_no": "20260317173635066d54f5b6c7269d41",
"out_trade_no": "ORDER_1773740195363",
"chain": "Tron",
"token": "TRX",
"contract": "TRX",
"fiat_name": "USD",
"fiat_amount": "5",
"amount": "16.556743",
"mode": "address",
"pay_address": "THgSjcyhyxfzrjtS7VYw1vnHvb7QkMsY7w",
"status": "TO-BE-PAID",
"time_expire": 1773741995,
"decimal": 6,
"chain_id": 3448148188,
"equity": 1,
"create_time": 1773740196,
"amount_collected": "0",
"need_confirms": 0,
"already_confirms": 0,
"entrust_url": "",
"referer": "",
"chain_info": {
"token": "TRX",
"abi": "",
"rpc": "https://nile.trongrid.io",
"browser_url": "https://nile.tronscan.org/#/transaction",
"decimal": 6,
"logo": "",
"series": "",
"monitor_chain_id": 0
}
}
}

💱 3. 가격 환율

  • 인터페이스 설명: TOKEN과 법정 화폐 간의 현재 환율을 가져옵니다.
  • 인터페이스 주소: POST /api/order/exchange-rates

요청 매개변수

필드유형필수설명
currency_idint전역 고유 통화 ID
fiat_namestring법정 화폐 약어 (USD / USDT / JPY / CHF / CAD / NOK / SEK / HKD / SGD / KRW / TWD / CNY / INR / BRL / MXN / ZAR / RUB / TRY / EUR / GBP / AUD / VND / THB)
fiat_amountstring법정 화폐 금액

응답 필드 설명

필드유형설명
amountstring금액
exchange_ratestring환율

성공 응답 예시

{
"code": 0,
"msg": "success",
"data": {
"amount": "0.00001971",
"exchange_rate": "100"
}
}

📋 4. 앱 토큰 목록 (잔액 포함)

  • 인터페이스 설명: 현재 앱(X-Appid)에서 수금이 활성화된 암호화폐와 주소 집계 기준 잔액을 반환합니다(POST /api/account/balance와 동일한 집계 기준). 플랫폼 전체 토큰 목록이 아닙니다. 전체 목록은 §5 토큰 목록을 참고하세요.
  • 인터페이스 주소: POST /api/currency/app-token-list
  • 요청 매개변수: 본문은 {}. 인증 헤더는 다른 API와 동일합니다.

응답 필드 설명

루트 객체:

필드유형설명
codeinteger비즈니스 코드, 0이면 성공
msgstring메시지
dataarray현재 앱에서 수금 활성화된 토큰 및 잔액

data[] 요소:

필드유형설명
currency_idinteger전역 고유 통화 ID
chainstring체인 이름
networkstring네트워크 이름
tokenstring토큰 심볼
contractstring컨트랙트 주소
chain_idinteger체인 ID
logostring토큰 로고 URL
decimalinteger소수 자릿수
balancestring총 잔액(10진 문자열)
operable_balancestring가용 잔액
frozen_amountstring동결 금액
statusinteger상태: 1 — 활성, 2 — 비활성
transaction_enabledboolean수금 활성(본 응답에서는 항상 true)

성공 응답 예시

{
"code": 0,
"msg": "success",
"data": [
{
"currency_id": 46,
"chain": "Tron",
"network": "Nile",
"token": "JST",
"contract": "TF17BgPaZYbxxxxhriubPDsA7ArKoLX3",
"chain_id": 3448148188,
"logo": "https://halo-n.oss-ap-southeast-1.aliyuncs.com/png/202505/xxx-c3f3-4d5d-a9b5-0143d78326f9.png",
"decimal": 18,
"balance": "0.785074013",
"operable_balance": "0.785074013",
"frozen_amount": "0",
"status": 1,
"transaction_enabled": true
}
]
}

📋 5. 토큰 목록

  • 인터페이스 설명: 시스템에서 지원하는 Token 목록을 가져옵니다. 앱별 수금 활성 토큰과 잔액이 필요하면 §4 앱 토큰 목록을 사용하세요.
  • 인터페이스 주소: POST /api/currency/token-list
  • 요청 매개변수: 없음

응답 필드 설명

필드유형설명
currency_idint전역 고유 통화 ID.
chainstring체인
networkstring네트워크
tokenstring토큰
contractstring계약 주소. 현재 기본 통화가 통화 이름과 동일한 경우 값은 통화 이름과 일치합니다.
chain_idint체인 ID. 이더리움 시리즈에만 값이 있습니다.
logostring로고
decimalint소수점 자리수

성공 응답 예시

{
"code": 0,
"msg": "success",
"data": [
{
"currency_id": 46,
"chain": "Tron",
"token": "JST",
"network": "Nile",
"contract": "TF17BgPaZYbxxxxhriubPDsA7ArKoLX3",
"chain_id": 3448148188,
"logo": "https://halo-n.oss-ap-southeast-1.aliyuncs.com/png/202505/xxx-c3f3-4d5d-a9b5-0143d78326f9.png",
"decimal": 18
}
]
}

💸 6. 지급 (출금)

  • 인터페이스 설명: 판매자는 이 인터페이스를 통해 지정된 주소로 현금을 인출할 수 있습니다.
  • 인터페이스 주소: POST /api/payout/create

요청 매개변수

필드유형필수설명
currency_idint전역 고유 통화 ID
amountstring통화 기본 금액
to_addressstring수취인 주소
callback_urlstring아니요콜백 주소 (판매자 APPID에 의해 설정된 기본 콜백 주소)
google_codestring아니요Google 인증 코드 (현재 앱에 대해 인증이 활성화된 경우 필수)

성공 응답 예시

{
"code": 0,
"msg": "success",
"data": {
"cost": "0.801502",
"actual_receipt": "0.001",
"trade_no": "202603171746187e582d1b789b27ea55",
"estimated_transfer": "0"
}
}

📊 7. 전송 상태 조회

  • 인터페이스 설명: 지급 주문 상태를 조회합니다.
  • 인터페이스 주소: POST /api/payout/detail

요청 매개변수

필드유형필수설명
trade_nostring트랜잭션 번호

응답 필드 설명

필드유형설명
trade_nostring트랜잭션 ID
service_chargestring서비스 수수료
gasstringGAS 요금
tokenstring통화
amountstring금액
target_addressstring수취인 주소
start_timeint시작 시간
created_timeint생성 시간
statusstring트랜잭션 상태 (CONFIRMING-PROGRESS: 확인 중, PAID: 성공, FAIL: 실패, CANCEL: 취소됨, PROGRESS: 대기 중)

성공 응답 예시

{
"code": 0,
"msg": "success",
"data": {
"service_charge": "0.000002",
"gas": "0.8015",
"amount": "0.001",
"status": "TRANSFER",
"target_address": "TDYiTL3pke3T9BsoTotbKb922WsXQCmSxv",
"start_time": 1773740882,
"created_time": 1773740882,
"trade_no": "202603171748020a09cbb09b4846bc99",
"token": "DK7bKg181cC7pBgX3PxSIH2WdklZ5IPT"
}
}

💰 8. 잔액 확인

이 API를 통해 애플리케이션의 단일 통화 잔액 정보를 검색합니다.

  • 인터페이스 주소: POST /api/account/balance

요청 매개변수

필드유형필수설명
currency_idint전역 고유 통화 ID

응답 필드 설명

필드유형설명
currency_idint전역 고유 통화 ID
balancestring남은 수량
balance_usdtstringUSDT로 변환된 남은 수량 가치
operable_balancestring작동 가능한 수량 (지갑 주소의 기본 통화 금액이 너무 낮아 수집할 수 없는 경우 해당 지갑 주소를 사용할 수 없습니다. 개인 센터 => 네트워크 설정에서 최소 작동 임계값을 참조하십시오.)
operable_balance_usdtstring작동 가능한 수량 가치
chainstring체인 이름
networkstring네트워크
tokenstring토큰
contractstring계약 주소 (약어 토큰 이름으로 된 기본 토큰)

성공 응답 예시

{
"code": 0,
"msg": "success",
"data": {
"currency_id": 46,
"balance": "0.785074013",
"operable_balance": "0.785074013",
"operable_balance_usdt": "0.043642",
"balance_usdt": "0.043642",
"chain": "Tron",
"network": "Nile",
"token": "JST",
"contract": "TF17BgPaZYbz8oxbjhriubPDsA7ArKoLX3"
}
}

🖼️ 9. 정적 결제 QR 코드

  • 인터페이스 설명: API를 통해 독립적인 정적 결제 주소를 신청합니다. 해당 APPID의 CallBack 인터페이스 주소로 콜백됩니다.
  • 인터페이스 주소: POST /api/payment-qr-code/create

요청 매개변수

필드유형필수설명
namestringQR 코드 이름
currency_idint전역 고유 통화 ID
amountstring아니요기본 결제 금액 ("0"일 수 있음)

응답 필드 설명

필드유형설명예시
idint고유 QR 코드 ID115
addressstring정적 결제 주소"TXd8UKLtLqk5V15v7e3W43ZdNw6berp6DP"

성공 응답 예시

{
"code": 0,
"msg": "success",
"data": {
"id": 115,
"address": "TXd8UKLtLqk5V15v7e3W43ZdNw5berp6DP"
}
}
💡

이 API에 요청하려면 QR 코드 애플리케이션의 APPID가 필요합니다.


📌 오류 코드 보기