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

Headers

Name
Type
Description

Authorization*

String

"Bearer ${partner_secret_key}"

x-partner-id*

String

"pxxxxxx"

Request Body

Name
Type
Description

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

Keys
Description
Values

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

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?