Receiving moneyCollection accounts

Collection accounts

A collection account is a dedicated bank account you create for one of your sub-merchants: a business you collect money for. When that business’s customers pay into it, the money lands with you, tagged to the right sub-merchant. Your sub-merchants never sign up on Swappr.

Collection accounts are issued in NGN today. More currencies are added over time; the API reference lists the current ones.

Before you start

You need all three of these. If any is missing, creating an account returns 403.

  1. Technest has granted your account access to collection accounts.
  2. You have accepted the sub-merchant collections terms in your dashboard.
  3. The API key you use has the Create virtual accounts capability.

Create an account

Call POST /v1/virtual_accounts with an Idempotency-Key header. Retrying with the same key returns the same account rather than creating a second one. The API reference lists the body parameters, including the reference you set for the sub-merchant.

Where the money goes

Every payment into a collection account settles into your NGN wallet. You do not hold a separate balance per sub-merchant, so there is nothing to sweep. You run the per-sub-merchant accounting in your own system.

To know which sub-merchant a payment is for, read customer.customer_reference on the wallet_funded webhook. It is the reference you set when you created the account. The net amount is what lands in your wallet. See Matching payments to customers.

Collection accounts do not appear in GET /v1/virtual_accounts; that list is your own wallet top-up accounts. Attribute and reconcile collection account inflows from the wallet_funded webhook.

Test it in sandbox

In the sandbox environment, call POST /v1/sandbox/simulate-payment to fire a simulated inbound payment at one of your sandbox collection accounts. It runs through the same path a real payment takes: your test wallet is credited, the payment is attributed to the sub-merchant, and a wallet_funded webhook is queued. Use a sk_test_ key; a sk_live_ key returns 400 sandbox_only.

Next

What’s next