Helcim Invoice API

The Invoice API from Helcim — 2 operation(s) for invoice.

Operations 4

POST /invoices Create invoice #
GET /invoices Get invoices #
GET /invoices/{invoiceId} Get invoice #
PUT /invoices/{invoiceId} Update invoice #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/helcim-invoice-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

helcim-invoice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: This API covers publicly accessible merchant actions
  version: 2.2.0
  title: Helcim Invoice API
servers:
- url: https://api.helcim.com/v2
- url: https://api.helcim.test/v2
tags:
- name: Invoice
paths:
  /invoices:
    post:
      tags:
      - Invoice
      summary: Create invoice
      operationId: create-invoice
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceUpsertRequest'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceResponse'
        default:
          description: Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FailedPaymentResponse'
      security:
      - ApiAccessAuth: []
    get:
      tags:
      - Invoice
      summary: Get invoices
      operationId: get-invoices
      parameters:
      - in: query
        name: page
        description: 'Page number for paginated results. Defaults to the first page if omitted.

          '
        example: 1
        schema:
          type: integer
          minimum: 1
      - in: query
        name: dateStart
        description: 'Filter invoices created on or after this date or date-time. Format: `YYYY-MM-DD` or `YYYY-MM-DD HH:MM:SS`. If time is omitted, `00:00:00` is assumed. If `dateEnd` is provided, it must not be earlier than `dateStart`.

          '
        example: '2020-01-01'
        schema:
          type: string
          format: date-time
      - in: query
        name: dateEnd
        description: 'Filter invoices created on or before this date or date-time. Format: `YYYY-MM-DD` or `YYYY-MM-DD HH:MM:SS`. If time is omitted, `23:59:59` is assumed. If `dateStart` is provided, `dateEnd` must not be earlier than `dateStart`.

          '
        example: '2021-01-01'
        schema:
          type: string
          format: date-time
      - in: query
        name: invoiceNumber
        description: 'Filter invoices by the exact invoice number. Matches exactly (case-insensitive). If no match exists, no invoices are returned.

          '
        example: INV1000
        schema:
          type: string
      - in: query
        name: customerId
        description: 'Filter invoices by customer ID.

          '
        example: 12345
        schema:
          type: string
      - in: query
        name: status
        description: 'Filter invoices by status.

          '
        example: PAID
        schema:
          type: string
          enum:
          - CANCELLED
          - DUE
          - PAID
          - SHIPPED
          - COMPLETED
          - REFUNDED
          - APP
          - IN_PROGRESS
          - OVERDUE
          - FOR_APPROVAL
          - APPROVED
      - in: query
        name: type
        description: 'Filter invoices by type.

          '
        example: INVOICE
        schema:
          type: string
          enum:
          - ESTIMATE
          - QUOTE
          - ORDER
          - PURCHASE_ORDER
          - INVOICE
          - STATEMENT
          - REGISTRATION
          - CREDIT
      - in: query
        name: currency
        description: 'Filter invoices by currency code.

          '
        example: USD
        schema:
          type: string
          enum:
          - CAD
          - USD
      - in: query
        name: withConvenienceFee
        description: 'Include the convenience fee for each invoice.  If `1`, the convenience fee is included in the response.  If `0` or omitted, the convenience fee is set to 0.

          '
        example: 1
        schema:
          type: integer
          enum:
          - 0
          - 1
      - in: query
        name: withOrderFields
        description: 'Include custom field values for each invoice. If `1`, the `orderFields` array for each invoice is populated. If `0` or omitted, `orderFields` is always an empty array.

          '
        example: 1
        schema:
          type: integer
          enum:
          - 0
          - 1
      - in: query
        name: convenienceFeeEnabled
        description: 'Filter invoices by whether the convenience fee is enabled.  If `1`, return all invoices with the convenience fee enabled. If `0`, return all invoices with the convenience fee disabled.  If omitted, no filter is applied.

          '
        example: 1
        schema:
          type: integer
          enum:
          - 0
          - 1
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InvoiceResponse'
        default:
          description: Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FailedPaymentResponse'
      security:
      - ApiAccessAuth: []
  /invoices/{invoiceId}:
    get:
      tags:
      - Invoice
      summary: Get invoice
      operationId: get-invoice
      parameters:
      - in: path
        name: invoiceId
        schema:
          type: string
        required: true
        description: The unique ID of the invoice to retrieve.
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceResponse'
        default:
          description: Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FailedPaymentResponse'
      security:
      - ApiAccessAuth: []
    put:
      tags:
      - Invoice
      summary: Update invoice
      operationId: update-invoice
      parameters:
      - in: path
        name: invoiceId
        schema:
          type: string
        required: true
        description: The unique invoice Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceUpsertRequest'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceResponse'
        default:
          description: Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FailedPaymentResponse'
      security:
      - ApiAccessAuth: []
