Update merchant information

CurrentDocs

Last updated: Dec 10th, 3:49pm

As you manage your merchant account, you may need to update the merchant information to:

  • Rectify or add information during initial onboarding and verification.
  • Update critical business information when it changes, such as addresses and owners.

According to your agreement with PayPal, inform PayPal whenever you update your merchant's information. In some cases, you need to verify the merchant's account again after updates.

In such cases, PayPal verifies the new information electronically. If PayPal cannot verify the merchant account, you have a 30-day grace period to provide additional information or documentation.

Use PATCH to update merchant information

Use the PATCH method to edit or update the merchant account.

Use this method for a single or multiple field update, as shown in the following examples.

Single field update

  1. Request
  2. Request body
1curl --location --request PATCH 'https://<Host>/v3/customer/managed-accounts/<Account-ID>’

Multiple field update

  1. Request
  2. Request body
1curl --location --request PATCH 'https://<Host>/v3/customer/managed-accounts/<Account-ID>’

Sample request and response

In the following example, the request returns a 422 Unprocessable Entity status code.

  1. Request
  2. Response
1[
2 {
3 "op": "replace",
4 "path": "/financial_instruments/ban",
5 "value": [
6 {
7 "country_code": "US",
8 "currency_code": "USD",
9 "routing_number": "081500875",
10 "account_number_type": "BASIC_BANK_ACCOUNT_NUMBER",
11 "account_number": "90932977",
12 "account_type": "checking",
13 "bank_name": "BANK OF AMERICA"
14 }
15 ]
16 }
17]

Multiple field updates with one failure

In the following example, the PATCH method updates multiple data points, but only one operation succeeds.

  1. Request
  2. Response
1[
2 {
3 "op": "replace",
4 "path": "/financial_instruments/banks",
5 "value": [
6 {
7 "mandate": {
8 "consent_to_debit": true
9 },
10 "account_number": "66910563",
11 "account_number_type": "BASIC_BANK_ACCOUNT_NUMBER",
12 "account_type": "CHECKING",
13 "routing_number": "082900429",
14 "branch_code": "08501",
15 "currency_code": "USD",
16 "country_code": "US",
17 "bank_name": "Key Bank National Association"
18 }
19 ]
20 },
21 {
22 "op": "add",
23 "path": "/individual_owners/@id=='{{account_id}}'",
24 "value": {
25 "date_of_birth": "1997-05-20"
26 }
27 },
28 {
29 "op": "add",
30 "path": "/individual_owners/@id=='{{account_id}}'",
31 "value": {
32 "email": "add_email5@provider.com"
33 }
34 }
35]

PATCH request error messages

The following table describes the different types of PATCH request error messages and their descriptions.

Error

Error Description

MISSING_REQUEST_BODY

Request body is missing

CLIENT_EXCEPTION

Error Calling downstream API

ACCOUNT_CANNOT_BE_FETCHED

Account_cannot_be_fetched

VALIDATION_ERROR

Data not valid for field

MISSING_FIELD

Missing field

MISSING_REQUIRED_PARAMETER

Missing required field or parameter

INVALID_FORMAT

Data not valid for field

INVALID_PARAMETER_VALUE

The value of a field is invalid.

INVALID_VALUE

Invalid input value for the parameter being updated.

MALFORMED_REQUEST_ERROR

Malformed request.

INTERNAL_SERVER_EXCEPTION

Server error. 

PAYMENT_REVIEW_STATUS_ERROR

Error processing Payment review status

INVALID_RESERVE_TYPE

Reserve type is invalid

INVALID_ROLLING_RESERVE_PERCENT

Rolling reserve percentage is invalid

INVALID_ROLLING_RESERVE_PERIOD

Rolling reserve period is invalid

MISSING_ROLLING_RESERVE_PERCENT

Rolling reserve percentage is missing

MISSING_ROLLING_RESERVE_PERIOD

Rolling reserve period is missing

RESERVE_CONFIGURATION_NOT_FOUND

Reserve configuration for this account doesn't exist

RESERVE_RELEASE_IN_PROGRESS

Reserve release is already in-progress

