RAMFi API
Unified payment infrastructure for fiat and digital assets. Expand any endpoint to see its path, parameters, example responses for each status code, and a working cURL generator. Client SDKs are documented on the SDK Reference page.
ProvisionToken with your Main Token and an X-OTP derived from your TOTP seed.Authorization: Bearer <short-term token> and a fresh X-OTP.Provisions a short-term security token for authenticated API access in order to limit usage of your main token. Short-term tokens expire based on the STTokenExpiration parameter (in seconds). The value must be greater than zero and cannot be larger than 5184000 (60 days).
| Parameter | Type | Required | Description |
|---|---|---|---|
| STTokenExpiration | integer | REQUIRED | Token lifetime in seconds. Must be greater than 0 and at most 5184000 (60 days). |
200 OKSuccess▾
Returns: TokenResponse
| Field | Type | Description |
|---|---|---|
| token | string | Short-term bearer token to use on subsequent calls. |
| expiresAtUTC | string (ISO-8601) | Expiry timestamp (UTC). |
| tokenHash | string | Hash of the issued token. |
| tokenID | number | Numeric ID of the token record. |
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the Main Token is invalid or the X-OTP value is missing, expired, or incorrect.
Immediately expires an active short-term token. Use this for logout functionality or when a token needs to be revoked.
| Parameter | Type | Required | Description |
|---|---|---|---|
| STTokenID | number (double) | OPTIONAL | The token ID to expire. |
200 OKSuccess▾
Success - no response body is returned.
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the Main Token is invalid or the X-OTP value is missing, expired, or incorrect.
Creates a new client and runs verification. A single request covers both the domestic schema and an international / KYC-extended schema. For a US consumer, the fields below are enough; for a business entity set businessName and dateOfFormation and include beneficial owners; for a non-domestic client add an international object (see Optional Extensions). clientID must be unique. Supply valid routing and account numbers to draft funds directly from a client bank account; an accountStatus of Active means the client can be drafted.
| Field | Type | Required | Description |
|---|---|---|---|
| firstName | string | REQUIRED | Client's legal first name. |
| lastName | string | REQUIRED | Client's legal last name. |
| address | string | REQUIRED | Street address. |
| city | string | REQUIRED | City. |
| state | string | REQUIRED | State code. |
| zip | string | REQUIRED | ZIP code. |
| taxID | string | REQUIRED | SSN (or EIN for business accounts). |
| dob | string (date) | REQUIRED | Date of birth (YYYY-MM-DD). |
| clientID | string | REQUIRED | Your external identifier for this client. |
| string | REQUIRED | Email address (validated). |
Core domestic fields shown. ClientCreate also accepts optional international / KYB (business) / banking-identifier / government-ID extensions — see the collapsible blocks below.
The domestic body above is enough for a standard US consumer. To onboard internationally, verify a business, attach extra identifiers/documents, or supply a pre-existing KYC result, add any of these optional objects to the same request body.
International onboarding — international▾
Include an international object to onboard a non-domestic client. Everything here is optional except primaryAddress.country.
| Field | Type | Required | Description |
|---|---|---|---|
countryOfOnboarding | string | OPTIONAL | ISO 3166-1 alpha-2 country where onboarding took place. |
intakeChannel | string | OPTIONAL | One of web, api, manual, batch. |
dataSourceReference | string | OPTIONAL | Your reference to the source record. |
fullNameRaw | string | OPTIONAL | Full name exactly as captured, unnormalised. |
nameScript | string | OPTIONAL | Original script of the name (e.g. Cyrillic, Han). |
nameRomanized | string | OPTIONAL | Romanised form of the name. |
nameAlternate | string | OPTIONAL | Any alternate / former name. |
namePrefix / nameSuffix | string | OPTIONAL | Honorific prefix / generational suffix. |
nationalities | string | OPTIONAL | Comma-separated ISO codes for dual nationals, e.g. DE,US. |
countryOfResidence | string | OPTIONAL | ISO 3166-1 alpha-2 country of residence. |
placeOfBirthCity | string | OPTIONAL | — |
placeOfBirthCountry | string | OPTIONAL | ISO 3166-1 alpha-2. |
gender | string | OPTIONAL | Free text; unconstrained. |
primaryAddress | object | OPTIONAL | International address — see the table below. |
international.primaryAddress
| Field | Type | Required | Description |
|---|---|---|---|
addressType | string | OPTIONAL | One of residential, mailing, business, registered, other. |
addressLine1 / addressLine2 | string | OPTIONAL | Street lines. |
locality | string | OPTIONAL | City / town. |
adminArea1 / adminArea2 | string | OPTIONAL | State / province and sub-division. |
postalCode | string | OPTIONAL | — |
country | string | REQUIRED | ISO 3166-1 alpha-2. Required within primaryAddress. |
addressRaw | string | OPTIONAL | Full address as captured. |
Business & beneficial owners (KYB) — businessName, dateOfFormation, beneficialOwners[]▾
For a business entity, set the top-level businessName and dateOfFormation, then provide beneficialOwners (an array, maximum 4). Supplying businessName drives KYB verification instead of KYC.
| Field | Type | Required | Description |
|---|---|---|---|
firstName / lastName | string | OPTIONAL | Owner name. |
taxID | string | OPTIONAL | SSN or equivalent. |
dob | date | OPTIONAL | YYYY-MM-DD. |
address / city / state / zip | string | OPTIONAL | Owner address. |
phone | string | OPTIONAL | — |
ownershipPercentage | number | REQUIRED | 0–100. Required for each owner. |
isControlPerson | bool | OPTIONAL | True if this owner is a control person. |
existingKycResult | object | OPTIONAL | Optional per-owner external KYC attestation (same shape as below). |
Banking identifiers — bankingIdentifiers[]▾
Provide bankingIdentifiers (an array) to attach international bank/account references.
| Field | Type | Required | Description |
|---|---|---|---|
identifierType | string | OPTIONAL | One of iban, ach_routing_account, bsb, ifsc, sort_code, clabe, swift_bic, eft_transit, nz_account, crypto_address, other. |
identifierValue | string | REQUIRED | The identifier itself (the IBAN, IFSC, wallet address, etc.). |
routingNumber / accountNumber | string | OPTIONAL | When the scheme uses them. |
bankName / bankCountry / bankSwiftBic | string | OPTIONAL | Bank details; country is ISO 3166-1 alpha-2. |
currencyCode | string | OPTIONAL | ISO 4217 currency of the account, e.g. EUR. |
accountHolderName | string | OPTIONAL | Flagged for review if it differs from the customer name. |
isPrimary | bool | OPTIONAL | Marks the primary banking identifier. |
Government IDs — governmentIds[]▾
Provide governmentIds (an array) to attach identity documents.
| Field | Type | Required | Description |
|---|---|---|---|
idType | string | OPTIONAL | One of passport, national_id, driver_license, tax_id, residence_permit, voter_id, social_security, birth_certificate, other. |
idNumber | string | REQUIRED | The document number. |
issuingCountry | string | REQUIRED | ISO 3166-1 alpha-2. |
issuingAuthority | string | OPTIONAL | — |
issueDate / expiryDate | date | OPTIONAL | YYYY-MM-DD. |
isPrimary | bool | OPTIONAL | Marks the primary identity document. |
External KYC attestation — existingKycResult▾
existingKycResult is supplied, RAMFi records it as the client’s initial KYC assessment and does not run its own LexisNexis pass. The enrolling party is responsible for the accuracy of the data supplied.| Field | Type | Required | Description |
|---|---|---|---|
performedBy | string | REQUIRED | Who performed the screening, e.g. "Acme Debt Solutions". |
screeningProvider | string | OPTIONAL | e.g. LexisNexis, Onfido, Socure, manual_review. |
screeningReference | string | OPTIONAL | Provider-side reference. |
screenedAt | datetime | REQUIRED | ISO 8601 timestamp of the screening. |
riskTier | string | REQUIRED | One of low, medium, high, unacceptable. |
riskScore | number | OPTIONAL | Numeric risk score, if available. |
sanctionsMatch / pepMatch | bool | OPTIONAL | Sanctions / politically-exposed-person hits. |
adverseMediaMatch / watchlistMatch | bool | OPTIONAL | Adverse-media / watchlist hits. |
outcome | string | REQUIRED | One of approved, declined, in_review. |
reviewNotes | string | OPTIONAL | — |
expiresAt | datetime | OPTIONAL | Defaults to screenedAt + 1 year if omitted. |
200 OKSuccess▾
Returns: Client
| Field | Type | Description |
|---|---|---|
| id | string | Internal RAMFi ID for the client. |
| clientID | string | Your external client identifier. |
| firstName / lastName / middleInitial | string | Client name. |
| address / address2 / city / state / zip | string | Mailing address. |
| taxID | string | Tax ID / SSN. |
| dob | date | Date of birth. |
| email / phone | string | Contact details. |
| accountStatus | AccountStatus | Current account status (see AccountStatus enum). Active means the client can transact. |
| bankAccount / bankRouting / bankNameOnAccount | string | Bank details on file for ACH. |
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Retrieves the full client record for a single clientId - profile, contact details, account status, and masked bank details. Use it to confirm onboarding state (for example that KYC passed and accountStatus is Active) before initiating funding, or to sync client state into your system.
Note: confirm availability of this endpoint in your environment with RAMFi.
| Parameter | Type | Required | Description |
|---|---|---|---|
| clientId | string | OPTIONAL | The RAMFi client ID. Supply this or userId. |
| userId | guid | OPTIONAL | Alternate lookup by internal user ID. Supply this or clientId. |
200 OKSuccess▾
| Field | Type | Description |
|---|---|---|
| id | string | Internal RAMFi ID for the client. |
| clientID | string | Your external client identifier. |
| firstName / lastName / middleInitial | string | Client name. |
| address / address2 / city / state / zip | string | Mailing address. |
| taxID | string | Tax ID / SSN. |
| dob | date | Date of birth. |
| email / phone | string | Contact details. |
| accountStatus | AccountStatus | Current account status (see AccountStatus enum). Active means the client can transact. |
| bankAccount / bankRouting / bankNameOnAccount | string | Bank details on file for ACH. |
A Client object (bank fields masked). See Data Models for the full schema. Values are illustrative.
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Returns every client on file for the calling company. Useful for a full sync or a company-wide dashboard. Bank details are masked in the response, and each client's accountStatus reflects its current lifecycle state.
200 OKSuccess▾
Returns: Array of Client - see Data Models for the full schema.
| Field | Type | Description |
|---|---|---|
| id | string | Internal RAMFi ID for the client. |
| clientID | string | Your external client identifier. |
| firstName / lastName / middleInitial | string | Client name. |
| address / address2 / city / state / zip | string | Mailing address. |
| taxID | string | Tax ID / SSN. |
| dob | date | Date of birth. |
| email / phone | string | Contact details. |
| accountStatus | AccountStatus | Current account status (see AccountStatus enum). Active means the client can transact. |
| bankAccount / bankRouting / bankNameOnAccount | string | Bank details on file for ACH. |
An array of Client objects (bank fields masked). Values are illustrative.
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Updates existing client information. Only the fields provided in the request body will be updated. Use this for address changes, contact information updates, and returning a client to Active status after a hold.
The same optional international, bankingIdentifiers, and existingKycResult blocks documented under Create Client can be sent here to update or attach international / external-KYC data (the update variant resolves the customer internally, so it does not take a customer ID). taxID and dob cannot be changed via this endpoint.
| Parameter | Type | Required | Description |
|---|---|---|---|
| consumerId | integer | OPTIONAL | Internal numeric identifier for the client to update. |
| Field | Type | Required | Description | Value |
|---|---|---|---|---|
| clientID | string | REQUIRED | Your external identifier for the client to update. | |
| accountStatus | AccountStatus | optional | New account status (see AccountStatus enum), e.g. to clear a hold back to Active. |
Minimal example shown. ClientUpdate also supports name, address, email, and bank fields (not taxID/dob). The consumerId query parameter is required.
200 OKSuccess▾
Success - no response body is returned.
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Closes a client account. Typically used when a program is completed or when a client requests account closure. If a client is closed with balances, those balances are converted to fiat and refunded to the client within 5 business days of account closure.
| Parameter | Type | Required | Description |
|---|---|---|---|
| clientId | string | OPTIONAL | The client ID to close. Obtain via Create Client. |
200 OKSuccess▾
Success - no response body is returned.
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Uploads a document for a client. The docBody should be a base64-encoded PDF of the document. Common document types include ID verification and ACH agreements. This endpoint is typically the second step after NewClient in order to provide an ACH authorization for drafting a client bank account.
| Field | Type | Required | Description | Value |
|---|---|---|---|---|
| clientID | string | REQUIRED | The client to attach the document to. | |
| docType | DocumentType | REQUIRED | Document type (see DocumentType enum), e.g. ID_VERIFICATION / ACH_AGREEMENT. | |
| docBody | string | REQUIRED | Base64-encoded document body. |
200 OKSuccess▾
Returns a number (double) - the document ID. The value shown is illustrative.
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Retrieves the processing status of a previously uploaded document. Returns a numeric status code indicating approval, rejection, or pending review. Documents are initially uploaded with a pending status and move to approved or rejected typically within 1 business day.
| Parameter | Type | Required | Description |
|---|---|---|---|
| documentId | number (double) | OPTIONAL | The document ID. Obtain via Add Document. |
| clientId | string | OPTIONAL | The client ID. Obtain via Create Client. |
200 OKSuccess▾
Returns a number (double) - status code. The value shown is illustrative.
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Retrieves balances for all of your clients across all currencies. Useful for reconciliation reports and dashboard summaries. Returns both tradable and non-tradable balances. PUSD balances are funds pending from ACH drafts; funds from a client draft (AddClientFunds) are pending for 2 business days before being available.
200 OKSuccess▾
Returns: Array of ClientBalances
| Field | Type | Description |
|---|---|---|
| clientID | string | The client the balance belongs to. |
| amount | decimal | Balance amount. |
| symbol | string | Currency symbol (e.g. USD, BTC). |
| currencyID | CurrencyType | Currency identifier (see CurrencyType enum). |
| tradable | boolean | Whether the balance is tradable (PUSD is non-tradable until it clears). |
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Retrieves balances for specific clients. Pass multiple clientIds to get balances for several clients at once. Useful for client-specific dashboards and account pages. Returns both tradable and non-tradable balances. PUSD balances are funds pending from ACH drafts; funds from a client draft are pending for 2 business days before being available.
| Parameter | Type | Required | Description |
|---|---|---|---|
| clientIds | array[string] | REQUIRED | One or more client IDs; at least one must be supplied. Obtain via Create Client. |
200 OKSuccess▾
| Field | Type | Description |
|---|---|---|
| clientID | string | The client the balance belongs to. |
| amount | decimal | Balance amount. |
| symbol | string | Currency symbol (e.g. USD, BTC). |
| currencyID | CurrencyType | Currency identifier (see CurrencyType enum). |
| tradable | boolean | Whether the balance is tradable (PUSD is non-tradable until it clears). |
Array of ClientBalances objects - see the Data Models page for the full schema. Values are illustrative.
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Converts client funds between different currencies (USD to BTC, BTC to USDC, etc.) at the current market rate at time of conversion. The externalReference helps track the conversion in your system.
| Field | Type | Required | Description | Value |
|---|---|---|---|---|
| clientID | string (UUID) | REQUIRED | The client whose funds to convert. | |
| amount | number | REQUIRED | Amount to convert. | |
| fromCurrencyID | CurrencyType | REQUIRED | Source currency (see CurrencyType enum). | |
| toCurrencyID | CurrencyType | REQUIRED | Target currency (see CurrencyType enum). | |
| externalReference | string | REQUIRED | Your unique reconciliation key. |
200 OKSuccess▾
Returns a number (double) - Conversion transaction ID. The value shown is illustrative.
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Returns the current spot exchange rate for a currency pair (fiat or digital asset), as an OHLC quote. Use it to preview a rate before calling Convert Client Funds; the actual conversion always executes at the market rate at time of conversion, which may differ from this quote.
| Parameter | Type | Required | Description |
|---|---|---|---|
| baseCurrency | CurrencyType | REQUIRED | The base currency of the pair. See CurrencyType. |
| quoteCurrency | CurrencyType | REQUIRED | The quote currency of the pair. See CurrencyType. |
200 OKSuccess▾
Returns: SpotPriceResponse
| Field | Type | Description |
|---|---|---|
| time | string (ISO-8601) | Timestamp of the quote candle. |
| open / high / low / close | number | OHLC prices; close is the current price. |
| base_volume | number | Volume in the base currency. |
| quote_volume | number | Volume in the quote currency. |
SpotPriceResponse - an OHLC candle for the pair. close is the current price. Values are illustrative.
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Retrieves the complete transaction ledger for a specific client. Shows all debits, credits, fees, and balance changes. Essential for account statements and transaction history displays.
| Parameter | Type | Required | Description |
|---|---|---|---|
| clientId | string | REQUIRED | The client ID. Obtain via Create Client. |
200 OKSuccess▾
Returns: ClientLedgerResponse
| Field | Type | Description |
|---|---|---|
| clientId | string | The client the ledger belongs to. |
| entries[] | array | Ledger entries. |
| entries[].date / scheduledDate | string | Entry date / scheduled date. |
| entries[].action | string | Movement type for the entry. |
| entries[].amount | decimal | Entry amount. |
| entries[].notes | string | Free-form notes. |
| entries[].feeName | string | Fee name, when the entry is a fee. |
| entries[].scheduleID / checkID | string | Schedule / check references, when applicable. |
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Retrieves information about returned ACH drafts within a date range. Critical for tracking failed payments, understanding return reasons (NSF, account closed, etc.), and taking collection actions. Clients who return a draft are set to Hold status and must be set back to active using UpdateClient before a subsequent draft can be attempted.
| Parameter | Type | Required | Description |
|---|---|---|---|
| startDate | date | REQUIRED | Start of the range. Must be on or before endDate. |
| endDate | date | REQUIRED | End of the range. The window from startDate cannot exceed 365 days. |
200 OKSuccess▾
Returns: Array of DraftReturns
| Field | Type | Description |
|---|---|---|
| clientID / clientName | string | The client whose draft was returned. |
| amount | decimal | Returned draft amount. |
| draftDate | string | Original draft date. |
| returnReason | string | Reason for the return (e.g. NSF, closed account). |
| returnDate | string | When the return posted. |
| externalID | string | Your external reference for the draft. |
| paymentID | string | RAMFi payment identifier. |
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Returns a list of all clients with accounts on hold. Accounts are typically placed on hold due to returned payments, compliance issues, or client requests. Use this for operations dashboards and exception management.
200 OKSuccess▾
Returns: Array of HeldClient
| Field | Type | Description |
|---|---|---|
| clientID | string | The held client. |
| firstName / lastName | string | Client name. |
| createDate | string | Account creation date. |
| statusDate | string | When the hold status was set. |
| accountStatus | AccountStatus | Current status (Hold). |
| lastReturnDate | string | Date of the last returned draft. |
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Retrieves all transactions updated on or after a specific date. Can be filtered by clientId for client-specific transaction history. Essential for daily reconciliation and transaction monitoring.
| Parameter | Type | Required | Description |
|---|---|---|---|
| updateDate | date | REQUIRED | Returns transactions updated on or after this date. Cannot be more than 365 days in the past. |
| clientId | string | OPTIONAL | Filter by client ID (default: ""). Obtain via Create Client. |
200 OKSuccess▾
Returns: Array of Transactions
| Field | Type | Description |
|---|---|---|
| transactionID | string | RAMFi transaction identifier. |
| clientID | string | The client on the transaction. |
| action / description | string | Transaction type and description. |
| transactionDate / updateDate | string | When it occurred / was last updated. |
| amount | decimal | Transaction amount. |
| payee | string | Payee, when applicable. |
| feeName | string | Fee name, when the row is a fee. |
| tCode / tSubCode / tSubSubCode | string | Transaction classification codes. |
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Returns the verified account holder name and address associated with a client's linked bank account. This is typically called after the Bank Connection SDK flow completes to confirm the name on the account matches your client's identity.
Note: KYB / KYC status is not returned by this endpoint. Use the appropriate Client Management endpoint to retrieve KYB and verification status separately.
| Parameter | Type | Required | Description |
|---|---|---|---|
| clientId | string (UUID) | REQUIRED | The RAMFi clientID for the end user. Obtain via Create Client. |
| linkedAccountId | string (UUID) | REQUIRED | The specific bank account to query. Obtain via Bank Connection SDK. |
200 OKSuccess▾
Returns: AccountHolder - name and address on file for the specified bank account.
| 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 | Street address on the account (streetAddress, additionalAddress, city, state, country, zip). |
Endpoint returns an array of these objects — one per linked account.
| Status | Description |
|---|---|
| 401 | Unauthorized - invalid or expired token |
| 404 | Client or linkedAccountId not found |
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Fetches the available balance for a specific linked bank account. Useful for pre-transaction validation - checking sufficient funds before initiating an ACH draft - or for displaying balance data to clients in your application. The account must have been connected via the Bank Connection SDK; accounts linked through other methods will return a 403.
| Parameter | Type | Required | Description |
|---|---|---|---|
| clientId | string (UUID) | REQUIRED | The RAMFi clientID for the end user. Obtain via Create Client. |
| linkedAccountId | string (UUID) | REQUIRED | The specific bank account to query. Obtain via Bank Connection SDK. |
200 OKSuccess▾
Returns: LinkedAccountBalance
| 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 | Street address on the account (streetAddress, additionalAddress, city, state, country, zip). |
Endpoint returns an array of these objects — one per linked account.
availableBalance is returned in cents as an integer. Divide by 100 to display as dollars (e.g., 25425 → $254.25).| Status | Description |
|---|---|
| 401 | Unauthorized - invalid or expired token |
| 403 | Invalid account type - one or more accounts not linked via Bank Connection SDK |
| 404 | Client or linkedAccountId not found |
| 406 | Merchant configuration error - contact RAMFi support |
| 503 | Unable to retrieve balance - bank aggregator unavailable, retry with backoff |
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Retrieves the transaction history for a specific linked bank account, including enriched merchant data, transaction categories, and subcategories powered by the aggregator's intelligence layer. This endpoint only works for accounts linked through the Bank Connection SDK. Use this to display account activity, support underwriting decisions, or perform cash flow analysis. Each transaction includes a confidence-scored category and subcategory for consistent classification.
| Parameter | Type | Required | Description |
|---|---|---|---|
| clientId | string (UUID) | REQUIRED | The RAMFi clientID for the end user. Obtain via Create Client. |
| linkedAccountId | string (UUID) | REQUIRED | The specific bank account to query. Obtain via Bank Connection SDK. |
200 OKSuccess▾
Returns: LinkedAccountHistory - transaction list for the specified account.
| Field | Type | Description |
|---|---|---|
| transactionId | string (UUID) | Unique identifier for this transaction. |
| accountId | string (UUID) | The linked bank account UUID this transaction belongs to. |
| amount | number (double) | Transaction amount. Positive values are debits from the account. |
| type | string (enum) | debit or credit. |
| currency | string | ISO 4217 currency code (e.g. USD). |
| date | date | Date of the transaction (midnight UTC). |
| datetime | datetime | Precise timestamp of the transaction when available. |
| description | string | Cleaned, human-readable merchant name. |
| rawDescription | string | Original unprocessed description from the bank. |
| pending | boolean | Whether the transaction has cleared or is still pending. |
| enrichment.category | object | Top-level merchant category with confidence score (0–100). |
| enrichment.subcategory | object | Subcategory classification with confidence score (0–100). |
| enrichment.merchant.id | string (UUID) | Internal merchant identifier for deduplication. |
| Field | Type | Description |
|---|---|---|
| transactionId | string (UUID) | Unique identifier for this transaction. |
| accountId | string (UUID) | The linked bank account UUID this transaction belongs to. |
| amount | number (double) | Transaction amount. Positive values are debits from the account. |
| type | string (enum) | debit or credit. |
| currency | string | ISO 4217 currency code (e.g. USD). |
| date | date | Date of the transaction (midnight UTC). |
| datetime | datetime | Precise timestamp of the transaction when available. |
| description | string | Cleaned, human-readable merchant name. |
| rawDescription | string | Original unprocessed description from the bank. |
| pending | boolean | Whether the transaction has cleared or is still pending. |
| enrichment.category | object | See structure below. |
| .value | string | Top-level merchant category name. |
| .confidence | number (0–100) | Confidence score for the category classification. |
| enrichment.subcategory | object | See structure below. |
| .value | string | Subcategory name. |
| .confidence | number (0–100) | Confidence score for the subcategory classification. |
| enrichment.merchant.id | string (UUID) | Internal merchant identifier for deduplication. |
| Status | Description |
|---|---|
| 401 | Unauthorized - invalid or expired token |
| 403 | Forbidden - one or more accounts not linked via Bank Connection SDK, or retrieval failed |
| 404 | Client or linkedAccountId not found |
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Validates bank account information by combining account, location, and identity data to produce a
confidence score and decisioning insights. Only bankAccount is required; identity,
address, and actions are optional.
| Header | Type | Required | Description |
|---|---|---|---|
| X-Idempotency-Key | string | OPTIONAL | Idempotency key to safely retry the request. Same key + same payload returns the original response within ~24 hours. |
| Parameter | Type | Required | Description |
|---|---|---|---|
| clientID | string (UUID) | REQUIRED | The RAMFi clientID for the end user. |
| bankAccount | object | REQUIRED | Bank account to validate. Includes accountNumber, routingNumber, and accountType. |
| identity | object | OPTIONAL | Identity fields to match against. |
| address | object | OPTIONAL | Address to match against. |
| actions | object | OPTIONAL | Toggle specific checks: nameMatch and taxpayerNumberMatch. |
| Parameter | Type | Required | Description |
|---|---|---|---|
| clientID | string (UUID) | REQUIRED | The RAMFi clientID for the end user. Obtain via Create Client. |
| bankAccount | object | REQUIRED | See structure below. |
| .accountNumber | string | REQUIRED | Bank account number. |
| .routingNumber | string | REQUIRED | 9-digit ABA routing number. |
| .accountType | enum | - | checking or savings. |
| identity | object | OPTIONAL | See structure below. |
| .firstName | string | - | First name on the account. |
| .lastName | string | - | Last name on the account. |
| .middleName | string | - | Middle name. |
| .prefix | string | - | Name prefix (e.g. Mr., Dr.). |
| .suffix | string | - | Name suffix (e.g. Jr., Sr.). |
| string | - | Email address. | |
| .phoneNumber | string | - | Phone number. |
| .ssn | string | - | Social Security Number. |
| .deviceId | string | - | Device identifier. |
| address | object | OPTIONAL | 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. |
| actions | object | OPTIONAL | See structure below. |
| .nameMatch | boolean | - | Whether to perform a name match check. |
| .taxpayerNumberMatch | boolean | - | Whether to perform a taxpayer number match check. |
200 OKSuccess▾
Returns: AccountValidationResult
| Field | Type | Description |
|---|---|---|
| confidenceScore | number (0.00–1.00) | Overall validation confidence. |
| validRoutingNumber | boolean | Whether the supplied routing number is valid. |
| 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.accountDuplicate | boolean | Whether the account is flagged as a duplicate. |
| decisioningInsights.daysSinceFirstSeen | integer | Days since the account was first observed. |
| decisioningInsights.daysSinceLastTransaction | integer | Days since the most recent transaction on the account. |
| decisioningInsights.hasNegativeTransactions | boolean | Whether negative transaction history is on file. |
| decisioningInsights.hasPaidTransactions | boolean | Whether the account has cleared transactions. |
| decisioningInsights.hasPositiveTransactions | boolean | Whether the account has positive transaction history. |
| Field | Type | Description |
|---|---|---|
| confidenceScore | number (0.00–1.00) | Overall validation confidence. |
| validRoutingNumber | boolean | Whether the supplied routing number is valid. |
| 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 on the account. |
| .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. |
| Status | Description |
|---|---|
| 400 | Invalid request. Response includes errors[].field and errors[].message. |
| 409 | Idempotency key reused for a different endpoint |
| 429 | Rate limit exceeded. Retry after the time specified in the Retry-After response header. |
| 503 | Service not available |
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Assesses Accounts Receivable transaction risk using payor, payee (with beneficial owners), and transaction amount. Returns a numerical risk score and a validity expiration timestamp.
| Header | Type | Required | Description |
|---|---|---|---|
| X-Idempotency-Key | string | OPTIONAL | Idempotency key to safely retry the request within ~24 hours. |
| Parameter | Type | Required | Description |
|---|---|---|---|
| clientID | string (UUID) | REQUIRED | The RAMFi clientID for the end user. |
| amount | number | REQUIRED | Transaction amount. |
| payor | object | REQUIRED | Payor object. Structure not yet confirmed from source — see warning above. |
| payee | object | REQUIRED | Payee object containing accountNumber, address, and beneficialOwners. |
| payee.beneficialOwners | array | — | Array of beneficial owner records, each with identity fields and role flags. |
| Parameter | Type | Required | Description |
|---|---|---|---|
| clientID | string (UUID) | REQUIRED | The RAMFi clientID for the end user. Obtain via Create Client. |
| amount | number | REQUIRED | Transaction amount. |
| payor | object | REQUIRED | See structure below. |
| .accountNumber | string | - | Payor's bank account number. |
| .address | object | - | Payor's address (city, state, street1, street2, zip). |
| payee | object | REQUIRED | See structure below. |
| .accountNumber | string | - | Payee's bank account number. |
| .address | object | - | Payee's address. |
| .city | string | - | City. |
| .state | string | - | State / region. |
| .street1 | string | - | Street address line 1. |
| .street2 | string | - | Street address line 2. |
| .zip | string | - | Postal / ZIP code. |
| .beneficialOwners | array | - | Array of beneficial owner records - see structure below. |
| .firstName | string | - | Owner's first name. |
| .lastName | string | - | Owner's last name. |
| string | - | Owner's email. | |
| .dob | string (YYYY-MM-DD) | - | Date of birth. |
| .address | object | - | Owner's address (city, state, street1, street2, zip). |
| .isAccountOwner | boolean | - | True if the person is the account owner. |
| .isBeneficialOwner | boolean | - | True if the person is a beneficial owner. |
| .isDirector | boolean | - | True if the person is a director. |
| .isShareHolder | boolean | - | True if the person is a shareholder. |
| .isSignificantControlPerson | boolean | - | True if the person has significant control. |
200 OKSuccess▾
Returns: TransactionRiskScore
| Field | Type | Description |
|---|---|---|
| riskScore | number | Calculated risk score for the transaction. |
| validityExpiration | datetime (ISO 8601) | UTC timestamp indicating when the score expires. |
| Field | Type | Description |
|---|---|---|
| riskScore | number | Calculated risk score for the transaction. |
| validityExpiration | datetime (ISO 8601) | UTC timestamp indicating when the score expires. |
| Status | Description |
|---|---|
| 400 | Bad request - invalid data. Response includes errors[].field and errors[].message. |
| 401 | Unauthorized request |
| 409 | Idempotency key reused for a different endpoint or payload |
| 500 | Internal server error - retry with backoff |
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Returns all bank accounts on file for a given client, with a flag identifying which one is currently
set as the default. The default account is the one used for ACH originations
(AddClientFunds, WithdrawClientFunds). Use this endpoint to display saved
accounts to your end users for selection, or before calling UpdateDefaultBankAccount
to change which account is active.
| Parameter | Type | Required | Description |
|---|---|---|---|
| clientId | string (UUID) | REQUIRED | The RAMFi clientID for the end user. Obtain via Create Client. |
200 OKSuccess▾
Returns: BankAccountList - array of bank accounts on file with default flag.
| Field | 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 (e.g. "Total Checking"). |
| accountType | enum | checking or savings. |
| last4 | string | Last 4 digits of the account number for display purposes. |
| isDefault | boolean | Indicates whether this account is the active default for ACH originations. Only one account per client will have this set to true. |
| linkedAt | datetime | Timestamp when this account was originally linked. |
| Field | Type | Description |
|---|---|---|
| linkedAccountId | string (UUID) | Unique identifier for this bank account on file. Obtain via Bank Connection SDK. |
| institutionName | string | Display name of the bank. |
| accountNickname | string | User-friendly account name (e.g. "Total Checking"). |
| accountType | enum | checking or savings. |
| last4 | string | Last 4 digits of the account number for display purposes. |
| isDefault | boolean | Indicates whether this account is the active default for ACH originations. Only one account per client will have this set to true. |
| linkedAt | datetime | Timestamp when this account was originally linked. |
| Status | Description |
|---|---|
| 401 | Unauthorized - invalid or expired token |
| 404 | Client not found, or no bank accounts on file |
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Sets or updates the default bank account used for ACH origination endpoints
(AddClientFunds, WithdrawClientFunds), which do not accept a per-call
account identifier. Provide the full account details below; only one account is the default at a
time - calling this endpoint replaces the previous default.
| Field | Type | Required | Description | Value |
|---|---|---|---|---|
| clientID | string | REQUIRED | The client whose default account to set. | |
| userID | string (GUID) | optional | Alternate client lookup. | |
| accountNumber | string | REQUIRED | Bank account number (max 40 chars). | |
| routingNumber | string | REQUIRED | ABA routing number (max 9 chars). | |
| nameOnAccount | string | REQUIRED | Name on the bank account. | |
| accountType | number (int) | REQUIRED | Account type (int, must be > 0). See BankAccountType enum. |
200 OKSuccess▾
| Status | Description |
|---|---|
| 401 | Unauthorized - invalid or expired token |
| 404 | Client not found |
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Returns all cards on file for a given client, including their RAMFi-issued cardId tokens
and display metadata (last 4 digits, brand). Use this to populate card selection UIs in your
application or to retrieve a cardId for use in PullFromCard or
PushToCard when your backend needs to initiate a transaction without a fresh user session.
Note: Card numbers, expiry dates, and CVVs are never returned. Only the tokenized cardId and display fields are exposed.
| Parameter | Type | Required | Description |
|---|---|---|---|
| clientId | string (UUID) | REQUIRED | The RAMFi clientID for the end user. Obtain via Create Client. |
200 OKSuccess▾
Returns: CardList - array of cards on file.
| Field | Type | Description |
|---|---|---|
| cardId | string (UUID) | RAMFi-issued token for this card. Use in PullFromCard and PushToCard. |
| last4 | string | Last 4 digits of the card number for display purposes. |
| cardBrand | enum | Visa, Mastercard, Discover, or Amex. |
| cardType | enum | Currently only debit is supported. |
| nickname | string | Optional user-friendly label for this card. |
| capturedAt | datetime | Timestamp when this card was originally tokenized. |
| Field | Type | Description |
|---|---|---|
| cardId | string (UUID) | RAMFi-issued token for this card (a tokenized card identifier, never a raw PAN). Use in PullFromCard and PushToCard. Retrieve stored cards via Get Card on File. |
| last4 | string | Last 4 digits of the card number for display purposes. |
| cardBrand | enum | Visa, Mastercard, Discover, or Amex. |
| cardType | enum | Currently only debit is supported. |
| nickname | string | Optional user-friendly label for this card. |
| capturedAt | datetime | Timestamp when this card was originally tokenized. |
| Status | Description |
|---|---|
| 401 | Unauthorized - invalid or expired token |
| 404 | Client not found, or no cards on file |
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Registers a new wallet address in the system. The addressIdentifier is a label for the address (e.g. 'Main BTC Wallet', 'Client Deposit Address'). Addresses are validated for AML purposes before being approved.
Know Your Address (KYA) screening runs automatically in the background as part of registration: the address is risk-assessed and AML-screened before it is approved. There is no separate KYA endpoint to call — a high-risk address is rejected here.
| Parameter | Type | Required | Description |
|---|---|---|---|
| address | string | OPTIONAL | The wallet address. |
| addressIdentifier | string | OPTIONAL | A friendly name for the address. |
200 OKSuccess▾
Success - no response body is returned.
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Adds funds to a client's account. This endpoint should only be used for setting up a draft from a client's bank account via ACH. The account drafted is the banking information provided for the client, and the draft occurs on the payment date you specify if the client is active and has an approved ACH authorization on file. The externalReference should be a unique transaction ID from your system for reconciliation.
| Field | Type | Required | Description | Value |
|---|---|---|---|---|
| clientID | string | REQUIRED | The client to fund. | |
| amount | number | REQUIRED | USD amount to draft via ACH. | |
| transactionDate | string (date) | optional | Date to initiate the ACH draft (YYYY-MM-DD). | |
| externalReference | string | REQUIRED | Your unique reconciliation key. |
200 OKSuccess▾
Returns a number (double) - Transaction ID. The value shown is illustrative.
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Enters a pending deposit into the ledgering system for this client. Use this for money the customer pushes to RAMFi — most commonly a wire or RTP transfer, but also a deposit from a company merchant account or any other source that is not an ACH draft. To pull funds from the client's linked bank instead, use Add Client Funds.
Call Get Deposit Info first to obtain the receiving bank coordinates and the client's memoID, and have the customer put that memoID on the wire. Set clientReference to the same value so the deposit can be matched and attributed when it lands. The expectedDepositDate helps with identifying incoming deposits.
| Field | Type | Required | Description | Value |
|---|---|---|---|---|
| clientID | string | REQUIRED | The client the pending deposit is for. | |
| externalTransactionID | string | REQUIRED | External transaction/processor reference, known in advance. | |
| amount | number | REQUIRED | Expected deposit amount. | |
| expectedDepositDate | string (date) | optional | When the deposit is expected to clear (YYYY-MM-DD). | |
| clientReference | string | optional | Your reference for this pending deposit. |
200 OKSuccess▾
Success - no response body is returned.
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Retrieves the deposit information for a client: the receiving bank coordinates — valid for ACH, wire, or RTP — plus a memoID for reference. Provide these to the customer so they know where to send funds, and make sure the transfer carries the memoID so the deposit can be attributed to that client. Record the incoming deposit with Add Pending Funds.
| Parameter | Type | Required | Description |
|---|---|---|---|
| clientId | string | OPTIONAL | The client ID. Obtain via Create Client. |
200 OKSuccess▾
Returns: DepositInfo
| Field | Type | Description |
|---|---|---|
| bankAccount | string | Destination account number to deposit into (ACH / Wire / RTP). |
| routing | string | Destination routing number. |
| bankName | string | Receiving bank name. |
| address / city / state / zip | string | Receiving bank address. |
| memoID | string | Memo/reference to include with the deposit so it is attributed to the client. |
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Initiates an ACH debit from a linked bank account that is not the client's bank account. The fundingSourceID references a previously verified bank account (set up via offline process). Most commonly used for sweeping funds from a merchant account to RAMFi while simultaneously ledgering the transaction to the client. Initiates an ACH debit of the amount provided for the next available business day.
| Field | Type | Required | Description | Value |
|---|---|---|---|---|
| clientID | string | REQUIRED | The client whose ledger to credit. | |
| externalTransactionID | string | REQUIRED | Your external transaction reference. | |
| amount | number | REQUIRED | Amount to move into the client ledger. | |
| fundingSourceID | number (int) | REQUIRED | Reference to a bank-account-on-file record for the sending company/payee account. |
200 OKSuccess▾
Success - no response body is returned.
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Withdraws USD funds from a client's available balance, typically via ACH to their linked bank account. The externalReference should track this withdrawal in your system for reconciliation.
| Field | Type | Required | Description | Value |
|---|---|---|---|---|
| clientID | string | REQUIRED | The client to withdraw from. | |
| amount | number | REQUIRED | Amount to withdraw. Digital-asset withdrawals are backed by a custody transfer. | |
| externalReference | string | REQUIRED | Your unique reconciliation key. | |
| notes | string | optional | Free-form notes recorded with the withdrawal. |
200 OKSuccess▾
Returns a number (double) - Withdrawal ID. The value shown is illustrative.
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Moves funds directly between two clients' RAMFi balances within the same company. This is an internal book transfer - it does not touch any external rail (no ACH, card, or on-chain movement). Both clients must belong to the calling company, and the sender must have sufficient available balance in the given currency.
Identify each side by fromClientID/toClientID (or the corresponding UserID). See CurrencyType for currency.
| Field | Type | Required | Description | Value |
|---|---|---|---|---|
| fromClientID | string | REQUIRED | Source client (sending funds). | |
| fromUserID | string (GUID) | optional | Alternate lookup for the source client. | |
| toClientID | string | REQUIRED | Destination client (receiving funds). | |
| toUserID | string (GUID) | optional | Alternate lookup for the destination client. | |
| amount | number | REQUIRED | Amount to transfer. | |
| currency | CurrencyType | REQUIRED | Currency to move. Supports fiat and digital assets, transferred as-is with no conversion (e.g. BTC to BTC between users). | |
| externalReference | string | REQUIRED | Your unique reconciliation key. |
200 OKSuccess▾
No content on success - the response envelope's isSuccess indicates the transfer completed.
400 Bad RequestValidation Error▾
Returned when fromClientID/toClientID is missing or invalid, on insufficient balance, or when the transfer otherwise fails. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Cancels a pending ACH draft before it processes. This can only be done before the draft is processed and only applies to transactions set up using AddClientFunds.
| Parameter | Type | Required | Description |
|---|---|---|---|
| clientId | string | OPTIONAL | The client ID. Obtain via Create Client. |
| draftId | integer | OPTIONAL | The draft/payment ID to cancel. |
200 OKSuccess▾
Success - no response body is returned.
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Initiates an instant debit pull from a customer's card - debiting their card account and crediting
the client's RAMFi USD balance. The card must be referenced by a tokenized cardId
(never a raw PAN), and the externalReference must be a unique value per transaction
in your system for reconciliation.
Note: clientID is passed in the request body following RAMFi's standard POST convention - not as a path parameter. All POST endpoints in the RAMFi API use the request body for client identification.
| Parameter | Type | Required | Description |
|---|---|---|---|
| clientID | string | REQUIRED | The RAMFi clientID of the end user whose account will be credited. |
| cardId | string | REQUIRED | The tokenized card ID returned from the Card Capture SDK or GetCardOnFile. Never pass raw card numbers. |
| amount | number | REQUIRED | Transaction amount. |
| externalReference | string | REQUIRED | Unique transaction ID from your system, used for reconciliation. Character limit not yet confirmed. |
| currency | string | OPTIONAL | ISO 4217 currency code. |
| memo | string | OPTIONAL | Optional descriptor. |
| Parameter | Type | Required | Description |
|---|---|---|---|
| clientID | string | REQUIRED | The RAMFi clientID of the end user whose account will be credited. Obtain via Create Client. |
| cardId | string | REQUIRED | The tokenized card identifier (never a raw PAN), retrieved via GetCardOnFile. Never pass raw card numbers. |
| amount | number | REQUIRED | Transaction amount. |
| externalReference | string | REQUIRED | Unique transaction ID from your system, used for reconciliation. Character limit not yet confirmed. |
| currency | string | OPTIONAL | ISO 4217 currency code. |
| memo | string | OPTIONAL | Optional descriptor. |
200 OKSuccess▾
| 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 | Street address on the account (streetAddress, additionalAddress, city, state, country, zip). |
Endpoint returns an array of these objects — one per linked account.
| Status | Description |
|---|---|
| 401 | Unauthorized - invalid or expired token |
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Sends funds to a customer's debit card - debiting the client's RAMFi USD balance and
crediting the cardholder. The card must be referenced by a tokenized cardId (never a raw PAN).
Note: clientID is passed in the request body following RAMFi's standard POST convention - not as a path parameter. All POST endpoints in the RAMFi API use the request body for client identification.
| Parameter | Type | Required | Description |
|---|---|---|---|
| clientID | string | REQUIRED | The RAMFi clientID of the end user whose card will receive funds. |
| cardId | string | REQUIRED | The tokenized card ID from the Card Capture SDK. |
| amount | number | REQUIRED | Amount to send. |
| externalReference | string | REQUIRED | Unique transaction ID from your system, used for reconciliation. Character limit not yet confirmed. |
| currency | string | OPTIONAL | ISO 4217 currency code. |
| memo | string | OPTIONAL | Optional descriptor. |
| Parameter | Type | Required | Description |
|---|---|---|---|
| clientID | string | REQUIRED | The RAMFi clientID of the end user whose card will receive funds. Obtain via Create Client. |
| cardId | string | REQUIRED | The tokenized card identifier (never a raw PAN), retrieved via GetCardOnFile. |
| amount | number | REQUIRED | Amount to send. |
| externalReference | string | REQUIRED | Unique transaction ID from your system, used for reconciliation. Character limit not yet confirmed. |
| currency | string | OPTIONAL | ISO 4217 currency code. |
| memo | string | OPTIONAL | Optional descriptor. |
200 OKSuccess▾
| 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 | Street address on the account (streetAddress, additionalAddress, city, state, country, zip). |
Endpoint returns an array of these objects — one per linked account.
| Status | Description |
|---|---|
| 401 | Unauthorized - invalid or expired token |
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
amount must be > 0.00000001; currency cannot be USD/PUSD or the unset default; externalReference is required and capped at 50 characters; the destination address must be whitelisted first.Sends digital assets from a client's balance to an external wallet address, initiating a blockchain transaction. Ensure the address is valid and on the correct network before calling. Any destination address must first be whitelisted using AddWalletAddress or the transaction request will fail.
| Parameter | Type | Required | Description |
|---|---|---|---|
| address | string | REQUIRED | Destination wallet address. Must already be whitelisted via Add Wallet Address. |
| clientId | string | OPTIONAL | The client ID. Obtain via Create Client. |
| amount | number (double) | REQUIRED | Amount to send. Must be greater than 0.00000001 (the smallest tradeable BTC unit). |
| currency | CurrencyType | REQUIRED | Digital-asset currency. Cannot be USD (1) or PUSD (2), and cannot be the unset default (0). See CurrencyType. |
| externalReference | string | REQUIRED | Your transaction reference. Maximum 50 characters. |
200 OKSuccess▾
Success - no response body is returned.
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Ledgers an expected deposit of digital assets from an external wallet address. The externalTransactionID should be the transaction hash for verification. Addresses must first be whitelisted using AddWalletAddress before funds can be received from an address and applied to a client account.
| Field | Type | Required | Description | Value |
|---|---|---|---|---|
| clientID | string | REQUIRED | The client the deposit is for. | |
| externalTransactionID | string | REQUIRED | Your external transaction reference. | |
| amount | number | REQUIRED | Expected deposit amount. | |
| fromAddress | string | REQUIRED | External whitelisted source address. | |
| toAddress | string | REQUIRED | RAMFi custody receiving address (must be whitelisted). | |
| fundsType | CurrencyType | REQUIRED | Digital-asset currency of the deposit (CurrencyType enum, e.g. 6 = BTC). |
200 OKSuccess▾
Success - no response body is returned.
400 Bad RequestValidation Error▾
Returned when the request fails validation - for example a missing or malformed field. The errorMessage explains what was invalid. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
api/Disbursement controller: read your company’s payout campaigns and their per-rail fees, provision payees (consumers) in a batch, and update a payee’s details. All calls use the short-term bearer token plus X-OTP, and return the standard { resultModel, isSuccess, errorMessage } envelope.Returns the payout campaign(s) configured for your company — each campaign lists its enabled payout rails (ACH, prepaid card, check-by-mail, real-time payment, Venmo, PayPal, international) and the per-rail fees (percentage and flat). Pass payeeId to return the single campaign for that payee; omit it to return all campaigns. Campaigns are created and updated by Reliant administrators, so this API is read-only for campaigns.
| Parameter | Type | Required | Description |
|---|---|---|---|
| payeeId | integer | optional | Filter to a single campaign by payee ID. When omitted, all campaigns for the authenticated company are returned. |
200 OKSuccess▾
Returns: CampaignInformation (an array; a single object when payeeId is supplied), wrapped in the standard envelope.
| Field | Type | Description |
|---|---|---|
| campaignGuid | string (UUID) | Unique campaign identifier; use with Add Consumers. |
| payeeId | integer | Payee ID for this campaign (matches a consumer's dscid). |
| disbursementAmount | decimal | Configured disbursement amount. |
| numberOfBeneficiaries | integer | Number of payees on the campaign. |
| achBankTransfer / prePaidCard / checkByMail / realTimePayment / venmo / paypal / internationalTransfer | boolean | Whether each payout rail is enabled. |
| …FeePct / …FeeFlat (per rail) | decimal | Percentage and flat consumer fee for each enabled rail. |
| destinationCurrency | string | Payout currency. |
| purpose | string | Campaign purpose. |
| hwInstantTransfer | boolean | Whether instant transfer is enabled. |
| prefundAmount | decimal | Pre-funded amount, if any. |
Each rail toggle (achBankTransfer, prePaidCard, venmo, paypal, …) has a matching …FeePct and …FeeFlat. Values are illustrative.
400 Bad RequestValidation Error▾
Returned when the request fails validation. The errorMessage explains what was invalid; some failures return a plain string instead of the envelope. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Provisions one or more payees (consumers) into a campaign in a single batch. Supply the target campaignGuid and an array of consumers. Each consumer’s eligible payout rails are indicated with the ach, checkMail, and prepaidCard flags; routingNumber / accountNumber apply when ach is selected. The response reports success or failure per consumer, so a partial batch can succeed.
| Field | Type | Required | Description |
|---|---|---|---|
| campaignGuid | string (UUID) | REQUIRED | The campaign to add the payees to (from Get Campaign). |
| consumers | array<Consumer> | REQUIRED | One or more payees to provision — see the Consumer fields below. |
| Field | Type | Required | Description |
|---|---|---|---|
| firstName | string | REQUIRED | Payee first name. |
| lastName | string | REQUIRED | Payee last name. |
| string | REQUIRED | Where Reliant sends the payout-method selection link. | |
| amount | number (decimal) | REQUIRED | Gross payout amount for this payee. |
| middleInitial / phone | string | optional | Optional contact details. |
| streetAddress1 / streetAddress2 / city / state / zip | string | optional | Mailing address (required for check-by-mail). |
| taxId | string | optional | Tax identifier, where required for reporting. |
| miscellaneous | string | optional | Free-form reference on the payee. |
| ach / checkMail / prepaidCard | boolean | optional | Eligible payout rails to offer this payee. |
| routingNumber / accountNumber | string | optional | Bank details; apply when ach is enabled. |
200 OKBatch Result▾
Returns: ConsumerBatchResult — a per-consumer result list, wrapped in the standard envelope.
| Field | Type | Description |
|---|---|---|
| resultModel.isSuccess | boolean | Whether the batch overall succeeded. |
| resultModel.results[] | array | One entry per submitted consumer, in request order. |
| results[].isSuccess | boolean | Whether this individual payee was provisioned. |
| results[].errorMessages | array<string> | Reasons this payee failed (empty on success). |
| results[].response.consumerID | integer | RAMFi consumer ID assigned. |
| results[].response.username / email / firstName / lastName | string | Echoed identity of the provisioned payee. |
Inspect each element of results: a failed consumer has isSuccess: false and populated errorMessages while others in the same batch may still succeed. Values are illustrative.
400 Bad RequestValidation Error▾
Returned when the request fails validation. The errorMessage explains what was invalid; some failures return a plain string instead of the envelope. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Returns the consumers (payees) for your company. All filters are optional and combine: pass campaignGuid to scope to one campaign, consumerId to fetch a single consumer, and/or email to match by address. With no filters, all consumers for the authenticated company are returned.
| Parameter | Type | Required | Description |
|---|---|---|---|
| campaignGuid | string (UUID) | optional | Scope results to a single campaign. |
| consumerId | integer | optional | Fetch a single consumer by ID. |
| string | optional | Match consumers by email address. |
200 OKSuccess▾
Returns: ConsumerInformation array, wrapped in the standard envelope.
| Field | Type | Description |
|---|---|---|
| userId | string (UUID) | RAMFi user ID for the consumer. |
| clientfname / clientlname | string | Consumer first / last name. |
| clhomephone | string | Consumer phone. |
| vendoraccountnumber | string | Vendor account number. |
| vendorid | integer | Vendor ID. |
| savingsBalance | decimal | Current balance held for the consumer. |
| dscid | integer | Payee ID — pass to Get Campaign's payeeId filter. |
dscid is the payee ID used by Get Campaign’s payeeId filter. Values are illustrative.
400 Bad RequestValidation Error▾
Returned when the request fails validation. The errorMessage explains what was invalid; some failures return a plain string instead of the envelope. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.
Updates mutable profile fields on an existing consumer, identified by consumerId. Only the fields you send are changed; omit a field to leave it unchanged.
| Field | Type | Required | Description | Value |
|---|---|---|---|---|
| consumerId | number (int) | REQUIRED | The consumer to update. | |
| firstName | string | optional | Updated first name. | |
| lastName | string | optional | Updated last name. | |
| middleInitial | string | optional | Updated middle initial. | |
| phone | string | optional | Updated phone. | |
| streetAddress1 | string | optional | Updated street address. | |
| city | string | optional | Updated city. | |
| state | string | optional | Updated state. | |
| zip | string | optional | Updated ZIP. |
200 OKSuccess▾
A bare ResultViewModel envelope (no resultModel) — isSuccess: true confirms the update.
400 Bad RequestValidation Error▾
Returned when the request fails validation. The errorMessage explains what was invalid; some failures return a plain string instead of the envelope. Error text is illustrative; the envelope shape is authoritative.
401 UnauthorizedAuthentication Failure▾
Returned when the short-term bearer token is missing, expired, or invalid, or the X-OTP header fails verification. Provision a new token via Provision Token.