> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rebelfi.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Recipients

> Create and manage recipients via the Ramping API

## 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

<ParamField body="name" type="string" required>
  Business name
</ParamField>

<ParamField body="type" type="string" default="business">
  Business type
</ParamField>

<ParamField body="external_id" type="string">
  Your internal reference ID for this recipient
</ParamField>

<ParamField body="address" type="object">
  Physical address. Optional at creation, but **required before creating off-ramp accounts**.
</ParamField>

<Expandable title="address fields">
  <ParamField body="address.street1" type="string" required>
    Street line 1
  </ParamField>

  <ParamField body="address.street2" type="string">
    Street line 2
  </ParamField>

  <ParamField body="address.city" type="string" required>
    City
  </ParamField>

  <ParamField body="address.region" type="string">
    State or region
  </ParamField>

  <ParamField body="address.postal_code" type="string">
    Postal / ZIP code
  </ParamField>

  <ParamField body="address.country" type="string" required default="US">
    ISO 3166-1 alpha-2 country code
  </ParamField>
</Expandable>

```bash theme={null}
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

```json theme={null}
{
  "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

<ParamField query="page" type="integer" default="1">
  Page number
</ParamField>

<ParamField query="per_page" type="integer" default="20">
  Results per page (max 100)
</ParamField>

```bash theme={null}
curl "https://api.rebelfi.io/v1/ramp/recipients?page=1&per_page=20" \
  -H "x-api-key: your_api_key"
```

### Response

```json theme={null}
{
  "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}
```

<ParamField path="id" type="integer" required>
  Recipient ID
</ParamField>

```bash theme={null}
curl "https://api.rebelfi.io/v1/ramp/recipients/1" \
  -H "x-api-key: your_api_key"
```

### Response

```json theme={null}
{
  "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
```

<ParamField path="id" type="integer" required>
  Recipient ID
</ParamField>

<ParamField body="destination_wallet_id" type="integer" required>
  OrgWallet ID where USDC/USDT will be delivered
</ParamField>

<ParamField body="destination_asset" type="string" default="USDC">
  Destination asset: `USDC` or `USDT`
</ParamField>

<ParamField body="rail" type="string" default="ach">
  Payment rail: `ach`, `fedwire`, or `swift`
</ParamField>

```bash theme={null}
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

```json theme={null}
{
  "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
```

<ParamField path="id" type="integer" required>
  Recipient ID
</ParamField>

<ParamField body="org_wallet_id" type="integer" required>
  Source OrgWallet ID (where crypto is sent from)
</ParamField>

<ParamField body="source_asset" type="string" default="USDC">
  Source crypto asset
</ParamField>

<ParamField body="rail" type="string" default="ach">
  Payment rail: `ach`, `fedwire`, or `swift`
</ParamField>

<ParamField body="bank_details" type="object" required>
  Bank account where USD will be delivered
</ParamField>

<Expandable title="bank_details fields">
  <ParamField body="bank_details.routing_number" type="string" required>
    ABA routing number
  </ParamField>

  <ParamField body="bank_details.account_number" type="string" required>
    Bank account number
  </ParamField>

  <ParamField body="bank_details.account_type" type="string" required>
    `checking` or `savings`
  </ParamField>

  <ParamField body="bank_details.account_holder_name" type="string" required>
    Name on the bank account
  </ParamField>

  <ParamField body="bank_details.bank_name" type="string" required>
    Bank name
  </ParamField>
</Expandable>

```bash theme={null}
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

```json theme={null}
{
  "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
```

<ParamField path="id" type="integer" required>
  Recipient ID
</ParamField>

```bash theme={null}
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
```

<ParamField path="id" type="integer" required>
  Recipient ID
</ParamField>

```bash theme={null}
curl -X POST "https://api.rebelfi.io/v1/ramp/recipients/1/archive" \
  -H "x-api-key: your_api_key"
```
