---
title: "Create an offloader wallet"
method: POST
path: "/v2/offloader-wallet"
---

# Create an offloader wallet

`POST /v2/offloader-wallet`

Create a new offloader wallet.

## Request body

- CreateOffloaderWalletRequestDto
  - `customerId` string, required — The customer who owns the destination bank account.
  - `currency` 'usdc' | 'usdt' | 'eurc', required — The crypto currency the offloader wallet accepts for deposits. See [Supported Rails & Currencies](/concepts/transfers/supported-rails).
  - `network` 'sol' | 'ethereum' | 'arbitrum' | 'polygon' | 'base' | 'avalanche' | 'tron', required — The blockchain network the offloader wallet is on. See [Supported Rails & Currencies](/concepts/transfers/supported-rails).
  - `destination` union, required — The bank account destination where converted funds are sent. See [Bank Accounts guide](/concepts/transfers/bank-accounts).
    - object
      - `bankAccountId` string, required — The ID of the bank account that converted funds will be sent to. See [Bank Accounts guide](/concepts/transfers/bank-accounts).
      - `currency` 'usd', required — The fiat currency the crypto will be converted into.
      - `network` 'ach', required — The banking network used to deliver funds to the destination account. See [Supported Rails & Currencies](/concepts/transfers/supported-rails).
      - `achReference` string — Reference sent to the receiving institution with ACH transfers, 1-10 characters.
    - object
      - `bankAccountId` string, required — The ID of the bank account that converted funds will be sent to. See [Bank Accounts guide](/concepts/transfers/bank-accounts).
      - `currency` 'usd', required — The fiat currency the crypto will be converted into.
      - `network` 'wire', required — The banking network used to deliver funds to the destination account. See [Supported Rails & Currencies](/concepts/transfers/supported-rails).
      - `wireMessage` string — Message sent to the receiving institution with wire transfers, 1-105 characters.
    - object
      - `bankAccountId` string, required — The ID of the bank account that converted funds will be sent to. See [Bank Accounts guide](/concepts/transfers/bank-accounts).
      - `currency` 'eur', required — The fiat currency the crypto will be converted into.
      - `network` 'sepa', required — The banking network used to deliver funds to the destination account. See [Supported Rails & Currencies](/concepts/transfers/supported-rails).
      - `sepaReference` string — Reference sent to the receiving institution with SEPA transfers, 6-140 characters.
  - `integratorBpsFeeRate` string — Integrator fee in basis points (0-1000).
  - `returnAddress` string — Crypto address where funds are returned on failed transactions. Must be valid for the selected network.

## Response `201`

- OffloaderWalletResponseDto
  - `id` string, required — Unique identifier for the offloader wallet.
  - `customerId` string, required — The customer who owns the offloader wallet.
  - `address` string, required — The on-chain deposit address for the offloader wallet. Send crypto to this address to trigger automatic conversion.
  - `currency` 'usdc' | 'usdt' | 'eurc', required — The crypto currency the offloader wallet accepts for deposits. See [Supported Rails & Currencies](/concepts/transfers/supported-rails).
  - `network` 'sol' | 'ethereum' | 'arbitrum' | 'polygon' | 'base' | 'avalanche' | 'tron', required — The blockchain network the offloader wallet is on. See [Supported Rails & Currencies](/concepts/transfers/supported-rails).
  - `status` 'active' | 'deactivated', required — Lifecycle status of the offloader wallet. `active` accepts deposits and settles; `deactivated` no longer settles.
  - `destination` union, required — The bank account destination where converted funds are sent. See [Bank Accounts guide](/concepts/transfers/bank-accounts).
    - object
      - `bankAccountId` string, required — The ID of the bank account that converted funds will be sent to. See [Bank Accounts guide](/concepts/transfers/bank-accounts).
      - `currency` 'usd', required — The fiat currency the crypto will be converted into.
      - `network` 'ach', required — The banking network used to deliver funds to the destination account. See [Supported Rails & Currencies](/concepts/transfers/supported-rails).
      - `achReference` string — Reference sent to the receiving institution with ACH transfers, 1-10 characters.
    - object
      - `bankAccountId` string, required — The ID of the bank account that converted funds will be sent to. See [Bank Accounts guide](/concepts/transfers/bank-accounts).
      - `currency` 'usd', required — The fiat currency the crypto will be converted into.
      - `network` 'wire', required — The banking network used to deliver funds to the destination account. See [Supported Rails & Currencies](/concepts/transfers/supported-rails).
      - `wireMessage` string — Message sent to the receiving institution with wire transfers, 1-105 characters.
    - object
      - `bankAccountId` string, required — The ID of the bank account that converted funds will be sent to. See [Bank Accounts guide](/concepts/transfers/bank-accounts).
      - `currency` 'eur', required — The fiat currency the crypto will be converted into.
      - `network` 'sepa', required — The banking network used to deliver funds to the destination account. See [Supported Rails & Currencies](/concepts/transfers/supported-rails).
      - `sepaReference` string — Reference sent to the receiving institution with SEPA transfers, 6-140 characters.
  - `fees` object, required — Fee configuration for the offloader wallet, including integrator and platform fees.
    - `integratorFee` object, required
      - `bpsRate` string, required — Integrator fee rate in basis points (1 bps = 0.01%).
      - `currency` 'usdc' | 'usdt' | 'eurc', required — The currency the integrator fee is denominated in (matches the wallet deposit currency).
    - `platformFee` object, required
      - `bpsRate` string, required — Platform fee rate in basis points (1 bps = 0.01%).
      - `currency` 'usdc' | 'usdt' | 'eurc', required — The currency the platform fee is denominated in (matches the wallet deposit currency).
  - `returnAddress` string — Crypto address where funds are returned on failed transactions. Must be valid for the wallet network. Null if not configured.
  - `created` string, required — Timestamp when the offloader wallet was created (ISO 8601).
  - `updated` string, required — Timestamp when the offloader wallet was last updated (ISO 8601).

## Other responses

- `400` — Bad Request
- `404` — Not Found
- `422` — Unprocessable Entity - Validation Error

---

[API](https://skmtc.net/spherepay/apis/docs-spherepay-co.md) · [All operations](https://skmtc.net/spherepay/apis/docs-spherepay-co/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/spherepay/docs-spherepay-co/versions/4f3f5484aed3/schema)
