API : Basis

API URL

  
URL : https://api.fflow.dk/api
  
Content : application/json
  
Method : POST
  
Body : JSON
Api returnerer altid 'StatusCode' 200 sammen med data (JSON) uanset hvilken type kommando (payload.action) man benytter.
Basis JSON som altid skal indeholde api_data.api_key og payload.action

KOPIER KOPIER
{
    "api_data": {
        "api_key": "DIN_API_NØGLE"
    },
    "payload": {
        "action": "KOMMANDO"
    }
}

api_data.api_key : string : (not null) : Din API nøgle som du finder under 'Indstillinger' => 'Api'. Bemærk du skal have administrator adgang som bruger på FFlow for at have adgang til din Api nøgle.

payload.action : string : (not null) : Kommandoen du vil udføre. F.eks 'overall_status' som returnerer en samlet oversigt over din kundekendskabs process.


response_status

KOPIER KOPIER
{
    "response_status": {
        "errorcode": 0,
        "errormessage": "OK"
    }
}

response_status.errorcode : int : (not null) : Returneres altid. Indeholder værdien '0' hvis kommando er udført uden fejl. Dette uanset om det er hente eller gemme kommando. Har kommandoen udløst en fejl, så angives fejlen med nummer.

response_status.errormessage : string : (not null) : Returneres altid. Indeholder beskrivelse af evt. fejl.


response_data

KOPIER KOPIER
{
    "response_status": {
        "errorcode": 0,
        "errormessage": "OK"
    },
    "response_data": { }
}

response_data : JSON data <string> : (null) : Returneres hvis der er data. response_data indeholder relevant data ud fra hvilken kommando som er udført.


C# kode eksempel

KOPIER KOPIER
using System;
using System.IO;
using System.Net;

namespace FFlow_API_TEST
{
    class Program
    {
        private const string URL = "https://api.fflow.dk/api";
        private const string JSON = @"{""api_data"":{""api_key"":""DIN_API_NØGLE""},""payload"":{""action"":""overall_status""}}";

        static void Main()
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
            request.Method = "POST";
            request.ContentType = "application/json";
            request.ContentLength = JSON.Length;
            using (Stream webStream = request.GetRequestStream())
            using (StreamWriter requestWriter = new StreamWriter(webStream, System.Text.Encoding.ASCII)) {requestWriter.Write(JSON); }

            try
            {
                WebResponse webResponse = request.GetResponse();
                using (Stream webStream = webResponse.GetResponseStream() ?? Stream.Null)
                using (StreamReader responseReader = new StreamReader(webStream))
                {
                    string response = responseReader.ReadToEnd();
                    Console.Out.WriteLine(response);
                    Console.ReadKey();
                }
            }
            catch (Exception e)
            {
                Console.Out.WriteLine("-----------------");
                Console.Out.WriteLine(e.Message);
                Console.ReadKey();
            }
        }
    }
}

response_status

KOPIER KOPIER
{
    "response_status": {
        "errorcode": 0,
        "errormessage": "OK"
    }
}

response_status.errorcode : int : (not null) : Returneres altid. Indeholder værdien '0' hvis kommando er udført uden fejl. Dette uanset om det er hente eller gemme kommando. Har kommandoen udløst en fejl, så angives fejlen med nummer.

response_status.errormessage : string : (not null) : Returneres altid. Indeholder beskrivelse af evt. fejl.


Fejlkodeliste

