Monetize with PayPal X Payments Platform

Post on 31-Aug-2014

9,340 views 5 download

Tags:

description

A workshop on monetization with PayPal Payments Platform

transcript

www.x.com

Show me the money!A workshop on monetization with PayPal Payments Platform

Feb, 24th 2010

Praveen Alavilli, Aalap Parikh, Carolyn MellorPayPal Developer Network

www.x.com

AGENDA1. Monetization2. Payments 1013. PayPal Services and APIs4. Development Process5. PayPal API Basics6. SDKs and Tools7. Implementation walk through

1. eCommerce2. Subscriptions and Recurring Payments3. Disbursements4. mCommerce5. Advanced Use cases with Adaptive Platform

8. Instant Payment Notifications (IPN)9. Going Live10. Tips on Security and Fraud

www.x.com

Building and running an app is cheap

www.x.com

a successful and profitable company needs

Good Monetization Strategy

www.x.com

Advertising ?

What else ?

www.x.com

eCommerceVirtual Goods

Premium ContentValue added Services

MembershipsSubscription

License of Content, Brand and Services

www.x.com

Before we get our hands dirtyA quick overview of what payments are.

www.x.com

Payments 101

Sender Receiver ObjectiveConsumer Merchant PurchaseConsumer Internet merchant Internet PurchaseEmployer Employee PayrollParent Child AllowanceOriginator Recipient RemittancePerson (giver) Charity GiftConsumer Biller Bill PaymentPerson (giver) Person p2p giftBusiness Supplier b2b paymentCitizen Government Taxes, Licenses…

As a developer, the

sender and receiver may have many

different names,

depending on their role and

objective.

exchange of value from one party to another

www.x.com

Payment Methods

Travelers checksBill paymentsCheck or draftACH paymentCards, cards, cardsNet-based paymentsMany others

• each payment method has unique features and attributes• different technology to interface

As a developer, you select the forms of payments that best fit your application and target the consumer experience.

www.x.com

Credit Cards

Acquirer Issuer

PaymentSystem

ConsumerMerchant

usage of the card is authorized by the issuer in real time

www.x.com

How the Money movesauthorizations are captured immediately and settled in batch

Acquirer Issuer

PaymentSystem

ConsumerMerchant

www.x.com

Chargebacks

Acquirer Issuer

PaymentSystem

ConsumerMerchant

Consumers have the right to chargeback transactions.

www.x.com

Chargebacks

Acquirer Issuer

PaymentSystem

ConsumerMerchant

Consumers have the right to chargeback transactions.

The funds are withdrawn from the merchant’s account and credited to the

consumer’s account.

www.x.com

Debit Cards

Acquirer Issuer

PaymentSystem

ConsumerMerchant

www.x.com

Debit Card differences

Acquirer Issuer

PaymentSystem

ConsumerMerchant

With debit cards, processed as a debit card, the authorization transaction and the settlement (capture) transaction are

the same.Money movement is in real time.

www.x.com

Bank Accounts & ACH

ODFI RDFI

PaymentSystem

ConsumerMerchant

www.x.com

ODFI RDFI

PaymentSystem

ConsumerMerchant

Bank Accounts & ACH

With Automated Clearing House (ACH), there is no authorization transaction.

Money movement is batch.

www.x.com

PayPal X Payments Platform

www.x.com

Pay Anyone and Receive from Anyone

Really !(an email address or a phone number)

www.x.com

Facilitate Payments

Manage Accounts 

Information and Reporting

www.x.com

Simple to Advancedenabling different kind of payments…

www.x.com

Simple/Parallel/Chained PaymentsPreapprovalsSubscriptions

Reference TransactionsDisbursementsMicropayments

RewardsDonations

Digital GoodsGift Certificates

www.x.com

(while taking care of things that you don’t want to manage yourself)

Risk and Fraud ManagementSecurity

ComplianceSettlements

Refunds/Charge backs

www.x.com

How simple can it go ?

www.x.com

Email Payments(old school)

invoice over email from PayPal

Virtual TerminalPOS terminal on the Cloud !

accept payments over phone, mail, & fax

Website Payments Standard(aka WPS or “cut & paste payments”)

buttons, buttons, buttons

www.x.com

Simple but Powerful

Sell Single/Multiple Items (cart)Subscriptions

DonationsInventory ControlUI Customization

Fraud/Risk Controls

www.x.com

Express Checkout“all it takes is 3 API Calls”a checkout solution & BML

Payflow a payment gateway

Website Payments ProDirect Payments + Express Checkout

Mass Paymentsdisbursements

www.x.com

Adaptive Platform(Adaptive Payments & Adaptive Accounts)

for Web 2.0 and Web.Next applications

Parallel and Chained Payments

www.x.com

PRIMARY

PARALLEL CHAINED

Receiver X - $10Receiver Y - $40Receiver Z - $50

Primary Receiver - $100

Sender Visibility Sender Visibility

www.x.com

Adaptive PlatformPre-approvals

DisbursementsSimplified Account Creation

Flexible APIs allow tighter integration

www.x.com

Checkout products – Express Checkout– Website Payments Pro– Website Payments Standard– Virtual Terminal– PayFlow Gateway

Adaptive APIs• Adaptive Payments• Adaptive Accounts

Others• eMail Payments• Mass Pay

PayPal X Platform

www.x.com

Development Process To Integrate PayPal

www.x.com

Create Sandbox account

Get API credentials

Design and build application

Submit for application review (only AP/AA)

Go Live

Signup onx.com

Get APP ID

