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

# Create payout

> This operation creates a payout to withdraw available balances.


<RequestExample>
  ```python Python theme={null}
  import cobo_waas2
  from cobo_waas2.models.create_payout_request import CreatePayoutRequest
  from cobo_waas2.models.payment_payout import PaymentPayout
  from cobo_waas2.rest import ApiException
  from pprint import pprint

  # See configuration.py for a list of all supported configurations.
  configuration = cobo_waas2.Configuration(
      # Replace `<YOUR_PRIVATE_KEY>` with your private key
      api_private_key="<YOUR_PRIVATE_KEY>",
      # Select the development environment. To use the production environment, change the URL to https://api.cobo.com/v2.
      host="https://api.dev.cobo.com/v2",
  )
  # Enter a context with an instance of the API client
  with cobo_waas2.ApiClient(configuration) as api_client:
      # Create an instance of the API class
      api_instance = cobo_waas2.PaymentApi(api_client)
      create_payout_request = cobo_waas2.CreatePayoutRequest(
          request_id="123e457-e89b-12d3-a456-426614174004",
          source_account="req_20260122135755",
          payout_channel="Crypto",
          payout_params=[
              cobo_waas2.PaymentPayoutParam(token_id="ETH_USDT", amount="500.00")
          ],
          recipient_info=cobo_waas2.PaymentPayoutRecipientInfo(
              address="0xabc123456789def0000000000000000000000000",
              token_id="ETH_USDT"
          ),
      )

      try:
          # Create payout
          api_response = api_instance.create_payout(
              create_payout_request=create_payout_request
          )
          print("The response of PaymentApi->create_payout:\n")
          pprint(api_response)
      except Exception as e:
          print("Exception when calling PaymentApi->create_payout: %s\n" % e)

  ```

  ```java Java theme={null}
  // Import classes:
  import com.cobo.waas2.ApiClient;
  import com.cobo.waas2.ApiException;
  import com.cobo.waas2.Configuration;
  import com.cobo.waas2.Env;
  import com.cobo.waas2.api.PaymentApi;
  import com.cobo.waas2.model.*;
  import java.util.Arrays;

  public class Example {
    public static void main(String[] args) {
      ApiClient defaultClient = Configuration.getDefaultApiClient();
      // Select the development environment. To use the production environment, replace `Env.DEV` with
      // `Env.PROD
      defaultClient.setEnv(Env.DEV);

      // Replace `<YOUR_PRIVATE_KEY>` with your private key
      defaultClient.setPrivKey("<YOUR_PRIVATE_KEY>");
      PaymentApi apiInstance = new PaymentApi();
      CreatePayoutRequest createPayoutRequest =
          new CreatePayoutRequest()
              .requestId("123e457-e89b-12d3-a456-426614174004")
              .sourceAccount("req_20260122135755")
              .payoutChannel(PayoutChannel.CRYPTO)
              .payoutParams(
                  Arrays.asList(new PaymentPayoutParam().tokenId("ETH_USDT").amount("500.00")))
              .recipientInfo(new PaymentPayoutRecipientInfo().address("0xabc123456789def0000000000000000000000000").tokenId("ETH_USDT"));
      try {
        PaymentPayout result = apiInstance.createPayout(createPayoutRequest);
        System.out.println(result);
      } catch (ApiException e) {
        System.err.println("Exception when calling PaymentApi#createPayout");
        System.err.println("Status code: " + e.getCode());
        System.err.println("Reason: " + e.getResponseBody());
        System.err.println("Response headers: " + e.getResponseHeaders());
        e.printStackTrace();
      }
    }
  }

  ```

  ```go Go theme={null}
  package main

  import (
  	"context"
  	"fmt"
  	coboWaas2 "github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2"
  	"github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2/crypto"
  	"os"
  )

  func main() {
  	createPayoutRequest := *coboWaas2.NewCreatePayoutRequest("123e457-e89b-12d3-a456-426614174004", "SourceAccount_example", coboWaas2.PayoutChannel("Crypto"), []coboWaas2.PaymentPayoutParam{*coboWaas2.NewPaymentPayoutParam("ETH_USDT", "500.00")}, *coboWaas2.NewPaymentPayoutRecipientInfo())

  	configuration := coboWaas2.NewConfiguration()
  	// Initialize the API client
  	apiClient := coboWaas2.NewAPIClient(configuration)
  	ctx := context.Background()

  	// Select the development environment. To use the production environment, replace coboWaas2.DevEnv with coboWaas2.ProdEnv
  	ctx = context.WithValue(ctx, coboWaas2.ContextEnv, coboWaas2.DevEnv)
  	// Replace `<YOUR_PRIVATE_KEY>` with your private key
  	ctx = context.WithValue(ctx, coboWaas2.ContextPortalSigner, crypto.Ed25519Signer{
  		Secret: "<YOUR_PRIVATE_KEY>",
  	})
  	resp, r, err := apiClient.PaymentAPI.CreatePayout(ctx).
  		CreatePayoutRequest(createPayoutRequest).
  		Execute()
  	if err != nil {
  		fmt.Fprintf(os.Stderr, "Error when calling `PaymentAPI.CreatePayout``: %v\n", err)
  		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
  	}
  	// response from `CreatePayout`: PaymentPayout
  	fmt.Fprintf(os.Stdout, "Response from `PaymentAPI.CreatePayout`: %v\n", resp)
  }

  ```

  ```javascript JavaScript theme={null}
  const CoboWaas2 = require("@cobo/cobo-waas2");
  // Initialize the API client
  const apiClient = CoboWaas2.ApiClient.instance;
  // Select the development environment. To use the production environment, replace `Env.DEV` with `Env.PROD`
  apiClient.setEnv(CoboWaas2.Env.DEV);
  // Replace `<YOUR_PRIVATE_KEY>` with your private key
  apiClient.setPrivateKey("<YOUR_PRIVATE_KEY>");
  // Call the API
  const apiInstance = new CoboWaas2.PaymentApi();
  const opts = {
    CreatePayoutRequest: CoboWaas2.CreatePayoutRequest.constructFromObject({
      request_id: "123e457-e89b-12d3-a456-426614174004",
      source_account: "req_20260122135755",
      payout_channel: "Crypto",
      payout_params: [{ token_id: "ETH_USDT", amount: "500.00" }],
      recipient_info: {
          address:"0xabc123456789def0000000000000000000000000",
          token_id:"ETH_USDT"
      },
    }),
  };
  apiInstance.createPayout(opts).then(
    (data) => {
      console.log("API called successfully. Returned data: " + data);
    },
    (error) => {
      console.error(error);
    },
  );

  ```
</RequestExample>


## OpenAPI

````yaml post /payments/payouts
openapi: 3.0.3
info:
  title: Cobo Wallet as a Service 2.0
  description: >
    The Cobo Wallet-as-a-Service (WaaS) 2.0 API is the latest version of Cobo's
    WaaS API offering. It enables you to access Cobo's full suite of crypto
    wallet technologies with powerful and flexible access controls. By
    encapsulating complex security protocols and streamlining blockchain
    interactions, this API allows you to concentrate on your core business
    activities without worrying about the safety of your assets. The WaaS 2.0
    API presents the following key features:


    - A unified API for Cobo's [all four wallet
    types](https://manuals.cobo.com/en/portal/introduction#an-all-in-one-wallet-platform)

    - Support for 80+ chains and 3000+ tokens

    - A comprehensive selection of webhook events

    - Flexible usage models for MPC Wallets, including [Organization-Controlled
    Wallets](https://manuals.cobo.com/en/portal/mpc-wallets/ocw/introduction)
    and [User-Controlled
    Wallets](https://manuals.cobo.com/en/portal/mpc-wallets/ucw/introduction)

    - Programmatic control of smart contract wallets such as Safe{Wallet} with
    fine-grained access controls

    - Seamlessly transfer funds across multiple exchanges, including Binance,
    OKX, Bybit, Deribit, and more


    For more information about the WaaS 2.0 API, see [Introduction to WaaS
    2.0](https://www.cobo.com/developers/v2/guides/overview/introduction).
  termsOfService: https://cobo.com/waas/tos/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  contact:
    name: Cobo WaaS
    url: https://www.cobo.com/waas
    email: help@cobo.com
  version: 1.0.0
servers:
  - url: https://api.dev.cobo.com/v2
    description: Development environment
  - url: https://api.cobo.com/v2
    description: Production environment
security:
  - CoboAuth: []
tags:
  - name: Organizations
    description: Operations related to Organizations.
  - name: Wallets
    description: Operations related to all wallets.
  - name: Wallets - MPC Wallets
    description: Operations related to mpc wallet.
  - name: Wallets - Exchange Wallet
    description: Operations related to exchange wallet.
  - name: Wallets - Smart Contract Wallets
    description: Operations related to smart contract wallet.
  - name: Transactions
    description: Operations related to all transactions.
  - name: Developers - Webhooks
    description: Operations related to webhooks.
  - name: Stakings
    description: Operations related to staking.
  - name: OAuth
    description: Operations related to OAuth.
  - name: Developers
    description: Operations related to developers.
  - name: AddressBooks
    description: Operations related to address books.
  - name: TravelRule
    description: Operations related to travel rule.
  - name: GraphQL
    description: Operations related to executing GraphQL queries and mutations.
  - name: PrimeBroker
    description: Operations related to prime broker.
  - name: AppWorkflows
    description: Operations related to app workflow.
  - name: FeeStation
    description: Operations related to fee station.
  - name: Payment
    description: Operations related to payment.
  - name: Batch Payouts
    description: Operations related to batch payouts.
  - name: Tokenization
    description: Operations related to tokenization.
  - name: AutoSweep
    description: Operations related to auto sweep.
  - name: Compliance
    description: Operations related to compliance.
paths:
  /payments/payouts:
    post:
      tags:
        - Payment
      summary: Create payout
      description: |
        This operation creates a payout to withdraw available balances.
      operationId: create_payout
      requestBody:
        $ref: '#/components/requestBodies/createPaymentPayoutBody'
      responses:
        '201':
          $ref: '#/components/responses/createPaymentPayoutResponse'
        4XX:
          $ref: '#/components/responses/badRequestError'
        5XX:
          $ref: '#/components/responses/internalServerError'
      security:
        - CoboAuth: []
        - OAuth2:
            - payment_settlement.create
components:
  requestBodies:
    createPaymentPayoutBody:
      description: The request body to create a payout.
      content:
        application/json:
          schema:
            type: object
            required:
              - request_id
              - source_account
              - payout_channel
              - payout_params
              - recipient_info
            properties:
              request_id:
                type: string
                description: >-
                  The request ID that is used to track a payout request. The
                  request ID is provided by you and must be unique.
                example: 123e457-e89b-12d3-a456-426614174004
              source_account:
                type: string
                description: >
                  The source account from which the payout will be made.

                  - If the source account is a merchant account, provide the
                  merchant's ID (e.g., "M1001").

                  - If the source account is the developer account, use the
                  string `"developer"`.
              payout_channel:
                $ref: '#/components/schemas/PayoutChannel'
              payout_params:
                type: array
                items:
                  $ref: '#/components/schemas/PaymentPayoutParam'
              recipient_info:
                $ref: '#/components/schemas/PaymentPayoutRecipientInfo'
              remark:
                type: string
                description: >-
                  An optional note or comment about the payout for your internal
                  reference.
                example: Create payouts for customer 123
  responses:
    createPaymentPayoutResponse:
      description: The payout request was successfully created.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PaymentPayout'
    badRequestError:
      description: >-
        Bad request. Your request contains malformed syntax or invalid
        parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    internalServerError:
      description: Internal server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    PayoutChannel:
      type: string
      enum:
        - Crypto
        - OffRamp
      example: Crypto
      description: >
        The channel through which the payout will be processed. Possible values
        include:

        - `Crypto`: The payout will be processed as a cryptocurrency transfer to
        a crypto address.

        - `OffRamp`: The payout will be processed as a fiat currency transfer to
        a registered bank account.
    PaymentPayoutParam:
      type: object
      required:
        - token_id
        - amount
      properties:
        token_id:
          type: string
          description: >
            The ID of the cryptocurrency you want to pay out. Specify this field
            when `payout_channel` is set to `Crypto`. Supported values:

            - USDC: `ETH_USDC`, `ARBITRUM_USDC`, `SOL_USDC`, `BASE_USDC`,
            `MATIC_USDC`, `BSC_USDC`

            - USDT: `TRON_USDT`, `ETH_USDT`, `ARBITRUM_USDT`, `SOL_USDT`,
            `BASE_USDT`, `MATIC_USDT`, `BSC_USDT`
          example: ETH_USDT
        amount:
          type: string
          description: |
            The payout cryptocurrency amount.
          example: '500.00'
    PaymentPayoutRecipientInfo:
      type: object
      properties:
        address:
          type: string
          description: The recipient's wallet address where the payout will be sent.
          example: '0x9876543210abcdef1234567890abcdef12345678'
        token_id:
          type: string
          description: >
            The token ID for the cryptocurrency to be sent to the recipient.


            If `recipient_info.token_id` is on a different chain than
            `payout_param.token_id`, the token will be automatically bridged to
            the chain specified in `recipient_info.token_id`.
          example: TRON_USDT
        currency:
          type: string
          description: >-
            The fiat currency of the bank account to which the payout will be
            sent.
          example: USD
        bank_account_id:
          type: string
          format: uuid
          description: >-
            The ID of the bank account to which the payout will be sent. This
            field is required only when the payout channel is `OffRamp`. You can
            retrieve the bank account ID by calling [List destination
            entries](https://www.cobo.com/payments/en/api-references/payment/list-destination-entries).
          example: 123e4567-e89b-12d3-a456-426614174003
        transfer_via_va:
          type: boolean
          description: >
            For OffRamp payout, whether the payout is transferred to a
            registered bank account via a virtual account (VA) or directly.

            - `true`: The payout is transferred to a registered bank account via
            a VA (virtual account).

            - `false`: The payout is transferred directly to a registered bank
            account.
          example: false
    PaymentPayout:
      type: object
      required:
        - payout_id
        - request_id
        - payout_channel
        - status
        - created_timestamp
        - updated_timestamp
      properties:
        payout_id:
          type: string
          description: The payout ID generated by Cobo.
          example: 123e457-e89b-12d3-a456-426614174004
        request_id:
          type: string
          description: The request ID provided by you when creating the payout.
          example: 123e457-e89b-12d3-a456-426614174004
        payout_channel:
          $ref: '#/components/schemas/PayoutChannel'
        source_account:
          type: string
          description: >
            The source account from which the payout will be made.

            - If the source account is a merchant account, provide the
            merchant's ID (e.g., "M1001").

            - If the source account is the developer account, use the string
            `"developer"`.
        payout_items:
          type: array
          description: required
          items:
            $ref: '#/components/schemas/PaymentPayoutItem'
        recipient_info:
          $ref: '#/components/schemas/PaymentPayoutRecipientInfo'
        initiator:
          type: string
          description: The initiator of this payout, usually the user's API key.
          example: b2ae1b5aaade686c968ef2bbd31cc75ba94e5a85fd9cb0b35b81dcc15f520e9d
        actual_payout_amount:
          type: string
          description: >
            - For `Crypto` payouts: The amount of cryptocurrency sent to the
            recipient's address, denominated in the token specified in
            `recipient_info.token_id`.

            - For `OffRamp` payouts: The amount of fiat currency sent to the
            recipient's bank account, denominated in the currency specified in
            `recipient_info.currency`. (Note: The actual amount received may be
            lower due to additional bank transfer fees.)
          example: '500.00'
        commission_fees:
          type: array
          description: >-
            The commission fees. Not returned when no fee has been incurred, the
            actual charged amounts once incurred, or `0` if refunded.
          items:
            $ref: '#/components/schemas/CommissionFee'
        remark:
          type: string
          description: A note or comment about the payout.
          example: Payout for customer 123
        status:
          $ref: '#/components/schemas/PaymentPayoutStatus'
        created_timestamp:
          type: integer
          description: >-
            The created time of the payout, represented as a UNIX timestamp in
            seconds.
          example: 1744689600
        updated_timestamp:
          type: integer
          description: >-
            The updated time of the payout, represented as a UNIX timestamp in
            seconds.
          example: 1744689600
    ErrorResponse:
      type: object
      description: The response of a failed request.
      required:
        - error_code
        - error_message
        - error_id
      properties:
        error_code:
          type: integer
          description: >-
            The error code. Refer to [Error codes and status
            codes](https://www.cobo.com/developers/v2/api-references/error-codes)
            for more details.
        error_message:
          type: string
          description: The error description.
        error_id:
          type: string
          description: >-
            The error log ID. You can provide the error ID when submitting a
            ticket to help Cobo to locate the issue.
          example: 0b6ddf19083c4bd1a9ca01bec44b24dd
    PaymentPayoutItem:
      type: object
      required:
        - token_id
        - amount
      properties:
        token_id:
          type: string
          description: The token ID of the payout item.
          example: ETH_USDT
        amount:
          type: string
          description: |
            The amount of the payout item.
          example: '500.00'
        bridging_fee:
          $ref: '#/components/schemas/BridgingFee'
    CommissionFee:
      type: object
      required:
        - fee_amount
      properties:
        fee_amount:
          type: string
          description: >-
            The amount of the commission fee charged by Cobo for operations such
            as pay-ins and payouts, in USD.
    PaymentPayoutStatus:
      type: string
      enum:
        - Pending
        - Preparing
        - Transferring
        - Completed
        - PartiallyCompleted
        - Failed
        - RejectedByBank
      example: Pending
      description: >
        The current status of the payout. Possible values include:

        - `Pending`: The payout has been created and is awaiting processing.

        - `Preparing`: The payout is being prepared for transfer.

        - `Transferring`: The payout is currently being transferred to the
        recipient's destination.

        - `Completed`: The payout has been successfully completed and all
        transactions have been processed.

        - `PartiallyCompleted`: The payout has been partially completed, with
        some transactions succeeding and others failing.

        - `Failed`: The payout has failed and no transactions were completed
        successfully.

        - `RejectedByBank`: The payout was rejected by the recipient's bank
        (applicable to OffRamp payouts only).
    BridgingFee:
      type: object
      required:
        - fee_amount
      properties:
        fee_amount:
          type: string
          description: |
            The fee charged for bridging tokens to another chain.
        received_token_id:
          type: string
          description: The ID of the destination token received after bridging.
        received_amount:
          type: string
          description: The final amount of the token received after bridging.
        bridge_status:
          $ref: '#/components/schemas/PaymentBridgeStatus'
    PaymentBridgeStatus:
      description: |
        The current status of the payout bridge. Possible values include:
        - `Completed`: The payout bridge has been completed successfully.
        - `Failed`: The payout bridge has failed.
      type: string
      enum:
        - Completed
        - Failed
      example: Completed
  securitySchemes:
    CoboAuth:
      type: apiKey
      in: header
      name: BIZ-API-KEY
      description: >
        The API key. For more details, refer to [API
        key](https://www.cobo.com/developers/v2/guides/overview/cobo-auth#api-key).


        In the API playground, enter your [API
        secret](https://www.cobo.com/developers/v2/guides/overview/cobo-auth#api-secret),
        and your API key will be accordingly calculated.
    OAuth2:
      type: oauth2
      description: >-
        The [Org Access
        Token](https://www.cobo.com/developers/v2/apps/org-access-tokens). Use
        this authorization method only if you are developing Cobo Portal Apps
        for installation and use across different organizations.
      flows:
        authorizationCode:
          authorizationUrl: https://auth.cobo.com/authorize
          tokenUrl: https://auth.cobo.com/oauth/token
          scopes:
            address_book.read: Read address book
            api_key.read: Read API key information
            callback.read: Read callback message
            callback.resend: Resend callback message
            wallet.create: Create wallet
            wallet.read: Read wallet information
            wallet.update: Update wallet information
            wallet.delete: Delete wallet information
            wallet.create_address: Create wallet address
            wallet.manage_utxo: Manage UTXO
            mpc_project.create: Create MPC project
            mpc_project.read: Read MPC project information
            mpc_project.update: Update MPC project information
            mpc_vault.create: Create MPC Vault
            mpc_vault.read: Read MPC Vault information
            mpc_vault.update: Update MPC Vault information
            mpc_key_group.create: Create MPC key group
            mpc_key_group.read: Read MPC key group information
            mpc_key_group.update: Update MPC key group information
            mpc_key_group.delete: Delete MPC key group information
            transaction.read: Read transaction information
            transaction.withdraw: Make withdrawals
            transaction.estimate_fee: Estimate transaction fee
            transaction.contract_call: Initiate contract calls
            transaction.message_sign: Initiate message signings
            transaction.stake: Stake assets
            transaction.unstake: Unstake assets
            transaction.unstake_withdraw: Withdraw unstaked assets
            transaction.manage: Manage ongoing transactions
            transaction.update: Update transaction notes
            travel_rule.read: Read travel rule information
            travel_rule.edit: Edit travel rule information
            webhook.read: Read webhook URLs/events
            webhook.edit: Edit webhook URLs
            webhook.resend: Resend webhook events
            payment_orders_payin.create: Create pay-in order
            payment_orders_payin.read: Read pay-in order information
            payment_orders_payin.update: Update pay-in order
            payment_orders_refund.create: Create payment refund order
            payment_orders_refund.read: Read payment refund order information
            payment_settlement.create: Create payment settlement request
            payment_settlement.read: Read payment settlement request information
            payment_merchant.create: Create payment merchant
            payment_merchant.read: Read payment merchant information
            payment_merchant.update: Update payment merchant
            payment_forced_sweep.create: Create payment force sweep request
            payment_forced_sweep.read: Read payment force sweep request information
            compliance_funds.refund: Refund compliance funds request
            compliance_funds.isolate: Isolate compliance funds request
            compliance_funds.unfreeze: Unfreeze compliance funds request
            compliance_funds.read: Read compliance funds request information
            compliance_kyt_review.update: Update KYT review status
            compliance_kyt_decisions.update: Update KYT decision status
            compliance_kyt_status.read: Read KYT screening status
            compliance_kya_screenings.create: Create KYA address screening requests
            compliance_kya_screenings.read: Read KYA address screening results

````