On this page
No Headings
Last updated: September 10, 2026
You can use Assisted Account Creation (AAC) to let your customers use their PayPal account to log in or sign up on your site. AAC simplifies onboarding, increases customer account creation, and helps your customers receive payouts quickly and securely.
When a customer completes the onboarding flow, you receive their payer ID and email address. Payer IDs are typically the most reliable way to ensure accurate and secure payouts.
AAC can:
Integrating AAC enables your application to access customers’ email addresses and payer IDs (encrypted PayPal account numbers) during sign up, log in, or payment setup on your website or partner platform.
In your client-side code, integrate the AAC SDK to render the AAC component. The AAC SDK uses Zoid, PayPal’s open-source cross-domain component library. Use the following samples to integrate AAC based on your client-side framework.
<script src="https://www.paypalobjects.com/payouts/js/payouts_aac.js"></script>
{/* Set up a container to render the AAC component */}
<div id="container"></div>
<script>
// Render the AAC component
paypal.PayoutsAAC.render({
// Use sandbox for testing
env: "<sandbox/production>",
clientId: {
production: "<production clientId>",
sandbox: "<sandbox clientId>"
},
merchantId: "<Merchant Account ID>",
pageType: "<signup/login>",
onLogin: function(response) {
if (response.err) {
console.log(response.err)
} else {
console.log(response.body.code);
}
}
}, '#container');
</script>import React from 'react';
import ReactDOM from 'react-dom';
const AACComponent = paypal.PayoutsAAC.driver('react', {
React,
ReactDOM
});
class OtherReactComponent extends React.Component {
render() {
return (
<AACComponent
clientId="<clientId>"
merchantId="<Merchant Account ID>"
env="<sandbox/production>"
pageType="<signup/login>"
onLogin={onLogin} />
);
}
}// Specify the component name as a dependency to your angular app:
angular.module('myapp', ['payouts-aac']);
// Include the tag in one of your templates (use kebab case for prop names)
<payouts-aac
client-id="<clientId>"
merchant-id="<Merchant Account ID>"
env="<sandbox/production>"
page-type="<signup/login>"
on-login="onLogin">
</payouts-aac>After the user completes the PayPal log-in or sign-up flow, PayPal redirects to your redirect_uri with a code parameter.
curl -X POST https://api-m.sandbox.paypal.com/v1/identity/openidconnect/tokenservice \
-H 'Authorization: Basic <Base64 Encoded client_id:secret>' \
-d 'grant_type=authorization_code&code=<code>'curl -v -X GET https://api-m.sandbox.paypal.com/v1/oauth2/token/userinfo?schema=openid \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ACCESS-TOKEN'In your server-side code, use the following samples to integrate AAC.
var paypal = require('paypal-rest-sdk');
paypal.configure({
'mode': 'sandbox', //sandbox or live
'client_id': '',
'client_secret': ''
});
// Get tokeninfo with Authorization code
paypal.openIdConnect.tokeninfo.create("Replace with authorization code", function(error, tokeninfo){
console.log(tokeninfo);
});
// Get userinfo with Access code
paypal.openIdConnect.userinfo.get("Replace with access_code", function(error, userinfo){
console.log(userinfo);
});import paypalrestsdk
from paypalrestsdk.openid_connect import Tokeninfo, Userinfo
paypalrestsdk.configure({
"mode": "sandbox", # sandbox or live
"client_id": "",
"client_secret": "" })
tokeninfo = Tokeninfo.create("Replace with authorization code")
userinfo = tokeninfo.userinfo()To test the AAC integration in the sandbox:
SUCCESS in your sandbox business account.