www.x.com

X.com• Technical Docs for all products

• SDKs and Sample code

• Forums – non-moderated content

• Blogs – PayPal and developers

• Connected with PayPal Site

• Docs rating and commenting

• Instant feedback from developers

• Videos

www.x.com

SANDBOXdeveloper.paypal.com

• Manage Sandbox test accounts• Manage Sandbox API Credentials• Monitor Sandbox payment confirmation emails• IPN Simulator

<browser walk through>

www.x.com

PAYPAL API BASICS

• Traditional PayPal APIs• SOAP• NVP• XMLPay

• Adaptive Platform APIs• SOAP• NVP• XML/JSON-RPC

www.x.com

TRADITIONAL PAYPAL NVP API BASICS

www.x.com

TRADITIONAL PAYPAL NVP API - EXAMPLE

www.x.com

TRADITIONAL XMLPAY API BASICS

www.x.com

TRADITIONAL XMLPAY - EXAMPLE<?xml version="1.0" encoding="UTF-8"?><XMLPayRequest Timeout="30" version = "2.0” xmlns="http://www.paypal.com/XMLPay"><RequestData>

<Vendor>vendor</Vendor><Partner>partner</Partner>

<Transactions><Transaction><Authorization><PayData><Invoice><BillTo><Address>

<Street>123 4th street</Street><City>San Jose</City><State>CA</State><Zip>95032</Zip><Country>USA</Country>

</Address></BillTo><TotalAmt>24.97</TotalAmt></Invoice><Tender><Card><CardType>visa</CardType>

<CardNum>5105105105105100</CardNum><ExpDate>200911</ExpDate><NameOnCard/></Card>

</Tender></PayData>

</Authorization></Transaction></Transactions></RequestData><RequestAuth><UserPass>

<User>user</User><Password>password</Password>

</UserPass></RequestAuth></XMLPayRequest>

www.x.com

TRADITIONAL XMLPAY - EXAMPLE<?xml version="1.0" encoding="UTF-8"?><XMLPayResponse>

<ResponseData><Vendor>vendor</Vendor><Partner>partner</Partner><TransactionResults><TransactionResult>

<Result>0</Result><AVSResult>

<StreetMatch>Service Not Available</StreetMatch><ZipMatch>Service Not Available</ZipMatch>

</AVSResult><CVResult>Service Not Requested</CVResult><Message>Approved</Message><PNRef>V63A09910356</PNRef><AuthCode>747PNI</AuthCode><HostCode>00</HostCode><OrigResult>0</OrigResult>

</TransactionResult></TransactionResults></ResponseData>

</XMLPayResponse>

www.x.com

ALL SOAP API BASICS – REQUEST FORMAT

www.x.com

ADAPTIVE API BASICS – API RESPONSE FORMAT - SOAP

www.x.com

ADAPTIVE API BASICS – NON SOAP• Request Authentication Headers

• X-PAYPAL-SECURITY-USERID• X-PAYPAL-SECURITY-PASSWORD• X-PAYPAL-SECURITY-SIGNATURE• X-PAYPAL-SECURITY-SUBJECT

• Data Format• X-PAYPAL-REQUEST-DATA-FORMAT (NV, XML, JSON)• X-PAYPAL-RESPONSE-DATA-FORMAT (NV, XML, JSON)

• Application and Device identification• X-PAYPAL-APPLICATION-ID

• Request Body contains API related objects (JSON/XML/NV)

www.x.com

