remit.paymentrequired.com

Nuri Remit • ClickPesa MCP Gateway

Send Tanzanian shillings to mobile money, merchants, and bank accounts. Pay with crypto or Lightning.

Send money

1. Single Unified Endpoint

Both standard AI Agent MCP (JSON-RPC 2.0) and plain developer HTTP JSON run on the exact same URL:

POST https://remit.paymentrequired.com/mcp

2. Architecture Flow

Agent / Client POST /mcp HTTP 402 Rails LN, USDC, EURC, BTC Payment Check watcher or L402 proof TIPS Payout Tigo, Airtel, TIPS

Mobile and merchant payouts are automatic after verified payment. Bank payouts accept USDC only and require manual approval after verified payment. After approval, sufficient float allows immediate payout; otherwise the order waits for float.

3. System Parameters & Limits

4. Active Inbound Crypto Rails

Pay once, then wait. Nobody types a transaction hash or preimage. get_order is read-only; it shows incomingPaymentVerified, and an operator recovery is labelled operator_recovery, never as a verified payment. A completed order never shows another payment QR.

5. Public Tools

Use the Send money form, or call these tools through MCP. get_payment returns the exact amount, address, and QR for an unpaid order, with automaticDetection.

route_price

Checks the price of an external x402 service; route_pay is paid over Lightning with a native L402 proof. Does not move funds.

route_pay

For agents with native L402 support: pay the returned Lightning invoice, then call again with Authorization: L402 :; we pay the external x402 service and return its response. Without a proof, only the invoice challenge is returned. Not detected automatically.

check_recipient

Check a Tanzanian mobile number before payment: recipient name, provider (M-Pesa, Tigo Pesa, Airtel, Halopesa), fee, and crypto price. Free. Always check the recipient first to avoid paying the wrong number. Bank: up to 21,000,000 TZS per transfer. Mobile money: up to 3,000,000 TZS per recipient phone number per transfer. Merchant/TanQR: up to 3,000,000 TZS per transfer. Available float is not a transaction limit; approved bank payouts can wait for float.

request_tzs

Request money from a Tanzanian mobile number. The owner receives a USSD prompt and approves with their mobile money PIN. Funds go to the ClickPesa account. Supports M-Pesa, Tigo Pesa, Airtel Money, and Halopesa. No funds move without approval. Bank: up to 21,000,000 TZS per transfer. Mobile money: up to 3,000,000 TZS per recipient phone number per transfer. Merchant/TanQR: up to 3,000,000 TZS per transfer. Available float is not a transaction limit; approved bank payouts can wait for float.

get_request

Check whether a money request was approved, is pending, or failed.

get_balance

Get available ClickPesa float and separate bank/mobile transaction limits. Float is not a transfer maximum; approved bank payouts may wait for liquidity.

get_rates

Get the current raw exchange rates used by the service: TZS per USD, TZS per EUR, and USD per BTC. Free.

list_banks

List supported Tanzanian banks with names and BIC codes (e.g. CRDB Bank: CORUTZTZ, NMB Bank: NMIBTZTZ, Absa: BARCTZTZ, Stanbic: SBICTZTX).

check_bank

Check a Tanzanian bank account before payment: account holder name, bank name, fee, and crypto prices. Free. Bank: up to 21,000,000 TZS per transfer. Mobile money: up to 3,000,000 TZS per recipient phone number per transfer. Merchant/TanQR: up to 3,000,000 TZS per transfer. Available float is not a transaction limit; approved bank payouts can wait for float.

list_lipa_providers

List supported Lipa Namba providers and their three-digit providerCode values (e.g. M-Pesa 503, Airtel 504, Mixx 501, NMB 016, CRDB 003).

check_lipa

Check a Lipa Namba (+ providerCode) or TanQR code before payment: merchant name, fees, and crypto prices. Free. Bank: up to 21,000,000 TZS per transfer. Mobile money: up to 3,000,000 TZS per recipient phone number per transfer. Merchant/TanQR: up to 3,000,000 TZS per transfer. Available float is not a transaction limit; approved bank payouts can wait for float.

quote_tzs

Get a price without a mobile number. Free. Use check_recipient to confirm the recipient name. Bank: up to 21,000,000 TZS per transfer. Mobile money: up to 3,000,000 TZS per recipient phone number per transfer. Merchant/TanQR: up to 3,000,000 TZS per transfer. Available float is not a transaction limit; approved bank payouts can wait for float.

send_tzs

Send Tanzanian shillings to mobile money, a bank account, Lipa Namba, or TanQR. The first call returns a payment request (HTTP 402) with an orderId, the recipient name and the offered payment methods; each offer states whether automaticDetection is true. People pay once from get_payment and wait; no transaction hash or preimage is typed. Agents with native L402 or x402 support may retry send_tzs with the same orderId and amountTZS plus the payment proof header (Authorization: L402 : or PAYMENT-SIGNATURE); a retry never creates a new order and never re-bills a paid order. Mobile and merchant payouts are automatic after verified payment. Bank payouts accept USDC only and require manual approval after verified payment; once approved, sufficient float allows immediate payout, otherwise the order waits for float. Bank: up to 21,000,000 TZS per transfer. Mobile money: up to 3,000,000 TZS per recipient phone number per transfer. Merchant/TanQR: up to 3,000,000 TZS per transfer. Available float is not a transaction limit; approved bank payouts can wait for float.

get_payment

Get the exact payment amount, address and QR for an existing unpaid order. No payment is sent. Show a QR to a person only when the response has automaticDetection: true; then pay once and wait, no proof is typed. EVM QR encodes an ERC-20 transfer on the correct chain; Bitcoin uses BIP21. Lightning returns an invoice QR only when this order's invoice has automatic settlement detection; otherwise the Lightning request is refused. Paid, recovered or expired orders never return payment details.

get_order

Check order status, including payout delivery or pending bank approval. Read-only: it never confirms a payment by itself. incomingPaymentVerified states whether the service verified the incoming payment; an operator_recovery payout is shown as such, not as a verified payment. Free.

6. Quickstart (cURL)

# 1. Verify recipient name, carrier, and preview crypto quote
curl -X POST https://remit.paymentrequired.com/mcp   -H "Content-Type: application/json"   -d '{"tool":"check_recipient","amountTZS":5000,"phone":"+255656196901"}'

# 2. Check live liquidity & swap limit
curl -X POST https://remit.paymentrequired.com/mcp   -H "Content-Type: application/json"   -d '{"tool":"get_balance"}'

# 3. Create payment order (returns HTTP 402 challenge across all rails)
curl -X POST https://remit.paymentrequired.com/mcp   -H "Content-Type: application/json"   -d '{"tool":"send_tzs","amountTZS":5000,"phone":"+255656196901"}'