# UR Developer Docs

## Docs

- [Welcome](https://docs.ur.app/readme.md)
- [What is UR?](https://docs.ur.app/welcome/what-is-ur.md): UR is the financial infrastructure for the open economy. The UR Platform is the account layer that wallets, developers, and financial platforms build on.
- [Partner integration flow concepts](https://docs.ur.app/welcome/partner-integration-flow-concepts.md): Partner-facing concept overview. For API references and technical integration details, see docs.ur.app.
- [Quickstart](https://docs.ur.app/getting-started/quickstart.md): Get API credentials and start integrating with UR in minutes.
- [Choose your integration options](https://docs.ur.app/getting-started/integration-guide.md): Integrating with UR comes down to three independent decisions. Pick one option from each.
- [What UR configures for you](https://docs.ur.app/getting-started/what-ur-configures.md): The settings UR provisions for you out of band, and which ones you can read back through an API.
- [Sandbox environment](https://docs.ur.app/getting-started/sandbox-environment.md): The sandbox is an isolated environment for testing and development, without affecting production.
- [API authentication](https://docs.ur.app/getting-started/api-authentication.md): How authentication works when integrating with UR APIs.
- [Supported regions](https://docs.ur.app/getting-started/supported-regions.md): Countries and territories where UR accounts can be opened.
- [Managed Custody Mode](https://docs.ur.app/integration-methods/managed-custody-mode.md): API-driven integration where UR manages fiat accounts and the partner manages crypto.
- [External Wallet Access Mode](https://docs.ur.app/integration-methods/external-wallet-access-mode.md): Self-custody integration where users connect their own wallet and sign transactions directly.
- [Delegated Mode](https://docs.ur.app/integration-methods/delegated-mode.md): API-driven integration where UR manages blockchain complexity on your behalf.
- [Core banking overview](https://docs.ur.app/money-movement/core-banking-overview.md): An overview of money movement on UR.
- [Deposits](https://docs.ur.app/money-movement/deposits.md): Fiat bank transfers and crypto-to-fiat offramp flows.
- [Withdrawals](https://docs.ur.app/money-movement/withdrawals.md): Bank payouts and fiat-to-crypto onramp flows.
- [FX conversion](https://docs.ur.app/money-movement/fx.md): Convert between currencies using atomic burn-and-mint operations.
- [Transfer assets to partner platform](https://docs.ur.app/money-movement/transfer-assets-to-partner-platform.md): Move funds between user UR accounts and your platform.
- [URID](https://docs.ur.app/concepts/urid.md): The on-chain identity that unlocks UR accounts.
- [UR Account](https://docs.ur.app/concepts/ur-account.md): A hybrid financial account bridging the regulated financial system with on-chain settlement.
- [Tokenized deposits](https://docs.ur.app/concepts/tokenized-deposits.md): 1:1 fiat-backed tokens on Mantle Network.
- [On-chain ledger](https://docs.ur.app/concepts/on-chain-ledger.md): How UR records every transaction on Mantle Network, and why it matters for partners.
- [The user lifecycle](https://docs.ur.app/concepts/overview-the-user-lifecycle.md): The URID account states and how a single KYC flow moves a user from Tourist to Live.
- [KYC & compliance](https://docs.ur.app/concepts/kyc-and-compliance.md): What UR verifies during KYC, the data we collect, and the methods we use.
- [Webhooks](https://docs.ur.app/developer-resources/webhook.md): How UR delivers business events to partner-registered HTTPS endpoints. Covers protocol, signatures, retries, idempotency, and the full event catalog.
- [Build with AI coding agents](https://docs.ur.app/developer-resources/chat-and-build-with-ai.md): Use AI agents to query UR documentation and build integrations faster.

## Design

- [Design for UR partners](https://docs.ur.app/design/readme.md): Design and UX guidance for partners building on UR.
- [Introduction](https://docs.ur.app/design/user-experience/introduction.md): What UR provides, and what it is not.
- [Messaging hierarchy](https://docs.ur.app/design/user-experience/messaging-hierarchy.md): What to lead with, what to support with, and what to avoid.
- [Copy guidelines](https://docs.ur.app/design/user-experience/copy-guidelines.md): Recommended terminology for account opening and feature descriptions.
- [Partner positioning of UR](https://docs.ur.app/design/user-experience/partner-positioning.md): How to introduce UR in banners and provide persistent account access.
- [Visual hierarchy](https://docs.ur.app/design/user-experience/visual-hierarchy.md): How much screen prominence to give the account, actions, and card.
- [Account creation](https://docs.ur.app/design/user-experience/account-creation.md): The authentication paths for creating a UR account, and the URID.
- [KYC](https://docs.ur.app/design/user-experience/kyc.md): The three-part KYC flow and how to show the URID throughout it.
- [Card activation](https://docs.ur.app/design/user-experience/card-activation.md): Currency authorization and card activation by integration mode.
- [Card management](https://docs.ur.app/design/user-experience/card-management.md): The card hub for security and spending controls.
- [Off-ramp](https://docs.ur.app/design/user-experience/off-ramp.md): Converting digital assets to fiat in the UR account.
- [Bank transfer](https://docs.ur.app/design/user-experience/bank-transfer.md): Receiving funds from external bank accounts into the UR account.
- [Co-branded debit card design](https://docs.ur.app/design/cards/co-branded-debit-card-design.md): Design and submit your custom co-branded Mastercard debit card artwork.

## API reference

- [OpenAPIs](https://docs.ur.app/api-reference/readme.md): Base URLs, environments, and authentication for all UR API endpoints.
- [Signature and verify](https://docs.ur.app/api-reference/signature-and-verify.md): Signing and verification rules for all API and webhook interactions.
- [Development environment](https://docs.ur.app/api-reference/development-environment.md): The sandbox is an isolated environment for testing and development, without affecting production.
- [Smart contracts](https://docs.ur.app/api-reference/smart-contracts.md): Contract addresses, source code, audit reports, and on-chain interaction reference.
- [External Wallet Access Mode](https://docs.ur.app/api-reference/account/external-wallet-access-mode.md): Complete API reference for partners integrating via External Wallet Access.
- [Delegated Contract Mode](https://docs.ur.app/api-reference/account/delegated-contract-mode.md): Complete API reference for partners integrating via Delegated Contract Mode.
- [Managed Custody Mode](https://docs.ur.app/api-reference/account/managed-custody-mode.md): Core banking API reference for partners integrating via Managed Custody Mode.
- [Crypto Backed Card](https://docs.ur.app/api-reference/cards/crypto-backed-card.md): Prefund operations, card authorization callback, and card webhooks for Crypto Backed mode.
- [Managed Custody SDK KYC](https://docs.ur.app/api-reference/kyc-and-kyb/managed-custody-sdk-kyc.md): Onboard users with KYC completed on the user's device via the UR-issued Sumsub access token.
- [Shared-token KYC reuse](https://docs.ur.app/api-reference/kyc-and-kyb/shared-token-kyc-reuse.md): Onboard users whose KYC your platform already completed in its own Sumsub tenant, by sharing the verified applicant with UR through a Sumsub share token. UR copies the applicant, validates the data, a
- [Retry KYC](https://docs.ur.app/api-reference/kyc-and-kyb/retry-kyc.md): Handle a UR-initiated request for a user to redo part or all of their KYC. UR issues a retry directive, notifies you over webhook, and your platform claims a new session and drives the user through th
- [Account](https://docs.ur.app/api-reference/api/account.md)
- [Managed Custody Mode](https://docs.ur.app/api-reference/api/account/managed-custody-mode.md)
- [Get BR profile](https://docs.ur.app/api-reference/api/account/managed-custody-mode/get-br-profile.md)
- [Get user balance](https://docs.ur.app/api-reference/api/account/managed-custody-mode/get-user-balance.md)
- [Get account status](https://docs.ur.app/api-reference/api/account/managed-custody-mode/get-account-status.md)
- [Apply for a USD IBAN](https://docs.ur.app/api-reference/api/account/managed-custody-mode/apply-for-a-usd-iban.md)
- [Get off-ramp quote](https://docs.ur.app/api-reference/api/account/managed-custody-mode/get-off-ramp-quote.md)
- [Get FX quote](https://docs.ur.app/api-reference/api/account/managed-custody-mode/get-fx-quote.md)
- [Execute FX](https://docs.ur.app/api-reference/api/account/managed-custody-mode/execute-fx.md)
- [Get payout fees](https://docs.ur.app/api-reference/api/account/managed-custody-mode/get-payout-fees.md)
- [List banks](https://docs.ur.app/api-reference/api/account/managed-custody-mode/list-banks.md)
- [Get bank by IBAN](https://docs.ur.app/api-reference/api/account/managed-custody-mode/get-bank-by-iban.md)
- [List countries and cities](https://docs.ur.app/api-reference/api/account/managed-custody-mode/list-countries-and-cities.md)
- [List payment purposes](https://docs.ur.app/api-reference/api/account/managed-custody-mode/list-payment-purposes.md)
- [Verify reference](https://docs.ur.app/api-reference/api/account/managed-custody-mode/verify-reference.md)
- [Verify contact](https://docs.ur.app/api-reference/api/account/managed-custody-mode/verify-contact.md)
- [Submit payout](https://docs.ur.app/api-reference/api/account/managed-custody-mode/submit-payout.md)
- [Get on-ramp limit](https://docs.ur.app/api-reference/api/account/managed-custody-mode/get-on-ramp-limit.md)
- [Check pending on-ramp retry](https://docs.ur.app/api-reference/api/account/managed-custody-mode/check-pending-on-ramp-retry.md)
- [Get on-ramp quote](https://docs.ur.app/api-reference/api/account/managed-custody-mode/get-on-ramp-quote.md)
- [Get on-ramp liveness token](https://docs.ur.app/api-reference/api/account/managed-custody-mode/get-on-ramp-liveness-token.md)
- [Get on-ramp liveness result](https://docs.ur.app/api-reference/api/account/managed-custody-mode/get-on-ramp-liveness-result.md)
- [Submit on-ramp](https://docs.ur.app/api-reference/api/account/managed-custody-mode/submit-on-ramp.md)
- [Retry on-ramp swap](https://docs.ur.app/api-reference/api/account/managed-custody-mode/retry-on-ramp-swap.md)
- [Cancel on-ramp retry](https://docs.ur.app/api-reference/api/account/managed-custody-mode/cancel-on-ramp-retry.md)
- [Create card](https://docs.ur.app/api-reference/api/account/managed-custody-mode/create-card.md)
- [Get card info](https://docs.ur.app/api-reference/api/account/managed-custody-mode/get-card-info.md)
- [Set default card currency](https://docs.ur.app/api-reference/api/account/managed-custody-mode/set-default-card-currency.md)
- [Update card status](https://docs.ur.app/api-reference/api/account/managed-custody-mode/update-card-status.md)
- [Fetch transaction history](https://docs.ur.app/api-reference/api/account/managed-custody-mode/fetch-transaction-history.md)
- [External Wallet Access Mode](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode.md)
- [Get server timestamp](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/get-server-timestamp.md)
- [Check email availability](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/check-email-availability.md)
- [Get user account status](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/get-user-account-status.md)
- [Mint the user's URID](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/mint-the-users-urid.md)
- [Create a Sumsub SDK token](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/create-a-sumsub-sdk-token.md)
- [Get Form A text](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/get-form-a-text.md)
- [Submit signed Form A](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/submit-signed-form-a.md)
- [Get user banking profile](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/get-user-banking-profile.md)
- [Get card info](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/get-card-info.md)
- [Create card](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/create-card.md)
- [Set default transaction currency](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/set-default-transaction-currency.md)
- [Update card status](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/update-card-status.md)
- [Get transaction history](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/get-transaction-history.md)
- [Submit token permit](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/submit-token-permit.md)
- [Get supported chain config](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/get-supported-chain-config.md)
- [Get off-ramp quote (EVM)](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/get-off-ramp-quote-evm.md)
- [Get off-ramp quote (Solana)](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/get-off-ramp-quote-solana.md)
- [Get on-ramp limit](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/get-on-ramp-limit.md)
- [Get on-ramp quote](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/get-on-ramp-quote.md)
- [Get liveness token](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/get-liveness-token.md)
- [Check liveness result](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/check-liveness-result.md)
- [Initiate on-ramp with permit](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/initiate-on-ramp-with-permit.md)
- [Check pending on-ramp retry](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/check-pending-on-ramp-retry.md)
- [Retry on-ramp swap with permit](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/retry-on-ramp-swap-with-permit.md)
- [Cancel on-ramp retry](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/cancel-on-ramp-retry.md)
- [Verify payment reference](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/verify-payment-reference.md)
- [Verify contact](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/verify-contact.md)
- [Create payout with permit](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/create-payout-with-permit.md)
- [Get FX quote](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/get-fx-quote.md)
- [Execute FX with permit](https://docs.ur.app/api-reference/api/account/external-wallet-access-mode/execute-fx-with-permit.md)
- [Delegated Contract Mode](https://docs.ur.app/api-reference/api/account/delegated-contract-mode.md)
- [Exchange authorization code for user info](https://docs.ur.app/api-reference/api/account/delegated-contract-mode/exchange-authorization-code-for-user-info.md)
- [Get supported asset list](https://docs.ur.app/api-reference/api/account/delegated-contract-mode/get-supported-asset-list.md)
- [Get currency exchange rate](https://docs.ur.app/api-reference/api/account/delegated-contract-mode/get-currency-exchange-rate.md)
- [Execute currency exchange](https://docs.ur.app/api-reference/api/account/delegated-contract-mode/execute-currency-exchange.md)
- [Get off-ramp quote](https://docs.ur.app/api-reference/api/account/delegated-contract-mode/get-off-ramp-quote.md)
- [Create off-ramp request](https://docs.ur.app/api-reference/api/account/delegated-contract-mode/create-off-ramp-request.md)
- [Get on-ramp quote](https://docs.ur.app/api-reference/api/account/delegated-contract-mode/get-on-ramp-quote.md)
- [Create on-ramp request](https://docs.ur.app/api-reference/api/account/delegated-contract-mode/create-on-ramp-request.md)
- [Cards](https://docs.ur.app/api-reference/api/cards.md)
- [Get Prefund balance](https://docs.ur.app/api-reference/api/cards/get-prefund-balance.md)
- [Card authorization callback](https://docs.ur.app/api-reference/api/cards/card-authorization-callback.md): UR synchronously calls the partner-hosted authorization endpoint (registered during onboarding) on every card authorization for Card Mode: Crypto Backed users. UR signs the request body with EIP-191 (headers X-Api-Signature and X-Api-PublicKey); the partner must verify the signature against UR's pinned public key before acting, then respond within 500 ms with a signed decision. Timeouts, 5xx responses, signature failures, or invalid responses are treated as DECLINE for the swipe.
- [Card payment transaction webhook](https://docs.ur.app/api-reference/api/cards/card-payment-transaction-webhook.md): UR sends transaction\_v2 when a card payment transaction reaches a terminal state; card payment records use data.type MARQETA\_AUTHORIZE and the same event covers successful and failed payments. UR signs the raw body with EIP-191 (X-Api-Signature); the partner must verify the signer against UR's public key before acting. Return HTTP 200 within 10 seconds; UR retries non-200 or timed-out deliveries up to 3 times at 5-minute intervals, and data.id is the idempotency key.
- [Prefund balance alert webhook](https://docs.ur.app/api-reference/api/cards/prefund-balance-alert-webhook.md): UR emits prefund.balance.alert when the balance of one settlement currency in the Prefund Account crosses its threshold. The alert is per currency and edge-triggered: UR sends it only when the level changes, not repeatedly while the balance sits below the threshold. UR signs the body with EIP-191; the partner must verify the signer against UR's public key, then treat the alert as a trigger (not as truth) and call Get Prefund balance to confirm current state before topping up.
- [KYC And KYB](https://docs.ur.app/api-reference/api/kyc-and-kyb.md)
- [Managed Custody KYC](https://docs.ur.app/api-reference/api/kyc-and-kyb/managed-custody-kyc.md)
- [Create the account and onboarding session](https://docs.ur.app/api-reference/api/kyc-and-kyb/managed-custody-kyc/create-the-account-and-onboarding-session.md)
- [Create a Sumsub access token](https://docs.ur.app/api-reference/api/kyc-and-kyb/managed-custody-kyc/create-a-sumsub-access-token.md)
- [Get the current onboarding session](https://docs.ur.app/api-reference/api/kyc-and-kyb/managed-custody-kyc/get-the-current-onboarding-session.md)
- [Hand off a Sumsub share token](https://docs.ur.app/api-reference/api/kyc-and-kyb/managed-custody-kyc/hand-off-a-sumsub-share-token.md)
- [Check KYC data completeness](https://docs.ur.app/api-reference/api/kyc-and-kyb/managed-custody-kyc/check-kyc-data-completeness.md)
- [Get Form A text and hash](https://docs.ur.app/api-reference/api/kyc-and-kyb/managed-custody-kyc/get-form-a-text-and-hash.md)
- [Sign Form A](https://docs.ur.app/api-reference/api/kyc-and-kyb/managed-custody-kyc/sign-form-a.md)
- [Submit the session for activation](https://docs.ur.app/api-reference/api/kyc-and-kyb/managed-custody-kyc/submit-the-session-for-activation.md)
- [Receive the KYC onboarding result](https://docs.ur.app/api-reference/api/kyc-and-kyb/managed-custody-kyc/receive-the-kyc-onboarding-result.md): UR delivers fma.account.result to your registered webhook URL when onboarding reaches a terminal outcome: status activated once the URID reaches Live status and the bank account is open, or status rejected with rejectCode and rejectReason. Verify the EIP-191 signatures, deduplicate on X-Webhook-Request-Id, and acknowledge with HTTP 200; UR retries non-2xx responses with exponential backoff. The payload is identical for Managed Custody Mode and External Wallet Access Mode.
- [Receive the shared-token handoff verdict](https://docs.ur.app/api-reference/api/kyc-and-kyb/managed-custody-kyc/receive-the-shared-token-handoff-verdict.md): Async mirror of a shared-token handoff attempt's verdict, carrying the same conclusion as the synchronous reuse-share-token response and the check endpoints. Sent for passed and incomplete verdicts; terminal verdicts are not webhooked in v1. Partners that only act on remediation may ignore passed events.
- [External Wallet Access KYC](https://docs.ur.app/api-reference/api/kyc-and-kyb/external-wallet-access-kyc.md)
- [Hand off a Sumsub share token for an external wallet user](https://docs.ur.app/api-reference/api/kyc-and-kyb/external-wallet-access-kyc/hand-off-a-sumsub-share-token-for-an-external-wallet-user.md)
- [Check KYC data completeness for an external wallet user](https://docs.ur.app/api-reference/api/kyc-and-kyb/external-wallet-access-kyc/check-kyc-data-completeness-for-an-external-wallet-user.md)
- [Submit KYC for an external wallet user](https://docs.ur.app/api-reference/api/kyc-and-kyb/external-wallet-access-kyc/submit-kyc-for-an-external-wallet-user.md)
- [Create a Sumsub access token by network](https://docs.ur.app/api-reference/api/kyc-and-kyb/external-wallet-access-kyc/create-a-sumsub-access-token-by-network.md)
- [Get Sumsub status by network](https://docs.ur.app/api-reference/api/kyc-and-kyb/external-wallet-access-kyc/get-sumsub-status-by-network.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information, you can query the documentation dynamically by asking a question.
Perform an HTTP GET request on a page URL with the `ask` query parameter:
```
GET https://docs.ur.app/readme.md?ask=<question>
```
The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.
Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
