Overview

Classer - API Documentation

INTRODUCTION

Welcome to the Classer API documentation. This guide explains how Classer connects with external systems so organizations can manage invoices, receipts, outcomes, and customer records in one consistent workflow.

It is intended for businesses, implementation teams, and service providers who need to connect their platforms with Classer for daily financial and CRM operations.

To use this API successfully, begin by reviewing the process flow in this documentation, follow the recommended order of actions, and ensure your team works with the correct environment details shown on this page.

We continuously improve this platform, so parts of the integration journey may evolve over time. We recommend checking this guide regularly to stay aligned with the latest updates.

Should you have any inquiries or require assistance, please do not hesitate to contact our technical support team at support@Classer.co.il. To expedite the resolution of your queries, kindly provide a detailed description of your issue. We will promptly identify the problem and provide you with the necessary support.

Thank you for choosing Classer. We are committed to delivering a seamless and reliable API experience for your invoices and CRM processing needs.

Classer REST API URL's

Classer provides dedicated environments for real operations.

Use the correct environment for your activity and make sure the access details you use match that environment.

Following the guidance in each section will help you maintain a smooth and reliable integration experience with Classer.

REST API URLs

Postman testing collection

Download the ready-to-use Postman collection and environment template to validate your integration quickly in a shared testing flow.

Environment variables included: baseUrl, apiKey, pageSize, pageNumber, search and document/report placeholders. Update values with your account data before running requests.

Pricing note: use request field vatType with values 1 (BeforeVat) or 2 (IncludeVat). ovrlPrice is optional for incomes/receipts/bundle and computed server-side.

NameURLPurpose
Base URLhttps://api.classer.co.il/v1All v1 routes. Server-to-server only — no browser CORS origins are allowed on /v1.
Panel loginhttps://panel.classer.co.il/loginReturned by GET /v1/account/login-url.

Last REST API updates

Switch versions from the left to compare past stable and new preview changes.

DateVersionStatusSummary
2026-08-21v1stablePublic /v1 lane: header-only X-Api-Key, error envelope with stable codes, request validation, Idempotency-Key on every write (409 on key reuse), per-key rate limit, Deprecation/Sunset headers on legacy routes.
2026-04-19v1.0.3stable/api/external routes: document types GET, list pagination, internalNotes on documents.
2025-10-10v1.0.0deprecatedBody-apiKey legacy routes. Sunset 2027-03-01.

Prerequisite endpoint requests

Send X-API-Key on every request. For outcomes, resolve categoryId via lookups before Add Outcome. Then follow the ordered steps below.

Snippet

Terminal (curl) — the key goes in the X-Api-Key header only (v1 rejects a body apiKey):

curl -X POST "https://api.classer.co.il/v1/account/details" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -d "{}"
  1. 1. Send X-Api-Key on every request

    The server resolves the customer and the key's scopes from the header. JSON bodies must not include apiKey (v1 returns 401 invalid_api_key otherwise).

  2. 2. Confirm account details

    Check active, verified and tax connection before write operations — creating documents requires a verified account.

    Jump to endpoint
  3. 3. Resolve document types

    Pick the customer's income/outcome/receipt type ids (ITA codes 305/400/…) for the create routes.

    Jump to endpoint
  4. 4. Resolve categories for expenses

    Use a category id from this list as categoryId on outcomes/add.

    Jump to endpoint
  5. 5. Mint an Idempotency-Key per submission

    Retries are then safe: the first response is replayed for 24 hours instead of creating a second document.

Contacts of Clients and Suppliers

Clients and suppliers.

Endpoints

Documents

Income, outcome, receipt flows, cancel, generic create/search, PDF link.

Endpoints

Reports

Period and accounting reports (PDF links) and BKMVDATA.

Endpoints

Tax Connectivity

Connect and verify the tax-authority linkage.

Endpoints

Account

Account details and login URL.

Endpoints

Lookups

Categories, expense types and document types.

Endpoints

Enums and utilities

Error codes (`code` in the error envelope)

Every non-2xx response is `{ code, message, details?, requestId }`. `code` is stable and English; `message` is human-readable English; `details[]` (validation only) lists `{ field, code, message }`; quote `requestId` in support tickets. / כל תשובת שגיאה מגיעה באותה מעטפת; הקוד יציב ובאנגלית.

