> ## Documentation Index
> Fetch the complete documentation index at: https://www.referly.so/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Mark paid

> Requires `payout-batches:write`. See [Payout batches behavior](/developer-documentation/api/finance) and [common API rules](/developer-documentation/api/overview).

Requires `payout-batches:write`. See the [payout batches guide](https://www.referly.so/docs/developer-documentation/api/finance.md) for behavior and examples.


## OpenAPI

````yaml POST /payout-batches/{id}/mark-paid
openapi: 3.0.3
info:
  title: Referly API
  description: >-
    REST API for affiliates, referrals, sales, links, coupons, programs, groups,
    commission plans, commissions, adjustments, balances, payouts, analytics and
    webhooks. Send Authorization: Bearer <YOUR_API_KEY>. Keys have resource
    permissions and optional expiry. Requests default to the key’s original
    program; operational endpoints also support X-Program-Id for a program
    created by that exact key. See the authentication and operational API guides
    for scope, pagination, errors and retry behavior.
  version: 1.0.0
servers:
  - url: https://www.referly.so/api/v1
security:
  - bearerAuth: []
paths:
  /payout-batches/{id}/mark-paid:
    post:
      tags:
        - payout-batches
      summary: Mark paid
      description: >-
        Requires `payout-batches:write`. See [Payout batches
        behavior](/developer-documentation/api/finance) and [common API
        rules](/developer-documentation/api/overview).
      operationId: post_payout_batches_id_mark_paid
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: Idempotency-Key
          in: header
          required: false
          schema:
            type: string
            minLength: 8
            maxLength: 200
            pattern: ^[\x21-\x7e]+$
          description: >-
            Optional retry key, unique within the selected program. Reuse the
            same key, method, path and validated payload; a conflicting reuse
            returns 409.
        - name: X-Program-Id
          in: header
          required: false
          description: >-
            Select the key's original program or a program provisioned by this
            exact key. Other owned programs remain inaccessible.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OperationalMarkPaid'
      responses:
        '200':
          description: >-
            Success. Monetary amounts use program currency; see companion
            documentation for resource fields.
          content:
            application/json:
              schema:
                $ref: 861b7646-e0c0-4b1a-b676-eba5d95760f3
              example:
                success: true
                batch:
                  id: batch_2f88a163
                  createdAt: '2026-09-30T02:00:00.000Z'
                  updatedAt: '2026-09-30T02:00:00.000Z'
                  status: PAID
                  periodStart: '2026-09-01T00:00:00.000Z'
                  periodEnd: '2026-09-30T23:59:59.000Z'
                  affiliateProgramId: prog_acme_partners
                  paidMethod: INTEGRATION
                  payoutMethod: WISE
                  rewardType: CASH
                  externalBatchId: bank-reference-2026-09-30
                  failedReason: null
                  manuallyPaidAt: '2026-09-30T10:00:00.000Z'
                  isReferlyPayouts: false
                  payouts:
                    - id: pay_7c1e4b90
                      affiliateId: aff_9f2c1e42
                      affiliateProgramId: prog_acme_partners
                      amount: 342.75
                      currency: USD
                      status: PAID
                      paymentMethod: WISE
                      rewardType: CASH
                      nonCashRewardType: null
                      periodStart: '2026-09-01T00:00:00.000Z'
                      periodEnd: '2026-09-30T23:59:59.000Z'
                      createdAt: '2026-09-30T02:00:00.000Z'
                      payoutBatchId: batch_2f88a163
                      failedReason: null
                      externalId: null
                      manuallyPaid: true
                      paidAt: '2026-09-30T10:00:00.000Z'
                      vatRate: 0
                      vatAmount: 0
                      amountLockedAt: null
                      referlyChargeId: null
                      commissions:
                        - id: 4821
                          commissionEarned: 42.5
                        - id: 4903
                          commissionEarned: -12.5
        '400':
          description: Malformed JSON
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: invalid_json
                  message: Invalid JSON body
                  requestId: 5c1f7a2e-2b39-4c2d-9c31-7a6e0f6a9b21
        '401':
          description: Invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: unauthorized
                  message: Invalid, expired or revoked API key
                  requestId: 5c1f7a2e-2b39-4c2d-9c31-7a6e0f6a9b21
        '403':
          description: Scope or entitlement denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: insufficient_scope
                  message: Requires payout-batches:write
                  requestId: 5c1f7a2e-2b39-4c2d-9c31-7a6e0f6a9b21
        '404':
          description: Not found within this program
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: not_found
                  message: Resource not found
                  requestId: 5c1f7a2e-2b39-4c2d-9c31-7a6e0f6a9b21
        '409':
          description: State or idempotency conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: batch_locked
                  message: Batch is not eligible for manual settlement
                  requestId: 5c1f7a2e-2b39-4c2d-9c31-7a6e0f6a9b21
        '413':
          description: Body too large
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: body_too_large
                  message: Request body must be at most 64 KiB
                  requestId: 5c1f7a2e-2b39-4c2d-9c31-7a6e0f6a9b21
        '422':
          description: Validation failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: validation_error
                  message: Invalid request parameters
                  requestId: 5c1f7a2e-2b39-4c2d-9c31-7a6e0f6a9b21
        '429':
          description: Rate limit exceeded; observe Retry-After
          content:
            application/json:
              schema:
                $ref: f48d42e5-fe37-407f-b348-be8b1adae0be
              example:
                error: Too many requests. Please slow down.
                retryAfter: 42
        '500':
          description: Internal failure
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: internal_error
                  message: Request failed
                  requestId: 5c1f7a2e-2b39-4c2d-9c31-7a6e0f6a9b21
        '502':
          description: Webhook provider failure
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: webhook_provider_error
                  message: The webhook provider request failed
                  requestId: 5c1f7a2e-2b39-4c2d-9c31-7a6e0f6a9b21
components:
  schemas:
    OperationalMarkPaid:
      type: object
      properties:
        paymentReference:
          type: string
          minLength: 1
          maxLength: 200
        paidAt:
          type: string
          format: date-time
      required:
        - paymentReference
      additionalProperties: false
    Error:
      type: object
      properties:
        error:
          type: string
          description: Human readable description of what went wrong
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.