PayPal Website Payments Standard - 2009 User Manual

Website Payments Standard Button Manager API (SOAP)
For Professional Use Only Currently only available in English.
A usage Professional Uniquement Disponible en Anglais uniquement pour l’instant.
Last updated: June, 2009
Document Number: 10090.en_US-200906
© 2009 PayPal, Inc. All rights reserved. PayPal is a registered trademark of PayPal, Inc. The PayPal logo is a trademark of PayPal, Inc. Other trademarks and brands are the property of their respective owners. The information in this document belongs to PayPal, Inc. It may not be used, reproduced or disclosed without the written approval of PayPal, Inc. PayPal (Europe) Ltd. is authorised and regulated by the Financial Services Authority in the United Kingdom as an electronic money institution. PayPal FSA Register Number: 226056.
Notice of non-liability: PayPal, Inc. is providing the information in this document to you “AS-IS” with all faults. PayPal, Inc. makes no warranties of any kind (whether express, implied or statutory) with respect to the information contained herein. PayPal, Inc. assumes no liability for damages (whether direct or indirect), caused by errors or omissions, or resulting from the use of this document or the information contained in this document or resulting from the application or use of the product or service described herein. PayPal, Inc. reserves the right to make changes to any information herein without further notice.
Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Intended Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Chapter 1 Website Payments Standard Button Manager API Overview 7
Button Manager Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Generated Button Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Button Hosting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Hosted Button Manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Inventory Management Using Hosted Buttons. . . . . . . . . . . . . . . . . . . . . . . . 10
Button Manager API Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Granting Third-Party Permission for APIs . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Chapter 2 Using the Button Manager API . . . . . . . . . . . . . . .13
Specifying HTML Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Creating a Button Using SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Tracking Inventory for a Button Using SOAP . . . . . . . . . . . . . . . . . . . . . . . . 16
Chapter 3 Button Manager API Reference . . . . . . . . . . . . . . .19
BMCreateButton API Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
BMCreateButton Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
BMCreateButton Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
BMCreateButton Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
BMUpdateButton API Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
BMUpdateButton Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
BMUpdateButton Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
BMUpdateButton Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
BMButtonSearch API Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
BMButtonSearch Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
BMButtonSearch Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
BMButtonSearch Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Button Manager SOAP API June, 2009 3
Contents
BMGetButtonDetails API Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
BMGetButtonDetails Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
BMGetButtonDetails Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
BMGetButtonDetails Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
BMManageButtonStatus API Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
BMManageButtonStatus Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
BMManageButtonStatus Response . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
BMManageButtonStatus Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
BMSetInventory API Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
BMSetInventory Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
BMSetInventory Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
BMSetInventory Errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
BMGetInventory API Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
BMGetInventory Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
BMGetInventory Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
BMGetInventory Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Chapter A HTML Variables for Website Payments Standard . . . . . .49
Technical HTML Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
HTML Variables for Individual Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
HTML Variables for Payment Transactions . . . . . . . . . . . . . . . . . . . . . . . . . 56
HTML Variables for Shopping Carts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
HTML Variables for Subscribe Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
HTML Variables for Displaying PayPal Checkout Pages . . . . . . . . . . . . . . . . . . 63
HTML Variables for Prepopulating PayPal Checkout Pages. . . . . . . . . . . . . . . . . 66
4 June, 2009 Button Manager SOAP API

Preface

This document describes the Button Manager API for SOAP.

Intended Audience

This document is intended for merchants and developers implementing Website Payment Standard buttons using an API.

Revision History

Revision history for Website Payments Standard Button Manager API (SOAP).
TABLE P.1 Revision History
Date Description
06/03/09 Added HTML Variable appendix and updated for version 57.0.
03/31/09 Initial draft.
Button Manager SOAP API June, 2009 5
Revision History
6 June, 2009 Button Manager SOAP API
1

Website Payments Standard Button Manager API Overview

The Website Payments Standard Button Manager API allows you to programatically create, manage, edit, and delete Website Payment Standard buttons, which are the same kind of buttons that you can create from the PayPal Profile. Hosted buttons created by this API reside on PayPal and can use all features, including inventory management; however, you can use this API to create code for non-hosted Website Payment Standard buttons as well.
z Button Manager Introduction
z Generated Button Code
z Button Hosting
z Hosted Button Manipulation
z Inventory Management Using Hosted Buttons
z Button Manager API Summary
z Granting Third-Party Permission for APIs

