{"name":"AIOV API","description":"ALL-IN-ONE by VAKADA","endpoints":["GET /health","GET|POST|PUT|DELETE /v1/auth/session  (who am I | sign in | keep alive | sign out)","POST|GET /v1/auth/link  (email a login or new-password link | where the link lands)","PUT /v1/auth/password","GET|PUT /v1/accounts/users/user?id=  (PUT: the picture, multipart avatar; GET also says impersonation and can_act_as)","GET /v1/accounts/impersonations  (whom the signed-in user may act as: those they are above, with the companies)","GET|POST|DELETE /v1/accounts/impersonations/impersonation  (acting as someone: GET the one on now, POST { user, minutes? } starts it (an hour, at most eight) with its cookie, DELETE stops it; the database checks every request)","GET /v1/accounts/companies/company?id=  (the company's details, registry snapshot, logo, theme, contacts and addresses; members read)","PUT /v1/accounts/companies/company  (JSON id + theme { preset, colors?, tint?, menu? }; or a picture, multipart id + avatar or logo; admins only. Name, legal form, seat and VAT number come from the registries)","POST|PUT|DELETE /v1/accounts/contacts/contact?kind=&id=  (the company's e-mails and phones, each with a title: company, kind email|phone, title, value; admins only)","POST /v1/accounts/registrations/registration  ({ company }: fetches Bolagsverket and VIES and keeps what is fixed; platform admins only)","POST|PUT|DELETE /v1/accounts/offices/office?id=  (the company's addresses: company, title, address, zip_code, city; admins only)","GET /v1/workflow/workflows?company=&qs=","GET|POST|PUT|DELETE /v1/workflow/workflows/workflow?id=","GET /v1/workflow/runs?workflow=&limit=&summary=  (newest first; written by the engine only; summary=true leaves the steps out)","GET /v1/workflow/runs/run?id=","POST /v1/workflow/runs/run  { workflow }  (Kör en gång: 202 with the run, the engine goes on in the background)","GET /v1/workflow/usage?company=&days=  (per day and per workflow, at most 30 days)","GET /v1/workflow/keychains?company=  (names and hints, never secrets)","GET|POST|DELETE /v1/workflow/keychains/keychain?id=","GET /v1/accounts/members?company=  (the company's active members, for choosing an account manager)","GET /v1/crm/customers?company=&qs=&kind=&documents=&city=&created_by=&from=&to=&status=&owner=&tag=&mandate=&sort=&limit=&offset=  (organisations and people together, with contact details, status, account manager, tags, autogiro and how their documents stand; total, counts, summary and filter options)","GET|POST|PUT|DELETE /v1/crm/customers/customer?id=  (name, a checked number, contact details, status, account manager, tags, customer number and invoicing; GET also their e-mail addresses, phone numbers, addresses, who added them and their account manager; DELETE only without documents or an autogiro mandate)","GET /v1/crm/emails|phones|addresses?customer=  and  GET|POST|PUT|DELETE /v1/crm/emails/email|phones/phone|addresses/address?id=  (a customer's several, each with a title; one of each the primary)","GET /v1/crm/contacts?customer=  and  GET|POST|PUT|DELETE /v1/crm/contacts/contact?id=  (contact persons; one the primary)","GET /v1/crm/notes?customer=  and  GET|POST|PUT|DELETE /v1/crm/notes/note?id=  (notes; anyone pins, the writer changes the text)","GET /v1/crm/mandates?customer=  and  GET|POST|PUT|DELETE /v1/crm/mandates/mandate?id=  (autogiro mandates: pending, active, cancelled, rejected)","GET /v1/invoicing/invoices?company=&status=&customer=&kind=&overdue=&qs=&due_from=&due_to=&sort=&limit=&offset=  (invoices with their customer and how they stand; total and the overview)","GET|POST|PUT|DELETE /v1/invoicing/invoices/invoice?id=  (POST creates a draft with lines; PUT changes a draft, or status sent|reminded|collection moves it on; DELETE only drafts)","GET /v1/invoicing/payments?invoice=  and  GET|POST|PUT|DELETE /v1/invoicing/payments/payment?id=  (payments on sent invoices; paid when they add up)","GET /v1/sign/templates?company=&status=&category=&qs=&sort=&limit=&offset=  (the agreements as templates, with the overview)","GET|POST|PUT|DELETE /v1/sign/templates/template?id=  (name, category, description, the layout: pages with text frames, shapes, images and signer fields, signer roles with ids and how each signs (methods: the button Skriv under always, and any of checkbox with checkbox_text, draw, type, sms_code, email_code, bankid; authentication follows), settings, workflow (the one that runs after signing, or none), products (the ids of the company's products it offers, in order), includes (other templates it takes along as attachments: always or optional, their roles signed by its own; one level), status draft|active|archived; POST with copy=<id> duplicates; DELETE only drafts)","GET /v1/sign/assets?company=  (the company's images for layouts, newest first)","GET /v1/admin/products?company=&qs=&active=  (Administration: the company's products with their terms and general terms; members read)","GET|POST|PUT|DELETE /v1/admin/products/product?id=  (name, kind recurring|usage|once, category electricity|telecom|other (usage only), article_number, description, price (regular), start_fee, vat_rate, vat_included (prices written incl. VAT), billing once|monthly|quarterly|yearly, usage [{ name, unit, pricing fixed|dynamic (entered every month before billing), price, included }], active, conditions (general terms id or null), terms [{ id?, binding_months, notice_months, discounts [{ kind free|percent|amount, value?, months? }], start_discount { kind free|percent|amount, value? } | null, benefits }]; admins write)","GET /v1/admin/conditions?company=  (Administration: the company's general terms, each with what its current version says (number, date, state, size), a newer draft, how many versions and products; members read)","GET|POST|PUT|DELETE /v1/admin/conditions/condition?id=  (GET a document and its versions, &format=pdf renders its current version; POST { company, name, … } or multipart company + file (a PDF read into code) makes it with a first version, a draft; PUT { id, name }; DELETE not while products use it or a version is in production; admins write)","GET|POST|PUT|DELETE /v1/admin/versions/version?id=  (a version of general terms: GET with its code, &format=pdf renders it, old ones too; POST { conditions, version, from? } a new draft copied from one; PUT { id, … , published? } changes a draft or puts it in production, after which it is final (409 version_locked); DELETE drafts only; admins write)","POST /v1/admin/previews/preview  (general terms laid out as their PDF will be, pages of texts and lines, for the editor; nothing stored; admins)","POST /v1/admin/imports/import  (a PDF of general terms read into their code for the editor; nothing stored; admins)","GET|POST|DELETE /v1/sign/assets/asset?id=  (GET: the image file; POST: multipart company + file, png|jpeg|webp|gif ≤ 5 MB)","GET /v1/log/events?customer=|document=|contact=|mandate=|invoice=|template=&limit=&before=  (the log of one thing, newest first, written by the database)","GET|PUT /v1/signing/signatures/signature?token=  (a signer's own page, no account: the agreement as sent, how they sign, how far they are; GET notes the opening, &format=pdf gives the PDF; PUT { token, checkbox?, signature?, code? } signs, { token, declined: true } declines)","POST|PUT /v1/signing/codes/code  (POST { token, channel?: sms | email } sends a code; PUT { token, code } checks it)","GET /v1/signing/assets/asset?token=&id=  (an image on the signer's pages)","GET /v1/email/messages?company=&status=&purpose=&limit=&offset=  (a company's e-mail, newest first, with total)","GET|POST /v1/email/messages/message?id=  (POST { company, to, subject, text, purpose?, reference? } sends through the company's mail server (SMTP) in the caller's name: status sent | rejected | test (kept, not sent) | blocked)","GET|PUT /v1/email/settings/setting?company=  (how the company sends: from_name, from_address, reply_to, live, test_addresses; GET also the mail server: configured, live_allowed, host, port, from, reachable)","GET /v1/sms/messages?company=&status=&purpose=&limit=&offset=  (a company's sms, newest first, with total)","GET|POST /v1/sms/messages/message?id=  (POST { company, to, text, purpose?, reference? } sends an sms through HelloSMS in the caller's name: status queued | test (HelloSMS's test mode: counted, not delivered) | blocked (not sent, with error), as the company's settings and the api's guard say)","GET|PUT /v1/sms/settings/setting?company=  (how the company sends: sender name, live, test_numbers; GET also tells of the provider: configured, live_allowed, reachable, credits; PUT as an admin)","POST /v1/sms/callbacks/callback?token=  (HelloSMS's delivery reports { apiMessageId, status }; the token is SMS_CALLBACK_TOKEN)","GET /v1/signing/documents?company=&customer=&qs=&status=&from=&to=&date=&limit=&offset=  (newest first, each with its customer, creator, workflow and signers; with total and counts per status)","GET|POST|PUT|DELETE /v1/signing/documents/document?id=  (POST creates a draft; template: an active Sign template it is made from, bringing its name and workflow; customer as { id } or { name, number?, email?, phone?, address?, zipcode?, city? }, workflow as an id, signers as [{ details, customer_fields, company_fields }], choices as the signing view keeps them { product, term, attachments, values, recipients }; signers, choices and DELETE only on drafts; PUT { id, sent: true } sends a draft made from a template: what is sent (content) is fixed, with its product and the version of the general terms in production; GET &format=pdf: a sent document as PDF/A-3 — the agreement and its attachments as sent, the general terms, the verifikat, the content's fingerprint at the foot of every page)"]}