ADAPTIVE API BASICS – NON SOAP SAMPLEJSON: {"returnUrl":"http://example.com/returnURL.htm", "requestEnvelope":

{"errorLanguage":"en_US"},"currencyCode":"USD", "receiverList":{"receiver":[{"email":”david@example.com”, "amount":"10.00",}]},"cancelUrl":”http://example.com/cancelURL.htm”, "actionType":"PAY"}

NVP: &actionType=PAY&cancelUrl=http:\\example.com\cancel.htm&currencyCode=USD&receiverList.receiver(0).amount=9.00&receiverList.receiver(0).email=andrea@example.com&receiverList.receiver(1).amount=5.00&receiverList.receiver(1).email=linda@example.com&requestEnvelope.errorLanguage=en_US&returnUrl=http:\\example.com\return.htm

XML: <PayRequest>

<requestEnvelope><errorLanguage>en_US</errorLanguage> </requestEnvelope><cancelUrl>http://exammple.com/cancelURL.htm</cancelUrl><currencyCode>USD</currencyCode><receiverList>

<receiver><amount>100</amount><email>frank@example.com</email><primary>true</primary></receiver>

<receiver><amount>75</amount><email>yvonne@example.com</email><primary>false</primary></receiver>

</receiverList><returnUrl>http://example.com/returnURL.htm</returnUrl>

</PayRequest>

www.x.com

SDKs and Toolkits

• Kick start integration

• Minimize integration complexity

• Offer stable interface

• Focus on application logic

Your Application

PayPal Services

PayPal SDK

www.x.com

SDK Features• Sample code and applications

for quick ramp up

• Source code included

• Bundled with test token and API credentials

Your Application

Authorization Setup Logging

Error Handling Configuration

SOAP

.NET

JSON

Java

NVP

PHP

API 1 API 2 API 3

LiveSandbox

Beta Sandbox

SSL Connection

Other

www.x.com

MERCHANT SDKSExpress Checkout & WPP

SOAP SDK Language Support – Java, .NET, PHP

NVP SDK Language Support– Java, .NET, PHP, Ruby, ColdFusion

Bindings– SOAP, NVP

Download: www.x.com/sdks

APIsAddressVerify BillOutstandingAmount CreateRecurringPaymentsProfile DoAuthorizationDoCapture DoDirectPaymentDoExpressCheckoutPaymentDoNonReferencedCredit DoReauthorization DoReferenceTransactionDoVoid GetBalance GetBillingAgreementCustomerDetails GetExpressCheckoutDetails GetRecurringPaymentsProfileDetailsGetTransactionDetails ManageRecurringPaymentsProfileStatus ManagePendingTransactionStatusMassPayment RefundTransaction SetCustomerBillingAgreement SetExpressCheckout TransactionSearch UpdateRecurringPaymentsProfile

www.x.com

PAYFLOW PRO SDKCredit card processing

Language support– Java, .NET

Bindings– NVP, XML

Download: www.x.com/sdks

APIsDoDirectPayment

SaleAuthorizationVoidDelayed CaptureCredit

SetExpressCheckoutGetExpressChedoutDoExpressCheckoutReferenceTransationRecurringPayment

www.x.com

WEBSITE PAYMENTS STANDARD TOOLKITPayment buttons for your websites

Language support– Java, .NET, PHP, Ruby

Download: www.x.com/sdks

UtilitiesButton EncryptionPayment Data TransferInstant Payment Notification

www.x.com

ADAPTIVE API SDKAdaptive Payments

– Setup preapproval agreements– Simple Send Money– Split payments– Refund– Currency conversion

Adaptive Accounts– Create account

Language Support– Java, .NET, PHP

Internal Binding– SOAP

Download: www.x.com/sdks

APIsPreapprovalDetailsPaymentDetailsPayPreapprovalCancelPreapprovalRefundConvertCurrencyCreateAccount

www.x.com

DESIGN AND BUILD !

www.x.com

Sample Implementations• eCommerce• Subscriptions• Disbursements• mCommerce• Split Payments• Preapprovals

www.x.com

eCommerce

selling of products online

• Single Items• Multiple Items• Donations• Gift Certificates

www.x.com

ECOMMERCE WITH WEBSITE PAYMENTS STANDARDbuttons, buttons, buttons

www.x.com

Website Payments Standard (WPS)Programmatically create, manage, edit, and delete buttons

Hosted buttonsEncrypted buttonsClear text buttons

Inventory ManagementPhysical Goods (button wizard and API)Digital Downloads (with API)Low inventory alerts

www.x.com

WPS – How it works ?

www.x.com

WPS - Implementation1. Go to www.paypal.com Business Products and Services2. Select Website Payments Standard3. Click on “Try it Now” button

www.x.com

WPS –HTML<form action="https://www.paypal.com/cgi-bin/webscr" method="post">

<!-- Identify your business so that you can collect the payments. --><input type="hidden" name="business" value="herschelgomez@xyzzyu.com"><!-- Specify a Buy Now button. --><input type="hidden" name="cmd" value="_xclick"><!-- Specify details about the item that buyers will purchase. --><input type="hidden" name="item_name" value="Hot Sauce-12 oz. Bottle"><input type="hidden" name="amount" value="5.95"><input type="hidden" name="currency_code" value="USD"><!-- Display the payment button. --><input type="image" name="submit" border="0"

src="https://www.paypal.com/en_US/i/btn/btn_buynow_LG.gif"alt="PayPal - The safer, easier way to pay online">

<img alt="" border="0" width="1" height="1"src="https://www.paypal.com/en_US/i/scr/pixel.gif" ></form>

www.x.com

When simple isn’t enough

Developers always want :• a programmatic approach

• For handling thousands & millions of products• For tighter integration with their app

• Ex. “Buy Now” might not make sense for use case• better control on payment process• more customization of UI• non hosted solution

www.x.com

ECOMMERCE WITH EXPRESS CHECKOUTa checkout solution

www.x.com

EXPRESS CHECKOUT (EC)

“all it takes is 3 API Calls”

user conveniencereduces friction in buyer’s experienceonly PayPal accountsrecurring paymentsmultiple settlement optionsissue refunds programmatically

The shortest path with the least hassle for PayPal users to checkout.

www.x.com

EC – How it works ?

Shopping Cart Login Review Info Confirm Order(optional) Confirmation

Usability Testing Findings Users feel confident about clicking on the Checkout with PayPal

button. Users are familiar with the button and expect it in the flow. Users feel the process is streamlined and quicker due to the

reduced amount of data entry.

www.x.com

EC – API• SetExpressCheckout - Sets up the Express Checkout

transaction• customize the look and feel• information displayed• return/cancel urls• total amount

• GetExpressCheckout – returns information about the buyer from PayPal, including shipping information

• DoExpressCheckoutPayment - Completes the Express Checkout transaction• actual total amount of the order.

www.x.com

EC – Implementation<code>

www.x.com

ECOMMERCE WITH PAYFLOWA payment gateway

www.x.com

PAYFLOWaccept Credit and Debit Cards in your own application (PayFlow

Pro)• Flexible, reliable & scalable payment API• Submit transactions and manage your payments• you are responsible for PCI compliance

(or) a fully customizable page hosted on paypal.com (Payflow Link)• PCI-compliant solution with Payflow Link.• Cut and paste HTML code onto your website

You need your own Internet Merchant AccountVariety of payment options - PayPal, credit cards, purchase cards,

debit cardssearch, reports, and virtual point-of-sale terminal

www.x.com

PAYFLOW LINK – How it works ?

PayPal Hosted Pages

Pay

Checkout Page Thank You!

www.x.com

PAYFLOW LINK – Implementation<form method="POST" action="https://payflowlink.paypal.com"> <input type="hidden" name="LOGIN" value=“login"> <input type="hidden" name="PARTNER" value=“PayPal"> <input type="hidden" name="AMOUNT" value="1.00"> <input type="hidden" name="TYPE" value="S"> <input type="hidden" name="DESCRIPTION" value=“Hat"> <p><input type="submit" value="Click Here to Checkout"></p> </form>

www.x.com

PAYFLOW PRO– How it works ?

Your Application

Payflow API Server

NVP-XMLPay/HTTPS

www.x.com

PAYFLOW PRO – API• Credit Card Processing

– Sale– Authorization– delayed capture– Credit– Void– Inquiry– Voice Authorization

• Reference Transactions• Address Verification and Card Security Code Validation

www.x.com

PAYFLOW PRO – Implementation<code>

• Connection parameters• HostAddress, HostPort, Timeout, Proxy Info, ParmList

• User parameters• User, Vendor, Partner, API Password

• Parameters specific to the type of the transaction, such as a sale or an authorization• TRXType, Tender, Acct, Amt, Expdate

www.x.com

PAYFLOW PRO – Sample Request/Response

USER=user&PWD=passorwd&VENDOR=vendor&PARTNER=PayPal&TRXTYPE=S&TENDER=C&ACCT=5105105105105100&EXPDATE=0112&CVV2=123&AMT=1.00&FIRSTNAME=John&LASTNAME=Smith&STREET=1_Main_Street&CITY=Austin&STATE=TX&ZIP=78704&COMMENT1=Reservation&INVNUM=123

HTTP/1.1 200 OKConnect: close Server: VPS-3.032.00 X-VPS-Request-ID: ae66ec694cea474002cba0025659946d X-VPS-Response-ID: V1sMZIeBBmrContent-type: text/namevalueContent-length: 189

RESULT=0&PNREF=V18A0BAB041A&RESPMSG=Approved&AUTHCODE=823PNI&AVSADDR=Y&AVSZIP=Y&CVV2MATCH=Y&HOSTCODE=A&PROCAVS=Y&PROCCVV2=M&IAVS=N&PREFPSMSG=No_Rules_Triggered&POSTFPSMSG=No_Rules_Triggered

www.x.com

ECOMMERCE WITH WEBSITE PAYMENTS PROaccept both credit cards and PayPal payments

www.x.com

WEBSITE PAYMENTS PRO (WPP)

Direct Payment lets you accept credit cards on your website

Express Checkout lets you accept PayPal payments on your website

www.x.com

WPP – How it works ?

www.x.com

WPP – DoDirectPayment APIArguments:• Method: DoDirectPayment• PaymentAction: Authorization or Sale• IPAddress• ReturnFMFDetails• CreditCard Fields:

• CreditCardType, Acct, ExpDate, CVV2, StartDate, IssueNumber• Payer Info Fields:

• Email, PayerID, PayerStatus, CountryCode, Business• Payer Name Fields:

• Salutation, FirstName, MiddleName, LastName, Suffix• Address Fields• Payment Details Type Fields:

• AMT, CurrencyCode, ItemAMT, etc…

www.x.com

WPP – Implementation<code>

www.x.com

WPP – Sample Request/Response

Request: https://api-3t.sandbox.paypal.com/nvpPOST Parameters:

METHOD=doDirectPayment&VERSION=60.0&PWD=QFZCWN5HZM8VBG7Q&USER=sdk-three_api1.sdk.com&SIGNATURE=A.d9eRKfd1yVkRrtmMfCFLTqa6M9AyodL0SJkhYztxUi8W9pCXF6.4NI&PAYMENTACTION=Sale&AMT=1.00&CREDITCARDTYPE=Visa&ACCT=4032193587292399&EXPDATE=012012&CVV2=962&FIRSTNAME=John&LASTNAME=Doe&STREET=1+Main+St&CITY=San+Jose&STATE=CA&ZIP=95131&COUNTRYCODE=US&CURRENCYCODE=USD

Response:TIMESTAMP=2010%2d02%2d22T07%3a22%3a52Z&CORRELATIONID=d64

bd3c9ac968&ACK=Success&VERSION=60%2e0&BUILD=1195961&AMT=1%2e00&CURRENCYCODE=USD&AVSCODE=X&CVV2MATCH=M&TRANSACTIONID=3L887465VP729712C

www.x.com

Subscriptions

Customer pays a subscription price to have access to the product/service

Ex.• purchase of a series of things• an agreement to receive or be given access to

content/services online• value added services• Premium content• Virtual Goods

www.x.com

SUBSCRIPTIONS WITH WEBSITE PAYMENTS STANDARD

www.x.com

WPS – How it works ?

www.x.com

WPS – Implementation1. Go to www.paypal.com Business Products and Services2. Select Website Payments Standard3. Click on Try it Now button

<Demo>

www.x.com

WPS – HTML<form action="https://www.paypal.com/cgi-bin/webscr" method="post">

<!-- Identify your business so that you can collect the payments. --><input type="hidden" name="business" value="alice@mystore.com"><!-- Specify a Subscribe button. --><input type="hidden" name="cmd" value="_xclick-subscriptions"><!-- Identify the subscription. --><input type="hidden" name="item_name" value="Alice's Weekly Digest"><input type="hidden" name="item_number" value="DIG Weekly"><!-- Set the terms of the regular subscription. --><input type="hidden" name="currency_code" value="USD"><input type="hidden" name="a3" value="5.00"><input type="hidden" name="p3" value="1"><input type="hidden" name="t3" value="M"><!-- Display the payment button. --><input type="image" name="submit" border="0"

src="https://www.paypal.com/en_US/i/btn/btn_subscribe_LG.gif"alt="PayPal - The safer, easier way to pay online">

<img alt="" border="0" width="1" height="1"src="https://www.paypal.com/en_US/i/scr/pixel.gif" ></form>

www.x.com

SUBSCRIPTIONS WITH EXPRESS CHECKOUTRecurring payments

www.x.com

EC – How it works ?

1 2 3 4

Merchant sets up recurring payment items.

Customer selects Express Checkout and agrees to payment terms.

At subsequent billing cycles, PayPal charges customer on behalf of merchant.

Merchant can view, modify, or suspend payments.

www.x.com

EC – API• SetExpressCheckout - Sets up the Express Checkout

transaction• customize the look and feel• information displayed• return/cancel urls• total amount• Recurring payment agreement

• GetExpressCheckout – returns information about the buyer from PayPal, including shipping information

• CreateRecurringPaymentsProfile – creates the recurring profile

www.x.com

EC – Implementation<code>

www.x.com

EC – Sample Request/ResponseRequest:METHOD=CreateRecurringPaymentsProfile&VERSION=60.0&PWD=QFZCWN5HZM8V

BG7Q&USER=sdk-three_api1.sdk.com&SIGNATURE=A.d9eRKfd1yVkRrtmMfCFLTqa6M9AyodL0SJkhYztxUi8W9pCXF6.4NI&AMT=1.00&CREDITCARDTYPE=Visa&ACCT=4781568468637361&EXPDATE=012011&CVV2=962&FIRSTNAME=John&LASTNAME=Doe&STREET=1+Main+St&CITY=San+Jose&STATE=CA&ZIP=95131&COUNTRYCODE=US&CURRENCYCODE=USD&PROFILESTARTDATE=2010-03-21T00%3A00%3A00Z&DESC=Welcome+to+the+world+of+shopping+where+you+get+everything&BILLINGPERIOD=Week&BILLINGFREQUENCY=4&TOTALBILLINGCYCLES=

Response:PROFILEID=I

%2d8STY14R2YVVJ&PROFILESTATUS=ActiveProfile&TIMESTAMP=2010%2d02%2d22T07%3a34%3a07Z&CORRELATIONID=967863e017837&ACK=Success&VERSION=60%2e0&BUILD=1198898

www.x.com

DisbursementsPayPal disbursement products allow you to send payments to multiple customers at the same time.

Who is target customer?– Businesses who disburse money to their customers or clients– Product is a replacement for payouts via check, direct debit, and gift

cards

Some key segmentsSegment ExamplesMarketplaces Stubhub, CD BabyRebates 3rd party rebates (eBates, Microsoft), offline rebate houses, merchantsCommissions & royalties Photo royalties (Shutterstock), get-paid-to (Secret Shoppers), multi-level

marketing

Advertising / affiliate eBay and Yahoo Publisher networks, domain parking, other affiliate programsRewards Merchant marketing promotions, virtual currency, conversion of points to cashGambling / gaming Gambling (Betfair - UK), gaming/tournaments (Worldwinner)

www.x.com

DISBURSEMENTS WITH MASSPAY

www.x.com

MASS PAYMENTSAbout Mass Payments

• Allows sending of money to multiple recipients in one batch• Two ways to use: MassPay API (250) or upload (5000)• Sender pays the transaction fee, not the receiver• 2% per payment with a maximum $1.00 per payment• Payment made from account balance

Primary benefits to sender● An easy and efficient way to send a large number of payments at once● Great way to send payments cross-border● Low cost to disburse money● Provide a payout choice to your customer● Get money to your customers quickly

www.x.com

MASSPAY – How it works ?1. Introduction 2. File Upload 3. Final Approval

Sample File 5. Email Confirmation

4. Confirmation

www.x.com

MASSPAY – APIEach payment is in the format L_{Field}n

• {Field} is the field being populated (AMT, EMAIL, and so on)• n is the counter of the request (starting with 0 (zero))

https://api-3t.sandbox.paypal.com/nvp?{VERSION & CREDENTIALS}&METHOD=MassPay&RECEIVERTYPE=EmailAddress&CURRENCYCODE=USD&L_AMT0=5.00&L_EMAIL0=masspay1%40mikeblanton.com&L_AMT1=5.00&L_EMAIL1=otheraccount%40me.com&L_AMT2=5.00&L_EMAIL2=friend%40hotmail.com

www.x.com

MASSPAY – Implementation<code>

www.x.com

MASSPAY – Sample Request/ResponseRequest:METHOD=MassPay&VERSION=60.0&PWD=QFZCWN5HZM8VBG7

Q&USER=sdk-three_api1.sdk.com&SIGNATURE=A.d9eRKfd1yVkRrtmMfCFLTqa6M9AyodL0SJkhYztxUi8W9pCXF6.4NI&L_EMAIL0=user1%40paypal.com&L_Amt0=1.00&L_UNIQUEID0=&L_NOTE0=&L_EMAIL1=user2%40paypal.com&L_Amt1=1.00&L_UNIQUEID1=&L_NOTE1=&L_EMAIL2=user3%40paypal.com&L_Amt2=1.00&L_UNIQUEID2=&L_NOTE2=&EMAILSUBJECT=You+have+money%21&RECEIVERTYPE=EmailAddress&CURRENCYCODE=USD

Response:TIMESTAMP=2010%2d02%2d22T07%3a35%3a36Z&CORRELATIO

NID=b72f8f569219&ACK=Success&VERSION=60%2e0&BUILD=1205804

www.x.com

mCommerce

4 million downloads$380 million in sales (Jan-Sep 2009)

Number of Mobile Transactions

10X

Comparison shopping applications are the top downloads.

Red Laser

www.x.com

THE MOBILE WAY

Entirely client-based experience leveraging APIs and plug & play

interface

Clients (Mobile Embedded Payment Toolkit)

Utilized WAP infrastructure and

reskinning techniques for seamless integration

Mobile Web

Web onboarding for a mobile billing agreement

Pre-approval (Apple)

www.x.com

MOBILE CHECKOUT

Similar to Express Checkout but with Mobile UISupports Phone/Pin login(User sets phone/pin with PayPal)

To access mobile checkout, a device, mobilecarrier, and browser must support the following:

WAP 2.0 phones (not WAP 1.0)xHTML or HTML markup languageSSL connectionsCookies enabledNo carrier "WAP gap"

www.x.com

MOBILE CHECKOUT – How it works ?

www.x.com

MOBILE CHECKOUT – API• SetMobileCheckout• DoMobileCheckout

www.x.com

ONLINE BILLING AGREEMENTS• Billing agreements can be set up

online or on the phone.

• Agreements can then be used on the phone.

• These are the same agreements used with Adaptive Payments.

www.x.com

MOBILE EMBEDDED PAYMENTS (MEP)– Provides an easy way to enable payments in iPhone applications– Customers never leave the application to pay– No worries about collecting or handling financial information

Example use cases– Restaurant chain application for ordering and payment– Plumbing service application for booking and paying– Charity application for donation collection– Selling merchandise in games and social applications

www.x.com

MEP – How it works ?

www.x.com

MEP – API(PayPal*)initializeWithAppID:(NSString*)PayPalApplicationID (Optional:)

forEnvironment:PAYPAL_ENVIRONMENT)env;