Button Manager Introduction

You should consider creating and managing your buttons with the Button Manager API when you are creating more than just a few Website Payment Standard buttons or when you manage buttons for others; for example, if you provide a shopping cart for merchants.
The Button Manager API enables you to manage Website Payment Standard buttons programatically in the same way that you can manage them on PayPal from the My Saved Buttons page of your Profile.
NOTE: You can access your My Saved Buttons page on PayPal by choosing My Saved
Buttons from the Profile’s Selling Preferences column. If no buttons have been
created, the menu item is Create New Button.
You can use the API to create the following types of Website Payment Standard buttons:
z Buy Now
z Add to Cart and View Cart
z Donate
z Buy Gift Certificate
z Subscribe and Unsubscribe
The following buttons are some of those that you can create using the Button Manager API:
Button Manager SOAP API June, 2009 7
Website Payments Standard Button Manager API Overview

Generated Button Code

Generated Button Code
When you create a button, PayPal responds by providing code that you can paste into your web page or document.
PayPal generates code that you can use for the button, which includes
z HTML code for including the button in web pages
z URL link code for adding buttons to email and documents that support links
NOTE: Not all buttons that can be created are available to merchants in every country; for
example, German merchants cannot use Subscribe buttons even though they can be created through the API. If you can create the button for the specified country using
Create PayPal payment button on PayPal, your merchant will be able to use the button.
The following example shows the PayPal code to display a hosted Add to Cart button for a wireless mouse:
8 June, 2009 Button Manager SOAP API
Website Payments Standard Button Manager API Overview

Button Hosting

<form target="paypal" action="https://www.sandbox.paypal.com/cgi­bin/webscr" method="post"> <input type="hidden" name="cmd" value="_s-xclick"> <input type="hidden" name="hosted_button_id" value="19218"> <table> <tr><td><input type="hidden" name="on0" value="Color">Color</td></tr><tr><td><select name="os0"> <option value="Red">Red $10.00 <option value="Blue">Blue $8.00 <option value="Green">Green $12.00 </select> </td></tr> <tr><td><input type="hidden" name="on1" value="Size">Size</td></tr><tr><td><select name="os1"> <option value="Small">Small <option value="Large">Large </select> </td></tr> </table> <input type="hidden" name="currency_code" value="USD"> <input type="image" src="https://www.sandbox.paypal.com/en_US/i/btn/btn_cart_LG.gif" border="0" name="submit" alt=""> <img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"> </form>
When you display a web page with this code, this button appears:
PayPal-generated code for a link would be as follows:
https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_s­xclick&hosted_button_id=19218
For a link, PayPal does not generate code for options.
Button Hosting
Buttons that you can view on the My Saved Buttons page of your PayPal profile are called hosted buttons because they reside on PayPal. The API can create three kinds of buttons: hosted, encrypted, and clear text.
Button Manager SOAP API June, 2009 9
Website Payments Standard Button Manager API Overview

Hosted Button Manipulation

z Hosted buttons are stored on PayPal. The parameters associated with this kind of button are
secure.
Hosted buttons provide the greatest flexibility because you can instruct PayPal to change them dynamically and PayPal maintains information about their state, such as the inventory level associated with the button.
z Encrypted buttons are not stored on PayPal. The parameters associated with this kind of
button are encrypted.
Encrypted buttons are similar to hosted buttons with regards to secure operation; however, you must update the web pages that use an encrypted button each time the button or its associated information changes. You should only use an encrypted button if a hosted button cannot be used.
z Clear text buttons are not stored on PayPal. The parameters associated with this kind of
button are not encrypted.
Clear text buttons are not hosted and are not encrypted. They can be used dynamically because you can change the value of a parameter “on the fly.” However, if you use them, recognize the risk that sensitive information can be altered or stolen.
Hosted Button Manipulation
When you create a hosted button, the response includes an ID that allows you to manipulate the button using the Button Manager API.
Specifically, you can
z Get a list of all hosted buttons defined, which allows you to obtain a list of all your buttons
for further programatic manipulation
z Get details about a hosted button, which allows you to identify the parameters and values
associated with a button
z Update a hosted button, which allows you to change individual parameters, such as price,
in a hosted button
z Manage hosted button status; currently, you can only delete a button
z Get and set inventory information associated with the button

