Changelog #7


Estimations Endpoint

What it is:

A new endpoint for estimating prices and fees. Specify the fiat amount or a minimum crypto amount, and the response includes everything you need to present an order confirmation to the end user.

Why it matters:

Previously, you would have had to do some math; now we do it for you. This is pre-requisite work for new features offered coming for enterprise customers allowing them to set their own end user fee configurations, including the ability to completely subsidize or add on top of Ratio’s standard end user fees.

Dashboard v0.2

What it is:

New Dashboard features including creating an account and generating sandbox credentials instantly.

Why it matters:

We are obsessed with providing a great developer experience and that means giving you the tools to self-serve. Now, you can sign up after dinner and have a prototype running by bedtime.


  • A user’s risk level us now assigned after KYC is approved, whereas before the risk level was set after the user’s bank account was verified. Having the risk level established earlier in the onboarding flow provides more flexibility in terms of when you can communicate limits to users
  • Optimized crypto prices endpoint to only return available fiat and crypto currencies. This sets the stage for clients to configure their own custom token lists in the future
  • redirecturi and androidpackagename are now optional fields in the requestLink call. These fields are only required if you are building an iOS or Android application.

Changelog #6


New Contract Integration: Uniswap (Private Beta)

What it is

You can now purchase any token using a bank account as the funding source.  It’s like if Uniswap added “US Dollars from Bank Account” as an option in their token dropdown

Why it matters

Users no longer need to “onramp” funds before purchasing more bespoke tokens.  This is particularly useful for DeFi protocols that want to be able to acquire users directly and promote higher engagement through features like dollar cost averaging or automatic offramping

React JS (Public Beta)

What it is

A React JS is a React Library including all logic and functionality of Ratio platform. Plus choose between using pre-built theming, or fully customizing style to match your brand.

Ratio React JS

Why it matters

With this library, customers can integrate Ratio in just a few hours with limited ongoing maintenance. This library includes some theming capabilities, which will be extended over the next few weeks.  We will also make the source available in late July

API Error Codes

What it is

Comprehensive API error codes

Why it matters

Customers can use error codes to handle responses programmatically, simplifying debugging and maintenance


  • Added walletType to the Wallet Auth object.  This is a non-breaking change.  It was done to limit confusion.  If you are currently passing walletNetwork that will continue to work
  • Various improvements to the way we handle 500 errors

Changelog #5

May 15, 2023


Dashboard v.01 - Financial Reporting and Analytics

What it is

Track things like new and active users, total number of transactions, average transaction value, instant ACH v. standard ACH split, and more. In addition, we provide onboarding funnel metrics, including the KYC instant approval rate

Ratio Dashboard

Why it matters

The dashboard is your source of truth for how your end users are interacting with Ratio.

Learn more about the Dashboard in the docs.


What it is

An up-to-date sandbox including test data to generate all relevant scenarios to easily build and launch your Ratio integration.

Why it matters

With relevant tests completed in a no-stakes environment, the Sandbox drives faster implementation for Ratio customers.

Learn more about the Ratio Sandbox in the docs.

Preset Order Details

What it is

A function for customers to provide the order information so their user only needs to confirm the transaction details. This update is specific to our React Native SDK and React Library (RatioKit).

Why it matters

This allows customers to retain more control of the user experience.

Learn more in the React Native SDK docs

React JS docs coming soon



  • A new overall KYC status in the KYC response object so you don’t have to monitor for the individual status of SSN, DOB, and Address.
  • Added a custom header for sending device intelligence alongside your API calls.  This enables a more targeted risk assessment for your users, resulting in higher limits and transaction approval rates. Currently optional; will be required by Q4.
  • Get user account limits instantly after KYC = Approved, improving previous journey where they were available after Bank = Verified.

Developer Tools

  • React Native SDK enhancements to promote trust
  • updated welcome screen
  • updated SSN screen text
  • updated verify identity welcome screen
  • updated titles on address and name forms
  • updated the link bank account screen

Changelog #4

April 3, 2023


