← Docs / Changelog
Changelog
New features, changes and fixes in Nordlet, by release.
0.5.0 - 2026-10-13 - Current release
Added
POST /v1/account/mereturnsbilling.accountType(flat_rateorper_request) of the paying account.
Changed
/v1/sales/invoices/pdfand/v1/sales/invoices/sendprint an issued invoice with the seller name, code, VAT number, VAT payer status and address stored when it was issued; a later change of the company no longer changes the PDF of an issued invoice./v1/calendar/listlists a filing deadline only when the company has to file it: EU sales lists for periods with intra-EU sales, Intrastat above the national threshold or as set infilingOptions.intrastat, the Estonian and Latvian monthly corporate income tax returns for months with a distribution (Latvia also the last month of the financial year), the Norwegian shareholder register statement not for ENK, ANS, DA or KS, and the French CA3 or CA12 byfilingOptions.frVatRegime./v1/calendar/listlists the Belgian annual client listing (be-client-listing) also for Belgian companies that are not VAT payers (franchise regime), from the 2025 operations.- The German VAT return (
de-vat-return) is quarterly unless the company'svatPeriodis set, the Spanish Modelo 111 (es-payroll-withholding) is quarterly unlessfilingOptions.esLargeCompanyisyes, and the Romanian D394 and D406 follow the VAT period. filingOptionson/v1/account/companies/updateacceptsintrastat,euSalesListPeriod,atUvaExempt,bePayrollPeriod,dePayrollPeriod,esSii,esSimplifiedOnly,esLargeCompany,frVatRegimeandfrCompanySize.- Error and warning messages that pointed to Settings now point to Account (for example
Account → Compliance → EU), and the error keysdocument_reading_is_available_after_the_first_top_up_top_up_credits_in_settingsandno_peppol_access_point_is_set_up_for_this_company_enter_it_in_settings_compliancare now..._in_account_band..._in_account_compliance.
Fixed
- The pain.001 files from
/v1/bank/payments/exportand the payroll net-pay export now carry the debtor's bank (DbtrAgt,NOTPROVIDEDwhen no BIC is known), which the pain.001.001.03 schema requires; files without it failed schema validation. POST /v1/account/companies/createnow stores every profile field it accepts (legalForm,incorporatedOn,vatPeriod,fiscalYearEndMonth,filingOptions,smeExemptionNumber,registryName,shareCapital,accountsKeptBy,bookkeeperName,auditorName,auditorRegistrationNumber,auditRequired); before, these were accepted and dropped.
0.4.0 - 2026-10-11
Added
POST /v1/billing/account/set-auto-top-upturns automatic top-ups on or off: when a usage charge leaves the balance at or below zero, Nordlet charges the saved card for the chosen amount through a Stripe invoice and credits the balance when the invoice is paid;POST /v1/billing/account/getreturnsautoTopUp.POST /v1/billing/account/set-overdraft-capsets how far below zero the balance may go (default 100 EUR, maximum 1000 EUR) for an account that has paid at least once;POST /v1/billing/account/getreturnsoverdraftCapCents.POST /v1/billing/flat-rate/createacceptsplan(starter,businessorscale, defaultstarter) and opens the Stripe checkout for that plan's price; the plan is stored when the checkout completes.POST /v1/billing/flat-rate/confirmstarts the flat rate from a completed Stripe Checkout session id, so the buyer does not wait for the webhook.POST /v1/billing/topup/confirmcredits a paid Stripe Checkout top-up from its session id without waiting for the webhook, andPOST /v1/billing/topup/createacceptsreturnTo: "onboarding"to send the buyer back to the plan page instead of the credits page.POST /v1/billing/account/set-account-typesets the account type (flat_rateorper_request);POST /v1/billing/account/getreturnsaccountType.POST /v1/sales/invoice-templates/{create,update,get,list,delete}store named invoice and credit note templates (partner, currency, payment term in days, VAT scheme, supply type, numbering, series label, order number, discount, signatures, Intrastat fields, notes and lines) that the app uses to prefill a new document.
Changed
- API calls and the app answer 402 only when the balance reaches minus the monthly cap, instead of zero, for accounts that have paid at least once.
- Flat rate plans include issued invoices (500 / 3000 / 20000 a month) instead of requests,
flat_rateAPI keys work while credits are above zero at 0.002 EUR per call instead of answering 403,per_requestaccounts pay 0.002 EUR per request with no plan fee, and the plan fieldsincludedRequests/requestOverageEurare nowincludedInvoices/invoiceOverageEur. - Included database storage now equals included file storage on every plan: Starter 1 GB (was 256 MB), Business 5 GB (was 1 GB), Scale 30 GB (was 2 GB);
includedDatabaseBytesin the billing plan list changed to match. POST /v1/account/companies/activateno longer charges 50 EUR and no longer answers 402, and archived companies are no longer charged 1 EUR per month.- Sandbox companies (
isSandbox: true) always file and send e-invoices to the administrations' test endpoints, whatever the system's or the company's environment setting says, and can switch automatic filing on for them.
Removed
- Partner fields
otherCodeandforeignTaxNumber:POST /v1/partners/{get,list}no longer return them andPOST /v1/partners/{create,update}ignore them; nothing used them.
0.3.14 - 2026-10-11
Changed
POST /v1/reference/exchange-rates/listand every currency conversion now have Bank of Lithuania EUR rates for the last 5 years, refreshed daily; you no longer need to callreference/exchange-rates/syncfor each date.
0.3.13 - 2026-10-10
Fixed
POST /v1/bank/securities/importaccepts statements larger than 1 MB; they were answered with 413 "Request body is too large".
0.3.12 - 2026-10-10
Added
POST /v1/bank/securities/importtakes an Interactive Brokers Realized Summary CSV (content, optionalfileName) for a bank account of the newtypebroker, and posts its trades, dividends, withholding tax, interest and fees to the ledger, one journal transaction per day, converted to the company's base currency at each day's rate. Shares, options and futures are matched first in, first out across imports. A position bought before the first imported statement is costed at the Interactive Brokers basis. An exercised or assigned option's premium moves into the cost or proceeds of the underlying shares, and an expired option's premium becomes the realized result. Rows already imported (same type, symbol, date and time, and amount) are skipped. Deposits, corporate actions and currency conversions are listed but not posted.POST /v1/bank/securities/listand/getreturn the imports and their operations. Posting rulessecurities.investments,securities.gain,securities.loss,securities.dividendIncome,securities.withholdingTax,securities.interestIncome,securities.interestExpenseandsecurities.feeschoose the accounts.
0.3.11 - 2026-10-10
Added
POST /v1/platform-sellers/list,/get,/create,/updateand/deleterecord the sellers on a platform the company operates, with tax residences and TINs, address, date of birth, IBAN, permanent establishments, and per year and quarter the consideration, fees, taxes and number of activities for the sale of goods, rental of immovable property (with the property address and type), personal services and rental of means of transport.POST /v1/declarations/eu/dac7/previewand/dac7/xmlbuild the yearly DAC7 platform operator report (Directive (EU) 2021/514): which sellers are reportable and why the others are excluded, and the XML file - the VMI DPI-DAC7-LT v0.4 layout in Lithuania and the EU DPI XML Schema v1.09 in Austria, Belgium, Bulgaria, Cyprus, Czechia, Germany, Estonia, Finland, Ireland, Malta, Portugal, Romania, Slovakia and Slovenia. The calendar gets a 31 January DAC7 deadline (<cc>-dac7) for companies with platform sellers; it is sent directly to VMI TIES (compliance systemlt-ties) and to the BMF DPMG web service (at-dpmg), and offered as a download elsewhere.POST /v1/declarations/eu/digital-reporting/listlists, for a date range, the intra-EU transactions that must be reported one by one from 1 July 2030 (Directive 2006/112/EC art. 262-264 as amended by Directive (EU) 2025/516): intra-EU supplies of goods, reverse-charge supplies, and acquisitions with self-assessed VAT, each with its invoice data, the Member State to report to, the deadline and the data elements still missing.POST /v1/declarations/eu/own-goods-transfers/computebuilds the monthly return of the special scheme for transfers of own goods (art. 369xa-369xk, from 1 July 2028) from stock transfers between warehouses in different Member States, valued at cost in euro per destination and dispatch Member State, with its due date.- Warehouses take and return
countryCode(POST /v1/inventory/warehouses/create,/list), and the newPOST /v1/inventory/warehouses/updatechanges a warehouse'snameorcountryCode. POST /v1/reference/vat/resolvetakesserviceKind(short_term_accommodation,passenger_road_transport) withserviceCountryCode,underlyingSupplierGaveVatNumber,underlyingSupplierChargesVat,goodsKind(installed,energy_network) andgoodsLocationCountryCode. It now applies the platform deemed-supplier rule for short-term accommodation and road passenger transport from 1 July 2028 (art. 28a, 136b), and the extended Union OSS for goods sold where they are held, installed goods and energy supplies (art. 369b(b), (d), (e), 369aa).- Payout batches (
POST /v1/bank/settlements/list,/get,/import,/post) returnclearedNet,clearingDifferenceandclearingOpenCount, and each line returnsclearingBankAccountId,clearingBooked,clearingDifferenceandclearingUnposted: for every payout line whose charge or refund was already imported from the Stripe payments export, they show the bank account holding it, the amount held there, the difference to what the payout moved, and whether that movement is still unposted. All refund lines of one charge are compared together against the refunded total of the payments export. The/postsummary returnsclearedAmount. - Bank accounts take and return
type(bankorstripe, defaultbank) inPOST /v1/bank/accounts/create,/updateand/list, and/listfilters by it. A Stripe account has no IBAN: sending one answers 422, and changing an account tostripeclears its IBAN.
Changed
- The DAC7 compliance systems (
lt-ties,at-dpmg,<cc>-dac7) no longer takeenvironmentinPOST /v1/declarations/configs/update(sending it answers 400). The DAC7 file forlt-tiesandat-dpmggoes to the test service and is marked as test data (OECD11); the file for every other DAC7 country is marked as live data (OECD1).
Fixed
POST /v1/ledger/accounts/list, the catalog item, e-commerce item and HR position responses no longer answer 500 for companies whose stored names still include Russian (ru), a language removed in 0.3.3; such names are left out oftranslationsand deleted from the database.POST /v1/bank/settlements/postno longer books a charge, refund or Stripe fee a second time when it was already imported from the Stripe payments export (POST /v1/bank/statements/import): such a line now moves its net amount out of the bank account that holds it, and the fee and receivable are not booked again. A difference between that amount and the payout line is listed inwarnings. A batch with nothing left to book is posted withjournalTransactionIdnull.POST /v1/bank/statements/importwith a Stripe payments export skips the charges, fees and refunds already posted with a payout batch, counts them inskippedand names the payouts inwarnings.
0.3.10 - 2026-10-09
Added
- Peppol sending and receiving through the company's own access point account at Recommand, Storecove or e-invoice.be: the compliance system
peppol(POST /v1/declarations/configs/update) takesprovider(recommand,storecoveore-invoice-be),accountId(the Recommand company ID or the Storecove legal entity ID; not used by e-invoice.be),apiKey,apiSecret(Recommand only),webhookSecretand optionalapiBaseUrl.POST /v1/peppol/webhooks/{provider}/{companyId}takes the access point's webhook calls for one Nordlet company, checked against its webhook secret: theX-SignatureHMAC of the body for Recommand, theX-SignatureHMAC of the canonical JSON for e-invoice.be, HTTP Basic authentication with the secret as password for Storecove. Each received document becomes a document capture withprovider: "peppol"and the new fieldsenderId, and sends the webhook eventdocument_capture.peppol_received. Without an access point, Nordlet only generates Peppol files. POST /v1/peppol/participants/lookup(withpartnerIdorparticipantId) says whether a receiver is registered on the Peppol network, which Peppol BIS Billing 3.0 documents it accepts and the address of its access point.POST /v1/sales/invoices/peppol-statusreturns and stores the delivery status of an invoice sent over Peppol (pending,delivered,rejected,failed) from Recommand or e-invoice.be, and answers 422 for Storecove, which reports delivery only through its webhook; invoices return the new fieldspeppolMessageId,peppolStatus,peppolDetail,peppolSentAtandpeppolCheckedAt, and status changes reported by the access point send the webhook eventssale_invoice.peppol_delivered,sale_invoice.peppol_rejectedandsale_invoice.peppol_failed.POST /v1/capture/documents/confirmtakestype(invoiceorcredit_note); captures carryextraction.documentType, so a received credit note is confirmed as a purchase credit note. It also takesoppositeLinesandoppositeDocumentNumber: lines with the opposite sign are saved as a second document of the opposite type for the same supplier (a purchase credit note against the new invoice, numbered "-CR" by default, or a purchase invoice next to a credit note, "-INV"), returned as oppositeInvoice. Received Peppol documents fillextraction.oppositeLineswith negative lines and allowances that no line of the same VAT rate can carry.
Changed
POST /v1/sales/invoices/peppol-sendnow sends through the company's own access point and returnsstatusanddetail; without an access point it answers 422. A refusal by the access point (for example, a receiver not on Peppol) answers 422 with the reason, and an invoice whose deliveryfailedor wasrejectedcan be sent again. In thepeppolcompliance system,provideris now one ofrecommand,storecoveore-invoice-beinstead of free text, andenvironmentis removed.
Fixed
- Peppol UBL invoices and credit notes for an intra-community supply now carry the delivery date and the deliver-to country (
cac:Delivery), which the Peppol rules BR-IC-11 and BR-IC-12 require.
0.3.9 - 2026-10-08
Added
- A new posting rule
cash.advances(2435 in the Lithuanian chart, 542 in the Romanian chart) names the account of cash advances paid to employees;/v1/cash/advance-holders/balancesand/v1/reports/advance-reconciliationcount only cash orders posted to it. - The Hungarian KSH Intrastat settings (
POST /v1/declarations/configs/update, systemhu-ksh-intrastat) take a new fieldquestionnaireMinutes, the time spent filling in the questionnaire in whole minutes; the OSAP 2010 and 2012 upload files write it intoVGEA002, which KSH-ELEKTRA requires before a questionnaire can be submitted, and the file comes with a warning while it is not set. /v1/account/api-keys/listreturns a new fieldcreatedByUserId, the user who created or rotated the key.POST /v1/sales/invoices/issuetakesreturnToStock: trueon a credit note for an invoice: the goods on its lines go back into stock at the cost they left it with on the credited invoice, and cost of goods sold (6000) is credited by the same amount. More than was sold on the invoice is refused with 422./v1/assets/settings/getand/update(autoDepreciation) and/v1/agreements/settings/getand/update(autoBilling) switch on automatic monthly depreciation and agreement billing: every night the depreciation of the previous month is posted and due agreement invoices are generated.- Purchase invoice lines take
deferralStartDateanddeferralEndDate: registering the invoice books the line to prepaid expenses (posting rulepurchases.prepaidExpenses, 2900 in the Lithuanian chart, 471 in the Romanian chart), and each month of the period is released to the line's expense account every night or withPOST /v1/purchases/deferrals/post;/v1/purchases/deferrals/listshows the schedule. POST /v1/payroll/runs/reversereverses an approved payroll run with a mirror journal entry and sets its status toreversed, so a corrected run can be created for the same month; it sends the webhook eventpayroll_run.reversed.- For a Lithuanian company,
POST /v1/payroll/runs/createwithoutlinesadds unused-leave compensation to an employee whose contract ends in the month: the remaining days of the leave balances times the average daily pay of the three months before (or the contract salary when there is no approved payroll for them), as a taxable addition. - Business trips:
/v1/hr/per-diem-rates/{create,list,delete}keep the company's daily per diem per destination country, and/v1/hr/business-trips/{create,get,list,approve,delete}record a trip; the automatic payroll run for the month a trip ends pays its approved per diem as a tax-free addition. POST /v1/bank/transactions/match-manymatches one bank payment to several invoices in its currency with one journal entry;/v1/bank/transactions/unmatchundoes all of them.POST /v1/cash/orders/createtakessaleInvoiceIdorpurchaseInvoiceId: the order posts against receivables or payables and changes the invoice's paid amount and payment status./v1/cash/expense-reports/{create,get,list}settle an employee's cash advance with the receipts paid from it (expense and input VAT debited,cash.advancescredited);/v1/cash/advance-holders/balancesand/v1/reports/advance-reconciliationreturn the new fieldsettled.- POS shifts and receipts:
/v1/pos/shifts/{open,get,list,close}and/v1/pos/receipts/{create,get,list}; closing a shift turns its receipts into one Z-report posted like/v1/pos/reports/createand returns the expected cash and the difference to the counted cash. POST /v1/partners/mergemoves every document and record of a duplicate partner, including its journal entries, to the partner kept, and hides the duplicate.POST /v1/ledger/journal/transactions/createaccepts an optionalcurrency; a currency other than the company base currency is refused with 422 instead of being ignored.POST /v1/purchases/invoices/registeracceptsreturnFromStock: truefor a credit note that credits an invoice: the goods on its lines leave the warehouse from the batches that invoice received, at their cost; the stock account is credited with that cost and any difference to the credited amount goes to cost of goods sold. More than the invoice received, or than is still in those batches, is refused with 422.- Polish employees have a new employee field,
plKodUrzedu, the 4-digit code of the tax office of their place of residence (listed byPOST /v1/hr/employees/fields, saved inpayrollOptions). POST /v1/sales/invoices/apply-advancetakes an optionalamountand applies an advance in parts across several invoices; by default it applies the unapplied advance or the unpaid balance of the invoice, whichever is smaller, reversing the advance VAT in proportion with the last part taking the remainder. Invoice responses carryadvanceAppliedAmounton advance invoices.POST /v1/bank/transactions/match,/match-manyand/recordacceptdocumentType: 'payroll_run'for an approved payroll run: an outgoing bank payment of all or part of the run's unpaid net pay is posted from the net-pay account the run was approved to (debit) against the bank account (credit), and paying more than is still owed is refused with 409;/v1/bank/transactions/unmatchreverses it, and/v1/bank/transactions/suggest-matchessuggests approved runs for outgoing payments.- Payroll runs returned by
/v1/payroll/runs/{create,get,list,approve,reverse}have a new fieldpaidAmount, the net pay matched to bank payments so far.
Changed
Estonian e-MTA filings (system
ee-emta) now go through Nordlet's own X-tee security server./v1/account/members/removenow also revokes every API key the removed member created or rotated in that company, and deleting a user account revokes that user's keys in every company; themember.removedaudit entry lists them inrevokedApiKeys./v1/hr/contracts/createnow refuses with 409 a contract for an employee who already has a contract covering any day of the new one.Document reading is not available during the free trial:
/v1/capture/documents/uploadand/v1/capture/documents/extractanswer 402payment_requireduntil the account's first top-up, and bills received at the intake e-mail address are stored unread (statuspending) so they can be read with/v1/capture/documents/extractafter the top-up./v1/payroll/runs/createwithoutlinesrefuses with 422 an employee who has more than one contract in the month, instead of answering that the run already exists.The consolidation reads
/v1/consolidation/report,/v1/consolidation/intercompany/report,/v1/consolidation/intercompany/candidatesand/v1/consolidation/intercompany/links/listnow answer 403 unless a signed-in caller is a member of every member company, or, for an API key, a user who is owner, admin or accountant in both the group owner company and each member company exists.Selling an item made by a production order (
POST /v1/sales/invoices/issue, POS reports, web-shop fulfilment, write-offs and stock counts) now takes its cost out of the finished goods account the production order put it on (2030 in the Lithuanian chart), instead of goods for resale (2040).The cost-of-goods-sold entries of a sale invoice now carry the
projectIdandcostCenterIdof the sale line, so/v1/projects/reportand/v1/reports/cost-centersshow the cost of the goods sold on a project or cost centre.Stock values are now kept in whole cents: a goods receipt, a landed-cost share, a production order's labour and scrap, and every amount taken out of a batch are rounded to cents, and a production order's
totalCostreturns cents.POST /v1/ledger/journal/transactions/create,POST /v1/migration/books/validateand/v1/migration/books/importnow refuse with 422 journal and opening-balance lines whose debit or credit has a fraction of a cent.POST /v1/ledger/journal/transactions/createand every document line input that takescostCenterId(sale and purchase invoices and the other documents) now refuse with 422 a cost center whoseisActiveis false; postings already made to it are kept.POST /v1/partners/mergeno longer fails with 409 when both partners have an open VAT review: the duplicate's open review is resolved assuperseded(sendingvat_review.resolved) and the kept partner's review stays open.POST /v1/bank/statements/importandPOST /v1/bank/transactions/importnow refuse with 422 a statement or line whose currency differs from the bank account's currency; in a camt.053 file with statements in several currencies for the same IBAN, only the statement in the account's currency is imported.POST /v1/bank/statements/importwith an ISO 20022templateIdnow accepts MT940 files, recognised by their content orformat: "mt940", and applies the template's reference matching andNtry/CdtDbtIndposting rules to their lines.POST /v1/bank/transactions/suggest-matchesnow also suggests issued advance invoices for incoming payments and sale credit notes for outgoing refunds (returned asdocumentType: "sale_invoice").POST /v1/inventory/landed-costs/createnow spreads the amount over the received quantity (or value) of the batches; the share for units already gone from stock is posted to cost of goods sold, credited to the stock account they were on, and a sold-out batch no longer answers 409. The response and/v1/inventory/landed-costs/getreturnjournalTransactionId.POST /v1/declarations/pl/pit-11/generateand the PIT-11 calendar filing now address each person's PIT-11 to the tax office of that person's place of residence, taken from the employee fieldplKodUrzedu, instead of the company's e-Deklaracje office; a person without a valid code is refused with 422.A credit note on an advance invoice (
POST /v1/sales/invoices/issue) now reverses advances received (4440 in the Lithuanian chart) instead of debiting revenue; crediting a proforma, or more of an advance than is still unapplied, is refused with 422, andPOST /v1/sales/invoices/apply-advancerefuses with 409 an advance whose credit notes cover all of its unapplied part.POST /v1/sales/acts/createand/v1/sales/acts/updatenow refuse with 422 asaleInvoiceIdthat belongs to a different partner.The
{{amount}}placeholder of the pay-now link (POST /v1/sales/invoices/payment-link,GET /v1/public/pay/{token}) is now the unpaid balance of the invoice after payments, applied advances and credit notes; both answer 409 for a fully paid invoice, whose PDF and e-mail no longer carry a pay-now line.The credit note that takes the last unapplied part of an advance invoice now reverses exactly the advance net and VAT still open; if its own VAT differs, its
vatTotal,netTotaland its last line's VAT and net are set to those open amounts at issue.POST /v1/payroll/runs/reversenow refuses with 409 a run that has bank payments matched to it; unmatch them first.POST /v1/hr/business-trips/createnow refuses with 409 a trip that overlaps another trip of the same employee, so one day never carries two per diems.POST /v1/payroll/runs/createwithlinesnow refuses with 422 a line withoutgrossfor an employee who has more than one contract in the month, instead of paying for one contract only.POST /v1/hr/contracts/createnow refuses with 400 apositionId,departmentIdorscheduleIdthat is not one of the company's own.
Fixed
/v1/assets/assets/getand/v1/assets/assets/listnow return anetBookValueof 0 for a disposed asset./v1/assets/assets/updatenow refuses a disposed asset with 409, so its cost can no longer change after the disposal was posted.- Several simultaneous
/v1/assets/assets/disposecalls for one asset now post the disposal once; the other calls get 409. - The supplier payment file from
/v1/bank/payments/exportnow cutsEndToEndIdto 35 characters, names to 70 and remittance text to 140, as SEPA allows, and refuses an invoice that is not in euros with 422. - The advance holder reports no longer count a cash salary payment or any other cash paid to an employee that is not an advance.
- A batch bought at a price with more than two decimals, such as 3 units for 10.00, could leave a cent on the stock account after it was sold one unit at a time; the last unit taken from a batch now takes whatever value is left, so the stock account and
/v1/reports/stock-balancereach exactly zero together. /v1/payroll/runs/createwithoutlinesnow pays an employee whose contract was ended with an end date inside the month, for the working days up to that date./v1/hr/contracts/endand/v1/hr/contracts/createnow refuse with 422 an end date before the contract start date.- Simultaneous
/v1/ecommerce/orders/reservecalls for different orders can no longer reserve more of an item than is on hand, and an order with several lines of one item is checked against their total. /v1/ecommerce/orders/cancelnow refuses with 409 an order that a simultaneous/v1/ecommerce/orders/fulfillhas fulfilled, so a cancelled order never has an invoice./v1/ecommerce/orders/createand/v1/ecommerce/orders/fulfillnow refuse a deleted customer with 400, as/v1/sales/invoices/createdoes./v1/partners/credit-checknow converts open invoices in other currencies to the base currency, soopenReceivablesagrees with/v1/reports/partner-balances.- A schema validation error now names the field in
fieldErrors, such asnameorlines.0.unitPriceExclVat, instead of_. - The Lithuanian VAT return (
/v1/declarations/lt/fr0600/compute) now includes the sales and output VAT of POS Z-reports dated in the period. - The Lithuanian EU sales list (
/v1/declarations/lt/fr0564/compute) now includes invoices withvatScheme: 'reverse_charge', in the services column. - The Lithuanian corporate tax return PLN204 of a micro company now adds the booked income tax (accounts 69) back to profit before tax (box 19) and shows it in
taxAlreadyBooked. - The Polish JPK_V7M and VAT-UE now take purchase invoices by registration date instead of document date, as the ledger does.
- The Latvian balance sheet row R790 now shows the year result as income less expenses, and the Latvian profit and loss rows no longer include balance-sheet accounts, so R180 carries only expenses.
POST /v1/sales/invoices/issuenow issues an invoice whose total is zero (for example a 100% discount) withjournalTransactionId: nullinstead of answering 500; the cost of goods that leave stock is still posted.lineNeton/v1/sales/acts/*is now rounded exactly like invoice lines (3 × 1.0050 gives 3.02, not 3.01).POST /v1/sales/invoices/einvoice-xmlfor Romanian companies now writes line amounts that add up to the invoice net and VAT-group totals when a discount leaves fractions of a cent (EN 16931 rule BR-CO-10).- The KSeF FA(3) e-invoice (
POST /v1/sales/invoices/einvoice-xml, formatksef-fa3) now makes the line net values (P_11) of each VAT rate add up exactly to that rate's total (P_13_x), and the rate totals to the invoice net, so a discounted invoice no longer differs by a cent between its lines and its totals; each line of a discounted invoice shows the discount inP_10. POST /v1/sales/recognition/progressat 100% andPOST /v1/sales/recognition/modifynow release exactly the deferred income posted for the line, so a foreign-currency percent-complete line no longer releases one cent too much.POST /v1/sales/invoices/peppol-xmlline amounts and VAT-group taxable amounts now add up to the invoice net total when a discount leaves fractions of a cent, soTaxExclusiveAmountequals the invoicenetTotaland noPayableRoundingAmountis written.GET /v1/public/pay/{token}now answers 404 for an invoice that is still a draft.POST /v1/purchases/receipts/createnow costs a later partial receipt of an order line at the order price; a landed cost added to an earlier receipt of the same line no longer lowers it (order 10 @ 6.00, receive 5, add 5.00 freight, receive 5: the second receipt is 30.00, not 25.00).POST /v1/hr/timesheets/generatenow creates a timesheet for an employee whose contract ends within the month, up to the end date, and covers the days of every contract the employee has in the month.POST /v1/payroll/runs/approvenow answers 422 instead of 500 for a run in which every amount is zero.POST /v1/inventory/landed-costs/createnow refuses with 422 anamountwith a fraction of a cent, instead of recording one amount and spreading a rounded one over the stock.POST /v1/capture/documents/confirmis now atomic: a failed confirmation no longer leaves thenewSupplierbehind, and two simultaneous confirmations of one capture create one invoice and answer the other with 409.POST /v1/purchases/invoices/deleteof a draft created by/v1/capture/documents/confirmnow releases the capture (status back toextracted,purchaseInvoiceIdnull), so it can be confirmed again or deleted instead of answering 409.POST /v1/bank/settlements/post: a commission worked out fromcommissionPercentis now rounded to whole cents, with the seller share taking the remainder, sosummary.commissionAmount,summary.sellerAmountand the journal entries no longer carry fractions of a cent.POST /v1/declarations/pl/jpk-fa/generatenow fillsNrFaKorygowanejwith the corrected invoice's number even when that invoice was issued before the requested period.POST /v1/reports/vat-summary,/v1/reports/vat-detail,/v1/reports/eu-purchasesand/v1/reports/ossnow report foreign-currency invoices in the company's base currency at the invoice's exchange rate, as the ledger and the VAT return do, instead of in the invoice currency.POST /v1/reports/stock-agingwith anasOfdate in the past now ages the stock as it stood on that date, so its total equals/v1/reports/stock-balancefor the same date; it used to age today's remaining stock.POST /v1/reports/online-salesnow returns one row per channel and currency, with a newcurrencyfield, and values each order in whole cents the way an invoice with the same lines is totalled; it used to add up unrounded line amounts across currencies.POST /v1/reports/fecnow files bank transactions in theBQjournal, cash orders inCAand payroll runs inPAIE; they were all written toOD.POST /v1/declarations/pl/jpk-kr/generatenow marks everyZOiS,DziennikandKontoZapiselement withtyp="G", as the JPK_KR(1) schema requires; earlier files failed schema validation.POST /v1/declarations/pl/jpk-mag/generatenow reports a stock-take shortage as RW and goods transferred into a warehouse as PW.POST /v1/production/orders/completecalled twice at the same time now completes the order once; the second call gets 409.- POS Z-reports (
/v1/pos/reports/create,/v1/pos/shifts/close) now take a set's product components out of stock instead of leaving them in stock or refusing the report with 422. /v1/ecommerce/orders/reserveand/v1/ecommerce/orders/fulfillnow reserve and consume a set's product components, matching the availability/v1/ecommerce/products/listreports; service lines no longer reserve or consume stock.POST /v1/pos/reports/createnow requirescashAmountpluscardAmountto equal net plus VAT exactly; a mismatch, including a fraction of a cent, answers 422 instead of 500.POST /v1/ledger/owners/createand/v1/ledger/owners/updatenow answer 422 whenequityAccountCodenames an account that is not in the company's chart of accounts.