-(void)setPayButton:(UIViewController *)target buttonType:(PayPalButtonType)buttonType startCheckOut:(SEL)payWithPayPal withLeft:(int)left withTop:(int)top;

-(void)Checkout:(NSString*)currency Amount:(NSString*)inAmount Description: (NSString*)inItemDesc Recipient:(NSString*)inRecipient Tax:(NSString*)inTax Shipping:(NSString *)inShipping PaymentType:(PayPalPaymentType)paymentType;

www.x.com

MEP – Implementation// initialize paypal MEPppMEP = [PayPal initializeWithAppID:@"APP-80W284485P519543T"

forEnvironment:ENV_SANDBOX];[[PayPal getInstance] setPayButton:self buttonType:BUTTON_294x43 startCheckOut:@selector(payWithPayPal) withLeft:10 withTop:352];

-(void)payWithPayPal {[ppMEP EnableShipping];//setting whether the payment type is hard goods or servicePayPalPaymentType paymentType = HARD_GOODS;NSString *desc = [NSString stringWithFormat:@"Photo Print (%@)", photoId];[ppMEP SetSenderEmailorPhone:@"ppalav_1260941775_per@yahoo.com"];[ppMEP Checkout:@"USD"

Amount:[NSString stringWithString:@"5.0"] Description:desc Recipient:@"pd_1265515509_biz@yahoo.com"

Tax:[NSString stringWithString:@"0.0"] Shipping:[NSString stringWithString:@"0.41"] PaymentType:paymentType];

}-(void)paymentSuccess:(NSString*)transactionID{

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Order successful" message:@"Your picture is on it's way!" delegate:nil cancelButtonTitle:@"OK"

otherButtonTitles:nil];[alert show];[alert release];

}

