Overblik

XML skemaer til Renteindberetninger

XML skemaerne for renteindberetninger gældende fra 2017 og frem, ligger tilgængelig på GitHub hvor der er 3 branches.

  • master som er nyeste nye. Betragt det som et "kig ind i fremtiden".

  • TFE som er den udgave som er i drift i TFE (Test For Erhverv) miljøet

  • PROD som er den udgave som er i drift i produktionsmiljøet.

Referenceklient

Der findes en referenceklient til servicen som frit kan hentes. Denne er skrevet i Groovy, og kan bruges som inspiration til en klient.

Sikkerhed

Der bruges 2-vejs-ssl til al kommuminkation med servicen.

Begreber

Begreb Beskrivelse
Indberetter
Den SKAT entitet (SE-nummer) som rent faktisk udfører indberetningen. Kan også være den indberetningspligtige. (Kaldes også bureau (i forhold til indberetningspligtig) hvis indberetter er forskellig fra pligtig.)
Indberetningspligtig
Den juridiske entitet som skal foretage indberetningen. Kan være indberetter.
Kontohaver
Den juridiske entitet som indberetningen omhandler. Enheden hvorpå beskatningen sker.
rentekategori
Angivelse af rentetype, som kan have én af fire værdier: * udlån * indlån * pantebreve * prioritetslån
pligtigSeNummer
SE-nummer(CVR) på den Indberetningspligtig, som er den jURLdiske entitet der har indberetningspligten.
periodeDato
Enten 4 cifre (et år), eller 4 cifre for år, samt nummeret på ultimo måned (med foran stillet 0) Gyldige eksempler: 2017, 2017-03, 2017-06, 2017-09, 2017-12
kontoId
Identifikation af Indberetningspligtige finansielle konti (den Indberetningspligtige Kontohavers, konto nummer)
indleveringId
Nummeret for indleveringen. For hver gang en indlevering registreres. Tildeles den et nyt (fortløbende) nummer.

HTTP verb

Rente lægger sig op ad standard HTTP og REST-konventioner i brugen af HTTP verber/metoder og statuskoder.

Verb Beskrivelse

POST

Bruges til at oprette en ny resource

GET

Bruges til at hente en resource

Opret indlevering POST

POST request indeholdende valid XML for at indlevere.

Requeststruktur

URL Beskrivelse

{scheme}://{host}/{rentekategori}/pligtige/{pligtigSeNummer}/ perioder/{periodeDato}/masseindleveringer/

Opret en indlevering for et givent kontoid. Der returneres et id, på indleveringen, som har fortløbende nummerering. Den er fortløbende inden for følgende kombination: kontoid, periode og pligtigs SE-nummer.

HTTP-statuskoder

Rente lægger sig op ad standard HTTP og REST-konventioner i brugen af HTTP statuskoder.

Statuskode Beskrivelse

201 Created

Indleveringen blev modtaget og dens status er tilgængelig via responsets Location header

401 Unauthorized

Brugeren har ikke angivet credentials

403 Forbidden

Brugeren har ikke skriveadgang

404 Not Found

Det angivne SE-nummer findes ikke.

Indleveringen indeholder valid XML

Foretag indlevering med valid XML

Eksempel-request 201 Created

URL Beskrivelse

/{rentekategori}/pligtige/{pligtigSeNummer}/ perioder/{periodeDato}/konti/{kontoId}/indleveringer

