Files
binect-js/research/binect-api-specification.md
tegwick b9aebb42f1 Add Binect SDK implementation, Explorer, and test suite
SDK (@binect/js):
- BinectClient with domain sub-clients (documents, sendings, accounts,
  attachments, invoices)
- HTTP Basic Auth, native fetch only (no runtime dependencies)
- TypeScript types matching Binect API vocabulary
- Status predicates and polling helpers in helpers.ts
- Structured error handling (BinectApiError, BinectAuthError)

Explorer:
- Standalone browser-based API explorer (explorer/index.html)
- Interactive testing without code

Tests:
- Unit tests for client, types, errors, helpers, http
- E2E tests for upload/delete and send/cancel workflows

Also includes:
- Architecture Decision Records (ADRs)
- Example DIN 5008 letter PDFs for testing
- API specification research notes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 23:10:34 +01:00

116 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Binect API REST Specification
**Source:** https://app.binect.de/binectapi/v1_swagger_api_kernel.json
**Retrieved:** 2026-01-14
## Overview
The Binect API (v0.9.9) is a letter shipping service that handles document upload, validation, processing, and Deutsche Post delivery. The API uses HTTP Basic Authentication and HTTPS exclusively.
## Base Configuration
- **Base Path:** `/binectapi/v1`
- **Host:** `app.binect.de`
- **Scheme:** HTTPS only
- **Authentication:** HTTP Basic Auth (required for all endpoints)
- **Contact:** kontakt@binect.de
## Core Endpoints
### Documents Management
**Upload & Retrieve:**
- `POST /documents` Upload letters/serial letters with base64-encoded content
- `GET /documents` List shippable documents (status 2)
- `GET /documents/errors` List erroneous documents (status 7)
- `GET /documents/{documentID}` Fetch specific document
- `DELETE /documents/{documentID}` Remove document
**Document Attributes:**
- `GET /documents/{documentID}/attributes` Get all attributes
- `POST /documents/{documentID}/attributes` Set attributes
- `GET /documents/{documentID}/attributes/{key}` Get specific attribute
- `PUT /documents/{documentID}/attributes/{key}` Update specific attribute
- `DELETE /documents/{documentID}/attributes/{key}` Delete specific attribute
**Document Modifications:**
- `PUT /documents/{documentID}/transformations` Apply scaling/offset adjustments
- `DELETE /documents/{documentID}/transformations` Revert to original
- `PUT /documents/{documentID}/coverpage` Add cover page
- `DELETE /documents/{documentID}/coverpage` Remove cover page
- `GET /documents/{documentID}/pdf` PDF preview
- `GET /documents/{documentID}/png` PNG preview
**Attachments on Documents:**
- `GET /documents/{documentID}/attachments` Get document attachments
- `POST /documents/{documentID}/attachments` Add attachment to document
- `PATCH /documents/{documentID}/attachments` Update attachments
- `DELETE /documents/{documentID}/attachments` Remove attachments
### Sendings (Shipments)
- `POST /sendings` Announce documents for delivery
- `GET /sendings` List all shipments (statuses 3-7)
- `PUT /sendings` Cancel unshipped letters
- `POST /sendings/{documentID}` Trigger single shipment
- `GET /sendings/{documentID}` Get specific sending
- `PUT /sendings/{documentID}` Cancel specific sending
- `DELETE /sendings/{documentID}` Delete sending
- `POST /sendings/document` Upload and immediately send
- `GET /sendings/status` Batch status check
### Attachments (Standalone)
- `POST /attachments` Upload attachment
- `GET /attachments` List all attachments
- `GET /attachments/{attachmentID}` Get specific attachment
- `DELETE /attachments/{attachmentID}` Delete attachment
- `GET /attachments/{attachmentID}/pdf` Preview attachment PDF
- `GET /attachments/{attachmentID}/documents` Find associated documents
- `PATCH /attachments/{attachmentID}/documents` Attach to multiple documents
### Account Management
- `GET /accounts` Retrieve credit/financial data
- `GET /accounts/personaldata` Get user details
- `PATCH /accounts/personaldata` Update user details
- `GET /accounts/options` Get default print options
- `PUT /accounts/options` Update default print options
- `GET /accounts/coworkers` List team members
- `GET /accounts/coworkers/{debitornumber}/journal/{month}` Coworker transactions
- `GET /accounts/journal/{month}` Account transactions
### Invoicing
- `GET /invoices` List all invoices
- `GET /invoices/{invoiceNumber}` Fetch invoice transactions
- `GET /invoices/{invoiceNumber}/pdf` Download invoice PDF
## Key Data Models
### Document Status Codes
- 1: In preparation
- 2: Shippable
- 3: Production queue
- 4: Printing
- 5: Sent
- 6: Canceled
- 7: Erroneous
### Envelope Options
- DINLANG
- C4
### Franking Types
- UNSPECIFIED
- STANDARD_FRANKING
- DV_FRANKING
### Production Countries
- UNSPECIFIED
- DE
- AT
### Response Format Options
- FULL (default): Complete validation results
- SHORT: Minimal response; validation runs asynchronously
## Constraints
- Maximum file size: 12 MB
- Pagination supported via `limit` and `offset` parameters
- Serial letters support token-based or page-count splitting
- Transformations and cover pages can only be applied to original documents