Vilken integrationsflöde vill du ha?
Välj vilka system du vill koppla och vad du vill lösa. Kalkylatorn ger sedan ett förslag på flöde och prisbild.
Försäljnings- och betalningstransaktioner aggregeras och bokförs som konsoliderade samlingsverifikat.
Försäljnings- och betalningstransaktioner bokförs som kundfakturor, detaljerat per ordernivå.
Försäljnings- och betalningstransaktioner bokförs som kundfakturor, synkronisering av produktdata, lagersaldon och priser.
Vilka system vill du ansluta?
Vill du ha personlig support för att komma igång med tjänsten?
Kostnad per koppling: 1 200 SEK exkl. moms
Läm mer om vad Onboarding Care inkluderar
Valda funktioner
Rekommenderad integration
Välj system för att se ditt paket
Prisöversikt
Löpande kostnader
Engångskostnader
Totalt första månaden
Inkluderar startkostnad och första månadens avgift
exkl. moms
Kundomdömen

Om Fortnox
Fortnox erbjuder en molnbaserad plattform så att småföretagare och redovisningsföretag kan hantera sin ekonomi och administration effektivt. Det ger också kunder tillgång till finansiella tjänster och företagsförsäkringar. Plattformen är marknadsledande i Sverige och aktien är noterad på NGM Nordic MTF. Fortnox grundades 2001 och har sitt huvudkontor i Växjö.
- Användarvänligt och lättnavigerad
- Välutvecklat API - enkelt att skräddarsy kopplingar
- Säker drift i molnet
# Exempel på kodregel för fakturauppdatering i Python
import requests
import datetime
class FortnoxInvoiceFilter:
def __init__(self, access_token):
self.headers = {
"Authorization": f"Bearer {access_token},
"Content-Type": "application/json"
}
self.base_url = "https://api.fortnox.se/3"
def filter_customer_invoices(self, customer_number, status, from_date, to_date):
"""Hämta fakturor för specifik kund med filtrering på status och datum"""
url = f"{self.base_url}/invoices"
params = {
"filter": "customernumber",
"customernumber": customer_number,
"status": status,
"fromdate": from_date,
"todate": to_date
}
try:
response = requests.get(url, headers=self.headers, params=params, timeout=10)
response.raise_for_status() # Raise HTTPError for bad responses (4xx or 5xx)
return response.json().get("Invoices", [])
except requests.exceptions.RequestException as e:
print(f"Fel vid API-anrop (filter_customer_invoices): {e}")
return []
def update_payment_terms(self, invoices):
"""Uppdatera betalningsvillkor baserat på interna regler"""
payment_rules = {
"10001": "30", # VIP kund - 30 dagar
"20001": "20", # Standardkund - 20 dagar
"30001": "10" # Kund med förseningshistorik - 10 dagar
}
updated_count = 0
for invoice in invoices:
invoice_number = invoice.get("DocumentNumber")
customer_number = invoice.get("CustomerNumber")
if not invoice_number or customer_number not in payment_rules:
continue
new_terms = payment_rules[customer_number]
update_data = { "Invoice": { "TermsOfPayment": new_terms } } # Correct field name? Verify API docs
url = f"{self.base_url}/invoices/{invoice_number}"
try:
response = requests.put(url, headers=self.headers, json=update_data, timeout=10)
response.raise_for_status()
if response.status_code == 200:
print(f"Uppdaterade faktura {invoice_number} med nya villkor: {new_terms} dagar")
updated_count += 1
except requests.exceptions.RequestException as e:
print(f"Fel vid API-anrop (update_payment_terms for {invoice_number}): {e}")
return updated_count
# --- Exempel på användning ---
fortnox = FortnoxInvoiceFilter(ACCESS_TOKEN)
# Datumintervall
today = datetime.date.today() # Use date objects for date comparisons
three_months_ago = today - datetime.timedelta(days=90)
from_date_str = three_months_ago.strftime("%Y-%m-%d")
to_date_str = today.strftime("%Y-%m-%d")
print(f"Söker obetalda fakturor för kund 10001 mellan {from_date_str} och {to_date_str}...")
invoices_to_check = fortnox.filter_customer_invoices(
customer_number="10001",
status="unpaid", # Ensure 'unpaid' is a valid status filter
from_date=from_date_str,
to_date=to_date_str
)
if invoices_to_check:
print(f"Hittade {len(invoices_to_check)} obetalda fakturor. Försöker uppdatera villkor...")
updated_count = fortnox.update_payment_terms(invoices_to_check)
print(f"Totalt {updated_count} fakturor uppdaterade med nya betalningsvillkor.")
else:
print("Inga matchande fakturor hittades för uppdatering.")