No Fees on Standard ACH

Ratio is the first and only way to deposit to Web3 with no transaction fees or spreads.


User Authentication & Account Linking

  • We now support using any combination of user authentication methods from the supported list (wallet, email, phone) in any order.  Previously we required that wallet or email was the first auth factor, with SMS acting as second
  • Our API now has formal support and documentation for linking a new wallet to an existing user account.  If an existing Ratio user attempts to authenticate from an unknown wallet (all of our partners to date are using wallet as the primary auth factor), Ratio will do a lookup on the other auth factor, present two authentication factors to the user, and proceed to link the new wallet to the user’s existing account.  If you are using the API you should review the Account Linking Guide.  We strongly recommend adding support for Account Linking.  If you use our Mobile SDK or Browser Integration there is no work required on your end
  • Middle Name and Occupation are now optional fields when submitting KYC

End User Support and Safety

  • Introduced system generated support tickets mapped to user account flags.  This shortens our response time when user accounts are flagged for review in the KYC, bank account linking, and bank account verification stages of user onboarding
  • Moved phone number risk analysis into the account creation flow. It was previously part of the risk analysis that happens after KYC is submitted.  This change allows us to stop bad actors as well as warn good users about their phone number earlier in the flow
  • Improvements to bank identity verification for multi-part first and last names
  • Added email verification as an asynchronous part of the user account creation flow. User onboarding does not require a verified email, however, a verified  email addresses is required in order to use the self-serve Account Linking flow as well as authenticate with our support team

Mobile SDK & Browser Integration

  • We now support linking a new wallet to an existing user account.  The SDK & Browser integration handle the account linking flow entirely.  There are no changes required on the part of Ratio partners
  • Improved our loading states to reduce some of the jumpiness we had seen in our page transitions
  • Implement new transaction limit reached screen
  • Added a network switcher in the header
  • Updated the dropdown list component
  • Updated icons throughout the SDK

Changelog #3

February 27, 2023


Switch to Plaid React Native SDK

The Plaid React Native SDK has a number of advantages over their Webview SDK, including being the best way to properly support OAuth institutions such as Chase and Robinhood. In some cases (ie. Chase) the user will be redirected to their banking app and be able to leverage Face ID / biometric authentication for an even smoother process. In order to support launching the Plaid RN SDK from a webview (Ratio’s current RN SDK leverages webviews), we needed to:

  • added ability to message our webapp from our RN lib
  • added redirectURL and androidPackageName to be consumed by web app. read from query string
  • added a universal link to sample ios app
  • pass redirectURL or androidPackageName to /v1/users/{userId}/banks:requestLink
  • handle bank linking error statuses


Core Platform

  • Optimized the network fee calculation for ETH purchases
  • Improvements to observability and logging
  • Handling timeouts and re-queuing better for third party dependencies
  • Updated our preliminary risk assessments to include additional risk scores from bank account owner object
  • Operations Tooling
  • System generated support tickets mapped to various user account states.  This allows us to respond to onboarding, bank account linking, and other customer account review scenarios faster
  • Admin endpoint to add/remove user flags and resolve system generated tickets

Web View / SDK

  • Added the ability to manage a linked bank account in Settings.  Refactored bank account linking overall to be more modular / reusable
  • Updated our model for order status based on feedback from partners
  • Optimized the wallet resource creation flow. Now, we automatically create wallet resources for each network during account creation, whereas previously, you had to set up each individually.  Note that these are wallet resources based on the wallet address your user authenticates with.
  • Added Sentry and Mixpanel
  • Delete area code in phone number after receiving an error
  • Ensure user state is captured correctly in create account flow
  • Polish
  • Disabled scrolling up on screens; where possible.  IOS still makes this challenging in a RN webview
  • General spacing improvements on secondary buttons
  • Removed black underline on form fields
  • Made the check box on the agreements page stick to bottom of page above button
  • Update address validation typeface
  • Autocapitalize form inputs (ie. first name, last name)
  • Optimized formatting of transaction history list items
  • Optimized polling process on user account creation step
  • Bug fixes
  • Fixed the missing asset icon on order placed screen
  • Better handling for uncaught network errors

