Skip to content

Ärendeflödesexempel

Den här guiden täcker de viktigaste API-åtgärderna för att registrera ett ärende och ladda upp stöddokument. En ärenderegistrering används när borgenären redan har fakturerat kunden och vill att Amili ska hantera nästa steg — antingen att skicka en påminnelse eller att inleda inkasso.

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.


Ärenderegistrering

Registrera ett nytt ärende via Ärenderegistreringsendpointen. Svaret returnerar ett registrerings-ID och, viktigare, ett eller flera ärende-ID:n (_cases). Ärende-ID:t används för alla efterföljande åtgärder på detta ärende.

Fältet first_action bestämmer var ärendet kommer in i flödet. De vanligaste värdena är:

  • reminder — Amili skickar en påminnelse till kunden innan ärendet eskaleras till inkasso.
  • debt_collection — Ärendet går direkt till inkasso.

En ärenderegistrering inkluderar kundinformation och en eller flera debts. Varje skuld blir ett separat ärende. Efter att ärendet registrerats bör originalfakturan laddas upp för att möjliggöra en effektiv inkassoprocess.

Exemplet nedan använder debt_collection som första åtgärd och visar hur man inkluderar avgifter som redan har fakturerats eller debiterats kunden.

Steg 1: Registrera ärendet

typescript
const caseData = {
  account: '674dbeaf08847b9501cc9132',
  creditor: '674dbeb208847b9501cc9138',
  first_action: 'debt_collection',
  currency: 'SEK',
  customer: {
    name: 'ACME Inc.',
    id_number: '5560269986',
    is_company: true,
    address: {
      address_line_1: 'Storgatan 42',
      zip_code: '12345',
      city: 'Stockholm',
      country: 'SE',
    },
  },
  debts: [
    {
      invoice_number: 'INV-2025-003',
      debt_description: 'Services',
      invoice_date: 'Mon, 07 Jul 2025 00:00:00 GMT',
      capital_to_claim: 2050.0, // 2000 + 50 invoice fee
      invoice_due_days_after_invoice_date: 31,
      fees_included_in_capital_to_claim: {
        invoice_fee: 50.0,
      },
      fees_already_claimed: {
        reminder: {
          amount: 60.0,
          fee_registration_date: 'Mon, 11 Aug 2025 00:00:00 GMT',
        },
      },
    },
  ],
}

const token = await auth.getValidToken()
const response = await axios.post(
  'https://api-sandbox.amili.se/case--registrations',
  caseData,
  {
    headers: {
      'X-API-Key': token,
      'Content-Type': 'application/json',
    },
  }
)
python
case_data = {
    "account": "674dbeaf08847b9501cc9132",
    "creditor": "674dbeb208847b9501cc9138",
    "first_action": "debt_collection",
    "currency": "SEK",
    "customer": {
        "name": "ACME Inc.",
        "id_number": "5560269986",
        "is_company": True,
        "address": {
            "address_line_1": "Storgatan 42",
            "zip_code": "12345",
            "city": "Stockholm",
            "country": "SE"
        }
    },
    "debts": [{
        "invoice_number": "INV-2025-003",
        "debt_description": "Services",
        "invoice_date": "Mon, 07 Jul 2025 00:00:00 GMT",
        "capital_to_claim": 2050.0,  # 2000 + 50 invoice fee
        "invoice_due_days_after_invoice_date": 31,
        "fees_included_in_capital_to_claim": {
            "invoice_fee": 50.0
        },
        "fees_already_claimed": {
            "reminder": {
                "amount": 60.0,
                "fee_registration_date": "Mon, 11 Aug 2025 00:00:00 GMT"
            }
        }
    }]
}

token = auth.get_valid_token()
response = requests.post(
    'https://api-sandbox.amili.se/case--registrations',
    json=case_data,
    headers={
        'X-API-Key': token,
        'Content-Type': 'application/json'
    }
)
response.raise_for_status()
result = response.json()

