# 인도 결제 API 문서: www.deekpay.com
1. "개발자 센터" - "API 키" 섹션으로 이동하여 "API 키 만들기"를 클릭합니다. 각 API 키에는 고유한 구성 페이지가 있으며 고정 IP 주소("0.0.0.0"은 IP 필터링이 없음을 의미하며 모든 IP에서 액세스가 가능함)에 바인딩됩니다. 필요에 따라 서로 다른 API 키를 구성할 수 있습니다. 자산 손실을 방지하기 위해 액세스 키와 비밀 키를 기밀로 유지해야 합니다. 비밀 키는 한번 생성되면 다시 볼 수 없으므로 제때 저장해 두시기 바랍니다. 비밀 키를 잊어버린 경우 키 쌍을 재활용하고 판매자 백엔드에서 새 키를 요청할 수 있습니다.
2. '개발자 센터' - 'API 키'를 클릭합니다.
3. 디버그 모드 활성화 여부를 선택합니다(디버그 모드가 활성화되면 표준화된 오류 메시지와 오류를 확인할 수 있는 로그 보기 주소를 받게 됩니다).
4. API 키 권한을 선택합니다.
5. 화이트리스트 주소를 입력합니다("0.0.0.0"은 모든 IP 주소에 액세스할 수 있음을 의미합니다).
참고: 화이트리스트 도메인 이름을 입력할 때는 쉼표를 사용하여 여러 IP를 구분하세요.
6. 생성을 클릭하여 API 키를 생성합니다.
(API 키를 생성한 후에는 아래의 '내 API 키' 목록에서 복사, 조회, 수정 및 삭제할 수 있습니다. 비밀 키는 생성 시 한 번만 표시되므로 안전하게 보관하세요. 비밀 키를 잊어버린 경우 키 쌍을 재활용하여 새 키를 요청하세요.)
7. 편집을 클릭하여 디버깅 시작 옵션을 사용 또는 사용하지 않도록 설정하고 API 키 권한과 화이트리스트 주소를 수정합니다. 수정 후 "저장"을 클릭합니다.
참고: API 키를 만들거나 수정한 후 API 키가 적용될 때까지 90초 정도 기다립니다.
9. 현재 API 키는 요청 헤더에 다음 매개 변수가 필요합니다:
- access_key: API 액세스 키(예: TPhoa7ZQ) - 필수입니다.
- 타임스탬프: 밀리초 타임스탬프(13자리, 예: 1679669488472) - 필수입니다.
- 논스: UUID(36자리, 예: 02f7a04f-53cc-47d4-bb3f-fae69dab49ac) - 필수입니다.
- 서명: 매개변수의 서명(예: GXx2wYUD6UVr+zcmeCSFFPzcBLA=) - 필수입니다.
인터넷을 통해 전송되는 API 요청은 변조될 가능성이 매우 높습니다. 요청의 무결성을 보장하기 위해 비공개 인터페이스(기본 정보 및 시장 데이터와 같은 공개 인터페이스 제외)는 전송 중에 매개 변수 또는 매개 변수 값이 변경되지 않았는지 확인하기 위해 API 키를 사용하여 서명으로 인증해야 합니다.
11. 유효한 요청에는 다음 구성 요소가 포함됩니다:
- access_key: API 액세스 키
- secret_key: 서명 암호화를 위한 비밀 키(API 키 적용 시 백그라운드에서 한 번만 표시되며, 복사하여 안전하게 저장하고 공개하지 마세요)
- 타임스탬프: 요청을 보낸 시간(UTC 시간)입니다. 예: 1632811287325(13자리). 쿼리 요청에 이 값을 포함하면 제3자가 요청을 가로채는 것을 방지하는 데 도움이 됩니다.
- nonce: 임의의 UUID 문자열. 예: 053a1b81-48a0-4bb1-96b2-60f6e509d911(36자리)
- 서명: 서명에 의해 계산된 값으로, 서명의 유효성과 무결성을 보장하는 데 사용됩니다.
12. 모든 인터페이스는 HTTP 요청 헤더에 위의 공개 매개변수(비밀_키 제외)를 전달해야 합니다. 공개 매개변수에는 액세스 키, 타임스탬프, 논스, 서명 등이 포함됩니다. 다른 서명 매개변수에 대해서는 API 인터페이스 설명을 참조하세요.
13. 맵 사전 개체를 정의하고 요청에 매개변수를 키와 값으로 추가합니다.
14. 1단계에서 정의한 맵에 access_key, 타임스탬프, 논스를 추가합니다.
15. 맵의 속성을 ASCII(사전 순서)에 따라 오름차순으로 정렬하고 맵을 "key1=값1&key2=값2" 형식의 문자열로 변환합니다.
16. 이전 단계에서 변환한 문자열을 비밀키를 사용하여 HMAC_SHA1로 암호화하고 Base64로 인코딩하여 서명 파라미터 값을 얻습니다. 비밀키는 판매자 플랫폼에서 생성한 아피키에 있는 정보입니다.
17. 요청 헤더에 부호 값과 기타 필수 파라미터를 추가하고 대상 인터페이스로 요청을 보냅니다.
18. 서명 도구: 캐셔-개발자 센터-API 문서-서명 도구에 로그인하여 서명 도구 페이지를 엽니다(도구에서 유효한 액세스 키를 사용하고 이 액세스 키의 IP 화이트리스트를 0.0.0.0으로 설정합니다. 디버깅이 완료되면 액세스 키를 폐기하는 것이 좋습니다).
19. 요청 방법: GET
요청 URL: /ping
응답 데이터:
- 버전: 문자열 - 이 문서의 모든 인터페이스를 제대로 요청할 수 있는 경우 반환됩니다.
- 타임스탬프: int64 - 유닉스 타임스탬프
20. 요청 방법: POST
요청 URL: /api/v3/ind/createCollectingOrder
요청 유형: 헤더: {'콘텐츠 유형': 'application/json;charset=utf-8'}
요청 헤더:
- access_key: 판매자 백오피스(예: pFqV75X3)
- 타임스탬프: 유닉스 타임스탬프(13자리, 밀리초)(예: 1679724896223)
- 논스: UUID V4(예: 794c26b0-d33c-4394-b2bb-c485eca16d9e)
- 서명: 계산된 서명(예: kAXyh+eerqrefyaF8dyFB0M4FVo=)
21. 매개변수를 요청합니다:
- 금액: 수령할 금액, 소수점 이하 2자리 이내(문자열)(예: 40.20) - 필수 사항
- 채널 유형: 결제 유형(문자열)(예: BANK, UPI, IMPS, BANK) - 필수 사항
- 외부 주문 번호: 판매자 주문 번호(최대 64자)(문자열)(예: 716134866255702461) - 필수 사항
- notifyURL: notifyURL(문자열, URL)(예: http://192.168.1.135:30001) - 선택 사항
- 비고: 비고(최대 255자)(문자열)(예: 123) - 선택 사항
- returnUrl: 반환 주소(문자열, URL)(예: http://192.168.1.135:30001) - 선택 사항
22. 응답 유형: 헤더: {'콘텐츠 유형': 'application/json;charset=utf-8'}
응답 데이터:
- cashierUl: 문자열 - 계산원 링크
- orderId: 문자열 - 시스템 주문 ID
- 외부 주문 ID: 문자열 - 판매자 주문 ID
- 통화: 문자열 - 통화 코드
- 금액: 문자열 - 수금 금액
- tradeNote: 문자열 - 참고
23. 요청 방법: POST
요청 URL: /api/v3/ind/createTransferOrder
요청 유형: 헤더: {'콘텐츠 유형': 'application/json;charset=utf-8'}
요청 헤더:
- access_key: 판매자 백오피스(예: pFqV75X3)
- 타임스탬프: 유닉스 타임스탬프(13자리, 밀리초)(예: 1679724896223)
- 논스: UUID V4(예: 794c26b0-d33c-4394-b2bb-c485eca16d9e)
- 서명: 계산된 서명(예: kAXyh+eerqrefyaF8dyFB0M4FVo=)
24. 매개변수를 요청합니다:
- currencyAmount: 소수점 이하 2자리 이하의 결제 금액(문자열)(예: 40.20) - 필수 사항
- 채널 유형: 결제 유형(문자열)(예: BANK) - 필수
- 외부 주문 번호: 판매자 주문 번호(최대 64자)(문자열)(예: 687279463984441035) - 필수 사항
- accountId: 은행 계좌 번호(문자열)(예: 13178968584) - 필수 사항
- accountType: 은행 계좌 유형(문자열)(예: INR) - 필수 사항
- ifSC: 은행 코드(문자열)(예: YESB) - 해당되는 경우 필수입니다.
- 은행명: 은행 이름(문자열)(예: YesBank) - 상황에 따라 선택 사항입니다.
- userInfoName: 사용자 정보(문자열)(예: 테스트) - 상황에 따라 선택 사항입니다.
- 비고: 비고(최대 255자)(문자열)(예: 123) - 선택 사항
- notifyURL: notifyURL(문자열, URL)(예: http://192.168.1.135:30001) - 선택 사항
25. 응답 유형: 헤더: {'콘텐츠 유형': 'application/json;charset=utf-8'}
응답 데이터:
- orderId: 문자열 - 주문 ID
- 주문 상태: 문자열 - 주문 상태
- 외부 주문 ID: 문자열 - 판매자 주문 ID
- 통화 유형: 문자열 - 법정 통화 유형
26. 요청 방법: POST
요청 URL: /api/v3/ind/query/collectingOrder
요청 유형: 헤더: {'콘텐츠 유형': 'application/json;charset=utf-8'}
요청 헤더:
- access_key: 판매자 백오피스(예: pFqV75X3)
- 타임스탬프: 유닉스 타임스탬프(13자리, 밀리초)(예: 1679724896223)
- 논스: UUID V4(예: 794c26b0-d33c-4394-b2bb-c485eca16d9e)
- 서명: 계산된 서명(예: kAXyh+eerqrefyaF8dyFB0M4FVo=)
27. 매개변수를 요청합니다:
- 외부 주문 번호: 판매자 주문 번호(최대 64자) (문자열) - 필수 사항
- orderId: 시스템 주문 번호(문자열) - 필수
28. 응답 유형: 헤더: {'콘텐츠 유형': 'application/json;charset=utf-8'}
응답 데이터:
- orderId: 문자열 - 주문 ID
- cashierId: 문자열 - 계산원 ID
- orderType: int64 - 주문 유형
1 - 컬렉션
- 주문자원 유형: int64 - 주문 비즈니스 유형
2 - 법적 입찰 주문
- userId: 문자열 - 사용자 ID
- orderStatus: int64 - 주문 상태
1 - 지불 예정
2 - 결제 성공
- orderTime: int64 - 주문 시작 시간
- 채널오더아이디: 문자열 - 주문이 연결된 채널 주문 ID입니다.
- 외부 주문 번호: 문자열 - 판매자 주문 번호
- 주문 금액: 문자열 - 주문 금액
- 주문 실제 금액: 문자열 - 실제 주문 금액
- orderFee: int64 - 주문 수수료
- 주문결제시간: int64 - 주문결제시간
- 주문 완료 시간: int64 - 주문 완료 시간
- currencyType: 문자열 - 통화 유형
- payType: int64 - 결제 유형
102: 은행
202: 은행
- tradeNote: 문자열 - 참고
- notifyUrl: 문자열 - 콜백 URL
- 마크 상태: int64 - 마크 상태
- errorMsg: 문자열 - 오류 메시지
- errorMsgEn: 문자열 - 영어 오류 메시지
- 계정 유형: 문자열 - 계정 유형
- 계정 이름: 문자열 - 계정 이름
- accountNo: 문자열 - 계정 번호
- 주문 유형 코드: 문자열 - 주문 유형 코드
- 주문 리소스 유형 코드: 문자열 - 주문 비즈니스 유형 코드
- 주문 상태 코드: 문자열 - 주문 상태 설명
- payTypeCode: 문자열 - 결제 유형 코드(payType 참조)
29. 요청 방법: POST
요청 URL: /api/v3/ind/query/transferOrder
요청 유형: 헤더: {'콘텐츠 유형': 'application/json;charset=utf-8'}
요청 헤더:
- access_key: 판매자 백오피스(예: pFqV75X3)
- 타임스탬프: 유닉스 타임스탬프(13자리, 밀리초)(예: 1679724896223)
- 논스: UUID V4(예: 794c26b0-d33c-4394-b2bb-c485eca16d9e)
- 서명: 계산된 서명(예: kAXyh+eerqrefyaF8dyFB0M4FVo=)
30. 매개변수를 요청합니다:
- 외부 주문 번호: 판매자 주문 번호(최대 64자) (문자열) - 필수 사항
- orderId: 시스템 주문 번호(문자열) - 필수
31. 응답 유형: 헤더: {'콘텐츠 유형': 'application/json;charset=utf-8'}
응답 데이터:
- orderId: 문자열 - 주문 ID
- cashierId: 문자열 - 계산원 ID
- orderType: int64 - 주문 유형
2 - 결제
- 주문자원 유형: int64 - 주문 비즈니스 유형
2 - 법적 입찰 주문
- userId: 문자열 - 사용자 ID
- orderStatus: int64 - 주문 상태
1 - 수락됨
2 - 은행 처리 진행 중
4 - 실패(은행에서 승인하지 않음)
8 - 성공
16 - 실패
- orderTime: int64 - 주문 시작 시간
- 채널오더아이디: 문자열 - 주문이 연결된 채널 주문 ID입니다.
- 외부 주문 번호: 문자열 - 판매자 주문 번호
- 주문 금액: 문자열 - 주문 금액
- 주문 실제 금액: 문자열 - 실제 주문 금액
- orderFee: int64 - 주문 수수료
- 주문결제시간: int64 - 주문결제시간
- currencyType: 문자열 - 통화 유형
- payType: int64 - 결제 유형
102: 은행
202: 은행
- tradeNote: 문자열 - 참고
- notifyUrl: 문자열 - 콜백 URL
- 마크 상태: int64 - 마크 상태
- errorMsg: 문자열 - 오류 메시지
- errorMsgEn: 문자열 - 영어 오류 메시지
- 계정 유형: 문자열 - 계정 유형
- 계정 이름: 문자열 - 계정 이름
- accountNo: 문자열 - 계정 번호
- 주문 유형 코드: 문자열 - 주문 유형 코드
- 주문 리소스 유형 코드: 문자열 - 주문 비즈니스 유형 코드
- 주문 상태 코드: 문자열 - 주문 상태 설명
- payTypeCode: 문자열 - 결제 유형 코드(payType 참조)
32. 요청 방법: GET
요청 URL: /api/v3/ind/query/balance
요청 유형: 헤더: {'콘텐츠 유형': 'application/json;charset=utf-8'}
요청 헤더:
- access_key: 판매자 백오피스(예: pFqV75X3)
- 타임스탬프: 유닉스 타임스탬프(13자리, 밀리초)(예: 1679724896223)
- 논스: UUID V4(예: 794c26b0-d33c-4394-b2bb-c485eca16d9e)
- 서명: 계산된 서명(예: kAXyh+eerqrefyaF8dyFB0M4FVo=)
33. 응답 유형: 헤더: {'콘텐츠 유형': 'application/json;charset=utf-8'}
응답 데이터:
- accountBalance: 문자열 - 계정 사용 가능한 잔액
- accountFreezeAmount: 문자열 - 계정 동결 금액
- accountStatusId: int64 - 계정 상태 ID
- 계정 대기 정산 금액: 문자열 - 계정 대기 정산 금액
- 통화 유형: 문자열 - 법정 통화 유형
- accountStatus: 문자열 - 계정 상태
34. 요청 방법: POST
요청 URL: /api/v3/ind/query/bank
요청 유형: 헤더: {'콘텐츠 유형': 'application/json;charset=utf-8'}
요청 헤더:
- access_key: 판매자 백오피스(예: pFqV75X3)
- 타임스탬프: 유닉스 타임스탬프(13자리, 밀리초)(예: 1679724896223)
- 논스: UUID V4(예: 794c26b0-d33c-4394-b2bb-c485eca16d9e)
- 서명: 계산된 서명(예: kAXyh+eerqrefyaF8dyFB0M4FVo=)
35. 매개변수 요청:
모든 은행을 쿼리해야 하는 경우 빈 문자열을 전달합니다. 예시:
- 은행명: 은행 이름(문자열) - 필수
36. 응답 유형: 헤더: {'콘텐츠 유형': 'application/json;charset=utf-8'}
응답 데이터:
- bankName: 문자열 - 은행 이름
- 은행 코드: 문자열 - 은행 코드
- currencyType: 문자열 - 통화 유형
- channelBankId: 문자열 - 채널 뱅크 ID
- channelId: 문자열 - 채널 ID
- 은행명: 안드라은행, 바로다은행, 반단은행, 인도중앙은행, 카나라은행, DCBB은행, 연방은행, HDFC은행, ICICIBank. IDFC퍼스트은행, 인도은행, 인도해외은행, 카르나타카은행, 코탁마힌드라은행, 카루르비샤은행, 펀잡내셔널은행, 인도스테이트은행, 스탠다드차타드은행, 사우스인디아은행, 신디케이트은행, 유니온뱅크 오브 인디아, UCOBank, UPI, 액시스은행, 예스은행, BNIB, 카나라은행, DCB은행, 페더럴. 은행, HDFC 은행, 펀잡 국립 은행, 인도 은행, ICICI 은행, 신디케이트 은행, 카루르 비샤 은행, 인도 연합 은행, 코탁 마힌드라 은행, IDFC 퍼스트 은행, 안드라 은행, 카르나타카 은행, ICICI 기업 은행, 축 은행, UCO 은행, 남인도 은행, 예스 은행, 스탠다드 차타드 은행, 인도 주립 은행, 인도 해외 은행, 반하나 은행, 인도 은행, ICICI 은행, 신디케이트 은행, 카루르 비샤 은행, 유니온 뱅크 오브 인디아 인도 해외 은행, 반단 은행, 인도 중앙 은행, 바로다 은행, UPI
37. 설명의 유효성 검사:
인터넷을 통해 전송되는 API 요청은 변조될 가능성이 매우 높습니다. 콜백의 무결성을 보장하기 위해 콜백 매개변수 서명 인증을 설정할 수 있습니다. 이를 설정하려면 캐셔 - 개발자 센터 - 콜백 주소 - 추가에 로그인하세요.
38.