Onboarding Sub-merchants
Availability
If you're a new merchant looking for a marketplace solution,
contact our Sales team.
Full example
Below is an example of a
Merchant Account: Create
call. Unless specified otherwise in the parameters section below, all
fields are required.
- Callback
- Promise
const merchantAccountParams = {
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"
}
},
business: {
legalName: "Jane's Ladders",
dbaName: "Jane's Ladders",
taxId: "98-7654321",
address: {
streetAddress: "111 Main St",
locality: "Chicago",
region: "IL",
postalCode: "60622"
}
},
funding: {
descriptor: "Blue Ladders",
destination: braintree.MerchantAccount.FundingDestination.Bank,
email: "funding@blueladders.com",
mobilePhone: "5555555555",
accountNumber: "1123581321",
routingNumber: "071101307"
},
tosAccepted: true,
masterMerchantAccountId: "14ladders_marketplace",
id: "blue_ladders_store"
};
gateway.merchantAccount.create(merchantAccountParams, (err, result) => { });Parameters
Individual parameters
individual
parameters are always required when creating a sub-merchant, even if you are also providing
information for a registered company under businessphoneis optional.ssnis required if the sub-merchant is not a registered business. You must provide the full 9 digit Social Security Number in this field. For background, generally businesses use an EIN, while sole proprietors and individuals will use a Social Security Number.
Business parameters
- Node
business: {
legalName: "Jane's Ladders",
dbaName: "Jane's Ladders",
taxId: "98-7654321",
address: {
streetAddress: "111 Main St",
locality: "Chicago",
region: "IL",
postalCode: "60622"
}
},Merchant Account: Create
call will also need to include the business section with legal name, tax ID, address,
and (optionally) DBA name. This is in addition to the individual details
because a sub-merchant must always be tied to an individual. Keep in mind that:
legal_nameandtax_idare both required if the sub-merchant is a registered business.- All other parameters shown in the example above are optional.
Funding parameters
- Node
funding: {
destination: braintree.MerchantAccount.FundingDestination.Bank,
email: "funding@blueladders.com",
mobilePhone: "5555555555",
accountNumber: "1123581321",
routingNumber: "071101307"
}destinationis required, and the value must bebank.account_numberandrouting_numberare required. We'll deposit funds into the bank account associated with the provided account and routing numbers.- The provided information must be for a checking account.
-
These fields must not be sent when
destinationis anything other thanbank.
emailandmobile_phoneare both optional.descriptoris optional. This field sets the description that will appear on the sub-merchant's deposits from Braintree whendestinationis set tobank.- If not provided, one will be generated based on the individual name, business legal name, or DBA name.
Availability
Venmo funding destinations are no longer supported for new merchants.
Contact us with questions or concerns.
Important
We do not verify that bank account details are correct, so if there is an error with the final
disbursement, you will be notified with a
disbursement exception webhook
and the funds will be held until the details are updated.
Terms of service accepted parameter
- Node
tosAccepted: truetos_accepted
indicates that the sub-merchant has read and agreed to the Braintree Sub-Merchant Terms of Service
(TOS). To allow sub-merchants to do this, the following text should be included in your website's
Terms of Service for Braintree Marketplace sub-merchants:
Note
"[MSP NAME] uses Braintree, a division of PayPal, Inc. (Braintree) for payment processing
services. By using the Braintree payment processing services you agree to the Braintree Payment
Services Agreement available at
https://www.braintreepayments.com/legal, and
the applicable bank agreement available at
https://www.braintreepayments.com/legal/bank-agreement."
Master merchant account ID parameter
- Node
masterMerchantAccountId: "14laddersMarketplace"master_merchant_account_id
defines that:
- this new sub-merchant will be nested under this master merchant account
- this master merchant account is the destination for the service fees you charge.
- Log into either the production Control Panel or the sandbox Control Panel, depending on which environment you are working in
- Click on the gear icon in the top right corner
- Click Business from the drop-down menu
Important
If you're testing in the sandbox, be sure to change the
master_merchant_account_id when moving to production.
ID parameter
- Node
id: "blueLaddersStore"id
is an optional field and allows you to define the sub-merchant ID that you will reference
when creating a transaction. If
you do not pass an id when creating a sub-merchant, then one will be generated
automatically by Braintree and returned in the result object.
Result handling
Assuming that your
Merchant Account: Create
call is valid, it will return a
Braintree result object
like this one:
- Node
gateway.merchantAccount.create(merchantAccountParams, function (err, result) {
result.success; // true
result.merchantAccount.status; // "pending"
result.merchantAccount.id; // "blueLaddersStore"
result.merchantAccount.masterMerchantAccount.id; // "14laddersMarketplace"
result.merchantAccount.masterMerchantAccount.status; // "active"
});- that the sub-merchant creation is pending
- what the sub-merchant ID is
- under which master merchant account this sub-merchant is nested
See also
- Braintree Marketplace overview
- Merchant account result handling
- Creating transactions with service fees