How it works
Create a user account
Register your user with Partna using Create Account. This creates a permanent account that can receive payments at any time.
Complete KYC
Your user must verify their identity before transacting. See Accounts and KYC for the full verification flow. Users only need to verify once.
Fetch a rate
Call Get Rate with
fromCurrency=NGN and toCurrency=USDT (or your desired fiat/crypto). Save the key from the response.Initiate the onramp
Call Onramp and Offramp with The response includes a bank account (
type: "fiatToCrypto". Include the rate key, amounts, currency pair, and the user’s crypto wallet address.accountName, accountNumber, bankName) where the user should send their NGN payment.User makes payment
The user transfers the specified NGN amount to the bank account returned in step 4. This can be done via bank transfer or any supported local payment method.
Example response (step 4)
Key parameters
| Parameter | Description |
|---|---|
type | Must be fiatToCrypto for onramp |
fromCurrency | The local currency the user is paying in (e.g., NGN) |
fromNetwork | The payment network for the local currency (e.g., naira, mobileMoney, mpesa) |
toCurrency | The crypto the user will receive (e.g., USDT, USDC, BTC) |
toNetwork | The blockchain network for delivery (e.g., tron, ethereum, solana) |
cryptoAddress | The user’s wallet address to receive crypto |
rateKey | The rate key from Get Rate |
rampReference | Your unique reference for this transaction (use for idempotency) |
fromAmount | The amount in local currency |
cancelPendingRampRequest | Set to true to cancel any existing pending request for this user. Default: false. |
expireAction | What happens if the rate expires: useCurrentRate (default) or deposit |
rampExpTime | Custom expiration time in seconds. Default: 1 hour. |
Handling pending requests
Each user can only have one active ramp request at a time. If you need to create a new request while one is pending, setcancelPendingRampRequest: true in your request body.