Setup & Credentials
Before integrating, you need a Merchant ID and API Key. These are created on the Vantack dashboard — the infrastructure that powers RocketRamp's merchant system. There are two separate dashboards, one for each environment:
Create Your Test Account
Go to test.vantack.com and sign up with your email. Click Create Your Wallet and fill out the basic details when prompted. This is your sandbox environment — no real money moves here.
Note: the details you enter here are informational and do not determine whether your account gets created.
Find Your Merchant ID
From your test.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 test.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.
Build & Test in Sandbox
Use your test.vantack.com Merchant ID and API Key with the test API host (test-api.vantack.com) and test embed script (test.myrocketramp.com). No real money moves in sandbox. Test your full integration here first.
Go Live — Create Your Production Account
When your integration is working in sandbox, go to app.vantack.com and create a separate production account. Get your production Merchant ID and API Key from this dashboard, then swap your code to use the production API host (api.vantack.com) and production embed script (app.myrocketramp.com).
Set Up Your Webhook URL (Optional)
In your Vantack dashboard (test.vantack.com for sandbox or app.vantack.com for production), 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 test.vantack.com for sandbox or app.vantack.com for production) 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://test.vantack.com (sandbox) or https://app.vantack.com (production)
const fetch = require('node-fetch');
async function getRocketRampEmbedCode(recipientEmail, memo = '') {
// Production: api.vantack.com (credentials from app.vantack.com)
// Sandbox: test-api.vantack.com (credentials from test.vantack.com)
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://test.vantack.com (sandbox) or https://app.vantack.com (production)
import requests, os
from flask import Flask, render_template
app = Flask(__name__)
def get_rocketramp_embed_code(recipient_email: str, memo: str = "") -> str:
# Production: api.vantack.com (credentials from app.vantack.com)
# Sandbox: test-api.vantack.com (credentials from test.vantack.com)
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://test.vantack.com (sandbox) or https://app.vantack.com (production)
function getRocketRampEmbedCode($email, $memo = ''): string {
$ch = curl_init();
curl_setopt_array($ch, [
// Production: api.vantack.com (credentials from app.vantack.com)
// Sandbox: test-api.vantack.com (credentials from test.vantack.com)
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://test.vantack.com (sandbox) or https://app.vantack.com (production)
# For sandbox: use test-api.vantack.com + credentials from test.vantack.com
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 Vantack merchant dashboard (test.vantack.com for sandbox or app.vantack.com for production).
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
Each environment has its own dashboard, Merchant ID, and API Key. Create a separate account on each dashboard. When switching from test to production, swap all three: your credentials, the API host, and the embed script source.
| Environment | Dashboard & Credentials | API Base URL | Embed Script Source |
|---|---|---|---|
| Test / Sandbox | test.vantack.com | test-api.vantack.com | test.myrocketramp.com/embed/button/ |
| Production | app.vantack.com | api.vantack.com | app.myrocketramp.com/embed/button/ |