RESERVE_ERROR_EXCEPTION

Reserve operation occurs an internal service error

INVALID_FIXED_RESERVE_EXPIRATION_DATE

Expiration date exceeds 180 days

OUT_DATE_FIXED_RESERVE_EXPIRATION_DATE

Expiration date cannot be less than or equal the current date

MISSING_FIXED_RESERVE_AMOUNT

Amount is missing

ZERO_FIXED_RESERVE_AMOUNT

Amount specified is zero

INVALID_FIXED_RESERVE_AMOUNT

Invalid currency/value for target amount field.

INVALID_FIXED_RESERVE_CURRENCY

Fixed reserve can only be placed on primary currency of the account

UNKNOWN_RESERVE_CONFIG_ERROR

Error processing reserve configuration

RELEASE_PARALLEL_CALLS_ERROR

Previous release is in-progress pls try later

RELEASE_INSUFFICIENT_FUNDS_ERROR

The balance is insufficient

INSTRUMENT_ACCOUNT_NUMBER_MISSING

Account number is missing

INSTRUMENT_CURRENCY_CODE_MISSING

Currency code is missing

INSTRUMENT_COUNTRY_CODE_MISSING

Country code is missing

INSTRUMENT_ACCOUNT_NUMBER_TYPE_MISSING

Account number type is missing

ACCOUNT_CREATION_ERROR

Account Cannot be created

USER_ACCOUNT_CLOSED

Cannot add a bank to a PayPal account that is closed

NOT_SUPPORTED

Bank account country and PP account country combination not allowed

INSTRUMENT_UNAVAILABLE

Not a bank supported by PayPal

MULTIPLE_BANKS

Only one Bank allowed to add

CANNOT_ADD_BANK

Bank account has already been added

CANNOT_ADD_BANK_RISK_DENIAL

Unable to add bank

MULTIPLE_BANKS_NOT_PERMITTED

Only one financial instrument is permitted

MULTIPLE_PATCH_OPERATIONS_WITH_FI

Only add one Financial Instrument for this PATCH operation

CANNOT_REMOVE_BANK

Unable to remove bank. Please try again later.

CANNOT_REMOVE_BANK_HARD_DECLINE

Unable to remove bank. Please check bank account.

CANNOT_REMOVE_BANK_NEGATIVE_BALANCE

Unable to remove bank due to negative account balance.

BANK_OPERATION_NOT_ALLOWED

Bank operation is not currently allowed due to the account limitation.

RESOURCE_NOT_FOUND_EXCEPTION

Resource being accessed through the patch call is not found.

USER_BUSINESS_EXCEPTION

User business error.

PARTNER_BUSINESS_EXCEPTION

Partner business error.

SECURITY_CONTEXT_EXCEPTION

SECURITY_CONTEXT_ERROR

SECURITY_TENANT_CONTEXT_EXCEPTION

SECURITY_TENANT_CONTEXT_EXCEPTION

SECURITY_CONTEXT_PARTNER_TENANT

_NAME_EXCEPTION

SECURITY_CONTEXT_PARTNER_TENANT

_NAME_EXCEPTION

SECURITY_CONTEXT_PARENT_ACCOUNT

_NUMBER_EXCEPTION

SECURITY_CONTEXT_PARENT_ACCOUNT

_NUMBER_EXCEPTION

SECURITY_CONTEXT_TENANT_ID_EXCEPTION

SECURITY_CONTEXT_TENANT

_ID_EXCEPTION

SECURITY_CONTEXT_SIGNATURE_EXCEPTION

SECURITY_CONTEXT_SIGNATURE

_EXCEPTION

AUTHORIZATION_EXCEPTION

AUTHORIZATION_ERROR

UNKNOWN_EXCEPTION

UNKNOWN_EXCEPTION

FORBIDDEN_NO_API_SCOPE

User doesn't have this API in their scope

FORBIDDEN_NO_ONBOARDING_SCOPE

Partner doesn't have the onboarding scopes

FORBIDDEN_NO_VALID_SCOPE

User doesn't have either this API in their scope or account permissions

FORBIDDEN_FLEXIBLE_PAYOUT_PARTNER

