Skip to main content
Bachs enforces a maximum deposit amount per charge to manage risk. Limits are set per payment method, can be adjusted per account, and apply to every payment collected through your integration, including checkout sessions. Virtual account deposits work differently, because a bank transfer cannot be refused once it is sent.

How limits work

Every payment method has a maximum single payment. When a payment is initiated, Bachs checks the amount against the limit for the method it is collected on before processing. If the amount exceeds the cap, the request is rejected immediately with a DEPOSIT_LIMIT_EXCEEDED error, and no charge is attempted. Some accounts also have an account maximum for a currency. It applies on top of the method limits: a payment has to be within both. For checkout sessions with local pricing, limits are checked independently for each currency in the pricing configuration.

What your limit is

New accounts start with these limits for a single payment: The USD card limit is the lowest because card issuers cap single authorizations lower than other methods. If a customer needs to pay more than USD 500, offer them another payment method with a higher limit, or ask us to raise yours. Mobile money and crypto limits are held in USD and converted at live exchange rates when the payment is made, so the cap in the local currency moves with rates. Your account may have different figures. Limits are reviewed per account, based on your business type, what you sell, the customers you serve, and your risk profile, and they can change as your account builds history with us. To see the limits that apply to you right now, open Settings → Business → Account limits in your dashboard. Do not hardcode a limit in your integration. When a payment exceeds the cap, the DEPOSIT_LIMIT_EXCEEDED error returns details.max_allowed_amount, which is the authoritative value for that account at that moment. See Handling limit errors.

Request a limit increase

If you need a higher limit, email support@bachs.io with the following:
  • Your Bachs account email
  • Your current limit and the payment method it applies to (from Settings → Business → Account limits, or details.max_allowed_amount)
  • The new limit you’re requesting
  • Why you need the increase
  • What you’re selling or the service you provide
  • The type of customers you serve
  • Your expected payment volume
This helps us understand your business and review your request. We’ll get back to you once your request has been reviewed.

Handling limit errors

When a deposit exceeds the limit, the API returns HTTP 400 with DEPOSIT_LIMIT_EXCEEDED:
The details object tells you exactly what was requested and what the cap is, so you can surface a clear message to your customer, offer a payment method with a higher limit, or split the payment into smaller charges.
Check details.max_allowed_amount and details.currency to show your customer the maximum they can pay in a single charge rather than a generic error.

Connected accounts

If your integration uses connected accounts, limits are resolved against the effective organization: typically the connected account itself, since each account carries its own limit. The effective_org_id field in the error response tells you which organization’s limit was applied.

Virtual account deposits

A deposit into a virtual account is a bank transfer the customer has already sent, so it is never rejected and never returns DEPOSIT_LIMIT_EXCEEDED. Instead:
  • Two limits apply: one on a single deposit, and one on all deposits into the account in a day, counted in UTC. By default both are NGN 5,000,000. Your account may have its own figures.
  • A deposit over either limit is held for manual review. You still receive collection.succeeded straight away, with nothing in it to say the deposit is held. The money reaches neither your pending nor your available balance until we release it, and no event is sent when we do.
If you expect large deposits, ask for higher limits before they arrive. Email support@bachs.io with the details listed under Request a limit increase, and say the limits are for virtual account deposits. If a large deposit has not reached your balance, send us its charge_id.