0 : OK
1 : Der opstod en serverfejl. Prøv igen om lidt...
8001 : CVR nummer må kun indeholde tal.
8002 : Angiv gyldigt CVR nummer.
8003 : Virksomheden kunne ikke findes i CVR registeret.
20000 : Du kan ikke oprette dig selv som klient
20004 : Klient ikke fundet.
40001 : API nøgle kunne ikke findes. Du kan finde din API nøgle under *Indstillinger* => *API*
40002 : API nøgle er låst. Kontakt FFlow på support@fflow.dk
40003 : Der kræves abonnement for at benytte API.
40004 : Værdien >XXXREPLACEXXX< i 'container.action' eksisterer ikke som kommando.
40005 : JSON kan ikke læses. Fejl i strukturen. Fejlbeskeden
40006 : Nøglen 'XXXREPLACEXXX' blev ikke fundet i JSON
40007 : Nøgleværdien i JSON har givet fejl => XXXREPLACEXXX
40008 : Nøgleværdien 'XXXREPLACEXXX' må ikke være null
40009 : Nøglen 'XXXREPLACEXXX' skal indeholde værdi
40010 : Nøgleværdien 'XXXREPLACEXXX' skal være et helt tal
40011 : Nøgleværdien 'XXXREPLACEXXX' må kun være af typen *INT*. Tallet er for stort
40012 : Nøgleværdien 'XXXREPLACEXXX' må ikke være et negativt tal
40013 : Værdien er for lang : XXXREPLACEXXX
40014 : 'payload.client_fflow_id', 'payload.client_inhouse_id' eller 'payload.client_cvr_number' skal indeholde værdi
40015 : Kundenummeret 'payload.client_inhouse_id' => 'XXXREPLACEXXX' eksisterer allerede.
40016 : Nøglen 'XXXREPLACEXXX' mangler CVR nummer
40017 : CVR nummer allerede oprettet som klient
40018 : Kundenummeret 'client_inhouse_id' => 'XXXREPLACEXXX' er allerede brugt som nøgle for klient.
40019 : Du har nået det maksimale antal klienter du kan oprette. Kontakt FFlow på support@fflow.dk
200000 : Der skete en fejl. Prøv igen.

API : Kommandoer

action : overall_status

KOPIER KOPIER
{
    "api_data": {
        "api_key": "DIN_API_NØGLE"
    },
    "payload": {
        "action": "overall_status"
    }
}

response_data

KOPIER KOPIER
{
    "response_status": {
        "errorcode": 0,
        "errormessage": "OK"
    },
    "response_data": {
        "status_all": {
            "clients_created": 8,
            "documents_waiting_uploaded": 5,
            "riscevaluations_missing": 7,
            "samplecontrols_ongoing": 1,
            "investigations_ongoing": 1,
            "clients_missing_information": 7,
            "documents_waiting_approval": 0,
            "alarm_notifications": 1
        }
    }
}

response_data.status_all.clients_created : int : (not null) : Returneres altid. Antallet af klienter oprettet. Dette er udelukkende klienter og ikke personer. Én klient er f.eks en virksomhed. Virksomheden kan deri have flere personer tilknyttet.

response_data.status_all.documents_waiting_uploaded : int : (not null) : Returneres altid. Antallet af dokumenter som afventer uploaded fra personer. Enten virksomhedsdokumenter eller ID (f.eks. PAS, kørekort m.m.).

response_data.status_all.riscevaluations_missing : int : (not null) : Returneres altid. Antallet af risikovurderinger som mangler at blive udført.

response_data.status_all.samplecontrols_ongoing : int : (not null) : Returneres altid. Antallet af igangværende kontroller.

response_data.status_all.investigations_ongoing : int : (not null) : Returneres altid. Antallet af igangværende undersøgelser.

response_data.status_all.clients_missing_information : int : (not null) : Returneres altid. Antallet af klienter som mangler information af en eller anden art.

response_data.status_all.documents_waiting_approval : int : (not null) : Returneres altid. Antallet af dokumenter som er blevet uploaded og afventer godkendelse. F.eks. virksomhedsdokumenter eller ID (PAS, kørekort m.m.).

response_data.status_all.alarm_notifications : int : (not null) : Returneres altid. Antallet af udløste alarmer. En alarm kan sættes til ved f.eks. udløb af PAS.

action : client_cvr_create

Opret klient via CVR nummer.

KOPIER KOPIER
{
  "api_data": {
        "api_key": "DIN_API_NØGLE"
  },
  "payload": {
        "action": "client_cvr_create",
        "client_cvr_number": 12345678,
        "client_inhouse_id": "ABC123"
  }
}

payload.client_cvr_number : int : (not null) : CVR nummer på virksomhed.

payload.client_inhouse_id : string : (null) : Valgfri ID som kan tilknyttes klienten. Angiv null hvis intet internt ID ønskes tilknyttet.


response_data

KOPIER KOPIER
{
    "response_status": {
        "errorcode": 0,
        "errormessage": "OK"
    },
    "response_data": {
        "client_created": {
            "client_fflow_id": 70117,
            "client_inhouse_id": "ABC123",
            "client_identifier": "12345678"
        }
    }
}

