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

# Create an Offloader Wallet for Crypto Payouts

> Create a new offloader wallet.

Create an Offloader Wallet to give a customer a dedicated on-chain address tied to a specific bank account. Any stablecoin sent to that address is automatically converted to the linked fiat currency and forwarded — no per-transfer API call required. Each customer should have their own wallet; sharing an address across customers makes deposit attribution unreliable.


## OpenAPI

````yaml openapi/spherepay.yaml POST /v2/offloader-wallet
openapi: 3.0.0
info:
  title: ''
  description: ''
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.spherepay.co
    description: Production
security:
  - bearer: []
tags: []
paths:
  /v2/offloader-wallet:
    post:
      summary: Create an offloader wallet
      description: Create a new offloader wallet.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOffloaderWalletRequestDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OffloaderWalletResponseDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsDto'
              examples:
                Bad Request:
                  summary: Bad Request
                  value:
                    status: 400
                    detail: Invalid request parameters
                    code: address/invalid
                    correlationId: 28c61e885c6e5eaa78c1a2183a9b883c
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsDto'
              examples:
                Not Found:
                  summary: Not Found
                  value:
                    status: 404
                    detail: Resource not found
                    code: resource/not-found
                    correlationId: 28c61e885c6e5eaa78c1a2183a9b883c
        '422':
          description: Unprocessable Entity - Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsDto'
              examples:
                Validation Error:
                  summary: Validation Error
                  value:
                    status: 422
                    detail: Validation failed
                    code: validation/failed
                    correlationId: 28c61e885c6e5eaa78c1a2183a9b883c
                    errors:
                      - detail: Invalid email format
                        pointer: /email
                      - detail: Name is required
                        pointer: /name
