Skip to main content

A python API for making requests to DUPLA (Dataudvekslingsplatformen)

Project description

Project description

A Python API for DUPLA (Dataudvekslingsplatformen)

A list of the services available can be found here

Setup

For development python -m venv .venv

source .venv/bin/activate

pip install ".[test]"

Run tests: pytest tests/

Getting Started

Using pre-defined API endpoints

This package defines some endpoints which has some (limited) knowledge of the API schema used by SKAT. The classes are:

  • dupla.payload.KtrPayload
  • dupla.payload.LigPayload
  • dupla.payload.MomsPayload
  • dupla.payload.KtrObsPayload
  • dupla.payload.LonsumPayload
  • dupla.payload.SelskabSambeskatningPayload
  • dupla.payload.SelskabSelvangivelsePayload

Please c.f. the docs of the respective classes for more information on what each endpoint is for. Each payload model is a Pydantic model, so inputs are validated.

Using the base API

The base api access class can be used as following. In this example, we access the VAT (Moms in Danish) endpoint.

from datetime import date, timedelta
from uuid import uuid4
import dupla
from dupla import DuplaApiKeys

api = dupla.DuplaAccess(
    transaction_id=str(uuid4()),
    agreement_id="your-aftale-id-goes-here",
    pkcs12_filename="path-to-cert-file",
    pkcs12_password="goodpassword",
    billetautomat_url="https://bat.skat.dk/realms/oces/protocol/openid-connect/token",
    jwt_token_expiration_overlap=5,
    timeout=30.0  # Optional, default: 30.0
)

# lets see if this company (se_number 98765432) has done any VAT the last year
kwargs = {DuplaApiKeys.SE: ["98765432"],
          DuplaApiKeys.AFREGNING_START: date.today() - timedelta(days=365),
          DuplaApiKeys.AFREGNING_SLUT: date.today()}
payload = dupla.payload.MomsPayload(**kwargs)

data = api.get_data(payload)

print(data)

© ERST 2023

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dupla-0.2.2.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dupla-0.2.2-py3-none-any.whl (17.3 kB view details)

Uploaded Python 3

File details

Details for the file dupla-0.2.2.tar.gz.

File metadata

  • Download URL: dupla-0.2.2.tar.gz
  • Upload date:
  • Size: 19.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for dupla-0.2.2.tar.gz
Algorithm Hash digest
SHA256 11dbba181be2840ce5134718d461e2b58b860f8339791ce779406cfafc906593
MD5 02834a57d29f001d64c8e2043c6b8b70
BLAKE2b-256 abbb8f1f8e0034c333ff48ff6db16c6ecf4e2c24dd422848a8e63fa4f57dda47

See more details on using hashes here.

File details

Details for the file dupla-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: dupla-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 17.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for dupla-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 597fab98b94df1f9327ee134ceaf8c72b86fbad4113cee9537e69c661271cf20
MD5 ec48a0afbc52d3be83f0a03d45863de5
BLAKE2b-256 f76176d443ed384bd342ad986d8eeb3199cdeae635e70b8d548450fb713c2edb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page