availability

If you're a new merchant looking for a marketplace solution, contact our Sales team.

To update a sub-merchant, you must specify the merchantAccountId along with the attributes to be changed. Any attributes not passed in the update call will remain unchanged.

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 details

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:

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 details

If the sub-merchant is a registered business, you can update the DBA name, legal name, tax ID, and address fields.

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 details

The funding section controls where Braintree will disburse the settled funds. The fields can be updated as follows:

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.

See also