Inventory Management Using Hosted Buttons

If you use hosted buttons, you can set inventory values for the item associated with the button and get inventory values for the item. You can also track inventory on options within an item, such as color, size, and so on.
If you enable inventory management for a button, PayPal tracks inventory for you and also lets your buyer know whether the item is sold out. You can specify inventory tracking on an item­by-item basis and also by option, such as color or size, within the item.
10 June, 2009 Button Manager SOAP API
Website Payments Standard Button Manager API Overview
You are alerted by e-mail if the inventory on hand falls below the threshold you specify. If an item is sold out, you can specify whether or not to accept a payment anyway. Optionally, you can specify a URL to which your buyer’s browser is redirected if the item is sold out.
Additionally, you can enable profit and loss tracking for an item or option associated with a button. If you enable this feature, you must provide the cost of the item or option. PayPal then calculates your gross profit, which is the selling price of the item less the specified cost.

Button Manager API Summary

The Button Manager API is available for both NVP and SOAP.
API Operation Description
BMCreateButton Create button code
BMUpdateButton Update a hosted button
BMManageButtonStatus Delete a button
Button Manager API Summary
BMGetButtonDetails Obtain information about the parameters associated with a button
BMButtonSearch Obtain a list of all buttons
BMGetInventory Obtain the inventory levels associated with a button
BMSetInventory Specify the inventory levels associated with a button

Granting Third-Party Permission for APIs

If you allow a shopping cart or another party to create buttons on your behalf, you must grant the party permission to execute Button Manager API operations for you.
To grant third-party permissions
1. Log in to your PayPal account.
2. Select My Account Profile.
3. Click “API Access” from the Profile Summary.
4. Click “Grant API Permission.”
5. Click to “Configure a custom API authorization.”
6. Enter your Partner API Username, as specified by your shopping cart or third party.
7. Click to check each Button Manager API to which you want to provide access:
Button Manager SOAP API June, 2009 11
Website Payments Standard Button Manager API Overview
Granting Third-Party Permission for APIs
8. Click Submit.
12 June, 2009 Button Manager SOAP API

Using the Button Manager API

2
These examples show basic Button Manager API capabilities. The examples show how to create buttons and set inventory levels.
z Specifying HTML Variables
z Creating a Button Using SOAP
z Tracking Inventory for a Button Using SOAP

Specifying HTML Variables

When you create or update a button using the Button Manager API, you must specify the same HTML variables that you specify when creating any Website Payments Standard button. Although you can use the ButtonVar field to specify any HTML variables, some variables are commonly used in specific ways.
The following table provides additional information about some of these variables:
HTML Variable Notes
item_name Name or description of item. Must be specified for Add to Cart buttons.
Character length and limitations: 127 single-byte alphanumeric characters.
amount The price or amount of the item. Required for Add to Cart buttons. May not
be used when a dropdown with price (L_OPTION0PRICE Limitations: Value must be a positive number. No currency symbol. Must have two decimal places, decimal separator must be a period (.), and the optional thousands separator must be a comma (,).
a3 Price of subscription. Must be specified for Subscribe buttons. Value must be
a positive number. No currency symbol. Must have two decimal places, decimal separator must be a period (.), and the optional thousands separator must be a comma (,).
p3 Regular billing cycle. Must be specified for Subscribe buttons. Limitations:
Must be a positive integer greater than 0 and less than or equal to 30
t3 Regular billing cycle units. Must be specified for Subscribe buttons.
shopping_url URL where recipients can shop and redeem gift certificates. Required for Gift
Certificate buttons. Character length and limitations: 255 single-byte alphanumeric characters
n) is defined.
Button Manager SOAP API June, 2009 13
Using the Button Manager API

Creating a Button Using SOAP

