how spotify payments creates apis to manage complexity (horia jurcut)

Post on 16-Apr-2017

158 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

How we create APIs to manage complexity

1

Horia Jurcuthoria@spotify.com

Spotify Payments

History of Spotify

Credit Cards

2008

FinlandFrance

NorwaySpain

Sweden

2008

2006

Initial launch

2016

Credit Cards

2008PayPal

2011

FinlandFrance

NorwaySpain

Sweden

2008 AustriaBelgium

DenmarkGreat BritainSwitzerland

The NetherlandsUSA

2011

2006

Initial launch Growth

2016

Credit Cards

2008PayPal

2011

FinlandFrance

NorwaySpain

Sweden

2008 AustriaBelgium

DenmarkGreat BritainSwitzerland

The NetherlandsUSA

2011

2006

Initial launch Growth

BokuSofort Klarna

Google iAPFacebook payments

2013

ArgentinaAustralia

ColombiaHong Kong

IrelandGermany

...

2013

+ 37 markets

Global Company

2016

Credit Cards

2008PayPal

2011

FinlandFrance

NorwaySpain

Sweden

2008 AustriaBelgium

DenmarkGreat BritainSwitzerland

The NetherlandsUSA

2011

2006

Initial launch Growth

BokuSofort Klarna

Google iAPFacebook payments

2013

ArgentinaAustralia

ColombiaHong Kong

IrelandGermany

...

2013

+ 37 markets

Global Company

AdyenPaySafe Card

OxxoiDeal

dotPay DragonPay SafetyPay

DirectDebitBoleto

iOS iAP

2015

BrazilCanada

Philippines

2015

Localization

2016

Credit Cards

2008PayPal

2011

FinlandFrance

NorwaySpain

Sweden

2008 AustriaBelgium

DenmarkGreat BritainSwitzerland

The NetherlandsUSA

2011

2006

Initial launch Growth

BokuSofort Klarna

Google iAPFacebook payments

2013

ArgentinaAustralia

ColombiaHong Kong

IrelandGermany

...

2013

+ 37 markets

Global Company

AdyenPaySafe Card

OxxoiDeal

dotPay DragonPay SafetyPay

DirectDebitBoleto

iOS iAP

2015

Localization

FortumoDoku

econtext

2016

40 millionsubscribers

2016

IndonesiaJapan

2016

60 markets

2016

Optimization

BrazilCanada

Philippines

2015

What are Payments?

Bank

Users

1

Payments @ Spotify

Bank

Users

1

Checkout

Go to spotify.com

2

Payments @ Spotify

Bank

Users

1

Checkout

Go to spotify.com Validate card

2Payment Backend

Payments @ Spotify

Bank

Users

1

Checkout

Payment

Provider

Go to spotify.com Validate details Authorize payment

2Payment Backend

Payments @ Spotify

Bank

Users

1

Checkout

Payment

Provider

Credit Network

Go to spotify.com Validate card

Contact bank

2Authorize payment

Payment Backend

Payments @ Spotify

Bank

Users

1

Checkout

Payment

Provider

Credit Network

Go to spotify.com Validate card

Valid card

Contact bank

Authorize payment

Valid card

2

3

Payment Backend

Payments @ Spotify

Bank

Users

1

Checkout

Payment

Provider

Credit Network

Go to spotify.com Validate card

Valid card

Contact bank

Authorize payment

Valid card

Access to Spotify Premium

2

3

Payment Backend

Payments @ Spotify

Checkout

Payment

Provider

Payments @ Spotify

Payment Backend

Checkout

Payments @ Spotify

Payment Providers

...

Payment Backend

Checkout

Checkout API

Payments @ Spotify

Payment Providers

...

Payment Backend

Checkout

Checkout API Billing API

Payments @ Spotify

Payment Providers

...

Payment Backend

Checkout API

Checkout API

Payment Backend

Checkout API

Payment BackendClients

Checkout API

Payment BackendClients

“What?”

next steps

Checkout API

Payment BackendClients

“How?” “What?”

next steps

send data

send data

send data

send data

Checkout API

Payment BackendClients

CheckoutAPI

“How?” “What?”

send data

send data

send data

send data

next steps

CC Form

CC Form

Checkout API

Success

CC Form

Confirmation

Checkout API

CC Form

SuccessCC Form

