Embat Operations API

`Operation` represents an accounting operation with a pending amount to settle — typically an invoice or bill due from or to a `Contact` (client or supplier). An invoice with several due dates is modeled as several operations, one per due date. `customId` is the unique identifier of an operation: set your own value to use as your ERP operation ID, or let Embat auto-generate one. Operations are the counterpart of `Payment`s: each payment created against an operation reduces its `pendingAmount`, and once the full amount is settled the operation's `status` automatically becomes `paid`. Operations can also be grouped into an invoice group or remittance (see `operationsCustomIds`), reference a `Contact`, be classified with a `Category`, and carry custom `attributes`. **Typical flow:** 1. **Notify Embat of invoices/bills issued in your ERP.** Create the operation with its due date and amount: ```json POST /operations/{companyId} { "customId": "invoice-2024-001", "issuanceDate": "2024-01-01T00:00:00Z", "dueDate": "2024-01-31T00:00:00Z", "currency": "EUR", "concept": "Consulting services January", "amount": 1250.50 } ``` 2. **Track settlement.** As payments are recorded against the operation (see `Payments`), its `pendingAmount` decreases and `status` moves from `pending`/`overdue` to `paid`. Once an operation already has a payment recorded against it in Embat, most of its fields can no longer be updated — see the create/update endpoint descriptions for the exact rules. 3. **Keep dates and status in sync.** Use `PATCH /operations/{companyId}/{customId}` (or the bulk variant) to correct `dueDate`/`paymentDate`, update `status`, or attach `attributes` — or resend the full operation with `POST`, since sending a `customId` that already exists updates the operation instead of duplicating it. 4. **Group operations into a remittance (invoice group).** Create the individual operations as usual. When your ERP later groups and pays them together, send one more operation representing the remittance — `documentType: invoiceGroup`, the grouped total as `amount`, and the grouped operations' IDs in `operationsCustomIds`: ```json POST /operations/{companyId} { "customId": "remittance-2024-07", "documentType": "invoiceGroup", "amount": 3750.0, "issuanceDate": "2024-07-01T00:00:00Z", "dueDate": "2024-07-31T00:00:00Z", "paymentDate": "2024-07-31T00:00:00Z", "operationsCustomIds": ["invoice-2024-001", "invoice-2024-002", "invoice-2024-003"] } ``` Embat marks every grouped operation as `paid` with `pendingAmount: 0` and links it to the remittance. From then on, the grouped operations' lifecycle is managed through the remittance: updating them directly has no effect, and resending the remittance without some of them releases those operations back to `pending` with their full pending amount. Use `DELETE /operations/{companyId}/{customId}` to cancel an operation that no longer applies.

Operations 10

GET /operations/{companyId} List operations #
POST /operations/{companyId} Create operation #
PATCH /operations/{companyId} Update operations in bulk #
DELETE /operations/{companyId} Delete operations in bulk #
GET /operations/{companyId}/{customId} Retrieve operation #
PATCH /operations/{companyId}/{customId} Update operation #
DELETE /operations/{companyId}/{customId} Delete operation #
POST /operations/{companyId}/bulk Create operations in bulk #
POST /operations/{companyId}/attributes/bulk Add internal attributes to operations in bulk #
DELETE /operations/{companyId}/attributes/bulk Remove internal attributes from operations in bulk #

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/embat:embat-operations-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 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 Specification

embat-operations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Embat Operations API
  description: Embat API enables connections between any third party application and Embat. Is organized around REST principles, using HTTP responses code and returning data in JSON format. While testing the API, you have to request **sandbox credentials**.
  contact:
    name: API Support
    url: https://embat.io/
    email: tech@embat.io
  version: 2.120.3
  x-logo:
    url: https://storage.googleapis.com/embat-production.appspot.com/assets/embat_dark.svg
tags:


# --- truncated at 32 KB (88 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/embat/refs/heads/main/openapi/embat-operations-api-openapi.yml