The one-time setup
You’re going to set up an e-mandate — OPay’s term for a standing authorisation that lets us debit your bank with one API call. Six banks are supported today:
If your business banking is at one of these, you can link.
1
Open the link-bank flow
guild.com.ng/mandates. Tap Link a bank.Pick your bank from the dropdown. Enter your account number. We resolve the account against OPay’s name-lookup service to confirm it exists and pull the official account name. You confirm the name matches.2
OPay creates the mandate
We submit your account details to OPay’s mandate-create service. OPay returns a mandate ID and a confirmation reference.The mandate’s status is
PENDING_APPROVAL. We can’t debit it yet.3
Send the ₦50 confirmation transfer
OPay requires a ₦50 transfer from your bank app to a specific OPay account, with a specific reference string. This is the only way to prove that you (the account holder) are the one authorising the mandate.Our dashboard shows you the exact account number, bank, and reference to use. You leave Guild, open your bank app, do the ₦50 transfer with the reference.This step usually takes one to three minutes. Most people pause here because the bank app is in a different tab on their phone.
4
The MandateApproved webhook fires
OPay detects the ₦50 transfer and matches it to your pending mandate. They fire a
MandateApproved webhook to webhooks.guild.com.ng/opay.We verify the signature. Update the mandate status to APPROVED. Notify you by SMS and WhatsApp: “Bank linked. We’re warming it up. You’ll be able to use direct debit in a few minutes.”5
The MandateReady webhook fires
OPay does a final activation check (typically 2-5 minutes after
MandateApproved). They fire MandateReady. The mandate is now usable.SMS and WhatsApp again: “Access Bank ••••3911 is linked and ready. You can now pay Job Seekers directly from your bank.”Why the ₦50 transfer matters
Hold on — this is worth understanding 👀 If you’ve ever wondered why OPay’s direct debit is harder to set up than card payments, here’s the reason: a card can be linked from a tokenised charge that the recipient initiates. A bank mandate cannot. The only way to prove “the holder of account 0xx-xxx-3911 actually wants to authorise this mandate” is to make the holder initiate a transfer themselves, from their bank app. That’s the ₦50 confirmation. It’s the cheapest way to prove account control without going through a manual KYC + signature flow. The upside: once you’ve done this once, the bank is linked for any future debit. You don’t have to confirm again next month, or next year.Using the mandate
After the mandate isREADY, paying a Job Seeker is one tap.
In the application detail page on your dashboard, next to a COMPLETED application, you see Pay. You tap it. Pick the amount (auto-fills to the shift × daily-rate calculation). Confirm.
We trigger OPay to debit the mandate for the amount. OPay debits your bank. Webhook lands. Reconcile guard runs. Job Seeker’s wallet credits. Their phone buzzes.
End to end: under ten seconds.
What you can debit
Whatever’s in your bank account. OPay doesn’t enforce a per-mandate cap (some banks have their own limits, usually high — Access Bank’s mandate ceiling is ₦5M per debit, for example). We do enforce a few sanity checks:- A debit attempt is rejected if your account has insufficient funds. The webhook arrives as
charge_failed. We don’t credit anyone’s wallet. We notify you by SMS so you can top up the bank and retry. - A debit cannot exceed the daily-rate × shifts-completed for the application you’re paying. (This prevents bugs in the dashboard from causing a wrong-amount debit.)
- You can’t debit a mandate that’s not READY. The dashboard hides the Pay button until the mandate is fully activated.
Multiple mandates
You can link more than one bank if your business uses multiple accounts. Each appears in your mandates list. When you pay a Job Seeker, you pick the source bank from a dropdown — defaults to the most recently used. This is useful if, say, you keep your operational float in Access Bank and your reserve in First Bank. Most employers run with one mandate at v1.Pausing or cancelling a mandate
guild.com.ng/mandates. Tap a mandate. Pause stops debits but keeps the link active (resume any time). Cancel revokes the mandate entirely through OPay. To use the same bank again, you’d re-link from scratch — including a fresh ₦50 confirmation.
We recommend Pause for short stops, Cancel only when you mean it.
What costs you
Linking is free. The ₦50 you sent goes to OPay and is not refunded — it’s the cost of activating the mandate. Per-debit fees are determined by OPay. Currently zero on top of the wholesale NIBSS fee OPay already absorbs. We don’t add a Guild fee at v1.When direct debit isn’t the right answer
A few cases where you’d skip direct debit and pay from your Guild wallet instead:- You’re testing Guild with one job. Top up the wallet for ₦50,000, run the job, see how it feels.
- Your business banking isn’t at one of the six supported banks.
- You’re paying very small one-off amounts (a ₦500 commission, a ₦2,000 advance) and don’t want to involve your bank.
A direct debit attempt that fails (insufficient funds, account blocked) does not charge you. OPay rejects the call cleanly. Our reconcile guard never credits anyone’s wallet. You get a clear failure notification with the reason.
Next
Pay Job Seekers
Now that the bank is linked, here’s the full payment flow.
Escrow
Optional: pre-fund a job budget so funds release per-shift automatically.