Pay Later messaging integration code samples
Last updated: Mar 14th, 6:13pm
This page provides code examples for Pay Later messaging. Your page's code structure determines the code you should use.
Inline attributes
1<!DOCTYPE html>2<head>3 <meta name="viewport" content="width=device-width, initial-scale=1">4 <meta http-equiv="X-UA-Compatible" content="IE=edge" />5 <script6 src="https://www.paypal.com/sdk/js?client-id=CLIENT_ID&components=messages">7 </script>8</head>9<body>10 <div11 data-pp-message12 data-pp-pageType="product-details"13 data-pp-amount="500"14 data-pp-style-layout="text"15 data-pp-style-logo-type="primary"16 data-pp-style-logo-position="top"17 ></div>18</body>
JavaScript configuration object
You can configure and render your messages using JavaScript as an alternative to HTML attributes. The PayPal JavaScript SDK messages
component uses a JavaScript API that is similar to the API used by the buttons
component.
1<!DOCTYPE html>2<head>3 <meta name="viewport" content="width=device-width, initial-scale=1">4 <meta http-equiv="X-UA-Compatible" content="IE=edge" />5 <script6 src="https://www.paypal.com/sdk/js?client-id=CLIENT_ID&components=messages">7 </script>8</head>9<body>10<div class="pp-message"></div>11 <script>12 paypal.Messages({13 amount: 500,14 pageType: 'product-details',15 style: {16 layout: 'text',17 logo: {18 type: 'primary',19 position: 'top'20 }21 }22 })23 .render('.pp-message');24 </script>25</body>
Use the namespace attribute
Select this option if you're using a legacy integration for PayPal checkout that uses the data-namespace
attribute when loading the JavaScript SDK messages
component.
1<!DOCTYPE html>2<head>3 <meta name="viewport" content="width=device-width, initial-scale=1">4 <meta http-equiv="X-UA-Compatible" content="IE=edge" />5 <script6 data-namespace="paypal2"7 src="https://www.paypal.com/sdk/js?client-id=CLIENT_ID&components=messages">8 </script>9</head>10<body>11<div class="pp-message"></div>12 <script>13 paypal2.Messages({14 amount: 500,15 style: {16 layout: 'text',17 logo: {18 type: 'primary',19 position: 'top'20 }21 }22 })23 .render('.pp-message');24 </script>25</body>
Multiple render client-side
1<!DOCTYPE html>2<head>3 <meta name="viewport" content="width=device-width, initial-scale=1">4 <meta http-equiv="X-UA-Compatible" content="IE=edge" />5 <script6 src="https://www.paypal.com/sdk/js?client-id=CLIENT_ID&components=messages">7 </script>8</head>9<body>10 <!-- Example products listing -->11 <ul class="listings">12 <li class="listing">13 <div class="listing__content">14 <h3 class="listing__title">Product Name 1</h3>15 <p class="listing__price">$50</p>16 <img class="listing__image" src="" alt="product image" />17 <p class="listing__description">...</div>18 </div>19 <div class="pp-message">20 <!-- Pay later message will be inserted here -->21 </div>22 </li>23 <li class="listing">24 <div class="listing__content">25 <h3 class="listing__title">Product Name 2</h3>26 <p class="listing__price">$100</p>27 <img class="listing__image" src="" alt="product image" />28 <p class="listing__description">...</div>29 </div>30 <div class="pp-message">31 <!-- Pay later message will be inserted here -->32 </div>33 </li>34 </ul>35 <script>36 // Collect all listings inside an array37 const listings = Array.from(document.querySelectorAll('.listing'));38 // Set the amount for each Pay later message39 listings.forEach(listing => {40 const price = Number(listing.querySelector('.listing__price').textContent.slice(1));41 const wrapper = listing.querySelector('.pp-message');42 wrapper.setAttribute('data-pp-amount', price);43 });44 // Render each Pay later message45 paypal46 .Messages({47 style: {48 layout: 'text',49 logo: {50 type: 'primary',51 position: 'top'52 }53 }54 })55 .render('.pp-message');56 </script>57</body>
Reference
See Reference tables for more details on available options.