강력한 기술력과 다국적 젊음으로 무장한 결제(Payment) 업계의 신성(新星) Stripe.com에 대해서 자세히 살펴봐야겠다고 오래전부터 생각해왔는데, 年末에 정리할 기회가 생겨서 사업과 기술을 넘나드는 욕심을 부려보았다.
일반적으로 결제업은 규모의 경제(economies of scale)가 지배한다. 즉, 트랜잭션 볼륨에 기반한 수수료(fee) 모델이 기본이기 때문에 얼마나 트랜잭션이 많은 가맹점을 확보하고, 가입자 규모를 달성하느냐가 해당업의 핵심 경쟁력이다. 이 측면에서 본다면 현재 업계 최고 강자는 Paypal이다. Paypal과 비교하여 언급되는 Stripe에 대해서 “스타트업 로고만 주워 모은다”, “사업 수행 몇년이 지나도록 공식적으로 숫자를 공개하지 않는 것은 실질적인 사업성과는 미미하다는 반증이 아니겠냐”는 의견이 있고, 꽤 설득력이 있다.
명확한 건 Stripe가 결제업계의 후발주자라는 것이고, 그들이 Paypal을 넘어설 것이라는 확신에 누구나 동의하는 것은 아니라는 것이다. 다만, 그들이 어떤 전략으로 결제시장을 접근하느냐는 살펴볼 만한 것이고, 당연하게도 후발주자인 Stripe의 파괴자(Disrupter)로서의 전략이 어느 지점에서 얼마만큼의 강도로 경쟁 패러다임을 바꿀 수 있을 것이냐는 또 다른 중요 관전 포인트 일 것이다. 선발주자는 후발주자의 파괴적 혁신(Disruptive innovation)이 어느 측면에서 어떤 방식으로 올 것인지 미리 알더라도 이미 짐을 많이 실은 배는 항로를 무리없이 바꾸기 어렵기에 싸움의 결과는 예단하기 어렵다. 고로 시장과 고객을 보는 사람에게 속단은 금물이며, 항상 긴장을 놓지 말아야 한다.
살펴본 바에 따르면 Stripe의 가장 큰 차별화 전략은 자신의 브랜드를 드러내지 않고(킥스타터에서 결제를 해보라), 오로지 파트너와 고객에 집중한다는 것이다. 이는 White-Label 플랫폼으로 대표되는 전략으로 나타난다. 이들의 플랫폼 전략 기반에는 Open Platform과 Open API 형태로 나타난 웹 친화적인 기술과 신속하고 유연하게 확장이 가능한 내재화된 역량이 존재한다. 핵심 역량은 기술뿐 만 아니라 기업문화(company culture)에도 굳건히 자리잡고 있다. Stripe에 대해서 단순하게 기능적인 관점에서 평가하는 것을 본 적이 있다. 그러나 기능은 쉽게 복제가 되는데, (당연한 말이지만)왜 성공의 복제는 어려운 것일까 그 이유를 곰곰히 생각해봐야 한다. 그것은 바로 핵심역량과 문화를 잘못 이해한데서 오는 것이 아닐까 싶다.
초벌로 작성한 문서에는 이미지도 꽤 많았지만, 워드프레스 에디터도 Copy&Paste가 원할하지 않고 개별 작업이 귀찮기도 해서 텍스트로 쭉 옮겨 지루할 수도 있겠다.(나중에 시간날 때 보완하기로..) 다만, 해당 업에 종사하는 사람에게는 조그만 고민의 실마리라도 줄 수 있지 않을까 하는 기대는 가지고 있다. 성공도 실패도 가늠하기 어려운 결제.Fintech의 Long Journey에 동참해 주셔서 감사드린다는 인사로 지루하고 긴 글을 시작할까 한다.
1. - 1 -
Next Paypal ? - Stripe 분석 2015. 10. 26
1. 회사개요
회 사 명 Stripe (‘/dev/payments’에서 개명)
설립년월 2011 년 9 월(샌프란시스코)
창 업 자 Patrick Collison(CEO), John Collison 형제(아일랜드출신)
종 업 원 324 명(’15.10 기준), 창업경험자 22%, 미국이외 국가출신 36%
투 자 자
Y Combinator, Sequoia Capital, General Catalyst Partners,
Andreessen Horowitz, Founders Fund, Khosla Ventures, Elon
Musk, Peter Thiel, Max Levchin, Visa 등
기업가치 $5B(’15.7 기준)
주요고객
Fitbit, Kickstarter,reddit, Twitter, Wired, Salesforce.com,Squarespace,
The Guardian 등 2 만개 이상의 웹사이트 적용(’15.7 기준)
진출국가
USA, Canada, UK, Ireland, Australia, Austria, Belgium,
Denmark, Germany, Finland, France, Italy, Mexico, Norway,
Spain, Sweden, Switzerland, Netherlands, Luxembourg 등
2. 회사연혁
2007 년, Y Combinator 는 Patrick(18)과 John collision(16)
형제를 Harjeet 와 Kuveer Taggar 에게 연결시켜주었고,
이들을 통해 <Auctomatic>이라는 경매관리(auction-
management) 스타트업이 탄생하게 된다. 다음해에
<Auctomatic>은 캐나다 도메인 네임 비즈니스 업체인
<Live Current Media>에 인수되었다. 이 인수 Deal 의 일부로서 이 형제는 <Live Current
Media>에 근무하도록 벤쿠버에 배치되었다.
2010 년초, Patrick 과 John 형제는 MIT, 하버드에 다니는 동안 다음 비즈니스 벤처 구상을
시작을 시작하였다. 이 시기는 거의 모든 영역에서 온라인 비즈니스를 구축하고 런칭하기
매우 용이한 때였는데, eBay 사례에서 보듯이 결제 영역은 그렇지 않았다. 결제 영역의
기존 Player 들은 사업 및 개발 모든 측면에서 함께 작업하기가 매우 어려웠다.
- 사업적 측면에서 보면 플랫폼에 Merchant 로 등록하고 승인 받는 작업은 매우 시간
소모적이고 문서 제출 같은 수작업 프로세스로 이루어져 있었다.
- 개발측면에서는 코드 베이스, API, 클라이언트 라이브러리, 기술문서 같은 것들이 매우
부족하거나 존재하지 않았고 개발자들이 활용할 수 있는 툴은 매우 제한적이었다.
이러한 문제점은 두 형제가 개발자 친화적인 결제 회사를 설립하도록 하는 동인이
되었다.
2. - 2 -
이러한 문제점을 해결하는데 있어 사업의 가능성을 확인하고 두 형제는 Stripe 에
집중하기 위하여 학교를 그만 두었고, Private beta 후 2011 년 9 월 서비스를 공식적으로
런칭했다.
※ Stripe 회사명에 얽힌 이야기
개발자 친화적인 회사를 설립하고자 하는 동기는 초기에 회사명을
</dev/payments>로 짓는 것으로 나타났는데, 회사명을 /로 시작하는 것을 허용하지
않는 델라웨어 법 때문에 공식적으로는 SLASHDEVSLASHFINANCE 로 했다. 그런데
이 이름 또한 misspelling 문제를 자주 일으키는데다가 Bank 와 같은
이해관계자들과의 communication 이 어렵다는 문제도 있고, 이미 아마존이
DevPay 라는 유사상품명이 있어서 결국 회사명은 Stripe 로 변경하게 되었다.
Stripe 는 서비스 개발 및 확장을 위하여 여러 차례에 걸쳐서 funding 을 받았는데(Series
C-2 funding 까지 완료),
- Seed funding 에는 Y Combinator, Sequoia Capital, Andreessen Horowitz, SV Angel
뿐만 아니라 Peter Thiel 과 Elon Musk 도 참여했다.
- 2011 년 3 월 Stripe 는 Sequoia Capital 로부터 Series A funding 으로 $18M 을 받았고,
1 년후 General Catalyst, Sequoia Capital, Peter Thiel, Elad Gil, Redpoint Ventures, Chris
Dixon, Aaron Levie 로부터 Series B funding 으로 $20M 을 받았다.
- 2014 년 1 월 Founders Fund, Khosla, Sequoia, Allen & Co 로부터 Series C funding 으로
$80M 을 받고,
- 2014 년 12 월에 Sequoia, General Catalyst, Founders Fund, Khosla Ventures, Thrive
Capital 로부터 추가적인 Series C funding 으로 $70M 를 받았다.
사용자가 증가함에 따라 Stripe 는 사용자가 원하는 것에 대해서 좀더 잘 이해하기
시작했고, 후속제품 런칭이 이루어졌다.
- 2012 년 10 월에 발표된 ‘Stripe Connect’는 제 3 자의 서비스가 Stripe 의 데이터와
Capability 를 통합할 수 있도록 해준다. 런칭 시점에 Fast Company 는 ‘Stripe
Connect’를 <결제분야의 Facebook Connect>라고 평했는데, Stripe Connect 의 초기
고객 중에는 Reddit, Shopify, Skillshare 등이 있다.
- 2013 년에 1 월에 출시된 ‘Stripe Checkout’은 single tag 로 어떤 사이트에도 적용
가능한 완벽한 결제 UI 이자 checkout 의 첫 번째 버전이다. 이후 2014 년 3 월에
Stripe 는 one-click payment 를 허용하도록 checkout 을 업데이트하였다.
- 2013 년 6 월에 ‘Stripe Bank Transfer API(for marketplaces)’를 런칭했는데, 이 API 는
고객사들이 payment 를 적용하도록 해줄 뿐만 아니라 다수의 서비스 사업자, 판매자,
벤더들에게 결제를 보낼 수 있게 해준다.
3. - 3 -
- 2014 년 3 월에 Stripe 는 Bitcoin 을 지원하는 첫 번째 결제 회사가 되었다.
- 2014 년 6 월에 Stripe 는 Checkout 에서 Alipay 지원을 시작했다.
- 2014 년 9 월에 ‘Apple Pay on Stripe’를 통해 Apple Pay Integration 을 런칭했는데,
iOS 앱을 위한 one-touch payment 를 가능하게 해주고, 카드번호나 배송정보를 일일이
입력할 필요가 없게 해준다.
- 2015 년 9 월에 ‘Stripe Relay’라는 서비스를 런칭했는데, Relay 는 소매점(Retailer)과
개발자를 위한 판매 및 구매 프로세스를 간소화 시켜주는 일종의 툴로서, 트위터 등
인기 있는 제 3 자 앱에서 상품을 팔 수 있도록 해준다.
3. 성공요인
Stripe 의 성공요인은 무엇일까? 창업자들의 기존 서비스에 대한 문제의식과 Stripe 에
대한 한 고객사의 반응은 아래와 같다.
- John Collison 은 “전세계 어디로든 패킷을 보내는 것은 쉽지만 돈을 보내는 것은
쉽지 않다. payment level 이 아니라 information level 에서 연결성(connectivity)을
가지는 것은 정말 중요한 문제다.”라고 생각했다.
- Patrick Collison 은 “우리는 극단적으로 통한하기 단순한 시스템을 만들기를 원했다.
고객사들이 즉시 신용카드 결제를 도입할 수 있어야 하고, 어떤 지연도 없어야 할 뿐
아니라 도입을 위해 사전 협의 절차도 필요 없어야 한다. 그리고 너무 많은 정보를
제공하도록 요구 받지 않아야 한다. Google Checkout 과 Paypal 은 이 모든 문제를
안고 있다. 우리는 왜 그들이 이 문제를 해결하지 못하는지 의아해 했다. 그들에게
무슨 문제가 있는 걸까?”라고 말했다.
- 초기 stripe 고객은 “Stripe 는 Game Changer 다. 몇 달 사용했는데 솔직히
Stripe 의 API 는 지금까지 사용해본 것 중에서 최고다. 기술문서는 명확하면서
간략하다. 문자 그대로 copy & paste 해서 결과를 볼 수 있을 만큼 최적화되어
있다. 셋업하고 운영하기 까지 한 시간도 안 걸린다. Paypal 을 사용했다면 생각할
수도 없는 거다.”라고 했다.
고객사들은 Stripe 가 제공하는 API 및 라이브러리를 이용하기 때문에 팝업 등을 통해
결제 사업자들의 페이지로 이동하지 않고, 체크아웃 프로세스 동안 동일 웹사이트에서
결제를 처리할 수 있어 Stripe 를 선호한다.
개발자들은 Stripe 가 다양한 프로그래밍 언어를 지원하고, 그들의 자체 Payment
Form 을 만들 수 있도록 허용하기 때문에 Stripe 를 높게 평가한다.
또한 front-end 뿐만 아니라 back-end 도 매우 훌륭하기 때문에 자사 상품을 멋지게
만들어 낼 수 있고, 이로 인해 개발자와 디자이너들이 그들의 회사에서 인정받을 수 있게
되기 때문에 Stripe 에 대한 우호적 입장이 강화될 수 밖에 없다.
4. - 4 -
Stripe 는 초기에 개발자들의 입소문을 통해서 많은 고객을 확보하였다. Stripe 는
서비스를 런칭하는 고객사 개발자에게 티셔츠, 스티커, 화환, 손 편지가 포함된 감사
선물(care package)을 보내주었는데, 이런 Stripe 의 활동은 소셜 미디어 상에 공유되었고,
다른 개발자들로 연결되어 새로운 고객을 확보하는데 도움을 주었다. Stripe 는 이외에도
Stripe 개발자 커뮤니티를 형성하고 인지도를 높이기 위하여 개발자 미팅, 해커톤, 개발자
이벤트를 지원하였다.
Stripe 는 다양한 유틸리티를 기반으로 성장하였다.
- 대개 새로운 상품들은 문서(documentation)의 부족으로 어려움에 처하는데, 문서의
중요성은 마케팅에서 자주 간과된다. 개발자에게 초점을 맞추는 상품에서 문서는 가장
중요한 자산 중 하나다. Stripe 의 기술문서는 개발자 및 비개발자 모두에게
상대적으로 매우 쉬울 정도로 명확하고 잘 쓰여졌다. 읽기 쉽게 쓰여진 문서는
개발자가 더 나은 경험을 하게 하고, 개발자의 시간을 절약해주어 결과적으로
입소문에 도움을 준다.
- 또한 Stripe 는 대부분의 인기있는 프로그래밍 언어로 만들어진 클라이언트
라이브러리를 지원하여 개발자들이 자신의 시스템에 stripe 를 빠르고 원활하게 통합할
수 있게 해준다.
- 문서 및 클라이언트 라이브러리 이외에도 Stripe 는 강력한 테스트 환경을 제공한다.
PG 테스트를 위해서 유효하지 않은 카드를 포함하여 수십 개의 신용카드 번호를
제공할 뿐만 아니라 상용배포 이전에 모든 계정으로 전체 플랫폼 인스턴스를
테스트할 수 있는 환경을 제공한다.
- 주로 Backend 솔루션임에도 불구하고, Stripe 는 Backend 상품을 보완하는 훌륭한
사용자 인터페이스(UI) 요소들을 제공한다. 매우 잘 만들어진 디자인과 인터랙션 패턴,
모듈들은 Stripe 를 단지 게이트웨이로만 사용하지 않게 만들어줄 뿐 아니라 front-end
결제 경험을 매우 좋게 만들어준다.
Stripe 성장의 다른 요인으로 Stripe 특유의 기업문화를 들 수 있는데, Stripe 는 매우
개방적이고 수평적인 문화를 가지고 있다.
5. - 5 -
- 이메일을 통해서 회사의 모든 사안이 투명하게 공개하며, 업무에 있어서도 1 대 1
이메일을 포함하여 모든 이메일에 (다른 구성원들이 타인의 업무에 도움을 줄 수
있도록) 회사 전체 또는 특정 팀 전체를 참조자로 넣는다.
- 그리고 기업 문화의 기초는 좋은 사람들을 채용하는 것인데, Stripe 는 해당 분야의
최고 인재를 채용한다. 또한, 이상하게 보일 수도 있지만 Stripe 에는 관리자가 없는데,
열정을 가진 사람들을 관리할 필요가 없기 때문이라고 한다.
Stripe 는 자사의 미래성장은 모바일의 폭발적 성장, 글로벌 진출, 인수 및 파트너쉽 등을
통해서 견인될 것으로 보고 있다.
- 온라인 결제 영역의 가장 큰 기회영역은 모바일이다. Stripe 는 모바일 결제의
증가하는 수요를 충족시키기 위하여 모바일 우선 Payment UX 상품인 Stripe Checkout
을 출시했다. 이 상품은 모바일 웹뿐만 아니라 네이티브 앱을 통해서도 가능하다. Lyft,
Dribble, InstaCart 같은 매우 잘 알려진 회사들도 Stripe Checkout 을 사용한다.
- Stripe 의 글로벌 진출은 놀랄만한 일은 아닌데, 창업자 형제도 해외 이민자일 뿐만
아니라 회사 구성원의 매우 높은 비율이 미국 이외 지역 출신(36%)이다. 그러나
Stripe 의 글로벌 성장은 복잡한 결제 프로세스에서의 장애물들을 제거한 결과에 주로
기인한다. Stripe 는 13 개국 이상에서 이용할 수 있고, 139 개 통화에 대해서 2%의
환전수수료를 받는다. 최근의 펀딩은 대부분 글로벌 확장을 위해서 사용되고 있다.
글로벌 확장은 Stripe 의 미래 성장에서 매우 중요한 역할을 한다.
- 2013 년 3 월 Stripe 는 채팅 및 업무관리 애플리케이션 Kickoff 를 인수했는데,
Kickoff 는 Stripe 팀들이 온오프라인으로 리스트 및 파일 교환, 메시징 등 실시간으로
협력하는데 사용되었는데, 이 인수는 창업자 Benjamin De Cock 와 개발자 Michael
Villar 를 채용하기 위한 목적인 것으로 알려져 있다.
4. 주요 Features
서비스 개요
- Stripe 는 Paypal 과 유사한 결제서비스를 제공하며, one-time payment 이외에도
Marketplace-Seller 결제정산 대행 및 Subscription Billing(주, 월, 년, custom) 서비스
등을 제공한다.
상품의 구성
- Stripe Checkout : 가맹점이 자신의 서비스 웹사이트에 손쉽게 결제기능을 통합할 수
있게 해주는 서비스(checkout.js)
6. - 6 -
- Subscription billing : 반복(recurring) 및 가입(subscription)기반 빌링을 손쉽게 해주는
서비스, 일/월/년 및 Custom interval 가능, 쿠폰할인, 종량과금 및 일회성 결제 지원
- Stripe Connect : Shopify 와 같은 Marketplace 나 Lyft 같은 온디맨드 사업자가 Seller
또는 서비스 제공자에게 결제정산 서비스를 제공할 수 있도록 해주는 툴
- Relay : 타사의 앱을 통해 상품을 팔 수 있게 해주는, 즉 트윗, 소셜미디어 포스트,
인앱, 광고, 단순링크를 통하여 가맹점이 상품을 판매할 수 있도록 해주는 툴
7. - 7 -
- Apple Pay : iOS 앱에서 사전에 등록한 신용카드를 one touch 로 결제하는 서비스로,
In-App Purchases 가 디지털 상품에 적용하는 서비스라면, Apple Pay 는 실물 및
서비스 구매에 사용해야 한다. Stripe Apple Pay 는 결제 시 Touch ID 인증 이후에
Card Token 을 생성하고, Stripe API 를 이용하여 결제 처리를 해준다. 설정 및 Apple
Pay UI 표시를 위해서 단지 코드 몇 줄만 추가해주면 된다.
수수료
- 결제수수료: 2.9% + $0.30 per successful credit card charge
특정거래금액 초과시 할인 수수료 적용,
3 천달러 초과시 2.5%+$0.30, 1 만달러 초과시 2.2%+$0.30
- 부가수수료: 일부에만 부과
Setup fees(X), Monthly fees(X), Validation fees(X), Card Storage fees(X), Failed
Payment fee(X), Minimum Monthly Payments Volume(X),
Chargeback fee($15/refund), FX Conversion fee(market exchange rate+2%),
Managed Account fee(0.5%), bitcoin(0.5%)
특징 1 - Built for developers
- Stripe 는 개발자들이 자신의 상품에 집중할 수 있도록 강력하고 명확한 API 들을
제공한다. 프로그래밍 언어는 curl, Ruby, Python, PHP, Java, Node, Go 등 대부분을
지원한다.
- Stripe Checkout 는 고객사가 payment form 을 디자인할 필요가 없게 해주며, PC 와
모바일에서 모두 원활하게 작동하는 커스터마이징 가능한 payment flow 를 제공한다.
Checkout 은 Stripe.js 기반으로 구현하였으며, 최신버전이 자동으로 적용되며 별도의
Code 가 요구되지 않는다.
Stripe.js 는 브라우저에서 Stripe 서버로 카드 상세정보를 안전하게 전달하는
역할을 하며 카드 상세정보는 가맹점 서버를 경유하지 않는다. Stripe.js 는 사용자
경험의 전반적인 프로세스를 통제하며 번거로운 프로세스 및 Compliance 관련
처리를 담당한다. Stripe.js 에는 카드종류 및 유효기간뿐만 아니라 신용카드 형식,
CVC, 은행계좌, 라우팅 번호를 검증하는 Validator 가 내장되어 있다.
- Stripe 는 모바일 웹을 위한 Checkout 을 지원하는데, 웹사이트에 Checkout 이
적용되어 있다면, 자동으로 모바일에 최적화된 결제 경험을 제공한다. 또한 iOS 및
8. - 8 -
Android 앱 대응을 위해 네이티브 라이브러리도 지원한다.
특징 2 - Powerful toolkit
- Stripe API 는 카드정보 저장 및 Subscription 결제 지원부터 Marketplace 대응까지
Whole Stack 을 지원한다. 년, 월, 주, 일, 특정주기 등 매우 유연한 과금주기를
지원하며, 고객에게 Special Deals 및 쿠폰 Offer 가 가능하다.
- Stripe 는 현재 13 개국, 100 개국 이상의 통화를 지원하며 글로벌 확장을 지속 중이다.
- Stripe 를 통해 Marketplace, store builder, invoicing system 등의 결제 플랫폼 구축이
가능하다. Stripe Connect 는 이 카테고리를 위한 상품으로 일종의 White-label
platform 이라 할 수 있다.
- Stripe Account 에 특정 이벤트 발생시 등록된 URL 로 즉시 통보해주는 Webhook 을
지원하며, Webhook 은 회원제 결제 성공 시 고객 정보 업데이트가 필요할 때, 회원제
결제 실패 시 고객에게 메일링이 필요할 때, 결제 이의 제기가 있는지 Dashboard 를
체크할 필요가 있을 때 등에 사용된다.
- Stripe 는 Balance history, 결제송금고객 등의 Account data 에 대한 Reporting &
Analytics 를 매우 풍부하게 지원하는데, CSV 파일 다운로드를 지원할 뿐 아니라
QuickBooks 및 Xero 에 Import 할수 있게 해준다. 또한 Stripe 는 NetSuite 와 통합도
가능하다. 이러한 모든 기능은 API 로도 제공된다. API 를 통해 고객사는 자사 입맛에
맞는 리포트 생산이 가능하다.
특징 3 - Perfectly scaled
- Stripe Accounting 은 실시간 접근이 가능하며, 고객사 ERP 시스템과 통합이 용이하다.
- Stripe 는 검증된 fraud protection 시스템을 보유하고 있어, 의심스러운 거래를
모니터링하고 차단한다.
- Stripe 는 글로벌화 되어 있어 고객사가 선호하는 통화로 결제 지원이 가능하다. 도한
빌링 및 대사 작업이 매우 쉽고, 문제 발생시 몇 번의 클릭으로 이슈 해결이 가능하다.
- Stripe 는 자체 API 및 라이브러리 이외에도 Drupal, WorldPress Plugins 포함 풍부한
3rd
-party Ecosystem 이 존재한다.
특징 4 - Seamless Security
- Stripe 는 PCI-DSS 요구사항을 충족하며, PCI Level 1 인증을 받았다. 또한 민감한
데이터는 고객사로 전달하지 않아 고객사의 골치 아픈 보안 문제를 해소시킨다.
- Stripe 는 기본 인증 이외에 2-factor 인증을 지원한다.
9. - 9 -
5. Stripe 기술상세
API 개요
Stripe API 는 REST 구조로, 예측가능하고 resource-oriented URLs 을 사용하고, API 에러는
HTTP response code 를 사용하도록 디자인되었다. 일반 HTTP clients 가 이해할 수 있는
HTTP authentication 등 본연의 HTTP features 를 사용한다. 또한 Stripe API 는 client-
side 웹 애플리케이션에서 API 를 안전하게 사용할 수 있도록 CORS(cross-origin
resource sharing)을 지원한다. 그리고 모든 Response 는 JSON 으로 리턴되며, 이때
고객사가 사용하는 프로그래밍 언어에 맞는 Object 로 변환하여 제공된다.
- Cross-origin resource sharing(CORS)는 웹 페이지상의 fonts 같은 제한된
resource 를 다른 도메인에서 요청하는 것을 허용해주는 메커니즘이다. 웹 페이지는
다른 도메인으로부터 이미지, 스타일시트, 스크립트, iframe, 비디오, adobe flash 같은
플러그인 콘텐트를 자유롭게 embed 할 수 있다. 그러나 web fonts 와
AJAX(XMLHttpRequest) 요청은 일반적으로 동일 도메인에서만 접근 가능하도록
제한된다. ‘Cross-domain’ AJAX 요청은 cross-site scripting security
issues 를 발생시키기 때문에 기본적으로 금지된다. CORS 는 cross-origin
request 를 허용할 것인지 말 것인지를 안전하게 결정하기 위하여 브라우저와 서버가
상호 작용하는 방식을 정의한다.
Stripe Security
Stripe API Key 는 live-mode API Keys 와 test-mode API Keys 가 모두 가능하며, 이
Key 들은 동시에 활성화될 수 있다. test-mode API Key 를 통해 요청한 거래는 credit
card network 을 타지 않으며, 결과적으로 결제를 발생시키지 않는다.
Stripe API 는 Request 시에 secret API Key 를 제공해야 인증이 되며 이용 가능하다. API
Key 들은 Stripe 계정에서 관리할 수 있으며, API Key 에는 권한(privileges) 관리에 필요한
요소들이 포함되어 있다. API Key 사용을 위해 Stripe.apiKey 를 설정하면 Java Library 가
자동으로 각각의 Request 에 이 Key 를 포함시켜서 보내게 된다. 모든 API Request 는
HTTPS 와 HSTS(HTTP Strict Transport Security)를 사용한다.
Fraud Protection
Fraud Protection 관련하여 만약 가맹점이 stripe.js 나 Checkout 을 사용한다면, stripe 는
자동으로 결제를 분석하고 의심스러운 결제는 차단한다.
Stripe 는 fraud 로 인한 손실을 최소화하고, 결제 도용소지가 있는지를 판단하는데
도움을 주기 위해 몇 가지 tool 들을 활용한다. 이 tool 을 통해서 stripe 는 의심스러운
결제를 자동으로 거부하거나 사용자에게 의심스러운 건에 대해 알려준다. 또한 이런
tool 들에는 CVC(card verification code)나 AVS(address verification system)를 검증하는
tool 도 포함되어 있다.
Stripe 는 fraud 를 식별하는 여러가지 방식을 사용하는데, 구매단계에서 수집하는
고객정보를 통해 해당 거래가 잠재적으로 fraud 가능성이 있는지를 판단한다.
10. - 10 -
일반적으로 fraud 행위에는 개별적으로는 문제없어 보여도 함께 묶어서 보면 fraud 일
가능성이 높은 다양한 징후들이 있다. 아래는 그 대표적인 예시들이다.
- 구매하는 상품의 수나 매우 비싼 가격 등의 측면에서 일반적이지 않게 매우 큰
구매요청(unusually large order)
- 사기꾼이 timing 을 활용하는 구매 요청 쇄도(rush order)
- 해외카드 사용 또는 배송지가 해외인 구매요청
- 짧은 기간에 유사하거나 동일한 카드번호로 소액결제가 다수 발생할 경우
- 동일한 카드지만 배송지가 다른 결제가 다수 발생할 경우 또는 동일 배송지로 다른
카드 결제가 다수 발생할 경우
- 동일 IP 에서 다른 카드로 결제가 다수 발생할 경우(특히 거래 실패가 포함될
경우에는 fraud 가능성이 높음)
- 가짜일 가능성이 높은 이메일과 휴대폰 번호등이 사용된 거래
- 배송지가 운송 취급인(freight forwarder)으로 된 거래
- 청구서 주소와 카드발급 국가가 일치하는 않는 거래
- 구매시마다 고객정보가 불일치하는 거래(동일 이메일인데 다른 이름 사용)
- 동일 사용자 이름과 이메일로 시도한 거래가 다수 발생할 경우(결제 실패는 fraud
protection 에 매우 중요한 정보를 제공하기 때문에 정기적으로 살펴보아야 한다.
만약 동일 사용자를 통해 다수의 결제 실패가 이루어지고, 또한 각 실패가 다른
신용카드로 시도되고 일부 결제 성공이 이루어 졌다면 이는 훨씬 큰 fraud risk 를
발생시킬 것임)
- IP 조작을 통해서 결제 시도하는 경우 등
결제 시에 가맹점이 사용자 이름, 주소, 신용카드 보안코드, 우편번호, 배송 주소 등 더
많은 사용자 정보를 Stripe 에 제공하면 fraud 를 막는데 도움이 된다. 특정 고위험
결제에 대해서 Stripe 는 결제를 차단하고, 가맹점에 해당 결제에 대해서 좀더 주의깊게
살펴볼 것을 권고하는 이메일을 보낸다.
fraud 탐지 tool 들을 최대한 활용하기 위해서 Stripe 가맹점은 추가적으로 아래 사항을
준수해야 한다.
- 결제 시 사용자 이름과 이메일 주소를 보내야 한다. 이 정보들은 stripe.js 의 form 에
직접 포함되거나 API 호출에 포함될 수 있다.
- Checkout 또는 stripe.js 를 사용해야 한다. 이렇게 하는 것이 PCI compliance 를
충족시키고, stripe 에 fraud 방지에 필요한 더 많은 정보를 제공하게 된다.
- AVS 또는 CVC 검증에 실패하면 자동으로 결제를 거절하도록 가맹점 계정을
설정해야 한다. 그러나, 심지어 정상적인 결제도 한 두번 AVS 또는 CVC 검증에
실패할 수 있다. 따라서, 이 기능을 설정하기 전에 어떤 거래들이 차단될 것인지
검토해봐야 한다.
- 고위험 비즈니스 가맹점의 경우에는 SiftScience(https://siftscience.com/),
Signifyd(https://www.signifyd.com/), Riskified(http://www.riskified.com/) 같은
전용 솔루션을 사용해야 한다.
11. - 11 -
디지털 상품이나 서비스를 판매하는 가맹점의 경우에는 아래 사항을 유의해서 살펴야
한다.
- 메시징 상품을 사용한 스팸, 게임 아이템 도는 다운로드형 컨텐츠에 대해 짧은 시간에
많은 구매가 일어난 경우 등과 같이 오용소지가 높은 디지털 상품이나 서비스는 훔친
카드를 통한 결제일 가능성이 높음
- 유사한 이메일 주소나 동일한 신용카드를 사용하는 복수 계정이 존재하는 경우
- 연속으로 동일 이메일로 다수의 결제가 일어난 경우
- 사용자 계정 활동에 예기치 않은 변화가 발생한 경우 - 만약 구매빈도 또는 결제
금액이 급격히 증가한 경우, 이는 fraud 의 징후일 수 있음
- 디지털 상품은 배송이 되지 않지만, CVC, 주소, 우편번호등 가급적 많은 고객정보를
수집하는 것이 중요함.
- IP 주소, 이메일 로그, 사용 로그를 포함하여 거래에 대한 증거를 최대한 기록해야 함.
이러한 정보는 향후 환불 관련 분쟁 발생시에 도움이 됨
실물 상품을 판매하는 가맹점의 경우에는 아래 사항을 유의해서 살펴야 한다.
- 청구 주소와 배송 주소가 일치하는지, 선물하는 경우도 있기 때문에 비록 두 주소상
차이가 일치하지 않는 게 fraud 라고 단정할 수는 없지만 해당 결제를 좀더 주의깊게
살펴보아야 한다는 것을 알려준다. 만약 두 주소가 일치하고 사용자가 해당 국가
신용카드를 사용한다면, 우편번호와 주소 검증이 통과했는지를 체크해보아야 한다.
- 주문을 한 이후에 배송주소를 변경하는 사용자에 유의해야 한다. 정상적인 주소로
결제에 성공한 이후에 다른 곳으로 물건을 배송해서 경우는 fraud 일 가능성이 높다.
- Stripe 대쉬보드에서 결제 상세내역에 표기된 신용카드 발급국가를 잘 살펴봐야 함.
청구 주소는 카드발급 국가와 일치해야 한다. 배송 국가와 카드발급 국가가 일치하지
않거나 해당국가로의 배송이 지원되지 않는 경우에도 해당 결제에 대해서 주의깊게
체크해야 한다.
- 배송 방법, 특히 비싼 요금을 지불하는 당일 배송(overnight shipping),이 적절한지
확인해야 한다. 일반적으로 도난카드로 결제하는 경우 카드 도난신고 이전에 배송
받기 위해서 배송비에 대해서 크게 신경 쓰지 않는 경향이 있다.
- 고가 상품, 검증되지 않은 주소, 최초 주문고객의 경우에는 1~2 일 정도 배송 지연을
제도화하는 것을 고려하라.
Webhooks
Stripe 는 가맹점 Account 에 발생한 이벤트들을 가맹점에 통지해주기 위하여
Webhook 을 사용한다. 일반적으로 제 3 자의 API 를 사용할 때는 API Request 를
요청하지 않은 서비스가 Response 를 알 필요가 있거나, disputed charge 나 recurring
billing 같은 몇 가지 이벤트들이 자신이 Request 한 결과가 아닌 경우일 때와 같은
문제들이 발생한다. Webhook 은 가맹점 account 에 발생한 이벤트(예를 들면 특정
고객의 subscription 에 성공적으로 charge 가 완료되었을 경우)를 언제라도 통지 받을 수
있도록 특정 URL 을 등록하여 이러한 문제를 해결한다.
12. - 12 -
Checkout
Stripe Checkout 은 HTML form 을 구성하고, 입력 값을 검증하고, 고객 데이터를
안전하게 처리하는 툴로서 Checkout 을 사용하면 민감한 카드정보를 가맹점 서버를
거치지 않고 직접 Stripe 로 보낼 수 있다. 대신 Stripe 는 가맹점 서버로 Card 에 매칭된
token 을 보내고, 이 token 은 Charge Request 에 사용할 수 있다.
Checkout 은 ①Simple 과 ②Custom, 이상 2 가지 방식의 Integration 을 지원하는데,
Simple 방식은 파란색 “Pay with card” 결제버튼을 제공하며, Stripe token 과 함께
payment form 을 제출한다. Custom 방식은 가맹점이 custom button 을 만들고 Stripe
token 을 JavaScript callback 으로 전달하는 방식이다. custom form 을 사용하고자 하는
가맹점은 Stripe.js 를 사용해야 한다.
- Simple 방식의 Stripe Checkout 을 웹 사이트에 적용하기 위해서는 아래 code 를
붙이는 것으로 시작한다.
<form action="/charge" method="POST">
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="pk_test_ebnaMPNFcy8m8utx6YIj1xGy"
data-amount="2000"
data-name="Demo Site"
data-description="2 widgets ($20.00)"
data-image="/128x128.png"
data-locale="auto">
</script>
</form>
여기에서 유의해야 할 사항은 Script tag 에 덧붙인 data-key 인데, data-key 는 각
가맹점을 식별하기 위한 Key 이다. 또한 Checkout 은 실제 결제를 발생시키지 않고
단지 token 만 생성한다는 점에 유의해야 한다. 가맹점은 실제 결제를 발생시키기
위해서는 이 token 을 사용하여 이후 절차를 진행해야 한다.
- Custom 방식의 Stripe Checkout 을 웹사이트에 적용하기 위해서는 Stripe 의 JavaScript
API 를 사용한다. 웹 페이지가 로딩될 때 StripeCheckout.configure()를 사용하여
handler object 를 생성해야 한다. 어떤 이벤트에 대한 응답으로 handler 상에 open()을
호출할 수 있다. Checkout 프로세스를 취소하고 싶다면 handler 상에 close()를
호출한다.
jQuery 를 사용하여 custom checkout 을 구현한 예시는 아래와 같다.
<script src="https://checkout.stripe.com/checkout.js"></script>
<button id="customButton">Purchase</button>
<script>
var handler = StripeCheckout.configure({
key: 'pk_test_ebnaMPNFcy8m8utx6YIj1xGy',
image: '/img/documentation/checkout/marketplace.png',
locale: 'auto',
token: function(token) {
// Use the token to create the charge with a server-side script.
// You can access the token ID with `token.id`
}
});
13. - 13 -
$('#customButton').on('click', function(e) {
// Open Checkout with further options
handler.open({
name: 'Demo Site',
description: '2 widgets',
amount: 2000
});
e.preventDefault();
});
// Close Checkout on page navigation
$(window).on('popstate', function() {
handler.close();
});
</script>
Checkout 전체 프로세스는 아래와 같다.
① Checkout Code 가 포함된 결제 페이지가 HTTPs 상에 로딩된다.
② 고객이 “Pay with Card” 버튼을 누른 후, 결제정보를 채우고, Checkout 결제 창
하단의 “Pay $20.00”을 클릭한다.
③ 신용카드 상세 정보를 사용자 브라우저에서 Stripe 서버로 보낸다.
④ Stripe 는 token 을 리턴한다, 문제가 있을 경우 에러 메시지를 보낸다.
⑤ token 을 받아서 상기 Script tag 가 적용된 페이지에 hidden
element 명(‘stripeToken’)으로 저장한다.
⑥ Checkout 은 가맹점 서버로 구매정보를 POST 로 전달한다.
⑦ 가맹점 서버는 카드 결제를 위해 수신한 token 을 사용한다.
⑧ 카드정보 수집 및 인증 절차(Collection)와 별도로 결제절차(Charge)는 Stripe 가
제공한 library 를 이용하여 서버 연동을 통해서 수행한다.
Stripe token 은 한번만 사용 가능하지만, 매 결제 시 마다 카드정보를 고객으로부터
받아야 한다는 것은 아니다. Stripe 는 향후 사용을 위해 고객의 카드정보를 저장할 수
있도록 하는 Customer Object 타입을 제공한다. 카드를 즉시 결제하는 대신에 새로운
Customer Object 를 생성하고, 거기에 token 을 저장하면, 향후에는 가맹점에 저장된
customer ID 를 전달하면 별도 카드정보 입력없이 결제를 할 수 있다.
# Set your secret key: remember to change this to your live secret key
in production
# See your keys here https://dashboard.stripe.com/account/apikeys
stripe.api_key = "sk_test_vrwOIiijBaL9SKDgdw0dxeHo"
# Get the credit card details submitted by the form
token = request.POST['stripeToken']
# Create a Customer
customer = stripe.Customer.create(
source=token,
description="Example customer"
)
# Charge the Customer instead of the card
stripe.Charge.create(
amount=1000, # in cents
currency="usd",
14. - 14 -
customer=customer.id
)
# YOUR CODE: Save the customer ID and other info in a database for
later!
# YOUR CODE: When it's time to charge the customer again, retrieve the
customer ID!
stripe.Charge.create(
amount=1500, # $15.00 this time
currency="usd",
customer=customer_id # Previously stored, then retrieved
)
Subscription Billing
Stripe 는 반복(recurring) 및 가입(subscription)기반 빌링을 손쉽게 해주는 서비스로 무료
요금제를 포함한 고객 Group 별 요금제(plan) 설정, 유연한 과금주기, 쿠폰 할인 제공,
종량과금 및 일회성 결제, 결제오류 정책 설정 등을 제공한다.
- Subscription Billing 을 제공하기 위해서는 대쉬보드나 API 를
이용하여 가격, 과금주기 등 몇몇 요금제를 설정해야 한다. 예를
들면 월 $10 와 $30 을 지불해야 하는 2 개의 고객 Group 이
있다면, Basic 요금제와 Pro 요금제를 생성한다. 각 요금제는
unique id 를 가지며, unique id 는 API 호출 시 고객별 요금제
설정에 사용한다.
요금제 설정 절차는 아래와 같이 고객등록 절차와 동시에 진행할 수도 있다.
curl https://api.stripe.com/v1/customers
-u sk_test_vrwOIiijBaL9SKDgdw0dxeHo:
-d card[number]=4242424242424242
-d card[exp_month]=12
-d card[exp_year]=2016
-d card[cvc]=123
-d plan=Basic
만약 카드정보가 정상이라면 Stripe 는 아래와 같이 고객관련 정보를 return 한다.
{
"object": "customer",
"created": 1409190039,
"id": "cus_4fdAW5ftNQow1a",
"livemode": false,
"description": "new_paying_customer",
"email": null,
"delinquent": false,
"metadata": {},
"subscriptions": {
"object": "list",
"total_count": 1,
"has_more": false,
"url": "/v1/customers/cus_4fdAW5ftNQow1a/subscriptions",
"data": [
{
"id": "sub_4fdAS9IlSOFfiv",
"plan": {
15. - 15 -
"interval": "month",
"name": "Basic Plan",
"created": 1409178429,
"amount": 1200,
"currency": "usd",
"id": "basic",
"object": "plan",
"livemode": false,
"interval_count": 1,
"trial_period_days": null,
"metadata": {},
"statement_descriptor": null
},
"object": "subscription",
"start": 1409190039,
"status": "active",
"customer": "cus_4fdAW5ftNQow1a",
"cancel_at_period_end": false,
"current_period_start": 1409190039,
"current_period_end": 1411868439,
"ended_at": null,
"trial_start": null,
"trial_end": null,
"canceled_at": null,
"quantity": 1,
"application_fee_percent": null,
"discount": null,
"metadata": {}
}
]
},
"discount": null,
"account_balance": 0,
"currency": "usd",
"cards": {
"object": "list",
"total_count": 1,
"has_more": false,
"url": "/v1/customers/cus_4fdAW5ftNQow1a/cards",
"data": [
{
"id": "card_14WHtz4rPA98z9GRTW1QMenU",
"object": "card",
"last4": "4242",
"brand": "Visa",
"funding": "unknown",
"exp_month": 1,
"exp_year": 2015,
"fingerprint": "0qYXzA0d9EZtsgQ6",
"customer": "cus_4fdAW5ftNQow1a"
}
]
},
"default_card": "card_14WHtz4rPA98z9GRTW1QMenU"
}
- 과금주기(billing interval)는 daily, weekly, monthly, yearly 를 지원하며, 무료 trail
기간을 설정하여 제공하는 것도 가능하다. 또한 요금제 생성 시에 가격(amount)을
0 으로 하면 무료 요금제(free plan)로 설정이 가능하다.
basic 에서 pro 로 요금제를 변경하거나 탈퇴하는 것도 가능한데, 아래와 같은 간단한
API 호출로 가능하다.
16. - 16 -
curl
https://api.stripe.com/v1/customers/cus_4fdAW5ftNQow1a/subscriptions/sub_
4fdAS9IlSOFfiv
-u sk_test_vrwOIiijBaL9SKDgdw0dxeHo:
-d plan=Pro
curl
https://api.stripe.com/v1/customers/cus_4fdAW5ftNQow1a/subscriptions/sub_
4fdAS9IlSOFfiv
-u sk_test_vrwOIiijBaL9SKDgdw0dxeHo:
-X DELETE
- Subscription billing 을 통해 쿠폰 및 할인 제공도 가능하다.
만약 특정 고객에게 할인을 제공하고자 한다면,
대쉬보드에서 할인율 및 할인기간(10% 평생할인, 한달 50%
할인등)을 갖는 coupon code 를 생성한다. 사용자별 쿠폰
할인 제공하는 API 예시는 아래와 같다.
curl
https://api.stripe.com/v1/customers/cus_4fdAW5ftNQ
ow1a
-u sk_test_vrwOIiijBaL9SKDgdw0dxeHo:
-d coupon=50OFF1MONTH
- Subscription billing 은 종량과금(metered billing) 및 일회성 결제(one-time charges)도
제공이 가능하다. 이를 통해서 사용자의 요금제에 추가 과금을 하거나 신규
가입자에게 초기 설정비(setup fee)를 과금 하는 것도 가능하다. Stripe 에서는 이런
non-recurring charges 를 invoice items 이라고 부른다.
사용자의 다음달 청구서에 새로운 invoice item 을 추가할 때에는 아래와 같이 API 를
호출한다.
curl https://api.stripe.com/v1/invoiceitems
-u sk_test_vrwOIiijBaL9SKDgdw0dxeHo:
-d customer=cus_4fdAW5ftNQow1a
-d amount=1000
-d currency=usd
-d description="One-time setup fee"
Response
{
"date": 1305974416,
"description": "One-time setup fee",
"currency": "usd",
"amount": 1000,
"object": "invoiceitem",
"id": "ii_EOsoCIs2mE"
}
17. - 17 -
- Subscription billing 은 사용자별 요금제(Per-user pricing)도 가능하다. 이 요금제로
설정하기 위해서는 고객이 가입하거나 업데이트할 때 quantity 파라미터를 이용하여
해당 정보를 설정한다. 만약 고객이 서비스에 대해서 5 licenses 를 갖는다면, 아래와
같이 API 를 호출한다. 이때 quantity 가 0 이면 무료 요금제로 인식한다.
curl https://api.stripe.com/v1/customers
-u sk_test_vrwOIiijBaL9SKDgdw0dxeHo:
-d card[number]=4242424242424242
-d card[exp_month]=12
-d card[exp_year]=2016
-d card[cvc]=123
-d plan=Basic
-d quantity=5
- Stripe 는 결제 실패 시에는 자동으로 결제를 재시도 하며, 반복적으로 결제 실패가
일어날 경우 자동으로 가입을 취소시킬 수 있다. 결제 실패 시 얼마정도 기다릴지, 몇
번을 재시도 할지는 대쉬보드에서 쉽게 설정할 수 있다.
Connect
Shopify 와 같은 Marketplace 나 Lyft 같은 온디맨드 사업자가 Seller 또는 서비스
제공자에게 결제정산 서비스를 제공할 수 있도록 해주는 툴로서 제공하는 계정(account)
유형은 ①standalone account 와 ②managed account 나뉜다.
- Managed account 는 플랫폼에 의해 완전히 컨트롤 되는 반면에 Standalone
account 는 계정 소유자(=플랫폼 이용자)가 모든 것을 컨트롤한다. standalone account
사용자는 Stripe 와 관계를 맺으며 대쉬보드에 로그인 할 수 있다. 또한 그들 자신의
청구서를 처리 할 수 있으며, Stripe connect 를 사용하는 플랫폼 사업자와 그들 계정간
연결을 끊을 수도 있다. 플랫폼 사업자는 계정 사용자와의 연결을 만들기 위해서는
Connect OAuth 인증을 수행해야 한다.
- Managed account 의 경우 계정 소유자는 거의 아무것도 볼 수 있고, 계정 소유자와의
모든 interaction 및 Stripe 가 요구하는 정보 수집은 플랫폼 사업자가 담당한다. 또한
은행계좌 정보 변경 및 Stripe 계정상의 정보 수정이 가능하다. 계정 소유자들이
Stripe 에 로그인하지 않기 때문에 가입(onboarding), 대쉬보드, 리포팅, 고객
커뮤니케이션은 플랫폼 사업자가 담당한다. Managed Account 는 현재 U.S.와
18. - 18 -
Canadian 플랫폼만 지원된다.
Relay
Stripe Relay 는 Twitter, ShopStyle 과 같은 타사의 앱을 통해 실물이나 디지털 상품을 팔
수 있게 해주는, 즉 트윗, 소셜미디어 포스트, 인앱, 광고, 단순링크를 통하여 판매자가
상품을 판매할 수 있도록 해주는 툴이다. 상품 판매 플랫폼 역할을 하는 사업자는 Stripe
Connect 를 통해서 해당 서비스를 제공한다.
Relay 는 Stripe API 에 ①Product, ②SKU(Stock Keeping Unit), ③Order 이상 3 가지
새로운 컨셉을 도입하였는데, 각각의 의미는 아래와 같다.
① Product 는 판매하는 상품유형,
② SKU 는 상품의 세부속성과 비용 등을 나타내며,
③ Order 는 고객정보와 구매하고자 하는 SKU 의 combination
판매자(seller)는 상품 판매를 위하여 아래 4 가지 task 를 수행해야 한다.
① 상품 및 SKU 정의 : API 나 대쉬보드를 이용하여 상품 카탈로그 등록하는 절차로 API
를 통해서 등록할 경우는 아래와 같이 처리한다.
Stripe.api_key =
"sk_test_vrwOIiijBaL9SKDgdw0dxeHo"
Stripe::Product.create(
:name => '2015 Limited Edition T-shirt',
:description => 'Super awesome, one-of-a-
kind t-shirt',
:attributes => ['size', 'gender',
'color']
)
Stripe.api_key =
"sk_test_vrwOIiijBaL9SKDgdw0dxeHo"
Stripe::SKU.create(
:product =>
'pr_1703tiGDHQ3xoyUbuN738tq9',
:attributes => {
'size' => 'Medium',
'gender' => 'Unisex',
'color' => 'Cyan',
},
:price => 1500,
:currency => 'usd',
:inventory => {
'type' => 'finite',
'quantity' => 500
}
)
Stripe::SKU.create(
:product => 'pr_1703tiGDHQ3xoyUbuN738tq9',
:attributes => {
'size' => 'Large',
'gender' => 'Unisex',
'color' => 'Cyan'
},
:price => 1500,
19. - 19 -
:currency => 'usd',
:inventory => {
'type' => 'finite',
'quantity' => 400
}
)
② 배송 및 세금 처리 비용: 배송비는 무료나 구매량 또는 배송거리 등에 따라 부과가
가능하며, 세금은 부과하지 않거나 전체 주문 금액에 따른 퍼센트 부과가 가능하다.
③ 앱 연결 : 판매자 계정과 Twitter, ShopStyle 같은 앱의 연결은 기본적으로
대쉬보드를 통해서 이루어지며, 대쉬보드에 없는 앱의 경우에도 Stripe Relay 를
통합한 각 앱의 사이트에 “Connect with Stripe” 버튼을 통해서 연결 가능하다.
이
④ 주문 관리: Stripe 는 재고변화,
배송비 및 세금 관련 항목을 자동으로 처리하고, 이메일이나 Webhook 을 통해
판매자에게 주문 관련 내용을 통보해준다. 상품을 배송한 후에는 대쉬보드나 Update
Order API 호출을 통해서 배송완료로 상태 변경을 할 수 있다.
20. - 20 -
<참고자료>
1. Stripe (doc), https://stripe.com/docs
2. INSIDE STRIPE, THE PAYPAL COMPETITOR BACKED BY PAYPAL FOUNDERS PETER THIEL,
ELON MUSK, http://www.fastcompany.com/1813087/inside-stripe-paypal-competitor-backed-
paypal-founders-peter-thiel-elon-musk
3. How Stripe Marketed to Developers So Effectively, https://growthhackers.com/growth-
studies/how-stripe-marketed-to-developers-so-effectively