Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Taxes and Payments at Gilt
Search
sullis
April 15, 2014
Technology
1
360
Taxes and Payments at Gilt
presentation given at the Portland Java User Group
April 15, 2014
sullis
April 15, 2014
Tweet
Share
More Decks by sullis
See All by sullis
Amazon S3 - Portland Java User Group 2024-09-17
sullis
0
54
Netty - Montreal Java User Group 2024-05-21
sullis
0
130
Netty Chicago Java User Group 2024-04-17
sullis
0
810
Java 21 - Portland Java User Group 2023-10-24
sullis
0
280
Microbenchmarking with JMH - Portland 2023-03-14
sullis
0
130
Code generation on the Java VM 2022-04-19
sullis
0
110
Mockito 2022-01-25
sullis
0
170
GitHub Actions 2021-12-16
sullis
0
35
Apache Struts and the Equifax data breach 2021-06-03
sullis
0
54
Other Decks in Technology
See All in Technology
OCI Vault 概要
oracle4engineer
PRO
0
9.8k
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
200
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
440
Engineer Career Talk
lycorp_recruit_jp
0
200
飲食店データの分析事例とそれを支えるデータ基盤
kimujun
0
220
あなたの知らない Function.prototype.toString() の世界
mizdra
PRO
3
930
The Rise of LLMOps
asei
9
1.9k
SAP Community and Developer Update
sygyzmundovych
0
350
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
1
1k
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.7k
静的解析で実現した効率的なi18n対応の仕組みづくり
minako__ph
2
440
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
190
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
900
Navigating Team Friction
lara
183
14k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
How to Ace a Technical Interview
jacobian
276
23k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
Transcript
Taxes and Payments at Gilt Sean Sullivan April 15, 2014
• gilt.com • Taxes • Credit cards • Alternate payment
methods
Gilt is an online retailer
www.gilt.com
www.gilt.com
Gilt Checkout
https://www.gilt.com/checkout
Gilt’s checkout system • reserve inventory • assign shipping address
• enforce shipping restrictions • identify eligible ship methods • calculate ship cost
Gilt’s checkout system • assign currency • identify eligible payment
methods • assign payment method to order
Gilt’s checkout system • identify eligible discounts • apply discounts
• apply account credits • calculate tax
Domestic orders
Different tax laws in each U.S. state
http://www.oregon.gov/dor/Pages/salestax.aspx “Oregon does not have a general sales tax (or
a use/transaction tax). “
http://www.nyc.gov/html/dof/html/business/nys_sales_tax.shtml Sales tax in New York state
Sales tax in New York state http://www.tax.ny.gov/bus/st/sales_tax_rates.htm The combined sales
and use tax rate equals the state rate (currently 4%) plus any local tax rate imposed by a city, county, or school district. [...] The combined rates vary in each county and in cities that impose sales tax.
Use a commercial tax calculator
http://www.vertexinc.com/Solutions/indirect/vertex-o-series.asp
• O Series On Demand (SAAS) • SOAP API •
generate SOAP client with Apache CXF • commit SOAP client source to a Git repo • publish library to internal Ivy repo Vertex integration @ Gilt
@WebService(targetNamespace = "http://www.vertexinc.com/oseries/services/ CalculateTax50", name = "CalculateTaxWS50") @XmlSeeAlso({com.vertexinc.oseries.tps_5_0.ObjectFactory.class}) @SOAPBinding(parameterStyle =
SOAPBinding.ParameterStyle.BARE) public interface CalculateTaxWS50 { @WebResult(name = "VertexEnvelope", targetNamespace = "urn:vertexinc:o- series:tps:5:0", partName = "VertexEnvelope") @WebMethod public com.vertexinc.oseries.tps_5_0.VertexEnvelope calculateTax50( @WebParam(partName = "part", name = "VertexEnvelope", targetNamespace = "urn:vertexinc:o-series:tps:5:0") com.vertexinc.oseries.tps_5_0.VertexEnvelope part ); } Generated code
International orders
borderfree.com
checkout system Borderfree checkout UI
Borderfree Checkout API • quoteRequest • placeOrderRequest
Credit card transactions
Credit card operations • AVS check • authorization • capture
• credit
checkout system payment system payment processor checkout UI order processing
system order queue
Credit card security
http://en.wikipedia.org/wiki/Payment_Card_Industry_Data_Security_Standard
http://en.wikipedia.org/wiki/Payment_Card_Industry_Data_Security_Standard
Public key cryptography
Encrypting credit card data 1. AJAX request: GET /get_publickey 2.
encrypt with JavaScript encryption library: rsa.encrypt(publicKey, ccData) 3. HTTPS POST to server
https://paysvc.giltvault.com/payment_service/ get_publickey?callback=demo
Gilt’s encryption key ceremony
http://tech.gilt.com/post/77092511313/scenes-from-the-annual-encryption-key-ceremony-at-gilt
http://tech.gilt.com/post/77092511313/scenes-from-the-annual-encryption-key-ceremony-at-gilt
Alternate payment methods
Gilt.com Checkout with PayPal
https://www.gilt.com/checkout
None
None
None
None
None
None
Integrating with
• SOAP API • NVP API • REST API developer
API’s
• SetExpressCheckout • GetExpressCheckoutDetails • DoExpressCheckoutPayment Express Checkout
Emerging payment technology
Crypto currencies
http://www.bloomberg.com/news/2014-03-25/bitcoin-is-property-not-currency-in-tax-system-irs-says.html
http://twitter.com/businessinsider/status/455825603988824064
The end
Bonus slides
http://en.wikipedia.org/wiki/Quill_Corp._v._North_Dakota
http://twitter.com/evanpro/status/238728001670479872