Limited timeWFBTP-Mobile is open — 30 days on the app, ₦100,000 minimum. Closes 28 Sept.

BlogPlaybooks

Selling on Instagram: from DM to receipt to books

Forty DMs, nine transfers, six dispatches and a bank statement that agrees with none of them.

A phone showing Instagram direct messages beside folded clothing and a dispatch bag

You posted the two piece at 7pm. By midnight there are thirty one DMs and eleven of them say "price?".

By Thursday you have taken nine transfers, dispatched six parcels, held one item for a customer who is "still thinking", refunded one and swapped a size. Everything happened. Nothing was written down anywhere except the DMs themselves.

Then the bank statement arrives and agrees with nothing.

The workflow you are actually running

Write it out once, because most Instagram brands have never seen their own process on paper.

StepWhere it happensWhat the books get
EnquiryDM or commentnothing
Price quoteDM, typed by handnothing
Stock checkyour head, or a shelfnothing
Customer decideshours or daysnothing
Transfercustomer's bank appa credit alert
Proof of paymentscreenshot in the DMnothing
Dispatchrider or couriernothing
Deliveredrider confirmsnothing

Eight steps and exactly one of them produces a record, and it is the one you did not create. That is not a discipline failure on your part. It is a design failure: the workflow simply has no place to put a record, so no record appears.

Your bank statement is not your sales record. It is a list of the money that happened to arrive.

The gap, stated precisely

The gap is between "money landed" and "which item, at what price, to whom, from what stock".

Take an illustrative example. A credit alert tells you ₦45,000 arrived from ADEBAYO O. It does not tell you that ₦45,000 was the balance on a ₦70,000 dress after a ₦25,000 deposit taken eleven days ago, that the dress is a size 12 in sand, that it came out of the last three you had, or that ₦4,000 of it was the customer's delivery to Abuja and is not your revenue at all.

Three months of that and you can tell someone your turnover to the naira and still not know which styles made you money.

Reserving stock while a customer decides

This is the single biggest cause of the "I'm so sorry, it just went" message, and it costs you the customer twice: once for the item they did not get, and once for the trust.

The rule that works is a timed hold. When a customer says they want it, you reserve the piece against their name for a fixed window, commonly 24 or 48 hours, and the piece drops out of available stock immediately without being counted as sold. If the transfer does not land before the window closes, the hold expires automatically and the piece returns to available.

Three quantities, not one. Illustrative example for a sand two piece, size 12: physical stock 3, reserved 2, available to promise 1. If you post that item to your story and treat physical stock as available, you will oversell it, and the ₦70,000 you refund is the least of the damage.

Say the window out loud in the DM: "holding this for you till 6pm tomorrow". It is not rudeness, it is a deadline, and deadlines convert.

Part payments are a liability, not a sale

Nigerian fashion runs on deposits, especially on anything made to order. A deposit is not revenue. It is money you owe the customer either in goods or in cash, and treating it as a sale is how brands end up spending fabric money.

Track three figures per order: total price, paid to date, balance outstanding. Illustrative example: a ₦70,000 dress, ₦25,000 deposit on 3 October, balance ₦45,000. Until the balance clears, that order is a customer deposit of ₦25,000 sitting against an obligation, and the item is reserved rather than sold.

Set the rules before the DM arrives and repeat them in every quote: what percentage you take, how long you hold a deposit before the piece goes back into stock, and whether a deposit is refundable, transferable or neither once fabric has been cut. Ambiguity here is not kindness. It is the argument you will have in six weeks.

Returns and exchanges, and why they are not the same

An exchange looks free and is not.

A return puts stock back, reverses revenue and moves money out. An exchange puts one item back, takes another out, and usually leaves a price difference plus a second delivery cost that somebody absorbs. Record an exchange as "no change" and your stock goes wrong on two items at once.

Record each one as its own event with a reason code from a short fixed list: wrong size, not as expected, defect, changed mind, late delivery. After sixty orders that list is the most valuable data your brand owns. If 40% of your returns are wrong size on one style, the problem is your size chart, not your customers, and fixing the chart is free.

For scale, US retail returns reached $890 billion in 2024, about 16.9% of sales, on NRF and Happy Returns figures. That is a US number and there is no equivalent published Nigerian survey, so treat it as the shape of the problem rather than your rate.

Why the bank statement never matches the DM count

Because at least six things sit between the two, and every one of them is ordinary.

Delivery fees collected for riders inflate credits without being revenue. Deposits land in one month and the sale completes in another. Some customers pay into your personal account because that is the number they already had. Some pay cash to the rider, so it never touches the bank. Refunds leave the account without reversing any sale. Bank charges shave the odd naira off, so amounts no longer tie to the price you quoted.

The fix is not to reconcile harder. It is to create the missing record at the moment the sale happens, so there is something to reconcile against. That is the mechanism described in why your stock never matches your records: a movement that never generates a line resurfaces later as a variance.

A workable close for a DM based brand takes twenty minutes a week. Pull every credit for the week and match each one to an order as deposit, balance, full payment or delivery collected. List unmatched credits and unmatched orders separately, because they are different diseases: an unmatched credit is a sale you never recorded, an unmatched order is goods that went out unpaid. Then check that every reserved item still has a live order behind it. Closing your books monthly becomes trivial once the weekly version is a habit.

The turnover question you will eventually face

Sooner or later somebody asks what your business actually turned over last year. A bank wants it before a loan. A landlord wants it before a bigger shop. A partner wants it before a deal. An adviser wants it before almost anything.

If your only record of turnover is a bank statement carrying rider money, deposits for cancelled orders and a transfer from your mother, you cannot answer accurately in either direction. Looking bigger than you are creates problems. So does being unable to evidence what you claim.

The fix is not clever accounting. It is recording the sale at the point it happens, with the item, the price, the customer and what part of the money was never yours in the first place.

Frequently asked questions

How do I track Instagram DM orders properly?

Turn each enquiry into an order record at the point the customer says yes, not at the point money lands. Capture item, size, price, customer, deposit and balance, and reserve the stock against that order so it leaves available quantity immediately.

Should I take part payment for Instagram orders?

Deposits work, provided you treat them as money owed rather than income. Fix your deposit percentage, hold period and refund rule in advance, state them in the quote, and keep the item reserved rather than sold until the balance clears.

Why doesn't my bank statement match my sales?

Rider fees you collected, deposits that straddle two months, payments into a personal account, cash to the rider, refunds and bank charges all break the tie. A statement records money movement, not sales, so you need a sales record to reconcile it against.

How do I stop overselling the same item on Instagram?

Separate physical stock from available to promise. Every hold and every unpaid order should reduce available quantity immediately, and holds should expire on a stated timer so items do not sit reserved for a customer who stopped replying.

Put a record where your DMs already are

Wayg connects Instagram and WhatsApp to the same set of records as your stock, your payments and your books, and it imports from Shopify and from the spreadsheets you already keep. An enquiry becomes an order, the order reserves the piece, the payment clears the balance, and the books update once rather than three times. Ask the Wayg Assistant what is reserved, what is unpaid and what sold this week.

Get started freeThe free plan needs no card.

Related reading: Why your stock never matches your records · How to close your books every month in under an hour · Why a profitable shop still runs out of cash

Sources: Good Order Inventory: Inventory management statistics (compiling NRF and Happy Returns 2024)