As the master merchant, once you have successfully onboarded a sub-merchant, you can begin to leverage several transaction features:
Because many sub-merchants will be nested under your master merchant account, it's critical that you specify the correct
merchantAccountId for each transaction, as this defines to which sub-merchant the transaction is attributed.
Here's an example of creating a sub-merchant transaction with a service fee:
TransactionRequest request = new TransactionRequest() .merchantAccountId("provider_sub_merchant_account") .amount(new BigDecimal("10.00")) .paymentMethodNonce(nonceFromTheClient) .serviceFeeAmount(new BigDecimal("10.00")) .done(); Result<Transaction> result = gateway.transaction().sale(request);
serviceFeeAmount is a required field and can be any value from zero up to the total transaction amount. It can't be empty. This fee will be subtracted from the final amount disbursed to the sub-merchant and sent to the master merchant instead. Transactions created with service fees support dynamic descriptors.
Although Braintree does not escrow funds, as a master merchant you have an option within Braintree Marketplace to hold a sub-merchant's transaction funds until you make an additional call to release them. You can choose to hold funds on or after transaction creation. See more details in our support article on Braintree Marketplace processing.
If a transaction is refunded in full while its funds are being held in escrow, then the full amount of the transaction will be pulled from escrow and returned to the customer. Partial refunds are not supported until the funds are released from escrow.
When verifying credit cards, you must use your master merchant account or a merchant-of-record account. If you specify a sub-merchant account in the verificationMerchantAccountId field, you'll receive a validation error.
We deduct the following from the master merchant account:
- transaction processing fees
- chargeback fees
- refunds (if you are not holding funds in escrow)
- Merchant account result handling
- Dynamic descriptors for Braintree Marketplace transactions
- Transaction statuses, escrow statuses, and escrow results
- Hold in escrow after creation
- Releasing funds from escrow
- Canceling an escrow release
- Braintree Marketplace processing