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

# Create recipient

> Creates a recipient. For onchain recipients, pass a CAIP-2 `chainId` and
omit the address to default it to the client's Portal wallet. For a fiat
beneficiary, set `isExternal: true` and provide the bank `details`.




## OpenAPI

````yaml /openapi/client-api.yaml post /clients/me/integrations/due/recipients
openapi: 3.1.0
info:
  title: Portal Client API
  version: '3.0'
  description: >
    The Portal Client API provides endpoints for managing wallets, building
    transactions,

    and interacting with blockchain networks. All endpoints require
    authentication via a

    Client API Key or Client Session Token (CST) passed as a Bearer token.


    ## Base URL

    `https://api.portalhq.io/api/v3`


    ## Authentication

    Include your Client API Key or Client Session Token as a Bearer token in the

    `Authorization` header of every request.


    ## Chain ID Format

    Chain parameters use either friendly names (e.g. `ethereum`, `solana`) or
    CAIP-2 format

    (e.g. `eip155:1`, `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`). When using
    CAIP-2 format

    in URLs, ensure the colon is URI-encoded (`%3A`).
servers:
  - url: https://api.portalhq.io/api/v3
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Clients
    description: Core client management endpoints
  - name: Wallet
    description: >-
      Read wallet state — balances, NFTs, transaction history, capabilities, and
      transaction details
  - name: Transactions
    description: Build, broadcast, and evaluate blockchain transactions
  - name: Funding
    description: Fund wallets with testnet tokens
  - name: Wallet Shares
    description: Manage signing and backup share pairs
  - name: Delegations
    description: Manage token approvals, revocations, and delegated transfers
  - name: Session Keys
    description: Manage EIP-7702 session keys for smart accounts
  - name: 0x
    description: Token swap endpoints powered by the 0x protocol
  - name: Yield.xyz
    description: Yield opportunities and staking actions powered by Yield.xyz
  - name: Li.Fi
    description: Cross-chain swaps and bridging powered by Li.Fi
  - name: Blockaid
    description: Transaction and address security scanning powered by Blockaid
  - name: Hypernative
    description: >-
      Transaction, address, token, and NFT security scanning powered by
      Hypernative
  - name: Noah
    description: KYC onboarding, payins, and payouts powered by Noah
  - name: Meld
    description: Buy and sell crypto with fiat through aggregated providers powered by Meld
  - name: Due
    description: Payins, payouts, virtual accounts, and FX powered by Due
  - name: EIP-7702
    description: EIP-7702 account type detection and authorization management
  - name: Deprecated
    description: >-
      Legacy endpoints scheduled for removal. Use the newer equivalents listed
      in each endpoint's description.
paths:
  /clients/me/integrations/due/recipients:
    post:
      tags:
        - Due
      summary: Create recipient
      description: |
        Creates a recipient. For onchain recipients, pass a CAIP-2 `chainId` and
        omit the address to default it to the client's Portal wallet. For a fiat
        beneficiary, set `isExternal: true` and provide the bank `details`.
      operationId: createDueRecipient
      parameters:
        - name: Idempotency-Key
          in: header
          required: false
          schema:
            type: string
          description: Optional key to deduplicate retries.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DueRecipientCreateRequest'
      responses:
        '200':
          description: Recipient created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DueRecipientResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Recipient already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    DueRecipientCreateRequest:
      type: object
      required:
        - name
        - details
      properties:
        name:
          type: string
        details:
          type: object
          additionalProperties: true
          description: >
            Recipient details. For onchain recipients, `schema` and `address`
            are

            defaulted from `chainId` when omitted; provide them explicitly for
            an

            external wallet. For fiat beneficiaries, include the bank schema and

            account fields.
          properties:
            address:
              type: string
              description: |
                The recipient address as a string in the chain's native format:
                `0x`-hex for EVM, base58 for Solana, base58check for Tron.
            schema:
              type: string
              description: >
                Due recipient schema. For onchain recipients one of `evm`,

                `solana`, `tron`; for fiat, the bank schema (for example
                `bank_us`,

                `bank_sepa`).
        chainId:
          type: string
          description: >-
            CAIP-2 chain id used to default an onchain recipient's schema and
            address.
        isExternal:
          type: boolean
          description: >-
            Set true for external wallets and fiat beneficiaries; disables
            Portal-wallet defaulting.
    DueRecipientResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/DueRecipient'
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Error message describing what went wrong
    DueRecipient:
      type: object
      additionalProperties: true
      required:
        - id
      properties:
        id:
          type: string
        label:
          type: string
        details:
          type: object
          additionalProperties: true
        isExternal:
          type: boolean
        isActive:
          type: boolean
        isValid:
          type: boolean
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >
        Client API Key or Client Session Token (CST). Pass as a Bearer token in
        the

        Authorization header.

````