---
title: "Create a global payout batch"
method: POST
path: "/v1/global-payout-batches"
tags: ["Global Payout Batches"]
---

# Create a global payout batch

`POST /v1/global-payout-batches`

Create a global payout batch. Supports USDT and USDC across their available networks (USDT on Ethereum, Arbitrum, Polygon, Solana, Tron; USDC on Ethereum, Base, Arbitrum, Polygon, Solana). Defaults to DRAFT unless `confirm` is true (PENDING_APPROVAL). Use Idempotency-Key to prevent duplicates.

## Headers

- `X-API-Key` string
- `Idempotency-Key` string

## Request body

- CreatePayoutBatchDto
  - `onBehalfOf` string, required — Customer ID on whose behalf the batch is created.
  - `source` PayoutBatchSourceDto, required
    - `currency` 'USDT' | 'USDC', required — Source stablecoin. Supported: USDT, USDC.
    - `paymentRail` 'ETHEREUM' | 'BASE' | 'ARBITRUM' | 'POLYGON' | 'SOLANA' | 'TRON', required — Source network. Supported per currency: USDT on Ethereum, Arbitrum, Polygon, Solana, Tron; USDC on Ethereum, Base, Arbitrum, Polygon, Solana.
  - `paymentReason` 'CAPITAL_CONTRIBUTIONS' | 'CHARITABLE_CONTRIBUTIONS' | 'CONSULTING_FEES' | 'CORPORATE_TAX_PAYMENTS' | 'DOWN_PAYMENTS_FOR_REAL_ESTATE' | 'EDUCATION_FEES' | 'EMPLOYEE_SALARIES_OR_WAGES' | 'EXPENSES_REIMBURSEMENT' | 'GIFTS' | 'GOVERNMENT_GRANTS' | 'INCOME_TAX_PAYMENTS' | 'INHERITANCE_PAYMENTS' | 'INSURANCE_CLAIM_PAYOUTS' | 'INSURANCE_PREMIUM_PAYMENTS' | 'INVESTMENTS' | 'LOAN_ADVANCES' | 'MORTGAGE_PAYMENTS' | 'OTHER' | 'PAYMENT_FOR_GOODS_AND_SERVICES' | 'PERSONAL_TRANSFERS' | 'REAL_ESTATE_PURCHASES' | 'REMITTANCES' | 'RENT' | 'REPAYMENT_OF_LOANS' | 'ROYALTIES' | 'SELF' | 'TRADE_SETTLEMENT' | 'TRUST_FUND_DISTRIBUTIONS' | 'UTILITY_BILLS' | 'WELFARE_OR_BENEFITS' | 'WINNINGS_AND_PRIZES', required — Reason for the payments (compliance/AML). Applied to every item.
  - `items` CreatePayoutBatchItemDto[], required — Payout items (max 100). Each item pays the batch source stablecoin on the source network to an external wallet.
    - `amount` MoneyInputDto, required
      - `currency` string, required — Currency code (ISO 4217 for fiat, symbol for crypto)
      - `rawValue` string, required — Amount in smallest unit as a string (cents for USD, satoshi for BTC, etc.)
    - `counterpartyId` string — Existing counterparty ID for the beneficiary. Required when inline beneficiary fields are omitted.
    - `beneficiaryType` 'INDIVIDUAL' | 'BUSINESS' — Beneficiary type when creating a new counterparty. Required when `counterpartyId` is omitted.
    - `beneficiaryName` string — Beneficiary legal name when creating a new counterparty. Required when `counterpartyId` is omitted.
    - `beneficiaryAddress` AddressDto
      - `addressLine1` string, required — Address line 1
      - `addressLine2` string — Address line 2 (apartment, suite, etc.)
      - `city` string, required — City
      - `state` string — State / Province
      - `postalCode` string, required — Postal code / ZIP code. May be empty for countries without a postal-code system, including the United Arab Emirates.
      - `country` string, required — Country code (ISO 3166-2)
      - `transliterated` TransliteratedAddressDto
        - `addressLine1` string — Transliterated address line 1 (Latin characters)
        - `addressLine2` string — Transliterated address line 2 (Latin characters)
        - `city` string — Transliterated city (Latin characters)
        - `state` string — Transliterated state/province (Latin characters)
    - `destination` PayoutBatchDestinationDto, required
      - `type` 'EXTERNAL_WALLET', required — Destination type. The initial Global Payouts launch supports `EXTERNAL_WALLET` destinations.
      - `address` string, required — Recipient wallet address on the batch source network. Must match the address family of that chain (EVM, Solana, or Tron).
    - `clientReferenceId` string — Client's internal reference ID for this item (e.g. invoice or payroll line ID). Must be unique within the batch when provided.
    - `developerFeeFixed` number — Fixed developer fee in minor units of source currency. Added on top of network fees and deducted from the transfer amount.
    - `developerFeePercent` number — Developer fee as decimal percentage (e.g., 0.015 for 1.5%). Maximum 0.1 (10%).
  - `confirm` boolean — If true, submit the batch for review immediately. If false or omitted, the batch is created in DRAFT and can be confirmed later.

