Webhook Details

Introduction

The notify payloads AlchemyPay will be posted to the callbackUrl when on/off ramp

HTTP method

  • POST merchant-defined api
  • Content-Type: application/json

On-ramp Callback

ElementData TypeExplanationRemarks
appIdstringpartner unique ID, once a merchant has been on-boarded with Alchemy Pay, the merchant will be provided with the credentials with appId and appSecret
orderNostringAlchemy Pay Order ID
emailstringend user's email
cryptostringcrypto type
cryptoPricestringcrypto price
cryptoQuantitystringcrypto amount
payTypestringfiat payment method
fiatstringfiat type
amountstringfiat amount
payTimestringfiat payment time
networkstringcrypto network
addressstringcrypto address
txTimestringcrypto received time
txHashstringcrypto hash
statusstringOrder status:PAY_FAIL、PAY_SUCCESS、FINISHED
messagestringfait payment failed cause
merchantOrderNostringmerchant order ID
networkFeestringcrypto network feeCount as USD
rampFeestringramp fee
signaturestringcallback signature, the generated signature string is: getMersign(appId,appSecret, appId+orderNo+crypto+network+address)
#getMersign is the sign function for Initiate API,the sign method can refer here
fiatInUSDstringfiat amount(count in USD)Returned if status is FINISHED.
rampFeeInUSDstringservice charge(count in USD)Returned if status is FINISHED.
cryptoNetworkFeestringpriced counted on purchased tokensReturned if status is FINISHED.
networkFeeInUSDstringNetwork fee (priced in USD), calculated as cryptoNetworkFee and priced in USDReturned if status is FINISHED.
cryptoAmountInUSDTstringThe token received by user (priced in USDT)Returned if status is FINISHED.
rebateFiatAmountstringCommission amount, valued in fiat currency.
rebateUsdAmountstringCommission amount, valued in USD.

The following parameters need to be configured for the push. If you have any requirements, please contact us.

ElementDate TypeRemarks
createTimestringOrder creation time in the format of YYYY-MM-DD, HH:MM:SS, e.g. 2021-11-25 10:00:00
rampFeeUnitstringUnit of Ramp fee, such as USD, ETH
tokenAddressstringContract address of the token returned when purchasing; if it is a native chain coin without a contract address, it is empty
alpha2stringISO 3166-1 two-letter country code, such as US/JP, etc.

Note: For INR local payments, there is no callback upon completion of fiat payment.

On-ramp Payload sample

# PAY_SUCCESS
{
	"payTime": "2024-03-08 16:44:55",
	"txTime": "",
	"signature": "8f531563063e******fsf0f2ba147352dc56f",
	"networkFee": "",
	"rebateFiatAmount": "",
	"network": "TRX",
	"cryptoPrice": "1673.01240000",
	"payType": "QRIS",
	"rampFee": "0.00000000",
	"appId": "XXXXXXX",
	"fiat": "IDR",
	"newSignature": "ukoP+9tFT1Bd******ZF/3FZP7wNjSL3mY=",
	"txHash": "",
	"email": "[email protected]",
	"rampFeeInUSD": "0.00",
	"amount": "65000.00000000",
	"orderNo": "acv121******s603104256",
	"address": "TWhWAYBC25*****afYoahA9oS",
	"rebateUsdAmount": "",
	"message": "",
	"merchantOrderNo": "1ac******8sd3",
	"crypto": "USDT",
	"rampFeeUnit": "IDR",
	"cryptoQuantity": "37.77209300",
	"status": "PAY_SUCCESS"
}
# FINISHED
{
	"payTime": "2024-03-08 16:44:55",
	"txTime": "2024-03-08 16:47:03",
	"signature": "8f53******352dc56f",
	"networkFee": "15593.49991193",
	"rebateFiatAmount": "",
	"fiatInUSD": "41.68",
	"network": "TRX",
	"cryptoPrice": "16763.01240000",
	"payType": "QRIS",
	"rampFee": "0.00000000",
	"appId": "******",
	"fiat": "IDR",
	"newSignature": "inrA******8O3NpmsJU=",
	"txHash": "84b69e4e1d******0e39e90c0911",
	"email": "norh******[email protected]",
	"rampFeeInUSD": "0",
	"amount": "650000.00000000",
	"orderNo": "1215580630603104256",
	"address": "TWh******oS",
	"cryptoNetworkFee": "3.9",
	"networkFeeInUSD": "3.9",
	"cryptoAmountInUSDT": "37.772093",
	"rebateUsdAmount": "",
	"message": "",
	"merchantOrderNo": "112******3",
	"crypto": "USDT",
	"rampFeeUnit": "IDR",
	"cryptoQuantity": "37.77209300",
	"status": "FINISHED"
}

