Etsy — an international marketplace for handmade products, original designs, vintage items, and craft supplies. Torgsoft can be used to manage products and Etsy orders, control stock levels, reserve sold items, and prepare them for shipment.
Automatic data exchange requires the «Online Store Synchronization» option, a dedicated exchange service developed for this purpose, and authorized access to Etsy Open API v3. The service must transfer the available product quantity from Torgsoft to Etsy, receive orders, and convert them into a format accepted by the software.
The reviewed Torgsoft documentation and the list of options for 2026 do not include a ready-made Etsy integration. The method for developing one based on the existing Torgsoft synchronization functionality is described below. Software configuration and exchange service programming are separate stages of the connection process.
What products can be sold on Etsy
Etsy allows products that the seller has made, designed, personally selected, or sourced in accordance with the platform’s rules. These may include jewelry, ceramics, decor, clothing of the seller’s own design, and craft supplies. Vintage items must be at least 20 years old. For products manufactured by a third party based on the seller’s own design, information about the production partner must be disclosed.
Before connecting, each product category should be checked against Etsy’s rules for permitted products. The presence of a product in Torgsoft does not confirm that it is permitted to be listed on Etsy.
How the data exchange should work
The connection requires a separate exchange service — software developed to operate between Torgsoft and Etsy. It reads Torgsoft exports, communicates with the Etsy API, and prepares order files for import into the accounting system.
| Area of operation | Responsible system | What happens |
|---|---|---|
| Inventory management | Torgsoft | Receiving, transfers, reservations, shipments, and product returns. |
| Marketplace sales | Etsy | Listings, product selection by the buyer, order placement, and payment. |
| Data transfer | Exchange service | Product matching, stock updates, order downloads, and error checking. |
The quantity available for sale must be determined using Torgsoft data, taking into account reservations and Etsy orders that have not yet been imported. The publication price can be taken from Torgsoft according to an agreed rule. The order must retain the actual purchase price on Etsy, including any applied discount.
Step 1. Prepare products and define the warehouse
Before developing the exchange service, the actual availability of products must be checked and inventory discrepancies corrected. Next, define the accounting center from which Etsy orders will be fulfilled.
Each product and each of its inventory variants requires a separate accounting item. For example, a white T-shirt in size M and a white T-shirt in size L must have their own identifiers and stock balances. The Etsy item number, or SKU, must uniquely identify the corresponding item.
The export should include the product key GoodID, item number, name, price, quantity, required characteristics, and photographs. A stable GoodID is important for the exchange: the product name may change, but the link to its accounting item must remain intact.
If a product is made to order, the permitted number of orders and production time must be defined separately. The quantity of raw materials in stock is not equal to the number of finished products available for immediate shipment.
Step 2. Configure file exchange in Torgsoft
The described setup requires the «Online Store Synchronization» option. After activation, the «Warehouse → Online Store Synchronization» menu becomes available.
- Create a synchronization object with a name that clearly identifies the Etsy shop.
- On the «Accounting Centers» tab, select the warehouses whose stock may be transferred for sale and check the «Write off product from» parameter.
- Configure the information delivery address for file exchange with the service prepared by the developer.
- In the product file settings, select the required fields and enable generation of column names. This will help the service recognize the data correctly.
- Select UTF-8 encoding and agree with the developer on how it will be processed. Torgsoft documentation requires a BOM for an order text file in this encoding.
- Configure reservation of invoice items and the synchronization schedule.
Torgsoft can export products to the TSGoods.trs file — CSV with the ; delimiter, or in YML format. For the initial connection, it is convenient to agree on one format and a fixed set of columns. The order and composition of fields are configured in the software.
The service must retrieve this file, convert the records into Etsy requests, and return orders in .sal files. Etsy itself does not process such Torgsoft files. All conversions are performed by the developed service.
The absence of an item from the next export must not automatically be treated as a command to delete the listing. The developer must define separate rules for zero stock, exclusion of a product from synchronization, and file retrieval errors.
Step 3. Obtain access to the Etsy API
Etsy offers different levels of access. Seller App is intended for the seller’s own shop. For a service that will be connected by different sellers, the developer starts with a Personal App. Commercial Access must be obtained for use by multiple shops; Etsy reviews such applications manually.
The application type must be selected according to its actual purpose. Access conditions are described in the Etsy Open API v3 documentation.
The shop owner authorizes access through OAuth 2.0 with PKCE: they open the Etsy page and approve the application permissions. The service must store the obtained tokens and renew access using the refresh token.
Reading listings requires the listings_r permission, modifying them requires listings_w, and retrieving orders requires transactions_r. Sending shipment data requires transactions_w and separate Etsy approval for the corresponding method.
Each API request must contain x-api-key in the keystring:shared_secret format. Protected operations also require the Authorization: Bearer … header. Details are provided in the authentication instructions. The Etsy account password does not need to be provided to the service.
Step 4. Match Torgsoft products with Etsy listings
For the initial launch, listings already prepared by the seller on Etsy can be used. The developer links their product variants to Torgsoft items and verifies that the item numbers match.
One Etsy listing may contain several variants. Therefore, the connection must store the shop shop_id, listing listing_id, and the corresponding Etsy product variant. Each Torgsoft inventory variant must correspond to a specific combination of characteristics.
Example of matching using sample identifiers:
| GoodID in Torgsoft | SKU on Etsy | listing_id | Variant |
|---|---|---|---|
| 201 | TSHIRT-WHITE-M | 1234567890 | White, M |
| 202 | TSHIRT-WHITE-L | 1234567890 | White, L |
| 203 | TSHIRT-BLACK-M | 1234567890 | Black, M |
If an unknown SKU or variant is received in an order, the service must stop importing that order and display the reason. Automatic matching by a similar name may result in the wrong product being written off.
What is needed to create listings automatically
This stage can be added after stock and order processing have been verified. For a physical product, Etsy requires a name, description, price, quantity, and its own parameters:
| Etsy field | What must be defined |
|---|---|
taxonomy_id |
Category according to the Etsy taxonomy. |
who_made, when_made |
Who made the product and when. |
shipping_profile_id |
Shipping profile. |
readiness_state_id |
Order processing profile with product readiness and preparation time. |
| Images | At least one image for an active listing. |
Common rules can be stored in the service settings, while differences between specific products can be stored in product characteristics or a mapping table. The seller must verify the description and photographs before publication. The creation procedure is described in the Etsy listings documentation.
Step 5. Import orders into Torgsoft
The service must regularly retrieve orders through the API. If webhooks — automatic Etsy event notifications — are available for the application, processing of order.paid can be added. After receiving the notification, the current order data must be downloaded. Etsy also documents cancellation, shipment, and delivery events.
Webhooks require a publicly accessible receiving address and verification of the request signature. Their availability for the selected application must be checked during registration. Periodic order retrieval should be retained to recover missed events. The requirements are described in the webhooks documentation.
Before creating a file for Torgsoft, the service checks the payment status, order contents, matching of all products, currency, and recipient address. A custom order number should be generated from shop_id and receipt_id to distinguish orders from multiple shops.
Example order file
Below is an example of a .sal text file with sample data. The GoodID value must be replaced with the key of the actual product. The service obtains the recipient data, order number, price, and quantity from Etsy.
[Client]
Name=Recipient’s name from Etsy
Country=Germany
City=Berlin
ZIP=10115
Address=Recipient’s address from Etsy
[Options]
OrderNumber=etsy-12345678-987654321
SaleType=5
CurrencyInternationalCode=USD
Comment=Etsy: buyer payment confirmed; shipment awaiting processing
[1]
GoodID=201
Price=35,00
Count=2
In this example, SaleType=5 creates an invoice. Indicating payment in the comment does not itself perform a financial transaction. This option is suitable for initial import testing when payment and shipment are still processed by an employee.
The documented Torgsoft format also supports other scenarios:
| SaleType | Import result |
|---|---|
| 1 | Creates a preliminary order from which an invoice can be issued. |
| 2 | Creates an invoice with 100% prepayment. |
| 3 | Creates an invoice with 100% prepayment and a goods issue note. |
| 5 | Creates an invoice without a preliminary order. |
For automatic accounting of a paid purchase, SaleType=2 can be considered after the financial settings have been verified. SaleType=3 also means shipment of the product, so its use must be tied to an agreed warehouse operation. A payment event on Etsy does not confirm that the parcel has been handed over to the carrier.
The documentation contains a warning: the SaleType=2–5 scenarios assume that the required product is available; if it is not, a negative stock sale may occur. The available quantity must be checked before import. Support for the order currency through CurrencyInternationalCode has been documented since database version 493.
The file must be written completely before it becomes available for import. The file name must consist of ASCII characters. For UTF-8, Torgsoft’s BOM requirements must be met. Before launch, the developer checks the import using the installed software version.
How to update stock without reselling reserved products
After an invoice is created, the product must be reserved. Torgsoft provides the «Reserve invoice items» setting for this purpose. The reservation period must cover order preparation; a paid product must not become available for sale again because this period has expired.
The following rule should be defined for the exchange service:
Quantity for Etsy = max(0, physical stock − reservations − Etsy orders not yet recorded in Torgsoft − safety stock)
This is the recommended calculation rule for the integration. First, it is necessary to check whether the exported quantity field already accounts for reservations. One reservation must reduce the available quantity only once. After import is confirmed, the temporary reduction on the service side is replaced by a reservation or write-off in Torgsoft.
For example, out of 10 finished products, 2 are reserved and another 1 has been paid for on Etsy and is awaiting import. If the safety stock is 1, 6 products are available for sale. This example assumes that the initial 10 is the physical quantity before reservations are deducted.
Before increasing the quantity on Etsy, the service must process new orders and use the current Torgsoft export. Otherwise, an outdated file may return a newly purchased product to sale. Periodic synchronization cannot completely eliminate simultaneous purchases through different channels; scarce items require safety stock or separate inventory allocated to Etsy.
Etsy variants are updated through updateListingInventory. This method requires the complete set of product variants in the listing. The service must store all combinations and correct rules for how price, quantity, and SKU depend on characteristics. Details are provided in the Etsy inventory update description.
What to do with cancellations and returns
If an order is canceled before shipment, the corresponding reservation must be removed after the status is verified. If the product has already been shipped, its warehouse stock may be increased only after the actual return and completion of the corresponding document in Torgsoft.
Importing a new order through .sal does not confirm the ability to automatically modify previously created documents. Processing of cancellations and returns must be developed separately through a supported mechanism or left to an employee with a notification about the required action.
How to account for payment and send the tracking number
The settings must separately define the publication price, the sold product price, the order currency, and the procedure for accounting for settlements with Etsy. Discounts, shipping, taxes collected by the platform, and fees must be processed according to separate rules. The total order amount should not be transferred in the product price field.
Buyer payment on Etsy and payout of funds to the seller are different financial events. Automatic creation of prepayment in Torgsoft must be configured so that the subsequent payout does not create duplicate income. File import of a product order by itself does not provide reconciliation of fees and payouts.
After shipment, the service can send the carrier and tracking number to Etsy through createReceiptShipment. Etsy approves access to this method separately: Commercial Access and the transactions_w permission do not guarantee its availability. Until permission is obtained, the seller adds shipment information in the Etsy account.
Purchasing Etsy Shipping Labels through Open API v3 is not supported. The limitation is described in the order fulfillment documentation.
What the developer must provide for daily operation
- Protection against duplicate imports using the
shop_id + receipt_idpair. A repeated event or request must not create another invoice. - Tracking of processing states: order received, file prepared, sent for import, document creation confirmed. Transferring a file does not mean that the import was successful.
- Reconciliation by order number after a failure. If the import result is unknown, first find the document in Torgsoft and then decide whether another attempt is required.
- Sequential updating of each listing and verification that the data is current before changing the quantity.
- An error log containing the order number, product, reason, and required employee action. Passwords and tokens must not be written to the log.
- Monitoring the time of the last successful export, order retrieval, and Etsy update. If there is a prolonged delay, an employee must receive a notification.
Etsy limits the number of API requests per second and per day for an application key. The service must account for its quotas and handle the 429 response with a delay according to retry-after. Quota values must be checked in the developer account and response headers, as described in the request rate limit rules.
The exchange must operate through an authorized API and comply with the Etsy terms. Buyer data must be used only within the scope of permitted service. Sending it to advertising services and unsolicited marketing messages is prohibited. For a commercial application, access to buyer_email is requested separately; the import must not depend on this field being mandatory.
What to verify before automatic launch
The first launch should be performed on a small group of finished products with already verified listings. The following scenarios are required for acceptance testing:
- One paid purchase creates one document with the correct product, quantity, price, and currency.
- Receiving the same purchase again does not create a duplicate.
- Reservation reduces the quantity available for Etsy once.
- A sale in the physical store changes the stock quantity transferred to Etsy.
- Zero quantity stops sales of the corresponding variant without losing the other variants in the listing.
- An unknown SKU and insufficient stock stop automatic processing and display the reason.
- Cancellation, reservation expiry, and returns are processed according to the agreed rules.
- After a connection interruption, the service downloads missed orders and reconciles them before updating stock.
Go back to the previous step