All about AFAS

AFAS: Send sales orders to AFAS

Send orders from your webshop or marketplace to AFAS as an order, quotation, direct invoice, financial mutation or forecast.

Updated November 9, 2026

This flow sends sales orders from another application, such as a webshop or marketplace, to AFAS. You choose how the order is created in AFAS: as an order, a quotation, a direct invoice, a financial mutation or a forecast.

Ways to send an order

With the Send Order as setting, you choose how the order is created in AFAS:

  • Order: the complete order is sent: the customer details including the e-mail address, the ordered products with quantities, and the invoice and delivery address. The order is created as a sales order (verkooporder) and the stock is updated. You process it further in AFAS, for example packing slips and invoices. The products must exist in AFAS.
  • Quotation: the order is created as a quotation (offerte), for example for a quote from a CRM system or webshop. There is no stock mutation. You need the UpdateConnector FbSalesQuotation in the App connector.
  • Direct Invoice: the same information as an order, created as a direct invoice. The stock is updated. The products must exist in AFAS.
  • Financial Mutation: APIcenter books the order as entries on the general ledger. You set the ledger accounts, for example for revenue and shipping costs, in the settings below. There is no stock mutation, and the products do not need to exist in AFAS.
  • Forecast: records the expected revenue, for example for management decisions or forecasts. The forecast amount is the expected revenue multiplied by the scoring probability. The order lines are not sent.

APIcenter can also create a pre-calculation (voorcalculatie) with the expected services. You can send standard lines with a basic item code and the service in the description. When the order data contains a project group, APIcenter first creates a project in AFAS and links the pre-calculation to it.

How an order is processed

  • APIcenter checks whether the order already exists in AFAS, by order number, or by reference when there is no order number. An existing order is not created again.
  • When deleting orders is switched on and the order has one of the statuses you selected, such as Deleted or Canceled, APIcenter deletes the order in AFAS instead.
  • APIcenter looks for the customer by debtor number. If there is none, or it is not found, APIcenter looks by e-mail address. A new customer is created, an existing customer is updated according to the settings. The customer needs an e-mail address and a country.
  • For an order, quotation or direct invoice, APIcenter checks whether the articles exist in AFAS. By default it searches by article number (SKU). In the settings below you can choose to search by barcode or by another ID. If an article does not exist, the order gets an error.
  • APIcenter creates the order with its lines.

What you need first

The source systems usually do not have all data AFAS needs. Set these values in the settings below:

  • Administration (administratie): which AFAS administration receives the orders. With several stores, you can use a mapping table to send each store to its own administration.
  • Communication method (voorkeur verstrekkingswijze): U is available by default in AFAS.
  • Payment terms: 14 stands for 14 days and is available in most AFAS environments. This is set on the customer and is separate from the order.
  • Debtor ledger account (verzamelrekening): the collective account to which new debtors are assigned.

The administration numbers in AFAS

In the App connector, the UpdateConnectors for Verkooporder and for customers (Contact, Organisatie, Persoon, Verkooprelatie organisatie, Verkooprelatie persoon) must be added. See Connect AFAS to APIcenter. Customers are handled as described in Send customers to AFAS.

Shipping costs and other costs

AFAS has no shipping costs at order level, so shipping costs always need their own order line. Most source systems send shipping costs at order level. APIcenter can turn them into an order line with an item code you choose. This is also possible for payment costs, billing costs and commission.

Financial mutation

When you send orders as a financial mutation, also set the journal (dagboek) and the ledger accounts for each part of the entry. They are needed to split the order into the right lines. Then choose the financial mutation method:

  • Simple: the whole order as one line, and one line for the debtor on the other side.
  • Recommended: splits the entry into revenue, tax, shipping and discount.
  • Complex: uses a different ledger account for each product. The ledger account number must come from the webshop data or from business rules.
  • Extreme: splits all available data into separate lines. This is meant for complex webshops: only use it together with an implementation partner.

Tips

  • Does an order fail because an article does not exist? Check that the SKU in the source matches the article number in AFAS, or change the field APIcenter searches by.
  • The order flow has many more settings, for example for shipping, multiple warehouses and VAT.

You find all settings for this flow below, each with its own explanation.

Settings

The settings you see in the dashboard, with what each one does.

Add contact to person

Customer Settings

When APIcenter creates or updates a private customer (a person, not an organisation) in AFAS, this setting also adds a contact (contactpersoon) to that person with the same address, email address and phone number. For organisations a contact is always added. This only has effect when contact persons are used (setting Use contact persons). Off by default.