www.x.com

PayPal Platform (Adaptive Suite of APIs)

• Payments platform for external developers

• First Suite of APIs

• Adaptive Payments: Highly configurable payment APIs

• Adaptive Accounts: API-based PayPal account creation

www.x.com

ADAPTIVE PAYMENTS (AP)• A money movement service that is "Adaptive" to allow innumerable use cases

– Configurable service suite for any type of payment or transfer– Not limited to web eCommerce payments

• Simple Single Sender – Single Receiver model (to)Single Sender - Multiple receivers model

• Advanced features• Pre-approved payments

• Pre-approval for one-time, multi-use, and subscription payments• Configurable personal identification number (PIN) support

• Parallel and chained (Split) payments• Allows single payment to multiple receivers• Facilitates multiple use cases: marketplace payments, service fees,

multi-merchant checkout, and so on

www.x.com

AP – How it works ?

109

API

Business

Pay API

WEB

Pay KeyRedirect User to

PayPal

Pay Key = PA-84HK2A57FCOP3RW

User Name = P_Mart_admin.api Currency = USDPassword = keep$secret Receiver email = Business@P_Mart.comSignature = 23KJHO5AS09I32SDROR Tracking ID = 234235986Sender Email = john_m@mail.com Cancel URL = www.P_Mart.com/homeAmount = 100 Return URL = www.P_Mart.com/apstore