TaxInfo

CC Form

ConfirmationTax Info

Required in some

countries

Checkout API

SuccessCC Form

TaxInfo

CC Form

ConfirmationTax Info

Required in some

countries

PaymentBackend

Checkout API

Clients

SuccessBillingAddress

CC Form

TaxInfo

CC Form

ConfirmationTax Info

Required in some

countries

Billing Address

PaymentBackend

Checkout API

Clients

SuccessBillingAddress

CC Form

TaxInfo

Offer Code

One Time Code

X3G6D8A7

CC Form

ConfirmationTax Info

Required in some

countries

Billing Address

PaymentBackend

Checkout API

Clients

CheckoutAPI

SuccessBillingAddress

CC Form

TaxInfo

Offer Code

One Time Code

X3G6D8A7

CC Form

ConfirmationTax Info

Required in some

countries

Billing Address

PaymentBackend

Checkout API

Clients

Checkout API

Checkout API

Start purchase What is the first step?

Checkout API

Checkout API

Start purchase What is the first step?

Collect CC InformationDisplay CC Form

CC Form

Checkout API

Checkout API

Start purchase What is the first step?

Collect CC InformationDisplay CC Form

CC Form

CC Form

Send credit card data Send credit card data

Checkout API

Checkout API

Start purchase What is the first step?

Collect CC InformationDisplay CC Form

CC Form

CC Form

Confirmation

Show ConfirmationDisplay Confirmation

Send credit card data Send credit card data

Checkout API

Checkout API

Start purchase What is the first step?

Collect CC InformationDisplay CC Form

CC Form

Send credit card data Send credit card data

Confirmation

Show ConfirmationDisplay Confirmation

CC Form

One Time Code

X3G6D8A7

Advantages

Spotify Payments

● Change checkout experience without client release

● Clients can build native experiences

● Consolidated business logic

● Rapidly test, experiment and learn

● Mix & Match

Billing API

Billing API

Clients

Billing API

Clients

CheckoutAPI

Billing API

Payment BackendClients

CheckoutAPI

Billing API

Payment BackendClients

CheckoutAPI

Adyen

PayPal

Klarna

Payment Providers

Billing API

Payment BackendClients

CheckoutAPI

Adyen

PayPal

Klarna

BillingAPI

charge

success

Payment Providers

Billing API

Payment BackendClients

CheckoutAPI

Adyen

PayPal

Klarna

BillingAPI

charge

success

Payment Providers

FinancialData

SettlementReconciliation Callbacks Monitoring

Billing API

Payment BackendClients

CheckoutAPI

Adyen

PayPal

Klarna

BillingAPI

charge

success

Payment Providers

FinancialData

SettlementReconciliation Callbacks Monitoring

Automatic Alerts

Monitoring

BillingAPI

{ "message": "payment_received", "provider": "adyen", "method": "cards", "amount: "9.99", "currency": "USD", "country": "US", "product_type": "premium", "duration:" 1, "duration_type": "month", "reference": "9107771201",}

{ "message": "payment_failed", "provider": "adyen", "method": "cards", "amount: "9.99", "currency": "USD", "country": "US", "product_type": "premium", "duration:" 1, "duration_type": "month", "reference": "9108771203", "failure_code": "399",}

Automatic Alerts

Payment transactions processed (initial payments)

Payment transactions failed (initial payments)

Automatic Alerts

Payment transactions processed (initial payments)

Payment transactions failed (initial payments)

Broke initial payments

Automatic Alerts

Payment transactions processed (initial payments)

Payment transactions failed (initial payments)

Broke initial payments

Provider had an issue

Automatic Alerts

Payment transactions processed (initial payments)

Payment transactions failed (initial payments)

Broke initial payments

Provider had an issue

Other providers continued working

Advantages

Spotify Payments

● Fairly low number of false positives

● Works very well for high volume providers (Adyen)

● Become more aware of local events

API Design

Why we build APIs

Spotify Payments

● Many clients, many providers

● Integrate with other internal systems

● More complex products and business rules

● Customization

My time @ Spotify

Spotify Payments

● APIs make it easier for multiple teams to collaborate

● APIs help you take a hard problem and divide it into more

manageable domains

● APIs require documentation

● APIs enable you to rapidly test, experiment and learn

Tack.

57Spotify Payments

top related