1. Add your Rho access
- In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Rho option from the list of connectors.
- Click Next and you’ll be prompted to add your access.
-
API Access Token: Your Rho API Access Token, in the
rhobat_...format. - Initial sync date: (Optional, advanced) The earliest transaction date to sync on the first run. Leave it empty to load the full history of your accounts.
- Lookback days: (Optional, advanced. Default: 7) How many days before the last synced point each incremental run re-reads, so transactions that settle or fail after they were first loaded get their status updated. See How the data is replicated.
Generating the API Access Token
The token is created inside Rho, and only an Account Owner or an Admin can do it:- In Rho, go to Settings → Configurations → Access Tokens.
- Create a new token and complete the 2FA challenge.
- Give it the scopes
accounts:read,transactions:readandstatements:read. A missing scope makes the corresponding stream fail with a permission error. - Choose an expiration date — Rho requires one, up to a maximum of one year.
- Leave the Allowed IPs allowlist empty, otherwise Rho will reject the requests coming from Nekt.
- Copy the token and paste it into Nekt.
The token is read-only and scoped to account and transaction data. It cannot initiate payments or change anything in your Rho account, and you can revoke it at any time from the same settings screen.
- Click Next.
2. Select your Rho streams
-
The next step is letting us know which streams you want to bring. You can select entire groups of streams or only a subset of them.
Tip: The stream can be found more easily by typing its name.
If you don’t see a stream you were expecting to find, please check if your access token has the matching scope. If that’s not the issue, then it’s probably because we still haven’t implemented it. Feel free to get in touch and request it!
- Click Next.
3. Configure your Rho data streams
- Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a name for each table (which will effectively contain the fetched data) and the type of sync.
- Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
- Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
- Sync Type: depending on the data you are bringing to the lake, you can choose between INCREMENTAL and FULL_TABLE. Read more about Sync Types here.
- Click Next.
4. Configure your Rho data source
- Describe your data source for easy identification within your organization. You can inform things like what data it brings, to which team it belongs, etc.
- To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times).
- Optionally, you can define some additional settings (if available).
- Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here.
- Determine when to execute an Additional Full Sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.
Check your new source!
- Click Next to finalize the setup. Once completed, you’ll receive confirmation that your new source is set up!
- You can view your new source on the Sources page. Now, for you to be able to see it on your Catalog, you have to wait for the pipeline to run. You can now monitor it on the Sources page to see its execution and completion. If needed, manually trigger the pipeline by clicking on the refresh icon. Once executed, your new table will appear in the Catalog section.
If you encounter any issues, reach out to us via Slack, and we’ll gladly assist you!
How the data is replicated
Transactions are extracted incrementally oninitiated_at, the moment the transaction was created — the only timestamp Rho always fills in, since posted_at is empty while a transaction is still pending.
A transaction’s initiated_at never changes, but its status and posted_at do: a card authorization settles a few days later, an ACH debit can be returned. To keep those rows current, every incremental run also re-reads a short window before the last synced point — 7 days by default, configurable through the Lookback days setting. Raise it if your account sees returns or settlements landing later than a week after the transaction was initiated.
Accounts and statements are extracted in full on every run. Balances are a point-in-time snapshot with no history behind them, and a business closes only a handful of statements per month, so reading them completely is cheap and guarantees nothing is missed.
Working with the data
- Amounts are signed. In
transactions, negative values are debits and positive values are credits. - Transactions are keyed by
idandaccount_id. Rho does not guarantee thatidalone is unique: the two entries of a single money movement — for example both legs of an internal transfer — can share it. Usemoney_movement_idto group the entries that belong to the same movement and treat it as one event. - Attribution fields can be empty.
user_idanduser_full_nameare empty for system-initiated activity such as interest, andcard_idandcard_nameare only filled on card transactions. transaction_typeis an open list. Rho adds new values as it launches new products and payment rails, so treat an unknown value as new rather than invalid.statements.accountsis a JSON string. It holds the per-account figures for the period — opening and closing balance, totals of credits, debits and fees, plus spending, repayments and cashback on credit statements. Parse it in a Query when you need the individual values.statements.pdf_urlexpires. It is a signed link generated at sync time and valid for about 15 minutes, so it will not work when read from the table later on.
Rate limits
Rho allows around 60 requests per minute per access token. The connector stays below that limit on its own and automatically waits and retries when the API asks it to, so no configuration is needed on your side. Very large first extractions simply take longer to complete.Streams and Fields
Below you’ll find all available data streams from Rho and their corresponding fields.Accounts
Accounts
The bank accounts your business holds on Rho, with their current balance. Extracted in full on every run.Key Fields:
id- Unique identifier of the account on Rhoaccount_name- Display name given to the account in Rho, such as “Primary Checking”account_type- Kind of account:checking(operating cash),savings(higher-yield deposits),credit(the revolving line backing corporate cards),investment(treasury sleeves) orrewards(cash-back balance)balance- Current balance in cents, reflecting the latest posted activitybalance_currency- ISO 4217 currency code of the balance, for exampleUSDaccount_number_last_4- Last four digits of the account number, empty for account types with no deposit number such as credit and rewardsrouting_number_last_4- Last four digits of the routing number, empty for the same account types
Transactions
Transactions
Every monetary movement posted against your Rho accounts — card spend, ACH, wires, checks, internal transfers, interest, fees and refunds. Extracted incrementally on
initiated_at.Key Fields:id- Identifier of the transaction, part of the composite key withaccount_idmoney_movement_id- Identifier shared by every entry of the same money movement, used to group both legs of a transferaccount_id- Identifier of the account the transaction posted against, part of the composite key withidaccount_name- Display name of that accountaccount_type- Type of that account: checking, savings, credit, investment or rewardstransaction_type- Kind of movement: card spend, credit-line repayment, ACH, wire, check, internal transfer, savings, treasury, rewards, fee and adjustment activity, including the refund and return variants of eachstatus- Where the transaction stands:pending,settledorfailedamount- Signed amount in cents, where negative values are debitsamount_currency- ISO 4217 currency code of the amount, for exampleUSDinitiated_at- When the transaction was created, used as the incremental replication keyposted_at- When the transaction cleared the ledger, empty while it is pendingcounterparty_name- The merchant, or the other side of the money movementcounterparty_logo_url- Link to the counterparty’s logo, when Rho has one on filememo- Memo written on the transactionnote- Annotation added to the transaction by a user or by Rhouser_id- Identifier of the team member the transaction is attributed to, empty for system-initiated activity such as interestuser_full_name- Name of that team membercard_id- Identifier of the corporate card the spend was made on, empty for non-card transactionscard_name- Display name of that cardtracking_number- Payment network reference used to trace an outbound payment: an ACH NACHA trace number, or a wire IMAD/OMADattachments- Receipts and other files attached to the transaction, as a JSON string listing each file’sfile_idandfile_name. The files themselves are not synced
Statements
Statements
The finalized, period-end statements Rho issues for your accounts — the same documents you can download from the Rho dashboard. Extracted in full on every run.Key Fields:
id- Unique identifier of the statementstatement_type- Kind of statement:account(checking and savings),credit(the corporate card line) ortreasuryperiod_start- First day covered by the statement period, inclusiveperiod_end- Close date of the statement period, inclusiveavailable_at- When the finalized statement became available to downloadpdf_url- Signed link to the statement PDF, valid for about 15 minutes after the syncaccounts- Per-account figures for the period, as a JSON string: opening and closing balance, totals of credits, debits and fees, plus repayment date, spending, repayments and cashback on credit statements