Skip to content
Developer

Memberships

Creates or updates memberships, with person, product, section, period and payment type per row.

Format
CSV (semicolon or comma), UTF-8
Access rights
Administrator, write access to contacts (CRM)
Example files
AFS_MEMBERSHIP_beispiel_technisch.csv (technical column names)
AFS_MEMBERSHIP_beispiel_anwender.csv (German column names)

In short: Each row is a membership: a person with a product in a section, with start and end. A membership with the same details is updated by vynst (inwendo ERP) instead of being created twice.

What you need this for

The membership links a person to their fee and their section. With this file you take over the memberships from your previous system in one pass.

Before you start

  • Rights: You need administrator rights and write access for contacts (CRM).
  • Imported beforehand: The persons, products and sections must exist in vynst, with the same numbers as in this file. The accounts as well, if you specify an account number.
  • Account and section are optional: If the account number is missing in a row, vynst takes the first account of the person. If an account number is given but unknown, vynst skips the row (see FALLBACK_TO_LINKED_COMPANY). If the section is missing or vynst does not know it, vynst takes the section of the product.
  • Person must belong to the account: If the person is assigned to a different account, vynst skips the row. See the column FALLBACK_TO_LINKED_COMPANY.

Prepare the file

  • File name: It must contain AFS_MEMBERSHIP_ and .csv, for example AFS_MEMBERSHIP_2026.csv. Upper and lower case count.
  • Header row: The columns for person, account, section and product must be present. The cells may be empty for account and section. None of these four columns may be the last column of the header row.
  • Separator: Semicolon or comma. Use the same character throughout the file. vynst does not recognise tabs.
  • Date: 01.09.2026 or 2026-09-01. An empty cell means: no date.
  • Size: From 9000 rows onwards, vynst splits the file into parts of 3000 rows each. The parts appear as separate import files.

Columns

Column Required Content Example
PERSON_IDENTIFIER (also Mitglieds-Nr., Mitgliedsnummer, MitgliedID) yes Member number of the person 1001
COMPANY_IDENTIFIER (also ACCOUNT_IDENTIFIER, Abrechnungskontonummer) no Account of the membership. If not given, the first account of the person applies. K-1001
UNIFIED_CATEGORY_IDENTIFIER (also Sparten-ID, Sparten ID, Kategorie ID) no Section. If not given or if the number is unknown, the section of the product applies. FB
PRODUCT_IDENTIFIER (also Produkt ID, Produkt-ID, Produkt) yes Product, as assigned during the products import ERW
START_DATE (also Eintrittsdatum, Beitrittsdatum, Beginn) no Start of the membership 01.01.2020
END_DATE (also Austrittsdatum, Enddatum, Ende) no End of the membership 31.12.2026
LAST_PAYMENT_DATE (also Zahlungsdatum, Letzte Sollstellung) no Date of the last billing. It is one of the details by which vynst recognises an already imported membership. 01.01.2026
EXTERNAL_DESCRIPTION (also Externe Beschreibung, Beschreibung) no Text for the membership. The entry is prefixed with the word “Importiert” (Imported). Jugendbeitrag
PAYMENT_TYPE (also Zahlungsart, Zahlart) no Payment type as set up in vynst. If not given or the payment type is unknown, the payment type of the account applies. Lastschrift
BILLING_PAYMENT_PROFILE (also Zahlungsprofil) no Payment profile as set up in vynst
FALLBACK_TO_LINKED_COMPANY no ja: If the account number is unknown, vynst takes the first account of the person and writes a warning to the log. If the person is not assigned to the account, vynst also takes the first account of the person. Default is nein. ja
FORCE_MONTHLY_RECURRENCE_PRODUCTS no ja: The products of this row are billed monthly. A value from the column abweichendes Abrechnungsintervall (deviating billing interval) is stored as an import flag. Default is nein. ja
IMPORT_IDENTIFIER_PREFIX no Prefix of the numbers with which persons and accounts were imported. If not given, AFS_CSV_ applies. An empty cell means: no prefix. AFS_CSV_
OVERWRITE_PRICE (also abweichender Preis) no Deviating price of the product for this membership. Empty means: product price.
OVERWRITE_RECURRENCE (also abweichendes Abrechnungsintervall) no Deviating billing interval. Empty means: interval of the product.
PRICE_FORMAT no de if the deviating price is written with a comma. Default is en. en

Additional products: There are separate columns for reduced rate, passive and free membership:

Addition Product Period Deviating price
Reduced (Ermäßigt) PRODUCT_IDENTIFIER_DISCOUNT (also Produkt ermäßigt) START_DATE_DISCOUNT (also Ermäßigt ab), END_DATE_DISCOUNT (also Ermäßigt bis) ermäßigt abweichender Preis
Passive (Passiv) PRODUCT_IDENTIFIER_PASSIVE (also Produkt-ID Passiv) START_DATE_PASSIVE (also Passiv ab), END_DATE_PASSIVE (also Passiv bis) passiv abweichender Preis
Fee-free (Beitragsfrei) PRODUCT_IDENTIFIER_FREE (also Produkt-ID Frei) START_DATE_FREE (also Frei ab), END_DATE_FREE (also Frei bis) frei abweichender Preis

