Buy Chinese Yuan
with Naira - Fund
Alipay, WeChat & Bank
instantly
Enable your users to purchase Chinese Yuan (RMB/CNY) at live market rates and fund Alipay, WeChat Pay, or Chinese bank accounts. Built for Nigerian import traders, cross-border businesses, and international payment platforms.
POST https://api.sogo.africa/v1/rmb/buy Authorization: Bearer sogo_sk_live_•••••••••••••••• Content-Type: multipart/form-data Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000 # Alipay orders use multipart/form-data, qr_code is required channel=alipay alipay_account_type=nigerian rmb_amount=1000 qr_code=<recipient's Alipay receive QR code image> recipient_name=Zhang Wei # recipient_identifier is optional for alipay/wechat when qr_code is provided description=Trade payment - goods import
201 Created 134ms { "message": "Your RMB order has been submitted. Your wallet has been debited. You will be notified when the order is processed.", "data": { "id": "8a67d022-f94b-4654-8c88-2ffba8de9dbb", "reference": "SBXRMB24J4P21F", "channel": "alipay", "alipay_account_type": "nigerian", "wechat_account_type": null, "rmb_amount": 1000, "ngn_amount": { "raw": 196500.0, "formatted": "NGN 196,500.00", "currency": "NGN" }, "exchange_rate": 196.5, "recipient_name": "Zhang Wei", "recipient_identifier": "[email protected]", "description": "Trade payment - goods import", "status": "processing", "created_at": "2026-05-24T10:30:00.000000Z" } }
Fund Alipay, WeChat Pay, and Chinese Bank Accounts
Your users select their preferred delivery method. Naira is debited, Chinese Yuan lands in the recipient's account - no manual FX steps required.
Alipay
Fund any Alipay account using the recipient's registered mobile number or email. Widely used by Chinese manufacturers, wholesalers, and platforms like Taobao and 1688.
WeChat Pay
Transfer RMB directly to any WeChat Pay wallet. The dominant payment method for Chinese businesses, freelancers, and trade partners across manufacturing and logistics.
Chinese Bank Accounts
Transfer RMB directly to any Chinese bank account (Industrial and Commercial Bank of China, China Construction Bank, Agricultural Bank of China, and others). Perfect for high-value supplier settlements.
Who benefits from the RMB Purchase API
Nigeria's import trade with China is worth billions annually. The RMB API makes it programmable.
Import Trade Platforms
Let importers pay Chinese suppliers directly from your platform. Replace expensive bank wire transfers with instant, competitive-rate RMB purchases.
Freight & Logistics Companies
Enable freight forwarders to pay Chinese agents, shipping companies, and customs brokers in RMB without maintaining a foreign currency account.
Cross-Border B2B Payments
Power a cross-border payment platform for Nigerian SMEs that source goods from China. Offer better rates and faster settlement than traditional bank channels.
E-Commerce Sourcing Apps
Let Nigerian e-commerce sellers pay for goods on Taobao, 1688, and DHgate without leaving your app. Fully integrated purchase-to-payment workflow.
Student Payment Services
Enable Nigerian students in China to receive RMB from family back home via Alipay or WeChat Pay - faster and cheaper than international bank remittance.
Fintech Super-Apps
Add RMB purchase as a feature in your Nigerian fintech app. Your users get competitive exchange rates and instant delivery without leaving your platform.
From Naira to Chinese Yuan in three calls
Two endpoints cover the complete RMB purchase workflow. Fetch the current rate, then place the order.
Fetch live rates
Call GET /v1/rmb/buy/rates to get the current NGN-to-CNY exchange rate. Present this to your user alongside the total Naira cost for their desired amount.
Place the order
Call POST /v1/rmb/buy with the CNY amount, delivery method (Alipay, WeChat Pay, or Bank Account), and recipient details. Naira is debited from your wallet immediately.
Webhook confirmation
Sogo fires transaction.completed when the RMB has been delivered to the recipient's Alipay, WeChat Pay, or bank account. Show your user a real-time status update.
RMB Purchase API endpoints
Two focused endpoints cover live rate lookup and order placement for RMB purchases.
Returns the current live NGN-to-CNY exchange rate and associated fee structure. The rate includes Sogo's margin and reflects real-time FX conditions. Always fetch fresh rates immediately before quoting a price to your user - rates change with the market.
No parameters required. The response includes both the buy rate and any applicable percentage fees.
GET https://api.sogo.africa/v1/rmb/buy/rates Authorization: Bearer sogo_sk_live_••••••••••••••••
200 OK 58ms { "data": { "channels": [ { "channel": "alipay", "name": "Alipay", "is_available": true, "account_types": [ { "type": "nigerian", "name": "Nigerian Alipay Account", "is_available": true, "rates": [ { "min_rmb": 100, "max_rmb": 5000, "ngn_per_rmb": 196.5 } ] }, { "type": "chinese", "name": "Chinese Alipay Account", "is_available": true, "rates": [ { "min_rmb": 100, "max_rmb": 5000, "ngn_per_rmb": 198.5 } ] } ] }, { "channel": "wechat", "name": "WeChat Pay", "is_available": true, "account_types": [ { "type": "nigerian", "name": "Nigerian WeChat Pay Account", "is_available": true, "rates": [ { "min_rmb": 100, "max_rmb": 5000, "ngn_per_rmb": 197.5 } ] }, { "type": "chinese", "name": "Chinese WeChat Pay Account", "is_available": true, "rates": [ { "min_rmb": 100, "max_rmb": 5000, "ngn_per_rmb": 199.5 } ] } ] }, { "channel": "bank", "name": "Chinese Bank Account", "is_available": true, "rates": [ { "min_rmb": 100, "max_rmb": 5000, "ngn_per_rmb": 195.5 } ] } ], "limits": { "min_rmb": 100.0, "max_rmb": 100000.0, "currency": "CNY" }, "endpoints": { "buy": "POST /v1/rmb/buy" } } }
Places an RMB purchase order. The Naira equivalent (including the fee) is debited from your wallet immediately at the rate quoted in /v1/rmb/buy/rates. The order enters processing status and the CNY is delivered to the recipient's Alipay, WeChat Pay, or bank account. Completion is confirmed by webhook. Alipay and WeChat Pay orders require a qr_code image (the recipient's receive QR code) sent via multipart/form-data.
| Parameter | Type | Required | Description |
|---|---|---|---|
| channel | string | required | Payment channel. Allowed: alipay, wechat, bank. |
| alipay_account_type | string | conditional | Required when channel is alipay. Allowed: nigerian, chinese. |
| wechat_account_type | string | conditional | Required when channel is wechat. Allowed: nigerian (Nigerian WeChat Pay account), chinese (Chinese supplier account). |
| rmb_amount | numeric | required | Amount to purchase in CNY (major units, e.g. 500 for ¥500). |
| qr_code | file | conditional | Required when channel is alipay or wechat. Upload the recipient's receive QR code. Not applicable for bank. JPEG, PNG, or WebP, max 2 MB. Use multipart/form-data. |
| recipient_name | string | required | Full name of the recipient. Letters, spaces, hyphens, apostrophes, and full stops only. |
| recipient_identifier | string | conditional | Optional for alipay and wechat when a qr_code is supplied (the QR code is the primary routing instrument). Helps the admin identify the account but is not required. Required for bank - use the bank account number. |
| recipient_bank_name | string | conditional | Required when channel is bank. Name of the Chinese bank. |
| recipient_bank_account_number | string | conditional | Required when channel is bank. Bank account number (digits only). |
| description | string | required | Purpose or reference for this payment (e.g. invoice number, goods being purchased). Min 5, max 1,000 characters. |
POST https://api.sogo.africa/v1/rmb/buy Authorization: Bearer sogo_sk_live_•••••••••••••••• Content-Type: multipart/form-data Idempotency-Key: 7c9e6679-7425-40de-944b-e07fc1f90ae7 # Alipay orders: use multipart/form-data, qr_code is required # recipient_identifier is optional when qr_code is provided channel=alipay alipay_account_type=nigerian rmb_amount=1000 qr_code=<recipient's Alipay receive QR code image> recipient_name=Zhang Wei recipient_identifier=+8613812345678 # optional, helps admin identify the account description=Trade payment - fabric import
POST https://api.sogo.africa/v1/rmb/buy Authorization: Bearer sogo_sk_live_•••••••••••••••• Content-Type: multipart/form-data Idempotency-Key: 3b4a1f82-d81c-47e3-b9a3-557744330001 # WeChat Pay orders: use multipart/form-data, qr_code is required # recipient_identifier is optional when qr_code is provided channel=wechat wechat_account_type=nigerian rmb_amount=500 qr_code=<recipient's WeChat Pay receive QR code image> recipient_name=Li Fang recipient_identifier=lifang_wx # optional, helps admin identify the account description=Freight agent payment - Guangzhou logistics
201 Created 134ms { "message": "Your RMB order has been submitted. Your wallet has been debited. You will be notified when the order is processed.", "data": { "id": "8a67d022-f94b-4654-8c88-2ffba8de9dbb", "reference": "SBXRMB24J4P21F", "channel": "alipay", "alipay_account_type": "nigerian", "wechat_account_type": null, "rmb_amount": 1000, "ngn_amount": { "raw": 196500.0, "formatted": "NGN 196,500.00", "currency": "NGN" }, "exchange_rate": 196.5, "recipient_name": "Zhang Wei", "recipient_identifier": "+8613812345678", "description": "Trade payment - fabric import", "status": "processing", "created_at": "2026-05-24T10:30:00.000000Z" } }
// PHP - purchase ¥1,000 CNY via Alipay (multipart/form-data, QR code required for Alipay and WeChat Pay) // For WeChat Pay: set channel='wechat' and replace alipay_account_type with wechat_account_type ('nigerian' or 'chinese') $client = new \GuzzleHttp\Client; $multipart = [ ['name' => 'channel', 'contents' => 'alipay'], ['name' => 'alipay_account_type', 'contents' => 'nigerian'], ['name' => 'rmb_amount', 'contents' => (string)(float)$request->rmb_amount], // Required for Alipay and WeChat Pay: the recipient's receive QR code image ['name' => 'qr_code', 'contents' => fopen($request->qrCodePath, 'r'), 'filename' => 'qr.jpg'], ['name' => 'recipient_name', 'contents' => $request->recipient_name], ['name' => 'description', 'contents' => $request->description], ]; // recipient_identifier is optional for alipay/wechat when qr_code is supplied if (!empty($request->recipient_identifier)) { $multipart[] = ['name' => 'recipient_identifier', 'contents' => $request->recipient_identifier]; } $response = $client->post('https://api.sogo.africa/v1/rmb/buy', [ 'headers' => [ 'Authorization' => 'Bearer ' . getenv('SOGO_SECRET_KEY'), 'Idempotency-Key' => \Ramsey\Uuid\Uuid::uuid4()->toString(), ], 'multipart' => $multipart, ]); $data = json_decode($response->getBody(), true)['data']; // Save $data['reference'] to track the webhook
import { randomUUID } from 'crypto'; import { readFileSync } from 'fs'; // Alipay and WeChat Pay orders require multipart/form-data with a qr_code image // For WeChat Pay: set channel='wechat' and use wechat_account_type ('nigerian' or 'chinese') instead const form = new FormData(); form.append('channel', 'alipay'); form.append('alipay_account_type', 'nigerian'); form.append('rmb_amount', String(req.body.rmbAmount)); // Required for Alipay and WeChat Pay: the recipient's receive QR code image form.append('qr_code', new Blob([readFileSync(req.file.path)], { type: 'image/jpeg' }), 'qr.jpg'); form.append('recipient_name', req.body.recipientName); // recipient_identifier is optional for alipay/wechat when qr_code is supplied if (req.body.recipientIdentifier) form.append('recipient_identifier', req.body.recipientIdentifier); form.append('description', req.body.description); const res = await fetch('https://api.sogo.africa/v1/rmb/buy', { method: 'POST', headers: { Authorization: `Bearer ${process.env.SOGO_SECRET_KEY}`, 'Idempotency-Key': randomUUID(), }, body: form, }); const { data } = await res.json(); // Persist data.reference for webhook matching
Real-time RMB delivery notifications
Sogo fires a signed webhook event to your endpoint when the RMB delivery status changes. Your webhook handler should respond 200 immediately and process asynchronously.
The RMB amount has been successfully delivered to the recipient's Alipay, WeChat Pay, or bank account. The payload confirms the exact CNY delivered, the NGN charged, and the rate locked in at the time of execution.
The RMB delivery could not be completed (e.g. invalid recipient account, account not found, or system-level error) and the transaction has been cancelled. This status change dispatches the transaction.cancelled webhook.
Following a cancellation or delivery failure, Sogo automatically refunds the full Naira equivalent amount back to your Naira wallet balance. Sogo dispatches a transaction.refunded webhook when the refund completes.
Make Nigeria-China trade payments instant
Get your API keys and start testing RMB purchases in sandbox - no real Naira, no real CNY. Go live when you're ready.