Default customer type id

Customer Settings

Default debtor email address

Customer Settings

The email address of the default debtor (debiteur) in AFAS. APIcenter uses it to find the default debtor when the default debtor is enabled. Use the email address exactly as it is on the debtor in AFAS. If you fill in both this field and the default debtor ID, APIcenter searches by ID first and then by email address.

Default price list group

Customer Settings

The AFAS price list (prijslijst) APIcenter uses as default. When sending orders to AFAS, APIcenter puts this price list on the order lines when the default price list group is enabled. When retrieving price lists from AFAS, this price list provides the base price from which the other prices are calculated. Default: *****, the standard AFAS price list excluding VAT.

Default transporter id

Customer Settings

Turn this on to use a default price list group. For orders sent to AFAS, the order lines then get the default price list. For Business Pricing (retrieving price lists from AFAS) you also turn this on, because APIcenter needs a base price to calculate discounts, percentages and other prices. Off by default.

Enable use of default debtor

Customer Settings

When on, APIcenter always uses the default preferred way of communication (voorkeur verstrekkingswijze) for debtors it creates in AFAS, even if the data contains another value. When off, the default is only used when the data has no value. For AFAS this setting is on by default.

When on, APIcenter always uses the default customer type for relations it creates in AFAS, even if the data contains another type. When off, the default is only used when the data contains no customer type. For AFAS this setting is on by default.

When on, APIcenter always uses the default payment condition (betalingsvoorwaarde) for debtors in AFAS, even if the data contains another value. When off (default), the default is only used when the data has no value. If you do not use a mapping table for payment conditions, we recommend turning this on.

Handle multiple contactpersons

Customer Settings

Turn this on when a customer can have several contact persons (contactpersonen) and all of them must be created or updated in AFAS, instead of only one. This only works when the person GetConnector made by APIcenter is added to your AFAS environment; the APIcenter guide explains how to install it. Contact persons are only sent when Use contact persons is on as well. Off by default.

Preferred way of communication

Customer Settings

The preferred way of communication (voorkeur verstrekkingswijze) APIcenter sets on debtors it creates in AFAS. The usual value is U, which is present in AFAS by default and stands for sending invoices by email. Existing debtors keep the value they have in AFAS. Default for AFAS: U.

Provision method

Customer Settings

Adds one or more provisions (verstrekkingen) with their provision method (verstrekkingswijze) to the debtor in AFAS, after APIcenter has created or updated the debtor. Enter each pair as the provision code and the method separated by a comma, and separate several pairs with a vertical bar: type,method|type,method. Use the codes from your own AFAS environment. If AFAS rejects a pair, the customer or order is still processed. Leave empty if you do not need this.

Meant to mark new customers as opted in, so the receiving application may send them email messages. AFAS does not use this setting when it receives customers or orders, so changing it has no effect for AFAS. Leave it at the default (off).

Turn this on to set a payment condition (betalingsvoorwaarde) at customer level on debtors in AFAS. AFAS needs a payment condition on a debtor, and 14 (14 days) is always present in AFAS. For AFAS this setting is on by default.

Use contact persons

Customer Settings

Determines whether contact person details are sent to AFAS when APIcenter creates or updates a debtor. When on, the contact person (contactpersoon) from the incoming data is created or updated together with the organisation. When off, only the organisation or person itself is created or updated, without a contact person. Off by default.

Use a mapping table to translate the customer group from the other application into the value the receiving side expects. Without a mapping table, the customer group from the incoming data is passed on unchanged. The standard AFAS data mapping for sending does not fill a customer group, so this only has an effect when you use the customer group in the data mapping. Off by default.

Use a mapping table to translate the customer type from the other application into the customer type code in AFAS. APIcenter only sets the customer type when it creates a new debtor; for existing debtors in AFAS it is not changed. Make sure the table covers every value that can occur in the incoming data. For AFAS this is on by default.

Use a mapping table to translate payment terms from the other application into the payment condition (betalingsvoorwaarde) of the debtor in AFAS, for example 14 for 14 days, which most AFAS environments have. The payment condition is set at debtor level, separate from the order. Values that are not in the table are handled by What to do with a value that cannot be mapped using the mapping table. Off by default.

