Fakturaflödesexempel
Den här guiden täcker de viktigaste API-åtgärderna för att hantera fakturor och deras tillhörande ärenden.
Alla API-anrop kräver en giltig autentiseringstoken i X-API-Key-headern. För detaljer om autentiseringsprocessen och tokenhantering, se Autentiseringsdokumentationen.
I den här guiden använder vi klassen AuthTokenProvider (dokumenterad i autentiseringsguiden) för att hantera tokens.
Innehållsförteckning
- Fakturaregistrering — Registrera en ny faktura och få tillbaka ärende-ID:t
- Privatperson — Faktura för en privatperson
- Företag — Faktura för ett företag eller en organisation
Fakturaregistrering
Registrera en ny faktura via Invoice Registration endpoint. Svaret returnerar både ett invoice--registration-ID och, viktigast av allt, ett ärende-ID (_case). Ärende-ID:t används för alla efterföljande åtgärder på denna faktura.
Kundtypen bestäms genom att sätta en av is_person, is_company eller is_foreign till true. Detta påverkar hur Amili hanterar ärendet — till exempel kan företagsfakturor distribueras via e-faktura (Peppol).
Privatperson
Registrera en faktura där kunden är en privatperson (is_person: true). id_number ska vara kundens svenska personnummer.
const invoiceData = {
account: '674dbeaf08847b9501cc9132',
creditor: '674dbeb208847b9501cc9138',
invoice_number: 'INV-2026-001',
invoice_date: new Date().toISOString(),
invoice_due_date: '2026-04-30T00:00:00Z',
currency: 'SEK',
invoice_type: 'invoice',
customer: {
name: 'Anna Andersson',
id_number: '19900101-1234',
is_person: true,
address: {
address_line_1: 'Storgatan 12',
zip_code: '11122',
city: 'Stockholm',
country: 'SE',
},
mobile_number: '+46701234567',
email: 'anna.andersson@example.se',
},
matrix: [
{
article_description: 'Service fee',
unit_price: 500.0,
number_of_units: 1,
total_price_excluding_vat: 500.0,
unit_vat_percent: '25%',
},
],
}
const token = await auth.getValidToken()
const response = await axios.post(
'https://api-sandbox.amili.se/invoice--registrations',
invoiceData,
{
headers: {
'X-API-Key': token,
'Content-Type': 'application/json',
},
}
)from datetime import datetime
invoice_data = {
"account": "674dbeaf08847b9501cc9132",
"creditor": "674dbeb208847b9501cc9138",
"invoice_number": "INV-2026-001",
"invoice_date": datetime.utcnow().isoformat() + "Z",
"invoice_due_date": "2026-04-30T00:00:00Z",
"currency": "SEK",
"invoice_type": "invoice",
"customer": {
"name": "Anna Andersson",
"id_number": "19900101-1234",
"is_person": True,
"address": {
"address_line_1": "Storgatan 12",
"zip_code": "11122",
"city": "Stockholm",
"country": "SE"
},
"mobile_number": "+46701234567",
"email": "anna.andersson@example.se"
},
"matrix": [{
"article_description": "Service fee",
"unit_price": 500.0,
"number_of_units": 1,
"total_price_excluding_vat": 500.0,
"unit_vat_percent": "25%"
}]
}
token = auth.get_valid_token()
response = requests.post(
'https://api-sandbox.amili.se/invoice--registrations',
json=invoice_data,
headers={
'X-API-Key': token,
'Content-Type': 'application/json'
}
)
response.raise_for_status()
result = response.json()Svaret kommer att vara:
{
"_updated": "Tue, 07 Oct 2025 07:41:01 GMT",
"_created": "Tue, 07 Oct 2025 07:41:01 GMT",
"_etag": "8bfdf8614dc48aa763568c6e6a914e3f0503e18e",
"_id": "68e4c40d7fcb697a78cb1a32",
"_status": "OK",
"_invoice": "68e4c40d7fcb697a78cb1a32",
"_case": "68e4c40d93ee14723d28fa95",
"_ocr_number": "68e4c40e7fcb697a78cb1a36",
"ocr_number_ocr": "20252806663259506081"
}Viktiga ID:n i svaret
_id— Fakturaregistrerings-ID:t (posten för denna begäran)_case— Ärende-ID:t — använd detta för alla efterföljande åtgärder (kreditering, annullering, betalning)_invoice— Faktura-ID:t_ocr_number— OCR-nummerresursens IDocr_number_ocr— OCR-nummersträngen för betalningsreferens
Företag
Registrera en faktura där kunden är ett företag eller en organisation (is_company: true). Företagsfakturor stöder ytterligare fält som möjliggör e-fakturering och organisationsidentifiering.
Företagsspecifika attribut
Följande fält är specifika för eller särskilt relevanta för företagskunder:
is_company: true— Identifierar kunden som en svensk juridisk personid_number— Organisationsnumret, t.ex."556123-4567"customer_number— Er interna kundreferens för detta företagaddress.gln— Global Location Number, används för Peppol e-fakturaroutningpreferred_invoice_distribution— Sätt till"electronic_invoicing_company"för e-faktura via Peppolyour_reference— Kontaktperson eller referens hos företagetcontract_reference— Kontrakts- eller avtalsreferensnummer
const invoiceData = {
account: '674dbeaf08847b9501cc9132',
creditor: '674dbeb208847b9501cc9138',
invoice_number: 'INV-2026-002',
invoice_date: new Date().toISOString(),
invoice_due_date: '2026-04-30T00:00:00Z',
currency: 'SEK',
invoice_type: 'invoice',
preferred_invoice_distribution: 'electronic_invoicing_company', // e-invoicing via Peppol
your_reference: 'Maria Johansson', // contact at the company
contract_reference: 'AVT-2026-100', // contract reference
customer: {
name: 'Exempel Bygg AB',
customer_number: 'CUST-10042',
id_number: '556123-4567', // organization number
is_company: true,
address: {
gln: '7350000000001', // GLN for e-invoicing
address_line_1: 'Industrivägen 8',
zip_code: '41505',
city: 'Göteborg',
country: 'SE',
},
email: 'faktura@exempelbygg.se',
},
matrix: [
{
article_description: 'Service fee',
unit_price: 1200.0,
number_of_units: 1,
total_price_excluding_vat: 1200.0,
unit_vat_percent: '25%',
},
],
}
const token = await auth.getValidToken()
const response = await axios.post(
'https://api-sandbox.amili.se/invoice--registrations',
invoiceData,
{
headers: {
'X-API-Key': token,
'Content-Type': 'application/json',
},
}
)from datetime import datetime
invoice_data = {
"account": "674dbeaf08847b9501cc9132",
"creditor": "674dbeb208847b9501cc9138",
"invoice_number": "INV-2026-002",
"invoice_date": datetime.utcnow().isoformat() + "Z",
"invoice_due_date": "2026-04-30T00:00:00Z",
"currency": "SEK",
"invoice_type": "invoice",
"preferred_invoice_distribution": "electronic_invoicing_company", # e-invoicing via Peppol
"your_reference": "Maria Johansson", # contact at the company
"contract_reference": "AVT-2026-100", # contract reference
"customer": {
"name": "Exempel Bygg AB",
"customer_number": "CUST-10042",
"id_number": "556123-4567", # organization number
"is_company": True,
"address": {
"gln": "7350000000001", # GLN for e-invoicing
"address_line_1": "Industrivägen 8",
"zip_code": "41505",
"city": "Göteborg",
"country": "SE"
},
"email": "faktura@exempelbygg.se"
},
"matrix": [{
"article_description": "Service fee",
"unit_price": 1200.0,
"number_of_units": 1,
"total_price_excluding_vat": 1200.0,
"unit_vat_percent": "25%"
}]
}
token = auth.get_valid_token()
response = requests.post(
'https://api-sandbox.amili.se/invoice--registrations',
json=invoice_data,
headers={
'X-API-Key': token,
'Content-Type': 'application/json'
}
)
response.raise_for_status()
result = response.json()Svaret följer samma struktur som för en personfaktura:
{
"_updated": "Mon, 10 Nov 2025 09:22:15 GMT",
"_created": "Mon, 10 Nov 2025 09:22:15 GMT",
"_etag": "c4a7e82f1b3d6e9a0f5c8d2b7e4a1f6c3d9b0e5a",
"_id": "69a1b2c3d4e5f6a7b8c9d0e1",
"_status": "OK",
"_invoice": "69a1b2c3d4e5f6a7b8c9d0e1",
"_case": "69a1b2c3d4e5f6a7b8c9d0e2",
"_ocr_number": "69a1b2c3d4e5f6a7b8c9d0e3",
"ocr_number_ocr": "20261504827391640052"
}För att hämta aktuell status för ett ärende, se Uppföljning av ärendestatus.
Nästa steg
När ett ärende har skapats från en fakturaregistrering kan du utföra åtgärder som att registrera betalningar, kreditera belopp eller annullera ärendet. Dessa åtgärder är gemensamma för alla ärenden oavsett hur de skapades.
Se guiden Borgenärsåtgärder för detaljerade exempel på:
- Borgenärsbetalning — Registrera en betalning mottagen direkt från gäldenären
- Borgenärskreditering — Kreditera en del av kapitalet på ett ärende
- Borgenärsannullering — Annullera ett ärende helt
Du kan också följa livscykeln och det ekonomiska utfallet för dina ärenden:
- Uppföljning av ärendestatus — Övervaka aktuell status för ett ärende och dess utveckling
- Ekonomi & utbetalningshantering — Följ utbetalningsspecifikationer och ekonomiska avräkningar