response_data.client_created.client_fflow_id : int : (not null) : Returneres altid. FFlow´s interne ID. Kan benyttes som reference til klienten.

response_data.client_created.client_inhouse_id : string : (not null) : Returneres altid. Jeres interne ID tilknyttet klienten. Kan benyttes som reference til klienten.

response_data.client_created.client_identifier : string : (not null) : Returneres altid. CVR nummeret. (Bemærk nøglen er af typen string. Dette skyldes client_identifier også benyttes til CPR numre hvis klient er oprettet som person)

action : client_status

Hent informationer for specifik klient

KOPIER KOPIER
{
  "api_data": {
        "api_key": "DIN_API_NØGLE"
  },
  "payload": {
        "action": "client_status",
        "client_fflow_id": null,
        "client_inhouse_id": "ABC123",
        "client_identifier": null
  }
}

payload.client_fflow_id : int : (null) : FFlow´s interne ID. Er ID gemt ved oprettelsen, kan denne benyttes som reference.

payload.client_inhouse_id : string : (null) : Er internt ID tilknyttet klienten ved oprettelsen, kan denne benyttes som reference.

payload.client_identifier : string : (null) : Kan være CVR nummer eller CPR nummer (XXXXXX-XXXX).


  
Mindst én af nøglerne skal have værdi. Alle nøglerne skal være til stede i JSON. Nøgler som ikke bruges skal have værdien null

response_data

KOPIER KOPIER
{
    "response_status": {
        "errorcode": 0,
        "errormessage": "OK"
    },
    "response_data": {
        "client": {
            "client_identifier": "12345678",
            "client_type": 1,
            "client_fflow_id": 70117,
            "client_inhouse_id": "ABC123",
            "client_name": "Firmanavn ApS"
        },
        "client_status": {
            "missing_risk": 1,
            "missing_purpose_text": 1,
            "missing_purpose_tasks": 1,
            "missing_description": 1,
            "missing_persons": 1,
            "missing_documents_approval": 0,
            "missing_relationship_start": 1,
            "missing_investigations": 0,
            "missing_samplecontrol": 0,
            "documents_waiting_upload": 0,
            "documents_waiting_approval": 0,
            "person_information_waiting_upload": 0,
            "person_information_waiting_approval": 0,
            "alarm_notifications": 0
        },
        "client_persons": [
            {
                "person_fflow_id": 60080,
                "cvr_virk_id": 4000605673,
                "cpr_number": "010190-1003",
                "person_name": "Anders Andersen",
                "person_address1": "Vejadresse 1",
                "person_address2": "",
                "person_zipcode": "2610",
                "person_city": "Rødovre",
                "person_phonenumber": "",
                "person_phonenumber2": "",
                "person_email": "",
                "birthdate": "19900101",
                "person_is_foreigner": 0,
                "foreigner_number": "",
                "missing_data": 1,
                "missing_email": 1,
                "missing_cpr_number": 1,
                "missing_foreigner_id_number": 0,
                "missing_identification": 1,
                "waiting_upload_response": 0,
                "waiting_document_approval": 0
            },
            {
                "person_fflow_id": 60081,
                "cvr_virk_id": 4000635460,
                "cpr_number": "",
                "person_name": "Sine Andersen",
                "person_address1": "Vejnavn 2",
                "person_address2": "",
                "person_zipcode": "4772",
                "person_city": "Langebæk",
                "person_phonenumber": "",
                "person_phonenumber2": "",
                "person_email": "",
                "birthdate": "",
                "person_is_foreigner": 0,
                "foreigner_number": "",
                "missing_data": 1,
                "missing_email": 1,
                "missing_cpr_number": 1,
                "missing_foreigner_id_number": 0,
                "missing_identification": 1,
                "waiting_upload_response": 0,
                "waiting_document_approval": 0
            }
        ]
    }
}

response_data.client

response_data.client.client_type : int : (not null) : Virksomheder har værdien 1. Personer oprettet som klient har værdien 2.

response_data.client.client_name : string : (not null) : Klientnavn. Enten virksomhedens navn eller personens navn.

response_data.client_created.client_identifier : string : (not null) : CVR nummeret. (Bemærk nøglen er af typen string. Dette skyldes client_identifier også benyttes til CPR numre hvis klient er oprettet som person)