Om avgifter i exemplet

  • fees_included_in_capital_to_claim — Avgifter (t.ex. fakturaavgift) som redan är inkluderade i beloppet capital_to_claim. Värdena informerar Amili om hur mycket av kapitalet som utgörs av avgifter respektive den ursprungliga skulden.
  • fees_already_claimed — Avgifter (t.ex. påminnelseavgift) som borgenären redan har debiterat separat. Dessa ingår inte i capital_to_claim men registreras så att Amili kan ta hänsyn till dem i inkassoprocessen.

Svaret kommer att vara:

json
{
  "_updated": "Wed, 03 Sep 2025 07:56:11 GMT",
  "_created": "Wed, 03 Sep 2025 07:56:11 GMT",
  "_etag": "74829ce9b219a58bb00a5276a495bec0d7e22457",
  "_id": "68b7f49cb8903ae30ebb85ec",
  "_status": "OK",
  "_cases": ["68b7f49c7b02934caddab092"],
  "_ocr_numbers": ["68b7f49cb8903ae30ebb85f0"],
  "_ocr_numbers_ocr": ["20252463478311301072"]
}

Viktiga ID:n i svaret

  • _id — Ärenderegistrerings-ID:t (posten för denna begäran)
  • _casesArray med ärende-ID:n — använd dessa för alla efterföljande åtgärder (kreditering, annullering, betalning). Ett ärende skapas per skuld i begäran.
  • _ocr_numbers — Array med OCR-nummerresurs-ID:n (ett per ärende)
  • _ocr_numbers_ocr — Array med OCR-nummersträngar för betalningsreferens

Steg 2: Ladda upp originalfakturan

Med ärende-ID:t från registreringssvaret, ladda upp det ursprungliga fakturadokumentet via Media Upload endpointen.

typescript
const token = await auth.getValidToken()
const caseId = '68b7f49c7b02934caddab092'

const formData = new FormData()
formData.append('file', fileBlob, 'original_invoice.pdf')
formData.append('domain', 'cases')
formData.append('dotted_path', 'original_invoice')

const response = await axios.post(
  `https://api-sandbox.amili.se/media--upload/${caseId}`,
  formData,
  {
    headers: {
      'X-API-Key': token,
      'Content-Type': 'multipart/form-data',
    },
  }
)
python
token = auth.get_valid_token()
case_id = '68b7f49c7b02934caddab092'

files = {
    'file': ('original_invoice.pdf', open('original_invoice.pdf', 'rb'), 'application/pdf')
}
data = {
    'domain': 'cases',
    'dotted_path': 'original_invoice'
}

response = requests.post(
    f'https://api-sandbox.amili.se/media--upload/{case_id}',
    files=files,
    data=data,
    headers={'X-API-Key': token}
)
response.raise_for_status()
result = response.json()

Svaret kommer att vara:

json
{
  "url": "https://storage.googleapis.com/stage-ada-vcom-api-files/stage/cases/68b7f49c7b02934caddab092-95cd1aa42c0f491499d3bc5bc70dbf50?Expires=1756889787&GoogleAccessId=stage-ada-vcom-pod-svc%40stage-ada-vcom.iam.gserviceaccount.com&Signature=YHeCsV%2BeABeaQhUCfITyn9OoourBmjdElC4wplX3j8V5wnEhVEOesMlb%2FbullXadFejJofTPAMPQ7sxRirqatdYgWGXLAxNQQ31HG2h%2BN%2FrRRGjUj65eos924Lu226zareS%2BtzUDX1%2B%2BFapXoQrqCn18PKdlg%2BnRXn%2B0PEhS1vsrEQ3brUby9FzdNchZsCR4HJ96iVQvUpUP%2BZl2bedT8K6Bpzi875u4GDcN8VpIrBbkmJVYsjzyPy8KfpH%2BGy1qDGLme6H2Pw6%2Bn84sJWRsomsnsXCLP2MRlitQ1EzuNzdcoFRBsoesDedEZDUOYfju4QUOzFB9wI%2BR%2Fo8taVAkjg%3D%3D"
}

Nästa steg

När ett ärende har skapats från en ärenderegistrering kan du utföra åtgärder som att registrera betalningar, kreditera belopp, annullera ärendet eller begära anstånd. 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
  • Anstånd — Skjut upp ett ärende ett antal dagar

Du kan också följa livscykeln och det ekonomiska utfallet för dina ärenden: