Skip to main content

RampAPI

Access via client.ramp.

KYB

getKybStatus

Get current KYB verification status.
async getKybStatus(): Promise<RampKybStatusResponse>

startKyb

Initiate KYB verification. Returns a hosted form URL.
async startKyb(): Promise<{ kybUrl: string; status: string }>

checkKybStatus

Force re-check KYB status with payment provider.
async checkKybStatus(): Promise<RampKybStatusResponse>

simulateKybApproval

Sandbox only: instantly approve KYB.
async simulateKybApproval(): Promise<RampKybStatusResponse>

simulateKybRejection

Sandbox only: instantly reject KYB.
async simulateKybRejection(): Promise<RampKybStatusResponse>

On-Ramp Accounts

createOnrampAccount

Create an org-level virtual bank account.
async createOnrampAccount(params: CreateRampOnrampAccountRequest): Promise<RampOnrampAccountResponse>

getOnrampAccount

Get the org on-ramp account.
async getOnrampAccount(): Promise<RampOnrampAccountResponse | null>

Transactions & Summary

listTransactions

List on-ramp transactions with optional filters.
async listTransactions(params?: RampExportParams): Promise<RampTransactionListResponse>

getTransaction

Get a transaction by ID.
async getTransaction(id: number): Promise<RampTransactionResponse>

getSummary

Aggregate volume/fee statistics.
async getSummary(params?: RampExportParams): Promise<RampSummaryResponse>

exportTransactions

Export transactions as CSV.
async exportTransactions(params?: RampExportParams): Promise<string>

Off-Ramp

createOfframpAccount

Create an org off-ramp account.
async createOfframpAccount(params: CreateRampOfframpAccountRequest): Promise<RampOfframpAccountResponse>

listOfframpAccounts

List org off-ramp accounts.
async listOfframpAccounts(): Promise<RampOfframpAccountResponse[]>

getOfframpStatus

Get off-ramp status.
async getOfframpStatus(): Promise<RampOfframpStatusResponse>

listOfframpTransactions

List off-ramp transactions with optional filters.
async listOfframpTransactions(params?: RampExportParams): Promise<RampTransactionListResponse>

getOfframpTransaction

Get an off-ramp transaction by ID.
async getOfframpTransaction(id: number): Promise<RampTransactionResponse>

exportOfframpTransactions

Export off-ramp transactions as CSV.
async exportOfframpTransactions(params?: RampExportParams): Promise<string>

Recipients

createRecipient

Create a recipient (initiates KYB).
async createRecipient(params: CreateRecipientRequest): Promise<RecipientResponse>

listRecipients

List recipients with pagination.
async listRecipients(params?: { page?: number; perPage?: number }): Promise<RecipientListResponse>

getRecipient

Get a recipient by ID.
async getRecipient(id: number): Promise<RecipientResponse>

archiveRecipient

Archive a recipient.
async archiveRecipient(id: number): Promise<RecipientResponse>

createRecipientOnrampAccount

Create an on-ramp account for a recipient.
async createRecipientOnrampAccount(
  recipientId: number,
  params: CreateRecipientOnrampAccountRequest
): Promise<RampOnrampAccountResponse>

createRecipientOfframpAccount

Create an off-ramp account for a recipient.
async createRecipientOfframpAccount(
  recipientId: number,
  params: CreateRecipientOfframpAccountRequest
): Promise<RampOfframpAccountResponse>

listRecipientOfframpAccounts

List off-ramp accounts for a recipient.
async listRecipientOfframpAccounts(recipientId: number): Promise<RampOfframpAccountResponse[]>

simulateRecipientOnrampTransaction

Sandbox only: simulate an on-ramp transaction for a recipient.
async simulateRecipientOnrampTransaction(
  recipientId: number,
  params?: SimulateTransactionRequest
): Promise<SimulationResponse>

simulateRecipientOfframpTransaction

Sandbox only: simulate an off-ramp transaction for a recipient.
async simulateRecipientOfframpTransaction(
  recipientId: number,
  params?: SimulateOfframpTransactionRequest
): Promise<SimulationResponse>

Simulation (Org-Level)

simulateOnrampTransaction

Sandbox only: simulate an on-ramp transaction.
async simulateOnrampTransaction(params?: SimulateTransactionRequest): Promise<SimulationResponse>

simulateOfframpTransaction

Sandbox only: simulate an off-ramp transaction.
async simulateOfframpTransaction(params?: SimulateOfframpTransactionRequest): Promise<SimulationResponse>

Types

KYB

interface RampKybStatusResponse {
  kybStatus: string | null;
  applicationUrl: string | null;
  onrampAccount: RampOnrampAccountResponse | null;
  onrampAccounts: RampOnrampAccountResponse[];
}