Changelog #2

February 8, 2023


Ratio Money Router

This cycle we released new wallet management infrastructure and contracts to power our crypto payment operations.  This release is the foundation for what we call the Ratio Money Router; a system that will eventually allow clients to bring their own smart contracts and create highly programmable payment flows from USD to contract interaction. Today, the Ratio Money Router supports transfer (USDC) and swap (ETH, MATIC) functions.

Test Data Improvements in Staging

We will be launching a comprehensive sandbox environment in the Spring.  In the meantime, partners are using a combination of our staging environment and production in order to build and test their integrations.  This cycle we added some flagging and fake crypto data to the staging environment to make it easier to test transactions.  Lots more to come over the next few months as we build and release the first version of our dedicated sandbox environment.


Web View / SDK

  • Added the following callbacks to our React Native library
  • onLogin - provides the client with a userID so that they can monitor for Webhooks (ie. KYC status, transaction status) for that user
  • onTransactionComplete - provides the userID with the RatioOrderStatus object so that you can redirect the user to the appropriate place in your application
  • onHelp - allows the client to customize the support experience by redirecting the user to a page or specific channel like email
  • Added the Ability for the user to select network from the Buy Crypto screen.  Previously, we as
  • Polish
  • Changed Zip Code field default to numeric keypad
  • Removed unnecessary toast “success” messages
  • Updated notification styling to remove drop shadows
  • Changed date format to mm/dd/yyyy
  • Removed decimals from some numbers (ie. account limits)
  • Added Client ID to event properties in Mixpanel so that we can provide client facing analytics dashboards
  • Formatting improvements on Phone and SSN fields

General / API

  • Creating additional user flags for more granular support queuing and sad path handling in the API and web views / SDK
  • Refactor Plaid integration for better handling of PRODUCT_NOT_READY errors, which can occur when a users transaction history needs to be populated for the first time
  • Added support for new transactional email types

Changelog #1

January 18, 2023


React Native Library

We released a React Native library that provides a simplified integration method for clients that want to integrate Ratio’s web views.  With this React Native library, you will call a single function that kicks off the process to fetch a user session token, sign in with Ethereum, and launch Ratio’s web views inside the native modal sheet.


Earlier versions of the Ratio API relied mostly on user authentication. This makes sense given that end users create accounts directly with Ratio, and Ratio is responsible for maintaining the security of those accounts. All POST calls require a user to be authenticated via their wallet and second auth factor (SMS). Some GET calls, like retrieving crypto prices, can be made without end user authentication

With this refactor all API calls now require client authentication, in addition to the user authentication requirement for the given endpoint.

Core Ledger

We refactored the ledger in preparation for a series of upcoming releases. We decoupled the fiat and crypto parts of the ledger completely and changed when certain transaction components, like our fee, are written to the ledger.  These changes aren’t visible to our clients, since you don’t interact directly with the ledger.  However, this refactor is the first step towards some exciting new features that will enable even more customization of your fiat to crypto payment flows, including the ability to set pricing and attach your own contracts to the Ratio Money Router.


Webhooks are filtered according to user-client mapping. If a user has connected Ratio to more than one client, both will be able to subscribe to events for that user.

  • ACTIVITY_UPDATED - any transaction activity
  • BANK_UPDATED - updates (added, removed, disconnected) to linked bank account
  • KYC_UPDATED - updates to KYC status.  Mostly relevant for when account applications need to be reviewed manually.


  • Added support for Plaid’s banking login event required webhook.  This alerts us whenever a user’s bank account has become disconnected so that we can guide the user to reconnect their bank account
  • Updated all end user facing emails to be more consistent with in-app messaging and transaction detail views
  • Improvements to the way we fetch transaction history from a user’s linked bank account for the purposes of determining transaction limits
  • Changed the UI of transaction detail screens to be more consistent across all activity item states.  This was especially important for sad-path transaction state