Sogo Logo Developer
Get Started
RMB Purchase API

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.

buy-rmb.http
Request
Response
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"
  }
}
Live ₦/CNYReal-time exchange rate
Alipay, WeChat & BankDelivery methods
Same DaySettlement
2API endpoints

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.

Accepted by 1.3 billion+ users in China
Instant credit to recipient's Alipay balance
Fund Taobao, 1688, AliExpress sellers
Delivery: mobile number or email

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.

900 million+ active WeChat Pay users
Instant credit to recipient's WeChat wallet
Pay factories, agents, and freight companies
Nigerian and Chinese account types supported
Delivery: WeChat ID + receive QR code (required)

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.

Direct settlement to 50+ Chinese commercial banks
Same-day settlement for business orders
Ideal for heavy import payments and sourcing
Delivery: bank name, card number & account name

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.

1

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.

2

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.

3

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.

GET
/v1/rmb/buy/rates
Scope: rmb:read

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.

rates.http
Request
Response
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"
    }
  }
}
POST
/v1/rmb/buy
Scope: rmb:write  ·  Idempotency-Key required

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.

ParameterTypeRequiredDescription
channelstringrequiredPayment channel. Allowed: alipay, wechat, bank.
alipay_account_typestringconditionalRequired when channel is alipay. Allowed: nigerian, chinese.
wechat_account_typestringconditionalRequired when channel is wechat. Allowed: nigerian (Nigerian WeChat Pay account), chinese (Chinese supplier account).
rmb_amountnumericrequiredAmount to purchase in CNY (major units, e.g. 500 for ¥500).
qr_codefileconditionalRequired 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_namestringrequiredFull name of the recipient. Letters, spaces, hyphens, apostrophes, and full stops only.
recipient_identifierstringconditionalOptional 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_namestringconditionalRequired when channel is bank. Name of the Chinese bank.
recipient_bank_account_numberstringconditionalRequired when channel is bank. Bank account number (digits only).
descriptionstringrequiredPurpose or reference for this payment (e.g. invoice number, goods being purchased). Min 5, max 1,000 characters.
buy-rmb.http
Alipay
WeChat Pay
Response
PHP
Node
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.

transaction.completed

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.

transaction.cancelled

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.

transaction.refunded

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.

Live ₦/CNY rates, same-day settlement

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.