## Response `201`

Global payout batch created

- PayoutBatchResponseDto
  - `id` string, required
  - `organizationId` string, required
  - `onBehalfOf` string, required
  - `source` PayoutBatchSourceResponseDto, required
    - `currency` string, required
    - `paymentRail` string, required
  - `status` 'DRAFT' | 'PENDING_APPROVAL' | 'PROCESSING' | 'COMPLETED' | 'PARTIALLY_COMPLETED' | 'FAILED' | 'CANCELLED' | 'REJECTED', required
  - `paymentReason` 'CAPITAL_CONTRIBUTIONS' | 'CHARITABLE_CONTRIBUTIONS' | 'CONSULTING_FEES' | 'CORPORATE_TAX_PAYMENTS' | 'DOWN_PAYMENTS_FOR_REAL_ESTATE' | 'EDUCATION_FEES' | 'EMPLOYEE_SALARIES_OR_WAGES' | 'EXPENSES_REIMBURSEMENT' | 'GIFTS' | 'GOVERNMENT_GRANTS' | 'INCOME_TAX_PAYMENTS' | 'INHERITANCE_PAYMENTS' | 'INSURANCE_CLAIM_PAYOUTS' | 'INSURANCE_PREMIUM_PAYMENTS' | 'INVESTMENTS' | 'LOAN_ADVANCES' | 'MORTGAGE_PAYMENTS' | 'OTHER' | 'PAYMENT_FOR_GOODS_AND_SERVICES' | 'PERSONAL_TRANSFERS' | 'REAL_ESTATE_PURCHASES' | 'REMITTANCES' | 'RENT' | 'REPAYMENT_OF_LOANS' | 'ROYALTIES' | 'SELF' | 'TRADE_SETTLEMENT' | 'TRUST_FUND_DISTRIBUTIONS' | 'UTILITY_BILLS' | 'WELFARE_OR_BENEFITS' | 'WINNINGS_AND_PRIZES', required
  - `items` PayoutBatchItemResponseDto[], required
    - `id` string, required
    - `position` number, required — 0-based position within the batch
    - `amount` MoneyOutputDto, required
      - `currency` string, required — Currency code
      - `exponent` number, required — Number of decimal places for this currency (e.g., 2 for USD, 6 for USDC)
      - `value` string, required — Amount in smallest unit as a string
      - `displayValue` string, required — Human-readable decimal value
    - `counterpartyId` string, required
    - `destination` PayoutBatchItemDestinationResponseDto, required
      - `type` 'EXTERNAL_WALLET', required
      - `currency` string, required
      - `paymentRail` string, required
      - `accountId` string, required — Public destination account ID.
      - `address` string, required — Destination wallet address snapshot from batch creation.
    - `transferId` string, nullable — Child transfer ID once created after approval.
    - `status` 'PENDING' | 'TRANSFER_CREATED' | 'COMPLETED' | 'FAILED' | 'CANCELLED', required
    - `clientReferenceId` string, nullable
    - `developerFeeFixed` number, nullable — Fixed developer fee in minor units.
    - `developerFeePercent` number, nullable — Developer fee as decimal percentage.
    - `errorMessage` string, nullable — Customer-safe error when item creation or settlement failed.
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `rejectionReason` string, nullable — Reason when the batch was rejected during review.
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required

## Other responses

- `401` — Unauthorized - Invalid or missing authentication credentials

---

[API](https://skmtc.dev/infinite/apis/infinite-api.md) · [All operations](https://skmtc.dev/infinite/apis/infinite-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/infinite/infinite-api/revisions/bca54100a637/schema)
