인터페이스는 현지화되어 있으며, Skill 소개와 설명 문서는 선택한 언어로 AI가 자동 번역합니다. 코드·명령어·경로·전문 용어는 원문을 유지하며 원작자 문서가 우선합니다.
Skills 둘러보기
생산성 및 협업 · SKILL.md

binance-pay

binance-pay

Binance Pay integration for crypto payments. Send, receive, and accept cryptocurrency payments with the world's largest exchange.

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill 문서

GitHub

name: binance-pay description: Binance Pay integration for crypto payments. Send, receive, and accept cryptocurrency payments with the world's largest exchange. metadata: {"clawdbot":{"emoji":"🟡","requires":{"bins":["curl","jq"],"env":["BINANCE_PAY_API_KEY","BINANCE_PAY_SECRET"]}}}

Binance Pay 🟡

Crypto payment solution powered by Binance, the world's largest cryptocurrency exchange.

Environment Variables

VariableDescriptionRequired
BINANCE_PAY_API_KEYMerchant API KeyYes
BINANCE_PAY_SECRETAPI Secret KeyYes
BINANCE_PAY_MERCHANT_IDMerchant IDYes

Features

  • 💸 C2C Transfers - Send crypto to Binance users (0 fee)
  • 🛒 Merchant Payments - Accept crypto payments
  • 🔄 Refunds - Process payment refunds
  • 📊 Order Management - Track payment status
  • 🌍 200M+ Users - Access to Binance ecosystem

API Base URL

https://bpay.binanceapi.com

Authentication

API_KEY="${BINANCE_PAY_API_KEY}"
SECRET="${BINANCE_PAY_SECRET}"
TIMESTAMP=$(date +%s%3N)
NONCE=$(openssl rand -hex 16)

# Generate signature
generate_signature() {
  local payload="$1"
  local sign_string="${TIMESTAMP}\n${NONCE}\n${payload}\n"
  echo -n "$sign_string" | openssl dgst -sha512 -hmac "$SECRET" | cut -d' ' -f2 | tr '[:lower:]' '[:upper:]'
}

Create Payment Order

PAYLOAD='{
  "env": {
    "terminalType": "WEB"
  },
  "merchantTradeNo": "'"$(date +%s)"'",
  "orderAmount": "10.00",
  "currency": "USDT",
  "goods": {
    "goodsType": "01",
    "goodsCategory": "D000",
    "referenceGoodsId": "product-001",
    "goodsName": "Product Name"
  }
}'

SIGNATURE=$(generate_signature "$PAYLOAD")

curl -s -X POST "https://bpay.binanceapi.com/binancepay/openapi/v2/order" \
  -H "Content-Type: application/json" \
  -H "BinancePay-Timestamp: ${TIMESTAMP}" \
  -H "BinancePay-Nonce: ${NONCE}" \
  -H "BinancePay-Certificate-SN: ${API_KEY}" \
  -H "BinancePay-Signature: ${SIGNATURE}" \
  -d "$PAYLOAD" | jq '.'

Query Order Status

PAYLOAD='{
  "merchantTradeNo": "<ORDER_ID>"
}'

SIGNATURE=$(generate_signature "$PAYLOAD")

curl -s -X POST "https://bpay.binanceapi.com/binancepay/openapi/v2/order/query" \
  -H "Content-Type: application/json" \
  -H "BinancePay-Timestamp: ${TIMESTAMP}" \
  -H "BinancePay-Nonce: ${NONCE}" \
  -H "BinancePay-Certificate-SN: ${API_KEY}" \
  -H "BinancePay-Signature: ${SIGNATURE}" \
  -d "$PAYLOAD" | jq '.'

Close Order

PAYLOAD='{
  "merchantTradeNo": "<ORDER_ID>"
}'

SIGNATURE=$(generate_signature "$PAYLOAD")

curl -s -X POST "https://bpay.binanceapi.com/binancepay/openapi/v2/order/close" \
  -H "Content-Type: application/json" \
  -H "BinancePay-Timestamp: ${TIMESTAMP}" \
  -H "BinancePay-Nonce: ${NONCE}" \
  -H "BinancePay-Certificate-SN: ${API_KEY}" \
  -H "BinancePay-Signature: ${SIGNATURE}" \
  -d "$PAYLOAD" | jq '.'

Process Refund

PAYLOAD='{
  "refundRequestId": "'"$(date +%s)"'",
  "prepayId": "<PREPAY_ID>",
  "refundAmount": "5.00"
}'

SIGNATURE=$(generate_signature "$PAYLOAD")

curl -s -X POST "https://bpay.binanceapi.com/binancepay/openapi/v2/order/refund" \
  -H "Content-Type: application/json" \
  -H "BinancePay-Timestamp: ${TIMESTAMP}" \
  -H "BinancePay-Nonce: ${NONCE}" \
  -H "BinancePay-Certificate-SN: ${API_KEY}" \
  -H "BinancePay-Signature: ${SIGNATURE}" \
  -d "$PAYLOAD" | jq '.'

Supported Currencies

CurrencyTypeMin Amount
USDTStablecoin0.01
BUSDStablecoin0.01
USDCStablecoin0.01
BTCCrypto0.00001
ETHCrypto0.0001
BNBCrypto0.001

Webhook Events

EventDescription
PAYPayment completed
REFUNDRefund processed
CANCELOrder cancelled

Webhook Verification

# Verify webhook signature
verify_webhook() {
  local payload="$1"
  local received_sig="$2"
  local timestamp="$3"
  local nonce="$4"
  
  local sign_string="${timestamp}\n${nonce}\n${payload}\n"
  local expected_sig=$(echo -n "$sign_string" | openssl dgst -sha512 -hmac "$SECRET" | cut -d' ' -f2 | tr '[:lower:]' '[:upper:]')
  
  [[ "$received_sig" == "$expected_sig" ]]
}

Order Status Codes

StatusDescription
INITIALOrder created
PENDINGAwaiting payment
PAIDPayment successful
CANCELEDOrder cancelled
REFUNDINGRefund in progress
REFUNDEDRefund completed
EXPIREDOrder expired

Safety Rules

  1. ALWAYS verify webhook signatures
  2. NEVER expose API secrets
  3. ALWAYS use idempotent merchantTradeNo
  4. CHECK order status before fulfilling

Links

저장한 Skills