Skip to main content
Here’s the deal with paying Job Seekers on Guild. You can pay them out of your Guild wallet — top up the wallet (bank transfer or card), then debit it whenever you pay someone. This works, and a lot of employers run this way for small jobs. But the better path, especially for site contractors who pay daily and across multiple jobs, is direct debit. Link your bank account to Guild once, and after that, paying a Job Seeker is one tap that pulls money straight from your bank, no top-up step. Direct debit is the OPay surface that most hackathon teams won’t have working. It’s the differentiator. Here’s how it actually works.

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.”
Total wall-clock from “tap link bank” to “ready to use” is usually 5-10 minutes, dominated by the ₦50 transfer step.

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 is READY, 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.
The wallet path is fine for these. The dashboard automatically picks “pay from wallet” vs “pay via direct debit” based on which one is set up and which one has the balance. You don’t have to manage the switch yourself.
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.