Managed Accounts API
Important: The PayPal Commerce Platform is a limited-release solution at this time. It is available to select partners for approved use cases. For more information, reach out to your PayPal account manager or contact us.The Managed Accounts API enables a PayPal account holder to manage multiple PayPal accounts. These accounts are non-loginable, and the availability of the following REST API methods to create and manage these accounts is limited to partners who are approved for the Managed path solution.
Managed accounts (resource group)
Show managed account details based on a search criteria.
Query parameters
external_id
string
Sample Request
curl -v -X GET https://api-m.sandbox.paypal.com/v2/customer/managed-accounts?external_id=EXT-NEW \
-H "Content-Type: application/json" \
-H "Authorization: Bearer Access-Token"
Response
200 OK
status code and a JSON response body that shows a list of managed account details.managed_accounts
array (contains the account object)
Sample Response
{
"managed_accounts": []
}
Create managed account
Header parameters
Prefer
string
Content-Type
string
required
PayPal-Request-Id
string
required
Request body
addresses
array (contains the personal_address object)
business_info
cc_soft_descriptor
string
citizenship
date_of_birth
external_id
string
financial_instruments
identifications
array (contains the personal_identification object)
organization
string
phones
array (contains the personal_phone object)
primary_currency_code
secondary_currency_codes
array (contains the currency_code object)
tax_id
terms_and_conditions_acceptance
user_id
string
Sample Request
curl -v -X POST https://api-m.sandbox.paypal.com/v2/customer/managed-accounts \
-H "Content-Type: application/json" \
-H "Authorization: Bearer Access-Token" \
-H "PayPal-Request-Id: 123e4567-e89b-12d3-a456-426655440000" \
-d '{
"external_id": "sample-user@example.com",
"country_code": "US",
"email_id": "unique@example.com",
"name": {
"prefix": "Mr.",
"given_name": "John",
"surname": "Collins",
"middle_name": "Davis",
"suffix": "Jr"
},
"addresses": [
{
"type": "HOME",
"address_line_1": "150 E San Fernando St",
"address_line_2": "apt #1",
"admin_area_1": "CA",
"admin_area_2": "San Jose",
"postal_code": "95112",
"country_code": "US"
}
],
"phones": [
{
"type": "MOBILE",
"country_code": "1",
"national_number": "4089679174"
}
],
"identifications": [
{
"type": "DRIVERS_LICENSE",
"identifier": "G1111111",
"issuer": {
"country_code": "US",
"jurisdiction": "CA",
"authority": "DMV CA"
}
}
],
"tax_id": {
"type": "SOCIAL_SECURITY_NUMBER",
"identifier": "123456789",
"issuer": {
"country_code": "US",
"authority": "IRS"
}
},
"citizenship": "US",
"date_of_birth": "1990-01-01",
"business_info": {
"type": "INDIVIDUAL",
"names": [
{
"type": "LEGAL",
"business_name": "Demo 201 Inc."
}
],
"addresses": [
{
"type": "WORK",
"address_line_1": "585 Franklin Str",
"address_line_2": "apt #1",
"admin_area_1": "CA",
"admin_area_2": "Mountain View",
"postal_code": "94041",
"country_code": "US"
}
],
"email_address": "customer-service@example.com",
"phones": [
{
"type": "CUSTOMER_SERVICE",
"country_code": "1",
"national_number": "4089673333"
}
],
"identifications": [
{
"type": "EMPLOYER_IDENTIFICATION_NUMBER",
"identifier": "111234501",
"issuer": {
"country_code": "US",
"authority": "IRS"
}
}
],
"date_of_incorporation": "2001-01-17",
"business_category": {
"merchant_category_code": "3011"
},
"website": "https://example.com",
"stakeholders": [
{
"id": "ext_stakeholer_01",
"ownership_percentage": "100.0",
"type": "BENEFICIAL_OWNER",
"name": {
"prefix": "Mr.",
"given_name": "John",
"surname": "Collins",
"middle_name": "Davis",
"suffix": "Jr"
},
"citizenship": "US",
"date_of_birth": "1990-01-01",
"addresses": [
{
"address_line_1": "150 E San Fernando St",
"address_line_2": "apt #1",
"admin_area_1": "CA",
"admin_area_2": "San Jose",
"postal_code": "95112",
"country_code": "US"
}
],
"phones": [
{
"country_code": "1",
"national_number": "4089679174"
}
],
"identifications": [
{
"type": "DRIVERS_LICENSE",
"identifier": "G1111111",
"issuer": {
"country_code": "US",
"jurisdiction": "CA",
"authority": "DMV CA"
}
}
],
"tax_id": {
"type": "SOCIAL_SECURITY_NUMBER",
"identifier": "123456789",
"issuer": {
"country_code": "US",
"authority": "IRS"
}
}
}
]
},
"primary_currency_code": "USD",
"secondary_currency_codes": [
"CAD"
],
"financial_instruments": {
"banks": [
{
"mandate": {
"reference_number": "12345678912345"
},
"account_number": "87460937",
"account_number_type": "BASIC_BANK_ACCOUNT_NUMBER",
"routing_number": "081500875",
"bank_name": "Wells Fargo Bank",
"bic": "WFBIUS6WFFX",
"account_holder_details": {
"name": "John Davis Collins",
"type": "BUSINESS"
}
}
]
},
"cc_soft_descriptor": "sample-user",
"terms_and_conditions_acceptance": {
"acceptance_time": "2018-05-12T01:23:45.678Z",
"accepted": true
},
"organization": "us/shops",
"user_id": "sample-user"
}'
Response
Prefer
request header is one of these values:respond-async
respond-async, wait=preferred_wait_time_in_seconds
, where thepreferred_wait_time_in_seconds
value is less than the time, in seconds, when the server can synchronously process the request. For example,respond-async, wait=3
.
202 Accepted
status code and the request is processed asynchronously. If multiple respond-async
requests are submitted for the same account, there is no guarantee about which request is processed. The duplicate check does not occur. Additionally: - If the
Prefer
header isreturn=representation
, the server will return the entire account representation with an HTTP status of 201. - If no
Prefer
header is specified, then the response is the following elements with an HTTP status of 201:- payer id
- external id
- links
- If the
Prefer
header isrespond-async
, then the response body will be a single link with an HTTP status of 202.
links
array (contains the link_description object)
Sample Response
{
"payer_id": "7G4EPEEPEF74L",
"external_id": "sample-user@example.com",
"links": [
{
"rel": "self",
"href": "https://api-m.paypal.com/v2/customer/managed-accounts/7G4EPEEPEF74L",
"method": "GET"
},
{
"rel": "edit",
"href": "https://api-m.paypal.com/v2/customer/managed-accounts/7G4EPEEPEF74L",
"method": "PATCH"
}
]
}
Partially update managed account
Header parameters
Prefer
string
Content-Type
string
required
Path parameters
id
string
required
Request body
patch_request
array (contains the patch object)
Sample Request
curl -v -X PATCH https://api-m.sandbox.paypal.com/v2/customer/managed-accounts/7G4EPEEPEF74L \
-H "Content-Type: application/json" \
-H "Authorization: Bearer Access-Token" \
-d '[
{
"op": "add",
"path": "/tax_id",
"value": {
"type": "SOCIAL_SECURITY_NUMBER",
"identifier": "123456789",
"issuer": {
"country_code": "US",
"authority": "IRS"
}
}
}
]'
Response
204 No Content
status code with no JSON response body.addresses
array (contains the personal_address object)
business_info
capabilities
array (contains the capability object)
cc_soft_descriptor
string
citizenship
country_code
date_of_birth
email_id
external_id
string
financial_instruments
identifications
array (contains the personal_identification object)
links
array (contains the link_description object)
name
organization
string
payer_id
string
phones
array (contains the personal_phone object)
primary_currency_code
regulatory_obligations
array (contains the policy object)
secondary_currency_codes
array (contains the currency_code object)
tax_id
terms_and_conditions_acceptance
user_id
string
Sample Response
204 No Content
Show managed account details
Path parameters
id
string
required
Sample Request
curl -v -X GET https://api-m.sandbox.paypal.com/v2/customer/managed-accounts/7G4EPEEPEF74L \
-H "Content-Type: application/json" \
-H "Authorization: Bearer Access-Token"
Response
200 OK
status code and a JSON response body that shows managed account details.addresses
array (contains the personal_address object)
business_info
capabilities
array (contains the capability object)
cc_soft_descriptor
string
citizenship
country_code
date_of_birth
email_id
external_id
string
financial_instruments
identifications
array (contains the personal_identification object)
links
array (contains the link_description object)
name
organization
string
payer_id
string
phones
array (contains the personal_phone object)
primary_currency_code
regulatory_obligations
array (contains the policy object)
secondary_currency_codes
array (contains the currency_code object)
tax_id
terms_and_conditions_acceptance
user_id
string
Sample Response
{
"payer_id": "7G4EPEEPEF74L",
"external_id": "sample-user@example.com",
"country_code": "US",
"email_id": "unique@example.com",
"name": {
"prefix": "Mr.",
"given_name": "John",
"surname": "Collins",
"middle_name": "Davis",
"suffix": "Jr"
},
"addresses": [
{
"type": "HOME",
"address_line_1": "150 E San Fernando St",
"address_line_2": "apt #1",
"admin_area_1": "CA",
"admin_area_2": "San Jose",
"postal_code": "95112",
"country_code": "US"
}
],
"phones": [
{
"type": "MOBILE",
"country_code": "1",
"national_number": "4089679174"
}
],
"identifications": [
{
"type": "DRIVERS_LICENSE",
"identifier": "****",
"issuer": {
"country_code": "US",
"jurisdiction": "CA",
"authority": "DMV CA"
}
}
],
"tax_id": {
"type": "SOCIAL_SECURITY_NUMBER",
"identifier": "****",
"issuer": {
"country_code": "US",
"authority": "IRS"
}
},
"citizenship": "US",
"date_of_birth": "1990-01-01",
"business_info": {
"type": "INDIVIDUAL",
"names": [
{
"type": "LEGAL",
"business_name": "Demo 201 Inc."
}
],
"addresses": [
{
"type": "WORK",
"address_line_1": "585 Franklin Str",
"address_line_2": "apt #1",
"admin_area_1": "CA",
"admin_area_2": "Mountain View",
"postal_code": "94041",
"country_code": "US"
}
],
"email_address": "customer-service@example.com",
"phones": [
{
"type": "CUSTOMER_SERVICE",
"country_code": "1",
"national_number": "4089673333"
}
],
"identifications": [
{
"type": "EMPLOYER_IDENTIFICATION_NUMBER",
"identifier": "****",
"issuer": {
"country_code": "US",
"authority": "IRS"
}
}
],
"date_of_incorporation": "2001-01-17",
"business_category": {
"merchant_category_code": "3011"
},
"website": "https://example.com",
"stakeholders": [
{
"id": "ext_stakeholer_01",
"ownership_percentage": "100.0",
"type": "BENEFICIAL_OWNER",
"name": {
"prefix": "Mr.",
"given_name": "John",
"surname": "Collins",
"middle_name": "Davis",
"suffix": "Jr"
},
"citizenship": "US",
"date_of_birth": "1990-01-01",
"addresses": [
{
"address_line_1": "150 E San Fernando St",
"address_line_2": "apt #1",
"admin_area_1": "CA",
"admin_area_2": "San Jose",
"postal_code": "95112",
"country_code": "US"
}
],
"phones": [
{
"country_code": "1",
"national_number": "4089679174"
}
],
"identifications": [
{
"type": "DRIVERS_LICENSE",
"identifier": "****",
"issuer": {
"country_code": "US",
"jurisdiction": "CA",
"authority": "DMV CA"
}
}
],
"tax_id": {
"type": "SOCIAL_SECURITY_NUMBER",
"identifier": "****",
"issuer": {
"country_code": "US",
"authority": "IRS"
}
}
}
]
},
"primary_currency_code": "USD",
"secondary_currency_codes": [
"CAD"
],
"financial_instruments": {
"banks": [
{
"mandate": {
"reference_number": "12345678912345"
},
"id": "BA-KTJ7Z4FBMELZA",
"last_4_digits": "0937",
"account_number": "87460937",
"account_number_type": "BASIC_BANK_ACCOUNT_NUMBER",
"account_type": "CHECKING",
"routing_number": "081500875",
"bank_name": "Wells Fargo Bank",
"bic": "WFBIUS6WFFX",
"account_holder_details": {
"name": "John Davis Collins",
"type": "BUSINESS"
}
}
]
},
"cc_soft_descriptor": "sample-user",
"terms_and_conditions_acceptance": {
"acceptance_time": "2018-05-12T01:23:45.678Z",
"accepted": true
},
"organization": "us/shops",
"user_id": "sample-user",
"capabilities": [
{
"name": "WITHDRAW_MONEY",
"status": "SUSPENDED",
"limits": [
{
"type": "AMOUNT",
"value": "5000.00 USD",
"remaining_value": "1000.00 USD"
}
],
"required_fields": [
{
"requirement": "ALL_OF",
"fields": [
{
"path": "/identifications",
"link": {
"rel": "edit",
"href": "https://api-m.paypal.com/v2/customer/managed-accounts/7G4EPEEPEF74L",
"method": "PATCH"
}
},
{
"path": "/business_info/identifications",
"link": {
"rel": "edit",
"href": "https://api-m.paypal.com/v2/customer/managed-accounts/7G4EPEEPEF74L",
"method": "PATCH"
}
}
]
}
],
"required_documents": [
{
"requirement": "ONE_OF",
"documents": [
{
"name": "DRIVERS_LICENSE",
"entity": "ACCOUNT_HOLDER",
"link": {
"rel": "upload",
"href": "https://api-m.paypal.com/v1/customer/supporting-documents/7G4EPEEPEF74LFG/upload",
"method": "POST"
}
},
{
"name": "PASSPORT",
"entity": "STAKEHOLDER",
"entity_identifier": "ext_stakeholer_01",
"link": {
"rel": "upload",
"href": "https://api-m.paypal.com/v1/customer/supporting-documents/7G4EPEEPEF74LFG/upload",
"method": "POST"
}
}
]
},
{
"requirement": "ALL_OF",
"documents": [
{
"name": "UTILITY_BILL",
"entity": "BUSINESS",
"link": {
"rel": "upload",
"href": "https://api-m.paypal.com/v1/customer/supporting-documents/7G4EPEEPEF74LFG/upload",
"method": "POST"
}
},
{
"name": "PROOF_OF_SHIPPING",
"entity": "ACCOUNT",
"additional_information": {
"type": "TRANSACTION",
"identifier": "2GG279541U471931P"
},
"link": {
"rel": "upload",
"href": "https://api-m.paypal.com/v1/customer/supporting-documents/7G4EPEEPEF74LFG/upload",
"method": "POST"
}
}
]
}
]
}
],
"regulatory_obligations": [
{
"name": "MARKETPLACES_KYC",
"status": "NEED_MORE_DATA"
}
],
"links": [
{
"rel": "edit",
"href": "https://api-m.paypal.com/v2/customer/managed-accounts/7G4EPEEPEF74L",
"method": "PATCH"
}
]
}
Managed accounts queues (resource group)
Show asynchronous request status
- The HTTP
303
status with a HATEOAS link to complete aGET
on the newly created account. - The response code of the error that caused the account creation to fail. For example, the HTTP
422
or500
status code.
Path parameters
id
string
required
Sample Request
curl -v -X GET https://api-m.sandbox.paypal.com/v2/customer/managed-accounts-queues/AAG6SDXlnuO8VXqLnXXjqTgF6xRX2qSzIRrlUOEHQ2Snfgf6aTG/Yemdhd73NdgTfi72UvufdMpN6ykJWiJ0p6w= \
-H "Content-Type: application/json" \
-H "Authorization: Bearer Access-Token"
Response
200 OK
status code and a JSON response body that shows the status of the asynchronous request.links
array (contains the link_description object)
Sample Response
{
"links": [
{
"rel": "status",
"href": "https://api-m.paypal.com/v2/customer/managed-accounts-queues/AAG6SDXlnuO8VXqLnXXjqTgF6xRX2qSzIRrlUOEHQ2Snfgf6aTG/Yemdhd73NdgTfi72UvufdMpN6ykJWiJ0p6w=",
"method": "GET"
}
]
}
Common object definitions
account
addresses
array (contains the personal_address object)
business_info
capabilities
array (contains the capability object)
cc_soft_descriptor
string
citizenship
country_code
date_of_birth
email_id
external_id
string
financial_instruments
identifications
array (contains the personal_identification object)
links
array (contains the link_description object)
name
organization
string
payer_id
string
phones
array (contains the personal_phone object)
primary_currency_code
regulatory_obligations
array (contains the policy object)
secondary_currency_codes
array (contains the currency_code object)
tax_id
terms_and_conditions_acceptance
user_id
string
account_holder_details
identifier
name
string
type
enum
The possible values are:
BUSINESS
. A business bank account.INDIVIDUAL
. An individual bank account
account_holder_identifier
type
enum
The possible values are:
NATIONAL_ID
. The ID type is a national ID.TAX_ID
. The ID is a tax ID.
value
string
additional_information
identifier
string
type
enum
The possible values are:
TRANSACTION
. Payment transaction.FINANCIAL_INSTRUMENT
. Financial instrument.ADDRESS
. Address.
address_details
building_name
string
delivery_service
string
street_name
string
street_number
string
street_type
string
sub_building
string
address_portable_postal_code_validation
address_portable_postal_code_validation
async_response
links
array (contains the link_description object)
bank_account
account_number
string
required
account_number_type
enum
required
The possible values are:
BASIC_BANK_ACCOUNT_NUMBER
. A Basic Bank Account Number (BBAN).INTERNATIONAL_BANK_ACCOUNT_NUMBER
. An International Bank Account Number (IBAN).WIRE
. A wire bank account number.
account_holder_details
account_type
enum
The possible values are:
SAVINGS
. A savings account.CHECKING
. A checking account.
bank_name
string
bic
string
branch_code
string
branch_location
string
country_code
currency_code
id
string
last_4_digits
string
routing_number
string
business
addresses
array (contains the business_address object)
business_category
date_of_incorporation
email_address
identifications
array (contains the business_identification object)
phones
array (contains the business_phone object)
stakeholders
array (contains the stakeholder object)
type
enum
The possible values are:
INDIVIDUAL
. An individual business.PROPRIETORSHIP
. A sole proprietorship.PARTNERSHIP
. A partnership.CORPORATION
. A corporation.NONPROFIT
. A nonprofit.GOVERNMENT
. A government agency.PUBLIC_COMPANY
. A public company.PROPRIETARY_COMPANY
. BA proprietary company.ASSOCIATION
. An association.PRIVATE_CORPORATION
. A private corporation.OTHER_CORPORATE_BODY
. Other corporate body.
website
string
business_identification
identifier
string
required
type
enum
required
The possible values are:
EMPLOYER_IDENTIFICATION_NUMBER
. Employer identification number (EIN).BUSINESS_REGISTRATION_NUMBER
. Business Registration Number.
business_name
business_name
string
business_name_and_type
business_name
string
type
string
business_name_validation
business_name_validation
business_phone
country_code
string
extension_number
string
national_number
string
type
string
capability
limits
array (contains the limit object)
name
string
required_documents
array (contains the document_requirement object)
required_fields
array (contains the field_requirement object)
status
enum
The possible values are:
ACTIVE
. This capability is enabled.INACTIVE
. This capability is disabled and no further action can be taken.SUSPENDED
. This capability is disabled until required fields and documents are collected and verified.
card
number
string
required
billing_address
card_type
enum
The possible values are:
VISA
. Visa card.MASTERCARD
. MasterCard card.DISCOVER
. Discover card.AMEX
. American Express card.SOLO
. Solo debit card.JCB
. Japan Credit Bureau card.STAR
. Military Star card.DELTA
. Delta Airlines card.SWITCH
. Switch credit card.MAESTRO
. Maestro credit card.CB_NATIONALE
. Carte Bancaire (CB) credit card.CONFIGOGA
. Configoga credit card.CONFIDIS
. Confidis credit card.ELECTRON
. Visa Electron credit card.CETELEM
. Cetelem credit card.CHINA_UNION_PAY
. China union pay credit card.
id
string
last_digits
string
name
string
security_code
string
card_type
card_type
enum
The possible values are:
VISA
. Visa card.MASTERCARD
. MasterCard card.DISCOVER
. Discover card.AMEX
. American Express card.SOLO
. Solo debit card.JCB
. Japan Credit Bureau card.STAR
. Military Star card.DELTA
. Delta Airlines card.SWITCH
. Switch credit card.MAESTRO
. Maestro credit card.CB_NATIONALE
. Carte Bancaire (CB) credit card.CONFIGOGA
. Configoga credit card.CONFIDIS
. Confidis credit card.ELECTRON
. Visa Electron credit card.CETELEM
. Cetelem credit card.CHINA_UNION_PAY
. China union pay credit card.
category
category
string
merchant_category_code
string
sub_category
string
country_code
country_code
string
create_account_request
addresses
array (contains the personal_address object)
business_info
cc_soft_descriptor
string
citizenship
date_of_birth
external_id
string
financial_instruments
identifications
array (contains the personal_identification object)
organization
string
phones
array (contains the personal_phone object)
primary_currency_code
secondary_currency_codes
array (contains the currency_code object)
tax_id
terms_and_conditions_acceptance
user_id
string
currency_code
currency_code
string
date_no_time
date_no_time
string
date_time
date_time
string
date_year_month
date_year_month
string
document_requirement
documents
array (contains the document object)
requirement
enum
The possible values are:
ONE_OF
. One of the documents is required.ALL_OF
. All documents are required.
email_address
email_address
string
error
debug_id
string
required
message
string
required
name
string
required
details
array (contains the error_details object)
information_link
string
links
array (contains the link_description object)
error
debug_id
string
required
message
string
required
name
string
required
details
array (contains the error_details object)
information_link
string
links
array (contains the link_description object)
error_details
issue
string
required
description
string
field
string
location
string
value
string
error_details
issue
string
required
description
string
field
string
location
string
value
string
field
link
path
string
field_requirement
fields
array (contains the field object)
requirement
enum
The possible values are:
ONE_OF
. One of the fields is required.ALL_OF
. All fields are required.
financial_instrument
banks
array (contains the bank object)
cards
array (contains the card_with_mandate object)
get_managed_accounts_response
managed_accounts
array (contains the account object)
issuer
authority
string
jurisdiction
string
limit
remaining_value
string
type
enum
The possible values are:
AMOUNT
. The dollar, or currency equivalent, amount.DAYS
. The number of days.TRANSACTIONS
. The number of transactions.
value
string
link_description
href
string
required
rel
string
required
method
enum
link_description
href
string
required
rel
string
required
method
enum
mandate
reference_number
string
name
alternate_full_name
string
full_name
string
given_name
string
middle_name
string
prefix
string
suffix
string
surname
string
name_validation
name_validation
patch
op
enum
required
from
string
path
string
value
number,integer,string,boolean,null,array,object
patch_request
patch_request
array (contains the patch object)
percentage
percentage
string
personal_identification
identifier
string
required
type
enum
required
The possible values are:
DRIVERS_LICENSE
. Driver's license.PASSPORT_NUMBER
. Passport number.
personal_phone
country_code
string
extension_number
string
national_number
string
type
string
phone
country_code
string
required
national_number
string
required
extension_number
string
policy
name
enum
The possible values are:
MARKETPLACES_KYC
. Marketplaces KYC policy.MARKETPLACES_TAX
. Marketplaces tax policy.
status
enum
The possible values are:
COMPLETED
. Completed.FAILED
. Failed.MANUAL_REVIEW
. Manual review.NEED_MORE_DATA
. Need more data.NOT_APPLICABLE
. Not applicable.
stakeholder
id
string
required
type
enum
required
The possible values are:
CHAIRMAN
. Chairman of the business.PARTNER
. Partner in the business.SECRETARY
. Secretary.TREASURER
. Treasurer of the business.BENEFICIAL_OWNER
. Beneficial owner of the business.DIRECTOR
. Director of the business.
addresses
array (contains the address_portable object)
citizenship
date_of_birth
identifications
array (contains the personal_identification object)
name
ownership_percentage
phones
array (contains the phone object)
tax_id
tax_id
identifier
string
required
type
enum
required
The possible values are:
INDIVIDUAL_TAX_IDENTIFICATION_NUMBER
. Individual tax ID number.SOCIAL_SECURITY_NUMBER
. Social security number.
terms
accepted
boolean
required
Additional API information
Error messages
In addition to the common HTTP status codes that the REST APIs return, the Managed Accounts API can return the following errors.