1.Introduction
This is the manual for the integration between Lightspeed eCom and Twinfield.
The option processing of payments is only available if the orders or invoices are processed to Twinfield draft entries. This option is not available for Twinfield invoices. Additional costs are charged for this option.
- This integration is a financial integration. It is not a logistics integration. It is not suitable for updating customers in Twinfield, printing packing slips, or synchronizing products/inventory.
- 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 Lightspeed eCom and in the FAQ for Twinfield.
You install this integration from the Lightspeed eCom App Store. If you select the Accounting category, our apps will appear automatically. You can recognize us as a supplier by the blue area and the white gear icon at the top right. If you click on the App, you will see a description and the Install button. Upon activation, you will be automatically guided through the configuration screens.
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 from the app store.
The trial period for the integration is 30 days.
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
It is also possible to process the payments based on the orders or invoices from to Twinfield. This is only available if the orders or invoices are processed to Twinfield draft entries. For Twinfield invoices, this option is not available.
The integration works with webhooks from the Lightspeed eCom webshop. Processing can be done in two ways, namely based on paid orders or invoices. The advantage of the option paid orders is that orders that are not paid do not enter the accounting system. With this option, however, credit notes are not included. With the option invoices all invoices are processed to Twinfield, so both debit and credit invoices. You can set the preference for paid orders or invoices via the Configuration tab of the dashboard.
Read more How the integration works .... Read less How the integration works ....
At the start of processing an order, we perform a number of checks on the Lightspeed eCom order or invoice:
- It is checked whether the total of the Lightspeed eCom order / invoice is equal to the sum of the amounts in the order / invoice lines plus the shipping costs amount.
- If the order / invoice is an ICP sale, the VAT number is checked.
- It is checked whether a corresponding VAT code exists in Twinfield for the VAT in each line.
- It is checked whether the order or invoice has not already been processed.
A payment for an order is only added if the order has been paid. For invoices, the payment is always processed, regardless of the status. A payment is only processed after the associated order / invoice has been processed first.
Processing order or invoice
Processing a Lightspeed eCom order or invoice to Twinfield takes place in two steps:
- It is checked if the customer already exists in Twinfield. If not, the customer is created. Matching is based on the email address.
- The Twinfield transaction (draft entry, invoice) is created and processed.
When processing a payment, the integration first looks up the draft entry in Twinfield that belongs to the payment. The integration uses the following criteria to search for the draft entry:
- 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 processing the payment, the integration will reconcile the payment and the draft entry against each other.
After the order or invoice has been forwarded and a success message from Twinfield has been received, the order or invoice is marked as handled. The Lightspeed eCom order appears at the Reporting tab on the dashboard.
If Twinfield returns an error while processing the order or invoice, the order or invoice 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 or invoice 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 or invoices 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 Twinfield later in the manual.
3.Preparation Twinfield
To connect with Twinfield, your own username/password is required to log in. The connection must be established using this username/password.
When using an accountancy username/password, the integration gains access to all records under the accountant's responsibility. This is highly undesirable. The consequence may be that the integration posts to the wrong record. Additionally, the integration has access to all records covered by the accountancy license. This is undesirable from a security perspective and is contrary to GDPR regulations.
For more information, see: FAQ.
4.Installation
The integration between Lightspeed eCom and twinfield is installed via the Lightspeed App Store. First, the connection with your webshop is established and you authorize the integration to read data from your webshop.
Read more Installation .... Read less Installation ....
Two more steps need to be completed:
1. Establishing the connection with Twinfield. This authorizes the integration to write transactions to your Twinfield administration and to read information.
2. The configuration itself.
Twinfield connection
The connection with Twinfield is handled via OAuth. Ensure you are logged out of Twinfield before starting the connection. Now click the red Connect button. A login screen for your Twinfield account will automatically appear. Once you log in, you will see a screen asking if you allow the connection. If you confirm this, the connection with Twinfield will be established.
If you want to re-establish the connection at a later time - for example because you want to use a different one - you can do so by clicking the Connect button.
It is important that after establishing the connection with Twinfield, you first set the administration code of your Twinfield administration. You can also change the debtors dimension. The default in Twinfield is a debtors dimension 1300.
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 Twinfield. You can always make changes by clicking the blue 'Edit' button and selecting an option from the drop-down menus.
By default, the integration shows a fixed list of VAT rates per EU country. You can configure this fixed list. If you provide OSS, you can easily adjust the list with the correct VAT percentage per country. If you prefer to use the VAT rates from your webshop, you can adjust this in the contract settings. 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.
When processing orders without processing payments, a link can be established for each payment method in with a fixed debtor. The list of debtors contains the Twinfield debtors with the specific substring WWF_. See this faq for more information, if the list is empty.
If the payments are processed, a link is established between payment methods in webshop and clearing accounts from Twinfield. The possibility to assign payment methods to fixed debtors will then lapse. Processing payments is only possible if the orders or invoices are processed to Twinfield draft entries. It is not possible if the orders or invoices are processed to Twinfield invoices.
5.Day-to-day: From Lightspeed
Payments (if activated)
When processing payments, the integration checks the Lightspeed eCom orders or invoices that have been successfully processed to Twinfield every day. If the order or invoice has a valid payment - a transaction with status success - this payment will also be processed to Twinfield. Checking payments on Lightspeed eCom orders or invoices is not performed in real-time, but six times a day.
VAT numbers: For business orders within the EU, outside the Netherlands, a VAT number is mandatory. The integration performs a check on the validity of VAT numbers.
Field-level specification orders
| 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 Lightspeed eCom order |
| Order-identifier | [id] |
| Order number | [ordernumber_full] |
| Affiliate number | This must be requested separately by the merchant. The field [comment] is used for this. |
| Customer number | [customer][resource][id], this is not used |
| Order and booking date | [createdAt] |
| ICP indication |
An order is an ICP order if:
|
| International indication |
An order is an international order if:
|
| Order status | [status] |
| Payment status | [paymentStatus] |
| Payment method | [paymentTitle] |
| Paymentmethod-id | [paymentId] |
| Total amounts excl VAT | [priceExcl] |
| Total amounts incl VAT | [priceIncl] |
| Total VAT | Total incl - Total excl |
| Total discounts incl or excl VAT | The amounts in the order can be incl. or excl. VAT. This is determined by the field [order_row_taxes_included] |
| Total discounts | 0 |
| Name field | Values from Lightspeed eCom order |
| VAT percentage | [taxRate] * 100 |
| Name product | The name of the product is determined as follows
|
| SKU | [sku] |
| Ean | [ean] |
| Productcode | [articleCode] |
| Amount | [quantityOrdered] |
| Discount excl / incl VAT | [discountExcl] / [discountIncl] |
| Line amounts incl or excl VAT without discount | [basePriceExcl] / [basePriceIncl] * quantity |
| Line amounts incl or excl VAT with discount | [priceExcl] / [priceIncl] |
| Unit amounts incl or excl VAT without discount | [basePriceExcl] / [basePriceIncl] |
| Unit amounts incl or excl VAT with discount | [priceExcl] / [priceIncl] divide by the quantity |
| Accounts and VAT codes from Twinfield | These are determined based on the settings in the integration, the delivery country of the order and the VAT percentages. The type for order lines is turnover / revenue. |
| Name field | Values from Lightspeed eCom order |
| Name | Shipping costs [shipmentTitle] |
| VAT percentage | [shopmentTaxRate] * 100 |
| Shipping costs incl or excl VAT without discount | [shipmentBasePriceExcl] / [shipmentBasePriceIncl] |
| Discount Shipping costs incl or excl VAT | [shipmentDiscountExcl] / [shipmentDiscountIncl] |
| Shipping costs incl or excl VAT with discount | [shipmentBasePriceExcl] / [shipmentBasePriceIncl] minus [shipmentDiscountExcl] / [shipmentDiscountIncl] |
| Accounts and VAT codes from Twinfield | These are determined based on the settings in the integration, the delivery country of the order and the VAT percentages. The type for shipping costs is shipping / shipping costs. |
| Name field | Values from Lightspeed eCom order |
| Name | Payment costs [paymentTitle] |
| VAT percentage | [paymentTaxRate] |
| Payment costs incl and excl VAT | [paymentBasePriceExcl] / [paymentBasePriceIncl] |
| Accounts and VAT codes from Twinfield | These are determined based on the settings in the integration, the delivery country of the order and the VAT percentages. The type for payment costs is payment / payment costs. |
Is only filled in for paid orders. Finding the payments is done based on the Embedded array with the order. This embedded array is located in [events][resource][embedded]. This embedded array has so-called [events] and the integration searches for the payment event with the order. This event is characterized by:
|
|
| Name field | Values from Lightspeed eCom order |
| Payment-identifier | [id] |
| Payment method identifier | [paymentId] |
| Payment method | [paymentTitle] |
| Payment date | [createdAt] where the T is replaced by a space |
| Order id | [id] |
| Order number | [number] |
| Amount | [priceIncl], note from the associated invoice with the order if there is one, and otherwise from the order itself |
| Status | paid |
| Transaction-id | [comment] |
| Name field | Values from Lightspeed eCom order |
| First name | [first_name] |
| Last name | [last_name] |
| Company name | [companyName] |
| Phone number | [phone] |
| Chamber of Commerce number | [companyCoCnumber], a clean-up action takes place here |
| Address line 1 | [addressBillingStreet] [addressBillingNumber] [addressBillingExtension] |
| Address line 2 | [addressBillingStreet2] |
| Zip code | [addressBillingZipcode] |
| City | [addressBillingCity] |
| Country | [addressBillingCountry][code], and the name is determined based on that code |
| Iso country | [addressBillingCountry][code] |
| Shipping address | Same as for the billing address, but now with [addressShipping] instead of [addressBilling] |
| VAT number | [companyVatNumber] - this is checked for correctness |
| Emailaddress | [email] |
Field-level specification invoices
| Below is a specification at field level for retrieving invoices. The debtors from the invoice are read in the same way as for orders. The fields are listed above. | |
| Name field | Values from Lightspeed eCom invoice |
| Invoice-identifier | [id] |
| Invoice number | [number] |
| Order-identifier | [id] of the order associated with the invoice |
| Affiliate number | This must be requested separately by the merchant. The field [comment] is used for this. |
| Invoice date | [createdAt] |
| ICP indication |
An order is an ICP order if:
|
| International indication |
An order is an international order if:
|
| Payment status | [paymentStatus] |
| Payment method | [paymentTitle] |
| Paymentmethod-id | [paymethodId] |
| Total amounts incl or excl VAT | [priceIncl] and [priceExcl] |
| Total VAT | [priceIncl] - [priceExcl] |
| Similar to retrieving customer data from the order, see above. |
| The invoice lines in the Lightspeed invoice have a type. The lines with type equal to product or custom are designated as invoice lines. These invoice lines are processed one by one. | |
| Name field | Values from the Lightspeed eCom invoice line |
| VAT percentage | [taxRate] * 100 |
| Name product | The name of the product is determined as follows
|
| SKU | [sku] |
| Ean | [ean] |
| Productcode | [articleCode] |
| Amount | [quantity] |
| Discount excl / incl VAT | [discountExcl] / [discountIncl] |
| Line amounts incl or excl VAT without discount | [basePiceExcl] / [basePriceIncl] * [quantity] |
| Line amounts incl or excl VAT with discount | [priceExcl] / [priceIncl] |
| Unit amounts incl or excl VAT without discount | [basePriceExcl] / [basePriceIncl] |
| Unit amounts incl or excl VAT with discount | [priceExcl] / [priceIncl] divide by [quantity] |
| Accounts and VAT codes from Twinfield | These are determined based on the settings in the integration, the delivery country of the invoice and the VAT percentages. The type for invoice lines is turnover / revenue. |
| The invoice lines in the Lightspeed invoice have a type. The lines with type equal to shipment. The integration expects a maximum of 1 shipping line. | |
| Name field | Values from the Lightspeed eCom shipping line |
| VAT percentage | [taxRate] * 100. If the VAT percentage is 0, it is checked whether the VAT percentage can be determined from [basePriceIncl] and [basePriceExcl] |
| Name | Shipping costs [variant] |
| Amount | 1 |
| Discount excl / incl VAT | [discountExcl] / [discountIncl] |
| Line amounts incl or excl VAT without discount | [basePiceExcl] / [basePriceIncl] |
| Line amounts incl or excl VAT with discount | [priceExcl] / [priceIncl] |
| Unit amounts incl or excl VAT without discount | [basePriceExcl] / [basePriceIncl] |
| Unit amounts incl or excl VAT with discount | [priceExcl] / [priceIncl] |
| Accounts and VAT codes from Twinfield | These are determined based on the settings in the integration, the delivery country of the invoice and the VAT percentages. The type for shipping lines is shipment / shipping costs. |
| The invoice lines in the Lightspeed invoice have a type. The lines with type equal to payment. The integration expects a maximum of 1 payment line. | |
| Name field | Values from the Lightspeed eCom payment line |
| VAT percentage | [taxRate] * 100. If the VAT percentage is 0, it is checked whether the VAT percentage can be determined from [basePriceIncl] and [basePriceExcl] |
| Name | Payment costs [variant] |
| Amount | 1 |
| Discount excl / incl VAT | [discountExcl] / [discountIncl] |
| Line amounts incl or excl VAT without discount | [basePiceExcl] / [basePriceIncl] |
| Line amounts incl or excl VAT with discount | [priceExcl] / [priceIncl] |
| Unit amounts incl or excl VAT without discount | [basePriceExcl] / [basePriceIncl] |
| Unit amounts incl or excl VAT with discount | [priceExcl] / [priceIncl] |
| Accounts and VAT codes from Twinfield | These are determined based on the settings in the integration, the delivery country of the invoice and the VAT percentages. The type for payment lines is payment / payment costs. |
|
Payment fields - on request Similar to retrieving the payments from the order, see above. |
6.Day-to-day: To Twinfield
For orders or invoices in Lightspeed eCom, draft entries or invoices can be created in Twinfield. The option draft entry is default and is used most often. The option invoices can be requested from us. For the invoices option, you need the paid invoice module, see also the FAQ. If you are in doubt between draft entries (financial transactions) or invoices, we recommend draft entries / transactions.
Create debtors
When processing customer information, it is first checked whether the customer has been processed before. If so, this Twinfield debtor is used as the debtor for the Twinfield transaction. If the customer is not yet known, they are added to Twinfield. Matching is based on email address.
Please note: The integration only creates debtors. The integration does not modify debtors.
Payments from Lightspeed eCom are imported into as memo entries. A memo entry consists of two lines, one line for the payment and one for the associated sales entry. If the sales entry for the payment cannot be found, the memo entry cannot be created.
Please note: we can only process payments if they are processed to draft sales entries, not with invoices. Additionally, the invoice number that is in the outstanding sales entry in Twinfield must be present in the payment transaction of the sale.
Reconcile
After processing the payment, the integration will perform an additional action to reconcile the payment and sale.
The integration cannot automatically have Twinfield invoices or draft entries sent from Twinfield.
Field-level specification Twinfield
| Name | Example | Note | |
| @attributes | |||
| destiny | temporary | ||
| raisewarning | true | ||
| header | |||
| code | VRK | ||
| office | 300333 | ||
| invoicenumber | 5869 | order number (default) or invoice number | |
| date | 20230203 | order date | |
| Currency | EUR | Default, variable on request. | |
| Totalline | |||
| type | total | ||
| id | 4 | debtor id | |
| dim1 | 1600 | Debtor dimension | |
| dim2 | 4539 | Debtor dimension | |
| debitcredit | debit | ||
| value | 82.20 | Total price Incl. VAT | |
| basevalue | 82.20 | Total price Incl. VAT | |
| description | 4121 | Description: order number, or invoice number - this cannot be adjusted. | |
| Detaillines | |||
| @attributes | |||
| type | detail | ||
| id | 5 | ||
| dim1 | 2000 | Debtor dimension | |
| debitcredit | credit | ||
| basevalue | 33.47 | Line price Excl. VAT | |
| value | 33.47 | Line price Excl. VAT | |
| description | 24 pcs Prof. drawing paper. | Product description, max length 35. | |
| vatvalue | 7.03 | VAT amount | |
| vatcode | VH | VAT code | |
| Cost center | 1 default cost center per integration. | ||
| ICP | If it is an ICP entry: | ||
| Performancetype | goods | ||
| Performancecountry | [isocountry] | Country of delivery | |
| Performancevatnumber | [vatnr] | VAT number | |
| In the VAT amounts, any rounding difference is processed if the rounding difference is at most 5 cents. | |||
| Name | Example | Note |
| header | ||
| office | KJ903932 | |
| invoicetype | INVOICE | This cannot be adjusted. |
| invoicedate | 20230308 | order date |
| headertext | Order or invoice 3234002342 |
If the invoice number is equal to the order number: Order order number Otherwise Invoice invoice number. |
| customer | 9023 | Customer code |
| currency | EUR | Default, variable on request. |
| status | draft | |
| Payment method | Bank | |
| Detailline | ||
| @attributes | ||
| id | 4 | |
| article | 0 | |
| description | 70 x 70 painter's canvas | Description |
| quantity | 9 | quantity |
| units | 1 | |
| unitspriceexcl | 21.50 | unit price excl. VAT |
| dim1 | 3456 | Ledger account |
| vatcode | VH | VAT code |
| Name | Example | Note |
| name | [name] | |
| website | ||
| Cocnumber | [coc] | |
| VATnumber | [VATnr] | |
| Address | ||
| contact | [firstname][lastname] | |
| Country | [isocountry] | |
| City | [city] | |
| Postal code | [zipcode] | |
| Phone number | [telnr] | |
| [email] | not longer than 200 characters. | |
| Name | Example | Note |
| Payment line | The information of the payment. | |
| Suspense account | As set in the configuration tab of the dashboard. | This is the field dim1 in Twinfield |
| Type | debit | This is the field debitcredit in Twinfield |
| Description | [transaction_id] payment | |
| Invoicenumber | [ordernumber] | If the length > 40, the last 40 characters are shown. This is to keep the invoice numbers unique. |
| Amount | Amount from the payment | |
| Sales line | The information from the sales entry. | |
| Debtors-account | 1300 | This is the field dim1 in Twinfield. This is usually 1300 but can be adjusted in the configuration tab of the dashboard. |
| Customer code | [Debtor code] | This is the field dim2 in Twinfield |
| Type | credit | This is the field debitcredit in Twinfield |
| Description | [ordernumber] | If the length > 40, the first 40 characters are shown. |
| Invoicenumber | [ordernumber] | If the length > 40, the last 40 characters are shown. This is to keep the invoice numbers unique. |
| Amount | Amount from the sale | |
7.Support
Read more Support .... Read less Support ....
Explanation tabs dashboard
On the Dashboard >> Report you can see which orders or invoices from your Lightspeed eCom webshop, and when, have been transferred to Twinfield.What if orders or invoices are missing in Twinfield
If orders or invoices are missing in Twinfield 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 or invoice is there. You may need to adjust the search period if the
order or invoice is from a previous month. If you find order or invoice 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 or invoice.
- 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 or invoice is listed there. If so, you'll often see an identifier for Twinfield (in the purple section of the overview) that you can use to search for order or invoice.
- Go to the Open tab and check if order or invoice is there.
- If you cannot resolve the issue, you can always create a ticket via the green Ask us button.