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

# Create a payment batch

> Creates one or more payouts in a single batch. Each payout targets a recipient by either `payeeEmail` or `recipientId` (exactly one). Pass an `idempotencyKey` to safely retry the request.



## OpenAPI

````yaml /api-reference/openapi.json post /payments
openapi: 3.1.0
info:
  title: Karat Payout API
  description: >-
    Your gateway to seamless, automated, and scalable payment solutions. The
    Karat Payout API lets you create recipients, send payouts, track payment
    status, manage tax documents, record external payments, and subscribe to
    webhook events.
  version: 1.0.0
servers:
  - url: https://payouts.api.trykarat.com
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Payments
    description: Create and manage outgoing payouts to recipients.
  - name: Recipients
    description: Manage the payees you send payouts to.
  - name: Tax
    description: Retrieve recipient tax forms (W-9) and download links.
  - name: External Payments
    description: Record and manage payments made outside of Karat.
  - name: Webhooks
    description: Subscribe to event notifications for payout activity.
paths:
  /payments:
    post:
      tags:
        - Payments
      summary: Create a payment batch
      description: >-
        Creates one or more payouts in a single batch. Each payout targets a
        recipient by either `payeeEmail` or `recipientId` (exactly one). Pass an
        `idempotencyKey` to safely retry the request.
      operationId: createPaymentBatch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePaymentBatchRequest'
            examples:
              all:
                summary: All
                value:
                  payouts:
                    - payeeEmail: jordan@example.com
                      amount: 25000
                      description: October design work
                      referenceId: inv_1042
                    - recipientId: 9c1f7b2a-3d4e-4f5a-8b6c-1d2e3f4a5b6c
                      amount: 18000
                      description: Editing — episode 12
                      referenceId: inv_1043
                  idempotencyKey: batch-2026-06-17-001
              single:
                summary: Single payout
                value:
                  payouts:
                    - payeeEmail: jordan@example.com
                      amount: 25000
                      description: October design work
                      referenceId: inv_1042
              multiple:
                summary: Multiple payouts
                value:
                  payouts:
                    - payeeEmail: jordan@example.com
                      amount: 25000
                      description: October design work
                      referenceId: inv_1042
                    - payeeEmail: alex@example.com
                      amount: 18000
                      description: Editing — episode 12
                      referenceId: inv_1043
              byRecipientId:
                summary: Using recipient ID
                value:
                  payouts:
                    - recipientId: 9c1f7b2a-3d4e-4f5a-8b6c-1d2e3f4a5b6c
                      amount: 25000
                      description: October design work
      responses:
        '201':
          description: The batch was created.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/PaymentBatch'
              examples:
                all:
                  summary: All
                  value:
                    data:
                      batchId: 30d6bb6e-5398-462c-a90c-7b9077f618d4
                      payouts:
                        - id: 0fc50d45-faa8-4d09-aa2a-a9ceb282d7ae
                          payeeEmail: jordan@example.com
                          amount: 25000
                          description: October design work
                          referenceId: inv_1042
                        - id: 6ce6ca0a-31ff-4c74-89f0-87da19e8bb9d
                          payeeEmail: casey@example.com
                          amount: 18000
                          description: Editing — episode 12
                          referenceId: inv_1043
                single:
                  summary: Single payout
                  value:
                    data:
                      batchId: 30d6bb6e-5398-462c-a90c-7b9077f618d4
                      payouts:
                        - id: 0fc50d45-faa8-4d09-aa2a-a9ceb282d7ae
                          payeeEmail: jordan@example.com
                          amount: 25000
                          description: October design work
                          referenceId: inv_1042
                multiple:
                  summary: Multiple payouts
                  value:
                    data:
                      batchId: 70624ae3-08db-40bc-817b-20e7cb264e46
                      payouts:
                        - id: d65f87ee-04a5-455e-909c-67efc5a0ce63
                          payeeEmail: jordan@example.com
                          amount: 25000
                          description: October design work
                          referenceId: inv_1042
                        - id: 6ce6ca0a-31ff-4c74-89f0-87da19e8bb9d
                          payeeEmail: alex@example.com
                          amount: 18000
                          description: Editing — episode 12
                          referenceId: inv_1043
                byRecipientId:
                  summary: Using recipient ID
                  value:
                    data:
                      batchId: c3f0a1d2-7b8c-4e5f-9a0b-1c2d3e4f5a6b
                      payouts:
                        - id: 0fc50d45-faa8-4d09-aa2a-a9ceb282d7ae
                          payeeEmail: casey@example.com
                          amount: 25000
                          description: October design work
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    CreatePaymentBatchRequest:
      type: object
      required:
        - payouts
      properties:
        payouts:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/PayoutInput'
        idempotencyKey:
          type: string
          description: >-
            Optional key to make the request idempotent. Defaults to a
            server-generated request ID.
    PaymentBatch:
      type: object
      properties:
        batchId:
          type: string
          format: uuid
        payouts:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
              payeeEmail:
                type: string
                format: email
              amount:
                type: integer
                description: Amount in cents.
              description:
                type: string
              referenceId:
                type: string
    PayoutInput:
      type: object
      required:
        - amount
      description: A single payout. Provide exactly one of `payeeEmail` or `recipientId`.
      properties:
        payeeEmail:
          type: string
          format: email
          description: Email of an existing recipient.
        recipientId:
          type: string
          format: uuid
          description: ID of an existing recipient.
        amount:
          type: integer
          minimum: 1
          description: Amount in cents. Must be positive.
        description:
          type: string
        referenceId:
          type: string
          description: Your own reference for this payout.
    Error:
      type: object
      description: Standard error envelope returned for all non-2xx responses.
      properties:
        error:
          type: object
          properties:
            message:
              type: string
            code:
              type: string
          required:
            - message
      required:
        - error
  responses:
    BadRequest:
      description: The request was invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              message: 'amount: amount must be positive'
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              message: Invalid api key
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Pass your API key as a bearer token: `Authorization: Bearer <API_KEY>`.'

````