Marketplace Escrow

Every marketplace has a single escrow. This escrow account is essentially like a pool of funds. Debits bring funds into the marketplace escrow. Credits take funds out of the marketplace escrow. Transactions involving Orders do not involve the marketplace escrow.

Marketplaces have complete control over how funds are disbursed from escrow. Funds in escrow may be distributed to recipients as desired, however, funds must be paid to merchants within 30 days of the charge. Best practice is to refrain from releasing funds until after merchant fulfillment has occurred, confirmation of a shipped product or completion of a service for example. Escrow is not meant as a means of extended withholding. Holding funds in escrow for extended periods of time often leads to an increased number in chargebacks and customer dissatisfaction.

Requirements

Funds must be paid to merchants within 30 days of the charge.

note
Balanced does not collect interest of any kind on funds in escrow. Transactions involving bank accounts associated to the marketplace owner customer are free of charge.

Determine Escrow balance

curl https://api.balancedpayments.com/marketplaces/TEST-MP1U7M592WT19sxxYwz98hLW \
     -H "Accept: application/vnd.api+json;revision=1.1" \
     -u ak-test-h7F8F3u41y6LzCK4nZeVd5BafaWOUuZL:
balanced.Marketplace.my_marketplace.in_escrow
Balanced::Marketplace.mine.in_escrow
Marketplace.mine().in_escrow;
Marketplace.Mine.in_escrow;
<?php
$marketplace = Balanced\Marketplace::mine();
$marketplace->in_escrow;
?>
balanced.marketplace.then(function( mp ) {
    mp.in_escrow
})

Pre-funding Escrow

Any payout issued requires maintaining sufficient money in your Balanced escrow.

If you do not have a sufficient balance, Balanced will return a 409 http status code, stating that you do not have sufficient funds to cover your desired ACH operation. You will have to add funds to your marketplace escrow from a credit card or bank account attached to your marketplace. This may be done via the API or via the Balanced Dashboard. To do this via the API:

# Get the marketplace
curl https://api.balancedpayments.com/marketplaces \
   -H "Accept: application/vnd.api+json;revision=1.1" \
   -u ak-test-h7F8F3u41y6LzCK4nZeVd5BafaWOUuZL:

# Determine owner customer from marketplaces.owner_customer link and get its bank accounts
curl https://api.balancedpayments.com/customers/CU1U8FEqP5FsisYD0D5G6aS4/bank_accounts \
   -H "Accept: application/vnd.api+json;revision=1.1" \
   -u ak-test-h7F8F3u41y6LzCK4nZeVd5BafaWOUuZL:

# Determine the debits href from the bank_accounts.debits link and create a debit
curl https://api.balancedpayments.com/bank_accounts/BA1VKlrw3m7lNyouaU5h8Xba/debits \
   -H "Accept: application/vnd.api+json;revision=1.1" \
   -u ak-test-h7F8F3u41y6LzCK4nZeVd5BafaWOUuZL: \
   -d "amount=2000000"
balanced.Marketplace.mine.owner_customer.bank_accounts[0].debit(
    amount=2000000,
    description='Pre-fund Balanced escrow'
)
Balanced::Marketplace.mine.owner_customer.bank_accounts.first.debit(
    :amount => 2000000,
    :description => 'Pre-fund Balanced escrow'
)
BankAccount bankAccount =  Marketplace.mine().owner_customer.bank_accounts.query().first();
HashMap<String, Object> payload = new HashMap<String, Object>();
payload.put("amount", 2000000);
payload.put("description", "Pre-fund Balanced escrow");
Debit debit = bankAccount.debit(payload);
BankAccount bankAccount = Marketplace.Mine.owner_customer.bank_accounts.First();
Dictionary<string, object> payload = new Dictionary<string, object>();
payload.Add("amount", 2000000);
payload.Add("description", "Pre-fund Balanced escrow");
Debit debit = bankAccount.Debit(payload);
<?php
Balanced\Marketplace::mine()->owner_customer->bank_accounts->query()->first()->debits->create(array(
    "amount" => "2000000",
    "description" => "Pre-fund Balanced escrow",
));
?>
balanced.marketplace.owner_customer.bank_accounts.get( 0 ).debits.create({
    "amount": 2000000,
    "description": "Pre-fund Balanced escrow"
})

Transfers may take 2-5 days for the funds to become available; alternatively, you may fund your account instantly by debiting a credit card associated to your marketplace.

Obtaining funds from Escrow

To transfer funds from your marketplace escrow to your marketplace bank account, issue a credit:

# Get the marketplace
curl https://api.balancedpayments.com/marketplaces \
   -H "Accept: application/vnd.api+json;revision=1.1" \
   -u ak-test-h7F8F3u41y6LzCK4nZeVd5BafaWOUuZL:

# Determine owner customer from marketplaces.owner_customer link and get its bank accounts
curl https://api.balancedpayments.com/customers/CU1U8FEqP5FsisYD0D5G6aS4/bank_accounts \
   -H "Accept: application/vnd.api+json;revision=1.1" \
   -u ak-test-h7F8F3u41y6LzCK4nZeVd5BafaWOUuZL:

# Determine the debits href from the bank_accounts.debits link and create a credit
curl https://api.balancedpayments.com/bank_accounts/BA1VKlrw3m7lNyouaU5h8Xba/credits \
   -H "Accept: application/vnd.api+json;revision=1.1" \
   -u ak-test-h7F8F3u41y6LzCK4nZeVd5BafaWOUuZL: \
   -d "amount=2000000"
balanced.Marketplace.mine.owner_customer.bank_accounts[0].credit(
    amount=2000000,
    description='Credit from Balanced escrow'
)
Balanced::Marketplace.mine.owner_customer.bank_accounts.first.credit(
    :amount => 2000000,
    :description => 'Credit from Balanced escrow'
)
BankAccount bankAccount =  Marketplace.mine().owner_customer.bank_accounts.query().first();
HashMap<String, Object> payload = new HashMap<String, Object>();
payload.put("amount", 2000000);
payload.put("description", 'Credit from Balanced escrow');
Credit credit = bankAccount.credit(payload);
BankAccount bankAccount = Marketplace.Mine.owner_customer.bank_accounts.First();
Dictionary<string, object> payload = new Dictionary<string, object>();
payload.Add("amount", 2000000);
payload.Add("description", "Credit from Balanced escrow");
Credit credit = bankAccount.Credit(payload);
<?php
Balanced\Marketplace::mine()->owner_customer->bank_accounts->query()->first()->credits->create(array(
    "amount" => "2000000",
    "description" => "Credit from Balanced escrow",
));
?>
balanced.marketplace.owner_customer.bank_accounts.get( 0 ).credits.create({
    amount: 2000000,
    "description": "Credit from Balanced escrow"
})

Credits can take 1-3 days for the funds to become available depending on the target bank.