Skip to main content
An escrow platform protects both sides of a deal. The buyer pays upfront, so the seller knows the money is real. The money waits with you until the buyer gets what they paid for. Then you release it to the seller, or refund the buyer if the deal falls through. You can run this on Bachs today, with no special setup from us. This page explains how it works in plain words. If you have a developer, or an AI coding assistant, the last sections give them what they need to build it.
Bachs moves and holds the money. Your platform decides when to release it or refund it, and your own terms with buyers and sellers say what “deal done” means. Bachs does not make that decision for you.

How it works

1

Add the seller

Each seller gets their own sub account on your platform. They tell us who they are and where to send their money. It only takes a few details, because sellers on your platform receive money but don’t take payments themselves.
2

The buyer pays you

The buyer pays through a Bachs checkout, by card, bank transfer, mobile money or crypto. The payment belongs to your platform, not the seller, so it lands in your Bachs balance.
3

The money is held

The money stays in your balance, out of the seller’s reach. Let the seller know the deal is paid for, so they can deliver with confidence.
4

Release or refund

When the buyer confirms delivery, you send the seller their share and keep your commission. If the deal falls through, you refund the buyer in full instead.
5

The seller withdraws

Once released, the money is the seller’s. They can withdraw it to their own bank account, mobile money wallet or crypto wallet.

A worked example

Kemi buys a used laptop from Tunde on your platform for ₦250,000. Your commission is ₦10,000. If Tunde never ships the laptop, you refund Kemi her full ₦250,000 instead. Bachs’s ₦2,000 processing fee is not returned, so your platform covers it. Naira processing fees are capped at ₦2,000 per payment. See Fees for every rate.

Releasing in stages

Some deals are paid in parts, such as a freelance project with three milestones. The buyer pays once for the whole job. You release each part as it’s finished. If the job stops halfway, you refund the part you haven’t released.

Three things to get right

Held deals and your platform’s commission share one Bachs balance. Keep your own record of how much you’re holding for open deals, and never withdraw below it. Turn off automatic payouts on your platform’s balance, or they could send held money to your bank along with your earnings. See Automatic payouts.
A payment can’t be released the moment it’s made. It first settles into your balance. Naira payments are available straight away. Card payments in US dollars take two days. See When your funds become available.
Decide when money is released, and put it in your terms. For example: released when the buyer confirms delivery, or automatically three days after delivery if the buyer raises no problem. Clear rules prevent most arguments.

When things go wrong

Refund the buyer from your balance. Nothing has gone to the seller yet, so there’s nothing to recover.
The refund comes out of your platform’s balance, not the seller’s. You can take the seller’s share back from their sub account, but only while it’s still there. Once the seller has withdrawn it, Bachs can’t recover it for you. This is why it pays to release only when you’re sure.
The payment is your platform’s, so the dispute is too, even after release. The disputed amount is set aside from your balance while it’s open, and a dispute fee applies. Pause the deal and send your evidence before the deadline. See Disputes.
You can hold the money for as long as the deal needs. But you can only release it once the seller’s sub account is verified, and they can only withdraw once their payout account is approved.

Before you go live

  • Your Bachs account is verified, and Connect is switched on. See Become a platform.
  • Automatic payouts are off on your platform’s balance.
  • You keep a record of how much you’re holding for open deals.
  • Your release and refund rules are in your terms with buyers and sellers.
  • Your team knows refunds and disputes come out of your platform’s balance, even after release.

Build it with an AI assistant

The quickest way to build this is to copy the prompt below into an AI coding assistant, such as Claude Code or Cursor, that can see your app’s code. It reads these docs and builds the whole flow. For more ready-made prompts, see Build with AI.
Prompt

For developers

Every call runs in the sandbox at https://sandbox-api.bachs.io with an sk_sandbox_ key. Going live is the same calls against https://api.bachs.io.
Release a deal
Webhooks to handle: checkout.completed, transfer.created, refund.paid, refund.failed, dispute.created, account.updated, capability.updated, payout.paid and payout.failed. Create the endpoint with event_source set to connect or all. See Connect events.The full mechanics are in Paying an account without a charge, Transfers, Refunds on Connect and Payouts on Connect.

Next steps