Confidential and Proprietary 109109

Return URL

www.x.com

PAYMENT APPROVAL ON WEB

1. Login

2. Review Your Payment

3. Redirect

Payment Confirmation

www.x.com

ADAPTIVE PAYMENTS - API• Payment APIs

• Pay: Transfer funds between parties. Supports simple, chained, parallel, preapproved payments, etc.

• PaymentDetails: Get details of a payment

• Preapproval APIs• Preapproval: Preapproval agreement signup • PreapprovalDetails: Get details of a preapproval • CancelPreapproval: Cancel an existing preapproval

• Refund: Refund a payment (complete, partial, etc.)

• ConvertCurrency: Get currency conversion (foreign exchange) rates for a list of amounts and currencies (PayPal-supported currencies).

www.x.com

ADAPTIVE PAYMENTS – Implementation<code>

www.x.com

ADAPTIVE PAYMENTS – Sample Request/ResponseRequest (NVP - formatted):

actionType=PAY&requestEnvelope.errorLanguage=en_US&returnUrl=http://www.return.com&cancelUrl=http://www.cancel.com&currencyCode=USD&feesPayer=EACHRECEIVER&memo=Payment for service&receiverList.receiver(0).email=receiver@x.com&receiverList.receiver(0).amount=100.00

Response (NVP – formatted):