NameValueDescription
invalid_api_key401Missing, invalid, revoked or expired X-Api-Key, or inactive account.
insufficient_scope403Key lacks the scope for this route, or the external API is disabled for the account.
validation_error400 / 413 / 415Body failed validation (see details[]), exceeds 1 MB, or is not application/json.
resource_not_found404Referenced document, party or type does not exist for this account.
conflict409The same submission is already in progress — retry shortly.
idempotency_key_reused409Idempotency-Key already used with a different payload. Mint a new key for a new submission.
rate_limit_exceeded429More than 60 requests per minute on this key. Wait for Retry-After seconds.
internal_error500Unexpected failure; nothing about the cause is echoed. Quote requestId.

Israeli Tax Authority document type codes (ITA / BKMVDATA)

The `code` on document types returned by document-types/get and echoed on documents. These are the official ITA codes and are exposed as-is. / קודי סוגי המסמכים של רשות המסים כפי שהם.

NameValueDescription
300חשבונית / חשבונית עסקהInvoice / transaction invoice (income).
305חשבונית מסTax invoice (income). Cancelling one emits a 330.
320חשבונית מס / קבלהTax invoice + receipt bundle (income). Positive amount — not a credit.
330חשבונית מס זיכויCredit tax invoice — the reversal of a 305. Negative sign in reports.
400קבלהReceipt. Cancelling one emits a 410.
410יציאה מקופהCash out — the reversal of a 400. Negative sign in reports.

Scopes

Each API key carries a set of scopes; every route declares the scope it requires (403 insufficient_scope otherwise). Keys are issued and scoped by the accounting firm in the Classer panel (Integrations tab).

NameValueDescription
CreateReceipts1receipts/add, receipts/add-invoice-receipt, documents/create (receipts).
CreateIncomes2incomes/add, receipts/add-invoice-receipt, documents/create (incomes).
ReadCatalog4clients/get, suppliers/get, categories/get, expenses/types, document-types/get, account/*.
ReadReports8reports/* (PDF links and BKMVDATA).
ManageDocuments16documents/get, documents/cancel, outcomes/*, incomes/get, receipts/get, documents/{id}/pdf.
TaxOps32tax/connect, tax/verify.

Type (documents/create)

Type selector for generic document creation.

NameValueDescription
Invoice1Income invoice flow.
Outcome2Outcome/expense flow.
Receipt3Receipt flow.
InvoiceReceipt4Tax invoice + receipt bundle (320).

Utilities

Shared helpers and integration notes used across endpoints.

UtilityDescriptionValue
AuthenticationX-Api-Key header on every request. v1 never reads a key from the body or the query string.X-Api-Key: <your_api_key>
IdempotencyEvery create/cancel accepts Idempotency-Key (UUID recommended). Same key within 24 h replays the first response with X-Idempotent-Replay: true; same key with a different payload → 409 idempotency_key_reused; a concurrent duplicate → 409 conflict. / כל כתיבה מקבלת Idempotency-Key — אותו מפתח בתוך 24 שעות מחזיר את התשובה המקורית.Idempotency-Key: 6f1c2c3e-5a1b-4a44-9c8e-1f2d3e4a5b6c
Rate limit60 requests per minute per API key (PDF/report routes additionally share a small concurrency budget). 429 rate_limit_exceeded carries Retry-After (seconds).Retry-After: 12
ValidationRequired fields, max lengths (names 200, notes 1000, item descriptions 500), amounts ≥ 0, quantities > 0, ≤ 200 items and ≤ 50 payments per document, GUID and date formats. Bodies are capped at 1 MB and must be application/json on write routes.{ "code": "validation_error", "details": [{ "field": "items[0].quantity", "code": "range", "message": "…" }] }
Versioning & sunset policyBreaking changes only under a new path prefix (/v2). Deprecated routes answer with Deprecation: true, Sunset: <date>, Link: <https://classer.co.il/api/doc>; rel="deprecation" for at least 6 months before removal. Current sunset: body-apiKey legacy routes on 2027-03-01.Sunset: 2027-03-01
PaginationOptional pageSize/pageNumber/search on list endpoints; both size and number null or -1 returns all rows (subject to the server max page size).Example: { "pageSize": 20, "pageNumber": 1, "search": "INV" }
Encoding & datesUTF-8 everywhere; JSON property names are English camelCase, values may be Hebrew. Dates are ISO 8601 (date-time); PDF/report routes take from/to in the same format.Content-Type: application/json; charset=utf-8
Terms of useKeys are issued per customer by their accounting firm and are confidential. Do not embed keys in client-side or mobile code; rotate a key from the panel if it leaks. Data processed through the API is subject to the Classer terms and privacy policy.https://classer.co.il/terms