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

# Record invoice payment

> Record a manual payment against an issued invoice.



## OpenAPI

````yaml /api-reference/openapi.json post /v1/invoices/{id}/payments
openapi: 3.1.0
info:
  title: Bizzy API
  version: 1.0.0
  description: Bizzy API for managing businesses, customers, contacts, and more.
servers:
  - url: https://api.bizzyco.ai
    description: Production
security: []
tags:
  - name: Automations
    description: Manage workflow automation rules
    x-group: Automations
  - name: Automation Executions
    description: View automation execution history
    x-group: Automations
  - name: Businesses
    description: Manage business profiles
    x-group: Businesses
  - name: Business Offerings
    description: Manage products and services offered by businesses
    x-group: Businesses
  - name: Business Online Presences
    description: Manage websites and social media links
    x-group: Businesses
  - name: Business Physical Presences
    description: Manage physical locations and addresses
    x-group: Businesses
  - name: Business Profile
    description: View and update business profile details
    x-group: Businesses
  - name: Contacts
    description: Manage contact records
    x-group: Contacts
  - name: Contact Addresses
    description: Manage mailing addresses for contacts
    x-group: Contacts
  - name: Contact Emails
    description: Manage email addresses for contacts
    x-group: Contacts
  - name: Contact Phone Numbers
    description: Manage phone numbers for contacts
    x-group: Contacts
  - name: Customers
    description: Manage customer records
    x-group: Customers
  - name: Customer Transactions
    description: View customer transaction history
    x-group: Customers
  - name: Domains
    description: Manage domain names
    x-group: Domains
  - name: Domain Contacts
    description: Manage contacts associated with domains
    x-group: Domains
  - name: Domain Registrations
    description: Manage domain registration records
    x-group: Domains
  - name: Email Templates
    description: Manage reusable email templates
    x-group: Email Templates
  - name: Files
    description: Manage file uploads and downloads
    x-group: Files
  - name: File Access Links
    description: Manage shareable file access links
    x-group: Files
  - name: Folders
    description: Organize files into folders
    x-group: Files
  - name: Messages
    description: Manage email messages
    x-group: Messages
  - name: Message Attachments
    description: Access message file attachments
    x-group: Messages
  - name: Message Contacts
    description: View contacts associated with messages
    x-group: Messages
  - name: Tasks
    description: Manage task records
    x-group: Tasks
  - name: Task Assignees
    description: Manage user assignments to tasks
    x-group: Tasks
  - name: Task Activity
    description: View task activity and change history
    x-group: Tasks
paths:
  /v1/invoices/{id}/payments:
    post:
      tags:
        - Invoice Payments
      summary: Record invoice payment
      description: Record a manual payment against an issued invoice.
      operationId: createInvoicePayment
      parameters:
        - schema:
            type: string
            format: uuid
            description: Invoice UUID
            example: 123e4567-e89b-12d3-a456-426614174000
          required: true
          description: Invoice UUID
          name: id
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 255
            description: >-
              Key that makes this request safe to retry. Reuse the same value
              when retrying a request that may already have succeeded — the
              original response is replayed with an `Idempotency-Replay: true`
              header. Use a new value for a new operation.
            example: 9f8c2b1a-4d3e-4a6b-8c1d-2e3f4a5b6c7d
          required: true
          description: >-
            Key that makes this request safe to retry. Reuse the same value when
            retrying a request that may already have succeeded — the original
            response is replayed with an `Idempotency-Replay: true` header. Use
            a new value for a new operation.
          name: idempotency-key
          in: header
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoicePaymentCreate'
      responses:
        '201':
          description: Invoice payment recorded successfully
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Maximum burst of requests the tier allows per minute
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests remaining in the current window after this request
            X-RateLimit-Reset:
              schema:
                type: integer
              description: Seconds until the allowance is fully replenished
            Idempotency-Replay:
              schema:
                type: boolean
              description: >-
                Present and `true` when this response is a replay of an earlier
                request with the same Idempotency-Key
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/InvoicePayment'
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          total:
                            type: number
                          limit:
                            type: number
                          offset:
                            type: number
                          hasMore:
                            type: boolean
                        required:
                          - limit
                          - offset
                          - hasMore
                required:
                  - data
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '409':
          description: >-
            The invoice state does not allow a payment (error code
            INVOICE_PAYMENT_NOT_ALLOWED), the invoice is read-only (error code
            INVOICE_NOT_EDITABLE), or a request with the same Idempotency-Key is
            still in progress (error code IDEMPOTENCY_KEY_IN_FLIGHT)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >-
            This Idempotency-Key was already used for a different request (error
            code IDEMPOTENCY_KEY_REUSED)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: Rate limit exceeded for the account tier (error code RATE_LIMITED)
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Maximum burst of requests the tier allows per minute
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests remaining in the current window after this request
            X-RateLimit-Reset:
              schema:
                type: integer
              description: Seconds until the allowance is fully replenished
            Retry-After:
              schema:
                type: integer
              description: Seconds to wait before the next request will be accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      security:
        - bearerAuth: []
components:
  schemas:
    InvoicePaymentCreate:
      type: object
      properties:
        amountCents:
          type: integer
          exclusiveMinimum: 0
          maximum: 9007199254740991
        paidAt:
          type: string
          format: date-time
          description: >-
            Timestamp when the payment was received. Timestamps more than five
            minutes in the future are rejected.
          example: '2026-08-30T12:00:00.000Z'
        note:
          type:
            - string
            - 'null'
      required:
        - amountCents
      additionalProperties: false
    InvoicePayment:
      type: object
      properties:
        id:
          type: string
          format: uuid
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        deletedAt:
          type:
            - string
            - 'null'
          format: date-time
        organizationId:
          type: string
          format: uuid
        invoiceId:
          type: string
          format: uuid
        amountCents:
          type: integer
        currency:
          type: string
        paidAt:
          type: string
          format: date-time
        method:
          type: string
          enum:
            - manual
            - stripe
        note:
          type:
            - string
            - 'null'
      required:
        - id
        - createdAt
        - updatedAt
        - deletedAt
        - organizationId
        - invoiceId
        - amountCents
        - currency
        - paidAt
        - method
        - note
    ApiError:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
            code:
              type: string
            details: {}
          required:
            - message
            - code
      required:
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key authentication via Bearer token

````