🔐
Authentication
RAMFi uses a three-tier model: a long-lived Main Token, a rotating X-OTP (TOTP) sent on every request, and a short-term Bearer token issued by ProvisionToken.
  • 1
    YouRequest short-term token
    with Main Token + X-OTP (TOTP)
    POST /api/FE/ProvisionToken
  • 2
    RAMFiIssue Bearer token
    Returns token + expiresAtUTC (TokenResponse)
  • 3
    YouCall any endpoint
    Authorization: Bearer <token> + a fresh X-OTP each call
  • 4
    YouRevoke when done (optional)
    to invalidate early
    DELETE /api/FE/ExpireToken
Show full interaction diagram
Your ApplicationRAMFi API1Request short-term tokenPOST /api/FE/ProvisionToken with Main Token +X-OTP (TOTP)2Issue Bearer tokenReturns token + expiresAtUTC (TokenResponse)3Call any endpointAuthorization: Bearer <token> + a fresh X-OTPeach call4Revoke when done (optional)DELETE /api/FE/ExpireToken to invalidate early

Token exchange. The Main Token + X-OTP are used once to mint a short-term Bearer token, which authorizes subsequent endpoint calls.

ℹ️
The three tiers
Main Token: long-lived, issued at onboarding.
X-OTP: a TOTP value derived from your seed, sent in the X-OTP header on every request.
Short-term Token: returned by ProvisionToken and sent as Authorization: Bearer <token>.
Integration Steps
Six steps from credentials to your first transaction.
1

Authenticate

Call POST /api/FE/ProvisionToken with your Main Token and the current X-OTP (TOTP) value. You get back a short-term Bearer token used for subsequent calls (see the swim lane above).

2

Create a client

Call POST /api/FE/NewClient with name, address, date of birth, tax ID (SSN), and email, optionally with bank account details for ACH drafting. When Reliant performs KYC for your program, RAMFi runs identity verification and returns the client record; Active status means the client can transact. Programs operating under a reliance model perform their own KYC, and Reliant relies on your verification. Confirm which applies to your program.

3

Add a payment rail

Connect the way money will move for this client. For ACH, link the client's bank with the Bank Connection SDK (open banking). For cards, reference the card by a tokenized cardId (never a raw PAN). For digital assets, register the address that will send you funds with Add Wallet Address. Debt settlement programs drafting on a signed authorization upload it with POST /api/FE/AddDocument (base64 PDF, docType ACH_AGREEMENT).

4

Fund the account

Choose the funding path: AddClientFunds (ACH draft from client bank), AddPendingFunds (expected wire/ACH credit), AddFundsFromAddress (digital asset deposit), or AddFundsFromBankAccount (sweep from a merchant account).

5

Transact

Move the money: ConvertClientFunds (currency conversion), SendFundsToAddress (on-chain send), WithdrawClientFunds (ACH out), or PullFromCard / PushToCard (card rails).

6

Check balances

Call GET /api/FE/Reporting/ClientBalance to view available funds, and reconcile every movement against ClientLedger and Reporting/Transactions using your externalReference.

Best Practices
Operational guidance drawn from the RAMFi integration documentation.

Protect credentials

Keep the TOTP seed in a key-management system, never in source. Rotate short-term tokens and expire old ones.

One externalReference per movement

Make it unique. It is your reconciliation key in ClientLedger and Transactions.

Respect ACH timing

Drafts clear in about 2 business days. Wait for funds to show as tradable before allowing trades.

Monitor returns daily

Poll Returns. A returned draft puts the client on Hold; reactivate with UpdateClient.

Whitelist before sending

Register digital asset addresses with AddWalletAddress first, or the transfer fails.

Never touch raw card data

Reference cards only by a tokenized cardId (never a raw PAN). Only the cardId token should reach your app.

RAMFi Developer Documentation · Version 1.1