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

# Create Invoice

> Creates a new invoice.



## OpenAPI

````yaml POST /billing/invoices
openapi: 3.1.0
info:
  title: Meow API
  description: >
    ## Overview


    The Meow API provides financial services and billing capabilities for your
    business.


    ### Core Features


    - **Financial data access**: access account information, transactions,
    balances, and payment networks.

    - **Crypto operations**: create and manage crypto contacts, and initiate
    USDC transfers across blockchain networks.


    ### Billing API


    The Billing API lets you create and manage invoices and collect payments:


    - **Product management**: create and manage products with custom pricing.

    - **Customer management**: maintain invoicing customers with their
    addresses.

    - **Invoice creation**: generate invoices with line items, discounts, and
    custom notes.

    - **Payment options**: accept payments via ACH, wire, international wire,
    card, and USDC.

    - **Collection accounts**: configure accounts for payment collection.


    ### Getting Started


    Authenticate by sending your API key in the `x-api-key` request header.


    To scope requests to a specific entity, include the `x-entity-id` header.
    Use the `/api-keys/accessible-entities` endpoint to list all entities
    accessible by your API key.


    ### Error Responses


    Errors return JSON with `code`, `message`, and `debug_message`. The `code`
    aligns with FDX where possible; use `debug_message` for troubleshooting
    only.


    Common error codes:


    - `500`: Internal server error

    - `501`: Subsystem unavailable

    - `503`: Scheduled maintenance

    - `601`: Data not found

    - `602`: Customer not authorized

    - `701`: Account not found

    - `703`: Invalid input (including invalid date ranges)

    - `704`: Account type not supported

    - `705`: Account is closed

    - `801`: Transaction not found
  contact:
    name: Meow
    url: https://meow.com/
    email: support@meow.com
  version: 1.0.0
  license:
    name: Proprietary
    url: https://www.meow.com/terms-of-service
servers:
  - url: https://api.meow.com/v1
    description: Meow API Production
  - url: https://api.sandbox.meow.com/v1
    description: Meow API Sandbox
security:
  - apiKeyAuth: []
tags:
  - name: API Keys
    description: Retrieve metadata about API keys and their accessible entities.
  - name: Accounts
    description: Access and manage accounts.
  - name: Approvals
  - name: Balances
    description: Retrieve account balances and available funds.
  - name: Bills
    description: View and manage bills for vendor payments.
  - name: Cards
    description: Manage virtual and physical cards, and view transactions and insights.
  - name: Collection Accounts
    description: Manage accounts for payment collection.
  - name: Contacts
    description: Manage contacts for crypto and USDC transfers.
  - name: Customers
    description: Manage invoicing customers and their details.
  - name: Entities
  - name: Invoices
    description: Create and manage invoices.
  - name: Limits
  - name: Line Items
    description: Manage invoice line items.
  - name: Partner Onboarding
    description: Onboard entities using your partner API key.
  - name: Partner Webhooks
  - name: Payment Methods
    description: View available payment method types.
  - name: Payment Networks
    description: Manage payment networks and routing information.
  - name: Products
    description: Manage products and pricing for invoicing.
  - name: Routing Numbers
    description: Validate routing numbers and retrieve bank information.
  - name: Security Policies
  - name: Simulations
    description: >-
      Trigger simulated events — inbound transfers, card authorizations,
      application approval — to test integrations end-to-end without real money
      movement. **Not available in production**: these endpoints exist only in
      sandbox and development environments and return `404 Not Found` in
      production.
  - name: Tax Forms
    description: Retrieve IRS tax forms (1099 family) issued for accounts.
  - name: Transactions
    description: Retrieve account transaction history and details.
  - name: Transfers
    description: >-
      Initiate ACH, wire, book, and crypto transfers, and retrieve transfer
      details.
  - name: Webhooks
    description: Manage webhook subscriptions and inspect delivery history.
paths:
  /billing/invoices:
    post:
      tags:
        - Invoices
      summary: Create Invoice
      description: Creates a new invoice.
      operationId: create_invoice_billing_invoices_post
      parameters:
        - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateInvoiceRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - billing:invoices:write
