On this page
No Headings
Last updated: May 21, 2026
Important: The information in this document is for Managed Path partners only.
You can manage the financial instruments attached to a managed account. Currently, you can only attach one financial instrument, a bank. When a bank is added, the managed account sweeps funds directly to that bank once a day until the bank is removed.
To add a financial instrument, specify the type of financial instrument in the financial_instruments object of the request body in a create managed account call.
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": "user23_property_1"
"country_code": "US",
"email_id": "email@partner.com",
"name": {
"given_name": "John",
"surname": "Collins",
},
"addresses": [
{
"type": "HOME",
"address_line_1": "150 E San Fernando St",
"admin_area_1": "CA",
"admin_area_2": "San Jose",
"postal_code": "95112",
"country_code": "US"
}
],
"tax_id": {
"type": "SOCIAL_SECURITY_NUMBER",
"identifier": "123456789",
"issuer": {
"country_code": "US",
}
},
"date_of_birth": "1990-01-01",
"business_info": {
"type": "PROPRIETORSHIP",
"names": [
{
"type": "LEGAL",
"business_name": "Demo 201 Inc."
}
]
},
"financial_instruments": {
"banks": [
{
"country_code": "US",
"currency_code": "USD",
"account_type": "CHECKING",
"account_number_type": "BASIC_BANK_ACCOUNT_NUMBER",
"account_number": "87460937",
"routing_number": "081500875"
}
]
},
"terms_and_conditions_acceptance": {
"acceptance_time": "2018-05-12T01:23:45.678Z",
"accepted": true
},
"organization": "us/property_1",
"user_id": "partner_user23"
}'A successful request returns the HTTP 201 Created status code and a JSON response body that shows managed account details.
{
"payer_id": "7G4EPEEPEF74L",
"partner_merchant_external_id": "abc123",
"links": [
{
"href": "https://api-m.sandbox.paypal.com/v1/customer/partners/merchant-accounts/7G4EPEEPEF74L",
"rel": "replace",
"method": "POST"
}
]
}You can also add a financial instrument to an account after creation. Pass the merchant_payer_id returned in the create call as a path parameter to identify the account to adjust. Use add as the value for the op field of your request body.
curl -v -X PATCH https://api-m.sandbox.paypal.com/v2/customer/managed-accounts/7G4EPEEPEF74L \
-H "Content-Type: application/json" \
-H "Authorization": "Bearer <var>Access-Token</var>" \
-H "PayPal-Request-Id": "123e4567-e89b-12d3-a456-426655440000" \
-d '{
"op": "add",
"path": "/financial_instruments/banks",
"value": [
{
"country_code": "US",
"currency_code": "USD",
"account_type": "CHECKING",
"account_number_type": "BASIC_BANK_ACCOUNT_NUMBER",
"account_number": "87460937",
"routing_number": "081500875"
}
]
}'A successful request returns the HTTP 204 No Content status code with no JSON response body. If you'd like a response containing the financial instrument you added, you can specify Prefer: return=representation in the header of your PATCH call or perform a GET on the managed account.
To remove a financial instrument, pass the merchant_payer_id as a path parameter to identify the account to adjust. Use remove as the value for the op field of your request body.
curl -v -X PATCH https://api-m.sandbox.paypal.com/v2/customer/managed-accounts/7G4EPEEPEF74L \
-H "Content-Type: application/json" \
-H "Authorization": "Bearer <var>Access-Token</var>" \
-H "PayPal-Request-Id": "123e4567-e89b-12d3-a456-426655440000" \
-d '{
"op": "remove",
"path": "/financial_instruments/banks@id=='BA-KTJ7Z4FBMELZA'"
}'A successful request returns the HTTP 204 No Content status code with no JSON response body. If you'd like a response to verify the financial instrument you removed, you can specify Prefer: return=representation in the header of your PATCH call or perform a GET on the managed account.
To replace a financial instrument, pass the merchant_payer_id as a path parameter to identify the account to adjust. Use replace as the value for the op field of your request body.
curl -v -X PATCH https://api-m.sandbox.paypal.com/v2/customer/managed-accounts/7G4EPEEPEF74L \
-H "Content-Type: application/json" \
-H "Authorization": "Bearer <var>Access-Token</var>" \
-H "PayPal-Request-Id": "123e4567-e89b-12d3-a456-426655440000" \
-d '{
"op": "replace",
"path": "/financial_instruments/banks@id=='BA-KTJ7Z4FBMELZA'",
"value": {
"country_code": "US",
"currency_code": "USD",
"account_type": "CHECKING",
"account_number_type": "BASIC_BANK_ACCOUNT_NUMBER",
"account_number": "87460937",
"routing_number": "081500875"
}
}'