01작동 방식
세 단계면 첫 결제가 원장에 남습니다
- 01
API 키
콘솔에서 프로젝트를 만들고 테스트 키를 발급합니다. 비밀 키는 서버에만 둡니다.
sec_test_… - 02
호스팅 결제
체크아웃 세션을 만들고 고객을 받은 url로 보냅니다. 카드 입력과 PG 연동은 호스팅 페이지가 맡습니다.
POST/v1 /checkout /sessions - 03
잔액·자동 충전
결제가 확인되면 원장에 크레딧이 쌓입니다. 잔액이 기준 아래로 내려가면 등록 카드로 다시 채웁니다.
GET/v1 /customers /{external_id} /balance
02API
결제창은 요청 한 번
서버에서 세션을 만들고 응답의 url로 고객을 보내세요. 결제가 끝나면 고객은 return_url로 돌아오고, 크레딧은 이미 원장에 들어가 있습니다.
- external_id
- 서비스의 사용자 ID. 처음 보면 고객을 만듭니다.
- purpose
- purchase는 크레딧 구매, setup은 카드 등록만.
- return_url
- 결제를 마친 고객이 돌아갈 주소.
요청POST
curl https://pay.cicd.im/v1/checkout/sessions \
-H "Authorization: Bearer sec_test_..." \
-H "Idempotency-Key: order-1042" \
-H "Content-Type: application/json" \
-d '{
"external_id": "user_1042",
"purpose": "purchase",
"return_url": "https://example.com/billing"
}'응답200
{
"id": "oV5Zrg…",
"url": "https://pay.cicd.im/c/oV5Zrg…"
}03기능
돈이 움직이는 부분만 맡깁니다
크레딧 원장·홀드
무료와 유료 잔액을 나눠 기록하고, 작업 전에 크레딧을 잡아 두었다가 확정하거나 풀어 줍니다. 모든 변동은 원장 한 줄로 남습니다.
1/1000 크레딧 단위 · 멱등 키카드 등록·자동 충전
고객이 동의한 기준 잔액과 월 한도 안에서만 결제합니다. 연속으로 실패하면 스스로 멈추고 알려 줍니다.
빌링키 암호화 저장 · 월 한도서명된 웹훅
결제, 충전, 잔액 부족 이벤트를 서명과 함께 보냅니다. 실패한 전송은 간격을 늘려 가며 다시 시도합니다.
HMAC-SHA256 · 최대 6회 재시도테넌트 분리
프로젝트마다 키, PG 설정, 고객, 원장이 따로 움직입니다. 테스트와 라이브 모드도 서로 섞이지 않습니다.
프로젝트 · 모드별 격리