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

# Create a recipient address

> Stores an external blockchain address. Once added, the recipient address must be verified to ensure that you know and trust each new address.

**cirBTC recipients:** Recipient addresses for cirBTC flows are registered with one of these `chain` and `currency` pairs:
- `chain=ETH` or `chain=ARC` with `currency=CIRBTC` for onchain cirBTC transfers.
- `chain=BTC` with `currency=BTC` for native Bitcoin recipients. To redeem cirBTC to native Bitcoin, create a transfer with `amount.currency=CIRBTC` to a recipient of this form; Circle will burn the cirBTC and release the equivalent amount of native Bitcoin (1:1) to the Bitcoin address.

**For France customers:**

Circle Mint France customers must verify all transfer recipients using the UI in the Circle Console, as transfers from unverified addresses will be held in pending status. Please see Help Center articles below for details:
- [Circle Mint France Travel Rule](https://help.circle.com/s/article/Circle-Mint-France-Travel-Rule)
- [Circle Mint France wallet verification](https://help.circle.com/s/article/Circle-Mint-France-wallet-verification)




## OpenAPI

````yaml openapi/account.yaml post /v1/businessAccount/wallets/addresses/recipient
openapi: 3.0.2
info:
  version: ${version}
  title: Core Functionality
  description: >
    All of Circle's APIs share a common set of core functionality that lets you
    manage your Circle Account in a programmatic way.


    With a Circle Account your business can deposit traditional money from 80+
    countries and seamlessly convert them into "digital currency dollars": USDC.
    You can then use USDC for everyday payments and treasury flows.
servers:
  - url: https://api-sandbox.circle.com
  - url: https://api.circle.com
security: []
tags:
  - name: Balances
    description: Get information on settled and unsettled balances.
  - name: Payouts
    description: Create and get information on 1st party payouts.
  - name: Wires
    description: >-
      Create, get instructions, and get information on 1st party bank accounts
      for wire transfers.
  - name: CUBIX
    description: Create and get information on CUBIX accounts.
  - name: PIX
    description: Create and get information on PIX accounts.
  - name: Transfers
    description: Create and get information on 1st party transfers.
  - name: Addresses
    description: Generate and get information on blockchain addresses.
  - name: Deposits
    description: Get information on 1st party deposits.
  - name: Payments
    description: Create, cancel, refund, and get updates on card payments.
  - name: Settlement Bank Routing
    description: View and manage settlement bank routing preferences for fiat accounts.
  - name: Reporting
    description: >-
      Retrieve transaction and balance reports, including ISO 20022 (CAMT.053)
      statements and managed-payment reports.
paths:
  /v1/businessAccount/wallets/addresses/recipient:
    post:
      tags:
        - Addresses
      summary: Create a recipient address
      description: >
        Stores an external blockchain address. Once added, the recipient address
        must be verified to ensure that you know and trust each new address.


        **cirBTC recipients:** Recipient addresses for cirBTC flows are
        registered with one of these `chain` and `currency` pairs:

        - `chain=ETH` or `chain=ARC` with `currency=CIRBTC` for onchain cirBTC
        transfers.

        - `chain=BTC` with `currency=BTC` for native Bitcoin recipients. To
        redeem cirBTC to native Bitcoin, create a transfer with
        `amount.currency=CIRBTC` to a recipient of this form; Circle will burn
        the cirBTC and release the equivalent amount of native Bitcoin (1:1) to
        the Bitcoin address.


        **For France customers:**


        Circle Mint France customers must verify all transfer recipients using
        the UI in the Circle Console, as transfers from unverified addresses
        will be held in pending status. Please see Help Center articles below
        for details:

        - [Circle Mint France Travel
        Rule](https://help.circle.com/s/article/Circle-Mint-France-Travel-Rule)

        - [Circle Mint France wallet
        verification](https://help.circle.com/s/article/Circle-Mint-France-wallet-verification)
      operationId: createBusinessRecipientAddress
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BusinessRecipientAddressCreationRequest'
      responses:
        '200':
          description: Successfully added a recipient address.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/XRequestId'
          content:
            application/json:
              schema:
                title: CreateBusinessRecipientAddressResponse
                properties:
                  data:
                    $ref: '#/components/schemas/BusinessRecipientAddressObject'
              examples:
                response:
                  value:
                    data:
                      id: b8627ae8-732b-4d25-b947-1df8f4007a29
                      address: '0x8381470ED67C3802402dbbFa0058E8871F017A6F'
                      addressTag: '123456789'
                      chain: ALGO
                      currency: USD
                      description: My USDC address at a cryptocurrency exchange
                      status: active
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/NotAuthorized'
      security:
        - bearerAuth: []
components:
  schemas:
    BusinessRecipientAddressCreationRequest:
      type: object
      description: >-
        Adds a recipient address. The currency parameter will default to USD for
        all chains except for BTC where it defaults to BTC.
      required:
        - idempotencyKey
        - address
        - chain
        - description
      properties:
        idempotencyKey:
          $ref: '#/components/schemas/IdempotencyKey'
        address:
          $ref: '#/components/schemas/Address'
        addressTag:
          $ref: '#/components/schemas/AddressTag'
        chain:
          $ref: '#/components/schemas/Chain'
        currency:
          $ref: '#/components/schemas/Currency'
        description:
          $ref: '#/components/schemas/AddressDescription'
    BusinessRecipientAddressObject:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        address:
          $ref: '#/components/schemas/Address'
        addressTag:
          $ref: '#/components/schemas/AddressTag'
        chain:
          $ref: '#/components/schemas/Chain'
        currency:
          $ref: '#/components/schemas/Currency'
        description:
          $ref: '#/components/schemas/AddressDescription'
        status:
          type: string
          enum:
            - active
            - pending_verification
            - verification_succeeded
    IdempotencyKey:
      type: string
      description: >-
        Universally unique identifier (UUID v4) idempotency key. This key is
        utilized to ensure exactly-once execution of mutating requests.
      format: uuid
      example: ba943ff1-ca16-49b2-ba55-1057e70ca5c7
    Address:
      type: string
      description: >
        An alphanumeric string representing a blockchain address. Formatting
        varies by blockchain.

        Be sure to preserve the exact formatting and capitalization of the
        address.  

        **Important:** For Ripple (XRP) addresses, only the classic address
        format is supported (for example,
        `rPEPPER7kfTD9w2To4CQk6UCfuHM9c6GDY`).  

        The `x-address` format is NOT supported currently (for example,
        `XV5sbjUmgPpvXv4ixFWZ5ptAYZ6PD2q1qM6owqNbug8W6KV`).
      example: '0x8381470ED67C3802402dbbFa0058E8871F017A6F'
    AddressTag:
      type: string
      description: >-
        The secondary identifier for a blockchain address. An example of this is
        the memo field on the Stellar network, which can be text, id, or hash
        format.
      nullable: true
      example: '123456789'
    Chain:
      type: string
      description: >
        A blockchain that a given currency is available on.


        **Note:** Arc (`ARC`) is only available in the sandbox environment
        (`api-sandbox.circle.com`).
      enum:
        - ALGO
        - APTOS
        - ARB
        - ARC
        - AVAX
        - BASE
        - BTC
        - CELO
        - CODEX
        - ETH
        - HBAR
        - HYPEREVM
        - INK
        - LINEA
        - NEAR
        - NOBLE
        - OP
        - PLUME
        - PAH
        - POLY
        - SEI
        - SOL
        - SONIC
        - SUI
        - UNI
        - WORLDCHAIN
        - XDC
        - XLM
        - XRP
        - ZKS
        - ZKSYNC
    Currency:
      type: string
      description: A currency associated with a balance or address.
      nullable: true
      enum:
        - USD
        - EUR
        - BTC
        - ETH
        - CIRBTC
    AddressDescription:
      type: string
      description: An identifier or sentence that describes the recipient.
      example: My USDC address at a cryptocurrency exchange
    Id:
      type: string
      description: Unique system generated identifier for the entity.
      format: uuid
      example: b8627ae8-732b-4d25-b947-1df8f4007a29
  headers:
    XRequestId:
      description: >-
        Universally unique identifier (UUID v4) for the request. Helpful for
        identifying a request when communicating with Circle support.
      schema:
        type: string
        format: uuid
        example: 2adba88e-9d63-44bc-b975-9b6ae3440dde
  responses:
    BadRequest:
      description: The request cannot be processed due to a client error.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
      content:
        application/json:
          schema:
            type: object
            title: BadRequest
            required:
              - code
              - message
            properties:
              code:
                type: integer
                example: 400
              message:
                type: string
                example: Something went wrong.
            example:
              code: 400
              message: Bad request.
          examples:
            response:
              value:
                code: 400
                message: Bad request.
    NotAuthorized:
      description: >-
        The request has not been applied because it lacks valid authentication
        credentials.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
      content:
        application/json:
          schema:
            type: object
            title: NotAuthorized
            required:
              - code
              - message
            properties:
              code:
                type: integer
                example: 400
              message:
                type: string
                example: Something went wrong.
            example:
              code: 401
              message: Malformed authorization.
          examples:
            response:
              value:
                code: 401
                message: Malformed authorization.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````