Overview

In 2021 I was part of a global team of Fintech professionals tasked with improving the Uber payments platform and look for new ways to expand its’ footprint in emerging markets. The research here is a very brief summary we used to intro the project. Uber payments is a large and incredibly sophisticated piece of engineering that could easily be a book unto itself. 

Platform

The Uber Payments Platform is part of a broader ecosystem of Uber’s internal/external systems. Each Uber business (Rides, Eats, Freight …) has specific sub-systems pointing to its’ apps. These systems access different functionality of the overall Payments Platform via a self-serviced, payment platform configuration layer. The Uber Payment platform also interacts with Uber internals systems for service such as reporting, invoicing, or tipping.

Components

Uber Payments platform is a collection of microservices organized in a stream-processing architecture. Technical tool sets include: Apache Kafka, Go, Java, NodeJS, Python, Cerberus, Grafana, Elasticsearch, and Kabana

Uber’s payments architecture, has the following key components. The visual above shows how they interact:

  • * API (Uber.com API): provides a uniform interface.
  • * Risk Engine: making decisions about payment-related risks,
  • * Payment Profile Service, providing the details of payment mechanisms,
  • * User Profile Service, providing details about user payment and other settings,
  • * Payment Auth Service, providing services for authentication of payments,
  • * PSP Gateways, implementing the integration with payment service providers (PSPs),
  • * Order store, storing data about orders, and
  • * Account store, storing data about the accounts of payment parties.

Bridging

This presentation shows how Uber integrates with external partners. While each integration can be different, we can distinguish two integrations styles:

  1. API-based integrations with modern PSP (Payment Service Provider) gateways using REST-APIs, exchanging data in JSON, one transaction at a time, near-real time.
  2. Legacy batch integration with banks, where integrations are done by exchanging files via SFTP, with relatively low frequency (day or hours).

B2B PaaS

Essentially, Uber’s microservices design created the above B2B PaaS:

  1. Uber’s payments platform is centralized, serving as a bridge between Uber’s business lines (LoBs, e.g. Ride, Eats, Fraight, Rush…) and its’ payment service providers (PSPs) and banks.
  2. The platform enables a new line of business to (with minimal configuration) act in a self-service manner, reuse payment features, thus instantly benefits from full power of shared options.
  3. Business independent nature of the platform also means that any improvement or additons in payment mechanisms are almost instantly available to all business.
  1. The Uber Payments System is the culmination of Uber’s development of payment functionality, from an ad-hoc solution to one automated system (see this keynote by Mathieu Chauvin for more details).

Force Multiplier

Uber AI is used by each of the above business lines to automate further with the aim of looking for both internal business efficiency and streamlining external interactions – like payments. Uber was an early AI/DS adaptor because it realized very early on that in order to scale-up and secure its’ apps it needed a pro-active decision making arbitrator using all the data it has. 

In that spirit Uber created a long list of experiments – some of which are deployed today. In 2020, Uber folded the AI Labs division into Uber Research which continues to push the envelope for the business. Read more about the impact AI is having below.

REFERENCES:

  • https://github.com/uber-research
  • https://www.louisbouchard.ai/uber-deepeta/
  • https://www.youtube.com/@UberEngineering
  • https://analyticsindiamag.com/uber-ai-labs-layoffs/
  • https://underhood.blog/uber-payments-platform (pics)
  •