response_data.client_status

response_data.client_status.missing_risk : int : (0/1) : Om der mangler udførelse af risikovurdering på klient.

response_data.client_status.missing_purpose_text : int : (0/1) : Om der mangler formålsbeskrivelse af klient.

response_data.client_status.missing_purpose_tasks : int : (0/1) : Om der mangler angivelse af opgavetyper for klient.

response_data.client_status.missing_description : int : (0/1) : Om der mangler klientbeskrivelse.

response_data.client_status.missing_persons : int : (0/1) : Om én eller flere personer tilknyttet klienten mangler information.

response_data.client_status.missing_documents_approval : int : (0/1) : Om klienten har én eller flere dokumenter som afventer godkendelse.

response_data.client_status.missing_relationship_start : int : (0/1) : Om klient mangler angivet startdato for opstart af klientforhold.

response_data.client_status.missing_investigations : int : (0/1) : Om der er igangværende undersøgelser af klient.

response_data.client_status.missing_samplecontrol : int : (0/1) : Om der er igangværende kontroller af klient.

response_data.client_status.documents_waiting_upload : int : (0/1) : Om der afventes upload af virksomhedsdokumenter.

response_data.client_status.documents_waiting_approval : int : (0/1) : Om der afventes godkendelse af uploadede virksomhedsdokumenter

response_data.client_status.person_information_waiting_upload : int : (0/1) : Om der ventes på upload af person informationer (PAS, kørekort m.m.)

response_data.client_status.person_information_waiting_approval : int : (0/1) : Om der ventes på godkendelse af person information (PAS, kørekort m.m.)

response_data.client_status.alarm_notifications : int : (0/1) : Om der forelægger aktiverede alarmer. F.eks hvis der er sat alarm på udløb af PAS.


response_data.client_persons

response_data.client_persons : ARRAY : (null) : Array indeholder personer tilknyttet klient.


client_persons.array.item

person_fflow_id : int : (not null) : FFlow´s interne id.

cvr_virk_id : int : (not null) : CVR registerets interne id. Gemmes sammen med personen når udtræk fra CVR registeret foretages.

cpr_number : string : (not null) : CPR nummer (XXXXXX-XXXX).

birthdate : string : (not null) : Fødselsdato YYYYMMDD

person_is_foreigner : int : (0/1) : Hvis person ikke har CPR nummer er værdien 1

foreigner_number : string : (not null) : Hvis person ikke har CPR nummer, så angives andet ID (Udenlandsk ID).

missing_data : int : (0/1) : Om der mangler indtastning eller indhentning af information på person.

missing_email : int : (0/1) : Om anførelse af email for person mangler.

missing_cpr_number : int : (0/1) : Om angivelse af CPR nummer mangler for person

missing_foreigner_id_number : int : (0/1) : Om angivelse af udenlandsk id mangler. Kun relevant hvis person ikke har CPR nummer. ('person_is_foreigner' == 1)

missing_identification : int : (0/1) : Om person mangler at få identitet bekræftet.

waiting_upload_response : int : (0/1) : Om der afventes upload af oplysninger fra person (PAS, kørekort m.m.).

waiting_document_approval : int : (0/1) : Om der afventes godkendelse af uploaded information fra person (PAS, kørekort m.m.).

action : clients_missing_information

Liste over klienter som ikke er færdigbehandlet.

KOPIER KOPIER
{
  "api_data": {
        "api_key": "DIN_API_NØGLE"
  },
  "payload": {
        "action": "clients_missing_information"
  }
}

response_data

KOPIER KOPIER
{
    "response_status": {
        "errorcode": 0,
        "errormessage": "OK"
    },
    "response_data": {
        "clients_missing_information": [
            {
                "client_fflow_id": 70103,
                "client_inhouse_id": "ABC123",
                "client_name": "Firmanavn A"
            },
            {
                "client_fflow_id": 70104,
                "client_inhouse_id": "ABC1234",
                "client_name": "Firmanavn B"
            }
        ]
    }
}

response_data.clients_missing_information

response_data.clients_missing_information : ARRAY : (null) : Array indeholder klienter som ikke er færdigbehandlet.


clients_missing_information.array.item