On-ramp callback status

StatusDescription
PAY_SUCCESSFiat payment success
PAY_FAILFiat payment fail
FINISHEDTransferred token, order complete

PayType list:https://alchemypay.notion.site/4a5f82dba31f4832b482a6a31cb48d57?v=778c3773e845406398e5149b2be9156c

Off-ramp Callback

ElementData TypeRemark
orderNostringAlchemy Pay Order ID
addressstringOrder's crypto recipient address
payTimestringThe time when ACH starts to transfer fiat to the user's account
completeTimestringThe time when this order receives the cryptos
merchantOrderNostringMerchant order No
cryptostringCrypto name
networkstringNetwork of crypto
cryptoPricestringCrypto price in USD
cryptoAmountstringOrder's crypto amount
fiatAmountstringThe fiat amount
appIdstringappID
fiatstringfiat type
txHashstringToken transferred txHash
emailstringUser's email
signaturestringcallback signature, the generated signature string is: getMersign(appId,appSecret, orderNo+crypto+network+address)
#getMersign is the sign function for Initiate API
statusstringOrder Status
orderAddressstringUrl to the order detail page
cryptoacturalAmountstringThe actual received crypto amount
rampfeestringRamp fee, based on fiat type
receiptTimestringFiat arrived time
paymentTypestringcard: transfer to the user's card
account: transfer to the user's account
namestringName of the card/account
cardstringCard number: display 6-digit head and 4-digit tail
121321*1231
accountstringAccount number: display 4-digit tail
*****1231
failReasonstringFail reason

Off-ramp Payload sample

{
  "orderNo": "1080106145537236992", 
  "address": "dev03dc84dbfeb74853aa91154efa9b7a13", // wallet address user need to transfer
  "payTime": "2023-02-28 20:44:46", // transfer fiat start time
  "completeTime": "2023-02-28 20:41:08", // block confirm time
  "merchantOrderNo": "kvhl6zvvrg", 
  "crypto": "USDT",
  "network": "TRX", 
  "cryptoPrice": "1.0000000000", // fiat
  "cryptoAmount": "100.0000000000",
  "fiatAmount": "100.0000000000", //fiat amount user will receive
  "appId": "ahzxh0klegv1fzol",
  "fiat": "USD", 
  "txHash": "sdasdasdasdasdasdsad",
  "email": "[email protected]", 
  "signature": "9aa9b34e950061f1bb1e9ccd6fadcedab8e354f6",
  "status": "4",  // 1:create order success  2:user trnasfered token  3:start to pay fiat to user  4:payment success 5:payment fail 6:refund success 7:order expired
  "orderAddress": "https://ramp-dev.alchemytech.cc/#/sellOrder?sellOrderId\u003d1080106145537236992", // order detail page
  "cryptoActualAmount": "100.0000000000", // 
  "rampFee": "1.7500000000", // fiat
  "receiptTime": "2023-02-28 20:45:22", //transfer fiat success time
  "paymentType": "10001", //  10001 banktransfer
  "name": "asdfsfsd", // account name
  "account": "******4567", // account number
  "card": "", // card No 
  "failReason": "" // failReason
}

Off-ramp callback status

StatusDescription
1Create order success
2User trnasfered token
3Start to pay fiat to user
4Payment success
5Payment fail
6Refund success
7Order expired