Dataverifiering API

Verifiera företagsinformation och hämta kreditupplysningar direkt via API. Alla anrop autentiseras med din API-nyckel.

Kräver aktivering
Dataverifiering måste aktiveras för din tenant. Kontakta support@tic.io för att aktivera företagsuppslag och kreditupplysning.

Översikt

Funktion Beskrivning Kräver
Företagsuppslag Slå upp företagsinformation med organisationsnummer eller internt ID DataVerificationEnabled
Kreditupplysning Hämta kreditbetyg, riskprognos och riskklass för ett företag DataVerificationEnabled
Firmateckningsanalys AI-analys av firmateckningsregler med matchning mot styrelsemedlemmar DataVerificationEnabled
PEP/Sanktionsscreening Screening mot PEP-listor, sanktionslistor och mediakällor Kommer snart

Autentisering

Alla anrop kräver en giltig API-nyckel i X-Api-Key-headern:

curl -H "X-Api-Key: YOUR_API_KEY" https://id.tic.io/api/v1/data/...

Kvotering

Företagsuppslag, kreditupplysning och firmateckningsanalys räknas mot din månatliga API-kvot (IdentityApiRequestsPerMonth i din prenumerationsplan). Kvoten räknas per kalendermånad (UTC) och nollställs den första i varje månad. När kvoten är förbrukad returneras 429 Too Many Requests för resterande anrop den månaden.

Varje svar innehåller headers som visar var du ligger:

Header Beskrivning
X-RateLimit-Limit Antal API-anrop som ingår per månad
X-RateLimit-Used Genomförda anrop hittills denna månad, inklusive det aktuella
X-RateLimit-Remaining Anrop kvar innan 429 returneras
X-RateLimit-Reset Tidpunkt (Unix-sekunder, UTC) när kvoten nollställs

Headers utelämnas när ingen kvot gäller. Ett avvisat anrop får dessutom Retry-After (sekunder till nollställning) och samma siffror i svarskroppen:

{
  "error": "quota_exceeded",
  "message": "Monthly API request quota exceeded: 500 of 500 requests used. The quota resets at 2026-10-01T00:00:00Z.",
  "limit": 500,
  "used": 500,
  "remaining": 0,
  "resetsAtUtc": "2026-10-01T00:00:00Z"
}

Aktuell förbrukning visas även under Statistik i portalen och i fältet apiRequests från GET /api/v1/usage.

Företagsuppslag med organisationsnummer

Slå upp företagsinformation med organisationsnummer och landskod.

GET /api/v1/data/company/{countryCode}/{regNr}

URL-parametrar

Parameter Typ Beskrivning
countryCode Required string ISO 3166-1 alpha-2 landskod. Stöds just nu: SE
regNr Required string Organisationsnummer (t.ex. 5566778899)
curl https://id.tic.io/api/v1/data/company/SE/5566778899 \
  -H "X-Api-Key: YOUR_API_KEY"

Response

200 OK
{
  "metadata": {
    "requestedAtUtc": "2026-02-10T10:30:00Z",
    "source": "typesense",
    "countryCode": "SE"
  },
  "data": {
    "companyId": 12345,
    "registrationNumber": "5566778899",
    "companyName": "Exempel AB",
    "legalEntityType": "Aktiebolag",
    "purpose": "Bolaget ska bedriva konsultverksamhet inom IT...",
    "registrationDate": "2004-01-01",
    "activityStatus": "IsActive",
    "lastStatus": {
      "statusType": "IsActive",
      "statusDate": "2004-01-15",
      "description": "Bolaget har registrerats"
    },
    "registeredAddress": {
      "streetAddress": "Storgatan 1",
      "co": null,
      "postalCode": "111 22",
      "city": "Stockholm",
      "countryCode": "SWE"
    },
    "isRegisteredForVAT": true,
    "isRegisteredForFTax": true,
    "isRegisteredForPayroll": true,
    "sniCodes2025": [
      {
        "code": "62010",
        "name": "Dataprogrammering",
        "section": "J",
        "rank": 1
      }
    ],
    "sniCodes2007": [
      {
        "code": "62010",
        "name": "Dataprogrammering",
        "section": "J",
        "rank": 1
      }
    ],
    "employeesCategory": "10-19 anställda",
    "turnoverCategory": "10-19 MSEK",
    "registeredOffice": {
      "municipality": "Stockholm",
      "municipalityCode": "0180",
      "county": "Stockholms län",
      "countyCode": "01"
    },
    "signatoryDescription": "Styrelsen i sin helhet",
    "representatives": [
      {
        "fullName": "Anna Andersson",
        "personalIdentityNumber": "19800101-****",
        "positionType": "BoardMember",
        "positionDescription": "Styrelseledamot",
        "positionStart": "2021-01-01",
        "positionEnd": null,
        "roleByCompanyName": null,
        "roleByCompanyRegistrationNumber": null,
        "employeeRepresentative": false,
        "auditorType": null
      }
    ],
    "beneficialOwners": [
      {
        "fullName": "Erik Eriksson",
        "personalIdentityNumber": "19750515-****",
        "countryOfResidenceCode": "SE",
        "citizenshipCountryCode": "SE",
        "extentCode": "KontrollOver50",
        "extentDescription": "Kontroll över mer än 50 procent",
        "governDescription": "Röstandel",
        "throughName": null,
        "throughRegistrationNumber": null,
        "fromDate": "2019-01-01"
      }
    ]
  }
}