The payment method APIcenter uses when the data contains none. For sales orders this value is sent to AFAS as the payment method of the order. Use the code of a payment method that exists in AFAS; with a mapping table you can translate the payment methods of your webshop into AFAS codes.

The customer group APIcenter uses when the data contains none. With a customer group mapping table you can translate the groups from the source into the values you need. The value only reaches AFAS when the customer group is used in the data mapping of the flow.

Meant for accounting packages in which an order has a separate invoice contact: you choose whether the main contact (MainContactId, default), the invoice contact (InvoiceToContactId) or the contact of the invoice address (InvoiceToAddressContactId) is used. The AFAS order flow does not use this setting, so changing it has no effect for AFAS.

default payment terms id

Customer Settings

The payment condition (betalingsvoorwaarde) APIcenter sets on the debtor in AFAS. It applies at customer level and is separate from the order. 14 stands for the standard 14 days, which is present in most AFAS environments. To find another code, open any sales order in AFAS and select the payment condition you want: the code appears on the order. Default for AFAS: 14.

Make use of a default ledger discount account

Financial Mutation Settings

Turn this on to use a default ledger account for discounts in financial mutations. You need it when you send orders or refunds to AFAS as a financial mutation with the type Extreme. Off by default.

Make use of a default ledger revenue account

Financial Mutation Settings

Turn this on to use a default ledger account for revenue in financial mutations. You need it when you send orders or refunds to AFAS as a financial mutation and the data contains no revenue account. Off by default.

Make use of a default ledger shipping account

Financial Mutation Settings

Turn this on to use a default ledger account for shipping costs in financial mutations. You need it when you send orders or refunds to AFAS as a financial mutation with the type Complex or Extreme. Off by default.

Make use of a default ledger tax account

Financial Mutation Settings

Turn this on to use a default ledger account for VAT in financial mutations. You need it when you send orders or refunds to AFAS as a financial mutation with the type Recommended, Complex or Extreme. Off by default.

Use a mapping table to choose the ledger account (grootboekrekening) for discounts when an order or refund is booked as a Financial Mutation. Each row links a value from the incoming data to an AFAS ledger account number. A separate discount line is only made with the Extreme financial mutation method. Off by default.

Use a mapping table to choose the revenue ledger account (omzetrekening) when an order or refund is booked as a Financial Mutation. Each row links a value from the incoming data to an AFAS ledger account number. A revenue account is needed with every financial mutation method. Off by default.

Use a mapping table to choose the ledger account (grootboekrekening) for shipping costs when an order or refund is booked as a Financial Mutation. Each row links a value from the incoming data to an AFAS ledger account number. Shipping costs get their own line only with the Complex and Extreme financial mutation methods. Off by default.

Use default ledger tax account mapping table

Financial Mutation Settings

Use a mapping table to choose the VAT ledger account (btw-rekening) when an order or refund is booked as a Financial Mutation. Each row links a value from the incoming data to an AFAS ledger account number. VAT gets its own line with the Recommended, Complex and Extreme financial mutation methods. Off by default.

Use financial mutation method

Financial Mutation Settings

Determines how an order or refund is split into lines when it is booked in AFAS as a Financial Mutation (financiële mutatie). The other side of the booking always goes to the debtor.

  • Simple (default): the whole order on one revenue line.
  • Recommended: revenue and VAT on separate lines.
  • Complex: a line per order line, each with its own revenue account from the order data or business rules, plus separate lines for VAT and shipping costs.
  • Extreme: like Complex, plus a separate line for discounts. Only use this together with an implementation partner.

The ledger account (grootboekrekening) for discounts when APIcenter sends an order or refund to AFAS as a financial mutation. It is used with the financial mutation type Extreme, which books discounts on a separate line. Replace the prefilled value with an account number from your own chart of accounts in AFAS. Prefilled value: 8100.

The ledger account (grootboekrekening) for revenue when APIcenter sends an order or refund to AFAS as a financial mutation. A revenue account is required for every financial mutation type (Simple, Recommended, Complex and Extreme). Replace the prefilled value with an account number from your own chart of accounts in AFAS. Prefilled value: 8100.

The ledger account (grootboekrekening) for shipping costs when APIcenter sends an order or refund to AFAS as a financial mutation. It is used with the types Complex and Extreme: the order line for shipping costs (see Require order line for shipping costs) is booked on this account. Replace the prefilled value with an account number from your own chart of accounts in AFAS. Prefilled value: 1600.

