PayPal Payments Standard and Button Manager: Getting Started

APIDeprecatedLast updated: March 16th 2023, @ 11:23:55 am


Get up and running with this service:


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 methodRequest formatResponse format
HTTP POSTName/value pairsName/value pairs

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 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:

    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.


    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:

    // a URL-encoded HTML form that you could embed in a web page
    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)
    // additional artifacts of a job run

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

    WEBSITECODE=<form target="paypal" action="" ...

Try it

  1. Copy this cURL command:

    curl \
      -s \
      --insecure \
      -d \
      -d PWD=1255077037 \
      -d SIGNATURE=Abg0gYcQyxQvnf2HDJkKtA-p6pqhA1k-KTYE0Gcy1diujFio4io5Vqjf \
      -d VERSION=51.0 \
      -d METHOD=BMCreateButton \
      -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.