Företagsuppslag med internt ID

Slå upp företagsinformation med internt företags-ID.

GET /api/v1/data/company/id/{companyId}

URL-parametrar

Parameter Typ Beskrivning
companyId Required int Internt företags-ID
curl https://id.tic.io/api/v1/data/company/id/12345 \
  -H "X-Api-Key: YOUR_API_KEY"

Response

200 OK

Samma svarsformat som företagsuppslag med organisationsnummer.

Kreditupplysning med organisationsnummer

Hämta kreditbetyg, riskklass och riskprognos för ett företag.

GET /api/v1/data/credit/{countryCode}/{regNr}

URL-parametrar

Parameter Typ Beskrivning
countryCode Required string ISO 3166-1 alpha-2 landskod. Stöds just nu: SE
regNr Required string Organisationsnummer
curl https://id.tic.io/api/v1/data/credit/SE/5566778899 \
  -H "X-Api-Key: YOUR_API_KEY"

Response

200 OK
{
  "metadata": {
    "requestedAtUtc": "2026-02-10T10:30:00Z",
    "source": "creditscore",
    "countryCode": "SE"
  },
  "data": {
    "creditScore": 72,
    "riskForecastClass": 3,
    "riskForecast": 2.45
  }
}

Om inget kreditbetyg kan beräknas returneras "data": null.

Kreditupplysning med internt ID

Hämta kreditbetyg, riskklass och riskprognos med internt företags-ID.

GET /api/v1/data/credit/id/{companyId}

URL-parametrar

Parameter Typ Beskrivning
companyId Required int Internt företags-ID
curl https://id.tic.io/api/v1/data/credit/id/12345 \
  -H "X-Api-Key: YOUR_API_KEY"

Response

200 OK

Samma svarsformat som kreditupplysning med organisationsnummer.

Firmateckningsanalys

AI-genererad analys av firmateckningsregler. Tolkar firmateckningsbeskrivningen från Bolagsverket och matchar reglerna mot registrerade styrelsemedlemmar och funktionärer.

AI-genererat innehåll
Analysen genereras av AI och kan innehålla felaktigheter. Verifiera alltid resultatet mot den ursprungliga signatoryDescription innan du fattar beslut baserat på analysen. Använd analysen som ett stöd, inte som en auktoritativ källa.
Svarstid
Första anropet för ett företag kan ta upp till 30 sekunder eftersom AI-analysen körs i realtid. Efterföljande anrop för samma företag (med oförändrad firmateckningsregel) returneras från cache och svarar omedelbart.
GET /api/v1/data/company/{countryCode}/{regNr}/signing-authority-analysis

URL-parametrar

Parameter Typ Beskrivning
countryCode Required string ISO 3166-1 alpha-2 landskod. Stöds just nu: SE
regNr Required string Organisationsnummer (t.ex. 5566778899)
curl https://id.tic.io/api/v1/data/company/SE/5566778899/signing-authority-analysis \
  -H "X-Api-Key: YOUR_API_KEY"

Response

