Heffl Invoices API
The Invoices API from Heffl — 1 operation(s) for invoices.
The Invoices API from Heffl — 1 operation(s) for invoices.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/heffl-com:heffl-com-invoices-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Heffl Public API (Legacy v1) Invoices API
version: 1.0.0
description: Legacy Heffl REST API v1. Maintained for existing integrations. For new projects, use API v2 at https://docs.heffl.com/api-v2/introduction.
contact:
name: Heffl Support
url: https://heffl.com/support
email: support@heffl.com
servers:
- url: https://api.heffl.com/api/v1
description: Production API Server
security:
- ApiKeyAuth: []
tags:
- name: Invoices
paths:
/invoices:
post:
operationId: invoices.create
summary: Create a new invoice
description: Creates a new invoice with line items. Returns the invoice with calculated totals.
tags:
- Invoices
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
clientId:
type: string
description: Client public ID (required)
date:
type: string
format: date-time
x-native-type: date
description: Invoice date
dueDate:
type: string
format: date-time
x-native-type: date
description: Due date
lineItems:
type: array
minItems: 1
items:
type: object
properties:
name:
type: string
minLength: 1
description: Line item name
productId:
anyOf:
- type: string
- type: 'null'
description: Product public ID (optional)
quantity:
type: number
minimum: 0
default: 0
description: Quantity
price:
type: number
minimum: 0
default: 0
description: Unit price
description:
anyOf:
- type: string
- type: 'null'
description: Line item description
taxRateId:
anyOf:
- type: string
- type: 'null'
description: Tax rate public ID
discount:
type: number
minimum: 0
default: 0
description: Discount value
discountType:
enum:
- fixed
- percent
default: fixed
description: 'Discount type: fixed amount or percent'
buyPrice:
type: number
minimum: 0
default: 0
description: Cost/buy price
required:
- name
description: Invoice line items
isInclusiveTax:
type: boolean
default: false
description: Whether prices include tax
status:
enum:
- DRAFT
- SENT
default: DRAFT
description: Invoice status (DRAFT or SENT)
contactId:
anyOf:
- type: string
- type: 'null'
description: Contact public ID
subject:
anyOf:
- type: string
- type: 'null'
description: Invoice subject
notes:
anyOf:
- type: string
- type: 'null'
description: Invoice notes
salesPersonId:
anyOf:
- type: string
- type: 'null'
description: Sales person user public ID
templateId:
anyOf:
- type: string
- type: 'null'
description: Document template public ID. If not provided, uses the team's default invoice template.
tags:
type: array
items:
type: number
default: []
description: Tag IDs to associate with the invoice
required:
- clientId
- date
- dueDate
- lineItems
additionalProperties: {}
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: Invoice public ID
number:
type: string
description: Auto-generated invoice number
date:
type: string
format: date-time
x-native-type: date
description: Invoice date
dueDate:
type: string
format: date-time
x-native-type: date
description: Invoice due date
status:
type: string
description: Invoice status
clientId:
anyOf:
- type: string
- type: 'null'
description: Client public ID
contactId:
anyOf:
- type: string
- type: 'null'
description: Contact public ID
currency:
type: string
description: Currency code
isInclusiveTax:
type: boolean
description: Whether prices include tax
subject:
anyOf:
- type: string
- type: 'null'
description: Invoice subject
notes:
anyOf:
- type: string
- type: 'null'
description: Invoice notes
salesPersonId:
anyOf:
- type: number
- type: 'null'
description: Sales person user ID
subTotal:
type: number
description: Subtotal before tax
taxTotal:
type: number
description: Total tax amount
discountTotal:
type: number
description: Total discount amount
total:
type: number
description: Grand total
pendingTotal:
type: number
description: Amount pending
paidTotal:
type: number
description: Total amount paid
lineItems:
type: array
items:
type: object
properties:
name:
type: string
description: Line item name
description:
anyOf:
- type: string
- type: 'null'
description: Line item description
productId:
anyOf:
- type: number
- type: 'null'
description: Product ID
quantity:
type: number
description: Quantity
price:
type: number
description: Unit price
tax:
type: number
description: Tax percentage
discount:
type: number
description: Discount value
discountType:
enum:
- fixed
- percent
description: Discount type
buyPrice:
type: number
description: Cost/buy price
viewType:
enum:
- LINE_ITEM
- HEADING
description: Line item type
amount:
type: number
description: Line total after discount and tax
taxAmount:
type: number
description: Tax amount for this line
discountAmount:
type: number
description: Discount amount for this line
required:
- name
- quantity
- price
- tax
- discount
- discountType
- buyPrice
- viewType
- amount
- taxAmount
- discountAmount
description: Invoice line items
createdAt:
type: string
format: date-time
x-native-type: date
description: When the invoice was created
customFields:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: 'null'
description: Custom field values
required:
- id
- number
- date
- dueDate
- status
- currency
- isInclusiveTax
- subTotal
- taxTotal
- discountTotal
- total
- pendingTotal
- paidTotal
- lineItems
- createdAt
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: x-api-key
description: API key for authentication. Get yours at app.heffl.com/settings/developers