components:
  parameters:
    EntityIdHeader:
      name: x-entity-id
      in: header
      required: false
      schema:
        type: string
        format: uuid
      description: Optional `entity_id` to scope requests to a specific entity.
  schemas:
    CreateInvoiceRequest:
      properties:
        customer_id:
          type: string
          format: uuid
          title: Customer Id
        line_items:
          items:
            $ref: '#/components/schemas/InvoiceLineRequest'
          type: array
          title: Line Items
        invoice_date:
          $ref: '#/components/schemas/DateString'
          description: Date the invoice is scheduled to be sent.
        due_date:
          $ref: '#/components/schemas/DateString'
          description: Date the invoice is due.
        payment_method_types:
          items:
            $ref: '#/components/schemas/PaymentMethodType'
          type: array
          title: Payment Method Types
          description: >-
            Payment method types to enable on the invoice. `BANK_TRANSFER` is
            always enabled.
        recurring_schedule:
          anyOf:
            - type: string
              maxLength: 120
              minLength: 1
              description: >-
                RFC 5545 RRULE string. Required: DTSTART, RRULE. Allowed
                frequencies: WEEKLY, MONTHLY.
            - type: 'null'
          title: Recurring Schedule
          description: >-
            Recurring schedule for the invoice as an RFC 2445 RRULE string. A
            generator is available at https://icalendar.org/rrule-tool.html.
        send_email_on_creation:
          type: boolean
          title: Send Email On Creation
          description: >-
            If true, sends an email to the customer (and any additional
            recipients) on the `invoice_date`.
        additional_recipient_emails:
          anyOf:
            - items:
                type: string
                format: email
              type: array
              maxItems: 20
            - type: 'null'
          title: Additional Recipient Emails
          description: >-
            Additional recipient emails to send the invoice and any reminders
            to.
        note:
          anyOf:
            - type: string
              maxLength: 300
            - type: 'null'
          title: Note
          description: Note to include on the invoice.
        name:
          anyOf:
            - type: string
              maxLength: 32
            - type: 'null'
          title: Name
          description: Name of the invoice.
        collection_account_id:
          type: string
          format: uuid
          title: Collection Account Id
          description: >-
            The collection account ID where payments on this invoice will be
            deposited.
        show_contact_address:
          type: boolean
          title: Show Contact Address
          description: Whether to show the customer's address on the invoice, if it exists.
          default: false
      type: object
      required:
        - customer_id
        - line_items
        - invoice_date
        - due_date
        - payment_method_types
        - send_email_on_creation
        - collection_account_id
      title: CreateInvoiceRequest
    Invoice:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier for the invoice.
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: The name of the invoice.
        customer_id:
          type: string
          format: uuid
          title: Customer Id
          description: The unique identifier for the customer.
        status:
          $ref: '#/components/schemas/InvoiceStatus'
          description: The current status of the invoice.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: The total amount of the invoice.
        amount_paid:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount Paid
          description: The amount that has been paid on the invoice.
        amount_due:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount Due
          description: The remaining amount due on the invoice.
        invoice_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Invoice Number
          description: The public-facing invoice number.
        line_item_ids:
          items:
            type: string
            format: uuid
          type: array
          title: Line Item Ids
          description: List of line item IDs associated with the invoice.
        invoice_date:
          anyOf:
            - $ref: '#/components/schemas/DateString'
            - type: 'null'
          description: The date the invoice is scheduled to be sent.
        due_date:
          anyOf:
            - $ref: '#/components/schemas/DateString'
            - type: 'null'
          description: The date the invoice payment is due.
        payment_method_types:
          items:
            $ref: '#/components/schemas/PaymentMethodType'
          type: array
          title: Payment Method Types
          description: List of allowed payment method types for the invoice.
        send_email_on_creation:
          type: boolean
          title: Send Email On Creation
          description: Whether to send an email upon invoice creation.
        additional_recipient_emails:
          items:
            type: string
          type: array
          title: Additional Recipient Emails
          description: List of additional email addresses to receive the invoice.
        note:
          anyOf:
            - type: string
            - type: 'null'
          title: Note
          description: A note associated with the invoice.
        collection_account_id:
          type: string
          format: uuid
          title: Collection Account Id
          description: The collection account ID where funds will be collected.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: The timestamp when the invoice was created.
        updated_at:
          anyOf:
            - $ref: '#/components/schemas/Timestamp'
            - type: 'null'
          description: The timestamp when the invoice was last updated.
        paid_at:
          anyOf:
            - $ref: '#/components/schemas/Timestamp'
            - type: 'null'
          description: The timestamp when the invoice was fully paid.
        canceled_at:
          anyOf:
            - $ref: '#/components/schemas/Timestamp'
            - type: 'null'
          description: The timestamp when the invoice was canceled.
        sent_at:
          anyOf:
            - $ref: '#/components/schemas/Timestamp'
            - type: 'null'
          description: The timestamp when the invoice was sent.
        expired_at:
          anyOf:
            - $ref: '#/components/schemas/Timestamp'
            - type: 'null'
          description: The timestamp when the invoice expired.
      type: object
      required:
        - id
        - customer_id
        - status
        - amount
        - amount_paid
        - amount_due
        - line_item_ids
        - payment_method_types
        - send_email_on_creation
        - additional_recipient_emails
        - collection_account_id
        - created_at
      title: Invoice
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    InvoiceLineRequest:
      properties:
        product_id:
          type: string
          format: uuid
          title: Product Id
        quantity:
          anyOf:
            - type: number
              maximum: 100000000
              exclusiveMinimum: 0.001
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,3}0*$
          title: Quantity
          description: Quantity of the product.
        price:
          anyOf:
            - anyOf:
                - type: number
                  maximum: 100000000
                  minimum: 0.01
                - type: string
                  pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
              description: Price of the product. Defaults to the product's default price.
            - type: 'null'
          title: Price
        description:
          anyOf:
            - type: string
              maxLength: 400
            - type: 'null'
          title: Description
          description: >-
            Description of the product. Defaults to the product's description if
            not provided.
        discount_percentage:
          anyOf:
            - anyOf:
                - type: number
                  maximum: 100
                  minimum: 0
                - type: string
                  pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,0}0*$
              description: Discount percentage of the product.
            - type: 'null'
          title: Discount Percentage
        discount_description:
          anyOf:
            - type: string
              maxLength: 100
            - type: 'null'
          title: Discount Description
          description: Description of the discount applied to the product.
      type: object
      required:
        - product_id
        - quantity
      title: InvoiceLineRequest
    DateString:
      type: string
      format: date
      title: DateString
      description: >-
        ISO 8601 full-date in the format `YYYY-MM-DD` (per [IETF RFC
        3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)).
    PaymentMethodType:
      type: string
      enum:
        - BANK_TRANSFER
        - CARD
        - ACH_DIRECT_DEBIT
        - INTERNATIONAL_WIRE
        - USDC_ETHEREUM
        - USDC_SOLANA
        - USDC_BASE
        - USDT_ETHEREUM
        - USDT_SOLANA
        - CASH_SOLANA
      title: PaymentMethodType
      x-enum-varnames:
        - BANK_TRANSFER
        - CARD
        - ACH_DIRECT_DEBIT
        - INTERNATIONAL_WIRE
        - USDC_ETHEREUM
        - USDC_SOLANA
        - USDC_BASE
        - USDT_ETHEREUM
        - USDT_SOLANA
        - CASH_SOLANA
    InvoiceStatus:
      type: string
      enum:
        - Draft
        - Open
        - Pending
        - Scheduled
        - Partially Paid
        - Paid
        - Canceled
        - Expired
        - Overdue
      title: InvoiceStatus
      x-enum-varnames:
        - DRAFT
        - OPEN
        - PENDING
        - SCHEDULED
        - PARTIALLY_PAID
        - PAID
        - CANCELED
        - EXPIRED
        - OVERDUE
    Timestamp:
      type: string
      format: date-time
      title: Timestamp
      description: >-
        ISO 8601 date-time in the format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]`
        (per [IETF RFC
        3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)).
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your Meow API key, sent in the `x-api-key` header for authentication.
      x-scopes:
        - accounts:read
        - accounts:write
        - accounts:payment-networks
        - accounts:transactions
        - accounts:balances
        - accounts:statements
        - accounts:tax-documents
        - entity:create
        - transfers:crypto:write
        - transfers:usdc:write
        - transfers:ach:write
        - transfers:wire:write
        - transfers:book:write
        - contacts:read
        - contacts:write
        - billing:products:read
        - billing:products:write
        - billing:customers:read
        - billing:customers:write
        - billing:invoices:read
        - billing:invoices:write
        - billing:accounts:read
        - billpay:read
        - billpay:write
        - onboarding:read
        - onboarding:write
        - cards:read
        - cards:write
        - webhooks:read
        - webhooks:write
        - partner:onboarding:read
        - partner:onboarding:write
        - partner:webhooks:read
        - partner:webhooks:write
        - simulations:write
        - banking:limits:read
        - banking:limits:write

````