200 OK
{
  "metadata": {
    "requestedAtUtc": "2026-02-17T10:30:00Z",
    "source": "Bolagsverket + AI",
    "countryCode": "SE"
  },
  "data": {
    "companyId": 12345,
    "registrationNumber": "5566778899",
    "companyName": "Exempel AB",
    "signatoryDescription": "Firman tecknas av styrelsen. Firman tecknas två i förening.",
    "analysis": {
      "summary": "Firman tecknas av styrelsen gemensamt, eller av två styrelseledamöter i förening.",
      "rules": [
        {
          "description": "Styrelsen gemensamt",
          "type": "board",
          "requiredSignatories": null,
          "requiredRoles": ["LE", "OF"]
        },
        {
          "description": "Två i förening",
          "type": "joint",
          "requiredSignatories": 2,
          "requiredRoles": ["LE", "OF", "VD"]
        }
      ],
      "eligiblePersons": [
        {
          "personId": 42,
          "personalIdentityNumber": "198001011234",
          "name": "Anna Svensson",
          "roles": ["Verkställande direktör", "Styrelseledamot"],
          "canSignAlone": false,
          "applicableRules": ["Två i förening"]
        }
      ]
    }
  }
}

Om företaget saknar registrerad firmateckningsbeskrivning returneras "signatoryDescription": null och "analysis": null.

Med internt ID

Samma analys kan hämtas med internt företags-ID istället för organisationsnummer.

GET /api/v1/data/company/id/{companyId}/signing-authority-analysis

URL-parametrar

Parameter Typ Beskrivning
companyId Required int Internt företags-ID
curl https://id.tic.io/api/v1/data/company/id/12345/signing-authority-analysis \
  -H "X-Api-Key: YOUR_API_KEY"

Response

200 OK

Samma svarsformat som firmateckningsanalys med organisationsnummer.

SigningAuthorityAnalysis-objekt

Fält Typ Beskrivning
summarystringSammanfattning på svenska av firmateckningsreglerna
rulesSigningRule[]Tolkade firmateckningsregler
eligiblePersonsEligiblePerson[]Personer som matchar firmateckningsreglerna

SigningRule-objekt

Fält Typ Beskrivning
descriptionstringBeskrivning av regeln
typestringRegeltyp: alone, joint, board, other
requiredSignatoriesint?Antal signatärer som krävs (t.ex. 2 för "två i förening")
requiredRolesstring[]Rolltyper som krävs (t.ex. ["VD", "LE"])

EligiblePerson-objekt

Fält Typ Beskrivning
personIdint?Internt person-ID (null om personen inte kunde matchas)
personalIdentityNumberstring?Personnummer eller samordningsnummer. För personer utan svenskt nummer (t.ex. utländska styrelseledamöter) endast det födelsedatum som är registrerat hos Bolagsverket – se identityNumberType
identityNumberTypestringVad personalIdentityNumber innehåller: personalIdentityNumber (personnummer eller samordningsnummer), birthDate (endast födelsedatum, ÅÅÅÅMM, ÅÅÅÅMMDD eller ÅÅÅÅMMDD0000 – inte unikt och ska aldrig ensamt användas som identitet), none (saknas), unknown (annat format)
namestringPersonens namn
nameInSignatoryTextstring?Namnet ordagrant som det står i firmateckningen, eller null om personen är behörig genom sin roll
matchTypestringHur säkert personen är kopplad till en nuvarande funktionär: exact (personnummer stämmer och personen är behörig genom sin roll, eller namnet i firmateckningen passar entydigt), fuzzyName (personnummer stämmer men namnet i firmateckningen avviker, t.ex. efter namnbyte eller stavningsskillnad, eller passar flera personer – bör kontrolleras manuellt), unmatched (kunde inte kopplas till någon nuvarande funktionär, t.ex. för att numret saknas, inte finns i styrelsen eller är ett födelsedatum som flera funktionärer delar)
rolesstring[]Personens roller i företaget
canSignAloneboolOm personen kan teckna firman ensam
applicableRulesstring[]Vilka regler som gäller för personen

Företagsuppslag datamodell

CompanyLookupData

Fält Typ Beskrivning
companyIdintInternt företags-ID
registrationNumberstringOrganisationsnummer
companyNamestring?Företagets juridiska namn
legalEntityTypestring?Bolagsform (t.ex. Aktiebolag, Handelsbolag)
purposestring?Verksamhetsbeskrivning
registrationDatestring?Registreringsdatum (ISO 8601, t.ex. 2004-01-01)
activityStatusstringAktivitetsstatus: HasNeverBeenActive, IsActive, IsNoLongerActive, Unknown
lastStatusLastStatus?Senaste status (se nedan)
registeredAddressAddress?Senast registrerad adress (se nedan)
isRegisteredForVATbool?Momsregistrerad
isRegisteredForFTaxbool?F-skattregistrerad
isRegisteredForPayrollbool?Registrerad som arbetsgivare
sniCodes2025SniCode[]?SNI 2025-koder (branschklassificering)
sniCodes2007SniCode[]?SNI 2007-koder (branschklassificering)
employeesCategorystring?Antal anställda (intervall)
turnoverCategorystring?Omsättning (intervall)
registeredOfficeRegisteredOffice?Säte (kommun och län)
signatoryDescriptionstring?Firmateckningsbeskrivning
representativesRepresentative[]?Nuvarande styrelseledamöter och firmatecknare
beneficialOwnersBeneficialOwner[]?Verkliga huvudmän

