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

# Approve customer invoice

> Approve a customer invoice for sending. If the invoice has open exceptions, approval will fail unless overrideExceptions=true is passed, which will close all open exceptions and approve the invoice.



## OpenAPI

````yaml /api-reference/openapi.json post /api/rest/invoices/{id}/approve
openapi: 3.1.0
info:
  description: >-
    Upwell is Accounts Receivable automation software for the logistics
    industry. We serve freight brokers, carriers, factors, and anyone who needs
    to get transportation invoices paid.


    Learn more at:


    - [Upwell.com](https://upwell.com)
  title: Upwell REST API
  version: 3.30.2
  termsOfService: https://upwell.com/legal
  contact:
    name: Upwell
    url: https://upwell.com
    email: contact@upwell.com
servers:
  - url: https://api.upwell.com
    description: Production server
  - url: https://staging.api.upwell.com
    description: Staging server
security: []
tags:
  - name: Invoice Approval
    description: Endpoints for managing customer invoice approval workflow
paths:
  /api/rest/invoices/{id}/approve:
    post:
      tags:
        - Invoice Approval
      summary: Approve customer invoice
      description: >-
        Approve a customer invoice for sending. If the invoice has open
        exceptions, approval will fail unless overrideExceptions=true is passed,
        which will close all open exceptions and approve the invoice.
      parameters:
        - description: Your API key for authentication
          in: header
          name: authorization
          schema:
            type: string
        - description: The ID of the invoice to approve
          in: path
          name: id
          schema:
            type: string
          required: true
        - in: query
          name: overrideExceptions
          schema:
            default: false
            type: boolean
          description: >-
            If true, closes all open exceptions and approves the invoice. If
            false and exceptions exist, approval will fail.
      requestBody:
        content:
          application/json:
            schema:
              properties:
                id:
                  nullable: false
                  title: String
                  type: string
                  description: >-
                    The ID of the invoice to approve (alternative to path
                    parameter)
                overrideExceptions:
                  default: false
                  nullable: true
                  title: Boolean
                  type: boolean
                  description: If true, closes all open exceptions and approves the invoice
              type: object
        description: >-
          Optional request body. Parameters can be provided either in the query
          string or request body.
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  approveInvoice:
                    nullable: false
                    properties:
                      error:
                        nullable: true
                        properties:
                          code:
                            nullable: false
                            title: String
                            type: string
                            description: >-
                              Error code. OPEN_EXCEPTIONS: Invoice has
                              unresolved exceptions (use overrideExceptions=true
                              to force approval). INVOICE_NOT_FOUND: Invoice
                              does not exist or is not in CREATED status.
                          message:
                            nullable: false
                            title: String
                            type: string
                            description: Human-readable error message
                        title: InvoiceErrorResponse
                        type: object
                        description: Error details if approval failed
                      exceptions:
                        items:
                          nullable: false
                          properties:
                            createdAt:
                              nullable: false
                              title: String
                              type: string
                              description: Timestamp when the exception was created
                              format: date-time
                            id:
                              nullable: false
                              title: String
                              type: string
                              description: Exception unique identifier
                            ownerId:
                              nullable: false
                              title: String
                              type: string
                              description: ID of the invoice this exception belongs to
                            status:
                              nullable: false
                              title: String
                              type: string
                              description: Current status of the exception
                            type:
                              nullable: false
                              title: String
                              type: string
                              description: Type of exception
                            updatedAt:
                              nullable: false
                              title: String
                              type: string
                              description: Timestamp when the exception was last updated
                              format: date-time
                          title: InvoiceException
                          type: object
                          description: Exception details
                        nullable: false
                        type: array
                        description: >-
                          List of exceptions on the invoice. If
                          overrideExceptions=true, these are the exceptions that
                          were closed.
                      success:
                        nullable: false
                        title: Boolean
                        type: boolean
                        description: Whether the approval was successful
                    title: InvoiceApprovalResponse
                    type: object
                    description: The approval operation result
                type: object
          description: Invoice approval response

````