client_fflow_id : int : (not null) : FFlow´s interne ID. Kan benyttes som reference til klienten.

client_inhouse_id : string : (not null) : Jeres interne ID tilknyttet klienten. Kan benyttes som reference til klienten.

client_name : string : (not null) : Klientnavnet.

action : peplist_all

Alle PEP personer

KOPIER KOPIER
{
  "api_data": {
        "api_key": "DIN_API_NØGLE"
  },
  "payload": {
        "action": "peplist_all"
  }
}

response_data

KOPIER KOPIER
{
    "response_status": {
        "errorcode": 0,
        "errormessage": "OK"
    },
    "response_data": {
        "peplist_information": {
            "peplist_updated": "20210527"
        },
        "peplist": [
            {
                "name": "Thomas Danielsen",
                "job_position": "Venstre",
                "date_birth": "19830624",
                "date_pep_added": "20200630",
                "date_pep_expire": ""
            },
            {
                "name": "Kathrine Olldag",
                "job_position": "Radikale Venstre",
                "date_birth": "19721220",
                "date_pep_added": "20190625",
                "date_pep_expire": ""
            },
            {
                "name": "Linea Søgaard-Lidell",
                "job_position": "Venstre",
                "date_birth": "19870330",
                "date_pep_added": "20201102",
                "date_pep_expire": ""
            }
        ]
    }
}

response_data.peplist_information

response_data.peplist_information.peplist_updated : string : (not null) : YYYYMMDD : Dato for sidst opdateret fra finanstilsynet.


response_data.peplist

response_data.peplist : ARRAY : (null) : Array indeholder PEP personer.


peplist.array.item

date_birth : string : (not null) : YYYYMMDD : Fødselsdato

date_pep_added : string : (not null) : YYYYMMDD : Dato hvor person blev tilføjet PEPlisten af finanstilsynet.

date_pep_expire : string : (not null) : YYYYMMDD : Udløbsdato. Når en person fjernes fra PEPlisten af finanstilsynet, så er personen stadig aktiv på PEPlisten et år derefter.

action : peplist_search

Søg i PEPlisten

KOPIER KOPIER
{
  "api_data": {
        "api_key": "DIN_API_NØGLE"
  },
  "payload": {
        "action": "peplist_search",
        "search_string": "bente"
  }
}

payload.search_string : string : (not null) : Søgeord eller fødselsdato. Ved fødselsdato angiv datoen YYYYMMDD. Nøglen skal indeholde værdi.


response_data

KOPIER KOPIER
{
    "response_status": {
        "errorcode": 0,
        "errormessage": "OK"
    },
    "response_data": {
        "peplist_information": {
            "peplist_updated": "20210527"
        },
        "peplist": [
            {
                "name": "Bente Holm Villadsen",
                "job_position": "Alternativet",
                "date_birth": "19621018",
                "date_pep_added": "20210104",
                "date_pep_expire": ""
            },
            {
                "name": "Bente Overgaard",
                "job_position": "Finansiel Stabilitet, bestyrelse",
                "date_birth": "19640621",
                "date_pep_added": "20171229",
                "date_pep_expire": ""
            }
        ]
    }
}

response_data.peplist_information

response_data.peplist_information.peplist_updated : string : (not null) : YYYYMMDD : Dato for sidst opdateret fra finanstilsynet.


response_data.peplist

response_data.peplist : ARRAY : (null) : Array indeholder PEP personer.


peplist.array.item

date_birth : string : (not null) : YYYYMMDD : Fødselsdato

date_pep_added : string : (not null) : YYYYMMDD : Dato hvor person blev tilføjet PEPlisten af finanstilsynet.

date_pep_expire : string : (not null) : YYYYMMDD : Udløbsdato. Når en person fjernes fra PEPlisten af finanstilsynet, så er personen stadig aktiv på PEPlisten et år derefter.

© 2022 - FFlow | Kundekendskab
FFlow ApS : CVR 40651667

Vores support kan kontaktes på e-mail: support@fflow.dk
Du kan læse vores: abonnementsbetingelser , databehandleraftale , persondatapolitik , cookiepolitik
FFlow ApS
Bymidten 80
3500 Værløse
Kontakt e-mail: support@fflow.dk
Cvr-nr. 40651667