Skip to main content
On a workspace with Paystack connected, a pay link can open straight onto a bank account instead of a card form. The client copies the account number into their banking app, sends the exact amount, and Paystack watches for it: when the transfer lands, Paystack tells DMLY and the invoice settles on its own, exactly as a card payment would. Paystack calls this Pay with Transfer, and it is available in Nigeria and Ghana only. This page covers the transfer route. The general rules (how a pay link is minted, what each payment status means, what a missed webhook looks like) are the same for every gateway and live in Connect a payment gateway. If you would rather clients pay into your own bank account and confirm each transfer yourself, skip to Use your own bank account instead.

Turn it on

Two of the three steps happen in the Paystack dashboard, because Paystack decides which payment methods its checkout offers. DMLY only decides which of those a given link is allowed to use.
1

Tick Bank Transfer in Paystack

In the Paystack dashboard, go to Settings → Preferences → Accept payments via and tick Bank Transfer. It is a self-service checkbox and it applies to your whole Paystack account: once it is on, every Paystack checkout offers transfer alongside card. Untick it later and every transfer-only link from DMLY stops working, so leave it on.
2

Request a Trading Name

Still in Paystack, go to Settings → Preferences → Virtual Accounts and request a Trading Name. Until Paystack approves one, the account your client transfers to is named PAYSTACK CHECKOUT, which is confusing for someone expecting to pay your business. Approval takes time, so ask early; transfers work either way.
3

Pick Bank transfer only on the step

In DMLY, open the flow in the builder and select a Request Payment or Send Payment Link step (both sit in the Finance group, and both carry the same picker). Set Payment method to Bank transfer only. The option is only offered when the step will mint on Paystack, so if your default gateway is something else, pick Paystack under Gateway first. Set Currency to the one your Paystack account settles in: NGN in Nigeria, GHS in Ghana.Leave Payment method on Any enabled method and the link opens Paystack’s normal checkout, where the client chooses between card and transfer. Bank transfer only removes the choice and opens the page on the account details directly.
The picker lives on those two automation steps only. An invoice’s own Payment link & QR, the Request payment action in the inbox and a booking’s payment link all open Paystack’s normal checkout. Once Bank Transfer is ticked the client can choose Transfer there too; they are simply not held to it.
The template library ships this wired up as Collect a deposit by bank transfer: it fires when an appointment is booked and sends the deposit as a transfer-only link. Install it from Start from a template, then set the deposit amount and currency.

What the client sees

On WhatsApp the step sends your Message (or, if you leave it blank, a short line offering a secure link to pay the amount by bank transfer) with a Pay by transfer button; rename it under Button text if you like. Tapping the button opens a Paystack page that already shows the bank name, the account number and the amount, each with a copy button. The client switches to their banking app, pastes the details, sends the money and comes back. The page confirms the payment within seconds of the transfer landing, and the invoice in DMLY flips to Paid at the same moment. Under Finance → Payments the payment shows its method as Bank transfer. Three things about that account matter, and they are worth telling a client who has not paid this way before:
  • It exists for this one payment. Paystack issues a fresh account number per transaction. A client who saves it and sends a later bill to the same number is paying an account that no longer exists, and that money is refunded to them.
  • It expires 30 minutes after the page is opened. The clock starts when the client opens the link, not when you send it, so the link can sit in the thread until they are ready. A transfer that arrives after the window is refunded, and the client needs a fresh link; for an invoice, share its pay link again and it is re-minted for whatever is still owed.
  • The amount must match exactly. Paystack accepts the amount on the page and nothing else.

Wrong amount, late or duplicate

Paystack accepts a transfer only when it matches the amount on the page exactly and arrives before the account expires. Anything else (short, over, late, or a second transfer to an account that has already been paid) is refunded to the sender automatically, within 24 hours. The client learns this on the page itself: a message that the amount was wrong and a refund is on its way, and a Retry button that lets them try again on the same page. Nothing changes in DMLY when that happens. The payment stays Pending, the invoice stays unpaid until an exact transfer lands, and no partial amount is recorded, so there is nothing for you to reconcile or refund. If the client insists they paid, the money is on its way back to them; it is not sitting with you or with Paystack.

Use your own bank account instead

Not every business can take Paystack transfers. Your Paystack account may still be under review, you may be outside Nigeria and Ghana, or you may simply want the money landing straight in your own account. For that, DMLY sends your bank details in the chat and lets you confirm each transfer yourself. This is the manual route: nothing confirms the money except you.
1

Save your bank details

Go to Finance → Settings → Gateways and fill in Bank account for manual transfers: switch it on, then enter Bank name, Account number and Account name. Instructions is optional and is added to the end of every message, for example how long you hold a slot while waiting. Save. No gateway needs to be connected for this to work.
2

Pick Bank details in chat on the step

On a Request Payment or Send Payment Link step, set Payment method to Bank details in chat (manual). Gateway can stay empty.
3

The client gets your details and an I've paid button

The message shows the amount, your bank, the account number on a line of its own so it can be long-pressed and copied, the account name, and a reference beginning BT- for the client to quote on the transfer. Below it is an I’ve paid button (rename it under Button text). The flow waits there. When the client taps the button, or replies paid, DMLY thanks them, says you will confirm shortly, and moves on.
4

Confirm or reject under Finance → Payments

The payment appears under Finance → Payments as Awaiting transfer, changing to Customer says paid once the client taps the button, and your team gets a Transfer claimed notification. Find the reference on your bank statement, then open the row’s menu and choose Confirm transfer or Reject transfer. Both need the same permission as recording a payment.Confirm transfer marks the payment Succeeded, settles the invoice and fires the Payment succeeded trigger, so the client gets the same receipt and follow-ups as any other payment. Reject transfer marks it Failed and leaves the invoice open; add a note for your own records, then message the client or send a fresh request.
Never record the same transfer twice. Confirming under Finance → Payments is the recording. If you also use Record payment on the invoice for the same money, the invoice adds up both and the client shows as having paid twice.
For invoices there is a ready-made flow: Send bank details for a new invoice fires on Invoice sent and messages your account details for the amount due, with the I’ve paid button. Install it from Start from a template.

When something looks wrong

Three things to check, in order. Did they pay within 30 minutes of opening the page? A later transfer is refunded. Did they send the exact amount? Anything else is refunded, and the page told them so with a Retry button. Then look under Transactions in the Paystack dashboard: a successful transfer appears there within seconds, and if it is there but not in DMLY you have a webhook problem, covered in What a failed webhook means.Whatever the cause, don’t record the payment by hand while you wait. If the transfer did succeed, the webhook will record it, and the client would then show as having paid twice.
That is the name Paystack puts on every checkout account until you have an approved Trading Name. Request one under Settings → Preferences → Virtual Accounts in the Paystack dashboard. Nothing in DMLY changes it, and the money reaches your Paystack balance either way; only the name the client sees is affected.

Payments and gateways

Connect Paystack, pay links, payment statuses and what a failed webhook means.

Invoices

Send an invoice and share its pay link on WhatsApp.

Sell on WhatsApp

The Request Payment step end to end, from cart to cash.

Finance settings

Default currency, due days, numbering and the Gateways tab.