Zuora · Capability

API Reference — Invoices

API Reference — Invoices. 17 operations. Lead operation: Create a standalone invoice. Self-contained Naftiko capability covering one Zuora business surface.

Run with Naftiko ZuoraInvoices

What You Can Do

POST
Poststandaloneinvoice — Create a standalone invoice
/v1/v1/invoices
PUT
Putbatchupdateinvoices — Update invoices
/v1/v1/invoices
POST
Poststandaloneinvoices — Create standalone invoices
/v1/v1/invoices/batch
POST
Postpostinvoices — Post invoices
/v1/v1/invoices/bulk-post
PUT
Putupdateinvoice — Update an invoice
/v1/v1/invoices/{invoicekey}
DELETE
Deletedeleteinvoice — Delete an invoice
/v1/v1/invoices/{invoicekey}
GET
Getgetinvoice — Retrieve an invoice
/v1/v1/invoices/{invoicekey}
GET
Getinvoiceapplicationparts — List all application parts of an invoice
/v1/v1/invoices/{invoicekey}/application-parts
PUT
Putgenerationeinvoicegenerationforinvoices — Generate an e-invoice file for an invoice
/v1/v1/invoices/{invoicekey}/einvoice/generate
POST
Postemailinvoice — Email an invoice
/v1/v1/invoices/{invoicekey}/emails
POST
Postuploadfileforinvoice — Upload a file for an invoice
/v1/v1/invoices/{invoicekey}/files
GET
Getinvoicefiles — List all files of an invoice
/v1/v1/invoices/{invoicekey}/files
GET
Getinvoiceitems — List all items of an invoice
/v1/v1/invoices/{invoicekey}/items
GET
Gettaxationitemsofinvoiceitem — List all taxation items of an invoice item
/v1/v1/invoices/{invoicekey}/items/{itemid}/taxation-items
PUT
Putreverseinvoice — Reverse an invoice
/v1/v1/invoices/{invoicekey}/reverse
POST
Postinvtaxationitems — Create taxation items for an invoice
/v1/v1/invoices/{invoicekey}/taxationitems
PUT
Putwriteoffinvoice — Write off an invoice
/v1/v1/invoices/{invoicekey}/write-off

MCP Tools

create-standalone-invoice

Create a standalone invoice

update-invoices

Update invoices

idempotent
create-standalone-invoices

Create standalone invoices

post-invoices

Post invoices

update-invoice

Update an invoice

idempotent
delete-invoice

Delete an invoice

idempotent
retrieve-invoice

Retrieve an invoice

read-only idempotent
list-all-application-parts-invoice

List all application parts of an invoice

read-only idempotent
generate-e-invoice-file-invoice

Generate an e-invoice file for an invoice

idempotent
email-invoice

Email an invoice

upload-file-invoice

Upload a file for an invoice

list-all-files-invoice

List all files of an invoice

read-only idempotent
list-all-items-invoice

List all items of an invoice

read-only idempotent
list-all-taxation-items-invoice

List all taxation items of an invoice item

read-only idempotent
reverse-invoice

Reverse an invoice

idempotent
create-taxation-items-invoice

Create taxation items for an invoice

write-off-invoice

Write off an invoice

idempotent

Capability Spec