The ledger account (grootboekrekening) for VAT when APIcenter sends an order or refund to AFAS as a financial mutation. A tax account is required for the types Recommended, Complex and Extreme, which book the VAT on a separate line. Replace the prefilled value with an account number from your own chart of accounts in AFAS. Prefilled value: 1600.

Set the administration

General flow setting

The code of the AFAS administration (administratie) APIcenter sends orders, purchase orders and refunds to. Enter the code of the administration, not its name; you can use any administration in your AFAS environment. For refunds an administration is always required. In a multi-store setup you can use a mapping table to send each store to its own administration. Default for AFAS: 01.

Use administration mapping table

General flow setting

Debtor ledger account

Ledger Settings

The debtor ledger account (verzamelrekening) that new debtors are linked to in AFAS. AFAS requires this account for every new debtor. You find it in AFAS under your ledger accounts (grootboekrekeningen): use the number of the debtors account marked as Verzamelrekening. Existing debtors keep their own account. Default for AFAS: 1400.

The revenue account number APIcenter uses when the data contains none. For sales orders this is set as the counter account (tegenrekening) of debtors that APIcenter creates in AFAS; existing debtors keep their own account. Use an account number that exists in your AFAS administration.

Turn this on to use a default journal (dagboek) when the data contains none. You need a journal when you send orders or refunds to AFAS as a financial mutation. You enter the code in Value to be used as the default journal id.

When on, APIcenter always uses the default debtor ledger account (verzamelrekening) for debtors it creates in AFAS, even if the data contains another account. When off (default), the default is only used when the data has no value. For AFAS we recommend turning this on.

Ledger item id

Ledger Settings

The ledger item APIcenter fills in when the data contains none. The standard data mapping to AFAS does not use this value, so it only has effect when you use the field in the data mapping of the flow. Prefilled value: 600.

Turn this on to set a debtor ledger account (verzamelrekening) on debtors that APIcenter creates in AFAS. AFAS requires this account for new debtors, so turn this on when APIcenter creates customers in AFAS. Off by default.

Use a mapping table to translate the revenue account from the other application into an AFAS ledger account number. For sales orders, APIcenter uses it as the revenue account (tegenrekening) of the debtor when it creates a new debtor; existing debtors keep their own. Values that are not in the table are handled by What to do with a value that cannot be mapped using the mapping table. Off by default.

Use a mapping table to translate the ledger item from the other application into the value AFAS should receive. The standard AFAS data mapping for orders does not use the ledger item, so this only has an effect when you use that field in the data mapping. Make sure the table covers every value that can occur in the incoming data. Off by default.

Use a mapping table to translate a value from the other application into the debtor ledger account (verzamelrekening) in AFAS. APIcenter only sets this ledger account when it creates a new debtor; existing debtors keep their own. Without a mapping table, the value from the incoming data is used, or the default Debtor ledger account when the data has no value. Off by default.

Use a mapping table to translate the customer revenue account from the other application into an AFAS ledger account. The standard AFAS data mapping for orders does not use this field: the revenue account of a new debtor comes from Default Revenue Account number and Use a mapping table to map the revenue account. So this setting only has an effect when you use the customer revenue account in the data mapping. Off by default.

Use a mapping table to translate a value from the other application into the VAT duty (btw-plicht) of the debtor in AFAS. APIcenter only sets this when it creates a new debtor; for existing debtors in AFAS the value is not changed. Values that are not in the table are handled by What to do with a value that cannot be mapped using the mapping table. Off by default.

The code of the journal (dagboek) in AFAS on which APIcenter books financial mutations for orders and refunds. Use a journal code that exists in your AFAS administration. If no journal is filled in, APIcenter uses journal 40.

Decides what happens when the payment journal (dagboek) mapping table has no row for a value: Use default (default) uses the default journal if that default is switched on, Use value sends the original value unchanged and Ignore value leaves the field empty. The standard AFAS data mapping for customers does not send a journal, so this setting normally has no effect in the Send Customer flow.

The revenue account (ledger account for sales) APIcenter uses for the customer of an order when the data contains none. Use an account number that exists in your AFAS administration. The standard data mapping to AFAS does not use this field, so it only has effect when you use it in the data mapping of the flow.

Notifications frequency

Notifications

Receive Notifications

Notifications

Default order prefix

Order Settings

Default order suffix

Order Settings

Delete orders with states

Order Settings

