PayPal Payments Standard and Button Manager: Getting Started

Get up and running with this service:

Overview

PayPal Payments Standard is the simplest of the PayPal payment services: it helps you add a no-frills payment button, donation button, and so on to a web page. The person who clicks the payment button is redirected from the merchant site to PayPal and then back to the merchant site.

Key concepts

This guide is about the Button Manager API of PayPal Payments Standard.

To have more control over the button and its behavior, merchants should consider the PayPal REST API or one of the NVP/SOAP PayPal payment API solutions.

This guide does not explain how to create buttons manually. This brief summary describes the options for creating a button without the API:

  • Create an HTML form from scratch. To understand which variables control the button per your needs, see HTML Form Basics for PayPal Payments Standard.
  • Visit the PayPal site and confirm that you are ready to accept payments. Select the button type that you like, provide various facts about your site and the item or service you are selling, and PayPal generates HTML code for you. Then, copy this HTML code and embed it in your web page where you want the PayPal button to appear.

You can make calls in these formats:

Request method Request format Response format
HTTP POST Name/value pairs Name/value pairs
HTTP POST SOAP (1.1, 1.2) SOAP

Note: PayPal will no longer support the use of the GET HTTP request method for our classic NVP/SOAP APIs. For more information, including the planned change date, see Discontinue Use of GET Method for Classic APIs Microsite. Ensure that your API requests only use the POST HTTP request method by the specified date.

Make your first call

The following example calls BMCreateButton in the Sandbox to create an button through the specified app (signified by combo of USER, PWD, SIGNATURE). The button is associated with details stored at PayPal.com regarding the item for sale.

  1. Obtain the endpoint for the service and environment you are addressing. The example below uses the Sandbox endpoint for a name-value pair format by using a Signature authentication:

    https://api-3t.sandbox.paypal.com/nvp
    

    For the list of endpoints including the SOAP endpoints, see NVP/SOAP API endpoints.

  2. Provide the authentication. For the following sample call, set authentication credentials through the parameters that you pass to the call.

    // Sandbox API credentials for the API Caller account
    USER : // user id
    PWD : // password
    SIGNATURE : // signature
    VERSION : // the release version of the API
    
  3. Provide parameters needed by the specific call being made. For this example, see also the BMCreateButton (SOAP) reference.

     METHOD : BMCreateButton
     BUTTONCODE : HOSTED
     BUTTONTYPE : CART
     BUTTONSUBTYPE : PRODUCTS
     BUTTONCOUNTRY : US
     L_BUTTONVAR1 : item_name%3Dshoehorn
     L_BUTTONVAR2 : amount%3D1464.46
     L_BUTTONVAR3 : tax=%3D21
     L_BUTTONVAR4 : item_number%3D123456
     

    You can now make a call.

  4. Make the call. For an example, see Try It.

  5. Evaluate the response.

    For the following Try It example, you might get something like the following, which has been split to multiple lines for readability:

    ACK=Success
    // a URL-encoded HTML form that you could embed in a web page
    &WEBSITECODE=%3cform%20target%3d%22paypal%22%20action%3d%22
    https%3a%2f%2fwww%2esandbox%2epaypal%2ecom%3d%22 ...
    // a URL you could include in an email (or any document supporting external links)
    &EMAILLINK=https%3a%2f%2fwww%2esandbox%2epaypal%2ecom%2fcgi%2dbin%2fwebscr ...
    // the ID of the PayPal-hosted button (with its information about the item available for purchase)
    &HOSTEDBUTTONID=3PGCSXEGMJZJY
    // additional artifacts of a job run
    &TIMESTAMP=2011%2d08%2d11T07%3a40%3a46Z&CORRELATIONID=53ed2d7aea58a&VERSION=51%2e0&BUILD=2020243
    

    And, to make it readable for your insight, let's URL-decode bits of it.

    WEBSITECODE=<form target="paypal" action="https://www.sandbox.paypal.com" ...
    &EMAILLINK=https://www.sandbox.paypal.com/cgi-bin/webscr...
    

Try it

  1. Copy this cURL command:

    curl https://api-3t.sandbox.paypal.com/nvp \
      -s \
      --insecure \
      -d USER=platfo_1255077030_biz_api1.gmail.com \
      -d PWD=1255077037 \
      -d SIGNATURE=Abg0gYcQyxQvnf2HDJkKtA-p6pqhA1k-KTYE0Gcy1diujFio4io5Vqjf \
      -d VERSION=51.0 \
      -d METHOD=BMCreateButton \
      -d BUTTONCODE=HOSTED \
      -d BUTTONTYPE=CART \
      -d BUTTONSUBTYPE=PRODUCTS \
      -d BUTTONCOUNTRY=US \
      -d L_BUTTONVAR1=item_name%3Dshoehorn \
      -d L_BUTTONVAR2=amount%3D1464.46 \
      -d L_BUTTONVAR3=tax=%3D21 \
      -d L_BUTTONVAR4=item_number%3D123456
    
  2. Run the cURL command. If necessary, download the free cURL executable.

Next steps

To confirm that you set up your sandbox accounts correctly, try the same example with your own credentials:

  1. Set up your sandbox environment.

    To make test calls, you need a Sandbox account, test users, and PayPal API credentials. If you have not yet set these up, see PayPal Sandbox Testing Guide.

  2. Substitute your own Sandbox credentials and user-specific inputs in the Try It example and rerun it to confirm that you set up your Sandbox and users correctly.

References

Schemas