Developer Docs

Integrate RocketRamp
Into Any System.

Embed a payment button on your website in minutes, or connect via API to automate payouts, send funds to users, and receive real-time webhook confirmations.

● REST API Iframe Embed Webhooks Test Mode Available
Setup Quick Start How It Works Endpoint Request Embed Script Code Examples Styling Webhooks Environments

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:

Testing: Create your free merchant account at test.vantack.com — no real money moves. Start here to build and test your integration.
Production: When you're ready to go live, create a separate account at app.vantack.com to get your production Merchant ID and API Key.
Important: Each environment has its own account, Merchant ID, and API Key. Credentials from test.vantack.com will not work on production, and vice versa.
1

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.

2

Find Your Merchant ID

From your test.vantack.com dashboard, go to SettingsAPI 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.

3

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.

4

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.

5

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.

6

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).

7

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.

HTML
<!-- 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.

Use this approach for public-facing pages where you don't know the user's email ahead of time. For automated systems that do know the recipient, use the Prefill API below to pre-populate the destination and skip manual entry.

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.

Production
POST https://api.vantack.com/v1/merchants/embed/prefill
Test / Sandbox
POST https://test-api.vantack.com/v1/merchants/embed/prefill
Required Headers
HeaderValueNotes
Merchant-IDYour Merchant UUIDRequired
API-KeyYour API KeyRequired
Content-Typeapplication/jsonRequired

Request & Response

Request Body
FieldTypeDescription
emailstringEmail address of the fund recipientRequired
memostringOptional note attached to the transferOptional
JSON — Request
{
  "email": "recipient@example.com",
  "memo":  "Payout for order #1234"
}
Successful Response — 200 OK
JSON — Response
{
  "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.

HTML
<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.

Node.js / Express
// 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 });
});
Python / Flask
# 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
<?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>
cURL
# 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.

AttributeExampleDescription
data-button-bg#ff5722Background color of the button
data-button-text#ffffffText color of the button
HTML — Styled 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).

Only process webhooks with status: "success". Verify the merchant_id matches your own before acting on any payload.
Payload
JSON — Webhook 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"
}
Field Reference
type
Always embed_transfer for embed-originated transfers.
destination_email
The recipient's email address — matches the email you sent in the prefill request.
merchant_id
Your Merchant ID. Verify this matches your own ID before processing.
amount
Transfer amount as a string (e.g. "25.00"). Convert to decimal in your system.
status
success means the transfer completed. Only act on success events.
memo
The memo string you sent in the prefill request, if any.
transfer_id
Unique transfer ID. Store this to prevent duplicate processing.
timestamp
ISO 8601 timestamp of when the transfer was completed.
Webhook Handler Example (Node.js)
Node.js / Express
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.

EnvironmentDashboard & CredentialsAPI Base URLEmbed 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/
Credentials are NOT interchangeable. Your Merchant ID and API Key from test.vantack.com only work with the test API, and credentials from app.vantack.com only work with the production API. When going live, make sure to swap your credentials, API host, and embed script source together.
Start at test.vantack.com — no real money moves in sandbox. The test environment mirrors production behavior exactly, so once your integration works in test, switching to production is just a credential and host swap.