RAMFi Data Models
The platform's objects, grouped by domain. Click any object for its fields and the API endpoints and SDKs that read or change it.
Object Map
Six domains. Linked Instruments are the external accounts a client transacts against; Transactions are the rail-specific movements executed on them; Balances and the ledger record the result.
Authentication
Identity & Compliance
Balances & Reporting
Linked Instruments
Transactions
Disbursements
AccountStatus (Enum)
| Name | Notes |
|---|---|
Active | Client is verified and can transact. |
Cancelled | — |
Completed | — |
OnHold | Blocked from transacting, typically after a returned draft. |
Hold_Request | — |
Note: enum values are sent and returned as their names — for example "accountStatus": "Active". Responses always carry the name, never a number.
DocumentType (Enum)
| Name | Notes |
|---|---|
ACH_AGREEMENT | — |
CC_AUTH | — |
DEATH_CERTIFICATE | — |
LOT_LETTER_OF_TESTAMENTARY_POA_POWER_OF_ATTORNEY | — |
SETTLEMENT_AUTH | — |
ID_VERIFICATION | — |
ADDRESS_VERIFICATION | — |
OTHER | — |
CREDITOR_ADDR_VERIFICATION | — |
GOVID_FRONT | — |
GOVID_BACK | — |
WEB_ACH_AGREEMENT | — |
AUTHORIZED_USER_AGREEMENT | — |
EXTERNAL_KYE | Externally-performed KYC evidence. |
DocumentStatus (Enum)
| Name | Notes |
|---|---|
SUBMITTED | — |
IN_REVIEW | — |
APPROVED | — |
REJECTED | — |
BankAccountType (Enum)
| Name | Notes |
|---|---|
NOT_SET | — |
CONSUMER_DEBIT_SAVINGS | — |
CONSUMER_DEBIT_CHECKING | — |
BankAccountStatus (Enum)
| Name | Notes |
|---|---|
Unknown | — |
Pending | — |
Connected | Linked, but full bank details not yet on file. |
Completed | — |
AddressType (Enum)
| Name | Notes |
|---|---|
EITHER | — |
FUNDS_SOURCE | — |
FUNDS_DESTINATION | — |
Client Schema
| Property | Type | Required | Description |
|---|---|---|---|
| id | string | OPTIONAL | Internal ID. |
| firstName | string | REQUIRED | Client's first name. |
| lastName | string | REQUIRED | Client's last name. |
| middleInitial | string | OPTIONAL | Middle initial. |
| address | string | REQUIRED | Street address. |
| address2 | string | OPTIONAL | Address line 2. |
| city | string | REQUIRED | City. |
| state | string | REQUIRED | State code. |
| zip | string | REQUIRED | ZIP code. |
| taxID | string | REQUIRED | Tax ID / SSN. |
| dob | date | REQUIRED | Date of birth. |
| clientID | string | REQUIRED | External client identifier. |
| string | REQUIRED | Email address. | |
| phone | string | OPTIONAL | Phone number. |
| accountStatus | AccountStatus | OPTIONAL | Current account status. |
| bankAccount | string | OPTIONAL | Bank account number. |
| bankRouting | string | OPTIONAL | Bank routing number. |
| bankNameOnAccount | string | OPTIONAL | Name on bank account. |
encTaxID | string | OPTIONAL | Encrypted form of taxID. |
username | string | OPTIONAL | — |
miscellaneous | string | OPTIONAL | Free-text field carried on the client. |
userID | guid | OPTIONAL | Internal user record ID. |
feeGroupID | int | OPTIONAL | — |
dscID | int | OPTIONAL | — |
achBankID | int | OPTIONAL | — |
ramHold | bool | OPTIONAL | Whether the account is currently held. |
kycPass | bool | OPTIONAL | Whether KYC has passed. |
bankAccountStatus | BankAccountStatus | OPTIONAL | Linked-bank state. See BankAccountStatus. |
businessName | string | OPTIONAL | If populated, this is a business / KYB client. |
dateOfFormation | date | OPTIONAL | Business date of formation. |
internationalCustomerId | guid | OPTIONAL | FK into the international KYC schema. Null for domestic-only clients. |
currentKycAssessment | KycAssessmentLoad | OPTIONAL | Latest KYC assessment (see below). Null if no international / external KYC record exists. |
KycAssessmentLoad Schema
Returned on Client.currentKycAssessment for clients with an international or external-KYC record.
| Property | Type | Required | Description |
|---|---|---|---|
assessmentId | long | REQUIRED | — |
riskScore | decimal | OPTIONAL | — |
riskTier | string | OPTIONAL | — |
screeningStatus | string | OPTIONAL | — |
lastScreenedAt | datetime | OPTIONAL | — |
screeningProvider | string | OPTIONAL | — |
screeningRef | string | OPTIONAL | — |
adverseMediaFlag | bool | OPTIONAL | — |
pepMatchFlag | bool | OPTIONAL | — |
sanctionsMatchFlag | bool | OPTIONAL | — |
watchlistMatchFlag | bool | OPTIONAL | — |
reviewerId | string | OPTIONAL | — |
reviewedAt | datetime | OPTIONAL | — |
reviewOutcome | string | OPTIONAL | — |
reviewNotes | string | OPTIONAL | — |
nextReviewDue | datetime | OPTIONAL | — |
assessmentTrigger | string | OPTIONAL | — |
assessmentCreatedAt | datetime | REQUIRED | — |
assessmentCreatedBy | string | REQUIRED | — |
isExternalAttestation | bool | REQUIRED | True when this assessment came from a caller-supplied external KYC attestation rather than RAMFi’s own screening. |
TokenResponse Schema
| Property | Type | Required | Description |
|---|---|---|---|
| token | string | REQUIRED | The authentication token. |
| expiresAtUTC | datetime | OPTIONAL | Token expiration timestamp. |
| tokenHash | string | REQUIRED | Hash of the token. |
| tokenID | number | OPTIONAL | Token identifier. |
ClientBalances Schema
| Property | Type | Description |
|---|---|---|
| clientID | string | The client identifier. |
| amount | number (double) | Balance amount. |
| symbol | string | Currency symbol (BTC, USD, etc.). |
| currencyID | CurrencyType | Currency type enum. |
| tradable | boolean | Whether the balance is tradable. |
Supplement Schemas. Linked Account Intelligence, Card Operations & Digital Assets
AccountHolder Schema
| Property | Type | Description |
|---|---|---|
| linkedAccountId | string (UUID) | Identifier of the bank account this record represents. |
| name | string | Full name or business name on the bank account. |
| address | object | See structure below. |
| .streetAddress | string | Street address. |
| .additionalAddress | string | Apartment, suite, or unit. |
| .city | string | City. |
| .state | string | State / region. |
| .country | string | Country code. |
| .zip | string | Postal / ZIP code. |
LinkedAccountBalance Schema
| Property | Type | Description |
|---|---|---|
| linkedAccountId | string (UUID) | Identifier of the bank account this balance represents. |
| availableBalance | integer | Available balance in cents. Divide by 100 for dollar display. |
LinkedAccountHistory Schema
| Property | Type | Description |
|---|---|---|
| linkedAccountId | string (UUID) | Identifier of the bank account this history belongs to. |
| transactions | LinkedAccountTransaction[] | Array of enriched transaction objects for this account. |
LinkedAccountTransaction Schema
| Property | Type | Description |
|---|---|---|
| transactionId | string (UUID) | Unique transaction identifier. |
| accountId | string (UUID) | Linked bank account UUID. |
| amount | number (double) | Transaction amount. Positive = debit from account. |
| type | enum | debit or credit. |
| currency | string | ISO 4217 currency code. |
| pending | boolean | Whether the transaction has cleared. |
| enrichment.category | object | See structure below. |
| .value | string | Top-level merchant category name. |
| .confidence | number (0–100) | Confidence score for the category. |
| enrichment.subcategory | object | See structure below. |
| .value | string | Subcategory name. |
| .confidence | number (0–100) | Confidence score for the subcategory. |
AccountValidationResult Schema
| Property | Type | Description |
|---|---|---|
| confidenceScore | number (0.00–1.00) | Overall validation confidence. |
| validRoutingNumber | boolean | Whether the routing number is a valid ABA number. |
| nameMatch | enum | yes, no, or not_available. |
| taxpayerNumberMatch | enum | yes, no, or not_available. |
| phoneNumberPresent | boolean | Whether a phone number is associated with the account. |
| decisioningInsights | object | See structure below. |
| .accountDuplicate | boolean | Whether the account is flagged as a duplicate. |
| .daysSinceFirstSeen | integer | Days since the account was first observed. |
| .daysSinceLastTransaction | integer | Days since the most recent transaction. |
| .hasNegativeTransactions | boolean | Whether negative transaction history is on file. |
| .hasPaidTransactions | boolean | Whether the account has cleared transactions. |
| .hasPositiveTransactions | boolean | Whether the account has positive transaction history. |
TransactionRiskScore Schema
| Property | Type | Description |
|---|---|---|
| riskScore | number | Calculated risk score for the transaction. |
| validityExpiration | datetime (ISO 8601) | UTC timestamp after which the score should be re-fetched. |
WalletRiskAssessment Schema (KnowYourAddress response)
| Property | Type | Description |
|---|---|---|
| walletAddress | string | The wallet address that was assessed. |
| risk | enum | Low, Medium, High, or Severe. |
| riskReason | string | Human-readable explanation of the risk rating. |
| addressType | enum | PRIVATE_WALLET or LIQUIDITY_POOL. |
| cluster | object | See structure below. Null if no cluster. |
| .name | string | Cluster name. |
| .category | string | Cluster category. |
| addressIdentifications | array | List of address identifications, each item has the structure below. |
| .name | string | Identification name. |
| .address | string | Identified address. |
| .category | string | Category. |
| .description | string | Description. |
| .url | string | Source URL. |
| .createdAt | integer (epoch ms) | Creation timestamp. |
| .memo | string | Memo. |
| exposures | array | List of exposures, each item has the structure below. |
| .category | string | Entity category name. |
| .value | number | USD-denominated exposure amount. |
| .exposureType | enum | direct or indirect. |
| .direction | string | Direction. |
| triggers | array | List of triggered exposure rules, each item has the structure below. |
| .category | string | Triggering category. |
| .percentage | number | Percentage of exposure. |
| .message | string | Trigger summary. |
| .ruleTriggered | object | See structure below. |
| .risk | enum | Low, Medium, High, or Severe. |
| .minThreshold | number | Minimum threshold. |
| .maxThreshold | number | Maximum threshold. |
| .exposureType | enum | direct or indirect. |
| .direction | string | Direction. |
| poolMetadata | object | See structure below. Present only when addressType = LIQUIDITY_POOL. |
| .fees | number | Pool transaction fees. |
| .tokens | array<string> | Token symbols traded in the pool. |
| status | string | Always COMPLETE. |
BankAccount Schema (GetBankAccount response)
| Property | Type | Description |
|---|---|---|
| linkedAccountId | string (UUID) | Unique identifier for this bank account on file. |
| institutionName | string | Display name of the bank. |
| accountNickname | string | User-friendly account name. |
| accountType | enum | checking or savings. |
| last4 | string | Last 4 digits of the account number. |
| isDefault | boolean | True if this is the active default account for ACH originations. |
| linkedAt | datetime | Timestamp when this account was linked. |
Card Schema (GetCardOnFile response)
| Property | Type | Description |
|---|---|---|
| cardId | string (UUID) | RAMFi-issued token. Use in PullFromCard and PushToCard. |
| last4 | string | Last 4 digits of the card number. |
| cardBrand | enum | Visa, Mastercard, Discover, or Amex. |
| cardType | enum | Currently only debit is supported. |
| nickname | string | Optional user-friendly label. |
| capturedAt | datetime | Timestamp when the card was tokenized. |
CardTransaction Schema (Pull & Push response)
| Property | Type | Description |
|---|---|---|
| transactionID | string | RAMFi transaction ID. Store for reconciliation. |
| status | enum | Approved or Declined. |
| amount | number | Transaction amount. |
| externalReference | string | Your externalReference echoed back for confirmation. |
Standard Response Envelope
All RAMFi API endpoints return responses wrapped in this consistent envelope:
JSON
{
"isSuccess": true, // or false on error
"result": { ... }, // the typed return model, null on error
"errorMessage": "" // populated when isSuccess = false
}
RAMFi Developer Documentation · Version 1.1