responseEnvelope.timestamp=2010-02-20T19%3A35%3A41.368-08%3A00&responseEnvelope.ack=Success&responseEnvelope.correlationId=87b9285584b68&responseEnvelope.build=1193935&payKey=AP-1F95034641369115U&paymentExecStatus=CREATED

www.x.com

ADAPTIVE ACCOUNTS• Programmatic interface to PayPal account creation

• Account created can be used with any PayPal APIs, including Adaptive Payment APIs

• Currently supports creation of Personal and Premier accounts. Business account creation to come soon.

• Benefits:• Streamline user experience• Increase conversion

www.x.com

ADAPTIVE ACCOUNTS – How it works ?

www.x.com

ADAPTIVE ACCOUNTS – API• CreateAccount: PayPal account creation API

– Personal and Premier account creation (Business account creation to come soon).

– API Request (required fields in bold): • Account Type (valid values are Personal, Premier)• Name: First, Last• Address: Address Line 1, Line 2, City, Zip• Country: Country Code• Email• Phone• Preferred Language Code• Return URL• Registration Type (valid value is Web)• Other fields are also dependent on the country

– DOB– Citizenship Country Code

– API Response:• execStatus• Redirect URL: The user needs to be redirected to this URL for finishing

the account signup process (password and Add Funding Sources flow).

www.x.com

ADAPTIVE ACCOUNTS – Implementation<code>

www.x.com

ADAPTIVE ACCOUNTS – Sample Request/ResponseRequest:accountType=PERSONAL&registrationType=Web&name.salutation=Dr.&name.firs

tName=Bonzo&name.middleName=Simore&name.lastName=Zaius&emailAddress=bzaius@email.com&dateOfBirth=1968-01-01Z&address.line1=1968 Ape Way&address.line2=Apt 123&address.city=Austin&address.state=TX&address.postalCode=78750&address.countryCode=US&contactPhoneNumber=512-691-4160&currencyCode=USD&citizenshipCountryCode=US&preferredLanguageCode=en_US&createAccountWebOptions.returnUrl=http://www.success.com

Response:responseEnvelope.timestamp=2010-02-22T21%3A47%3A09.833-

08%3A00&responseEnvelope.ack=Success&responseEnvelope.correlationId=9e107273d5330&responseEnvelope.build=1149875&createAccountKey=AA-7NU425523H556874S&execStatus=COMPLETED&redirectURL=https%3A%2F%2Fwww.sandbox.paypal.com%2Fus%2Fcgi-bin%2Fwebscr%3Fcmd%3D_hostedua-flow%26encrypted_second_auth_code%3DAgPLMEgZKZSFz7ve8rViM9pjBZLK86wyV3suJtaHV4nku.Q7huKEMZms2zN6bVpWzQY%26encrypted_id%3DH24VPCELGVF4N

www.x.com

A FEW MORE IMPORTANT THINGS

www.x.com

INSTANT PAYMENT NOTIFICATIONS (IPN)

www.x.com

INSTANT PAY NOTIFICATIONS (IPN)Message service that notifies you of events related to:

– New transactions– Updates to previous transactions– Dispute management and chargebacks

Provides status on pending, cancelled, or failed transactions

Allows merchants and developers to integrate payments and automate back-end operations

www.x.com

COMMON IPN TYPESInstant payments, such as Express Checkout

eCheck payments

Pending payments

Recurring payments and subscriptions

Authorizations

Chargebacks

Disputes

Reversals

www.x.com

IPN IN ACTION

Buyer clicks Buy Now button

PayPal posts IPN to seller

Seller posts back IPN message to PayPal

PayPal sends VERIFIED/INVALID response

www.x.com

IPN MESSAGEIPN is HTTP POST with POST variables consisting of:

Information about Seller

Information about the Transaction

Information about your Buyer

Information about the Payment

www.x.com

IPN - SAMPLEmc_gross=19.95&protection_eligibility=Eligible&address_status=confirmed&payer_id=LPLWNMTBWMFAY&tax=0.00&address_street=1+Main+St&payment_date=20%3A12%3A59+Jan+13%2C+2009+PST&payment_status=Completed&charset=windows-1252&address_zip=95131&first_name=Test&mc_fee=0.88&address_country_code=US&address_name=Test+User&notify_version=2.6&custom=&payer_status=verified&address_country=United+States&address_city=San+Jose&quantity=1&verify_sign=AtkOfCXbDm2hu0ZELryHFjY-Vb7PAUvS6nMXgysbElEn9v-1XcmSoGtf&payer_email=user123%40yahoo.com&txn_id=61E67681CH3238416&payment_type=instant&last_name=User&address_state=CA&receiver_email=gpmac__biz%40gmail.com&payment_fee=0.88&receiver_id=S8XGHLYDW9T3S&txn_type=express_checkout&item_name=&mc_currency=USD&item_number=&residence_country=US&test_ipn=1&handling_amount=0.00&transaction_subject=&payment_gross=19.95&shipping=0.00

