1.Introduction
This is the manual for the integration between Shopify and SnelStart.
Are you using the Shopify POS then the sales from this POS of one day can be placed as one cash entry in SnelStart. This option can be requested via webcare@webwinkelfacturen.nl. Additional costs are associated with this option. It is also possible to process payments for the Shopify orders to SnelStart. This can be requested via webcare@webwinkelfacturen.nl. Additional costs will be charged for this option.
- This integration is a financial integration. It is not a logistics integration. The integration is not suitable for updating customers in SnelStart, printing packing slips, or synchronizing products/inventory. The integration works only with the payment status in the Shopify order, where you can configure which statuses should trigger forwarding the order (for example 'processing', 'paid' / 'refund'; multiple statuses are possible).
- An order is forwarded to SnelStart only once. Changes made after the order has been forwarded will not be applied in the accounting system. Any adjustments must therefore be handled via the refund process in Shopify or updated manually in SnelStart.
- This integration does not replace the work of an accountant. It saves time because you no longer have to retype documents. The accountant is still needed for advice, expertise, and control.
- Tip: Other customers using this integration found the tips in the FAQ for Shopify and in the FAQ for SnelStart.
You install this integration from the Shopify App store. If you search for webwinkelfacturen, our apps will appear automatically. You can recognize us as a supplier by the blue gear icon. If you click on the App, you will see a description and the Add app button. Upon activation, you will be automatically guided through the configuration screens.
When you click the Add app button, you must first authorize the integration to read and possibly even write data from your webshop. This is indicated in the next screen. You also need to approve the monthly fee for the integration. Once you have approved the monthly fee, the connection with Shopify is established and you will be automatically redirected to your personal dashboard.
The installation is complete when both connection dots are green, and the settings in the Configuration tab have been entered and saved.
Important: Once the integration is installed, always log in to the dashboard via https://uwkoppeling.webwinkelfacturen.nl, and not via the appstore
There is a 30-day free trial.
The integration is a real-time integration. Once an order has reached a certain status, it will be processed to your accounting system as quickly as possible.
If you want to install another integration, you can do so in the same way. Make sure you are logged out of the integration dashboard and preferably start the new installation in an incognito browser.
If you want to terminate the integration, you can simply remove the app from the app store in your backend.
Are you switching to another accounting system and want to create a new integration? You can install the new app from the app store in your backend. Make sure you are logged out of the dashboard of the old integration and preferably start the new installation in an incognito browser.
Are you switching to another webshop system? Via our integrations page you can see whether you install it from the relevant app store, or by means of an installation link.
Has the installation been successful, but do you see in the dashboard of the integration the old license key still present when you click the dropdown arrow next to the key (even though that app/key has been deleted)? If so, please send us an email requesting that the old key be removed.
2.How the integration works
Shopify works with webhooks. We receive a notification whenever a new order is created in your webshop or when an order is changed. If the order order can be processed—this depends on the status—the integration places the order order in the processing queue. Depending on the processing queue's volume, the order will be processed quickly or slightly later. Generally, queues move quickly.
In addition to the webhooks, a sweep is done daily. This means that the integration checks daily whether all webhooks have been received correctly. If any webhooks are missed, those orders are still retrieved and forwarded.
Read more How the integration works .... Read less How the integration works ....
x
When processing daily revenue, the integration creates a cash entry containing the sales and payments of the previous day. This can be split by VAT rates or based on categories.
Note: Foreign orders are never part of the daily invoice. Foreign orders are orders delivered outside the country of the webshop. If a daily invoice is chosen, payments can no longer be processed separately. That option will no longer be available.
At the start of processing an order, we perform a number of checks on the Shopify order:
- It is checked whether the total of the Shopify order is equal to the sum of the amounts in the order lines plus the shipping cost amount.
- If the order is an ICP order, the VAT number is checked.
- It is checked whether a corresponding VAT code exists in SnelStart for the VAT in each line.
- It is checked whether the order has not already been processed.
A payment is only added if the status of the payment is succes. A payment is only processed if the corresponding order has been processed first.
Processing a Shopify order to SnelStart takes place in three steps:
- It is checked if the customer already exists in SnelStart. If not, the customer is created. Matching is based on the email address.
- When processing to SnelStart orders, it is checked whether the products from the Shopify order are already present in SnelStart. Missing products are created.
- The SnelStart transaction (financial entry, order) is created and processed.
When processing a payment, the integration first looks up the outstanding item in SnelStart that belongs to the invoice. The integration uses the following criteria to search for the outstanding item:
- A match is performed on the amount
- If a customer email address is available, a match is performed on this email address
- A match is performed on the order number and the description in the payment
After the order has been forwarded and a success message from SnelStart has been received, the order is marked as handled. The Shopify order appears at the Reporting tab on the dashboard.
If SnelStart returns an error while processing the order, the order appears in the Errors tab on the dashboard. Via the yellow button More info more information about the problem can be found. Via the red button Report problem can the order with all necessary information easily be submitted to us after you have tried to resolve the problem yourself. If the problem is solved, in some cases the orders can be processed again with the blue Process button.
When forwarding the payment, the payment is also registered so that it cannot be processed again. Payments can also be reviewed via the dashboard.
Data
Information about the data that is processed can be found in the section Day-to-day: To SnelStart later in the manual.
3.Required: Snelstart API key
To establish the connection with your Snelstart account, you need to create a special key. This key is a secret key that authorizes the integration to read from your Snelstart account and, for example, add debtors and sales entries to your account. Essentially, the key is a special password for the connection.
You create the key depending on your Snelstart administration. Therefore, ensure that you check that you create the key for the administration in which you want to book the revenue.
To create the key for Snelstart, log in to the web version of Snelstart at https://web.snelstart.nl. Go to the 'Connections' menu item and search for 'Webwinkelfacturen'. Various tiles for different systems will now appear. Look for the tile for Shopify.
Now click on Generate the key. Copy this key and save it. You will need to enter it later during the installation of the connection.
4.Installation
Activating the integration now continues with:
1. Accepting the terms and conditions.
2. Establishing the connection with SnelStart. This authorizes the integration to write transactions to your SnelStart administration and read information.
3. The configuration itself.
Read more Installation ....Read less Installation ....
Before the integration can be used, the terms and conditions must first be accepted. The terms and conditions are based on the general ICT Terms and Conditions (industry organization) and the general GDPR guidelines.
SnelStart connection
You establish the connection with SnelStart via the key you determined in the previous step. Click the red Connect button next to SnelStart. You can now enter the key in the popup window.
You can specify which statuses orders should be processed to SnelStart. You can select multiple statuses. The integration will never forward orders twice. The integration is protected against this.
It is possible to set a journal. If you process to SnelStart financial entries, setting it is optional, and you fill in Debtors. Invoice layout
When processing to SnelStart orders, an invoice layout can be selected. This is not mandatory.
When configuring the VAT rates and general ledger accounts, a link is created between the VAT rates in webshop and the VAT codes and revenue accounts in SnelStart. You can always make changes by clicking the blue 'Edit' button and selecting an option from the drop-down menus.
In the VAT rates, the integration shows a standard list of VAT rates and all EU countries. By default, the Dutch or Belgian VAT rates are filled in. The VAT percentages can be adjusted. For example, in the case of OSS, the German high VAT percentage can be adjusted to 19%.
It is possible to work with the VAT rates in the webshop. You can adjust this at the Configuration tab of the dashboard, under the option All Settings > Contract. Intra-Community (ICP) and international deliveries
The Intra-Community supplies / ICP option is intended for business-to-business deliveries within the EU. These sales are invoiced with 0% VAT. A VAT number from the customer is required. The International option applies to deliveries outside the EU. For these sales, the integration expects 0% VAT; otherwise, the sales cannot be processed. Separate VAT codes and general ledger accounts can be configured for both ICP and international deliveries.
Once the VAT settings have been configured and saved, you will always see the selected VAT rates. If you want to start over, you can use the grey 'Remove VAT settings' button. Your current settings will then be deleted and you can begin again.
You can create a link here between the payment methods in the webshop and a fixed debtor in your SnelStart administration. Orders with a payment method from the list will then always be posted to this debtor. In that case, no new debtors will be created.
Note: It is not possible to set fixed debtors for ICP orders. For an ICP order, a valid VAT number must be transmitted. Therefore, a debtor will always be created in SnelStart for an ICP order.
Please note: Unfortunately, Shopify does not allow us to read the payment methods you use in your webshop. Therefore we work with a fixed list of payment methods. It may be that there are payment methods listed that you do not use and that there are payment methods not listed that you do use. There is a workaround for this, described in this faq.
When processing payments, a clearing account of type Payment methods is set in SnelStart. When setting up the clearing accounts, there is no (longer a) possibility to post to fixed debtors per payment method.
It is possible to process the revenue based on product categories. You can set the ledger accounts here. We advise a maximum of 40 categories and there is a technical maximum of 99 categories. When setting accounts for categories, these take preference. The revenue accounts for the VAT rates will be canceled.
When processing to Snelstart orders, a product is provided instead of a revenue account. Within Snelstart, this product is linked to a product account. Therefore, posting to categories is not possible when processing to Snelstart orders.
5.Day-to-day: From Shopify
Once an order has been processed, it cannot be processed again. Any order changed in the webshop after it has been processed will not be updated in SnelStart.
The integration performs an extra check for orders in the Shopify webshop that are loaded from Bol.com or Amazon. This loading happens via an external app that the Shopify merchant can enable. For these imported orders, the integration performs an extra check whether the VAT is present in the order. If not, the order will not be processed. See our FAQ for more information.
Old orders processing
It is possible to process orders that are already in the Shopify webshop via a migration. You can request this via webcare@webwinkelfacturen.nl. We ask a modest fee for this. We cannot process orders from more than two years ago.
Note: Because the Shopify integration works with webhooks, you should not import orders retroactively in your Shopify webshop after activating the integration. If you do this and for example import 500 orders at once or change the status of 500 orders, our platform will receive all these changes and start processing them. This creates a disproportionate load on our network.
Processing daily revenue
When processing daily revenue, the integration retrieves the receipts from the previous day from the POS system in the morning. The integration combines these receipts into one cash entry and places it in SnelStart.
Payments (if activated)
When processing payments, the integrations checks daily the Shopify orders that have been successfully processed to SnelStart. If the order has a valid payment—a transaction with the success status—then that payment will also be processed to SnelStart. Checking Shopify orders is performed six times per day.
Note: The integration does NOT process payments for returns. This is because returns often don't go through the payment integrations, resulting in incorrect payments being processed in SnelStart.
If you want the integration to process refunds in addition to orders, you can enable the status refund or partially_refunded in the Configuration tab under Status process sales. Refunds must be created correctly in Shopify, meaning the refund must be applied to the order lines. Unfortunately the integration cannot process a refund that only contains an amount. For more information see: FAQ.
Please note: For refunds, the integration goes back a maximum of 30 days in time. Also, the integration only processes a refund if the integration has previously processed the order to which the refund relates.
The integration will not read or pass many fields from a Shopify order to SnelStart. In particular, the note_attribute fields and the custom fields are not included. This is because different webshops use these fields differently. Because our integrations must work for all webshops, we cannot configure this for individual merchants.
Pay special attention to fields that are added via a plugin. There is a significant chance that the integration will not process these fields.
| Below is an elaboration at field level when retrieving orders. The general values in the order and the order rules are discussed, the shipping costs and the debtor details. | ||
| Name field | Values from Shopify order | |
| Order-identifier | [id] | |
| Order number | Is determined as follows:
|
|
| Invoice number | Is determined as follows:
|
|
| Booking date | [created_at] | |
| Order date | [processed_at] | |
| Status order | [financial_status] | |
| Payment status | if the status of the order is paid then paid, otherwise no payment status | |
| Payment reference | [order_number] | |
| Affiliate number | Is determined as follows
|
|
| Valuta | [currency] if present | |
| Payment method | field [gateway] in [transactions] | |
| Order total incl. VAT and discounts | [total_price] | |
| Total VAT order incl. discounts | Value in [total_tax], or, if that value is 0, the value from [current_total_tax]. When using [current_total_tax], there's an additional check. The VAT lines in the order must add up to the value in [current_total_tax]. | |
| Order total excl. VAT and discounts | Difference between the two lines above | |
| ICP indication | The integration determines as follows whether it concerns an ICP order:
|
|
| International indication | The integration determines as follows whether it concerns an international order:
|
|
| Discounts |
Discounts are determined as follows:
|
|
| To read the order lines, the integration retrieves the [line_items] field. Multiple order lines can be included in the order, and the integration reads these lines one by one. | ||
| Name field | Values from Shopify order line | |
| Productid | [product_id] | |
| categoyid | Category associated with the product | |
| Amount | [quantity] | |
| SKU | [sku] | |
| Description | [name] | |
| VAT percentage |
The VAT percentage is determined as follows:
|
|
| Amounts excl. VAT |
The amounts excluding VAT are determined as follows:
|
|
| Amounts incl. VAT |
The amounts including VAT are determined as follows:
|
|
| Discount in order line |
The discount in the order line is determined as follows:
|
|
| VAT code and accounts SnelStart | These are determined based on the settings, the VAT percentage and the delivery country. This also takes into account whether it is an ICP or international order. When processing by categories, the revenue account of the category is used. This can be set via the dashboard. When processing to Snelstart orders, a product is provided instead of a revenue account. Within Snelstart, this product is linked to a product account. Therefore, posting to categories is not possible when processing to Snelstart orders. |
|
| To read the shipping costs, the integration uses the field [shipping_lines]. There can be multiple shipping lines. For the name and VAT percentage only the first line is used, while the amounts from all shipping lines are summed. In most cases there will be only one shipping cost line. | ||
| Name field | Values from Shopify order line | |
| Description | [title] from the first shipping cost line | |
| VAT percentage | Sum of the values in field [rate] from the [tax_lines] in the first shipping cost line. | |
| Shipping costs excl VAT |
The shipping costs excluding VAT are determined as follows:
|
|
| Shipping costs incl VAT |
The shipping costs including VAT are determined as follows:
|
|
| VAT code and accounts SnelStart | These are determined based on the settings, the VAT percentage and the delivery country. It also takes into account whether it is an ICP or international order. | |
| Name field | Values from Shopify customer |
| If present [email] otherwise [contact_email] | |
| Invoice address |
If present based on [billing_address] in the Shopify order
If there is no billing address and no shipping address, the information in [customer] and [customer][default_address] is checked. |
| Shipping address |
If present based on [shipping_address] in the Shopify order
|
| VAT number |
The VAT number is determined as follows:
|
| This is used when payments are processed separately to SnelStart. This option can be requested via webcare@webwinkelfacturen.nl. Additional costs are associated with this option. | |
| To determine the payment details, the integration uses the field [transactions]. Multiple payments may have been made for an order, so with multiple payment methods. At this moment, only the first payment is used, so [transactions][0]. | |
| Name field | Values from Shopify order |
| The paid amount | [amount] |
| Valuta | [currency] |
| Payment method | [gateway] |
| Status | [status] |
| Transaction-id | [authorization] |
| Payment date | [processed_at] |
6.Day-to-day: To Snelstart
The synchronization of data between Shopify and SnelStart is as follows.
The orders are imported into SnelStart as orders or financial entries.
By default, the integration is set up to create financial entries. This choice can be changed in the contract settings in the dashboard, Configuration tab, or can be requested from us via email. To process to orders, the InBalans or InZicht package is required. For processing to financial entries, InKaart is also suitable in addition to these packages.
When processing customer information, it is first checked whether the customer has been processed before. If so, this SnelStart debtor is used as the debtor for the SnelStart transaction. If the customer is not yet known, they are added to SnelStart. Matching is based on email address. Please note: The integration only creates debtors. The integration does not modify debtors.
Shipping address With the SnelStart orders option, the integration includes a separate shipping address with the order, provided the shipping address differs from the billing address.
If the orders are processed to SnelStart orders, the integration first checks whether the products from the order already exist in SnelStart. The integration then adds missing products to the accounting system. If a product already exists in SnelStart, the product is not added again.
The rules for matching products between Shopify and SnelStart can be found in this FAQ be read.
Extra warning: In Shopify orders, EAN (barcode) and item code are not provided in the order lines. Therefore, the EAN and the item code cannot be used for matching products in SnelStart.
The default setting in SnelStart for item numbers is length 10 and digits only. This should be increased to length 25 and digits and letters. The reason is that at least the dummy products need this space. See also the FAQ.
Please note: The products are only created in SnelStart. Products in SnelStart are never modified.
Payments from Shopify are imported into SnelStart as memo entries. A reference to the sales entry will be included in the entry.
If no sale can be found for the payment, the memo entry cannot be created.
The integration creates an order or financial entry in SnelStart, not an invoice. Therefore, the integration cannot ensure that an invoice is automatically sent from SnelStart. It is however possible to set an invoice layout. This can be done via the dashboard https://uwkoppeling.webwinkelfacturen.nl, tab Configuration.
Field-level specification SnelStart
| Required package: InKaart, InBalans or InZicht | ||
| Name | Example | Note |
| Invoice date | [orderdate] | order date |
| Invoice number | [ordernumber] | order number or invoice number |
| Payment term | 14 days | This cannot be adjusted. |
| Description | Order number / Invoice number / Payment method if present |
|
| Invoice amount | The total amount of the order incl. VAT. | |
| Customer | ||
| Id | [debtorID] | SnelStart debtor id. |
| uri | /relations/[debtorID] | |
| Entry line | ||
| Description | [name] | |
| Ledger account | As configured via the tab Configuration of the dashboard. | |
| Amount | Amount excl. VAT. | |
| Cost center | 1 default cost center per integration. | |
| VATlines | ||
| VAT amount | [price] | |
| VATtype |
|
|
| Required package: InBalans or InZicht | ||
| Name | Example | Note |
| relation | ||
| id | 7382g324-8f90-76b8-h999-fv4sh870c87j | SnelStart debtor-ID. |
| uri | /relations/7382g324-8f90-76b8-h999-fv4sh870c87j | |
| processStatus | Order | |
| date | 2023-03-01 | order date |
| salesOrderVatEntryModel | Exclusive | Default Exclusive, can be adjusted to inclusive. |
| description | 890492 / iDEAL | Order number / Invoice number / Payment method if present |
| payment reference | 890492 |
|
| memo | ||
| lines | ||
| item | ||
| id | 8d76f75n-9283-9291-93m2-fv5682e34akd | |
| uri | /items/8d76f75n-9283-9291-93m2-fv5682e34akd | |
| description | Digital Xbox one - white | |
| unit price | 245.45 | Unit price excl. VAT, on request incl. VAT - discounts are included in this amount. |
| quantity | 1 | |
| total | 245.45 | Total excl. VAT, on request incl. VAT - discounts are included in this amount |
| salesordersjabloon | ||
| id | 8fe5j5y8-h8a1-9084-760h-98k979h4ujk4 | |
| uri | /salesordertemplates/8fe5j5y8-h8a1-9084-760h-98k979h4ujk4 | |
|
The SnelStart orders never have negative unit prices. With a negative unit price, the quantity and amount are multiplied by (-1). |
||
| Name | Example | Note |
| orderdate | Payment date | |
| Sales number | [transaction-identifier] | |
| Journal | as set in the dashboard | |
| Memorial entry line | ||
| Description | [name] | For example payment method and postfix order number |
| debit | [PaidAmount] | |
| credit | 0 | |
| ledger | The clearing account as set in the dashboard | |
| sales line | ||
| Id | Identifier of the sales entry | |
| Amount | Amount incl. VAT of the sales entry | |
| description | order number | |
| Amount | [salesAmount] | |
| Name | Example | Note |
| item code | [articlekey] | |
| Description | [productName] | |
| Item Revenue Group |
|
|
| ModifiedOn | [date] | |
| isNonActive | false | |
| Name | Example | Note |
| relationtype | Customer | |
| Name | [name] | |
| Phone | [Telnr] | |
| Mobile | [Mobile] | |
| [Email] | ||
| CoCnumber | [CoC] | |
| Iban | [Bankaccount_iban] | |
| SettlementAddress |
|
|
| correspondence Address | Same as SettlementAddress. | |
| vatNumber | [VATnr] | |
7.Support
Read more Support .... Read less Support ....
Explanation tabs dashboard
On the Dashboard >> Report you can see which orders from your Shopify webshop, and when, have been transferred to SnelStart.What if orders are missing in SnelStart
If orders are missing in SnelStart we recommend following the steps below:- Log in to the dashboard: https://uwkoppeling.webwinkelfacturen.nl. The username and password are included in the registration email.
- Go to the Errors tab and check if order is there. You may need to adjust the search period if the
order is from a previous month. If you find order in this overview:
- Check the error code and verify whether you can resolve it yourself.
- If yes resolve the issue and click the blue Process button to resubmit the order.
- If not use the red Report problem button to create a ticket with us.
- Note if there are multiple errors, please create only 1 or 2 tickets. We will automatically see the other issues.
- Go to the Report tab and see if order is listed there. If so, you'll often see an identifier for SnelStart (in the purple section of the overview) that you can use to search for order.
- Go to the Open tab and check if order is there.
- If you cannot resolve the issue, you can always create a ticket via the green Ask us button.