Partner is not enabled for flexible payout

FAILED_ACC_CREATION_TYPE

Fail to check account creation type

FORBIDDEN_NO_ACC_MGG_PERMISSION

Partner account does not have account management permission

FORBIDDEN_UNSUPPORTED_ACC_CREATION_TYPE

Partner account has unsupported account creation type

INTERNAL_ERROR_UNSUPPORTED_ACC_CREATION_TYPE

Fail to check account creation type

ADD_SECONDARY_CURRENCY_INTERNAL_ERROR

Internal Error during add currency call

SECONDARY_CURRENCY_INVALID_PAYER

Invalid Payer Id

SECONDARY_CURRENCY_INVALID_REQUEST

Invalid Payer Id

INVALID_SECONDARY_CURRENCY_CODE

Invalid secondary currency codes

SETTLEMENT_ONBOARDING_NOT_SUCCESSFUL

SETTLEMENT_ONBOARDING_NOT_SUCCESSFUL

EXISTING_EMAIL_HANDLE

Email address already taken

EXISTING_EXTERNAL_ID

External id already associated with another account

MISSING_EMAIL_HANDLE

Email id is required

MISSING_EMAIL_ADDRESS

Email address is required

INVALID_EMAIL_ADDRESS

Email address is not valid please provide valid email address

EXISTING_EMAIL_ADDRESS

Email address already exists

MISSING_COUNTRY_CODE

Country Code is required

MISSING_BUSINESS_DETAILS

Business details are required

DIFFERENT_EMAIL_DOMAIN

Email domain used in different from that of the partner

MISSING_EMAIL_DOMAIN

Partner's email domain is not found

MISSING_TENANT_ACC_NO

Account for this Account ID does not exist

MISSING_ORG_PATH

Missing organization path

INVALID_ORG_PATH

Invalid organization path

ACC_LOAD_FAILURE

Failuer to get account details

ACC_FETCH_FAILURE

Failed to fetch the lookup key for tenant account

INVALID_BANK

Invalid bank account information provided.

ALREADY_EXISTS_BANK

Value already exists

VALUE_NOTFOUND_BANK

Value can not be found

BANK_NOT_FOUND

The bank you are trying to remove is not linked with this account.

INVALID_ISSUER_DETAILS

Invalid branch location details

INVALID_STATUS

Invalid branch location details

MISSING_OR_INVALID_REQUEST_BODY

Invalid bank account details.

ISSUER_DECLINE

Branch location details declined.

ROUTING_NUMBER_NOT_SUPPORTED

Invalid routing number provided.

COUNTRY_NOT_SUPPORTED

Country code unsupported

INVALID_INDIVIDUAL_OWNER_SIZE

Number of individual owners supported is exactly 1.

INDIVIDUAL_OWNER_LENGTH

INDIVIDUAL_OWNER_LENGTH

BUSINESS_WEBSITE_INFO_INVALID

Invalid Website Info

INDIVIDUAL_OWNER_EMAIL_MISSING

Emails of individual_owner is missing

MISSING_WEBSITE_INFO

missing_website_info

REDUNDANT_WEBSITE_URL

redundant_website_url

MISSING_WEBSITE_URL

missing_website_url

PATCH_WEBSITE

patch_website

DATA_NOT_FOUND

Data not found.

INSTRUMENT_ALREADY_EXISTS

Bank account already exists.

INSTRUMENT_COUNT_LIMIT_EXCEEDED

Maximum number of bank account exceeded.

INSTRUMENT_COUNT_LIMIT_EXCEEDED_VERIFIED

Maximum number of verified bank account exceeded.

INSTRUMENT_SHARING_LIMIT_EXCEEDED

Maximum shared use of bank account exceeded.

EXCEEDING_TOTAL_DUPLICATE_LIMIT

Maximum use of bank account exceeded.

ISSUER_DATA_NOT_FOUND

Branch location data not found.

PATCH_FI_INVALID_ID

Invalid FI ID

UPDATE_FI_INVALID_ID

Invalid FI ID

PATCH_FI_MISSING_VALUE

No Value provided

