Alchemy Pay 💎
Hybrid payment infrastructure connecting crypto and traditional finance. Integrated with Binance Pay, Solana Pay, and 300+ payment channels worldwide.
Environment Variables
| Variable |
Description |
Required |
ALCHEMY_PAY_APP_ID |
Merchant App ID |
Yes |
ALCHEMY_PAY_SECRET |
API Secret Key |
Yes |
ALCHEMY_PAY_ENV |
Environment: sandbox or production |
No (default: sandbox) |
Features
- 🔄 On-Ramp - Buy crypto with fiat (170+ countries)
- 💸 Off-Ramp - Sell crypto to fiat
- 🛒 Merchant Payments - Accept crypto payments
- 🎨 NFT Checkout - Fiat-to-NFT purchases
- 🌍 Global Coverage - Strong in Asia & LATAM
API Endpoints
Base URLs
- Sandbox:
https://openapi-test.alchemypay.org
- Production:
https://openapi.alchemypay.org
Create On-Ramp Order
APP_ID="${ALCHEMY_PAY_APP_ID}"
SECRET="${ALCHEMY_PAY_SECRET}"
BASE_URL="${ALCHEMY_PAY_ENV:-sandbox}"
[[ "$BASE_URL" == "production" ]] && BASE_URL="https://openapi.alchemypay.org" || BASE_URL="https://openapi-test.alchemypay.org"
TIMESTAMP=$(date +%s)
NONCE=$(openssl rand -hex 16)
# Create signature
SIGN_STRING="appId=${APP_ID}&nonce=${NONCE}×tamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "${SIGN_STRING}${SECRET}" | sha256sum | cut -d' ' -f1)
curl -s -X POST "${BASE_URL}/open/api/v4/merchant/order/create" \
-H "Content-Type: application/json" \
-H "appId: ${APP_ID}" \
-H "timestamp: ${TIMESTAMP}" \
-H "nonce: ${NONCE}" \
-H "sign: ${SIGNATURE}" \
-d '{
"crypto": "USDT",
"network": "ETH",
"fiat": "USD",
"fiatAmount": "100",
"walletAddress": "<USER_WALLET>",
"callbackUrl": "https://your-callback.com/webhook"
}' | jq '.'
Get Supported Cryptocurrencies
curl -s "${BASE_URL}/open/api/v4/merchant/crypto/list" \
-H "appId: ${APP_ID}" \
-H "timestamp: ${TIMESTAMP}" \
-H "nonce: ${NONCE}" \
-H "sign: ${SIGNATURE}" | jq '.data'
Get Exchange Rate
curl -s "${BASE_URL}/open/api/v4/merchant/price" \
-H "appId: ${APP_ID}" \
-H "timestamp: ${TIMESTAMP}" \
-H "nonce: ${NONCE}" \
-H "sign: ${SIGNATURE}" \
-G --data-urlencode "crypto=BTC" \
--data-urlencode "fiat=USD" | jq '.data'
Check Order Status
ORDER_ID="<ORDER_ID>"
curl -s "${BASE_URL}/open/api/v4/merchant/order/query" \
-H "appId: ${APP_ID}" \
-H "timestamp: ${TIMESTAMP}" \
-H "nonce: ${NONCE}" \
-H "sign: ${SIGNATURE}" \
-G --data-urlencode "orderId=${ORDER_ID}" | jq '.'
Supported Payment Methods
| Region |
Methods |
| Global |
Visa, Mastercard, Apple Pay, Google Pay |
| Asia |
Alipay, WeChat Pay, GrabPay, GCash |
| LATAM |
PIX, SPEI, PSE |
| Europe |
SEPA, iDEAL, Bancontact |
Supported Cryptocurrencies
- EVM: ETH, USDT, USDC, BNB, MATIC
- Solana: SOL, USDC-SPL
- Bitcoin: BTC
- Others: TRX, AVAX, ARB
Widget Integration
<!-- Embed Alchemy Pay widget -->
<iframe
src="https://ramp.alchemypay.org?appId=YOUR_APP_ID&crypto=ETH&network=ETH&fiat=USD"
width="400"
height="600"
frameborder="0">
</iframe>
Webhook Events
| Event |
Description |
PAY_SUCCESS |
Payment completed |
PAY_FAIL |
Payment failed |
REFUND_SUCCESS |
Refund processed |
Safety Rules
- ALWAYS verify webhook signatures
- NEVER expose API secrets in client-side code
- ALWAYS use HTTPS for callbacks
- VERIFY order amounts match expected values
Error Codes
| Code |
Description |
| 10001 |
Invalid signature |
| 10002 |
Invalid parameters |
| 10003 |
Order not found |
| 20001 |
Insufficient balance |
Links
1---2name: alchemy-pay3description: Alchemy Pay (ACH) fiat-to-crypto payment gateway integration. On-ramp, off-ramp, merchant payments, and NFT checkout services.4---56# Alchemy Pay 💎78Hybrid payment infrastructure connecting crypto and traditional finance. Integrated with Binance Pay, Solana Pay, and 300+ payment channels worldwide.910## Environment Variables1112| Variable | Description | Required |13|----------|-------------|----------|14| `ALCHEMY_PAY_APP_ID` | Merchant App ID | Yes |15| `ALCHEMY_PAY_SECRET` | API Secret Key | Yes |16| `ALCHEMY_PAY_ENV` | Environment: `sandbox` or `production` | No (default: sandbox) |1718## Features1920- 🔄 **On-Ramp** - Buy crypto with fiat (170+ countries)21- 💸 **Off-Ramp** - Sell crypto to fiat22- 🛒 **Merchant Payments** - Accept crypto payments23- 🎨 **NFT Checkout** - Fiat-to-NFT purchases24- 🌍 **Global Coverage** - Strong in Asia & LATAM2526## API Endpoints2728### Base URLs29- Sandbox: `https://openapi-test.alchemypay.org`30- Production: `https://openapi.alchemypay.org`3132### Create On-Ramp Order3334```bash35APP_ID="${ALCHEMY_PAY_APP_ID}"36SECRET="${ALCHEMY_PAY_SECRET}"37BASE_URL="${ALCHEMY_PAY_ENV:-sandbox}"38[[ "$BASE_URL" == "production" ]] && BASE_URL="https://openapi.alchemypay.org" || BASE_URL="https://openapi-test.alchemypay.org"3940TIMESTAMP=$(date +%s)41NONCE=$(openssl rand -hex 16)4243# Create signature44SIGN_STRING="appId=${APP_ID}&nonce=${NONCE}×tamp=${TIMESTAMP}"45SIGNATURE=$(echo -n "${SIGN_STRING}${SECRET}" | sha256sum | cut -d' ' -f1)4647curl -s -X POST "${BASE_URL}/open/api/v4/merchant/order/create" \48 -H "Content-Type: application/json" \49 -H "appId: ${APP_ID}" \50 -H "timestamp: ${TIMESTAMP}" \51 -H "nonce: ${NONCE}" \52 -H "sign: ${SIGNATURE}" \53 -d '{54 "crypto": "USDT",55 "network": "ETH",56 "fiat": "USD",57 "fiatAmount": "100",58 "walletAddress": "<USER_WALLET>",59 "callbackUrl": "https://your-callback.com/webhook"60 }' | jq '.'61```6263### Get Supported Cryptocurrencies6465```bash66curl -s "${BASE_URL}/open/api/v4/merchant/crypto/list" \67 -H "appId: ${APP_ID}" \68 -H "timestamp: ${TIMESTAMP}" \69 -H "nonce: ${NONCE}" \70 -H "sign: ${SIGNATURE}" | jq '.data'71```7273### Get Exchange Rate7475```bash76curl -s "${BASE_URL}/open/api/v4/merchant/price" \77 -H "appId: ${APP_ID}" \78 -H "timestamp: ${TIMESTAMP}" \79 -H "nonce: ${NONCE}" \80 -H "sign: ${SIGNATURE}" \81 -G --data-urlencode "crypto=BTC" \82 --data-urlencode "fiat=USD" | jq '.data'83```8485### Check Order Status8687```bash88ORDER_ID="<ORDER_ID>"8990curl -s "${BASE_URL}/open/api/v4/merchant/order/query" \91 -H "appId: ${APP_ID}" \92 -H "timestamp: ${TIMESTAMP}" \93 -H "nonce: ${NONCE}" \94 -H "sign: ${SIGNATURE}" \95 -G --data-urlencode "orderId=${ORDER_ID}" | jq '.'96```9798## Supported Payment Methods99100| Region | Methods |101|--------|---------|102| Global | Visa, Mastercard, Apple Pay, Google Pay |103| Asia | Alipay, WeChat Pay, GrabPay, GCash |104| LATAM | PIX, SPEI, PSE |105| Europe | SEPA, iDEAL, Bancontact |106107## Supported Cryptocurrencies108109- **EVM**: ETH, USDT, USDC, BNB, MATIC110- **Solana**: SOL, USDC-SPL111- **Bitcoin**: BTC112- **Others**: TRX, AVAX, ARB113114## Widget Integration115116```html117<!-- Embed Alchemy Pay widget -->118<iframe 119 src="https://ramp.alchemypay.org?appId=YOUR_APP_ID&crypto=ETH&network=ETH&fiat=USD"120 width="400" 121 height="600"122 frameborder="0">123</iframe>124```125126## Webhook Events127128| Event | Description |129|-------|-------------|130| `PAY_SUCCESS` | Payment completed |131| `PAY_FAIL` | Payment failed |132| `REFUND_SUCCESS` | Refund processed |133134## Safety Rules1351361. **ALWAYS** verify webhook signatures1372. **NEVER** expose API secrets in client-side code1383. **ALWAYS** use HTTPS for callbacks1394. **VERIFY** order amounts match expected values140141## Error Codes142143| Code | Description |144|------|-------------|145| 10001 | Invalid signature |146| 10002 | Invalid parameters |147| 10003 | Order not found |148| 20001 | Insufficient balance |149150## Links151152- [Alchemy Pay Docs](https://alchemypay.readme.io/)153- [Dashboard](https://dashboard.alchemypay.org/)154- [Status Page](https://status.alchemypay.org/)