- Virtual account crypto withdrawal — withdraw the balance of a PCX fiat virtual account as USDC, USDT, or another supported asset to an external wallet.
- Off-ramp (crypto → fiat) — the customer sends crypto to a PCX-generated wallet address; PCX converts it and disburses fiat to a registered beneficiary.
1. Virtual account crypto withdrawal
Withdraw from a PCX virtual account balance to an external crypto wallet.amount from the virtual account’s available balance and initiates the on-chain transfer to wallet_address. A virtual_account.withdrawal webhook fires once the transfer is submitted.
Supported assets and networks
Choose Polygon or Tron for lower network fees on smaller USDC/USDT amounts. Ethereum offers the widest wallet compatibility but carries higher gas costs.
2. Off-ramp (crypto → fiat)
The customer sends crypto to a PCX-generated deposit address. Once the on-chain transfer confirms, PCX converts the crypto to fiat and disburses to the beneficiary’s bank or mobile money account.Step 1 — Fetch the exchange rate
Fetch the rate in the off-ramp direction. ThefromCurrency is the fiat equivalent of the crypto asset (USDC → USD):
org_rate_id and rate (the value you will pass as client_rate).
Step 2 — Initiate the off-ramp
Step 3 — Handle the response
wallet_address, crypto_amount, and crypto_network to the customer. Once they send the exact amount to that address on-chain, PCX initiates the NGN bank transfer to the beneficiary automatically.
Rate validation
PCX validatesclient_rate against the current live rate. If the rate has drifted more than 0.5% since you fetched it, the request returns:
client_rate and org_rate_id. Do not reuse org_rate_id values across sessions. See Exchange Rates and Fees.
Track status
completed (fiat successfully paid to beneficiary), failed, canceled.
Use webhooks to receive payment.completed in real time instead of polling.