https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_notifyvalidate&mc_gross=19.95&protection_eligibility=Eligible&address_status=confirmed&payer_id=LPLWNMTBWMFAY&tax=0.00&...&payment_gross=19.95&shipping=0.00

VERIFIED or INVALID

www.x.com

ENABLING IPN

* Requires subscription. Contact Customer Service for access

• Listener can be enabled from Profile-> Instant Payment Notification

• Per Transaction Listener (Notify URL) can be used from buttons and API requests

www.x.com

IPN HISTORY: RESENDING IPNHistory->IPN History

www.x.com

IPN BEST PRACTICESOnce IPN is received:

– Always validate the incoming IPN.– Send the response as soon as possible.– Check for duplicate IPNs.

Respond to all the IPNs or the IPN will be resent.

IPN is designed as an asynchronous notification. Never wait for IPN synchronously.

Disable any listeners that are not in use. PayPal detects and disables malfunctioning listeners.

Where necessary get, transaction information from other methods in addition to using IPN.

www.x.com

Development Process

Create Sandbox account

Get API credentials

Design and build application

Submit for application review

Go Live

Signup onx.com

Get APP ID

www.x.com

SUBMITTING YOUR NON-ADAPTIVE API APP• Get live API credentials from your profile page• Go live !

www.x.com

Submitting your Adaptive APIs app for review1. Upgrade to a PayPal Business Account2. Get Verified3. Obtain Live API Credentials4. Submit App

1. App description2. Kind of Payments it provisions3. Test URL and related testing info4. Services you use (simple/adanced)5. A few screenshots6. Answer a few questions to make sure your app is Secure, and

doesn’t violate any regulations.

www.x.com

Things to note1. The PayPal X Developer Agreement is your friend.

– Clearly and concisely explains what is and is not allowed– Describes confidentiality and intellectual property rights

2. Your application will be reviewed for:– Compliance with payment regulations– Acceptable use policy compliance– Information security– Risk– Functionality

3. Applications using only standard functionality go through a less involved review.

www.x.com

Going Live1. Once your app get’s approved, you will receive your Live APP

ID.2. Update your app to use Live APP ID and API Credentials3. Launch your application 4. Start accepting payments!

www.x.com

WHEN TRANSACTIONS GO RIGHT

Payment

Shipment/Delivery

Order

www.x.com

When Security Fails

www.x.com

SECURITY WITH PayPal PRODUCTS• Always use HTTPS when talking to PayPal.

• Always integrate with web flows and APIs using POST, not GET.

• Always integrate with PayPal using an HTTP(s) library, not raw sockets.• Pay attention to HTTP(s) error codes

• Validate IPNs properly.

• Use saved or encrypted Website Payments Standard buttons to prevent tampering attacks.

• Don’t rely on the referrer header during a checkout flow to assume a person has been paid.

www.x.com

Securing your applications • Be careful about handling input to your application.• Prevent Common shopping cart attacks like Price tampering &

Fake referrer header attack• Stay current on security vulnerabilities.• Harden your servers, frameworks, and applications and keep

them up to date.• By following best practices, your applications will be both

more robust and more secure.

– The Open Web Application Security Project (http://www.owasp.org)– The Web Application Security Consortium (

http://www.webappsec.org/)– Security Focus (http://www.securityfocus.com)

www.x.com

FIGHTING FRAUDConsumer fraud

Merchant fraud

Phishing

Social engineering

www.x.com

BEST PRACTICES

Be vigilant

Authenticate each transaction

Real-time authorizations

Reduce customer errors

Manual review

Robust risk rules customized for your business

Comprehensive and dynamic fraud scoring

Bayesian filters

Neural nets

Cross merchant and buyer data analysis for patterns

Cross channel data analysis patterns

www.x.com

MANAGING YOUR RISK USING PAYPAL

Fraud Prevention

Issue Resolution Protection

Fraud detection during account and transaction Lifecycle

Fraud Management Filters

Transaction Review

Payment Status

Integrated shipping

Refunds

Dispute process

Charge backs

Resolution Center

Chargeback specialists

Seller protection at no additional cost

Monitors buyers

www.x.com

WATCH OUT FOR ILLEGAL TRANSACTIONSCertain transactions are illegal. Therefore, the payment and processing of the payment is also illegal.

Some examples:– Sales of narcotics – Child pornography– Internet gambling transactions– Underage alcohol/tobacco sales

All payment mechanisms prohibit payments that violate law.

As a developer, creating an application that violates law or enables the violation of law could subject you to criminal and civil liability.

www.x.com

A few useful urls• PayPal X Developer Network: https://www.x.com• API Documentation: https://www.x.com/community/ppx/dev-

tools• SDKs & Toolkits: https://www.x.com/community/ppx/sdks• Business Account SignUp: https://www.paypal.com • Sandbox: https://developer.paypal.com/• IPN Simulator: https://developer.paypal.com/devscr?cmd=_ipn-

link-session• Contact Us: https://www.x.com/community/ppx/support

www.x.com

LEARN AND SHARE

www.x.comTwitter: @paypalx, @ppalavilli, @aalapparikh, @carolynmellorwww.facebook.com/paypalx