> ## 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.

# Upload an external payment receipt

> Uploads a receipt file (base64-encoded) for an external payment.



## OpenAPI

````yaml /api-reference/openapi.json post /external-payments/{external_payment_id}/receipt
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:
  /external-payments/{external_payment_id}/receipt:
    post:
      tags:
        - External Payments
      summary: Upload an external payment receipt
      description: Uploads a receipt file (base64-encoded) for an external payment.
      operationId: uploadExternalPaymentReceipt
      parameters:
        - $ref: '#/components/parameters/ExternalPaymentId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - base64
              properties:
                base64:
                  type: string
                  description: Base64-encoded receipt file contents.
                fileName:
                  type: string
                  description: Optional file name for the receipt.
      responses:
        '200':
          description: The receipt was uploaded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      receiptFileName:
                        type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  parameters:
    ExternalPaymentId:
      name: external_payment_id
      in: path
      required: true
      description: The ID of the external payment.
      schema:
        type: string
        format: uuid
  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
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              message: Payment intent not found
  schemas:
    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
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Pass your API key as a bearer token: `Authorization: Bearer <API_KEY>`.'

````