Address-objekt

Fält Typ Beskrivning
streetAddressstring?Gatuadress
costring?C/O-adress
postalCodestring?Postnummer
citystring?Postort
countryCodestring?Landskod (ISO 3166-1 alpha-3, t.ex. SWE)

SniCode-objekt

Används av både sniCodes2025 och sniCodes2007.

Fält Typ Beskrivning
codestring?SNI-kod
namestring?Branschbeskrivning
sectionstring?SNI-sektion (t.ex. J = Informations- och kommunikationsverksamhet)
rankbyte?Rangordning (1 = huvudbransch)

Representative-objekt

Personnummer maskeras som YYYYMMDD-****.

Fält Typ Beskrivning
fullNamestring?Fullständigt namn
personalIdentityNumberstring?Maskerat personnummer (YYYYMMDD-****)
positionTypestring?Befattningstyp (t.ex. BoardMember, CEO)
positionDescriptionstring?Befattningsbeskrivning
positionStartstring?Startdatum (ISO 8601, t.ex. 2021-01-01)
positionEndstring?Slutdatum (ISO 8601, null om pågående)
roleByCompanyNamestring?Roll via företagsnamn
roleByCompanyRegistrationNumberstring?Roll via organisationsnummer
employeeRepresentativebool?Arbetstagarrepresentant
auditorTypestring?Revisorstyp (CertifiedPublicAccountant, ApprovedAccountant, ForeignAuditor)

BeneficialOwner-objekt

Verklig huvudman. Personnummer maskeras som YYYYMMDD-****.

Fält Typ Beskrivning
fullNamestring?Fullständigt namn
personalIdentityNumberstring?Maskerat personnummer (YYYYMMDD-****)
countryOfResidenceCodestring?Bosättningsland
citizenshipCountryCodestring?Medborgarskapsland
extentCodestring?Omfattningskod
extentDescriptionstring?Omfattningsbeskrivning (t.ex. "Kontroll över mer än 50 procent")
governDescriptionstring?Typ av kontroll (t.ex. "Röstandel")
throughNamestring?Namn på mellanliggande bolag
throughRegistrationNumberstring?Organisationsnummer för mellanliggande bolag
fromDatestring?Startdatum (ISO 8601, t.ex. 2019-01-01)

LastStatus-objekt

Senaste registrerade status hos Bolagsverket.

Fält Typ Beskrivning
statusTypestringStatustyp (t.ex. IsActive, BankruptcyProceedingsCommenced, LiquidationDecided)
statusDatestring?Statusdatum (ISO 8601, t.ex. 2024-03-15)
descriptionstring?Statusbeskrivning

RegisteredOffice-objekt

Fält Typ Beskrivning
municipalitystring?Kommun
municipalityCodestring?Kommunkod
countystring?Län
countyCodestring?Länskod

Kreditupplysning datamodell

CompanyCreditData

Fält Typ Beskrivning
creditScoreint?Kreditbetyg (0-100, högre = bättre kreditvärdighet)
riskForecastClassbyte?Riskklass (1-5, där 1 = högst risk)
riskForecastdecimal?Riskprognos (sannolikhet för betalningssvårigheter). Värdet anges i procent, t.ex. 0.3 = 0,3% risk, inte 30%

Om inget kreditbetyg kan beräknas för det angivna företaget returneras "data": null. Detta kan inträffa om företaget saknar tillräckligt underlag för kreditbedömning.

Felhantering

Status Beskrivning
400 Ogiltig landskod (stöds just nu: SE)
401 Ogiltig eller saknad API-nyckel
403 Funktionen är inte aktiverad för din tenant (DataVerificationEnabled saknas)
429 Månatlig API-kvot förbrukad. Svaret har Retry-After samt limit, used och resetsAtUtc i kroppen, se Kvotering