← e-conomic API-integration

e-conomic REST API: en praktisk guide

Det, du skal vide for at læse data fra e-conomic: to tokens, sider på højst 1.000, filtre i querystrengen og posteringer, der ligger under regnskabsåret. Alle eksempler virker med e-conomics offentlige demo-aftale — kopiér og kør.

Indhold

  1. Login: to tokens i hver forespørgsel
  2. Sådan giver en kunde din app adgang
  3. Paginering: skippages og pagesize
  4. Filtre og sortering
  5. Posteringer ligger under regnskabsåret
  6. Faldgruber, vi selv er gået i
  7. Eller lad JaKonto gøre det

Login: to tokens i hver forespørgsel

Base-adressen er https://restapi.e-conomic.com. Hver forespørgsel sender X-AppSecretToken (identificerer din app — hemmelig) og X-AgreementGrantToken (kundens tilladelse til netop hans aftale) samt Content-Type: application/json.

Til test giver e-conomic en offentlig demo-aftale: begge tokens er bare "demo".

curl https://restapi.e-conomic.com/customers?pagesize=5 \
     -H "X-AppSecretToken: demo" \
     -H "X-AgreementGrantToken: demo" \
     -H "Content-Type: application/json"

Sådan giver en kunde din app adgang

Din app har et offentligt token (appPublicToken). Kunden åbner e-conomics adgangsside med det og din redirectUrl, logger ind og godkender. e-conomic sender browseren tilbage med ?token=… — det er kundens X-AgreementGrantToken. Gem det krypteret; det gælder, til kunden fjerner appen.

https://secure.e-conomic.com/secure/api1/requestaccess.aspx
    ?appPublicToken=<APP_PUBLIC_TOKEN>
    &redirectUrl=https://example.com/e-conomic/callback

→ https://example.com/e-conomic/callback?token=<AGREEMENT_GRANT_TOKEN>

Paginering: skippages og pagesize

Samlinger returnerer 20 elementer som standard og højst 1.000 med pagesize. Med skippages springer du hele sider over. Svaret har et pagination-objekt med results, firstPage, nextPage og lastPage — følg nextPage, til det mangler.

import requests

H = {"X-AppSecretToken": "demo", "X-AgreementGrantToken": "demo"}
url = "https://restapi.e-conomic.com/invoices/booked?pagesize=1000"
invoices = []
while url:
    page = requests.get(url, headers=H, timeout=30).json()
    invoices += page["collection"]
    url = page["pagination"].get("nextPage")  # absent on the last page

Filtre og sortering

Filtrér med ?filter=egenskab$operator:værdi. Operatorer: $eq, $ne, $gt, $gte, $lt, $lte, $like (understøtter *), $in og $nin (kun tal, f.eks. customerNumber$in:[2,5,7]). Kæd betingelser med $and: og $or:, brug parenteser til rækkefølge, og URL-kod altid filteret.

Sortér med ?sort=name, faldende med ?sort=-name. Kun egenskaber markeret filterable/sortable i skemaet kan bruges — ellers svarer API'et 400.

Kun ændringer siden sidst: filter=lastUpdated$gt:<tidspunkt> på f.eks. /customers.

Posteringer ligger under regnskabsåret

Der er ingen global /entries-liste til læsning pr. periode: hent /accounting-years, find de år, der overlapper din periode, og læs /accounting-years/{år}/entries med et datofilter. Eksemplet giver 138 posteringer på demo-aftalen.

curl -G https://restapi.e-conomic.com/accounting-years/2022/entries \
     --data-urlencode 'filter=date$gte:2022-01-01$and:date$lte:2022-06-30' \
     --data-urlencode 'pagesize=1000' \
     -H "X-AppSecretToken: demo" -H "X-AgreementGrantToken: demo"

Faldgruber, vi selv er gået i

  • Booleske felter udelades, når de er false — et manglende barred betyder aktiv.
  • Beløb er kroner med decimaler; regn i øre (heltal), før du summerer.
  • En postering i fremmed valuta har amount i sin egen valuta. Brug amountInBaseCurrency — ellers passer din resultatopgørelse ikke med e-conomics egne totaler.
  • Fair use er ca. 50.000 kald pr. døgn pr. aftale. Cache data og hent kun ændringer.
  • Idempotency-Key gælder kun skrivende kald, ikke GET.

Eller lad JaKonto gøre det

JaKonto klarer tokens, paginering, regnskabsår, valuta og fair use og giver dig fakturaer, posteringer, konti og kontakter i samme form som fra Billy og Dinero — plus moms, resultatopgørelse og CSV. Prøv gratis på e-conomics demo-regnskab:

curl -X POST https://jakonto.dk/api/v1/connections/economic-demo \
     -H "X-API-Key: jk_live_…"

curl https://jakonto.dk/api/v1/connections/$ID/invoices \
     -H "X-API-Key: jk_live_…"

Spørgsmål

Hvor er den officielle e-conomic API-dokumentation?

På restdocs.e-conomic.com. Hver samling har et JSON-skema, der viser, hvilke felter der kan filtreres og sorteres.

Kan jeg teste e-conomics API uden et abonnement?

Ja. Sæt både X-AppSecretToken og X-AgreementGrantToken til "demo" og kald f.eks. /customers.

Hvor mange elementer kan jeg hente pr. side?

Højst 1.000 (pagesize=1000). Standard er 20.

Skriver JaKonto i e-conomic?

Nej. JaKonto læser kun.

e-conomic API-integration · Billy API-integration · Dinero API-integration · MCP-server