# Aurea API Docs > Welcome to the **Aurea API** — a backend platform for authentication, cross-chain wallet management, and multi-chain transaction processing. Aurea supports both **custodial wallets** (for regulated entities) and **non-custodial wallets** (for everyone), and is compatible with any blockchain network and token in the market upon request. Build powerful Web3 applications with a simple, REST-based interface. All pages in one Markdown file: https://docs.aureahub.com/llms-full.txt ## Getting Started - [Introduction](https://docs.aureahub.com/docs/introduction.md): Welcome to the **Aurea API** — a backend platform for authentication, cross-chain wallet management, and multi-chain transaction processing. Aurea supports both **custodial wallets** (for regulated entities) and **non-custodial wallets** (for everyone), and is compatible with any blockchain network and token in the market upon request. Build powerful Web3 applications with a simple, REST-based interface. - [Authentication](https://docs.aureahub.com/docs/authentication.md): The Aurea API uses two credentials: a **tenant API key and secret**, used to sign requests with HMAC-SHA256, and a **user access token** (JWT), sent as a bearer token. - [Quick Start](https://docs.aureahub.com/docs/quickstart.md): Register a user, create a wallet, then send a first transaction and follow it to a final status. - [Error Handling](https://docs.aureahub.com/docs/errors.md): Errors come back as JSON with an HTTP status code. Most use a common envelope; this page covers the envelope, the documented exceptions, and how to handle both. - [Supported Blockchains](https://docs.aureahub.com/docs/supported-blockchains.md): Chains are configured per deployment and per tenant. Ask the API which ones your tenant can use instead of relying on a fixed list. - [Rate Limiting](https://docs.aureahub.com/docs/rate-limiting.md): Some sensitive routes are rate-limited. There is no global limit, and there are no plans or tiers. ## Conventions - [Amount Units](https://docs.aureahub.com/docs/amounts.md): How the API expects and returns token and fiat amounts. - [Pagination](https://docs.aureahub.com/docs/pagination.md): List endpoints don't share a single pagination style — check the table below for the parameters and response shape of each one. - [Idempotency](https://docs.aureahub.com/docs/idempotency.md): The bank ramp endpoints that create something take an `Idempotency-Key` header. Everywhere else, know what repeating a call does before you retry it. - [Enums & State Machines](https://docs.aureahub.com/docs/enums-states.md): The status values the API returns, and how a resource moves between them. - [Webhooks](https://docs.aureahub.com/docs/webhooks.md): Aurea sends webhooks for Agent Payments, the bank ramp and the card onramp. For wallets, transactions and swaps, read the state through the API. - [Signing Primitives](https://docs.aureahub.com/docs/signing.md): Every cryptographic signature Aurea asks the client to produce, with a copy-pasteable TypeScript example. - [Versioning](https://docs.aureahub.com/docs/versioning.md): There is one API version, `v1`, and it is part of the path. ## Guides: Wallets - [User Onboarding](https://docs.aureahub.com/docs/guide-user-onboarding.md): Take a new user from sign-up to a first wallet. Which wallet flow you run is set by your tenant's wallet mode — it is not a per-user choice. - [Non-Custodial Key Lifecycle](https://docs.aureahub.com/docs/guide-non-custodial-keys.md): How a wallet key ends up only on the user's device — by registering a client-side wallet, or by migrating a server-custodial wallet — and what the server keeps at each stage. - [Sending a Transaction](https://docs.aureahub.com/docs/guide-send-transaction.md): Custodial, non-custodial and gasless sends — one endpoint to start, and at most one more to finish. - [Token Swaps](https://docs.aureahub.com/docs/guide-swap.md): Every swap starts with a LI.FI quote. What happens next depends on the source chain, on who holds the wallet key, and on whether the pair qualifies for the gasless flow. - [DApps Browser](https://docs.aureahub.com/docs/guide-dapps.md): Back an in-app dApp browser with Aurea: the tenant's dApp catalogue, EIP-191 message signing, nonce and gas lookups, and raw-transaction relay. ## Guides: Bank Ramp - [Bank Ramp Setup](https://docs.aureahub.com/docs/bank-setup.md): What has to be in place before your app offers the bank ramp — EUR bank transfers to stablecoins and back — and how your app checks it. - [Bank Pay-In](https://docs.aureahub.com/docs/guide-fiat-payin.md): Take a user from zero to money in: bank ramp onboarding (KYC), then a virtual IBAN for bank transfers. - [Pay-In to Your Own Address](https://docs.aureahub.com/docs/guide-standalone-payin.md): Deliver a user's bank transfers to a wallet they already own — MetaMask, Phantom, a hardware wallet — without an Aurea wallet. - [Bank Payout](https://docs.aureahub.com/docs/guide-fiat-payout.md): Let a user convert crypto into fiat on their bank account through the bank ramp's hosted payout page. Payouts currently run only in the bank ramp's sandbox (`isTestnet: true`); production requests are refused. - [Payout from a Wallet](https://docs.aureahub.com/docs/guide-wallet-payout.md): Turn a user's crypto into money on a bank account, paid from a wallet **they** control — Aurea never holds it and never sends it for them. - [Payout from Your Own Address](https://docs.aureahub.com/docs/guide-standalone-payout.md): Let a user turn crypto into money on a bank account from a wallet Aurea has never held a key for — MetaMask, Phantom, a hardware wallet. ## Guides: Card Onramp - [Card to Crypto](https://docs.aureahub.com/docs/guide-card-onramp.md): Your users pay by card and receive crypto in their wallet. Aurea's card onramp runs the payment page, the KYC, the card payment and the delivery on chain, with a payment provider as merchant of record; you choose where the crypto goes and hear what happened. - [For Your Own Wallets](https://docs.aureahub.com/docs/guide-card-onramp-wallets.md): For a tenant that already holds its users' wallets and wants only the card onramp: your server names each end user by your own id, gives the wallet the crypto goes to, and opens the purchase. Aurea runs the payment page, the KYC, the card payment and the delivery to that wallet. ## Guides: Events & Testing - [Events to Your Server](https://docs.aureahub.com/docs/guide-events.md): Aurea tells your server when the bank ramp changes a user's KYC, a deposit, a transaction or a payout, and when a card onramp session changes status: a signed `POST`, retried until your server takes it. - [Sandbox Playbook](https://docs.aureahub.com/docs/guide-sandbox-playbook.md): Run the fiat flows end to end against the bank ramp's sandbox before going live. - [Build with an AI Agent](https://docs.aureahub.com/docs/build-with-ai.md): Everything an AI coding agent needs to integrate Aurea: where the machine-readable docs are, the rules every call follows, and the order of the calls for each service. ## Agentic Payments - [Overview & SDK](https://docs.aureahub.com/docs/agentic-payments.md): AI agents that transact within policy. Two products on one API: a shopper-facing commerce **widget** (Product A) you embed in a store, and an in-account **treasury agent** (Product B) that pays a merchant's own suppliers and payouts on instruction — every payment bounded by a spend policy and an approval threshold. - [API Reference](https://docs.aureahub.com/docs/agentic-api.md): All 54 endpoints under `https://api.aureahub.com/v1/agent-payments`. Unless noted, every route requires a tenant-admin JWT (a platform `admin` may add `?tenantId=` to act on a tenant). The shopper-facing commerce routes also accept a scoped merchant API key; the only unauthenticated route is the payment provider's own callback, which you never call. ## API Reference: Health - [Health Check](https://docs.aureahub.com/docs/health-check.md): GET /health. Lightweight liveness probe for the Aurea API — use to verify the service is reachable before starting a flow. ## API Reference: Auth - [Register](https://docs.aureahub.com/docs/auth-register.md): POST /v1/auth/register. Create a user with username, email and password, and receive an access token, a refresh token and the user profile in the same response. A wallet can be created or imported in the same call. - [Login](https://docs.aureahub.com/docs/auth-login.md): POST /v1/auth/login. Sign in an existing user with username and password and receive an access token, a refresh token and the user profile. - [Refresh Token](https://docs.aureahub.com/docs/auth-refresh.md): POST /v1/auth/refresh. Exchange a refresh token for a new access token without asking the user to sign in again. - [Google Sign-In](https://docs.aureahub.com/docs/auth-google.md): POST /v1/auth/google. Exchange a Google ID token for Aurea tokens. The matching user is signed in, or a new user is created on first use. - [Apple Sign-In](https://docs.aureahub.com/docs/auth-apple.md): POST /v1/auth/apple. Exchange a Sign in with Apple identity token for Aurea tokens. The linked user is signed in, or a new user is created on first use. - [Forgot Password](https://docs.aureahub.com/docs/auth-forgot-password.md): POST /v1/auth/forgot-password. Native, email-based password reset. A user requests a link, opens it, and sets a new password — with single-use tokens, anti-enumeration, and invalidation of earlier refresh tokens. ## API Reference: Users - [Get My Profile](https://docs.aureahub.com/docs/users-me.md): GET /v1/users/{id}. Read the signed-in user's own profile. - [Update My Profile](https://docs.aureahub.com/docs/users-me-update.md): PATCH /v1/users/me. Update the authenticated user's username and/or display name. - [List Users](https://docs.aureahub.com/docs/users-list.md): GET /v1/users/. Retrieve a paginated list of all users in the tenant. Primarily used in admin and back-office dashboards. - [Create User](https://docs.aureahub.com/docs/users-create.md): POST /v1/users/. Programmatically create a new user from your server — distinct from the self-registration flow. - [Get User](https://docs.aureahub.com/docs/users-get.md): GET /v1/users/{id}. Retrieve the full profile of a specific user by their UUID. - [Update User](https://docs.aureahub.com/docs/users-update.md): PUT /v1/users/{id}. Update a user's email address or password. At least one field must be provided. - [Delete User](https://docs.aureahub.com/docs/users-delete.md): DELETE /v1/users/{id}. Deactivate a user account. This is a soft-delete — data is retained but the user can no longer authenticate. - [Search Users](https://docs.aureahub.com/docs/users-search.md): GET /v1/users/search. Find users by username — the primary lookup for peer-to-peer payment flows. - [Advanced Search](https://docs.aureahub.com/docs/users-advsearch.md): GET /v1/users/advanced-search. Look up users by wallet address, wallet UUID, or username — built for admin tools and dispute resolution flows. - [Update FCM Token](https://docs.aureahub.com/docs/users-fcm.md): PATCH /v1/users/me/fcm-token. Register or update a Firebase Cloud Messaging (FCM) device token so the user receives push notifications for transactions and alerts. - [Generate QR Code](https://docs.aureahub.com/docs/users-qr.md): GET /v1/users/{id}/qr-code. Get a payment QR code for a user — encodes a deep link that pre-fills a send form with the recipient's username and tenant. - [List User Wallets](https://docs.aureahub.com/docs/users-wallets.md): GET /v1/users/{id}/wallets. Retrieve all wallets owned by a specific user, across all supported blockchains. ## API Reference: Wallets - [Create Wallet](https://docs.aureahub.com/docs/wallets-create.md): POST /v1/wallets/. Generate a new blockchain wallet for the authenticated user — either custodial (key managed by Aurea) or non-custodial (user-controlled key). Wallets are cross-chain and any network or token can be supported upon request. - [List Wallets](https://docs.aureahub.com/docs/wallets-list.md): GET /v1/wallets/. Retrieve all wallets owned by the authenticated user, with optional chain filtering. - [Import Wallet](https://docs.aureahub.com/docs/wallets-import.md): POST /v1/wallets/import. Bring an existing self-custodied wallet into Aurea's managed system using a private key or mnemonic phrase. - [Get Wallet](https://docs.aureahub.com/docs/wallets-get.md): GET /v1/wallets/{id}. Retrieve the details of a specific wallet by its UUID. - [Delete Wallet](https://docs.aureahub.com/docs/wallets-delete.md): DELETE /v1/wallets/{id}. Remove a wallet from the user's account. The primary wallet cannot be deleted. - [Get Balance](https://docs.aureahub.com/docs/wallets-balance.md): GET /v1/wallets/{id}/balance. Retrieve the native coin and all token balances for a specific wallet, with optional testnet support. - [Aggregate Balances](https://docs.aureahub.com/docs/wallets-aggregate.md): GET /v1/wallets/balances/aggregate. Get a consolidated portfolio view — total value across all wallets and chains, broken down by asset and chain. - [Set Primary Wallet](https://docs.aureahub.com/docs/wallets-primary.md): PATCH /v1/wallets/{id}/primary. Mark a wallet as the user's primary wallet for its chain and network type (mainnet or testnet). - [Non-Custodial Challenge](https://docs.aureahub.com/docs/wallets-client-challenge.md): GET /v1/wallets/client/challenge. Get a one-time challenge that proves the user controls the private key of a wallet generated on their device — step 1 of registering a client-side (non-custodial) wallet. - [Register Client Wallet](https://docs.aureahub.com/docs/wallets-client-register.md): POST /v1/wallets/client. Create a non-custodial wallet whose private key stays on the user's device. Aurea verifies the signed challenge and stores only the address. - [Confirm Client Custody](https://docs.aureahub.com/docs/wallets-confirm-custody.md): POST /v1/wallets/confirm-client-custody. Final step of migrating a server-custodial wallet to client-side custody: prove the device holds the exported key, and the server removes its own copy. - [Register Device Key](https://docs.aureahub.com/docs/wallets-register-device.md): POST /v1/wallets/register-device. Attach a device public key to a wallet, authorised by a signature from the wallet's own private key. - [Request Export Token](https://docs.aureahub.com/docs/wallets-export-token.md): POST /v1/wallets/request-export-token. Start migrating a server-custodial wallet to client-side custody: re-confirm the user's password and receive a one-time export token. - [Export Encrypted Key](https://docs.aureahub.com/docs/wallets-export-key.md): POST /v1/wallets/export-key. Step 2 of key migration: receive the wallet's private key encrypted to an ephemeral X25519 key generated on the device. - [Migration Challenge](https://docs.aureahub.com/docs/wallets-migration-challenge.md): GET /v1/wallets/migration-challenge. Get a one-time challenge to sign with an existing wallet's private key — consumed by Confirm Client Custody or Register Device Key. - [Cancel Migration](https://docs.aureahub.com/docs/wallets-cancel-migration.md): POST /v1/wallets/cancel-migration. Abort a key migration before the key has been exported, returning the wallet to server custody. - [Set Primary (atomic)](https://docs.aureahub.com/docs/wallets-set-primary.md): PATCH /v1/wallets/{id}/set-primary. Promote a wallet to primary and demote the user's other primary wallets on the same network type in a single database transaction. No request body. ## API Reference: MPC Wallets - [MPC Config](https://docs.aureahub.com/docs/mpc-config.md): GET /v1/mpc/config. Discover whether MPC (threshold-signature) wallets are enabled for the tenant and whether the current user already has an MPC wallet provisioned. - [Start DKG Ceremony](https://docs.aureahub.com/docs/mpc-dkg-start.md): POST /v1/mpc/wallets/dkg/start. Begin a 2-of-3 distributed key generation ceremony — the first step in provisioning a new MPC wallet. - [Register MPC Wallet](https://docs.aureahub.com/docs/mpc-wallet-register.md): POST /v1/mpc/wallets. Finalise a completed DKG ceremony — Aurea verifies the address against the relay record and persists the wallet. - [Start Signing Ceremony](https://docs.aureahub.com/docs/mpc-sign-start.md): POST /v1/mpc/wallets/{walletId}/sign/start. Open a threshold-signing session against an MPC wallet — for either the normal DEVICE+AUREA flow or BACKUP-based recovery. - [Service Token Bridge](https://docs.aureahub.com/docs/mpc-service-token.md): POST /v1/mpc/service/token. Exchange a first-party app session for a short-lived Hub JWT scoped to a single merchant — required to drive MPC ceremonies from a downstream product (e.g. aurea-pay). - [Admin: List MPC Wallets](https://docs.aureahub.com/docs/mpc-admin-list.md): GET /v1/mpc/admin/wallets/{tenantId}. List all MPC wallets for a given tenant. Public metadata only — no key shares are ever exposed. - [Relay: Join Session](https://docs.aureahub.com/docs/mpc-relay-join.md): POST /v1/mpc/relay/session/{id}/join. Announce a party (DEVICE / BACKUP / AUREA) into an MPC ceremony session. - [Relay: List Parties](https://docs.aureahub.com/docs/mpc-relay-parties.md): GET /v1/mpc/relay/session/{id}/parties. Poll the roster of parties that have joined an MPC ceremony — used to wait for the AUREA cosigner before starting the message loop. - [Relay: Post Message](https://docs.aureahub.com/docs/mpc-relay-msg.md): POST /v1/mpc/relay/session/{id}/msg. Forward a ceremony envelope to another party (or broadcast to all). - [Relay: Read Inbox](https://docs.aureahub.com/docs/mpc-relay-inbox.md): GET /v1/mpc/relay/session/{id}/inbox. Drain inbound ceremony envelopes for a given party. - [Relay: Get Message Hash](https://docs.aureahub.com/docs/mpc-relay-msghash.md): GET /v1/mpc/relay/session/{id}/msghash. Fetch the message-hash that the signing ceremony was opened against — used by a joining party to verify it is signing what it expects. - [Relay: Post Result](https://docs.aureahub.com/docs/mpc-relay-result.md): POST /v1/mpc/relay/session/{id}/result. Publish a party's final ceremony output (e.g. its signature share, or a "done" marker) into the session. - [Relay: Read Results](https://docs.aureahub.com/docs/mpc-relay-results.md): GET /v1/mpc/relay/session/{id}/results. Read the final outputs posted by each party — the last step in any MPC ceremony. ## API Reference: Transactions - [Create Transaction](https://docs.aureahub.com/docs/tx-create.md): POST /v1/transactions/. Send a native coin or a token from a wallet the authenticated user owns. - [Broadcast Transaction](https://docs.aureahub.com/docs/tx-broadcast.md): POST /v1/transactions/{id}/broadcast. Submit the client's signature for a non-custodial send so Aurea can put it on-chain. - [List Transactions](https://docs.aureahub.com/docs/tx-list.md): GET /v1/transactions/. Page through the authenticated user's blockchain transaction records, newest first. - [Get Transaction](https://docs.aureahub.com/docs/tx-get.md): GET /v1/transactions/{id}. Fetch one of the authenticated user's transaction records by ID. - [Get Tx Status](https://docs.aureahub.com/docs/tx-status.md): GET /v1/transactions/{id}/status. Check a transaction against the chain and get its current status and confirmation count. - [Transaction Quote](https://docs.aureahub.com/docs/tx-quote.md): POST /v1/transactions/quote. Estimate the network fee of a send, in the native coin and in EUR, before creating it. - [Get Aggregated Tx](https://docs.aureahub.com/docs/tx-aggregated-get.md): GET /v1/transactions/aggregated/{id}. Fetch a single item of the Unified Transaction Feed by its ID. ## API Reference: Tokens - [List Tokens](https://docs.aureahub.com/docs/tokens-list.md): GET /v1/tokens/. List the tokens configured for your tenant, grouped by chain. - [Tokens by Chain](https://docs.aureahub.com/docs/tokens-by-chain.md): GET /v1/tokens/chain/{chain}. Retrieve all tokens available on a specific blockchain — ideal for populating swap and send forms after a chain is selected. - [Supported Chains](https://docs.aureahub.com/docs/tokens-chains.md): GET /v1/tokens/meta/chains. Retrieve the authoritative runtime list of chain identifiers enabled for your tenant. Aurea is cross-chain by design — any blockchain network or token in the market can be added upon request. ## API Reference: Swap - [Get Quote](https://docs.aureahub.com/docs/swap-quote.md): POST /v1/swap/quote. Step 1 of every swap — get a LI.FI route for a wallet, together with the `transactionData` you will execute. - [Check Allowance](https://docs.aureahub.com/docs/swap-allowance.md): POST /v1/swap/check-allowance. Read the on-chain ERC-20 allowance a wallet has granted to a spender — typically the `approvalAddress` from the quote. - [Approve Token](https://docs.aureahub.com/docs/swap-approve.md): POST /v1/swap/approve. Grant the swap spender — the quote's `approvalAddress` — an ERC-20 allowance on the source token. - [Execute Swap](https://docs.aureahub.com/docs/swap-execute.md): POST /v1/swap/execute. Run a quoted swap from a wallet — sent immediately for custodial wallets, prepared for client signing for non-custodial wallets. - [Simulate Swap](https://docs.aureahub.com/docs/swap-simulate.md): POST /v1/swap/simulate. Create a confirmed swap record without calling LI.FI or any blockchain — for exercising swap UI and transaction-history flows. - [Execute Gasless](https://docs.aureahub.com/docs/swap-gasless.md): POST /v1/swap/execute-gasless. Swap EUR.e for native xDAI on Gnosis, with the token approval supplied as an ERC-2612 permit instead of an approve transaction. - [Broadcast Swap Tx](https://docs.aureahub.com/docs/swap-broadcast.md): POST /v1/swap/broadcast. Non-custodial EVM swaps, step 2 — submit the signature for the `txHashToSign` returned by Execute Swap. - [Sign EIP-712 Permit](https://docs.aureahub.com/docs/swap-sign-permit.md): POST /v1/swap/sign-permit. Gasless swaps, step 2 — Aurea produces the EUR.e ERC-2612 permit for the wallet and returns its signature components. - [Broadcast Approve Tx](https://docs.aureahub.com/docs/swap-broadcast-approve.md): POST /v1/swap/broadcast-approve. Non-custodial approvals, step 2 — submit the signature for the `txHashToSign` returned by Approve Token. - [Broadcast Gasless Tx](https://docs.aureahub.com/docs/swap-broadcast-gasless.md): POST /v1/swap/broadcast-gasless. Gasless swaps for non-custodial wallets — submit the signature for the `txHashToSign` returned by Execute Gasless. - [Execute Solana Swap](https://docs.aureahub.com/docs/swap-execute-solana.md): POST /v1/swap/execute-solana. Execute a LI.FI quote whose source chain is Solana. This path is an alias of Execute Swap. ## API Reference: Bank Ramp: Pay-In - [Onboarding Status](https://docs.aureahub.com/docs/payin-status.md): GET /v1/ramp/bank/payin/onboarding-status. Check whether the user has completed the bank ramp's onboarding (KYC) and can start EUR deposits. - [Onboarding Session](https://docs.aureahub.com/docs/payin-session.md): POST /v1/ramp/bank/payin/onboard-session. Get a hosted onboarding (KYC) link for the user and send them there. - [Sync KYC Status](https://docs.aureahub.com/docs/payin-sync-status.md): POST /v1/ramp/bank/payin/sync-status. Pull the user's latest onboarding and KYC status from the bank ramp and store it — useful right after the user returns from the hosted onboarding. - [Currencies & Networks](https://docs.aureahub.com/docs/bank-currencies.md): GET /v1/ramp/bank/currencies. List the stablecoins and networks a user can receive from a bank deposit or sell for fiat, in the bank ramp's sandbox or in production. - [What Your Tenant Offers](https://docs.aureahub.com/docs/bank-settings.md): GET /v1/ramp/bank/settings. Read what your tenant offers its users with the bank ramp in one environment — which functions are on, where pay-ins go, which currencies and networks, and the fees — so your app shows only what will work. - [Open a Virtual Account](https://docs.aureahub.com/docs/payin-initiate.md): POST /v1/ramp/bank/payin/initiate. Assign the user a virtual IBAN: EUR bank transfers to it are converted by the bank ramp into crypto and sent to an on-chain address. - [Payment Methods](https://docs.aureahub.com/docs/payin-methods.md): GET /v1/ramp/bank/payin/payment-methods. List the virtual IBANs assigned to the user, with the crypto route each one converts deposits into. - [Deposits](https://docs.aureahub.com/docs/payin-deposits.md): GET /v1/ramp/bank/payin/deposits. List the EUR bank transfers the user has sent to their virtual IBANs. - [Transactions](https://docs.aureahub.com/docs/payin-transactions.md): GET /v1/ramp/bank/payin/transactions. Retrieve the bank ramp transactions — conversions, on-chain deliveries, payouts and reversals — Aurea has recorded for the user, with the deposit that paid for them. ## API Reference: Bank Ramp: Proven Addresses - [Ask for a Challenge](https://docs.aureahub.com/docs/bank-address-challenge.md): POST /v1/ramp/bank/addresses/challenge. Get the message a user signs to prove they control an address outside Aurea — the first step of the standalone mode. - [Verify an Address](https://docs.aureahub.com/docs/bank-address-verify.md): POST /v1/ramp/bank/addresses/verify. Send the signed challenge: a valid signature proves the address, and pay-ins can be delivered to it. - [List Addresses](https://docs.aureahub.com/docs/bank-addresses-list.md): GET /v1/ramp/bank/addresses. The addresses outside Aurea that the user proved in one environment and still holds. - [Revoke an Address](https://docs.aureahub.com/docs/bank-address-revoke.md): DELETE /v1/ramp/bank/addresses/{id}. Stop using an address the user proved: no new virtual IBAN can deliver to it. ## API Reference: Bank Ramp: Payout - [Countries](https://docs.aureahub.com/docs/payout-countries.md): GET /v1/ramp/bank/payout/countries. The countries where the bank ramp can pay out to the user, each with the fiat currencies it pays in. - [Search Channels](https://docs.aureahub.com/docs/payout-channels.md): POST /v1/ramp/bank/payout/channels/search. The ways the bank ramp can pay out a cryptocurrency as fiat to a country and currency: fees, limits, processing time, the details the beneficiary needs and the user's saved accounts. - [Channel Form](https://docs.aureahub.com/docs/payout-channel-form.md): POST /v1/ramp/bank/payout/channels/{channelId}/form. The beneficiary details a channel needs, as a JSON Schema to render or fill in. - [Saved Beneficiaries](https://docs.aureahub.com/docs/payout-beneficiaries.md): GET /v1/ramp/bank/payout/beneficiaries. The bank accounts and other payment methods the user can be paid out to, read live from the bank ramp. - [Create a Quote](https://docs.aureahub.com/docs/payout-quote.md): POST /v1/ramp/bank/payout/quotes. Price a payout to a bank account with the bank ramp: fees, the amount the beneficiary receives, the rate, and a quote that locks them. - [Answer a Form Step](https://docs.aureahub.com/docs/payout-quote-step.md): POST /v1/ramp/bank/payout/quotes/{quoteId}/steps. Send the bank ramp the answers to the step a payout quote is waiting for, and get the next step or the ready quote. - [Get a Quote](https://docs.aureahub.com/docs/payout-quote-get.md): GET /v1/ramp/bank/payout/quotes/{quoteId}. Read a payout quote as Aurea keeps it, without asking the bank ramp. - [Pay from a Wallet](https://docs.aureahub.com/docs/payout-wallet-pay.md): POST /v1/ramp/bank/payout/payouts. Bind a payout quote whose rate is locked to a bank ramp payout rule, and get the deposit the user's own wallet must send. - [List Wallet Payouts](https://docs.aureahub.com/docs/payout-wallet-list.md): GET /v1/ramp/bank/payout/payouts. The user's payouts paid from their own wallet, newest first, in one environment. - [Get a Wallet Payout](https://docs.aureahub.com/docs/payout-wallet-get.md): GET /v1/ramp/bank/payout/payouts/{payoutId}. Read one payout paid from the user's own wallet, as Aurea keeps it, without asking the bank ramp. - [Initiate Payout](https://docs.aureahub.com/docs/payout-initiate.md): POST /v1/ramp/bank/payout/initiate. Create a hosted payout in the bank ramp's sandbox: the user picks a bank account on the hosted page and receives fiat for the crypto amount you specify. Production payouts are currently refused. - [List Transactions](https://docs.aureahub.com/docs/payout-list.md): GET /v1/ramp/bank/payout/transactions. Retrieve the authenticated user's fiat payouts, page by page. - [Get Transaction](https://docs.aureahub.com/docs/payout-get.md): GET /v1/ramp/bank/payout/transactions/{id}. Fetch one of the user's payouts and its current status. ## API Reference: Card Onramp - [Configuration](https://docs.aureahub.com/docs/card-onramp-config.md): GET /v1/ramp/card/config. Whether the user's tenant offers card-to-crypto in an environment, and what the app needs to offer it. - [Quotes](https://docs.aureahub.com/docs/card-onramp-quotes.md): GET /v1/ramp/card/quotes. the price for the pairs your tenant offers, before the widget opens. - [Open a Session](https://docs.aureahub.com/docs/card-onramp-create.md): POST /v1/ramp/card/sessions. A card onramp session that delivers crypto to one of the user's wallets, and the client secret that opens the payment widget. - [Get a Session](https://docs.aureahub.com/docs/card-onramp-get.md): GET /v1/ramp/card/sessions/{id}. One of the user's sessions, as the payment provider sees it now. - [List Sessions](https://docs.aureahub.com/docs/card-onramp-list.md): GET /v1/ramp/card/sessions. The user's sessions in one environment, newest first. - [Hosted Page Link](https://docs.aureahub.com/docs/card-onramp-hosted-link.md): POST /v1/ramp/card/sessions/{id}/hosted-link. A link to Aurea's hosted page for one of the user's open sessions, for an app with no web page of its own. - [Hosted Page Read](https://docs.aureahub.com/docs/card-onramp-hosted-session.md): POST /v1/ramp/card/hosted/session. What the hosted page reads with its link's token. The page calls it itself; your app never needs to. - [Address Challenge](https://docs.aureahub.com/docs/card-onramp-address-challenge.md): POST /v1/ramp/card/addresses/challenge. The message a user signs to prove they control an address the onramp may deliver to. - [Verify an Address](https://docs.aureahub.com/docs/card-onramp-address-verify.md): POST /v1/ramp/card/addresses/verify. Keep the address a signed challenge proves. - [Proven Addresses](https://docs.aureahub.com/docs/card-onramp-addresses.md): GET /v1/ramp/card/addresses. The addresses the user proved in one environment and still holds. - [Revoke an Address](https://docs.aureahub.com/docs/card-onramp-address-revoke.md): DELETE /v1/ramp/card/addresses/{id}. Stop using an address the user proved. ## API Reference: Card Onramp: Your Wallets - [Name an End User](https://docs.aureahub.com/docs/card-wallets-customer-put.md): PUT /v1/ramp/card/customers/{externalId}. Make, or read, one of your end users by your own id. Optional: the wallet and purchase calls make the end user too. - [Get an End User](https://docs.aureahub.com/docs/card-wallets-customer-get.md): GET /v1/ramp/card/customers/{externalId}. One of your end users and the wallets you attested for it, in both environments. - [Attest a Default Wallet](https://docs.aureahub.com/docs/card-wallets-wallet-put.md): PUT /v1/ramp/card/customers/{externalId}/wallets/{family}. The wallet a purchase of that family uses when it names no address, in one environment. - [Revoke a Default Wallet](https://docs.aureahub.com/docs/card-wallets-wallet-delete.md): DELETE /v1/ramp/card/customers/{externalId}/wallets/{family}. Stop using the end user's default wallet of one family in one environment. - [Open a Purchase](https://docs.aureahub.com/docs/card-wallets-session-create.md): POST /v1/ramp/card/customers/{externalId}/sessions. A card purchase for your end user, to the wallet the call names or to its default wallet of the pair's family. - [List Purchases](https://docs.aureahub.com/docs/card-wallets-sessions-list.md): GET /v1/ramp/card/customers/{externalId}/sessions. The end user's purchases in one environment, newest first. - [Get a Purchase](https://docs.aureahub.com/docs/card-wallets-session-get.md): GET /v1/ramp/card/customers/{externalId}/sessions/{id}. One of the end user's purchases as it stands now. ## API Reference: Your Webhooks - [List Webhooks](https://docs.aureahub.com/docs/tenant-webhooks-list.md): GET /v1/admin/tenants/{id}/webhooks. The webhooks that tell your server about bank ramp and card onramp events, one per environment, without their secrets. - [Save a Webhook](https://docs.aureahub.com/docs/tenant-webhook-save.md): PUT /v1/admin/tenants/{id}/webhooks/{environment}. Make or change the webhook of one environment. The secret is shown when the webhook is made, and never again. - [Replace the Secret](https://docs.aureahub.com/docs/tenant-webhook-rotate.md): POST /v1/admin/tenants/{id}/webhooks/{environment}/rotate-secret. A new secret for the webhook of one environment, shown once. It signs every delivery from now on. - [Send a Test](https://docs.aureahub.com/docs/tenant-webhook-test.md): POST /v1/admin/tenants/{id}/webhooks/{environment}/test. One signed `webhook.test` to the webhook of one environment, right now, with what happened. - [Remove a Webhook](https://docs.aureahub.com/docs/tenant-webhook-remove.md): DELETE /v1/admin/tenants/{id}/webhooks/{environment}. Stop telling your server about bank ramp and card onramp events in one environment. ## API Reference: Aggregated Transactions - [Unified Feed](https://docs.aureahub.com/docs/agg-tx-list.md): GET /v1/transactions/aggregated/. One paginated, date-sorted list of the user's blockchain transactions, bank ramp fiat activity and card purchases of crypto. ## API Reference: Notifications - [Register Device](https://docs.aureahub.com/docs/notif-register.md): POST /v1/notifications/device-token. Register a Firebase Cloud Messaging (FCM) token so the user's device receives Aurea's push notifications. - [Unregister Device](https://docs.aureahub.com/docs/notif-unregister.md): DELETE /v1/notifications/device-token. Remove a device's FCM token so it stops receiving push notifications. - [Get Inbox](https://docs.aureahub.com/docs/notif-inbox.md): GET /v1/notifications/inbox. Fetch the authenticated user's in-app notification inbox, newest first. - [Unread Count](https://docs.aureahub.com/docs/notif-inbox-unread.md): GET /v1/notifications/inbox/unread-count. Return the count of unread notifications for the authenticated user. - [Mark as Read](https://docs.aureahub.com/docs/notif-inbox-read.md): PATCH /v1/notifications/inbox/read. Mark one or more inbox notifications as read, or mark all at once. ## API Reference: DApps - [List DApps](https://docs.aureahub.com/docs/dapps-list.md): GET /v1/dapps/. Retrieve the dApp catalogue configured for the authenticated user's tenant — the entries to show in an in-app dApp browser. - [Get Nonce](https://docs.aureahub.com/docs/dapps-nonce.md): GET /v1/dapps/nonce. Get the next pending transaction nonce of an EVM address — used when building a transaction requested by a dApp. - [Estimate Gas](https://docs.aureahub.com/docs/dapps-gas.md): GET /v1/dapps/estimate-gas. Estimate the gas limit of an EVM transaction on a given chain, with a 20% safety buffer applied. - [Sign Personal Message](https://docs.aureahub.com/docs/dapps-sign.md): POST /v1/dapps/sign-personal-message. Handle a dApp's `personal_sign` (EIP-191) request. Custodial wallets are signed server-side; wallets without a server-held key get the digest back to sign on the client. - [Broadcast Transaction](https://docs.aureahub.com/docs/dapps-broadcast.md): POST /v1/dapps/broadcast. Relay an already-signed raw EVM transaction to the RPC node of the given chain. ## API Reference: Portfolio - [Portfolio Performance](https://docs.aureahub.com/docs/portfolio-perf.md): GET /v1/portfolio/performance. Daily EUR and USD totals of the user's portfolio over a period, with the change between the first and last day. ## API Reference: Swap Routes - [List Routes](https://docs.aureahub.com/docs/swap-routes-list.md): GET /v1/swap/routes. Get the destination chains and tokens configured for a source token — use it to populate the "To" selector of a swap UI. ## API Reference: Sandbox - [Simulate Deposit](https://docs.aureahub.com/docs/sandbox-deposit.md): POST /v1/ramp/bank/payin/sandbox/simulate-deposit. Ask the bank ramp's sandbox to simulate a bank transfer to a sandbox virtual account, in that account's own currency, to test your pay-in flow without real money. - [Simulate Payout](https://docs.aureahub.com/docs/sandbox-payout.md): POST /v1/ramp/bank/payout/sandbox/simulate. Move one of the user's payouts to `completed` or `failed` without the bank ramp, to test your payout screens.