Skip to main content

Create Recipient

Creates a new recipient and initiates KYB verification. Accounts (on-ramp or off-ramp) are created separately after KYB approval.
POST /v1/ramp/recipients

Request

name
string
required
Business name
type
string
default:"business"
Business type
external_id
string
Your internal reference ID for this recipient
address
object
Physical address. Optional at creation, but required before creating off-ramp accounts.
curl -X POST "https://api.rebelfi.io/v1/ramp/recipients" \
  -H "x-api-key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "OnEdge",
    "type": "business",
    "external_id": "your-internal-ref-123",
    "address": {
      "street1": "123 Main St",
      "city": "New York",
      "region": "NY",
      "postal_code": "10001",
      "country": "US"
    }
  }'

Response

{
  "id": 1,
  "name": "OnEdge",
  "type": "business",
  "external_id": "your-internal-ref-123",
  "address": {
    "street1": "123 Main St",
    "city": "New York",
    "region": "NY",
    "postal_code": "10001",
    "country": "US"
  },
  "kyb_status": "pending",
  "kyb_url": "https://kyb.provider.com/verify/abc123",
  "created_at": "2026-03-15T10:00:00Z"
}

List Recipients

Returns all recipients with KYB status, account counts, and volume summaries.
GET /v1/ramp/recipients

Query Parameters

page
integer
default:"1"
Page number
per_page
integer
default:"20"
Results per page (max 100)
curl "https://api.rebelfi.io/v1/ramp/recipients?page=1&per_page=20" \
  -H "x-api-key: your_api_key"

Response

{
  "data": [
    {
      "id": 1,
      "name": "OnEdge",
      "type": "business",
      "external_id": "your-internal-ref-123",
      "kyb_status": "approved",
      "onramp_account_count": 2,
      "offramp_account_count": 1,
      "total_volume_usd": 450000,
      "transaction_count": 28,
      "created_at": "2026-03-15T10:00:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 20,
    "total": 12
  }
}

Get Recipient

Returns a single recipient with full detail, including all on-ramp and off-ramp accounts.
GET /v1/ramp/recipients/{id}
id
integer
required
Recipient ID
curl "https://api.rebelfi.io/v1/ramp/recipients/1" \
  -H "x-api-key: your_api_key"

Response

{
  "id": 1,
  "name": "OnEdge",
  "type": "business",
  "external_id": "your-internal-ref-123",
  "kyb_status": "approved",
  "address": {
    "street1": "123 Main St",
    "city": "New York",
    "region": "NY",
    "postal_code": "10001",
    "country": "US"
  },
  "bank_accounts": [
    {
      "id": 1,
      "account_number": "12345678",
      "routing_number": "987654321",
      "bank_name": "Lead Bank",
      "capabilities": ["ach"],
      "status": "active",
      "destination_asset": "USDC",
      "network_id": "solana-mainnet"
    }
  ],
  "onramp_account_count": 1,
  "offramp_account_count": 0,
  "total_volume_usd": 450000,
  "transaction_count": 28,
  "created_at": "2026-03-15T10:00:00Z"
}

Create On-Ramp Account

Creates a virtual bank account for the recipient. Requires KYB approval.
POST /v1/ramp/recipients/{id}/onramp-accounts
id
integer
required
Recipient ID
destination_wallet_id
integer
required
OrgWallet ID where USDC/USDT will be delivered
destination_asset
string
default:"USDC"
Destination asset: USDC or USDT
rail
string
default:"ach"
Payment rail: ach, fedwire, or swift
curl -X POST "https://api.rebelfi.io/v1/ramp/recipients/1/onramp-accounts" \
  -H "x-api-key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "destination_wallet_id": 42,
    "destination_asset": "USDC",
    "rail": "ach"
  }'

Response

{
  "id": 1,
  "account_number": "12345678",
  "routing_number": "987654321",
  "bank_name": "Lead Bank",
  "capabilities": ["ach"],
  "status": "active",
  "destination_asset": "USDC",
  "network_id": "solana-mainnet",
  "destination_wallet": {
    "id": 42,
    "name": "Treasury",
    "address": "HN7c...",
    "network": "solana"
  }
}

Create Off-Ramp Account

Creates a crypto deposit address for the recipient. Requires KYB approval and a recipient address on file.
POST /v1/ramp/recipients/{id}/offramp-accounts
id
integer
required
Recipient ID
org_wallet_id
integer
required
Source OrgWallet ID (where crypto is sent from)
source_asset
string
default:"USDC"
Source crypto asset
rail
string
default:"ach"
Payment rail: ach, fedwire, or swift
bank_details
object
required
Bank account where USD will be delivered
curl -X POST "https://api.rebelfi.io/v1/ramp/recipients/1/offramp-accounts" \
  -H "x-api-key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "org_wallet_id": 42,
    "source_asset": "USDC",
    "rail": "ach",
    "bank_details": {
      "routing_number": "021000021",
      "account_number": "987654321",
      "account_type": "checking",
      "account_holder_name": "OnEdge Inc",
      "bank_name": "Chase Bank"
    }
  }'

Response

{
  "id": 1,
  "source_crypto_address": "0xABC123...",
  "source_asset": "USDC",
  "destination_asset": "USD",
  "network_id": "solana-mainnet",
  "rail": "ach",
  "fiat_bank_name": "Chase Bank",
  "fiat_account_type": "checking",
  "fiat_account_holder_name": "OnEdge Inc",
  "status": "active"
}

List Off-Ramp Accounts

GET /v1/ramp/recipients/{id}/offramp-accounts
id
integer
required
Recipient ID
curl "https://api.rebelfi.io/v1/ramp/recipients/1/offramp-accounts" \
  -H "x-api-key: your_api_key"

Response

Returns an array of off-ramp accounts for the recipient.

Archive Recipient

Archives a recipient, removing them from all lists.
POST /v1/ramp/recipients/{id}/archive
id
integer
required
Recipient ID
curl -X POST "https://api.rebelfi.io/v1/ramp/recipients/1/archive" \
  -H "x-api-key: your_api_key"