HTML Variable Notes
no_note Must be specified for Subscribe buttons. Enables a subscriber to not be
prompted to include a note with the subscription, a function which PayPal subscriptions does not support. This variable must be included, and the value must be set to 1.
business Secure Merchant ID or Email Address. When omitted, defaults to the secure
merchant ID of the merchant. If an email address is specified then it the following requirements apply:
z A merchant or 3rd Party calling the API directly may specify an
unregistered email and create an unencrypted button only.
z A 3rd Party calling the API on behalf of a registered merchant must specify
an email address associated with the merchant account.
Character length and limitations: 127 single-byte characters.
item_number Item number or ID. Character length and limitations: 127 single-byte
alphanumeric characters.
lc If specified, it overrides the value set in the ButtonCode field.
For a complete list of HTML variables and complete information, see HTML Variables for
Website Payments Standard.
Creating a Button Using SOAP
The example sets up a SOAP request message to create a button.
14 June, 2009 Button Manager SOAP API
Using the Button Manager API
Creating a Button Using SOAP
<com.paypal.soap.api.BMCreateButtonRequestType> <buttonType> <__value__> <m__value>CART</m__value> </__value__> </buttonType> <buttonCode> <__value__> <m__value>HOSTED</m__value> </__value__> </buttonCode> <buttonSubType> <__value__> <m__value>PRODUCTS</m__value> </__value__> </buttonSubType> <buttonVar> <string>business=XX-usbiz@paypal.com</string> <string>item_name=Item-123</string> <string>item_number=#1234</string> <string>shipping=0.50</string> <string>tax_rate=2.50</string> <string>address1=</string> <string>state=</string> <string>city=</string> <string>zip=</string> <string>no_shipping=0</string> <string>address_override=0</string> </buttonVar>
<optionDetails> <com.paypal.soap.api.OptionDetailsType> <optionName>DD1</optionName> <optionSelectionDetails> <com.paypal.soap.api.OptionSelectionDetailsType> <optionSelection>AAAA</optionSelection> <price>1.55</price> </com.paypal.soap.api.OptionSelectionDetailsType> <com.paypal.soap.api.OptionSelectionDetailsType> <optionSelection>BBBB</optionSelection> <price>10.55</price> </com.paypal.soap.api.OptionSelectionDetailsType> <com.paypal.soap.api.OptionSelectionDetailsType> <optionSelection>CCCCC</optionSelection> <price>10.55</price> </com.paypal.soap.api.OptionSelectionDetailsType> </optionSelectionDetails> </com.paypal.soap.api.OptionDetailsType>
<com.paypal.soap.api.OptionDetailsType>
Button Manager SOAP API June, 2009 15
Using the Button Manager API

Tracking Inventory for a Button Using SOAP

<optionName>DD2</optionName> <optionSelectionDetails> <com.paypal.soap.api.OptionSelectionDetailsType> <optionSelection>XXXX</optionSelection> </com.paypal.soap.api.OptionSelectionDetailsType> <com.paypal.soap.api.OptionSelectionDetailsType> <optionSelection>ZZZZ</optionSelection> </com.paypal.soap.api.OptionSelectionDetailsType> </optionSelectionDetails> </com.paypal.soap.api.OptionDetailsType> </optionDetails>
<buttonImage> <__value__> <m__value>REG</m__value> </__value__> </buttonImage> <buttonImageURL></buttonImageURL>
<buyNowText> <__value__> <m__value>BUYNOW</m__value> </__value__> </buyNowText> <subscribeText> <__value__> <m__value>SUBSCRIBE</m__value> </__value__> </subscribeText> <buttonCountry> <__value__> <m__value>US</m__value> </__value__> </buttonCountry> <buttonLanguage></buttonLanguage>
</com.paypal.soap.api.BMCreateButtonRequestType>
Tracking Inventory for a Button Using SOAP
The example shows the SOAP parameters that enable tracking of inventory and profit and loss for a button.
16 June, 2009 Button Manager SOAP API
Using the Button Manager API
Tracking Inventory for a Button Using SOAP
<com.paypal.soap.api.BMSetInventoryRequestType> <hostedButtonID>41</hostedButtonID> <trackInv>1</trackInv> <trackPnl>1</trackPnl> <itemTrackingDetails> <itemNumber>234234</itemNumber> <itemQty>10</itemQty> <itemAlert>2</itemAlert> <itemCost>4</itemCost> </itemTrackingDetails> <soldoutURL>http://www.paypal.com</soldoutURL> </com.paypal.soap.api.BMSetInventoryRequestType>
Button Manager SOAP API June, 2009 17
Using the Button Manager API
Tracking Inventory for a Button Using SOAP
18 June, 2009 Button Manager SOAP API
3

