API availability

Check Roots API availability, current Beta behavior, target production states, and required production confirmations.

Use this page to determine whether a Roots API resource is ready for your environment and which parts of its production contract you must confirm.

⚠️

Beta API: Roots is actively developing the API. Confirm the released contract and enabled capabilities with Roots before you process live funds.

Environments

Use the UAT base URL for the currently documented API:

https://api.uat.roots.finance

Availability matrix

ResourceStatusAuthentication required todayCurrent Beta contractTarget production contract — confirm in API reference
Front-office authenticationLiveNo published request-authentication requirementLogin, logout, and current-session endpoints are documented.Session persistence and production authentication behavior.
Front-office usersLiveConfirm in API referenceList and create company users.Production authorization and error behavior.
API keysLiveConfirm in API referenceCreate, list, and revoke company keys. The key secret is shown once at creation.The request header or credential pattern for using an API key is not yet published.
PersonsBeta (mocked)NoCreate, retrieve, and update individual and business persons.Required onboarding fields, document flow, submission flow, review outcomes, and production authorization.
AssociationsBeta (mocked)NoLink graph persons to a business as Director, UBO, AuthorizedSignatory, or ControlPerson.Production validation and review dependencies.
DocumentsBeta (mocked)NoDocument resource endpoints are listed.Upload schema, accepted document types, review behavior, and retrieval authorization.
AccountsBeta (mocked)NoCreate and retrieve accounts. Current states are pending, active, and closed.Issuance and activation rules; states including PENDING_ISSUANCE, ISSUED_DORMANT, ACTIVE, ACTIVE_WITH_RESTRICTIONS, ON_HOLD, BLOCKED, and CLOSED.
CounterpartiesBeta (mocked)NoCreate, retrieve, update, and list counterparties. Current states are Pending, Active, and Blocked.Required screening data, update and re-screening behavior, and enabled payment rails.
PaymentsBeta (mocked)NoCreate and list payments. Current states are Pending, Submitted, Settled, Failed, and Returned.Idempotency, limits, error contract, settlement events, returns, and production authorization.
Requests and RFIsBeta (mocked)NoList requests and person requests.Response endpoint, document-submission behavior, deadlines, notifications, and linked holds.
TradesBeta (mocked)NoCreate and list USD/USDC trades.Product availability, pricing, settlement behavior, and production authorization.
Webhooks and eventsPlanned—No event, registration, signature, retry, ordering, or replay contract is published.Confirm the complete event-delivery contract before building a receiver.

Current and target lifecycle states

Accounts

Current (Beta)Target (production)Integration behavior
pendingPENDING_ISSUANCE or ISSUED_DORMANTDo not treat a created account as ready for funding or outgoing payments.
activeACTIVE or ACTIVE_WITH_RESTRICTIONSRetrieve the latest account state and enforce returned restrictions.
closedCLOSEDDo not create new payment instructions against the account.
—ON_HOLD or BLOCKEDStop affected automation and follow the linked review or RFI flow.

Payments

Current (Beta)Target (production)Integration behavior
PendingA payment exists but is not final.Keep the instruction in progress. Do not report delivery.
SubmittedA payment has entered processing.Continue monitoring for a terminal state.
SettledA payment has completed.Reconcile the final result in your ledger.
FailedA payment did not complete.Reconcile before creating a replacement.
ReturnedA payment was returned after processing began.Reconcile returned funds before creating a replacement.
—Held or pending bank decisionKeep affected funds and automation blocked until Roots reports an authorized outcome.

Target schema — confirm in API reference

The following design expectations are documented as target behavior, not as a released API contract:

  • Production account state and restriction detail.
  • Payment idempotency and safe retry behavior.
  • API-key request authentication header or credential pattern.
  • Webhook registration, event payloads, signatures, delivery retries, ordering, and replay.
  • RFI response and document-submission operations.
  • Deterministic sandbox scenarios that produce compliance or payment outcomes.

Do not implement these details until Roots publishes them in the API reference.

Amounts and precision

The current payment schema accepts amount as a JSON number. For example:

{
  "amount": 1250.5,
  "currency": "USD"
}

Use the exact decimal value returned by Roots when you reconcile a payment. Do not assume a minor-unit integer representation, an implicit rounding mode, or a supported decimal scale. Confirm currency precision and rounding behavior in the production API contract before processing live funds.

Production safeguards

Before enabling a workflow, confirm that Roots has enabled the applicable product, currency, payment rail, jurisdiction, and production capability for your company.

Your integration must also:

  1. Treat every created account, counterparty, review, and payment as non-final until its current state permits the next action.
  2. Use available balance—not current balance alone—to determine whether funds can be used.
  3. Stop automated activity for an RFI, hold, restriction, blocked state, or non-terminal payment state.
  4. Store Roots IDs and your own external references for reconciliation.
  5. Verify released behavior in UAT before enabling production money movement.

Next steps


Did this page help you?