# PayBot > Send naira to any Nigerian bank account from an agent wallet. USDC on Solana in, naira out, via PAJ. ## Flow (PayBox) 1. use_service({ credential_id, url: "https://paybot-562g.onrender.com/prepare", method: "POST", body: { "bank": "GTBank", "accountNumber": "0123456789", "ngn": 5000, "expectedName": "Tunde Bakare" } }) Price: $0.01 over x402. Errors (bad account, name mismatch) return 422 and are not charged. 2. Show the user the response's "confirm" text: bank-verified name, bank, account number, naira and USDC. Wait for an explicit yes. 3. request_transfer({ credential_id: , chain: "solana:mainnet", to: pay.to, amount: pay.amount, token: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" }) Once. Within 15 minutes. Poll get_request with the same request_id; never call request_transfer again for this payout. 4. Check statusUrl until "status" is "COMPLETED": use_service({ credential_id, url: , method: "GET", mode: "probe" }) Probe mode is free and live. Plain web readers can show a cached, out-of-date status. "ERROR" can be temporary: keep checking, never pay again. ## How people ask "Send 5,000 naira to GTBank 0123456789, Tunde Bakare" -> bank: "GTBank", accountNumber: "0123456789", ngn: 5000, expectedName: "Tunde Bakare" Also common: "Pay Ada Okafor 20k on Opay 8012345678" (20k = 20000). ## Pay a Telegram user in USDC (PayBox) 1. use_service({ credential_id, url: "https://paybot-562g.onrender.com/telegram/resolve", method: "POST", body: { "username": "ada_okafor" } }) Price: $0.01 over x402. If they haven't connected a PayBox wallet to the PayBot Telegram bot: 404, not charged. 2. Show the user the response's "confirm" text plus the amount. Wait for an explicit yes. 3. request_transfer({ credential_id: , chain: "solana:mainnet", to: address, amount: , token: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" }) Once. Poll get_request with the same request_id until it is final. 4. use_service({ credential_id, url: "https://paybot-562g.onrender.com/telegram/notify", method: "POST", mode: "probe", body: { "username": "ada_okafor", "signature": , "note": "lunch" } }) Free. Tells them on Telegram that the money arrived. ## Free helpers - GET https://paybot-562g.onrender.com/banks?search=opay - GET https://paybot-562g.onrender.com/quote?ngn=5000 - GET https://paybot-562g.onrender.com/openapi.json ## Rules - Never pay without the user's yes to the bank-verified name. - Pay exactly pay.amount to pay.to. Nothing else. - One payment per payoutId. - The paying Solana wallet needs about 0.0021 SOL for network fees.