Button Manager API Reference

The Button Manager API enables you to programatically create, edit, and delete Website Payment Standard buttons hosted on PayPal and track product inventory associated with these buttons. You can also create non-hosted buttons with the Button Manager API; however, button maintenance and inventory management are only supported for hosted buttons.
z BMCreateButton API Operation
z BMUpdateButton API Operation
z BMButtonSearch API Operation
z BMCreateButton API Operation
z BMManageButtonStatus API Operation
z BMSetInventory API Operation
z BMGetInventory API Operation

BMCreateButton API Operation

Use the BMCreateButton API operation to create a Website Payments Standard button. You an create either a button that is hosted on PayPal or a non-hosted button.
z BMCreateButton Request
z BMCreateButton Response
z BMCreateButton Errors

BMCreateButton Request

The request fields specify the characteristics of your button, which include associated menu items related to the button. You can specify up five menu items, each of which can include up to 10 possible selections.
Button Manager SOAP API June, 2009 19
Button Manager API Reference
BMCreateButton API Operation
BMCreateButton Request Fields
Field Description
ButtonCode ebl:ButtonCodeType
(Optional) The kind of button code to create. It is one of the following values:
z HOSTED - A secure button stored on PayPal; default for all buttons except
View Cart and Unsubscribe
z ENCRYPTED - An encrypted button, not stored on PayPal; default for View
Cart button
z CLEARTEXT - An unencrypted button, not stored on PayPal; default for
Unsubscribe button
ButtonType ebl:ButtonTypeType
(Required) The kind of button you want to create. It is one of the following values:
z BUYNOW - Buy Now button z CART - Add to Cart button z GIFTCERTIFICATE - Gift Certificate button z SUBSCRIBE - Subscribe button z DONATE - Donate button z UNSUBSCRIBE - Unsubscribe button z VIEWCART - View Cart button
ButtonSubType ebl:ButtonSubTypeType
(Optional) The use of button you want to create. It is one of the following values:
z PRODUCTS - button is used to purchase products; default for Buy Now and
Add to Cart buttons
z SERVICES - button is used to purchase services
20 June, 2009 Button Manager SOAP API
Field Description
ButtonVar xs:string
(Optional) HTML standard button variables, which are described in HTML
Variables for Website Payments Standard
It is a list of variables, in which not include leading zeros.
Character length and limitations: 63 single-byte alphanumeric characters each
OptionDetails ns:OptionDetailsType
(Optional) Menu items
TextBox xs:string
(Optional) Text description for a menu item
It is a list of variables, in which
ButtonImage ebl:ButtonImageType
(Optional) The kind of button image. It is one of the following values:
z REG - regular; default unless a button URL is specified z SML - small z CC - small button image with credit card logos; not applicable for
Unsubscribe or View Cart buttons
Button Manager API Reference
BMCreateButton API Operation
n is a digit between 0 and 999, inclusive; do
n is a digit between 0 and 1, inclusive.
NOTE: Specify either the kind of button image or the URL.
ButtonImageURL xs:string
(Optional) The button’s URL
NOTE: Specify either the kind of button image or the URL.
BuyNowText ebl:BuyNowTextType
(Optional) The button text for a Buy Now button. It is one of the following values:
z BUYNOW - button text is Buy Now; default z PAYNOW - button text is Pay Now
SubscribeText ebl:SubscribeTextType
(Optional) The button text for a Subscribe button. It is one of the following values:
z BUYNOW - button text is Buy Now z SUBSCRIBE - button text is Subscribe; default
ButtonCountry ebl:CountryCodeType
(Optional) The country in which the transaction occurs. See Country Codes for a list of country codes. By default, it is the merchant’s country of registration with PayPal.
ButtonLanguage xs:string
(Optional) The language in which to display the button text. It must be compatible with the country code.
Character length and limitations: 2 single-byte alphanumeric characters
.
Button Manager SOAP API June, 2009 21
Loading...
+ 47 hidden pages