Updating Sub-merchants

To update a sub-merchant, you must specify the merchant_account_id along with the attributes to be changed. Any attributes not passed in the update call will remain unchanged.
  1. Java
MerchantAccountRequest request = new MerchantAccountRequest()
    .individual()
    .firstName("Joe")
    .done();

Result<merchantaccount> result = gateway.merchantAccount().update("blue_ladders_store", request);
result.isSuccess(); // true
If the merchant account can't be found, it will throw a NotFoundException.
You can update the sub-merchant details that fall under these 3 attributes:
  • individual
  • business
  • funding

Individual detailsAnchorIcon

Every sub-merchant must have an individual tied to that account. To update or replace the individual information, pass in the details via a merchant account update call as follows:
  1. java
MerchantAccountRequest request = new MerchantAccountRequest()
    .individual()
    .firstName("Jane")
    .lastName("Doe")
    .email("jane@14ladders.com")
    .phone("5553334444")
    .dateOfBirth("1981-11-19")
    .ssn("456-45-4567")
    .address()
    .streetAddress("111 Main St")
    .locality("Chicago")
    .region("IL")
    .postalCode("60622")
    .done()
    .done();

Result<merchantaccount> result = gateway.merchantAccount().update("blue_ladders_store", request);
MerchantAccount merchantAccount = result.getTarget();
merchantAccount.getIndividualDetails().getFirstName(); // Jane
Only the last 4 digits of the SSN will be returned after a successful update since the field contains sensitive data.

Business detailsAnchorIcon

If the sub-merchant is a registered business, you can update the DBA name, legal name, tax ID, and address fields.
  1. Java
MerchantAccountRequest request = new MerchantAccountRequest()
    .business()
    .legalName("Jane's Ladders")
    .dbaName("Jane's Ladders")
    .taxId("98-7654321")
    .address()
    .streetAddress("111 Main St")
    .locality("Chicago")
    .region("IL")
    .postalCode("60622")
    .done()
    .done();

Result<merchantaccount> result = gateway.merchantAccount().update("blue_ladders_store", request);
MerchantAccount merchantAccount = result.getTarget();
merchantAccount.getBusinessDetails().getLegalName(); // Jane's Ladders
Note that the business details are optional and are in addition to the individual details that are always required. See Onboarding Sub-merchants for more information.

Funding detailsAnchorIcon

The funding section controls where Braintree will disburse the settled funds. The fields can be updated as follows:
  1. Java
MerchantAccountRequest request = new MerchantAccountRequest()
    .funding()
    .descriptor("Blue Ladders")
    .destination(MerchantAccount.FundingDestination.BANK)
    .email("funding@blueladders.com")
    .mobilePhone("071101307")
    .accountNumber("1123581321")
    .routingNumber("071101307")
    .done();

Result<merchantaccount> result = gateway.merchantAccount().update("blue_ladders_store", request);
MerchantAccount merchantAccount = result.getTarget();
merchantAccount.getFundingDetails().getRoutingNumber(); // 071101307
Only the last 4 digits of the account number will be returned after a successful update since the field contains sensitive data.