Tilføje (registrere) indlevering for den givne kontoid. Response body indeholder det som ellers kan hentes på `/{indleveringId}/status.

curl
$ curl 'https://api.tse3pindberet.tfe.skat.dk/udl%C3%A5n/pligtige/61126228/perioder/2017/konti/1234/indleveringer' -i -X POST -H 'Content-Type: application/xml;charset=UTF-8' -d '<?xml version="1.0" encoding="UTF-8"?>
<RenteIndberetningUdlånStruktur xmlns="https://api.tse3pindberet.tfe.skat.dk/ekapital/2016/01/01" xmlns:xsi="https://api.tse3pindberet.tfe.skat.dk/2001/XMLSchema-instance" xsi:schemaLocation="https://api.tse3pindberet.tfe.skat.dk/ekapital/2016/01/01 file:/Users/mortensoby/work/skat/source/rente_schemas/xml/skat2016/view/RenteIndberetningUdlaanStrukturType.xsd">
  <Indkomstperiode>
    <IndkomstÅr>2017</IndkomstÅr>
  </Indkomstperiode>
  <Indberetningspligtig>
    <VirksomhedSENummer>61126228</VirksomhedSENummer>
  </Indberetningspligtig>
  <KontoID>88026409705539655893</KontoID>
  <IndberetningValg>
    <RetbarUdlånKontoOplysninger>
      <IndberetningIdentifikatorStruktur>
        <IndberetningID>159429fe-02ce-453f-97e5-fe032585202f</IndberetningID>
      </IndberetningIdentifikatorStruktur>
      <NoteTekst>TbjILwKhTS</NoteTekst>
      <KontoDetaljer>
        <UdlånKontoNummer>UdlånKontoNumme</UdlånKontoNummer>
        <KontoTypeKode>53</KontoTypeKode>
        <KontoStartDato>2006-05-04</KontoStartDato>

        <RenteValutaStatusKode>R</RenteValutaStatusKode>
      </KontoDetaljer>
      <Beløb>
        <RenteBeløb>1000.00</RenteBeløb>
        <LånRestgældBeløb>250000.80</LånRestgældBeløb>
        <LånKursværdi>300000.00</LånKursværdi>
      </Beløb>
      <KontohaverIndkomstperiodeValg>
        <KontohaverPeriodeÅrsUltimoListe>
          <EjerkredsPeriode>
            <RenteBeløb>1000.00</RenteBeløb>
            <EjerkredsOpstartDato>2017-11-15Z</EjerkredsOpstartDato>
            <EjerkredsOphørDato>2017-11-15Z</EjerkredsOphørDato>
            <FlereEndToKontohavereIkkeAlleOplyst>false</FlereEndToKontohavereIkkeAlleOplyst>
            <KontohaverListe>
              <KontohaverOplysninger>
                <KontohaverValg>
                  <IndlændingValg>
                    <PersonValg>
                      <PersonCPRNummer>1505701949</PersonCPRNummer>
                    </PersonValg>
                  </IndlændingValg>
                </KontohaverValg>
              </KontohaverOplysninger>
            </KontohaverListe>
          </EjerkredsPeriode>
        </KontohaverPeriodeÅrsUltimoListe>
      </KontohaverIndkomstperiodeValg>
    </RetbarUdlånKontoOplysninger>
  </IndberetningValg>
</RenteIndberetningUdlånStruktur>
'
HTTP
POST /udl%C3%A5n/pligtige/61126228/perioder/2017/konti/1234/indleveringer HTTP/1.1
Content-Type: application/xml;charset=UTF-8
Host: api.tse3pindberet.tfe.skat.dk
Content-Length: 2347

<?xml version="1.0" encoding="UTF-8"?>
<RenteIndberetningUdlånStruktur xmlns="https://api.tse3pindberet.tfe.skat.dk/ekapital/2016/01/01" xmlns:xsi="https://api.tse3pindberet.tfe.skat.dk/2001/XMLSchema-instance" xsi:schemaLocation="https://api.tse3pindberet.tfe.skat.dk/ekapital/2016/01/01 file:/Users/mortensoby/work/skat/source/rente_schemas/xml/skat2016/view/RenteIndberetningUdlaanStrukturType.xsd">
  <Indkomstperiode>
    <IndkomstÅr>2017</IndkomstÅr>
  </Indkomstperiode>
  <Indberetningspligtig>
    <VirksomhedSENummer>61126228</VirksomhedSENummer>
  </Indberetningspligtig>
  <KontoID>88026409705539655893</KontoID>
  <IndberetningValg>
    <RetbarUdlånKontoOplysninger>
      <IndberetningIdentifikatorStruktur>
        <IndberetningID>159429fe-02ce-453f-97e5-fe032585202f</IndberetningID>
      </IndberetningIdentifikatorStruktur>
      <NoteTekst>TbjILwKhTS</NoteTekst>
      <KontoDetaljer>
        <UdlånKontoNummer>UdlånKontoNumme</UdlånKontoNummer>
        <KontoTypeKode>53</KontoTypeKode>
        <KontoStartDato>2006-05-04</KontoStartDato>

        <RenteValutaStatusKode>R</RenteValutaStatusKode>
      </KontoDetaljer>
      <Beløb>
        <RenteBeløb>1000.00</RenteBeløb>
        <LånRestgældBeløb>250000.80</LånRestgældBeløb>
        <LånKursværdi>300000.00</LånKursværdi>
      </Beløb>
      <KontohaverIndkomstperiodeValg>
        <KontohaverPeriodeÅrsUltimoListe>
          <EjerkredsPeriode>
            <RenteBeløb>1000.00</RenteBeløb>
            <EjerkredsOpstartDato>2017-11-15Z</EjerkredsOpstartDato>
            <EjerkredsOphørDato>2017-11-15Z</EjerkredsOphørDato>
            <FlereEndToKontohavereIkkeAlleOplyst>false</FlereEndToKontohavereIkkeAlleOplyst>
            <KontohaverListe>
              <KontohaverOplysninger>
                <KontohaverValg>
                  <IndlændingValg>
                    <PersonValg>
                      <PersonCPRNummer>1505701949</PersonCPRNummer>
                    </PersonValg>
                  </IndlændingValg>
                </KontohaverValg>
              </KontohaverOplysninger>
            </KontohaverListe>
          </EjerkredsPeriode>
        </KontohaverPeriodeÅrsUltimoListe>
      </KontohaverIndkomstperiodeValg>
    </RetbarUdlånKontoOplysninger>
  </IndberetningValg>
</RenteIndberetningUdlånStruktur>

Responsstruktur

Path Type Description

data.id

String

Id

data.type

String

Indleveringstypen

data.links.indlevering

String

Indleveringen

data.attributes.status

String

Valideringsstatus, kan være FIL_IKKE_GENKENDT_SOM_XML, FEJL_VED_XML_VALIDERING, FEJL_I_IKKE_RETBARE_FELTER, RETTELSESPRINCIP_IKKE_OVERHOLDT, FORRETNINGSMAESSIG_IKKE_VALID eller VALID

data.attributes.beskeder

Array

Beskeder

links.self

String

Status på indleverings resourcen

Eksempel-respons

HTTP/1.1 201 Created
Access-Control-Expose-Headers: origin, authorization, accept, content-type, x-requested-with, x-amz-version-id, ETag, Content-MD5, Location, Set-Cookie, X-Application-Context, Access-Control-Allow-Origin, Access-Control-Allow-Credentials,
Location: /udl%C3%A5n/pligtige/61126228/perioder/2017/konti/1234/indleveringer/3/status
Content-Type: application/vnd.api+json;charset=UTF-8
Content-Language: da-DA
Transfer-Encoding: chunked

{
  "data" : {
    "id" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/3",
    "type" : "indlevering-status",
    "attributes" : {
      "status" : "FEJL_I_IKKE_RETBARE_FELTER",
      "beskeder" : [ "FEJL FEJL_I_IKKE_RETBARE_FELTER: Værdien af '/RenteIndberetningUdlånStruktur/KontoID' skal være 1234" ]
    },
    "links" : {
      "indlevering" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/3"
    }
  },
  "links" : {
    "self" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/3/status"
  }
}

Foretag indlevering med en IKKE valid XML

Eksempel-request 201 Created

URL Beskrivelse

/{rentekategori}/pligtige/{pligtigSeNummer}/ perioder/{periodeDato}/konti/{kontoId}/indleveringer

curl
$ curl 'https://api.tse3pindberet.tfe.skat.dk/udl%C3%A5n/pligtige/61126228/perioder/2017/konti/1234/indleveringer' -i -X POST -H 'Content-Type: application/xml;charset=UTF-8' -d 'DET HER ER IKKE XML'
HTTP
POST /udl%C3%A5n/pligtige/61126228/perioder/2017/konti/1234/indleveringer HTTP/1.1
Content-Type: application/xml;charset=UTF-8
Host: api.tse3pindberet.tfe.skat.dk
Content-Length: 19

DET HER ER IKKE XML

Eksempel-respons

Det ses i status feltet at der forkommer en fejl.

HTTP/1.1 201 Created
Access-Control-Expose-Headers: origin, authorization, accept, content-type, x-requested-with, x-amz-version-id, ETag, Content-MD5, Location, Set-Cookie, X-Application-Context, Access-Control-Allow-Origin, Access-Control-Allow-Credentials,
Location: /udl%C3%A5n/pligtige/61126228/perioder/2017/konti/1234/indleveringer/4/status
Content-Type: application/vnd.api+json;charset=UTF-8
Content-Language: da-DA
Transfer-Encoding: chunked

{
  "data" : {
    "id" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/4",
    "type" : "indlevering-status",
    "attributes" : {
      "status" : "FEJL_VED_XML_VALIDERING",
      "beskeder" : [ "FEJL 0086: Filen kunne ikke læses som XML." ]
    },
    "links" : {
      "indlevering" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/4"
    }
  },
  "links" : {
    "self" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/4/status"
  }
}

Opslag på indleveringer GET

Det er muligt at hente oplysninger om alle indleveringer for en konto inden for en given periode.

Se status på en konto

GET request for at se status for kontonummer i perioden, herunder oplysninger om evt. gældende indlevering

HTTP-statuskoder

Rente lægger sig op ad standard HTTP og REST-konventioner i brugen af HTTP statuskoder.

Statuskode Brug

200 OK

Oplysninger om kontoen samt den gældende indlevering i den givne periode

401 Unauthorized

Brugeren har ikke angivet credentials

403 Forbidden

Brugeren har ikke læseadgang

404 Not Found

Enten findes SE-nummeret ikke eller også er der ikke lavet nogen indberetninger for kontoen inden for perioden.

Eksempel-request

URL Beskrivelse

/{rentekategori}/pligtige/{pligtigSeNummer}/ perioder/{periodeDato}/konti/{kontoId}

Se status mm. for et kontoid. (Status 404 hvis der ikke endnu er foretaget nogen indleveringer.)

curl
$ curl 'https://api.tse3pindberet.tfe.skat.dk/udl%C3%A5n/pligtige/61126228/perioder/2017/konti/87752656870618683768' -i
HTTP
GET /udl%C3%A5n/pligtige/61126228/perioder/2017/konti/87752656870618683768 HTTP/1.1
Host: api.tse3pindberet.tfe.skat.dk

Responsstruktur

Path Type Description

data.id

String

Id på den specifikke indlevering

data.type

String

Indleveringstypen

data.attributes.status

String

Valideringsstatus, kan være FIL_IKKE_GENKENDT_SOM_XML, FEJL_VED_XML_VALIDERING, FEJL_I_IKKE_RETBARE_FELTER, RETTELSESPRINCIP_IKKE_OVERHOLDT, FORRETNINGSMAESSIG_IKKE_VALID eller VALID

data.links.senesteIndlevering

String

Seneste indlevering, ikke nødvendigvis den gældende

data.links.gældendeIndberetning

String

Gældende indberetning

data.links.status

String

Link til status for indleveringen

links.self

String

Link der genererede nærværende dokument

Eksempel-respons

HTTP/1.1 200 OK
Access-Control-Expose-Headers: origin, authorization, accept, content-type, x-requested-with, x-amz-version-id, ETag, Content-MD5, Location, Set-Cookie, X-Application-Context, Access-Control-Allow-Origin, Access-Control-Allow-Credentials,
Location: /udl%C3%A5n/pligtige/61126228/perioder/2017/konti/87752656870618683768
Content-Type: application/vnd.api+json;charset=UTF-8
Content-Language: da-DA
Transfer-Encoding: chunked

{
  "data" : {
    "id" : "/udlån/pligtige/61126228/perioder/2017/konti/87752656870618683768",
    "type" : "konto",
    "attributes" : {
      "status" : "VALID"
    },
    "links" : {
      "senesteIndlevering" : "/udlån/pligtige/61126228/perioder/2017/konti/87752656870618683768/indleveringer/1",
      "gældendeIndberetning" : "/udlån/pligtige/61126228/perioder/2017/konti/87752656870618683768/indleveringer/1",
      "status" : "/udlån/pligtige/61126228/perioder/2017/konti/87752656870618683768/indleveringer/1/status"
    }
  },
  "links" : {
    "self" : "/udlån/pligtige/61126228/perioder/2017/konti/87752656870618683768"
  }
}

Se indlevering for en konto

GET request for at se indholdet af indleveringen

HTTP-statuskoder

Rente lægger sig op ad standard HTTP og REST-konventioner i brugen af HTTP statuskoder.

Statuskode Brug

200 OK

Indholdet af den efterspurgte indlevering

401 Unauthorized

Brugeren har ikke angivet credentials

403 Forbidden

Brugeren har ikke læseadgang

404 Not Found

Indleveringen findes ikke

Eksempel-request

URL Beskrivelse

/{rentekategori}/pligtige/{pligtigSeNummer}/ perioder/{periodeDato}/konti/{kontoId}/indleveringer/{indleveringId}

Henter en allerede registreret indlevering. Råt!

curl
$ curl 'https://api.tse3pindberet.tfe.skat.dk/udl%C3%A5n/pligtige/61126228/perioder/2017/konti/1234/indleveringer/2' -i
HTTP
GET /udl%C3%A5n/pligtige/61126228/perioder/2017/konti/1234/indleveringer/2 HTTP/1.1
Host: api.tse3pindberet.tfe.skat.dk

Eksempel-respons

HTTP/1.1 200 OK
Access-Control-Expose-Headers: origin, authorization, accept, content-type, x-requested-with, x-amz-version-id, ETag, Content-MD5, Location, Set-Cookie, X-Application-Context, Access-Control-Allow-Origin, Access-Control-Allow-Credentials,
Location: /udl%C3%A5n/pligtige/61126228/perioder/2017/konti/1234/indleveringer/2
Content-Type: application/xml
Transfer-Encoding: chunked

<?xml version="1.0" encoding="UTF-8"?>
<RenteIndberetningUdlånStruktur xmlns="http://skat.dk/ekapital/2016/01/01" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://skat.dk/ekapital/2016/01/01 file:/Users/mortensoby/work/skat/source/rente_schemas/xml/skat2016/view/RenteIndberetningUdlaanStrukturType.xsd">
  <Indkomstperiode>
    <IndkomstÅr>2017</IndkomstÅr>
  </Indkomstperiode>
  <Indberetningspligtig>
    <VirksomhedSENummer>61126228</VirksomhedSENummer>
  </Indberetningspligtig>
  <KontoID>67511349611905516645</KontoID>
  <IndberetningValg>
    <RetbarUdlånKontoOplysninger>
      <IndberetningIdentifikatorStruktur>
        <IndberetningID>57eb1757-b7b0-47f5-80ce-8e37fbb22408</IndberetningID>
      </IndberetningIdentifikatorStruktur>
      <NoteTekst>PcWWTOyBGn</NoteTekst>
      <KontoDetaljer>
        <UdlånKontoNummer>UdlånKontoNumme</UdlånKontoNummer>
        <KontoTypeKode>53</KontoTypeKode>
        <KontoStartDato>2006-05-04</KontoStartDato>

        <RenteValutaStatusKode>R</RenteValutaStatusKode>
      </KontoDetaljer>
      <Beløb>
        <RenteBeløb>1000.00</RenteBeløb>
        <LånRestgældBeløb>250000.80</LånRestgældBeløb>
        <LånKursværdi>300000.00</LånKursværdi>
      </Beløb>
      <KontohaverIndkomstperiodeValg>
        <KontohaverPeriodeÅrsUltimoListe>
          <EjerkredsPeriode>
            <RenteBeløb>1000.00</RenteBeløb>
            <EjerkredsOpstartDato>2017-11-15Z</EjerkredsOpstartDato>
            <EjerkredsOphørDato>2017-11-15Z</EjerkredsOphørDato>
            <FlereEndToKontohavereIkkeAlleOplyst>false</FlereEndToKontohavereIkkeAlleOplyst>
            <KontohaverListe>
              <KontohaverOplysninger>
                <KontohaverValg>
                  <IndlændingValg>
                    <PersonValg>
                      <PersonCPRNummer>1505701949</PersonCPRNummer>
                    </PersonValg>
                  </IndlændingValg>
                </KontohaverValg>
              </KontohaverOplysninger>
            </KontohaverListe>
          </EjerkredsPeriode>
        </KontohaverPeriodeÅrsUltimoListe>
      </KontohaverIndkomstperiodeValg>
    </RetbarUdlånKontoOplysninger>
  </IndberetningValg>
</RenteIndberetningUdlånStruktur>

Henter status på en indlevering

GET request for at hente status på en indlevering

Statuskode Brug

200 OK

Oplysninger om den efterspurgte indlevering

401 Unauthorized

Brugeren har ikke angivet credentials

403 Forbidden

Brugeren har ikke læseadgang

404 Not Found

Indleveringen findes ikke

Eksempel-request

URL Beskrivelse

/{rentekategori}/pligtige/{pligtigSeNummer}/ perioder/{periodeDato}/konti/{kontoId}/indleveringer/{indleveringId}/status

Status for den enkelt indlevering

curl
$ curl 'https://api.tse3pindberet.tfe.skat.dk/udl%C3%A5n/pligtige/61126228/perioder/2017/konti/1234/indleveringer/1/status' -i
HTTP
GET /udl%C3%A5n/pligtige/61126228/perioder/2017/konti/1234/indleveringer/1/status HTTP/1.1
Host: api.tse3pindberet.tfe.skat.dk

Responsstruktur

Path Type Description

data.id

String

Id

data.type

String

Indleveringstypen, kan være

data.links.indlevering

String

Indleveringen

data.attributes.status

String

Valideringsstatus, kan være FIL_IKKE_GENKENDT_SOM_XML, FEJL_VED_XML_VALIDERING, FEJL_I_IKKE_RETBARE_FELTER, RETTELSESPRINCIP_IKKE_OVERHOLDT, FORRETNINGSMAESSIG_IKKE_VALID eller VALID

data.attributes.beskeder

Array

Beskeder

links.self

String

Status på indleveringsresourcen

Eksempel-respons

HTTP/1.1 200 OK
Access-Control-Expose-Headers: origin, authorization, accept, content-type, x-requested-with, x-amz-version-id, ETag, Content-MD5, Location, Set-Cookie, X-Application-Context, Access-Control-Allow-Origin, Access-Control-Allow-Credentials,
Location: /udl%C3%A5n/pligtige/61126228/perioder/2017/konti/1234/indleveringer/1/status
Content-Type: application/vnd.api+json;charset=UTF-8
Content-Language: da-DA
Transfer-Encoding: chunked

{
  "data" : {
    "id" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/1",
    "type" : "indlevering-status",
    "attributes" : {
      "status" : "FEJL_I_IKKE_RETBARE_FELTER",
      "beskeder" : [ "FEJL FEJL_I_IKKE_RETBARE_FELTER: Værdien af '/RenteIndberetningUdlånStruktur/KontoID' skal være 1234" ]
    },
    "links" : {
      "indlevering" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/1"
    }
  },
  "links" : {
    "self" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/1/status"
  }
}

Se alle indleveringer for en konto

GET request for at se oplysninger om alle indleveringer i perioden for en konto

Statuskode Brug

200 OK

Oplysninger om alle indleveringer for kontoen

401 Unauthorized

Brugeren har ikke angivet credentials

403 Forbidden

Brugeren har ikke læseadgang

404 Not Found

Enten findes SE-nummeret ikke eller også er der ikke lavet nogen indberetninger for kontoen inden for perioden.

Eksempel-request

URL Beskrivelse

/{rentekategori}/pligtige/{pligtigSeNummer}/ perioder/{periodeDato}/konti/{kontoId}/indleveringer/

Liste alle tidligere indberetninger for dette kontoid for den givne periode.

curl
$ curl 'https://api.tse3pindberet.tfe.skat.dk/udl%C3%A5n/pligtige/61126228/perioder/2017/konti/1234/indleveringer' -i
HTTP
GET /udl%C3%A5n/pligtige/61126228/perioder/2017/konti/1234/indleveringer HTTP/1.1
Host: api.tse3pindberet.tfe.skat.dk

Responsstruktur

Path Type Description

data

Array

Array indeholdende alle indleveringerne

data[].id

String

Id på den specifikke indlevering

data[].type

String

Indleveringstypen

data[].attributes.dato

String

Dato for oprettelsen af indleveringen

data[].attributes.status

String

Valideringsstatus, kan være FIL_IKKE_GENKENDT_SOM_XML, FEJL_VED_XML_VALIDERING, FEJL_I_IKKE_RETBARE_FELTER, RETTELSESPRINCIP_IKKE_OVERHOLDT, FORRETNINGSMAESSIG_IKKE_VALID eller VALID

data[].links.indlevering

String

Link til indleveringen

data[].links.status

String

Link til status for indleveringen

links.self

String

Link der genererede nærværende dokument

Eksempel-respons

HTTP/1.1 200 OK
Access-Control-Expose-Headers: origin, authorization, accept, content-type, x-requested-with, x-amz-version-id, ETag, Content-MD5, Location, Set-Cookie, X-Application-Context, Access-Control-Allow-Origin, Access-Control-Allow-Credentials,
Content-Type: application/vnd.api+json;charset=UTF-8
Content-Language: da-DA
Transfer-Encoding: chunked

{
  "data" : [ {
    "id" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/1",
    "type" : "indlevering",
    "attributes" : {
      "dato" : "2017-01-10T11:49:34+0000",
      "status" : "FEJL_I_IKKE_RETBARE_FELTER"
    },
    "links" : {
      "indlevering" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/1",
      "status" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/1/status"
    }
  }, {
    "id" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/2",
    "type" : "indlevering",
    "attributes" : {
      "dato" : "2017-01-10T11:49:36+0000",
      "status" : "FEJL_I_IKKE_RETBARE_FELTER"
    },
    "links" : {
      "indlevering" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/2",
      "status" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/2/status"
    }
  }, {
    "id" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/3",
    "type" : "indlevering",
    "attributes" : {
      "dato" : "2017-01-10T11:49:37+0000",
      "status" : "FEJL_I_IKKE_RETBARE_FELTER"
    },
    "links" : {
      "indlevering" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/3",
      "status" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/3/status"
    }
  }, {
    "id" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/4",
    "type" : "indlevering",
    "attributes" : {
      "dato" : "2017-01-10T11:49:37+0000",
      "status" : "FEJL_VED_XML_VALIDERING"
    },
    "links" : {
      "indlevering" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/4",
      "status" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer/4/status"
    }
  } ],
  "links" : {
    "self" : "/udlån/pligtige/61126228/perioder/2017/konti/1234/indleveringer?indleveringsid="
  }
}

Foretag masseindlevering POST

Der vil udover muligheden for at lave indlevering enkelvis være mulighed for at lave masseindlevering. Det vil foregå på den måde at der vil blive overført en stor fil som i princippet indeholder en masse blanketter. Disse blanketter vil blive kørt i gennem samme proces som hvis de var indsendt hver for sig.

Masse indberetningsmekanismen gennemgår en 3-trins raket:

  • Først indlevering af data-pakke (en zip fil indeholdende alle blanketter).

  • Det er valgfrit om man vil køre en massevalidering først, inden den egentlige massindlevering.

    • Ved massevalidering gennemgås filen, og der bliver returneret bemærkninger til filens indhold.

    • Ved massindlevering oprettes/påbegyndes en (batch)kørsel for den pågældende fil.

  • Aktivering af masseindleveringen.

Aktivering af masseindlevering

Statuskode Brug

201 OK

Masseindleveringen er blevet aktiveret (oprettet)

401 Unauthorized

Brugeren har ikke angivet credentials

403 Forbidden

Brugeren har ikke skriveadgang

404 Not Found

Enten findes SE-nummeret ikke eller også findes masseindleveringsfilen ikke

Eksempel-request

Opret en indlevering for et givent kontoid. Der returneres et id, på indleveringen, som har fortløbende nummerering. Den er fortløbende inden for følgende kombination: kontoid, periode og pligtigs SE-nummer.

Først fremstiller man en zip-fil med alle de indberetninger og overføre den med S3 Storage RESTful API.

Requeststruktur

URL Beskrivelse

{scheme}://{host}/{rentekategori}/pligtige/{pligtigSeNummer}/ perioder/{periodeDato}/masseindleveringer/

Opret en masseindlevering for en given Indberetningspligtig.

Path Type Description

data.attributes.s3Key

String

URL til aflevering af masseindleveringsfilen

data.attributes.s3Md5Checksum

String

Checksum af den zippede masseindleveringsfil

curl
$ curl 'https://api.tse3pindberet.tfe.skat.dk/udl%C3%A5n/pligtige/61126229/perioder/2017/masseindleveringer' -i -X POST -H 'Content-Type: application/json; charset=UTF-8' -d '{
  "data" : {
    "attributes" : {
      "s3Key" : "https://api.tse3pindberet.tfe.skat.dk/udlån/pligtige/61126229/input_file_id",
      "s3Md5Checksum" : "vYQFSLDDAWsqZDHKBtrvmQ=="
    }
  }
}'
HTTP
POST /udl%C3%A5n/pligtige/61126229/perioder/2017/masseindleveringer HTTP/1.1
Content-Type: application/json; charset=UTF-8
Host: api.tse3pindberet.tfe.skat.dk
Content-Length: 194

{
  "data" : {
    "attributes" : {
      "s3Key" : "https://api.tse3pindberet.tfe.skat.dk/udlån/pligtige/61126229/input_file_id",
      "s3Md5Checksum" : "vYQFSLDDAWsqZDHKBtrvmQ=="
    }
  }
}

Responsstruktur

Path Type Description

data.id

String

Id på masseindleveringen

data.type

String

Resursetypen

data.attributes.status

String

Masseindleveringsstatus, kan være IGANG, AFSLUTTET eller FEJLET

data.attributes.detaljer

Object

Optionel. Detaljer om indholdet i de enkelte indleveringer i masseindleveringen

data.attributes.rentekategori

String

Rentekategorien på masseindleveringen. Kan have følgende værdier: udlån, indlån, pantebreve eller prioritetslån

data.attributes.periode

String

Perioden på masseindleveringen

data.attributes.fejl

String

Optionel. Beskrivelse af fejl, der er opstået under behandlingen

data.links.masseindleveringsfil

String

Masseindleveringsfilens placering

data.links.svarfil

String

Optionel. Svarfilens placering

links.self

String

Link der genererede nærværende dokument

Eksempel-respons

HTTP/1.1 201 Created
Access-Control-Expose-Headers: origin, authorization, accept, content-type, x-requested-with, x-amz-version-id, ETag, Content-MD5, Location, Set-Cookie, X-Application-Context, Access-Control-Allow-Origin, Access-Control-Allow-Credentials,
Location: /udlån/pligtige/61126229/perioder/2017/masseindleveringer/1
Content-Type: application/vnd.api+json;charset=UTF-8
Content-Language: da-DA
Transfer-Encoding: chunked

{
  "data" : {
    "id" : "/udlån/pligtige/61126229/perioder/2017/masseindleveringer/1",
    "type" : "masseindlevering-status",
    "attributes" : {
      "status" : "IGANG",
      "rentekategori" : "udlån",
      "periode" : "2017"
    },
    "links" : {
      "masseindleveringsfil" : "http://in.s3.geni.lokal:9000/udlån/pligtige/61126229/input_file_id"
    }
  },
  "links" : {
    "self" : "/udlån/pligtige/61126229/perioder/2017/masseindleveringer/1"
  }
}

Status på masseindlevering

Statuskode Brug

200 OK

Masseindleveringen findes og brugeren har adgang til at se den.

401 Unauthorized

Brugeren har ikke angivet credentials

403 Forbidden

Brugeren har ikke læseadgang

404 Not Found

Masseindleveringen findes ikke.

Eksempel-request

URL Beskrivelse

{scheme}://{host}/{rentekategori}/pligtige/{pligtigSeNummer}/ perioder/{periodeDato}/masseindleveringer/{masseindleveringId}

Hente status, mm. om masseindberetningen.

curl
$ curl 'https://api.tse3pindberet.tfe.skat.dk/udl%C3%A5n/pligtige/61126229/perioder/2017/masseindleveringer/2' -i -H 'Content-Type: application/xml;charset=UTF-8'
HTTP
GET /udl%C3%A5n/pligtige/61126229/perioder/2017/masseindleveringer/2 HTTP/1.1
Content-Type: application/xml;charset=UTF-8
Host: api.tse3pindberet.tfe.skat.dk

Responsstruktur

Path Type Description

data.id

String

Id på masseindleveringen

data.type

String

Resursetypen

data.attributes.status

String

Masseindleveringsstatus, kan være IGANG, AFSLUTTET eller FEJLET

data.attributes.detaljer

Object

Optionel. Detaljer om indholdet i de enkelte indleveringer i masseindleveringen

data.attributes.rentekategori

String

Rentekategorien på masseindleveringen. Kan have følgende værdier: udlån, indlån, pantebreve eller prioritetslån

data.attributes.periode

String

Perioden på masseindleveringen

data.attributes.fejl

String

Optionel. Beskrivelse af fejl, der er opstået under behandlingen

data.links.masseindleveringsfil

String

Masseindleveringsfilens placering

data.links.svarfil

String

Optionel. Svarfilens placering

links.self

String

Link der genererede nærværende dokument

Eksempel-respons

HTTP/1.1 200 OK
Access-Control-Expose-Headers: origin, authorization, accept, content-type, x-requested-with, x-amz-version-id, ETag, Content-MD5, Location, Set-Cookie, X-Application-Context, Access-Control-Allow-Origin, Access-Control-Allow-Credentials,
Location: /udl%C3%A5n/pligtige/61126229/perioder/2017/masseindleveringer/2
Content-Type: application/vnd.api+json;charset=UTF-8
Content-Language: da-DA
Transfer-Encoding: chunked

{
  "data" : {
    "id" : "/udlån/pligtige/61126229/perioder/2017/masseindleveringer/2",
    "type" : "masseindlevering-status",
    "attributes" : {
      "status" : "AFSLUTTET",
      "rentekategori" : "udlån",
      "periode" : "2017",
      "detaljer" : {
        "indberetninger" : {
          "total" : 4,
          "godkendte" : 1,
          "godkendteMedAdvis" : 2,
          "afviste" : 1
        },
        "personer" : {
          "total" : 100,
          "indlændinge" : 34,
          "udlændinge" : 37,
          "uidentificerede" : 2
        },
        "virksomheder" : {
          "total" : 340,
          "indlændinge" : 23,
          "udlændinge" : 25,
          "uidentificerede" : 3
        },
        "beløb" : {
          "renter" : 30000000,
          "indestående" : 10000000,
          "kursværdi" : 100000,
          "kurstab" : 0
        }
      }
    },
    "links" : {
      "masseindleveringsfil" : "http://in.s3.geni.lokal:9000/udlån/pligtige/61126229/input_file_id",
      "svarfil" : "http://out.s3.geni.lokal:9000/udlån/pligtige/61126229/input_file_id"
    }
  },
  "links" : {
    "self" : "/udlån/pligtige/61126229/perioder/2017/masseindleveringer/2"
  }
}

Eksempel-request

URL Beskrivelse

/{rentekategori}/pligtige/{pligtigSeNummer}/perioder/{periodeDato}/konti

Liste alle kontonumre hvortil der er foretaget indleveringer til for den angivne periode. Kan kombineres med ?aktiv=true.

curl

Unresolved directive in Rente_RESTful_API.adoc - include::/Users/sgc/workspace/rente/build/docs/generated-snippets/status-for-konti-eksempel/curl-request.adoc[] ===== HTTP Unresolved directive in Rente_RESTful_API.adoc - include::/Users/sgc/workspace/rente/build/docs/generated-snippets/status-for-konti-eksempel/http-request.adoc[]

Responsstruktur

Unresolved directive in Rente_RESTful_API.adoc - include::/Users/sgc/workspace/rente/build/docs/generated-snippets/status-for-konti-eksempel/response-fields.adoc[]

Eksempel-respons

Unresolved directive in Rente_RESTful_API.adoc - include::/Users/sgc/workspace/rente/build/docs/generated-snippets/status-for-konti-eksempel/http-response.adoc[]