Are you planning to connect an external application to ABRA Flexi? This guide will walk you through the modules (records) most commonly used in such integrations.
Before you start, we always recommend reading the API documentation (or how to get started with the API), where you will find a full description of all processes that can be carried out via the API.
A complete overview of all available records can be found in the so-called evidence-list in our web application. The machine name (i.e. the API name) is what you include in the corresponding URL.
How to construct such a URL is covered in a separate guide. You should also familiarize yourself with the supported formats. If we were to highlight a few additional useful features when building a URL, you will find filtering and detail levels particularly helpful — though the entire API reference and XML file examples will come in handy as well.
We also have a general guide for migrating data from another system. However, that guide is primarily focused on switching accounting systems and the associated data transfer processes.
It is also worth noting that in order to authenticate individual requests from your external application, you need a so-called API user account. For more information, please refer to our pricing page, or contact our sales department.
Data Transfer
The most common integration is connecting the ABRA Flexi accounting system with an e-commerce store. However, there are many other types of integrations — for example, with warehouse management systems, shipping software, CRM systems, and more. All of these involve working with data that you transfer between systems.
Some data is transferred from an external application into Flexi, while other data is transferred out. If your external application needs to be notified about changes to specific data in Flexi, you can use the so-called WebHooks.
Orders
Transferring orders from an e-commerce store into Flexi is arguably the most common integration scenario. Orders are most frequently transferred automatically — either one at a time or in batches.
Endpoint
/objednavka-prijata
Example URL
Example request
<winstrom version="1.0">
<objednavka-prijata>
<id>code:OBP0080/2021</id>
<datVyst>2021-06-16</datVyst>
<sumCelkem>1000.0</sumCelkem>
<sumCelkemMen>0.0</sumCelkemMen>
<mena>code:CZK</mena>
<firma>code:2776</firma>
<popis></popis>
<polozkyDokladu>
<objednavka-prijata-polozka>
<nazev>testovaci_polozka</nazev>
<cenik>code:TEST</cenik>
<sklad>code:PLZEŇ</sklad>
<mnozMj>1.0</mnozMj>
<cenaMj>300</cenaMj>
<mena>code:CZK</mena>
</objednavka-prijata-polozka>
</polozkyDokladu>
</objednavka-prijata>
</winstrom>
When transferring an order, you can also immediately fulfill it, or place the order items with a supplier.
Invoices
Transferring invoices from an e-commerce store is likely the second most common process. If you are only transferring invoices, you are probably skipping the order transfer step.
Endpoint
/faktura-vydana
Example URL
By default, an invoice generates a warehouse document — specifically a stock issue. This setting can be changed in the invoice type settings.
Address Book
An order or invoice (or any document in general) also carries customer information. This information is stored in the address book. All other business partners — such as suppliers — are stored there as well.
Endpoint
/adresar
Example URL
Example request
<winstrom version="1.0">
<adresar>
<id>code:ABRA</id>
<nazev>ABRA Software a.s.</nazev>
<ic>25097563</ic>
<dic>CZ25097563</dic>
<ulice>Jeremiášova 1422/7B</ulice>
<mesto>Praha</mesto>
<psc>155 00</psc>
<stat>code:CZ</stat>
</adresar>
</winstrom>
Address book entries can be created together with a document (order, invoice) in a single request.
Price List
Do you need to synchronize a price list (or product catalog) to or from Flexi? Then you are looking for the price list record.
Endpoint
/cenik
Example URL
Example request
<winstrom version="1.0">
<cenik>
<kod>TEST</kod>
<nazev>testovaci_polozka</nazev>
<cenaZakl>263.5</cenaZakl>
<typCenyDphK>typCeny.bezDph</typCenyDphK>
<typZasobyK>typZasoby.zbozi</typZasobyK>
<typSzbDphK>typSzbDph.dphZakl</typSzbDphK>
<skladove>true</skladove>
</cenik>
</winstrom>
Stock items in the price list are linked to stock cards, which track the current inventory levels for those items.
Individual Price List
An individual price list can also be uploaded to Flexi. It can be tied to specific companies, groups of companies, or currencies. You can upload individual purchase prices and individual sales prices.
Sales prices endpoint
/odberatel
Example URL
Example request
<winstrom version="1.0">
<odberatel>
<prodejCena>0.5</prodejCena>
<cenik>code:TEST</cenik>
<firma>ABRA</firma>
<mena>code:EUR</mena>
</odberatel>
</winstrom>
Purchase prices endpoint
/dodavatel
Example URL
Example request
<winstrom version="1.0">
<dodavatel>
<cenik>code:TEST</cenik>
<firma>code:DODAVATEL</firma>
<nakupCena>200</nakupCena>
<mena>code:CZK</mena>
</dodavatel>
</winstrom>
Individual price lists can also be configured directly within the application. A guide is available for this as well.
Stock Cards
For stock cards — particularly in e-commerce scenarios — a common use case is retrieving current stock levels from Flexi using stock cards.
Endpoint
/skladova-karta
Example URL
Stock cards are generally not used for importing data — instead, they are used to retrieve current stock levels. Stock cards in Flexi do not affect inventory levels; only stock movements do. If you need to adjust inventory levels via import, import stock movements instead.
Stock Movements
Stock receipts and stock issues. These are the documents that affect inventory levels. They are useful when integrating with warehouse management and shipping systems.
Endpoint
/skladovy-pohyb
Example URL
Example request
<winstrom version="1.0">
<skladovy-pohyb>
<id>code:S-0093/2021</id>
<datVyst>2021-08-09</datVyst>
<sumCelkem>10000.0</sumCelkem>
<mena>code:CZK</mena>
<firma>code:ABRA</firma>
<polozkyDokladu>
<skladovy-pohyb-polozka>
<nazev>testovaci_polozka</nazev>
<cenik>code:TEST</cenik>
<sklad>code:PLZEŇ</sklad>
<mnozMj>1.0</mnozMj>
<cenaMj>300</cenaMj>
<mena>code:CZK</mena>
</skladovy-pohyb-polozka>
</polozkyDokladu>
</skladovy-pohyb>
</winstrom>
Stock movements are typically generated directly within Flexi. However, shipping and warehouse systems often need to create them or retrieve information about them.
That covers the core records you will use when connecting an external application. Many more records are available via the API — you can find all of them here.
Before you start, we always recommend reading the API documentation (or how to get started with the API), where you will find a full description of all processes that can be carried out via the API.
