Setup & Credentials
Before integrating, you need a Merchant ID and API Key. Both are created at app.vantack.com — the Vantack dashboard that powers RocketRamp's merchant infrastructure.
Create Your Vantack Account
Go to app.vantack.com and sign in with your email. Click Create Your Wallet and fill out the basic details when prompted.
Note: the details you enter here are informational and do not determine whether your account gets created.
Find Your Merchant ID
From your app.vantack.com dashboard, go to Settings → API Keys. Your Merchant ID is displayed at the top of the API Keys page. Copy it — you'll use it as a header in every API call.
Generate an API Key
On the same API Keys page at app.vantack.com, click Create API Key. The dashboard will generate a new key and display it once. Copy it immediately — you will not be able to see the full key again after you leave the page.
Store Both Credentials Safely
Save your Merchant ID and API Key in a secure location — a password manager or encrypted secrets vault is ideal. Never commit them to source control and never expose the API Key in browser-side code. Treat the API Key like a password: if it leaks, rotate it from the same dashboard.
Test in Sandbox First
Your app.vantack.com Merchant ID and API Key work in both environments. Point your requests at the test host (test-api.vantack.com) while building — no real money moves. Switch to the production host when ready.
Set Up Your Webhook URL (Optional)
In your app.vantack.com dashboard, add a webhook URL to receive real-time notifications when transfers complete. See the Webhooks section for the payload format.
Quick Start — Simple Embed
The fastest way to add RocketRamp to any website. Drop one <script> tag where you want the button to appear. No API call required — the button opens the full RocketRamp app in a modal.
<!-- Paste this wherever you want the RocketRamp button -->
<script
src="https://app.myrocketramp.com/embed/button/">
</script>
That's it. The button renders on your page and opens a RocketRamp modal when clicked. Users log in or sign up, then complete their transaction — no prefill, no user data sent from your side.
Automated Integration — How It Works
For automated websites and platforms that need to send funds to a specific user, the Prefill API lets your backend pre-fill the recipient's email before the RocketRamp button loads. Here's the full flow:
1. Your backend calls the Prefill API
POST to the Vantack API with the recipient's email and an optional memo. Your Merchant ID and API Key (from app.vantack.com) go in the headers.
2. API returns an embed_code
You receive a UUID embed_code that represents this prefill session. It expires after use.
3. Inject the embed_code into your page
Pass the embed_code as the data-embed-key attribute on the embed script. The button now loads with the recipient pre-filled.
4. User completes the transfer
The RocketRamp modal opens with the destination email already filled in. The user confirms and sends.
5. Webhook fires on completion
Your server receives a POST to your webhook URL with transfer details, amount, and status confirmation.
API Endpoint
Call this endpoint from your backend server — never from the browser, as it requires your private API Key.
| Header | Value | Notes |
|---|---|---|
| Merchant-ID | Your Merchant UUID | Required |
| API-Key | Your API Key | Required |
| Content-Type | application/json | Required |
Request & Response
| Field | Type | Description | |
|---|---|---|---|
| string | Email address of the fund recipient | Required | |
| memo | string | Optional note attached to the transfer | Optional |
{
"email": "recipient@example.com",
"memo": "Payout for order #1234"
}
{
"embed_code": "ca678360-5ae6-4f6b-be1d-8583c02447cb",
"status": "created"
}
The embed_code is a UUID that represents one prefill session. Pass it as the data-embed-key attribute on your embed script (see below).
Embed Script with Prefill Key
After getting the embed_code from the API, inject it into your page's <script> tag. Your backend should render this dynamically per user or per session.
<script
src="https://app.myrocketramp.com/embed/button/"
data-embed-key="YOUR_EMBED_CODE_HERE">
</script>
Replace YOUR_EMBED_CODE_HERE with the embed_code value returned from the API. In a server-rendered app, this would be output dynamically, e.g. data-embed-key="<?= $embed_code ?>" in PHP or data-embed-key="{{ embed_code }}" in a template engine.
Code Examples
Complete backend examples for calling the Prefill API and rendering the embed script. Call this server-side — never expose your API Key in the browser.
// Install: npm install node-fetch
// Get your Merchant ID and API Key from https://app.vantack.com
const fetch = require('node-fetch');
async function getRocketRampEmbedCode(recipientEmail, memo = '') {
// Swap to 'https://test-api.vantack.com/v1/merchants/embed/prefill' for sandbox
const response = await fetch('https://api.vantack.com/v1/merchants/embed/prefill', {
method: 'POST',
headers: {
'Merchant-ID': process.env.ROCKETRAMP_MERCHANT_ID,
'API-Key': process.env.ROCKETRAMP_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({ email: recipientEmail, memo }),
});
const data = await response.json();
return data.embed_code; // UUID string
}
// Express route example:
app.get('/payout', async (req, res) => {
const embedCode = await getRocketRampEmbedCode(
req.user.email,
`Payout for order #${req.query.orderId}`
);
// Render your template with embedCode injected
res.render('payout', { embedCode });
});
# Install: pip install requests
# Get your Merchant ID and API Key from https://app.vantack.com
import requests, os
from flask import Flask, render_template
app = Flask(__name__)
def get_rocketramp_embed_code(recipient_email: str, memo: str = "") -> str:
# Swap to "https://test-api.vantack.com/v1/merchants/embed/prefill" for sandbox
response = requests.post(
"https://api.vantack.com/v1/merchants/embed/prefill",
headers={
"Merchant-ID": os.environ["ROCKETRAMP_MERCHANT_ID"],
"API-Key": os.environ["ROCKETRAMP_API_KEY"],
"Content-Type": "application/json",
},
json={"email": recipient_email, "memo": memo},
timeout=10,
)
response.raise_for_status()
return response.json()["embed_code"]
# Flask route example:
@app.route("/payout")
def payout_page():
embed_code = get_rocketramp_embed_code(
recipient_email=current_user.email,
memo=f"Payout for order #{request.args.get('order_id')}"
)
return render_template("payout.html", embed_code=embed_code)
<?php
// Get your Merchant ID and API Key from https://app.vantack.com
function getRocketRampEmbedCode($email, $memo = ''): string {
$ch = curl_init();
curl_setopt_array($ch, [
// Swap to 'https://test-api.vantack.com/v1/merchants/embed/prefill' for sandbox
CURLOPT_URL => 'https://api.vantack.com/v1/merchants/embed/prefill',
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Merchant-ID: ' . getenv('ROCKETRAMP_MERCHANT_ID'),
'API-Key: ' . getenv('ROCKETRAMP_API_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'email' => $email,
'memo' => $memo,
]),
]);
$body = curl_exec($ch);
curl_close($ch);
return json_decode($body, true)['embed_code'];
}
// In your template:
$embedCode = getRocketRampEmbedCode(
$_SESSION['user_email'],
'Payout for order #' . $orderId
);
?>
<!-- In your HTML output: -->
<script
src="https://app.myrocketramp.com/embed/button/"
data-embed-key="<?= htmlspecialchars($embedCode) ?>">
</script>
# Get YOUR_MERCHANT_ID and YOUR_API_KEY from https://app.vantack.com
# For sandbox, swap the host to test-api.vantack.com (same credentials)
curl -X POST https://api.vantack.com/v1/merchants/embed/prefill \
-H "Merchant-ID: YOUR_MERCHANT_ID" \
-H "API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email":"recipient@example.com","memo":"Payout #1234"}'
# Response:
# {"embed_code":"ca678360-5ae6-4f6b-be1d-8583c02447cb","status":"created"}
Button Styling
Customize the embed button's colors to match your site's brand using optional data-* attributes.
| Attribute | Example | Description |
|---|---|---|
| data-button-bg | #ff5722 | Background color of the button |
| data-button-text | #ffffff | Text color of the button |
<script
src="https://app.myrocketramp.com/embed/button/"
data-embed-key="YOUR_EMBED_CODE_HERE"
data-button-bg="#ff5722"
data-button-text="#ffffff">
</script>
Webhooks
When a transfer is completed, RocketRamp sends a POST request to your webhook URL with a JSON payload. Configure your webhook URL in your app.vantack.com merchant dashboard.
status: "success". Verify the merchant_id matches your own before acting on any payload.
{
"type": "embed_transfer",
"destination_email": "recipient@example.com",
"merchant_id": "mrch_7ca761c5-91c0-4fff-83f5-56403cff1180",
"amount": "1.00",
"status": "success",
"memo": "Payout for order #1234",
"transfer_id": "292",
"timestamp": "2025-11-21T13:32:42.204155-08:00"
}
embed_transfer for embed-originated transfers."25.00"). Convert to decimal in your system.success means the transfer completed. Only act on success events.app.post('/webhooks/rocketramp', express.json(), (req, res) => {
const { type, status, amount, destination_email, transfer_id, merchant_id } = req.body;
// 1. Verify it's your merchant account
if (merchant_id !== process.env.ROCKETRAMP_MERCHANT_ID) {
return res.status(403).json({ error: 'Unknown merchant' });
}
// 2. Only process successful transfers
if (type === 'embed_transfer' && status === 'success') {
// 3. Credit the user, fulfill the order, etc.
console.log(`Transfer ${transfer_id}: ${amount} to ${destination_email}`);
}
res.status(200).json({ received: true });
});
Environments
Switch between test and production by changing the API host. All other request/response formats are identical. Your Merchant ID and API Key come from app.vantack.com and work in both environments.
| Environment | Credentials Source | API Base URL | Embed Script Source |
|---|---|---|---|
| Production | app.vantack.com | api.vantack.com | app.myrocketramp.com/embed/button/ |
| Test / Sandbox | app.vantack.com | test-api.vantack.com | test.myrocketramp.com/embed/button/ |