The order statuses for which APIcenter deletes the order in AFAS instead of creating it: Deleted and/or Canceled. When an order comes in with one of these statuses, APIcenter looks up the existing order in AFAS and deletes it. Only works when Enable order deletion is on as well. In the current AFAS flows this applies to sales orders, not to purchase orders.

Enable order deletion

Order Settings

Allows APIcenter to delete orders in AFAS. When on, an incoming order with one of the statuses you select in Delete orders with states is deleted in AFAS instead of being created. Off by default. In the current AFAS flows this applies to sales orders, not to purchase orders.

AFAS has no shipping costs at order level, so shipping costs must be sent as an order line. Turn this on to convert the shipping costs of an order into a separate order line with quantity 1 and the shipping amount. The line is only added when the order actually contains shipping costs, and you also need to fill in the item code. With the financial mutation types Complex and Extreme, this line is booked on the default ledger shipping account. Off by default.

Send Order as

Order Settings

Determines what APIcenter creates in AFAS for each incoming order.

  • Order (default): a sales order (verkooporder). The articles must exist in AFAS and stock is updated.
  • Direct Invoice: a direct invoice (directe factuur), including a stock mutation.
  • Quotation: a quotation (offerte), without a stock mutation.
  • Financial Mutation: a booking in the general ledger, split according to Use financial mutation method. The articles do not need to exist in AFAS.
  • Forecast: a forecast of the expected revenue.

The other options are not supported for AFAS sales orders. For refunds, choose Financial Mutation for a booking in the general ledger; any other choice creates a direct invoice as credit (the AFAS default for refunds). Purchase orders are always created as purchase orders.

Skip negativity flip process

Product Settings

Use SKU to search for

Product Settings

Determines how APIcenter finds the AFAS article for each order line. The product code from the order line is compared with:

  • SKU (default): the item code (artikelcode) in AFAS.
  • Barcode: the barcode of the article.
  • EAN, Alternative ID, Product Type or Product Type and SKU: the alternative article ID in AFAS.

AFAS needs existing articles for orders, invoices and quotations, so an order line without a matching article gives an error.

Use page size

Run behaviour

Use a mapping table to translate the shipping method from the other application into the value AFAS should receive. The standard AFAS data mapping does not send a shipping method, so this only has an effect when you use the shipping method in the data mapping. Values that are not in the table are handled by What to do with a value that cannot be mapped using the mapping table. Off by default.

The shipping method APIcenter uses when the data from the source contains none. The standard data mapping to AFAS does not send the shipping method itself, so this only has effect when you use it in the data mapping or in business rules.

Enable the use of a default warehouse

Stock & Warehouse Settings

Turn this on to use a default warehouse (magazijn). For orders sent to AFAS, APIcenter then puts this warehouse on the order and on order lines without a warehouse. If this is on but no warehouse code is filled in, the order is not sent. Off by default.

Force the usage of the default warehouse

Stock & Warehouse Settings

Use warehouse mapping table

Stock & Warehouse Settings

Value for the default warehouse id

Stock & Warehouse Settings

Turn this on to use a default tax class (VAT code) when the data contains none. You enter the value in Set the value for the default taxclass when products are created. This default is also used for the extra order lines for costs when they have no tax class of their own. Off by default.

When on, APIcenter always uses the default tax class (VAT code), even if the data contains another one. When off (default), the default is only used when the data contains no tax class. For products sent to AFAS, this means every new product gets the default tax class.

Use a mapping table to translate VAT classes or rates from the other application into VAT codes (btw-codes) in AFAS, for example the 21% rate of a webshop into the matching AFAS code. On orders, refunds and purchase orders the code is set per order line; for financial mutations it is also used as the VAT code of the booking. Values that are not in the table are handled by What to do when the mapping can not be made?. Off by default.

The tax class (VAT code) APIcenter uses when the data contains none. Enter the value without a % sign. With a mapping table you can translate the tax values of the source into the VAT codes of AFAS. For products, the tax class is only set when the product is created in AFAS; you change it later in AFAS itself.

Decides what happens when the VAT mapping table has no row for a value from the incoming data.

  • Use default: APIcenter uses the default tax id, if that default is switched on; otherwise the field stays empty.
  • Use value: the original value is sent to AFAS unchanged.
  • Ignore value (the AFAS default): the field stays empty.

For products, AFAS always expects a VAT value, so choose Use default there and set a default tax id.

Still need help?

Ask the support assistant in your dashboard or create a support ticket.

Go to support