Create Buy Order Endpoint
This is used to initiate a new buy order. The life cycle of the order is encapsulated in three (3) events as seen below
POST
https://exchanger-api.fuspay.finance/api/v1/no-auth/Axis/BuyUsdtWithFiat/
All events will be communicated to the callback registered in the post request.
Event body will be updated as buy order progresses through the following phases:
a. event.buy.init (buy order started, awaiting fiat payment)
b. event.buy.received.fiat (fiat payment received)
c. event.buy.credited.crypto (transaction completed)
d. event.buy.error (error occurred)
Event body is signed with sha 512. sha512(body, public_key+secret_key)
The diagram below shows the complete flow of a buy order

Axis does not handle third party on-ramp orders. i.e . The name of the user, the payer bank account, has to pass 66% name match with the user's KYC name on Axis. All transactions that fail this test will be pending. See the "Pending Transactions" side bar for more information
Headers
Authorization*
String
"Bearer ${partner_secret_key}"
x-partner-id*
String
"pxxxxxx"
Request Body
partner_order_id*
String
id of your order
fiat_amount*
String
the FIAT amount to be paid by the buyer
chain*
String
e.g. "usdt-trc20", "usdc-matic", "eusd-mob", "usdt-pol".
buyer_crypto_address*
STring
The buyer's crypto address
partner_callback_url*
STring
your partner callback URL
fiat_currency*
String
the fiat currency of the crypto-fiat pair eg. NGN, KHS, GHS
buyer_phone*
String
The is the phone number of the buyer. This is collected for KYC purpose
buyer_email*
String
This is an email representing the buyer. Also for KYC
first_name*
String
The buyer's first name
last_name*
String
Seller's last name
intrapay_merchant_id*
String
Intrapay Merchant ID is a unique identification number gotten by signing up and setting up your wallet on Intrapay.
markup_fee*
String
This is the percentage charge that would be applied in the transaction with the merchant. It is paid into your intrapay wallet.
refund_bank*
String
this is bank code where the fiat will be refunded incase of an incomplete transaction
refund_account*
String
this is account number where the fiat will be refunded incase of an incomplete transaction
refund_fullname*
String
this is account name of the user where the refund will be sent to
Sample Request Body
{
"partner_order_id": "LIVE-TXN-TEST-007123",
"fiat_currency": "KHS",
"buyer_crypto_address": "0x8de6e4fc94464a74ee153ef159b5b636678aa57f",
"chain": "usdt-trc20",
"fiat_amount": "3000",
"partner_callback_url": "https://webhook.site/f63c3262-55f3-462a-8ce1-49ea28c47038",
"buyer_phone": "11111111",
"buyer_email": "[email protected]",
"first_name": "",
"last_name": "",
"intrapay_merchant_id":"",
"markup_fee":"",
"refund_bank": "",
"refund_account": "",
"refund_fullname": ""
}
Response {
"message":"OK"
}
The actual response (Event Body) is sent to your callback URL. we send to your callback URL to make responses fast.
BUY EVENTS
{
"event_name": "event.buy.init",
"partner_order_id": "BETA-TEST-FUSPAY-0001",
"fuspay_order_ref": "BETA-TEST-FUSPAY-0001_p176517",
"fiat_amount_to_pay": 100,
"crypto_amount_to_receive": 10,
"exchange_rate": 10,
"pair": "NGN/USDT",
"fiat_currency": "NGN",
"buyer_crypto_address": "TBqNaN3CvyuTmnMe55oRCzadZ1iAxYHrKr",
"chain": "usdt-trc20",
"fiat_payment_status": "PENDING",
"crypto_payment_status": "PENDING",
"payer_into_account": {
"account_name": "Paypoint NA",
"account_number": "9628586981",
"bank_name": "Providus Bank"
},
"payment_link": null,
"crypto_txn_hash": null,
"partner_callback_url": "https://webhook.site/7659f3d1-e7a1-4671-88c8-949e6850dbb7",
"transactional_kyc": {
"email": "",
"phone": "",
"first_name": "",
"last_name": ""
},
"signature": "6155296856767b99b28f3d11bdc3da770c0b1bb42059af6c774a42e459965359f1c5290b627acf09ce686d16cc42ed4"
}
Event Body Description
event_name
This is the name of the buy event
event buy init, event buy received fiat, event buy credited crypto.
partner_order_id
Id of order generated on partner's system
fuspay_order_ref
Reference number of order generated on Fuspay system
fiat_amount_to_pay
The equivalent fiat amount user would pay based on exchange rate
crypto_amount_to_receive
This is the amount of cryptocurrency to be received
exchange_rate
This is the exchange rate
pair
fiat_currency
This is the amount of fiat currency to be bought
buyer_crypto_address
The buyer's crypto address
chain
e.g. usdt-trc20, usdc-matic
fiat_payment_status
This is the fiat payment status.
Pending (payment has not been fully processed yet) or Paid (payment is fully processed and successful)
crypto_payment_status
This is the crypto payment status.
Started (payment is in process), Completed (payment is fully processed and completed)
account_name
This is the name of the account holder
account_number
This is the bank account number or phone number if MOMO
bank_name
The name of the bank
Email of the buyer
phone
Phone number of the buyer
first_name
First name of the buyer
last_name
Last name of the buyer
payment_link
This is the payment link given to the buyer
available for MOMO payments
crypto_txn_hash
This is the crypto transaction has given to the buyer
the hash of your crypto payment
partner_callback_url
The partner Id returned from the onboarding endpoint
signature
This is the buyer's signature
sha512 signed with public key + secret key
Last updated
Was this helpful?