components:
  schemas:
    CreateOffloaderWalletRequestDto:
      type: object
      properties:
        customerId:
          description: The customer who owns the destination bank account.
          example: customer_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6
          type: string
        currency:
          description: >-
            The crypto currency the offloader wallet accepts for deposits. See
            [Supported Rails & Currencies](/concepts/transfers/supported-rails).
          example: usdc
          type: string
          enum:
            - usdc
            - usdt
            - eurc
        network:
          description: >-
            The blockchain network the offloader wallet is on. See [Supported
            Rails & Currencies](/concepts/transfers/supported-rails).
          example: ethereum
          type: string
          enum:
            - sol
            - ethereum
            - arbitrum
            - polygon
            - base
            - avalanche
            - tron
        destination:
          description: >-
            The bank account destination where converted funds are sent. See
            [Bank Accounts guide](/concepts/transfers/bank-accounts).
          example:
            bankAccountId: bankAccount_6221e8d4299f4a889bd882255e92f581
            currency: usd
            network: ach
            achReference: REF123
          oneOf:
            - title: ACH
              type: object
              properties:
                bankAccountId:
                  description: >-
                    The ID of the bank account that converted funds will be sent
                    to. See [Bank Accounts
                    guide](/concepts/transfers/bank-accounts).
                  example: bankAccount_6221e8d4299f4a889bd882255e92f581
                  type: string
                currency:
                  description: The fiat currency the crypto will be converted into.
                  example: usd
                  type: string
                  enum:
                    - usd
                network:
                  description: >-
                    The banking network used to deliver funds to the destination
                    account. See [Supported Rails &
                    Currencies](/concepts/transfers/supported-rails).
                  example: ach
                  type: string
                  enum:
                    - ach
                achReference:
                  description: >-
                    Reference sent to the receiving institution with ACH
                    transfers, 1-10 characters.
                  example: REF123
                  type: string
                  minLength: 1
                  maxLength: 10
              required:
                - bankAccountId
                - currency
                - network
            - title: Wire
              type: object
              properties:
                bankAccountId:
                  description: >-
                    The ID of the bank account that converted funds will be sent
                    to. See [Bank Accounts
                    guide](/concepts/transfers/bank-accounts).
                  example: bankAccount_6221e8d4299f4a889bd882255e92f581
                  type: string
                currency:
                  description: The fiat currency the crypto will be converted into.
                  example: usd
                  type: string
                  enum:
                    - usd
                network:
                  description: >-
                    The banking network used to deliver funds to the destination
                    account. See [Supported Rails &
                    Currencies](/concepts/transfers/supported-rails).
                  example: wire
                  type: string
                  enum:
                    - wire
                wireMessage:
                  description: >-
                    Message sent to the receiving institution with wire
                    transfers, 1-105 characters.
                  example: 'Invoice #1024'
                  type: string
                  minLength: 1
                  maxLength: 105
              required:
                - bankAccountId
                - currency
                - network
            - title: SEPA
              type: object
              properties:
                bankAccountId:
                  description: >-
                    The ID of the bank account that converted funds will be sent
                    to. See [Bank Accounts
                    guide](/concepts/transfers/bank-accounts).
                  example: bankAccount_6221e8d4299f4a889bd882255e92f581
                  type: string
                currency:
                  description: The fiat currency the crypto will be converted into.
                  example: eur
                  type: string
                  enum:
                    - eur
                network:
                  description: >-
                    The banking network used to deliver funds to the destination
                    account. See [Supported Rails &
                    Currencies](/concepts/transfers/supported-rails).
                  example: sepa
                  type: string
                  enum:
                    - sepa
                sepaReference:
                  description: >-
                    Reference sent to the receiving institution with SEPA
                    transfers, 6-140 characters.
                  example: INV-2024-001
                  type: string
                  minLength: 6
                  maxLength: 140
              required:
                - bankAccountId
                - currency
                - network
        integratorBpsFeeRate:
          description: Integrator fee in basis points (0-1000).
          example: '100'
          type: string
        returnAddress:
          description: >-
            Crypto address where funds are returned on failed transactions. Must
            be valid for the selected network.
          example: '0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97'
          type: string
      required:
        - customerId
        - currency
        - network
        - destination
    OffloaderWalletResponseDto:
      type: object
      properties:
        id:
          description: Unique identifier for the offloader wallet.
          example: wallet_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6
          type: string
        customerId:
          description: The customer who owns the offloader wallet.
          example: customer_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6
          type: string
        address:
          description: >-
            The on-chain deposit address for the offloader wallet. Send crypto
            to this address to trigger automatic conversion.
          example: '0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97'
          type: string
        currency:
          description: >-
            The crypto currency the offloader wallet accepts for deposits. See
            [Supported Rails & Currencies](/concepts/transfers/supported-rails).
          example: usdc
          type: string
          enum:
            - usdc
            - usdt
            - eurc
        network:
          description: >-
            The blockchain network the offloader wallet is on. See [Supported
            Rails & Currencies](/concepts/transfers/supported-rails).
          example: ethereum
          type: string
          enum:
            - sol
            - ethereum
            - arbitrum
            - polygon
            - base
            - avalanche
            - tron
        status:
          description: >-
            Lifecycle status of the offloader wallet. `active` accepts deposits
            and settles; `deactivated` no longer settles.
          example: active
          type: string
          enum:
            - active
            - deactivated
          x-enumNames:
            - ACTIVE
            - DEACTIVATED
        destination:
          description: >-
            The bank account destination where converted funds are sent. See
            [Bank Accounts guide](/concepts/transfers/bank-accounts).
          example:
            bankAccountId: bankAccount_6221e8d4299f4a889bd882255e92f581
            currency: usd
            network: ach
            achReference: REF123
          oneOf:
            - title: ACH
              type: object
              properties:
                bankAccountId:
                  description: >-
                    The ID of the bank account that converted funds will be sent
                    to. See [Bank Accounts
                    guide](/concepts/transfers/bank-accounts).
                  example: bankAccount_6221e8d4299f4a889bd882255e92f581
                  type: string
                currency:
                  description: The fiat currency the crypto will be converted into.
                  example: usd
                  type: string
                  enum:
                    - usd
                network:
                  description: >-
                    The banking network used to deliver funds to the destination
                    account. See [Supported Rails &
                    Currencies](/concepts/transfers/supported-rails).
                  example: ach
                  type: string
                  enum:
                    - ach
                achReference:
                  description: >-
                    Reference sent to the receiving institution with ACH
                    transfers, 1-10 characters.
                  example: REF123
                  type: string
                  minLength: 1
                  maxLength: 10
              required:
                - bankAccountId
                - currency
                - network
            - title: Wire
              type: object
              properties:
                bankAccountId:
                  description: >-
                    The ID of the bank account that converted funds will be sent
                    to. See [Bank Accounts
                    guide](/concepts/transfers/bank-accounts).
                  example: bankAccount_6221e8d4299f4a889bd882255e92f581
                  type: string
                currency:
                  description: The fiat currency the crypto will be converted into.
                  example: usd
                  type: string
                  enum:
                    - usd
                network:
                  description: >-
                    The banking network used to deliver funds to the destination
                    account. See [Supported Rails &
                    Currencies](/concepts/transfers/supported-rails).
                  example: wire
                  type: string
                  enum:
                    - wire
                wireMessage:
                  description: >-
                    Message sent to the receiving institution with wire
                    transfers, 1-105 characters.
                  example: 'Invoice #1024'
                  type: string
                  minLength: 1
                  maxLength: 105
              required:
                - bankAccountId
                - currency
                - network
            - title: SEPA
              type: object
              properties:
                bankAccountId:
                  description: >-
                    The ID of the bank account that converted funds will be sent
                    to. See [Bank Accounts
                    guide](/concepts/transfers/bank-accounts).
                  example: bankAccount_6221e8d4299f4a889bd882255e92f581
                  type: string
                currency:
                  description: The fiat currency the crypto will be converted into.
                  example: eur
                  type: string
                  enum:
                    - eur
                network:
                  description: >-
                    The banking network used to deliver funds to the destination
                    account. See [Supported Rails &
                    Currencies](/concepts/transfers/supported-rails).
                  example: sepa
                  type: string
                  enum:
                    - sepa
                sepaReference:
                  description: >-
                    Reference sent to the receiving institution with SEPA
                    transfers, 6-140 characters.
                  example: INV-2024-001
                  type: string
                  minLength: 6
                  maxLength: 140
              required:
                - bankAccountId
                - currency
                - network
        fees:
          description: >-
            Fee configuration for the offloader wallet, including integrator and
            platform fees.
          example:
            integratorFee:
              bpsRate: '100'
              currency: usdc
            platformFee:
              bpsRate: '30'
              currency: usdc
          type: object
          properties:
            integratorFee:
              type: object
              properties:
                bpsRate:
                  description: Integrator fee rate in basis points (1 bps = 0.01%).
                  example: '100'
                  type: string
                currency:
                  description: >-
                    The currency the integrator fee is denominated in (matches
                    the wallet deposit currency).
                  example: usdc
                  type: string
                  enum:
                    - usdc
                    - usdt
                    - eurc
              required:
                - bpsRate
                - currency
            platformFee:
              type: object
              properties:
                bpsRate:
                  description: Platform fee rate in basis points (1 bps = 0.01%).
                  example: '30'
                  type: string
                currency:
                  description: >-
                    The currency the platform fee is denominated in (matches the
                    wallet deposit currency).
                  example: usdc
                  type: string
                  enum:
                    - usdc
                    - usdt
                    - eurc
              required:
                - bpsRate
                - currency
          required:
            - integratorFee
            - platformFee
        returnAddress:
          description: >-
            Crypto address where funds are returned on failed transactions. Must
            be valid for the wallet network. Null if not configured.
          example: '0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97'
          type: string
        created:
          description: Timestamp when the offloader wallet was created (ISO 8601).
          example: '2024-06-15T10:30:00.000Z'
          type: string
        updated:
          description: Timestamp when the offloader wallet was last updated (ISO 8601).
          example: '2024-06-15T12:00:00.000Z'
          type: string
      required:
        - id
        - customerId
        - address
        - currency
        - network
        - status
        - destination
        - fees
        - created
        - updated
    ProblemDetailsDto:
      type: object
      properties:
        title:
          type: string
        status:
          type: integer
        detail:
          type: string
        code:
          type: string
        errors:
          type: array
          items:
            type: object
            properties:
              detail:
                type: string
              pointer:
                type: string
              parameter:
                type: string
              header:
                type: string
            required:
              - detail
        correlationId:
          type: string
      required:
        - status
        - detail
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````