UNPKG

@nicepay/start-api-mcp

Version:

NICEPAY 결제 연동을 위한 MCP 툴 (https://start.nicepay.co.kr)

279 lines 17.7 kB
[ { "name": "결제", "description": "create_payment_window: [1단계: 클라이언트] NICEPAY JS SDK 기반 결제창 호출 코드 생성 / approve_payment: [2단계: 서버] 결제 승인을 위한 API 호출 정보 제공 / cancel_payment: [3단계: 서버] 결제 취소 위한 API 호출 정보 제공", "methods": [ { "name": "create_payment_window", "description": "[1단계: 클라이언트] NICEPAY JS SDK 기반 결제창 호출 코드 생성", "isClient": true, "parameters": { "clientId": "(필수) 가맹점 식별코드로, NICEPAY에서 발급한 고유 값", "method": "(필수) 사용할 결제수단을 지정 예: 'card', 'vbank', 'kakaopay'", "orderId": "(필수) 가맹점에서 관리하는 유니크한 주문번호. 이미 결제된 주문번호 재사용 불가", "amount": "(필수) 결제할 총 금액. 숫자만 입력", "goodsName": "(필수) 결제창에 표시될 상품명. '\"'와 '¦' 특수문자는 '-'로 자동 대체됨", "returnUrl": "(필수) 결제 인증 완료 후, NICEPAY가 결과 전달할 가맹점 서버 URL", "mallReserved": "상점 추가 정보 전달하는 예비 필드. returnUrl로 함께 반환되며, JSON 문자열 형식 사용을 권장", "mallUserId": "상점에서 관리하는 사용자 ID", "buyerName": "구매자 실명", "buyerTel": "구매자 연락처 하이픈(-) 없이 숫자만 입력", "buyerEmail": "구매자 이메일 주소", "useEscrow": "에스크로 거래 여부 설정 (true: 에스크로, false: 일반거래)", "currency": "결제 통화 단위 설정 (KRW, USD, CNY)", "logoImgUrl": "결제창 상단 가맹점 로고 이미지 전체 URL", "language": "결제창 언어 설정 (KO, EN, CN)", "returnCharSet": "returnUrl로 전달될 파라미터 인코딩 방식 (utf-8, euc-kr)", "skinType": "결제창 스킨 색상을 설정 (red, green, purple, gray, dark)", "taxFreeAmt": "결제 금액(amount) 중 면세에 해당하는 금액을 설정", "cardQuota": "사용 가능한 할부개월을 제한 콤마(,)로 구분하며, 일시불은 '00'으로 설정 (예: '00,03,06')", "cardCode": "결제창에 노출할 특정 카드사 코드로 제한 콤마(,)로 구분 (예: '04,06')", "cardShowOpt": "카드사별 인증창 호출방식을 직접 지정 (예: '08:3¦02:3')", "vbankHolder": "가상계좌 발급 시 입금주로 표시될 이름 (가상계좌 결제 시 필수)", "vbankValidHours": "가상계좌 입금 유효시간을 시간 단위로 설정", "vbankExpDate": "가상계좌 입금 만료일을 'YYYYMMDDhhmm' 형식으로 직접 지정", "isDigital": "휴대폰 결제 상품 유형을 설정 (true: 컨텐츠, false: 실물)", "directReceiptType": "현금영수증 발급 유형을 지정 (unPublished, individual, company)", "directReceiptNo": "현금영수증 발행 대상 식별정보(휴대폰 또는 사업자번호). '-'없이 숫자만 입력", "disableScroll": "결제창 스크롤 생성 여부 설정 (기본값: true, 스크롤 없음)", "disableEdgeChk": "Edge 브라우저 사용 시 안내 팝업 노출 여부 설정 (기본값: false, 노출)", "zIdxHigher": "결제창 레이어 z-index 11000으로 상향 조정", "appScheme": "모바일 앱 결제 후 다시 앱으로 돌아오기 위한 App Scheme 값을 설정" }, "jsSdk": { "scriptUrl": "https://pay.nicepay.co.kr/v1/js/", "globalMethod": "AUTHNICE.requestPay", "requiredCallbacks": [ { "name": "fnError", "description": "결제 실패 또는 취소 시 반드시 호출되는 콜백 함수" } ] }, "template": "<!DOCTYPE html>\n<html>\n<head>\n <title>NICEPAY 결제 요청</title>\n <script src=\"https://pay.nicepay.co.kr/v1/js/\"></script>\n</head>\n<body>\n <button onclick=\"requestPay()\">결제하기</button>\n <script>\n function requestPay() {\n AUTHNICE.requestPay({\n clientId: \"YOUR_CLIENT_ID\",\n method: \"card\",\n orderId: \"ORDER123456\",\n amount: 10000,\n goodsName: \"샘플 상품\",\n returnUrl: \"https://your.site.com/payment/result\",\n fnError: function (result) {\n alert(result.errorMsg);\n }\n });\n }\n </script>\n</body>\n</html>\n" }, { "name": "approve_payment", "description": "[2단계: 서버] 결제 승인을 위한 API 호출 정보 제공", "isClient": false, "parameters": { "basicAuthToken": "Base64 encoded clientId:secretKey", "tid": "[1단계]에서 발급된 고유 거래 ID", "amount": "(필수) 결제금액, 최대 12바이트", "ediDate": "(옵션) 전문생성일시 ISO 8601 형식 (예: 2025-06-30T21:00:00+09:00).", "signData": "(옵션) 위변조 검증 데이터 생성규칙: hex(sha256(tid + amount + ediDate + SecretKey)).", "returnCharSet": "(옵션) 응답 파라미터 인코딩 방식. (기본값: utf-8)" } }, { "name": "cancel_payment", "description": "[3단계: 서버] 결제 취소 위한 API 호출 정보 제공", "isClient": false, "parameters": { "basicAuthToken": "Base64 encoded clientId:secretKey", "tid": "취소할 원거래 거래 ID", "reason": "(옵션) 취소 사유", "orderId": "(옵션) 상점 거래 고유번호. 부분 취소 시에는 중복된 orderId로 재호 불가", "cancelAmt": "(옵션) 부분 취소 요청 금액. 값이 없으면 전액 취소 처리", "mallReserved": "(옵션) 상점 정보 전달용 예비 필드", "ediDate": "(옵션) 전문생성일시 (ISO 8601 형식)", "signData": "(옵션) 위변조 검증 데이터. 생성규칙: hex(sha256(tid + ediDate + SecretKey))", "returnCharSet": "(옵션) 응답 파라미터 인코딩 방식 (기본값: utf-8)", "taxFreeAmt": "(옵션) 취소 금액 중 면세 공급가액", "refundAccount": "(옵션) 환불 계좌번호", "refundBankCode": "(옵션) 환불 계좌 은행코드", "refundHolder": "(옵션) 환불 계좌 예금주명" } } ] }, { "name": "정기결제", "description": "create_billing_key: [서버] 빌링키(정기결제 키) 발급을 위한 암호화 요청 정보 반환 / approve_billing_payment: [서버] 발급된 빌링키로 결제 승인 / expire_billing_key: [서버] 발급된 빌링키 삭제(만료)", "methods": [ { "name": "create_billing_key", "description": "[서버] 빌링키(정기결제 키) 발급을 위한 암호화 요청 정보 반환", "isClient": true, "parameters": { "encData": "(필수) 결제정보 암호화한 데이터\n**암호화 방식 (encMode: 'A2' 기준):**\n- **알고리즘**: AES-256-CBC\n- **KEY**: 가맹점 SecretKey (32byte)\n- **IV**: 가맹점 SecretKey 앞 16자리\n- **Padding**: PKCS5\n- **결과 인코딩**: Hex\n**평문(Plain Text) 형식:**\n`cardNo=값&expYear=YY&expMonth=MM&idNo=값&cardPw=값`\n(상세 내용은 BillingKeyData 스키마 참조)\n", "orderId": "(필수) 가맹점에서 관리하는 유니크한 주문번호", "buyerName": "(옵션) 구매자 이름", "buyerEmail": "(옵션) 구매자 이메일 주소", "buyerTel": "(옵션) 구매자 전화번호 ('-' 없이 숫자만)", "encMode": "(옵션) 암호화 모드. 'A2'는 AES256 의미", "ediDate": "(옵션) 전문생성일시 (ISO 8601 형식)", "signData": "(옵션) 위변조 검증 데이터. 생성규칙: hex(sha256(orderId + ediDate + SecretKey))", "returnCharSet": "(옵션) 응답 파라미터 인코딩 방식 (기본값: utf-8)" } }, { "name": "approve_billing_payment", "description": "[서버] 발급된 빌링키로 결제 승인", "isClient": false, "parameters": { "basicAuthToken": "Base64 encoded clientId:secretKey", "bid": "이전에 발급받은 고유한 빌링키", "orderId": "(필수) 가맹점에서 관리하는 유니크한 주문번호. 결제된 주문번호로는 재호출 불가", "amount": "(필수) 결제할 금액. 최대 12바이트", "goodsName": "(필수) 상품명", "cardQuota": "(필수) 할부개월 0:일시불, 2:2개월...", "useShopInterest": "(필수) 상점분담무이자 사용 여부 (현재 false만 사용 가능)", "buyerName": "(옵션) 구매자 이름", "buyerTel": "(옵션) 구매자 전화번호 ('-' 없이 숫자만)", "buyerEmail": "(옵션) 구매자 이메일", "taxFreeAmt": "(옵션) 면세 공급가액. 전체 거래금액 중 면세 금액을 설정", "mallReserved": "(옵션) 상점 정보 전달용 예비 필드", "ediDate": "(옵션) 전문생성일시 (ISO 8601 형식)", "signData": "(옵션) 위변조 검증 데이터. 생성규칙: hex(sha256(orderId + bid + ediDate + SecretKey))", "returnCharSet": "(옵션) 응답 파라미터 인코딩 방식 (기본값: utf-8)" } }, { "name": "expire_billing_key", "description": "[서버] 발급된 빌링키 삭제(만료)", "isClient": false, "parameters": { "basicAuthToken": "Base64 encoded clientId:secretKey", "bid": "삭제(만료)할 고유한 빌링키", "orderId": "(옵션) 상점 거래 고유번호", "ediDate": "(옵션) 전문생성일시 (ISO 8601 형식)", "signData": "(옵션) 위변조 검증 데이터. 생성규칙: hex(sha256(orderId + bid + ediDate + SecretKey))", "returnCharSet": "(옵션) 응답 파라미터 인코딩 방식 (기본값: utf-8)" } } ] }, { "name": "영수증", "description": "create_cash_receipt: [서버] 현금영수증을 발급 / cancel_cash_receipt: [서버] 발급된 현금영수증을 취소 / get_cash_receipt_status: [조회] 발급된 현금영수증 처리 상태 조회", "methods": [ { "name": "create_cash_receipt", "description": "[서버] 현금영수증을 발급", "isClient": false, "parameters": { "basicAuthToken": "Base64 encoded clientId:secretKey", "orderId": "(필수) 상점 거래 고유번호", "amount": "(필수) 현금영수증 발행 금액 (최대 12바이트)", "goodsName": "(필수) 상품명", "receiptType": "(필수) 현금영수증 발급 유형", "receiptNo": "(필수) 현금영수증 발행대상 식별정보 (휴대폰번호 또는 사업자번호)", "supplyAmt": "(옵션) 공급가액 (최대 12바이트)", "goodsVat": "(옵션) 부가가치세 (최대 12바이트)", "taxFreeAmt": "(옵션) 면세공급가액 (최대 12바이트)", "serviceAmt": "(옵션) 봉사료 (최대 12바이트)", "buyerName": "(옵션) 구매자 이름", "buyerTel": "(옵션) 구매자 전화번호 ('-' 없이)", "buyerEmail": "(옵션) 구매자 이메일", "ediDate": "(옵션) 전문생성일시 (ISO 8601 형식)", "signData": "(옵션) 위변조 검증 데이터. 생성규칙: hex(sha256(orderId + amount + ediDate + SecretKey))", "returnCharSet": "(옵션) 응답 파라미터 인코딩 방식 (기본값: utf-8)" } }, { "name": "cancel_cash_receipt", "description": "[서버] 발급된 현금영수증을 취소", "isClient": false, "parameters": { "basicAuthToken": "Base64 encoded clientId:secretKey", "tid": "취소할 원 현금영수증 거래 거래 ID", "orderId": "(옵션) 상점 거래 고유번호", "reason": "(옵션) 취소 사유", "cancelAmt": "(옵션) 부분 취소 요청 금액. 값이 없으면 전액 취소로 처리 부분 취소 시 하위 금액 필드(supplyAmt 등)는 필수", "ediDate": "(옵션) 전문생성일시 (ISO 8601 형식)", "signData": "(옵션) 위변조 검증 데이터 생성규칙: hex(sha256(tid + ediDate + SecretKey))", "returnCharSet": "(옵션) 응답 파라미터 인코딩 방식 (기본값: utf-8)", "supplyAmt": "(부분 취소 시 필수) 취소 금액 중 공급가액", "goodsVat": "(부분 취소 시 필수) 취소 금액 중 부가가치세", "taxFreeAmt": "(부분 취소 시 필수) 취소 금액 중 면세 공급가액", "serviceAmt": "(부분 취소 시 필수) 취소 금액 중 봉사료" } }, { "name": "get_cash_receipt_status", "description": "[조회] 발급된 현금영수증 처리 상태 조회", "isClient": false, "parameters": { "basicAuthToken": "Base64 encoded clientId:secretKey", "tid": "조회할 원 현금영수증 거래 거래 ID", "orderDate": "(옵션) 주문일자 (YYYYMMDD 형식)", "ediDate": "(옵션) 전문생성일시 (ISO 8601 형식)", "signData": "(옵션) 위변조 검증 데이터. 생성규칙: hex(sha256(tid + ediDate + SecretKey))", "returnCharSet": "(옵션) 응답 파라미터 인코딩 방식" } } ] }, { "name": "조회", "description": "find_payment_by_order_id: [거래 조회] 주문번호 사용하여 거래 내역을 조회 / get_terms: [조회] NICEPAY 약관 내용 조회 / get_card_promotions: [조회] 카드 이벤트(포인트, 무이자) 정보 조회 / list_interest_free_installments: [조회] 카드 무이자 할부 정보 조회", "methods": [ { "name": "find_payment_by_order_id", "description": "[거래 조회] 주문번호 사용하여 거래 내역을 조회", "isClient": false, "parameters": { "basicAuthToken": "Base64 encoded clientId:secretKey", "orderId": "조회할 거래 가맹점 주문번호", "orderDate": "(옵션) 주문일자 (YYYYMMDD 형식)", "ediDate": "(옵션) 전문생성일시 (ISO 8601 형식)", "signData": "(옵션) 위변조 검증 데이터. 생성규칙: hex(sha256(tid + ediDate + SecretKey))", "returnCharSet": "(옵션) 응답 파라미터 인코딩 방식" } }, { "name": "get_terms", "description": "[조회] NICEPAY 약관 내용 조회", "isClient": false, "parameters": { "basicAuthToken": "Base64 encoded clientId:secretKey", "termsType": "(필수) 조회할 약관 유형을 지정합니다.\n- `ElectronicFinancialTransactions`: 전자금융거래 약관\n- `CollectPersonalInfo`: 개인정보 수집 및 이용 약관\n- `SharingPersonalInformation`: 개인정보 제 3자 제공약관\n- `TelecommunicationCharging`: 통신과금서비스 이용약관\n", "returnCharSet": "(옵션) 응답 파라미터 인코딩 방식" } }, { "name": "get_card_promotions", "description": "[조회] 카드 이벤트(포인트, 무이자) 정보 조회", "isClient": false, "parameters": { "basicAuthToken": "Base64 encoded clientId:secretKey", "amount": "(옵션) 기준 금액. 이 금액에 해당하는 카드 이벤트 정보 제공 최대 12바이트", "useAuth": "(옵션) 인증 거래 여부 (true: 인증, false: 비인증/빌링)", "ediDate": "(옵션) 전문생성일시 (ISO 8601 형식)", "mid": "(옵션) 상점 MID. 일반적으로 사용하지 않으나, 요청 시 최우선으로 적용", "signData": "(옵션) 위변조 검증 데이터. 생성규칙: hex(sha256(ediDate + SecretKey))", "returnCharSet": "(옵션) 응답 파라미터 인코딩 방식" } }, { "name": "list_interest_free_installments", "description": "[조회] 카드 무이자 할부 정보 조회", "isClient": false, "parameters": { "basicAuthToken": "Base64 encoded clientId:secretKey", "useAuth": "(옵션) 인증 거래 여부 (true: 인증, false: 비인증/빌링)", "ediDate": "(옵션) 전문생성일시 (ISO 8601 형식)", "mid": "(옵션) 상점 MID. 일반적으로 사용하지 않으나, 요청 시 최우선으로 적용", "signData": "(옵션) 위변조 검증 데이터. 생성규칙: hex(sha256(ediDate + SecretKey))", "returnCharSet": "(옵션) 응답 파라미터 인코딩 방식" } } ] }, { "name": "qna", "description": "자연어 질문에 대해 QnA 데이터베이스에서 유사한 질문/답변을 찾아줍니다. 결제 프로세스, 고객 문의 자동응답 등에 유용합니다.", "methods": [ { "name": "search_nicepay_qna", "description": "사용자의 질문을 바탕으로 가장 유사한 질문과 그에 대한 답변을 반환합니다.", "isClient": false, "parameters": { "userQuestion": "자연어로 입력된 사용자 질문", "topKCount": "유사한 QnA 반환 개수 (기본 3개)" } } ] } ]