The product columns take a product number like PRODUCT_IDENTIFIER. If the product is not found, the addition remains empty, without a message.

Example

PERSON_IDENTIFIER;COMPANY_IDENTIFIER;UNIFIED_CATEGORY_IDENTIFIER;PRODUCT_IDENTIFIER;START_DATE;END_DATE;LAST_PAYMENT_DATE;EXTERNAL_DESCRIPTION;PAYMENT_TYPE;BILLING_PAYMENT_PROFILE;OVERWRITE_PRICE;PRICE_FORMAT;OVERWRITE_RECURRENCE;PRODUCT_IDENTIFIER_DISCOUNT;START_DATE_DISCOUNT;END_DATE_DISCOUNT;PRODUCT_IDENTIFIER_PASSIVE;START_DATE_PASSIVE;END_DATE_PASSIVE;PRODUCT_IDENTIFIER_FREE;START_DATE_FREE;END_DATE_FREE;FALLBACK_TO_LINKED_COMPANY;FORCE_MONTHLY_RECURRENCE_PRODUCTS;IMPORT_IDENTIFIER_PREFIX
1001;K-1001;FB;ERW;01.01.2020;;;Erwachsenenbeitrag;;;;en;;;;;;;;;;;nein;nein;AFS_CSV_
1002;K-1001;FB-JUG;JUG;01.03.2022;;;Jugendbeitrag;;;;en;;;;;;;;;;;nein;nein;AFS_CSV_
1003;K-1003;TUR;ERW;15.09.2023;;;Erwachsenenbeitrag;;;;en;;;;;;;;;;;nein;nein;AFS_CSV_

Example files: AFS_MEMBERSHIP_beispiel_technisch.csv with the technical column names, AFS_MEMBERSHIP_beispiel_anwender.csv with the German column names.

Lena Hartmann (1001) has been a member in account K-1001 since 01.01.2020 with the product ERW in section FB. Jonas Hartmann (1002) is in the same account with the product JUG in section FB-JUG since 01.03.2022. Anna Beispiel (1003) is in account K-1003 with the product ERW in section TUR. The persons and accounts must be imported beforehand.

How to proceed

  1. Open Settings → Import (Einstellungen → Import).
  2. Click Add (Hinzufügen) and select the file.
  3. Read the log. The line Processed shows the number of rows.
  4. Correct the rows with errors and import only those again.

Good to know

  • Repeated import: If person, product, start, end and last billing date match, vynst updates the existing membership. In the process, account, section, additional products, payment type and description are taken over.
  • Changed data: If the start, end, last billing date or the product changes, vynst creates a new membership. The old one remains. Therefore, before a second import, check whether these details have changed.
  • Date format: 01.01.2020 and 2020-01-01 count as the same date. A repeated import with either format therefore finds the membership again. For entries from an import before this change, this only works if you write the date as you did the first time. If you use one format throughout for every import, a repeated import finds the memberships again.
  • Unknown account number: If the number in COMPANY_IDENTIFIER is not known, vynst skips the row with an error, even if the person is known. Only with FALLBACK_TO_LINKED_COMPANY = ja does vynst take the first account of the person and write a warning to the log. If the column is empty, vynst takes the first account of the person without a message. Check the account numbers before the import.
  • Payment type: Unknown payment types are not reported. The membership then takes the payment type of the account.
  • Counting: The number in the log covers all rows of the file, including the skipped ones.
  • Deviating prices: If the price or the billing interval of a row differs from the product, vynst creates a separate product with this deviation and uses it for the membership.

When something does not work

Message in the log Meaning What to do
Error: skipped missing person / company The row has no member number. The row appears below as LINE-DATA. Add the member number and import the row again.
Error: skipped person with import origin id … not found The person does not exist in vynst. Import the persons first, check the number.
Error: skipped company with import origin id … not found The account does not exist, and FALLBACK_TO_LINKED_COMPANY is not ja. Or the person has no account. The row is skipped. Import the account, check the number. Or set FALLBACK_TO_LINKED_COMPANY to ja if the first account of the person is the right one.
Warning: company with import origin id … not found, used first account of person … The account does not exist. The row was imported with the first account of the person, because FALLBACK_TO_LINKED_COMPANY is ja. Check whether the first account of the person is correct.
Error: skipped product with import origin id … not found The product does not exist. Import the product, check the number.
Error: person … not linked with account … The person is not assigned to the account. Create the assignment or set FALLBACK_TO_LINKED_COMPANY to ja.
Error: skipped empty line An empty row was skipped. Nothing.
Info: split into … files The file was too large and was split. Check the parts like other import files.
Processed … lines Summary Nothing.
Error: less then one line No data row Check the header row and content.
FAILED: No matching processor found. The file name or header row does not match. Check the file name and header row.

See also