UPDATE_FI_MISSING_VALUE

No value provided

PATCH_FI_INVALID

Invalid Value

UPDATE_FI_INVALID

Invalid value

PATCH_INVALID_ID

Invalid ID

UPDATE_INVALID_ID

Invalid ID

PATCH_INVALID_REQUEST

Invalid Patch Request

BAD_JSON_FORMAT

Bad Json format

UPDATE_INVALID_REQUEST

Invalid update request

PATCH_FIELD_NOT_SUPPORTED

Patch for path and operation is not currently allowed.

PATCH_INVALID_OPERATION_REQUEST

Invalid Operation on Patch

PATCH_UNPROCESSABLE_OPERATION_REQUEST

Unprocessable request on Patch

OAS_SESSION_EXCEPTION

Session exception occurred

UNSUPPORTED_UPDATE

Unsupported update

UPDATE_FOR_FIELD_NOT_SUPPORTED

Update for field is not permitted

UNPROCESSIBLE_UPDATE

Update for field is not processible

MISSING_MERCHANT_ACCOUNT

Missing account number in security context

MISSING_ENCRYPTED_MERCHANT_ACCOUNT

Missing encrypted account number in security context

MISSING_PARTNER_ACCOUNT

Missing partner account number in security context

OAS_GETACCOUNT_EXCEPTION

Unable to get account details from OAS

OAS_EMPTY_PRODUCT_EXCEPTION

Empty products from OAS

OAS_SECONDARY_USER_NOT_RETURNED

Secondary user not returned in OAS call

OAS_GETBIZ_EXCEPTION

Business user retrieval exception occurred.

OAS_GETPERSON_EXCEPTION

Person user retrieval exception occurred.

MERCHANT_ACC_NOT_ACTIVE

Account is not active

GET_ACCOUNT_FLAGS

Error getting account flags

SET_ACCOUNT_FLAGS

Error setting account flags

MISSING_USER_ID

Missing User Id

GET_SECURITY_CONTEXT_FAILED

Unable to get Security context

INITIATE_SEPA_AUTHORIZATION_FAILED

Error on SEPA Account Authorization

INITIATE_ELECTRONIC_AUTHORIZATION_FAILED

Error on Electronic Mandate Account Authorization

MISSING_PAYPAL_REQUEST_ID

Paypal-Request-Id is required header.

DUPLICATE_PAYPAL_REQUEST_ID

Duplicate request received with different request payload.

MISSING_EXTERNAL_ID

Missing External ID

MISSING_PERSONAL_NAME

Missing Personal Name

MISSING_BUSINESS_ENTITY_NAME

Missing Business_entity Name

MISSING_AGREEMENTS

Missing Agreements

MISSING_BUSINESS_TYPE

Missing Business Type

INVALID_UPDATE_PATH

The path field for this update object is invalid.

INVALID_UPDATE_VALUE

The update value has an invalid field.

MISSING_FIELD_UPDATE_VALUE

The update value has a missing required parameter.

COUNTRY_CODE_DOC_TYPE_MISMATCH

The country code input provided does not match the associated document type.

INVALID_ARRAY_VALUE_UPDATE

The array provided in the value field is invalid.

INVALID_ARRAY_VALUE_PATCH

The array provided in the value field is invalid.

INVALID_UPDATE_MAX_ELEMENTS_REACHED

The update would cause the array to exceed its maximum allowed size.

INVALID_UPDATE_MIN_ELEMENTS_REACHED

The update would cause the array to fall below its minimum allowed size.

INVALID_BUSINESS_ATTRIBUTE_NAME_VALUE_PATCH

The name provided in Business Attribute is invalid.

ACCOUNT_ID_MISMATCH

Account ID in body does not match account ID in update path

INVALID_VIEWS_QUERY_PARAMETER

Query parameter has invalid value.

INVALID_TYPE_PROVIDED

Invalid type provided.

RETRIEVE_CONFIG_FAILED

Error on retrieving config value

INVALID_ENUMERATED_VALUE

Error on enumerated value.

AMQ_PUBLISH_FAILED

Publish Operation failed

