# Create a channel

Creates a new payment channel using account-based routing. The channel is associated
with an account which determines the available payment rails (crypto networks or fiat
rails) based on the account's currency.

Endpoint: POST /v1/collections/channels
Version: 1.0.0
Security: Bearer

## Request fields (application/json):

  - `payer_id` (string, required)
    Unique identifier of the payer partner
    Example: "e471b938-98ad-45e4-b144-53a556ea047d"

  - `account_id` (string, required)
    Unique identifier of the account to receive funds
    Example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"

  - `payment_currencies` (array, required)
    List of currencies accepted for payment on this channel.
    Example: [{"currency":"RLUSD"}]

  - `payment_currencies.currency` (string, required)
    Currency code (uppercase letters, 3-10 characters)
    Example: "RLUSD"

## Response 201 fields (application/json):

  - `id` (string, required)
    Unique identifier for the channel
    Example: "3fa85f64-5717-4562-b3fc-2c963f66afa6"

  - `payer` (object, required)
    Payer partner details

  - `payer.id` (string, required)
    Unique identifier for the payer partner
    Example: "e471b938-98ad-45e4-b144-53a556ea047d"

  - `payer.name` (string, required)
    Full name of the payer partner
    Example: "Nigerian Imports Ltd."

  - `payer.email` (string, required)
    Email address of the payer partner
    Example: "nigerian@imports.com"

  - `beneficiary` (object, required)
    Beneficiary partner details

  - `beneficiary.id` (string, required)
    Unique identifier of the beneficiary partner
    Example: "01467076-8bb0-41c1-ad54-5751dd4a9e80"

  - `beneficiary.name` (string, required)
    Full name of the beneficiary partner
    Example: "Hong Kong Exports Ltd."

  - `beneficiary.email` (string, required)
    Email address of the beneficiary partner
    Example: "hongkong@exports.com"

  - `account` (object, required)
    Account associated to this channel, which funds will be routed to

  - `account.id` (string, required)
    Unique identifier for the account
    Example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"

  - `account.beneficiary_id` (string, required)
    Unique identifier of the beneficiary partner
    Example: "291ecf34-a01d-466a-b0fd-662a88b7a1bb"

  - `account.currency` (string, required)
    Currency for the account
    Example: "USD"

  - `account.type` (string, required)
    Type of account
    Enum: "FIAT", "CRYPTO"

  - `payment_methods` (array, required) — one of (discriminator: type):
    Available payment methods with full deposit instructions
    - BLOCKCHAIN:
      - `type` (string, required)
        Discriminator: indicates blockchain rail
        Enum: "BLOCKCHAIN"
      - `network` (string, required)
        Supported blockchain networks
        Enum: "ETHEREUM", "ETHEREUM_SEPOLIA_TESTNET", "SOLANA", "SOLANA_TESTNET", "XRPL", "XRPL_TESTNET"
      - `address` (string, required)
        Blockchain wallet address for receiving funds
        Example: "0xBb592aaaF9AcE2fbE3F735645819FA94c95a9cb5"
      - `currency` (string, required)
        Cryptocurrency asset symbol
        Example: "RLUSD"
      - `destination_tag` (string)
        Optional destination tag/memo for networks that require one (e.g. XRPL)
        Example: "12345"
    - FEDWIRE:
      - `type` (string, required)
        Discriminator: indicates Fedwire rail
        Enum: "FEDWIRE"
      - `account_number` (string, required)
        Bank account number
        Example: "XXXX7890"
      - `routing_number` (string, required)
        ABA routing number
        Example: "021000021"
      - `swift_code` (string)
        SWIFT/BIC code for international transfers
        Example: "CHASUS33"
      - `memo` (string)
        Reference memo to include with the transfer
        Example: "ACC-123456"
    - ACH:
      - `type` (string, required)
        Discriminator: indicates ACH rail
        Enum: "ACH"
      - `account_number` (string, required)
        Bank account number
        Example: "XXXX7890"
      - `routing_number` (string, required)
        ABA routing number
        Example: "021000021"
      - `swift_code` (string)
        SWIFT/BIC code (optional for ACH)
        Example: "CHASUS33"
      - `memo` (string)
        Reference memo to include with the transfer
        Example: "ACC-123456"
    - RTP:
      - `type` (string, required)
        Discriminator: indicates RTP rail
        Enum: "RTP"
      - `account_number` (string, required)
        Bank account number
        Example: "XXXX7890"
      - `routing_number` (string, required)
        ABA routing number
        Example: "021000021"
      - `swift_code` (string)
        SWIFT/BIC code (optional for RTP)
        Example: "CHASUS33"
      - `memo` (string)
        Reference memo to include with the transfer
        Example: "ACC-123456"
    - PIX:
      - `type` (string, required)
        Discriminator: indicates PIX rail
        Enum: "PIX"
      - `pix_key` (string, required)
        PIX key for receiving payments
        Example: "12345678901"
      - `pix_key_type` (string, required)
        Type of PIX key
        Enum: "CPF", "CNPJ", "EMAIL", "PHONE", "RANDOM"
      - `beneficiary_name` (string)
        Name of the beneficiary as registered with PIX
        Example: "Empresa ABC Ltda"

  - `payment_link` (string, required)
    URL for payer UI to access this channel
    Example: "https://collections.ripplenet.com/pay/channel/3fa85f64-5717-4562-b3fc-2c963f66afa6"

  - `status` (string, required)
    Status of the channel
    Enum: "ACTIVE", "INACTIVE", "CLOSED"

  - `reason` (string,null)
    Reason for current status (if applicable)

  - `created_at` (string, required)
    ISO 8601 timestamp when the channel was created
    Example: "2025-09-18T22:54:00.542Z"

  - `updated_at` (string, required)
    ISO 8601 timestamp when the channel was last updated
    Example: "2025-09-18T22:54:00.542Z"

## Response 400 fields (application/json):

  - `code` (string, required)
    Error code identifying the type of error

  - `reason` (string, required)
    Human-readable error message