components:
  schemas:
    Shipping:
      title: Shipping Data
      type: object
      required:
      - amount
      - details
      - address
      properties:
        amount:
          type: number
          format: float
          description: 'The total shipping amount for the invoice.

            '
          example: 10.99
        details:
          type: string
          description: 'A description of the shipping method. This information appears on the invoice.

            '
          example: Canada Post 1-day shipping
        address:
          allOf:
          - $ref: '#/components/schemas/Address'
          description: 'The destination shipping address for this invoice.

            '
    Discount:
      title: Discount Data
      type: object
      required:
      - amount
      - details
      properties:
        amount:
          type: number
          format: float
          description: 'The total discount amount applied at the invoice level.  This does not include item-level discounts.

            '
          example: 10.99
        details:
          type: string
          description: 'A description or code identifying the discount.

            '
          example: DISC100
    InvoiceResponse:
      title: InvoiceResponse
      type: object
      properties:
        invoiceId:
          type: integer
          description: Unique ID of the invoice.
          example: 28658838
        invoiceNumber:
          type: string
          description: Invoice number. Generated if not provided during creation.
          example: INV1000
        token:
          type: string
          description: 'A system generated unique token to reference the invoice with. can be used to view the invoice online.

            '
          example: 4e71b0b71b032e8bd95097
        type:
          type: string
          description: 'The type of the invoice.  Possible values include: ESTIMATE, INVOICE, QUOTE, ORDER, PURCHASE_ORDER, STATEMENT, REGISTRATION, CREDIT.

            '
          example: INVOICE
        status:
          type: string
          description: 'The current status of the invoice. Possible values include: CANCELLED, DUE, PAID, SHIPPED, COMPLETED, REFUNDED, APP, IN_PROGRESS, OVERDUE, FOR_APPROVAL, APPROVED.

            '
          example: DUE
        currency:
          type: string
          description: 'The three-letter ISO 4217 currency code for this invoice. Possible values include: CAD, USD.

            '
          example: CAD
        customerId:
          type: integer
          description: 'ID of the customer associated with this invoice. Will be 0 if no customer is associated with the invoice.

            '
          example: 15301549
        billingAddress:
          allOf:
          - $ref: '#/components/schemas/Address'
          description: The billing address for this invoice.
        shipping:
          allOf:
          - $ref: '#/components/schemas/Shipping'
          description: Shipping details for this invoice.
        pickup:
          allOf:
          - $ref: '#/components/schemas/Pickup'
          description: Pickup details for this invoice.
        tax:
          allOf:
          - $ref: '#/components/schemas/Tax'
          description: Tax details for this invoice.
        discount:
          allOf:
          - $ref: '#/components/schemas/Discount'
          description: Discount details for this invoice.
        lineItems:
          type: array
          description: 'List of line items included in this invoice.

            '
          items:
            $ref: '#/components/schemas/LineItem'
        dateCreated:
          type: string
          format: date-time
          description: The date and time when the invoice was created.
          example: '2025-06-20 13:05:03'
        dateUpdated:
          type: string
          format: date-time
          description: The date and time when the invoice was last updated.
          example: '2025-06-20 13:05:03'
        datePaid:
          type: string
          format: date-time
          description: The date and time when the invoice was paid, if applicable.
          example: '0000-00-00 00:00:00'
        dateIssued:
          type: string
          format: date-time
          description: The date and time when the invoice was issued.
          example: '2025-06-20 13:05:03'
        amount:
          type: number
          format: float
          description: The total amount of the invoice.
          example: 127.48
        amountPaid:
          type: number
          format: float
          description: The total amount that has been paid towards this invoice.
          example: 0
        amountDue:
          type: number
          format: float
          description: The remaining balance due for this invoice.
          example: 127.48
        tipAmount:
          type: number
          format: float
          description: The tip amount applied to this invoice.
          example: 0.99
        depositAmount:
          type: number
          format: float
          description: The deposit for items on the invoice, e.g bottle fees.
          example: 0
        convenienceFee:
          type: number
          format: float
          description: The total convenience fee applied to this invoice.
          example: 0
        convenienceFeeEnabled:
          type: boolean
          description: Indicates whether a convenience fee was enabled for this invoice.
          example: false
        surchargingFee:
          type: number
          format: float
          description: The total surcharging fee applied to this invoice.
          example: 0
        orderFields:
          type: array
          description: Any custom order fields attached to this invoice.
          items:
            $ref: '#/components/schemas/OrderField'
        notes:
          type: string
          description: Notes visible to the customer at the bottom of the invoice.
          example: No vegetables please
    FailedPaymentResponse:
      type: object
      properties:
        errors:
          type: array
          description: List of errors
          items:
            type: string
            example: An error occurred
    Tax:
      title: Tax Data
      type: object
      required:
      - amount
      - details
      properties:
        amount:
          type: number
          format: float
          description: 'The total tax amount applied at the invoice level.  This does not include item-level taxes.

            '
          example: 5.99
        details:
          type: string
          description: 'A description of the tax or tax breakdown.

            '
          example: GST 5%
    InvoiceUpsertRequest:
      title: InvoiceCreateRequest
      type: object
      required:
      - currency
      - lineItems
      properties:
        currency:
          type: string
          enum:
          - CAD
          - USD
          description: 'The three-letter [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code used for all monetary amounts in this invoice.

            '
          example: CAD
        lineItems:
          type: array
          description: 'A list of line items to include in the invoice. Must contain at least 1 item and no more than 100.

            '
          minItems: 1
          maxItems: 100
          items:
            $ref: '#/components/schemas/LineItem'
        customerId:
          type: integer
          description: 'Unique customer ID to associate with this invoice.

            '
          example: 123123
          default: 0
        billingAddress:
          allOf:
          - $ref: '#/components/schemas/Address'
          description: 'The billing address for this invoice.

            '
        shipping:
          allOf:
          - $ref: '#/components/schemas/Shipping'
          description: 'The shipping details for this invoice, including shipping cost, method, and destination address.

            '
        pickup:
          allOf:
          - $ref: '#/components/schemas/Pickup'
          description: 'The pickup details for this invoice. Only the pickup date is writable; the pickup name is read-only and derived from the linked customer''s contact name.

            '
        tax:
          allOf:
          - $ref: '#/components/schemas/Tax'
          description: 'The invoice-level tax details.

            '
        discount:
          allOf:
          - $ref: '#/components/schemas/Discount'
          description: 'The invoice-level discount details.

            '
        type:
          type: string
          description: 'The invoice type. Allowed values: ESTIMATE, QUOTE, ORDER, PURCHASE_ORDER, INVOICE, STATEMENT, REGISTRATION, CREDIT. Defaults to `INVOICE` if omitted.

            '
          enum:
          - ESTIMATE
          - QUOTE
          - ORDER
          - PURCHASE_ORDER
          - INVOICE
          - STATEMENT
          - REGISTRATION
          - CREDIT
          example: INVOICE
          default: INVOICE
        status:
          type: string
          description: 'The initial status of the invoice. Allowed values: CANCELLED, DUE, PAID, SHIPPED, COMPLETED, REFUNDED, IN_PROGRESS. Defaults to `DUE` if omitted.

            '
          enum:
          - CANCELLED
          - DUE
          - PAID
          - SHIPPED
          - COMPLETED
          - REFUNDED
          - IN_PROGRESS
          example: DUE
          default: DUE
        convenienceFeeEnabled:
          type: boolean
          description: 'Indicates whether a convenience fee is enabled for this invoice. If not provided, the system will use the merchant''s global Fee Saver settings to determine this value.

            '
          example: true
        tipAmount:
          type: number
          format: float
          description: 'Optional tip amount to include. Must be greater than zero if provided.

            '
          example: 0.99
        invoiceNumber:
          type: string
          description: 'Optional custom invoice number.  If omitted or blank, the system will generate one automatically based on the Invoice Settings.

            '
          example: ''
        notes:
          type: string
          description: 'Optional notes to display at the bottom of the invoice, visible to the customer.

            '
          example: No vegetables please
    LineItem:
      title: Line Item Data
      type: object
      required:
      - description
      - quantity
      - price
      properties:
        description:
          type: string
          description: 'A short description of the product or service.

            '
          example: Red Hat
        quantity:
          type: number
          format: float
          description: 'The quantity of the line item. Can have up to 2 decimal places.

            '
          example: 10.5
        price:
          type: number
          format: float
          description: 'The unit price for a single quantity of this line item, before tax or discounts.

            '
          example: 10.55
        taxAmount:
          type: number
          format: float
          description: 'The tax amount for this line item.

            '
          example: 0
        discountAmount:
          type: number
          format: float
          description: 'The discount amount applied to this line item.

            '
          example: 0
        sku:
          type: string
          description: 'The stock keeping unit (SKU) code for this product (or service).

            '
          example: ITM1434
    Address:
      title: Address
      type: object
      required:
      - name
      - street1
      - postalCode
      properties:
        name:
          type: string
          description: 'The recipient''s name or business name for this address.

            '
          example: John Smith / Helcim
        street1:
          type: string
          description: 'The primary street address.

            '
          example: 21 Jump Street
        street2:
          type: string
          description: 'Additional address details, such as unit or suite number.

            '
          example: Suite 400
        city:
          type: string
          description: 'The city for this address.

            '
          example: Calgary
        province:
          type: string
          description: 'The two-letter province or state code (e.g., AB, BC, CA).  Required if the country is CAN or USA.

            '
          example: AB
        country:
          type: string
          description: 'The three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code (e.g., CAN, USA).

            '
          example: CAN
        postalCode:
          type: string
          description: 'The postal or ZIP code for this address.

            '
          example: H0H0H0
        phone:
          type: string
          description: 'Contact phone number (10 to 15 digits).

            '
          example: 4031231234
        email:
          type: string
          description: 'Contact email address for this address.

            '
          example: john@example.com
    OrderField:
      title: Order Field Data
      type: object
      properties:
        displayName:
          type: string
          example: Table Number
        value:
          type: string
          example: 44B
    Pickup:
      title: Pickup Data
      type: object
      required:
      - date
      properties:
        date:
          type: string
          description: 'The scheduled pickup date and time in the format: `YYYY-MM-DD HH:MM:SS`.

            '
          example: '2022-01-25 13:55:55'
        name:
          type: string
          readOnly: true
          description: 'Read-only. Derived from the linked customer''s contact name (empty when no customer is linked to the invoice). A `name` supplied in a create or update request is ignored — only `date` is writable. To change the displayed pickup name, update the linked customer''s contact name.

            '
          example: Jane Smith
  securitySchemes:
    ApiAccessAuth:
      description: API Token with required permissions
      type: apiKey
      in: header
      name: api-token