On-Ramp Accounts

interface CreateRampOnrampAccountRequest {
  orgWalletId?: number;
  walletAddress?: string;
  blockchain?: string;
  destinationAsset: string;
  rail?: string;
}

interface RampOnrampAccountResponse {
  id: number;
  dakotaOnrampId: string;
  bankAccountNumber: string;
  routingNumber: string;
  bankName: string;
  capabilities: string[];
  status: string;
  sourceAsset: string;
  destinationAsset: string;
  networkId: string;
  destinationWallet?: { id: number; name: string; address: string; network: string };
}

Transactions

interface RampTransactionResponse {
  id: number;
  dakotaTransactionId: string;
  usdAmount: string;
  totalFeeAmount?: string;
  developerFeeAmount?: string;
  deliveredAmount?: string;
  status: string;
  type?: string;
  sourceAsset?: string;
  destinationAsset?: string;
  networkId?: string;
  exchangeRate?: string;
  txHash?: string;
  paymentRail?: string;
  paymentReference?: string;
  failureReason?: string;
  statusHistory: { status: string; timestamp: string }[];
  createdAt: string;
  completedAt?: string;
}

interface RampTransactionListResponse {
  data: RampTransactionResponse[];
  pagination: { page: number; perPage: number; total: number };
}

interface RampExportParams {
  status?: string;
  dateFrom?: string;
  dateTo?: string;
}

Summary

interface RampSummaryResponse {
  totalVolumeUsd: number;
  totalFeesUsd: number;
  totalDelivered: number;
  activeRampRecipients: number;
  transactionCount: number;
  periodBreakdown: Array<{ date: string; volumeUsd: number; transactions: number }>;
}

Off-Ramp

interface CreateRampOfframpAccountRequest {
  orgWalletId: number;
  sourceAsset?: string;
  rail?: string;
  bankDetails: {
    routingNumber: string;
    accountNumber: string;
    accountType: string;
    accountHolderName: string;
    bankName: string;
  };
}

interface RampOfframpAccountResponse {
  id: number;
  dakotaOfframpId: string;
  sourceCryptoAddress?: string;
  sourceAsset?: string;
  destinationAsset?: string;
  networkId?: string;
  rail?: string;
  fiatRoutingNumber?: string;
  fiatAccountNumberMasked?: string;
  fiatAccountType?: string;
  fiatAccountHolderName?: string;
  fiatBankName?: string;
  status: string;
  sourceWallet?: { id: number; name: string; address: string; network: string };
}

interface RampOfframpStatusResponse {
  kybStatus: string | null;
  offrampAccounts: RampOfframpAccountResponse[];
}

Recipients

interface CreateRecipientRequest {
  name: string;
  type?: string;
  externalId?: string;
  address?: {
    street1: string;
    street2?: string;
    city: string;
    region?: string;
    postalCode?: string;
    country?: string;
  };
}

interface RecipientResponse {
  id: number;
  name: string;
  type: string;
  externalId?: string;
  destinationWalletId?: number;
  destinationWallet?: { id: number; name: string; address: string; network: string };
  address?: {
    street1: string;
    street2?: string;
    city: string;
    region?: string;
    postalCode?: string;
    country?: string;
  };
  bankAccount?: RampOnrampAccountResponse;
  bankAccounts?: RampOnrampAccountResponse[];
  onrampAccountCount?: number;
  offrampAccountCount?: number;
  totalVolumeUsd?: number;
  monthlyVolumeUsd?: number;
  transactionCount?: number;
  createdAt: string;
  archivedAt?: string;
}

interface RecipientListResponse {
  data: RecipientResponse[];
  pagination: { page: number; perPage: number; total: number };
}

interface CreateRecipientOnrampAccountRequest {
  destinationWalletId: number;
  sourceAsset?: string;
  destinationAsset?: string;
  rail?: string;
}

interface CreateRecipientOfframpAccountRequest {
  orgWalletId: number;
  sourceAsset?: string;
  rail?: string;
  bankDetails: {
    routingNumber: string;
    accountNumber: string;
    accountType: string;
    accountHolderName: string;
    bankName: string;
  };
}

Simulation

interface SimulateTransactionRequest {
  scenario?: 'success' | 'failed' | 'rejected' | 'reversed';
  usdAmount?: number;
  onrampAccountId?: number;
}

interface SimulateOfframpTransactionRequest {
  scenario?: 'success' | 'failed';
  usdAmount?: number;
  offrampAccountId?: number;
}

interface SimulationResponse {
  success: boolean;
  data: { simulation_id: string; state: string };
}