SlideShare a Scribd company logo
1 of 36
Payments Integration:
a Short Case Study
Gergely Orosz
Engineering Manager, Amsterdam
Effortlessly
pay for Uber
Rider Payments Team
We build best in-class payment methods and
a magical digital payments experience for
riders. We enable the rest of Uber to leverage
this payments experience on the mobile and
the web.
● Let’s Build
building the payments integration
● Let’s Go
testing & rolling out
● Let’s Harden
then the Real World happened
Agenda
Google Pay:
Client Side
Add Flow
If Google Pay is setup on the phone, this
step is low friction.
Google Pay:
Client Side
Charge (Exact Amount)
Flow
When riders owe a specific amount of
money for Uber, they need to settle that
amount before they can take a new trip.
Google Pay:
Client Side
Authorize Flow
Before taking a new trip with Google Pay,
riders need to authorize the estimated price
for the trip. This ensures the money will be
available for Uber to collect, once the trip
finishes.
Google Pay:
Client Side
Delete Flow
Riders can remove Google Pay from their list
of payment methods.
● Data for each type of payment a user has added
● Fields
○ User ID
○ Type
○ Custom fields per payments type
■ Display information
■ Metadata used for processing/charging
Payments Profile
Void
Refund a previous authorization to the user.
This can happen e.g. when the rider cancels
shortly after requesting.
Delete
Remove the payment profile from the rider’s
account. While it sounds straightforward, can
lead to interesting edge cases when doing
this e.g. while still on a ride.
Add
When adding Google Pay on the client side,
create a payment profile with all necessary
data for use.
Auth
Guarantee that a specific amount of funds
will be available for charging later by
authorizing this amount. Authorization is done
by the card issuer and funds can be held up
to seven days.
Google Pay:
Backend
Operations
Charge
Move a specific amount of money from the
user’s Google Pay account to Uber.
Capture
Collect a previous authorization and move the
money from the user’s Google Pay account
to Uber.
Google Pay: Auth Flow
Mobile Google SDK Uber.com Braintree
Get payment data
Nonce
Pickup request (with nonce)
Exchange nonce
Payment token
Auth with token
Auth result
Pickup result
Google Pay: Auth Flow (in Detail)
Uber.com
API
Risk Engine
Payments
Profile
Service
Braintree
Pickup request (with nonce)
Exchange nonce
Payment token
PSP Gateway
Decide trip risk
Risk check
Verify payment
profile (with nonce) Create (with nonce)
Payment token
Persist token
Payment profile verified
Google Pay: Auth Flow (in Detail)
Uber.com
API
Risk Engine
Payments
Profile
Service
Braintree
Operation result
PSP Gateway
Auth with token
Standardized auth data
Persist auth data
Payment profile verified
Auth
Decide trip risk
Sale operation with token
Auth complete
Trip request approved
Fetch token
Systems to Modify a Payment Flow
Risk Engine
Payments
Profile Service
Go Python
Core Systems (Current)
Uber.com API
NodeJS
PSP Gateway
Python
User Profile
Service
Go
● Switch payment on-trip
● Tipping
● Scheduled rides
● EATS order flow
● Promotions
● Uber for Business
● Default payment method fallback/selection
● Scheduled dunning of unsettled payments
● Uber Cash
Additional Use Cases
Move fast by unblocking
ourselves
- most teams at Uber, 2009-2017
Systems to Modify a Payment Flow
Risk Engine
Payments
Profile Service
Go Python
Core Systems (Current)
Uber.com API
NodeJS
PSP Gateway
Python
User Profile
Service
Go
Other Systems with Payments Business Logic
Tipping Service
Go
Promotions
Service
Python
Customer
Support
NodeJS
Marketplace
Matching
Service
Go
… and more!
Mostly Go, Java
Let’s do the right thing
and pay down our tech
& architecture debt.
- most teams at Uber, 2017 onwards
Systems to Modify a Payment Flow
Risk Engine
Payments
Profile Service
Go Python
Core Systems (Current)
Uber.com API
NodeJS
PSP Gateway
Python
User Profile
Service
Go
Other Systems with Payments Business Logic
Tipping Service
Go
Promotions
Service
Python
Customer
Support
NodeJS
Marketplace
Matching
Service
Go
… and more!
Mostly Go, Java
Nextgen Systems (WIP)
Payments Profile
Service v2
Java
Payments Auth
Service
Java
Uber.com API
Go
PSP Gateway v2
Java
Building a Payment Flow
● Adopting the API of the PSP is not the most difficult
● Systems fragmentation is the biggest challenge
● Let’s Build
building the payments integration
● Let’s Go
testing & rolling out
● Let’s Harden
then the Real World happened
Agenda
Sandbox Testing
Most PSPs have this (including Braintree).
Makes development faster/easier.
Testing
Testing with Real Cards
Once we think it’s ready, time to give it a test
with a real card/payment method.
Debugging
There are many systems where payments
data/results need to be tracked. Dedicated
tooling helps.
Develop Against Prod Data (Cerberus)
Send requests from a dev machine to production. Do this in a guarded,
transparent and easy way.
Initial version: supporting only read only endpoints.
Route Prod Traffic to Dev (Deputy)
The “reverse” of Developing Against Prod.
Route production messages to local dev machines. Requires installing
a middleware on the service (aka “deputize”)
Production Service
Access Control Gateway
Proxy
Client
Dev
Service
Virtual machine
Cerebus
Dev Service
Access Control Gateway
Proxy
Client
Forwarding
Service
Virtual machine
Cerebus
Prod
Service
Deputy
Middleware
Develop in Production*
* Safely
Everything is an
Experiment
We measure how changes affect key
business metrics. Things we typically care
about are rate of trip taking, first paid trips.
Rollout
Choosing the First
Experiment Region
Not too large, not too small.
Business requirements (upfront pricing &
previously no Android Pay)
And the first country is...
Rollout Plan
Decide well in advance
One city, 1%, 10%, 50%, 90%
Decide key metrics to track. For Google Pay:
core metrics + Acceptance Rate,
Uncollected Rate
Rollout: Acceptance Rate
Rollout: Uncollected Rate
● Cautious rollout paid off. Data was worse than expected.
● Double checked sampling & hypothesis.
● Rolled back.
● Investigated root cause with with Google Pay. Fixed the issue on both ends.
● Resumed rollout. Rinse & repeat.
Rollout
● Let’s Build
building the payments integration
● Let’s Go
testing & rolling out
● Let’s Harden
then the Real World happened
Agenda
Anything that can go
wrong, will go wrong.
- Murphy
Monitoring
See what is going on with the system, at any
given time.
We built monitoring dashboards segmented
by:
● payment type
● operation
● city/region
Our monitoring dashboards are based on
Grafana.
Monitoring & Alerting
Alerting
When something is out of the ordinary, fire a
pager.
We use machine learning for anomaly
detection and alerting. We have global, as
well as local (country level) alerts setup.
Mitigation & Production
Logs
Once an alert fires, we quickly determine if
there is a likely outage happening. We have
tools to see the latest changes and mitigate
to roll back
We use Elasticsearch and Kibana
dashboards to visualize/browse our
(scrubbed) prod logs.
Monitoring & Alerting
Let’s talk about fraud.
Fraud is a problem that
never keeps us up at
night.
- said no one everyone building a payments system
Real-world
fraud: a story
Cast
● Location Spoofing
● Unsupported Region
● Silent Failure Error
● Untested Edge Case
● Whatsapp Economy
● Youtube
● Human Creativity
● Blameless Postmortem
Operational Monitoring vs
Fraud Monitoring
They are very different concepts. Need
different tools and approaches.
Real-world
fraud learnings
● Let’s Build
building the payments
integration
● Let’s Go
testing & rolling out
● Let’s Harden
then the Real World happened
Summary
Gergely Orosz
@GergelyOrosz