BANK_ASSOCIATION_LIMIT_REACHED

This account has reached its association limit. Please use another bank account.

BANK_ACCOUNT_DECLINED

The bank account provided cannot be used. A different bank account must be used.

BANK_VALIDATION_ERROR

The bank account information provided is not valid. Please check all the details provided are accurate.

PPH_BUNDLE_ID_NOT_FOUND

Failed to fetch PPH bundleId

BANK_BAD_INSTRUMENT

The financial instrument has been flagged as risky and cannot be accepted.

BANK_MAXED_CONFIRMATION_TRIES

The verification of the bank failed previously. We recommend you to use another bank.

BANK_INSTRUMENT_RESTRICTED

The account number or routing number provided cannot be accepted.

BANK_REMOVE_DENIED_NEGATIVE_BALANCE

The currently associated bank has unsettled balance and cannot be removed at this time.

BANK_DOES_NOT_BELONG_TO_THE_MERCHANT

The FI bank account provided does not belong to merchant.

ACCOUNT_LINKING_CROSS_COUNTRY_USER

_VALIDATION_ERROR

Account linking across countries is not supported.

USER_VALIDATION_ERROR

The account creation was not successful due to the limitation in the provided user information. Please review the provided documentation to pass the needed information to create the account.

CLOSE_ACCOUNT_FAILED

Close account failed

MISSING_HYPERWALLET_API_CREDENTIALS

Hyperwallet credentials setup missing.

INVALID_MAPPING_METADATA

Invalid mapping metadata detected.

DOMAIN_ALREADY_REGISTERED

The domain is already registered.

DOMAIN_NOT_REGISTERED

The domain is not registered.

DOMAIN_REGISTRATION_NOT_ALLOWED

Domain registration is not allowed for this account.

INVALID_DOMAIN_NAME

The domain name is invalid.

INVALID_PROVIDER_TYPE

The provider type is invalid.

DOMAIN_REGISTERED_WITH_ANOTHER_ENTITY

The domain is registered with another entity.

RHINO_PARSING_EXCEPTION_ERROR

Parsing Exception during JSON Logic processing.

AMQ_PUBLISH_ERROR

Fail to publish AMQ message.

AMQ_PUBLISH_EXCEPTION

Exception during AMQ message publishing.

INVALID_BENEFICAL_OWNER_DECLARATION

Invalid Beneficial Owner Declaration

TIMEOUT_EXCEPTION

Timeout Exception

INSTRUMENT_ALREADY_ASSOCIATED

Instrument is already associated with another user

INSTRUMENT_BLOCKED

Instrument is currently blocked

INVALID_ACCOUNT_TYPE

Not a valid business type account

Use PATCH to set verification status

After you update or edit the merchant account, complete a PATCH API call with SELF_CERTIFICATION. Set the SELF_CERTIFICATION value to true to indicate that the merchant account is ready for verification.

Set SELF_CERTIFICATION

Set the SELF_CERTIFICATION value to true to indicate that the account is ready for re-evaluation as shown in the example.

  1. Request
  2. Request body
1curl --location --request PATCH 'https://<Host>/v3/customer/managed-accounts/<Account-ID>’

Update and set SELF_CERTIFICATION

You can also update the account with the required information and set SELF_CERTIFICATION to true using the same JSON request body as shown in the example.

  1. Request
  2. Request body
1curl --location --request PATCH 'https://<Host>/v3/customer/managed-accounts/<Account-ID>’

Monitor for webhooks

When the PATCH operation succeeds, PayPal sends the CUSTOMER.MANAGED-ACCOUNT.ACCOUNT-UPDATED webhook to notify of a successful update to the merchant account.

If a merchant requires re-verification, PayPal sends the CUSTOMER.MANAGED-ACCOUNT.ACCOUNT-STATUS-CHANGED webhook, indicating that the merchant must take action to complete verification.

We recommend you complete a GET call, v3/customer/managed-accounts/ACCOUNT-ID, to complete any additional onboarding requirements.

For more information about verification, see Verify merchants.

We use cookies to improve your experience on our site. May we use marketing cookies to show you personalized ads? Manage all cookies