Monetize with PayPal X Payments Platform
-
Upload
guest72b121 -
Category
Technology
-
view
9.340 -
download
5
description
Transcript of Monetize with PayPal X Payments Platform
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":”[email protected]”, "amount":"10.00",}]},"cancelUrl":”http://example.com/cancelURL.htm”, "actionType":"PAY"}
NVP: &actionType=PAY&cancelUrl=http:\\example.com\cancel.htm¤cyCode=USD&receiverList.receiver(0).amount=9.00&receiverList.receiver(0)[email protected]&receiverList.receiver(1).amount=5.00&receiverList.receiver(1)[email protected]&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>[email protected]</email><primary>true</primary></receiver>
<receiver><amount>75</amount><email>[email protected]</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="[email protected]"><!-- 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="[email protected]"><!-- 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:@"[email protected]"];[ppMEP Checkout:@"USD"
Amount:[NSString stringWithString:@"5.0"] Description:desc Recipient:@"[email protected]"
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 = [email protected] 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¤cyCode=USD&feesPayer=EACHRECEIVER&memo=Payment for service&receiverList.receiver(0)[email protected]&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®istrationType=Web&name.salutation=Dr.&name.firs
tName=Bonzo&name.middleName=Simore&name.lastName=Zaius&[email protected]&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¤cyCode=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¬ify_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