v1-invoices.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: API Reference — Invoices
  description: 'API Reference — Invoices. 17 operations. Lead operation: Create a standalone invoice. Self-contained Naftiko
    capability covering one Zuora business surface.'
  tags:
  - Zuora
  - Invoices
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    ZUORA_API_KEY: ZUORA_API_KEY
capability:
  consumes:
  - type: http
    namespace: v1-invoices
    baseUri: https://rest.zuora.com
    description: API Reference — Invoices business capability. Self-contained, no shared references.
    resources:
    - name: v1-invoices
      path: /v1/invoices
      operations:
      - name: poststandaloneinvoice
        method: POST
        description: Create a standalone invoice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Request
          in: body
          type: string
          required: true
      - name: putbatchupdateinvoices
        method: PUT
        description: Update invoices
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Request
          in: body
          type: string
          required: true
    - name: v1-invoices-batch
      path: /v1/invoices/batch
      operations:
      - name: poststandaloneinvoices
        method: POST
        description: Create standalone invoices
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Request
          in: body
          type: string
          required: true
    - name: v1-invoices-bulk-post
      path: /v1/invoices/bulk-post
      operations:
      - name: postpostinvoices
        method: POST
        description: Post invoices
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Request
          in: body
          type: string
          required: true
    - name: v1-invoices-invoiceKey
      path: /v1/invoices/{invoiceKey}
      operations:
      - name: putupdateinvoice
        method: PUT
        description: Update an invoice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: invoiceKey
          in: path
          type: string
          description: The ID or number of the invoice. For example, 2c92c8955bd63cc1015bd7c151af02ab or INV-0000001.
          required: true
        - name: Request
          in: body
          type: string
          required: true
      - name: deletedeleteinvoice
        method: DELETE
        description: Delete an invoice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: invoiceKey
          in: path
          type: string
          description: The ID or number of the invoice to be deleted. For example, 2c92c8955bd63cc1015bd7c151af02ab or INV-0000001.
          required: true
      - name: getgetinvoice
        method: GET
        description: Retrieve an invoice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: invoiceKey
          in: path
          type: string
          description: The ID or number of the invoice. For example, 2c92c8955bd63cc1015bd7c151af02ab or INV-0000001.
          required: true
    - name: v1-invoices-invoiceKey-application-parts
      path: /v1/invoices/{invoiceKey}/application-parts
      operations:
      - name: getinvoiceapplicationparts
        method: GET
        description: List all application parts of an invoice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: invoiceKey
          in: path
          type: string
          description: The ID or number of the invoice. For example, 2c92c8955bd63cc1015bd7c151af02ab or INV-0000001.
          required: true
    - name: v1-invoices-invoiceKey-einvoice-generate
      path: /v1/invoices/{invoiceKey}/einvoice/generate
      operations:
      - name: putgenerationeinvoicegenerationforinvoices
        method: PUT
        description: Generate an e-invoice file for an invoice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: invoiceKey
          in: path
          type: string
          description: The ID or number of the invoice. For example, 2c92c8955bd63cc1015bd7c151af02ab or INV-0000001.
          required: true
    - name: v1-invoices-invoiceKey-emails
      path: /v1/invoices/{invoiceKey}/emails
      operations:
      - name: postemailinvoice
        method: POST
        description: Email an invoice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Request
          in: body
          type: string
          required: true
        - name: invoiceKey
          in: path
          type: string
          description: The ID or number of the invoice. For example, 2c92c8955bd63cc1015bd7c151af02ab or INV-0000001.
          required: true
    - name: v1-invoices-invoiceKey-files
      path: /v1/invoices/{invoiceKey}/files
      operations:
      - name: postuploadfileforinvoice
        method: POST
        description: Upload a file for an invoice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: invoiceKey
          in: path
          type: string
          description: The ID or number of the invoice that you want to upload a PDF file for. For example, 2c92c8955bd63cc1015bd7c151af02ab
            or INV00000001.
          required: true
        - name: file
          in: formData
          type: file
          description: The PDF file to upload for the invoice.
      - name: getinvoicefiles
        method: GET
        description: List all files of an invoice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: invoiceKey
          in: path
          type: string
          description: The unique ID or number of an invoice. For example, 2c92c8955bd63cc1015bd7c151af02ab or INV00000001.
          required: true
    - name: v1-invoices-invoiceKey-items
      path: /v1/invoices/{invoiceKey}/items
      operations:
      - name: getinvoiceitems
        method: GET
        description: List all items of an invoice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: invoiceKey
          in: path
          type: string
          description: The unique ID or number of an invoice. For example, 2c92c8955bd63cc1015bd7c151af02ab or INV00000001.
          required: true
    - name: v1-invoices-invoiceKey-items-itemId-taxation-items
      path: /v1/invoices/{invoiceKey}/items/{itemId}/taxation-items
      operations:
      - name: gettaxationitemsofinvoiceitem
        method: GET
        description: List all taxation items of an invoice item
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: invoiceKey
          in: path
          type: string
          description: The unique ID or number of an invoice. For example, 2c92c8955bd63cc1015bd7c151af02ab or INV00000001.
          required: true
        - name: itemId
          in: path
          type: string
          description: The unique ID of an invoice item. For example, 2c86c8955bd63cc1015bd7c151af02ef.
          required: true
    - name: v1-invoices-invoiceKey-reverse
      path: /v1/invoices/{invoiceKey}/reverse
      operations:
      - name: putreverseinvoice
        method: PUT
        description: Reverse an invoice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: invoiceKey
          in: path
          type: string
          description: The ID or number of the invoice. For example, 2c92c8955bd63cc1015bd7c151af02ab or INV-0000001.
          required: true
        - name: Request
          in: body
          type: string
          required: true
    - name: v1-invoices-invoiceKey-taxationitems
      path: /v1/invoices/{invoiceKey}/taxationitems
      operations:
      - name: postinvtaxationitems
        method: POST
        description: Create taxation items for an invoice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: invoiceKey
          in: path
          type: string
          description: The unique ID or number of an invoice. For example, 8a8082e65b27f6c3015ba45ff82c7172 or INV00000001.
          required: true
        - name: body
          in: body
          type: string
          required: true
    - name: v1-invoices-invoiceKey-write-off
      path: /v1/invoices/{invoiceKey}/write-off
      operations:
      - name: putwriteoffinvoice
        method: PUT
        description: Write off an invoice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: invoiceKey
          in: path
          type: string
          description: The ID or number of the invoice. For example, 2c92c8955bd63cc1015bd7c151af02ab or INV-0000001.
          required: true
        - name: Request
          in: body
          type: string
          required: true
  exposes:
  - type: rest
    namespace: v1-invoices-rest
    port: 8080
    description: REST adapter for API Reference — Invoices. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/v1/invoices
      name: v1-invoices
      description: REST surface for v1-invoices.
      operations:
      - method: POST
        name: poststandaloneinvoice
        description: Create a standalone invoice
        call: v1-invoices.poststandaloneinvoice
        with:
          Request: rest.Request
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: putbatchupdateinvoices
        description: Update invoices
        call: v1-invoices.putbatchupdateinvoices
        with:
          Request: rest.Request
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/invoices/batch
      name: v1-invoices-batch
      description: REST surface for v1-invoices-batch.
      operations:
      - method: POST
        name: poststandaloneinvoices
        description: Create standalone invoices
        call: v1-invoices.poststandaloneinvoices
        with:
          Request: rest.Request
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/invoices/bulk-post
      name: v1-invoices-bulk-post
      description: REST surface for v1-invoices-bulk-post.
      operations:
      - method: POST
        name: postpostinvoices
        description: Post invoices
        call: v1-invoices.postpostinvoices
        with:
          Request: rest.Request
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/invoices/{invoicekey}
      name: v1-invoices-invoicekey
      description: REST surface for v1-invoices-invoiceKey.
      operations:
      - method: PUT
        name: putupdateinvoice
        description: Update an invoice
        call: v1-invoices.putupdateinvoice
        with:
          invoiceKey: rest.invoiceKey
          Request: rest.Request
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletedeleteinvoice
        description: Delete an invoice
        call: v1-invoices.deletedeleteinvoice
        with:
          invoiceKey: rest.invoiceKey
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getgetinvoice
        description: Retrieve an invoice
        call: v1-invoices.getgetinvoice
        with:
          invoiceKey: rest.invoiceKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/invoices/{invoicekey}/application-parts
      name: v1-invoices-invoicekey-application-parts
      description: REST surface for v1-invoices-invoiceKey-application-parts.
      operations:
      - method: GET
        name: getinvoiceapplicationparts
        description: List all application parts of an invoice
        call: v1-invoices.getinvoiceapplicationparts
        with:
          invoiceKey: rest.invoiceKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/invoices/{invoicekey}/einvoice/generate
      name: v1-invoices-invoicekey-einvoice-generate
      description: REST surface for v1-invoices-invoiceKey-einvoice-generate.
      operations:
      - method: PUT
        name: putgenerationeinvoicegenerationforinvoices
        description: Generate an e-invoice file for an invoice
        call: v1-invoices.putgenerationeinvoicegenerationforinvoices
        with:
          invoiceKey: rest.invoiceKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/invoices/{invoicekey}/emails
      name: v1-invoices-invoicekey-emails
      description: REST surface for v1-invoices-invoiceKey-emails.
      operations:
      - method: POST
        name: postemailinvoice
        description: Email an invoice
        call: v1-invoices.postemailinvoice
        with:
          Request: rest.Request
          invoiceKey: rest.invoiceKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/invoices/{invoicekey}/files
      name: v1-invoices-invoicekey-files
      description: REST surface for v1-invoices-invoiceKey-files.
      operations:
      - method: POST
        name: postuploadfileforinvoice
        description: Upload a file for an invoice
        call: v1-invoices.postuploadfileforinvoice
        with:
          invoiceKey: rest.invoiceKey
          file: rest.file
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getinvoicefiles
        description: List all files of an invoice
        call: v1-invoices.getinvoicefiles
        with:
          invoiceKey: rest.invoiceKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/invoices/{invoicekey}/items
      name: v1-invoices-invoicekey-items
      description: REST surface for v1-invoices-invoiceKey-items.
      operations:
      - method: GET
        name: getinvoiceitems
        description: List all items of an invoice
        call: v1-invoices.getinvoiceitems
        with:
          invoiceKey: rest.invoiceKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/invoices/{invoicekey}/items/{itemid}/taxation-items
      name: v1-invoices-invoicekey-items-itemid-taxation-items
      description: REST surface for v1-invoices-invoiceKey-items-itemId-taxation-items.
      operations:
      - method: GET
        name: gettaxationitemsofinvoiceitem
        description: List all taxation items of an invoice item
        call: v1-invoices.gettaxationitemsofinvoiceitem
        with:
          invoiceKey: rest.invoiceKey
          itemId: rest.itemId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/invoices/{invoicekey}/reverse
      name: v1-invoices-invoicekey-reverse
      description: REST surface for v1-invoices-invoiceKey-reverse.
      operations:
      - method: PUT
        name: putreverseinvoice
        description: Reverse an invoice
        call: v1-invoices.putreverseinvoice
        with:
          invoiceKey: rest.invoiceKey
          Request: rest.Request
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/invoices/{invoicekey}/taxationitems
      name: v1-invoices-invoicekey-taxationitems
      description: REST surface for v1-invoices-invoiceKey-taxationitems.
      operations:
      - method: POST
        name: postinvtaxationitems
        description: Create taxation items for an invoice
        call: v1-invoices.postinvtaxationitems
        with:
          invoiceKey: rest.invoiceKey
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/invoices/{invoicekey}/write-off
      name: v1-invoices-invoicekey-write-off
      description: REST surface for v1-invoices-invoiceKey-write-off.
      operations:
      - method: PUT
        name: putwriteoffinvoice
        description: Write off an invoice
        call: v1-invoices.putwriteoffinvoice
        with:
          invoiceKey: rest.invoiceKey
          Request: rest.Request
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: v1-invoices-mcp
    port: 9090
    transport: http
    description: MCP adapter for API Reference — Invoices. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: create-standalone-invoice
      description: Create a standalone invoice
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: v1-invoices.poststandaloneinvoice
      with:
        Request: tools.Request
      outputParameters:
      - type: object
        mapping: $.
    - name: update-invoices
      description: Update invoices
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: v1-invoices.putbatchupdateinvoices
      with:
        Request: tools.Request
      outputParameters:
      - type: object
        mapping: $.
    - name: create-standalone-invoices
      description: Create standalone invoices
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: v1-invoices.poststandaloneinvoices
      with:
        Request: tools.Request
      outputParameters:
      - type: object
        mapping: $.
    - name: post-invoices
      description: Post invoices
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: v1-invoices.postpostinvoices
      with:
        Request: tools.Request
      outputParameters:
      - type: object
        mapping: $.
    - name: update-invoice
      description: Update an invoice
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: v1-invoices.putupdateinvoice
      with:
        invoiceKey: tools.invoiceKey
        Request: tools.Request
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-invoice
      description: Delete an invoice
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: v1-invoices.deletedeleteinvoice
      with:
        invoiceKey: tools.invoiceKey
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-invoice
      description: Retrieve an invoice
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v1-invoices.getgetinvoice
      with:
        invoiceKey: tools.invoiceKey
      outputParameters:
      - type: object
        mapping: $.
    - name: list-all-application-parts-invoice
      description: List all application parts of an invoice
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v1-invoices.getinvoiceapplicationparts
      with:
        invoiceKey: tools.invoiceKey
      outputParameters:
      - type: object
        mapping: $.
    - name: generate-e-invoice-file-invoice
      description: Generate an e-invoice file for an invoice
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: v1-invoices.putgenerationeinvoicegenerationforinvoices
      with:
        invoiceKey: tools.invoiceKey
      outputParameters:
      - type: object
        mapping: $.
    - name: email-invoice
      description: Email an invoice
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: v1-invoices.postemailinvoice
      with:
        Request: tools.Request
        invoiceKey: tools.invoiceKey
      outputParameters:
      - type: object
        mapping: $.
    - name: upload-file-invoice
      description: Upload a file for an invoice
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: v1-invoices.postuploadfileforinvoice
      with:
        invoiceKey: tools.invoiceKey
        file: tools.file
      outputParameters:
      - type: object
        mapping: $.
    - name: list-all-files-invoice
      description: List all files of an invoice
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v1-invoices.getinvoicefiles
      with:
        invoiceKey: tools.invoiceKey
      outputParameters:
      - type: object
        mapping: $.
    - name: list-all-items-invoice
      description: List all items of an invoice
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v1-invoices.getinvoiceitems
      with:
        invoiceKey: tools.invoiceKey
      outputParameters:
      - type: object
        mapping: $.
    - name: list-all-taxation-items-invoice
      description: List all taxation items of an invoice item
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v1-invoices.gettaxationitemsofinvoiceitem
      with:
        invoiceKey: tools.invoiceKey
        itemId: tools.itemId
      outputParameters:
      - type: object
        mapping: $.
    - name: reverse-invoice
      description: Reverse an invoice
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: v1-invoices.putreverseinvoice
      with:
        invoiceKey: tools.invoiceKey
        Request: tools.Request
      outputParameters:
      - type: object
        mapping: $.
    - name: create-taxation-items-invoice
      description: Create taxation items for an invoice
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: v1-invoices.postinvtaxationitems
      with:
        invoiceKey: tools.invoiceKey
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: write-off-invoice
      description: Write off an invoice
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: v1-invoices.putwriteoffinvoice
      with:
        invoiceKey: tools.invoiceKey
        Request: tools.Request
      outputParameters:
      - type: object
        mapping: $.