> ## Documentation Index
> Fetch the complete documentation index at: https://docs.etherfuse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Add Wallets & Bank Accounts

> Set up the wallets and bank accounts your organization needs before creating orders

Before you can create quotes or orders, your organization needs at least one registered wallet and one active bank account. You can set these up via the API (shown below) or through the Etherfuse dashboard at [devnet](https://devnet.etherfuse.com/ramp/manage-wallets-bank) (sandbox) / [production](https://app.etherfuse.com/ramp/manage-wallets-bank).

<Info>
  Wallets and bank accounts registered here belong to **your organization** (the parent org). For onboarding your *customers* and their accounts, see [Onboarding Customers](/guides/onboarding).
</Info>

<Warning>
  **Complete KYB before going to production.** We strongly recommend verifying your organization (Know Your Business) with Etherfuse before setting up production accounts. KYB simplifies wallet onboarding by letting you claim ownership at the organization level, can make you eligible for reduced fee tiers, and ensures your accounts are managed under your company's identity rather than individual credentials. Contact your Etherfuse representative to start the KYB process.
</Warning>

## Wallets

<Steps>
  <Step title="Register a Wallet — POST /ramp/wallet">
    <Expandable title="Details">
      Register a wallet for each blockchain you want to transact on via [POST /ramp/wallet](/api-reference/crypto-wallets/register-a-crypto-wallet). Supported blockchains: `solana`, `stellar`, `base`, `polygon`, `monad`.

      <CodeGroup>
        ```bash Sandbox theme={null}
        curl -X POST https://api.sand.etherfuse.com/ramp/wallet \
          -H "Authorization: <api_key>" \
          -H "Content-Type: application/json" \
          -d '{
            "publicKey": "<wallet_public_key>",
            "blockchain": "solana",
            "claimOwnership": true
          }'
        ```

        ```bash Production theme={null}
        curl -X POST https://api.etherfuse.com/ramp/wallet \
          -H "Authorization: <api_key>" \
          -H "Content-Type: application/json" \
          -d '{
            "publicKey": "<wallet_public_key>",
            "blockchain": "solana",
            "claimOwnership": true
          }'
        ```
      </CodeGroup>

      <Tip>
        **Set `claimOwnership: true`** — Claiming ownership links the wallet's KYC status to your organization's KYB status, so the wallet is automatically compliant. Without this flag, you'll need to complete individual KYC for each wallet you register.
      </Tip>

      <Info>
        This endpoint is idempotent — registering an already-active wallet returns the existing record. If the wallet was previously soft-deleted, it will be restored.
      </Info>
    </Expandable>
  </Step>

  <Step title="Check Wallet Status — GET /ramp/wallet/{wallet_id}">
    <Expandable title="Details">
      Verify your wallet is registered and check its KYC status via [GET /ramp/wallet/\{wallet\_id}](/api-reference/crypto-wallets/get-wallet-details) or list all wallets via [GET /ramp/wallets](/api-reference/crypto-wallets/list-crypto-wallets).

      <CodeGroup>
        ```bash Sandbox theme={null}
        curl -H "Authorization: <api_key>" \
          https://api.sand.etherfuse.com/ramp/wallet/<wallet_uuid>
        ```

        ```bash Production theme={null}
        curl -H "Authorization: <api_key>" \
          https://api.etherfuse.com/ramp/wallet/<wallet_uuid>
        ```
      </CodeGroup>

      The response includes `kycStatus` and `claimedOwnership`:

      ```json theme={null}
      {
        "walletId": "5915dfc1-8995-4465-9c04-76470298b8b3",
        "publicKey": "0x18F6bc4028016D5353f9A68D3Fa5F5c03AA527a0",
        "blockchain": "base",
        "kycStatus": "approved",
        "claimedOwnership": true
      }
      ```

      <Info>
        A wallet must have `kycStatus: "approved"` before it can be used in orders. With `claimOwnership: true` and an approved org, this happens automatically.
      </Info>
    </Expandable>
  </Step>

  <Step title="Delete a Wallet — DELETE /ramp/wallet/{wallet_id}">
    <Expandable title="Details">
      Soft-delete a wallet and release ownership via [DELETE /ramp/wallet/\{wallet\_id}](/api-reference/crypto-wallets/delete-a-crypto-wallet). The wallet can be re-registered later.
    </Expandable>
  </Step>
</Steps>

## Bank Accounts

<Warning>
  **Treat production bank account registration as permanent.** Mexican banking regulations make it extremely difficult to change or replace a bank account once it has been registered under a given RFC. Double-check the CLABE, RFC, and CURP before submitting in production. Errors may require manual intervention with Etherfuse support and can delay your ability to transact.
</Warning>

<Warning>
  **STP CLABEs (prefix 646) are not supported.** CLABEs starting with `646` belong to STP (Sistema de Transferencias y Pagos), and STP-to-STP transfers are not currently supported. Please use a CLABE from a different bank.
</Warning>

<Steps>
  <Step title="Register a Bank Account — POST /ramp/customer/{customer_id}/bank-account">
    <Expandable title="Details">
      Register a Mexican bank account (CLABE) via [POST /ramp/customer/\{customer\_id}/bank-account](/api-reference/bank-accounts/create-bank-account-api-key), using your own organization's ID as the `customer_id`.

      <CodeGroup>
        ```bash Sandbox theme={null}
        curl -X POST https://api.sand.etherfuse.com/ramp/customer/<org_uuid>/bank-account \
          -H "Authorization: <api_key>" \
          -H "Content-Type: application/json" \
          -d '{
            "account": {
              "transactionId": "<uuid>",
              "firstName": "Juan",
              "paternalLastName": "Garcia",
              "maternalLastName": "Lopez",
              "birthDate": "19900515",
              "birthCountryIsoCode": "MX",
              "curp": "GAJU900515HDFRNN09",
              "rfc": "GAJU9005156V3",
              "clabe": "012345678901234567"
            }
          }'
        ```

        ```bash Production theme={null}
        curl -X POST https://api.etherfuse.com/ramp/customer/<org_uuid>/bank-account \
          -H "Authorization: <api_key>" \
          -H "Content-Type: application/json" \
          -d '{
            "account": {
              "transactionId": "<uuid>",
              "firstName": "Juan",
              "paternalLastName": "Garcia",
              "maternalLastName": "Lopez",
              "birthDate": "19900515",
              "birthCountryIsoCode": "MX",
              "curp": "GAJU900515HDFRNN09",
              "rfc": "GAJU9005156V3",
              "clabe": "012345678901234567"
            }
          }'
        ```
      </CodeGroup>

      <Info>
        The example above shows a personal account. Business accounts use a different field set — see the [Onboarding — Programmatic](/guides/onboarding-programmatic) guide for the full bank account field reference including business accounts.
      </Info>
    </Expandable>
  </Step>

  <Step title="Check Bank Account Status — GET /ramp/bank-accounts">
    <Expandable title="Details">
      List your organization's bank accounts via [GET /ramp/bank-accounts](/api-reference/bank-accounts/list-bank-accounts) or get a specific one via [GET /ramp/bank-account/\{bank\_account\_id}](/api-reference/bank-accounts/get-bank-account-details).

      <CodeGroup>
        ```bash Sandbox theme={null}
        curl -H "Authorization: <api_key>" \
          https://api.sand.etherfuse.com/ramp/bank-accounts
        ```

        ```bash Production theme={null}
        curl -H "Authorization: <api_key>" \
          https://api.etherfuse.com/ramp/bank-accounts
        ```
      </CodeGroup>

      <Info>
        A bank account must be `status: "active"` and `compliant: true` before it can be used in orders.
      </Info>
    </Expandable>
  </Step>
</Steps>

## What's Next?

Once you have an approved wallet and an active bank account, you're ready to start creating orders:

* [Testing Onramps](/guides/testing-onramps) — Buy crypto with fiat
* [Testing Offramps](/guides/testing-offramps) — Sell crypto for fiat
* [Testing Swaps](/guides/testing-swaps) — Exchange crypto for crypto
