CSV Format
Complete specification for CSV files used to import shareholder data.
File Requirements
- Encoding: UTF-8
- Delimiter: Semicolon (
;) - Header row: Required (first row)
- File extension:
.csvor.txt
Column Specification
The CSV must have the following columns in order:
| Column | Name | Type | Required | Description |
|---|---|---|---|---|
| 1 | orgnr | String | Yes | 9-digit Norwegian organization number |
| 2 | selskap | String | Yes | Company name |
| 3 | aksjeklasse | String | Yes | Share class name (e.g., "A", "B", "Ordinary") |
| 4 | aksjonar | String | Yes | Shareholder name |
| 5 | fodselsar | String | No | Birth year or organization number of shareholder |
| 6 | postnr | String | No | Postal code |
| 7 | landkode | String | No | Country code (e.g., "NO", "SE", "US") |
| 8 | antallAksjer | Integer | Yes | Number of shares owned by this shareholder |
| 9 | totalAksjer | Integer | Yes | Total shares in this share class |
| 10 | stemmerettMultiplikator | Number | No | Votes per share (default: 1) |
Header Row
The first row must contain the column names:
orgnr;selskap;aksjeklasse;aksjonar;fodselsar;postnr;landkode;antallAksjer;totalAksjer;stemmerettMultiplikator Example File
orgnr;selskap;aksjeklasse;aksjonar;fodselsar;postnr;landkode;antallAksjer;totalAksjer;stemmerettMultiplikator
123456789;Example AS;A;John Smith;1980;0123;NO;500;1000;10
123456789;Example AS;A;Jane Doe;1975;0456;NO;300;1000;10
123456789;Example AS;B;Acme Corp;987654321;0789;NO;200;500;1
123456789;Example AS;B;Global Holdings Ltd;;0000;GB;300;500;1 Voting Multiplier Explained
The stemmerettMultiplikator field allows you to specify different voting rights per share
class. This is common in dual-class share structures.
Example: Dual-Class Shares
- Class A: 10 votes per share (
stemmerettMultiplikator=10) - Class B: 1 vote per share (
stemmerettMultiplikator=1)
If John Smith owns:
- 500 Class A shares (10 votes each) = 5,000 votes
- 100 Class B shares (1 vote each) = 100 votes
- Total: 5,100 votes
When calculating voting percentage, Porto uses the weighted votes rather than just share count.
Identifying Shareholder Types
Porto automatically identifies shareholder types based on the fodselsar field:
- Individual: 4-digit birth year (e.g.,
1980) - Norwegian Company: 9-digit organization number (e.g.,
987654321) - International Entity: Empty or non-matching format with foreign country code
Best Practices
- Use consistent naming: Ensure shareholder names are spelled consistently across rows
- Include organization numbers: For corporate shareholders, include their
organization number in
fodselsarto enable ownership chain tracing - Set total shares correctly: The
totalAksjershould be the total for the share class, not the company - Check for duplicates: Avoid duplicate rows for the same shareholder/share class combination
Troubleshooting
Import Errors
- "No valid data rows found": Check that your file uses semicolons, not commas
- "Invalid organization number": Ensure orgnr is exactly 9 digits
- "Parse error": Check for special characters or encoding issues
Common Issues
- Missing column: Ensure all 9 required columns are present (column 10 is optional)
- Wrong delimiter: Use semicolons (
;), not commas - Empty values: For optional fields, leave empty (don't use "null" or "N/A")