Intuit · Capability

QuickBooks Online Accounting API — Invoices

QuickBooks Online Accounting API — Invoices. 7 operations. Lead operation: Create an Invoice. Self-contained Naftiko capability covering one Intuit business surface.

Run with Naftiko IntuitInvoices

What You Can Do

POST
Createinvoice — Create an Invoice
/v1/invoice
GET
Readinvoice — Read an Invoice
/v1/invoice/{invoiceid}
POST
Updateinvoice — Update an Invoice
/v1/invoice/{invoiceid}
GET
Getinvoicepdf — Get Invoice as Pdf
/v1/invoice/{invoiceid}/pdf
POST
Sendinvoice — Send an Invoice via Email
/v1/invoice/{invoiceid}/send
POST
Voidinvoice — Void an Invoice
/v1/invoice/{invoiceid}/void
GET
Queryentities — Query Entities
/v1/query

MCP Tools

create-invoice

Create an Invoice

read-invoice

Read an Invoice

read-only idempotent
update-invoice

Update an Invoice

get-invoice-pdf

Get Invoice as Pdf

read-only idempotent
send-invoice-email

Send an Invoice via Email

void-invoice

Void an Invoice

query-entities

Query Entities

read-only idempotent

Capability Spec

quickbooks-accounting-invoices.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: QuickBooks Online Accounting API — Invoices
  description: 'QuickBooks Online Accounting API — Invoices. 7 operations. Lead operation: Create an Invoice. Self-contained
    Naftiko capability covering one Intuit business surface.'
  tags:
  - Intuit
  - Invoices
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    INTUIT_API_KEY: INTUIT_API_KEY
capability:
  consumes:
  - type: http
    namespace: quickbooks-accounting-invoices
    baseUri: https://quickbooks.api.intuit.com/v3/company/{realmId}
    description: QuickBooks Online Accounting API — Invoices business capability. Self-contained, no shared references.
    resources:
    - name: invoice
      path: /invoice
      operations:
      - name: createinvoice
        method: POST
        description: Create an Invoice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: invoice-invoiceId
      path: /invoice/{invoiceId}
      operations:
      - name: readinvoice
        method: GET
        description: Read an Invoice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateinvoice
        method: POST
        description: Update an Invoice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: invoice-invoiceId-pdf
      path: /invoice/{invoiceId}/pdf
      operations:
      - name: getinvoicepdf
        method: GET
        description: Get Invoice as Pdf
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: invoice-invoiceId-send
      path: /invoice/{invoiceId}/send
      operations:
      - name: sendinvoice
        method: POST
        description: Send an Invoice via Email
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: sendTo
          in: query
          type: string
          description: Override destination email address
    - name: invoice-invoiceId-void
      path: /invoice/{invoiceId}/void
      operations:
      - name: voidinvoice
        method: POST
        description: Void an Invoice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: operation
          in: query
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: query
      path: /query
      operations:
      - name: queryentities
        method: GET
        description: Query Entities
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: query
          in: query
          type: string
          description: 'A SQL-like query string. For example: SELECT * FROM Invoice WHERE TotalAmt > ''100.00'' ORDERBY TxnDate'
          required: true
    authentication:
      type: bearer
      token: '{{env.INTUIT_API_KEY}}'
  exposes:
  - type: rest
    namespace: quickbooks-accounting-invoices-rest
    port: 8080
    description: REST adapter for QuickBooks Online Accounting API — Invoices. One Spectral-compliant resource per consumed
      operation, prefixed with /v1.
    resources:
    - path: /v1/invoice
      name: invoice
      description: REST surface for invoice.
      operations:
      - method: POST
        name: createinvoice
        description: Create an Invoice
        call: quickbooks-accounting-invoices.createinvoice
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/invoice/{invoiceid}
      name: invoice-invoiceid
      description: REST surface for invoice-invoiceId.
      operations:
      - method: GET
        name: readinvoice
        description: Read an Invoice
        call: quickbooks-accounting-invoices.readinvoice
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: updateinvoice
        description: Update an Invoice
        call: quickbooks-accounting-invoices.updateinvoice
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/invoice/{invoiceid}/pdf
      name: invoice-invoiceid-pdf
      description: REST surface for invoice-invoiceId-pdf.
      operations:
      - method: GET
        name: getinvoicepdf
        description: Get Invoice as Pdf
        call: quickbooks-accounting-invoices.getinvoicepdf
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/invoice/{invoiceid}/send
      name: invoice-invoiceid-send
      description: REST surface for invoice-invoiceId-send.
      operations:
      - method: POST
        name: sendinvoice
        description: Send an Invoice via Email
        call: quickbooks-accounting-invoices.sendinvoice
        with:
          sendTo: rest.sendTo
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/invoice/{invoiceid}/void
      name: invoice-invoiceid-void
      description: REST surface for invoice-invoiceId-void.
      operations:
      - method: POST
        name: voidinvoice
        description: Void an Invoice
        call: quickbooks-accounting-invoices.voidinvoice
        with:
          operation: rest.operation
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/query
      name: query
      description: REST surface for query.
      operations:
      - method: GET
        name: queryentities
        description: Query Entities
        call: quickbooks-accounting-invoices.queryentities
        with:
          query: rest.query
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: quickbooks-accounting-invoices-mcp
    port: 9090
    transport: http
    description: MCP adapter for QuickBooks Online Accounting API — Invoices. One tool per consumed operation, routed inline
      through this capability's consumes block.
    tools:
    - name: create-invoice
      description: Create an Invoice
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: quickbooks-accounting-invoices.createinvoice
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: read-invoice
      description: Read an Invoice
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: quickbooks-accounting-invoices.readinvoice
      outputParameters:
      - type: object
        mapping: $.
    - name: update-invoice
      description: Update an Invoice
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: quickbooks-accounting-invoices.updateinvoice
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-invoice-pdf
      description: Get Invoice as Pdf
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: quickbooks-accounting-invoices.getinvoicepdf
      outputParameters:
      - type: object
        mapping: $.
    - name: send-invoice-email
      description: Send an Invoice via Email
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: quickbooks-accounting-invoices.sendinvoice
      with:
        sendTo: tools.sendTo
      outputParameters:
      - type: object
        mapping: $.
    - name: void-invoice
      description: Void an Invoice
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: quickbooks-accounting-invoices.voidinvoice
      with:
        operation: tools.operation
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: query-entities
      description: Query Entities
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: quickbooks-accounting-invoices.queryentities
      with:
        query: tools.query
      outputParameters:
      - type: object
        mapping: $.