More Related Content

What's hot

The Shift from Federated to Decentralized Identity
The Shift from Federated to Decentralized IdentityThe Shift from Federated to Decentralized Identity
The Shift from Federated to Decentralized IdentityEvernym
 
하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조Logpresso
 
Learn from the Experts: Using DORA Metrics to Accelerate Value Stream Flow
Learn from the Experts: Using DORA Metrics to Accelerate Value Stream FlowLearn from the Experts: Using DORA Metrics to Accelerate Value Stream Flow
Learn from the Experts: Using DORA Metrics to Accelerate Value Stream FlowDevOps.com
 
Diffusion de la méthode BDD chez AXA via les 3 amigos
Diffusion de la méthode BDD chez AXA via les 3 amigosDiffusion de la méthode BDD chez AXA via les 3 amigos
Diffusion de la méthode BDD chez AXA via les 3 amigosEmilie-Anne GUERCH
 
Kks sre book_ch1,2
Kks sre book_ch1,2Kks sre book_ch1,2
Kks sre book_ch1,2Chris Huang
 
Nextcloud als On-Premises Lösung für hochsicheren Datenaustausch (Frank Karli...
Nextcloud als On-Premises Lösung für hochsicheren Datenaustausch (Frank Karli...Nextcloud als On-Premises Lösung für hochsicheren Datenaustausch (Frank Karli...
Nextcloud als On-Premises Lösung für hochsicheren Datenaustausch (Frank Karli...data://disrupted®
 
Operating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with KubernetesOperating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with KubernetesJonathan Katz
 
5 Best Practices DevOps Culture
5 Best Practices DevOps Culture5 Best Practices DevOps Culture
5 Best Practices DevOps CultureEdureka!
 
Monitoring at the Speed of DevOps
Monitoring at the Speed of DevOpsMonitoring at the Speed of DevOps
Monitoring at the Speed of DevOpsDevOps.com
 
How to Monitoring the SRE Golden Signals (E-Book)
How to Monitoring the SRE Golden Signals (E-Book)How to Monitoring the SRE Golden Signals (E-Book)
How to Monitoring the SRE Golden Signals (E-Book)Siglos
 
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019Paulo Clavijo
 
Agile transformation Explained: Agile 2017 Session
Agile transformation Explained: Agile 2017 SessionAgile transformation Explained: Agile 2017 Session
Agile transformation Explained: Agile 2017 SessionLeadingAgile
 
Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021Timur Shemsedinov
 
[Cloud OnAir] Talks by DevRel Vol.4 データ管理とデータ ベース 2020年8月27日 放送
[Cloud OnAir] Talks by DevRel Vol.4 データ管理とデータ ベース 2020年8月27日 放送[Cloud OnAir] Talks by DevRel Vol.4 データ管理とデータ ベース 2020年8月27日 放送
[Cloud OnAir] Talks by DevRel Vol.4 データ管理とデータ ベース 2020年8月27日 放送Google Cloud Platform - Japan
 

What's hot (20)

The Shift from Federated to Decentralized Identity
The Shift from Federated to Decentralized IdentityThe Shift from Federated to Decentralized Identity
The Shift from Federated to Decentralized Identity
 
하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조
 
Learn from the Experts: Using DORA Metrics to Accelerate Value Stream Flow
Learn from the Experts: Using DORA Metrics to Accelerate Value Stream FlowLearn from the Experts: Using DORA Metrics to Accelerate Value Stream Flow
Learn from the Experts: Using DORA Metrics to Accelerate Value Stream Flow
 
Advantages and disadvantages of Agile approach for products and services deve...
Advantages and disadvantages of Agile approach for products and services deve...Advantages and disadvantages of Agile approach for products and services deve...
Advantages and disadvantages of Agile approach for products and services deve...
 
Diffusion de la méthode BDD chez AXA via les 3 amigos
Diffusion de la méthode BDD chez AXA via les 3 amigosDiffusion de la méthode BDD chez AXA via les 3 amigos
Diffusion de la méthode BDD chez AXA via les 3 amigos
 
Kks sre book_ch1,2
Kks sre book_ch1,2Kks sre book_ch1,2
Kks sre book_ch1,2
 
Nextcloud als On-Premises Lösung für hochsicheren Datenaustausch (Frank Karli...
Nextcloud als On-Premises Lösung für hochsicheren Datenaustausch (Frank Karli...Nextcloud als On-Premises Lösung für hochsicheren Datenaustausch (Frank Karli...
Nextcloud als On-Premises Lösung für hochsicheren Datenaustausch (Frank Karli...
 
GitOps with Gitkube
GitOps with GitkubeGitOps with Gitkube
GitOps with Gitkube
 
Operating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with KubernetesOperating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with Kubernetes
 
Demystifying DevOps
Demystifying DevOpsDemystifying DevOps
Demystifying DevOps
 
5 Best Practices DevOps Culture
5 Best Practices DevOps Culture5 Best Practices DevOps Culture
5 Best Practices DevOps Culture
 
Implementing Scrum with Kanban
Implementing Scrum with KanbanImplementing Scrum with Kanban
Implementing Scrum with Kanban
 
Azure dev ops
Azure dev opsAzure dev ops
Azure dev ops
 
Monitoring at the Speed of DevOps
Monitoring at the Speed of DevOpsMonitoring at the Speed of DevOps
Monitoring at the Speed of DevOps
 
How to Monitoring the SRE Golden Signals (E-Book)
How to Monitoring the SRE Golden Signals (E-Book)How to Monitoring the SRE Golden Signals (E-Book)
How to Monitoring the SRE Golden Signals (E-Book)
 
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
 
Agile transformation Explained: Agile 2017 Session
Agile transformation Explained: Agile 2017 SessionAgile transformation Explained: Agile 2017 Session
Agile transformation Explained: Agile 2017 Session
 
The Emergence of Business Agility
The Emergence of Business AgilityThe Emergence of Business Agility
The Emergence of Business Agility
 
Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021
 
[Cloud OnAir] Talks by DevRel Vol.4 データ管理とデータ ベース 2020年8月27日 放送
[Cloud OnAir] Talks by DevRel Vol.4 データ管理とデータ ベース 2020年8月27日 放送[Cloud OnAir] Talks by DevRel Vol.4 データ管理とデータ ベース 2020年8月27日 放送
[Cloud OnAir] Talks by DevRel Vol.4 データ管理とデータ ベース 2020年8月27日 放送
 

Similar to Payments Integration at Uber: a (Short) Case Study

MoneyCollect_intro2023.pdf
MoneyCollect_intro2023.pdfMoneyCollect_intro2023.pdf
MoneyCollect_intro2023.pdftech357995
 
Creating an Uber Clone - Part XXXI - Transcript.pdf
Creating an Uber Clone - Part XXXI - Transcript.pdfCreating an Uber Clone - Part XXXI - Transcript.pdf
Creating an Uber Clone - Part XXXI - Transcript.pdfShaiAlmog1
 
Monetizing your Applications with PayPal X Payments Platform
Monetizing your Applications withPayPal X Payments PlatformMonetizing your Applications withPayPal X Payments Platform
Monetizing your Applications with PayPal X Payments PlatformPayPalX Developer Network
 
Monetizing your Applications with PayPal X Payments Platform
Monetizing your Applications withPayPal X Payments PlatformMonetizing your Applications withPayPal X Payments Platform
Monetizing your Applications with PayPal X Payments Platformguest72b121
 
Integration of payment gateways using Paypal account
Integration of payment gateways using Paypal account Integration of payment gateways using Paypal account
Integration of payment gateways using Paypal account Phenom People
 
Monetize with PayPal X Payments Platform
Monetize with PayPal X Payments PlatformMonetize with PayPal X Payments Platform
Monetize with PayPal X Payments Platformguest72b121
 
SpringOne Platform 2019
SpringOne Platform 2019SpringOne Platform 2019
SpringOne Platform 2019Junya Suzuki
 
Mobile payments at Droidcon Eastern Europe
Mobile payments at Droidcon Eastern EuropeMobile payments at Droidcon Eastern Europe
Mobile payments at Droidcon Eastern EuropePayPal
 
eBook__1681292998.pdf
eBook__1681292998.pdfeBook__1681292998.pdf
eBook__1681292998.pdfAneeshKalra1
 
Monetizing your apps with PayPal API:s
Monetizing your apps with PayPal API:sMonetizing your apps with PayPal API:s
Monetizing your apps with PayPal API:sDisruptive Code
 
07 factors to consider while choosing an ecommerce payment gateway
07 factors to consider while choosing an ecommerce payment gateway07 factors to consider while choosing an ecommerce payment gateway
07 factors to consider while choosing an ecommerce payment gatewaySnehaDas60
 
Scaling Experimentation & Data Capture at Grab
Scaling Experimentation & Data Capture at GrabScaling Experimentation & Data Capture at Grab
Scaling Experimentation & Data Capture at GrabRoman
 
Payments in Mobile Apps
Payments in Mobile AppsPayments in Mobile Apps
Payments in Mobile AppsCleveroad
 
AutoPay - Travel Payments
AutoPay - Travel PaymentsAutoPay - Travel Payments
AutoPay - Travel PaymentsPhillip Tau
 
Long running processes in DDD
Long running processes in DDDLong running processes in DDD
Long running processes in DDDBernd Ruecker
 

Similar to Payments Integration at Uber: a (Short) Case Study (20)

MoneyCollect_intro2023.pdf
MoneyCollect_intro2023.pdfMoneyCollect_intro2023.pdf
MoneyCollect_intro2023.pdf
 
Creating an Uber Clone - Part XXXI - Transcript.pdf
Creating an Uber Clone - Part XXXI - Transcript.pdfCreating an Uber Clone - Part XXXI - Transcript.pdf
Creating an Uber Clone - Part XXXI - Transcript.pdf
 
Monetizing your Applications with PayPal X Payments Platform
Monetizing your Applications withPayPal X Payments PlatformMonetizing your Applications withPayPal X Payments Platform
Monetizing your Applications with PayPal X Payments Platform
 
Monetizing your Applications with PayPal X Payments Platform
Monetizing your Applications withPayPal X Payments PlatformMonetizing your Applications withPayPal X Payments Platform
Monetizing your Applications with PayPal X Payments Platform
 
Integration of payment gateways using Paypal account
Integration of payment gateways using Paypal account Integration of payment gateways using Paypal account
Integration of payment gateways using Paypal account
 
Monetize with PayPal X Payments Platform
Monetize with PayPal X Payments PlatformMonetize with PayPal X Payments Platform
Monetize with PayPal X Payments Platform
 
SRS for Google Pay(Gpay)
SRS for Google Pay(Gpay)SRS for Google Pay(Gpay)
SRS for Google Pay(Gpay)
 
SpringOne Platform 2019
SpringOne Platform 2019SpringOne Platform 2019
SpringOne Platform 2019
 
Business proposal
Business proposalBusiness proposal
Business proposal
 
Mobile payments at Droidcon Eastern Europe
Mobile payments at Droidcon Eastern EuropeMobile payments at Droidcon Eastern Europe
Mobile payments at Droidcon Eastern Europe
 
eBook__1681292998.pdf
eBook__1681292998.pdfeBook__1681292998.pdf
eBook__1681292998.pdf
 
Monetizing your apps with PayPal API:s
Monetizing your apps with PayPal API:sMonetizing your apps with PayPal API:s
Monetizing your apps with PayPal API:s
 
07 factors to consider while choosing an ecommerce payment gateway
07 factors to consider while choosing an ecommerce payment gateway07 factors to consider while choosing an ecommerce payment gateway
07 factors to consider while choosing an ecommerce payment gateway
 
Scaling Experimentation & Data Capture at Grab
Scaling Experimentation & Data Capture at GrabScaling Experimentation & Data Capture at Grab
Scaling Experimentation & Data Capture at Grab
 
Ride sharing-app-proposal-letter
Ride sharing-app-proposal-letterRide sharing-app-proposal-letter
Ride sharing-app-proposal-letter
 
Payments in Mobile Apps
Payments in Mobile AppsPayments in Mobile Apps
Payments in Mobile Apps
 
AutoPay - Travel Payments
AutoPay - Travel PaymentsAutoPay - Travel Payments
AutoPay - Travel Payments
 
Long running processes in DDD
Long running processes in DDDLong running processes in DDD
Long running processes in DDD
 
Payments Anywhere with PayPal
Payments Anywhere with PayPalPayments Anywhere with PayPal
Payments Anywhere with PayPal
 
MyATM
MyATMMyATM
MyATM
 

More from Gergely Orosz

Mobile Architecture at Scale
Mobile Architecture at ScaleMobile Architecture at Scale
Mobile Architecture at ScaleGergely Orosz
 
Continuous testing at scale
Continuous testing at scaleContinuous testing at scale
Continuous testing at scaleGergely Orosz
 
Success on the Marketplace, App Store and Apps Marketplace
Success on the Marketplace, App Store and Apps MarketplaceSuccess on the Marketplace, App Store and Apps Marketplace
Success on the Marketplace, App Store and Apps MarketplaceGergely Orosz
 
Wp7 performance challenges
Wp7 performance challengesWp7 performance challenges
Wp7 performance challengesGergely Orosz
 
Developing for Windows Phone 7
Developing for Windows Phone 7Developing for Windows Phone 7
Developing for Windows Phone 7Gergely Orosz
 
An Introduction To Silverlight
An Introduction To SilverlightAn Introduction To Silverlight
An Introduction To SilverlightGergely Orosz
 

More from Gergely Orosz (6)

Mobile Architecture at Scale
Mobile Architecture at ScaleMobile Architecture at Scale
Mobile Architecture at Scale
 
Continuous testing at scale
Continuous testing at scaleContinuous testing at scale
Continuous testing at scale
 
Success on the Marketplace, App Store and Apps Marketplace
Success on the Marketplace, App Store and Apps MarketplaceSuccess on the Marketplace, App Store and Apps Marketplace
Success on the Marketplace, App Store and Apps Marketplace
 
Wp7 performance challenges
Wp7 performance challengesWp7 performance challenges
Wp7 performance challenges
 
Developing for Windows Phone 7
Developing for Windows Phone 7Developing for Windows Phone 7
Developing for Windows Phone 7
 
An Introduction To Silverlight
An Introduction To SilverlightAn Introduction To Silverlight
An Introduction To Silverlight
 

Recently uploaded

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 

Recently uploaded (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 

Payments Integration at Uber: a (Short) Case Study

  • 1. Payments Integration: a Short Case Study Gergely Orosz Engineering Manager, Amsterdam
  • 2. Effortlessly pay for Uber Rider Payments Team We build best in-class payment methods and a magical digital payments experience for riders. We enable the rest of Uber to leverage this payments experience on the mobile and the web.
  • 3.
  • 4. ● Let’s Build building the payments integration ● Let’s Go testing & rolling out ● Let’s Harden then the Real World happened Agenda
  • 5. Google Pay: Client Side Add Flow If Google Pay is setup on the phone, this step is low friction.
  • 6. Google Pay: Client Side Charge (Exact Amount) Flow When riders owe a specific amount of money for Uber, they need to settle that amount before they can take a new trip.
  • 7. Google Pay: Client Side Authorize Flow Before taking a new trip with Google Pay, riders need to authorize the estimated price for the trip. This ensures the money will be available for Uber to collect, once the trip finishes.
  • 8. Google Pay: Client Side Delete Flow Riders can remove Google Pay from their list of payment methods.
  • 9. ● Data for each type of payment a user has added ● Fields ○ User ID ○ Type ○ Custom fields per payments type ■ Display information ■ Metadata used for processing/charging Payments Profile
  • 10. Void Refund a previous authorization to the user. This can happen e.g. when the rider cancels shortly after requesting. Delete Remove the payment profile from the rider’s account. While it sounds straightforward, can lead to interesting edge cases when doing this e.g. while still on a ride. Add When adding Google Pay on the client side, create a payment profile with all necessary data for use. Auth Guarantee that a specific amount of funds will be available for charging later by authorizing this amount. Authorization is done by the card issuer and funds can be held up to seven days. Google Pay: Backend Operations Charge Move a specific amount of money from the user’s Google Pay account to Uber. Capture Collect a previous authorization and move the money from the user’s Google Pay account to Uber.
  • 11. Google Pay: Auth Flow Mobile Google SDK Uber.com Braintree Get payment data Nonce Pickup request (with nonce) Exchange nonce Payment token Auth with token Auth result Pickup result
  • 12. Google Pay: Auth Flow (in Detail) Uber.com API Risk Engine Payments Profile Service Braintree Pickup request (with nonce) Exchange nonce Payment token PSP Gateway Decide trip risk Risk check Verify payment profile (with nonce) Create (with nonce) Payment token Persist token Payment profile verified
  • 13. Google Pay: Auth Flow (in Detail) Uber.com API Risk Engine Payments Profile Service Braintree Operation result PSP Gateway Auth with token Standardized auth data Persist auth data Payment profile verified Auth Decide trip risk Sale operation with token Auth complete Trip request approved Fetch token
  • 14. Systems to Modify a Payment Flow Risk Engine Payments Profile Service Go Python Core Systems (Current) Uber.com API NodeJS PSP Gateway Python User Profile Service Go
  • 15. ● Switch payment on-trip ● Tipping ● Scheduled rides ● EATS order flow ● Promotions ● Uber for Business ● Default payment method fallback/selection ● Scheduled dunning of unsettled payments ● Uber Cash Additional Use Cases
  • 16. Move fast by unblocking ourselves - most teams at Uber, 2009-2017
  • 17. Systems to Modify a Payment Flow Risk Engine Payments Profile Service Go Python Core Systems (Current) Uber.com API NodeJS PSP Gateway Python User Profile Service Go Other Systems with Payments Business Logic Tipping Service Go Promotions Service Python Customer Support NodeJS Marketplace Matching Service Go … and more! Mostly Go, Java
  • 18. Let’s do the right thing and pay down our tech & architecture debt. - most teams at Uber, 2017 onwards
  • 19. Systems to Modify a Payment Flow Risk Engine Payments Profile Service Go Python Core Systems (Current) Uber.com API NodeJS PSP Gateway Python User Profile Service Go Other Systems with Payments Business Logic Tipping Service Go Promotions Service Python Customer Support NodeJS Marketplace Matching Service Go … and more! Mostly Go, Java Nextgen Systems (WIP) Payments Profile Service v2 Java Payments Auth Service Java Uber.com API Go PSP Gateway v2 Java
  • 20. Building a Payment Flow ● Adopting the API of the PSP is not the most difficult ● Systems fragmentation is the biggest challenge
  • 21. ● Let’s Build building the payments integration ● Let’s Go testing & rolling out ● Let’s Harden then the Real World happened Agenda
  • 22. Sandbox Testing Most PSPs have this (including Braintree). Makes development faster/easier. Testing Testing with Real Cards Once we think it’s ready, time to give it a test with a real card/payment method. Debugging There are many systems where payments data/results need to be tracked. Dedicated tooling helps.
  • 23. Develop Against Prod Data (Cerberus) Send requests from a dev machine to production. Do this in a guarded, transparent and easy way. Initial version: supporting only read only endpoints. Route Prod Traffic to Dev (Deputy) The “reverse” of Developing Against Prod. Route production messages to local dev machines. Requires installing a middleware on the service (aka “deputize”) Production Service Access Control Gateway Proxy Client Dev Service Virtual machine Cerebus Dev Service Access Control Gateway Proxy Client Forwarding Service Virtual machine Cerebus Prod Service Deputy Middleware Develop in Production* * Safely
  • 24. Everything is an Experiment We measure how changes affect key business metrics. Things we typically care about are rate of trip taking, first paid trips. Rollout Choosing the First Experiment Region Not too large, not too small. Business requirements (upfront pricing & previously no Android Pay) And the first country is... Rollout Plan Decide well in advance One city, 1%, 10%, 50%, 90% Decide key metrics to track. For Google Pay: core metrics + Acceptance Rate, Uncollected Rate
  • 27. ● Cautious rollout paid off. Data was worse than expected. ● Double checked sampling & hypothesis. ● Rolled back. ● Investigated root cause with with Google Pay. Fixed the issue on both ends. ● Resumed rollout. Rinse & repeat. Rollout
  • 28. ● Let’s Build building the payments integration ● Let’s Go testing & rolling out ● Let’s Harden then the Real World happened Agenda
  • 29. Anything that can go wrong, will go wrong. - Murphy
  • 30. Monitoring See what is going on with the system, at any given time. We built monitoring dashboards segmented by: ● payment type ● operation ● city/region Our monitoring dashboards are based on Grafana. Monitoring & Alerting Alerting When something is out of the ordinary, fire a pager. We use machine learning for anomaly detection and alerting. We have global, as well as local (country level) alerts setup. Mitigation & Production Logs Once an alert fires, we quickly determine if there is a likely outage happening. We have tools to see the latest changes and mitigate to roll back We use Elasticsearch and Kibana dashboards to visualize/browse our (scrubbed) prod logs.
  • 33. Fraud is a problem that never keeps us up at night. - said no one everyone building a payments system
  • 34. Real-world fraud: a story Cast ● Location Spoofing ● Unsupported Region ● Silent Failure Error ● Untested Edge Case ● Whatsapp Economy ● Youtube ● Human Creativity ● Blameless Postmortem
  • 35. Operational Monitoring vs Fraud Monitoring They are very different concepts. Need different tools and approaches. Real-world fraud learnings
  • 36. ● Let’s Build building the payments integration ● Let’s Go testing & rolling out ● Let’s Harden then the Real World happened Summary Gergely Orosz @GergelyOrosz

Editor's Notes

  1. Hands up if you are familiar with the concept of a payments profile.
  2. Put your hands up if you have been involved with fraud cases hands-on when building a system.