Skip to content

Finance Payout Exempel

Denna guide demonstrerar hur man arbetar med finansutbetalningar och utbetalningsspecifikationer i Amili API. Finansdata är organiserad i en parent-child-relation:

  • Finance Payouts - Aggregerade utbetalningssammanfattningar till borgenärer
  • Finance Payout Specifications - Detaljerad transaktionsdata

Alla API-förfrågningar kräver en giltig autentiseringstoken i X-API-Key-headern. För detaljer om autentiseringsprocessen och tokenhantering, se Authentication documentation.

I denna guide kommer vi att använda klassen AuthTokenProvider (dokumenterad i autentiseringsguiden) för att hantera tokenhantering.

Välja rätt endpoint

Detaljnivån du behöver avgör vilken endpoint du ska använda:

BehovEndpointAnvändningsfall
Endast totala beloppGET /finance--payoutsVisa utbetalningstotaler och status
Uppdelning per artikelGET /finance--payouts (använd summary-fältet)Se hur mycket kapital, ränta, avgifter, etc.
Individuella transaktionerGET /finance--payout-specificationsSpåra tillbaka till specifika case och fakturor
Komplett revisionsspårBåda endpointsHämta utbetalning → sedan hämta specifikationer

TIP

Du behöver inte använda båda endpoints för varje förfrågan. Välj baserat på detaljnivån som krävs för ditt användningsfall.

Scenario 1: Visa utbetalningsöversikt

Hämta aggregerad utbetalningsinformation för en borgenär.

typescript
const token = await auth.getValidToken()

const query = encodeURIComponent(
  JSON.stringify({
    creditor: '686e6ed854377058c2dd10bd',
  })
)

const response = await axios.get(
  `https://api-sandbox.amili.se/finance--payouts?where=${query}&sort=-_created&max_results=10`,
  {
    headers: {
      'X-API-Key': token,
    },
  }
)

console.log('Payouts:', response.data._items)
python
import json

token = auth.get_valid_token()

query = json.dumps({
  "creditor": "686e6ed854377058c2dd10bd"
})

response = requests.get(
  'https://api-sandbox.amili.se/finance--payouts',
  params={
    'where': query,
    'sort': '-_created',
    'max_results': 10
  },
  headers={'X-API-Key': token}
)
response.raise_for_status()
payouts = response.json()['_items']
print(f"Found {len(payouts)} payouts")

Response:

json
{
  "_items": [
    {
      "_id": "507f1f77bcf86cd799439099",
      "_created": "Fri, 13 Jun 2025 08:00:00 GMT",
      "_updated": "Fri, 13 Jun 2025 08:00:00 GMT",
      "_etag": "a1b2c3d4e5f678901234567890123456",
      "creditor": "686e6ed854377058c2dd10bd",
      "currency": "SEK",
      "payout_reference": "65432",
      "ready_for_payout": true,
      "payout_date": "Fri, 13 Jun 2025 00:00:00 GMT",
      "amount": 12000.0,
      "vat_amount": 0.0,
      "total_amount": 12000.0,
      "summary": {
        "capital": {
          "count": 12,
          "amount": 12000.0,
          "vat_amount": 0.0,
          "total_amount": 12000.0
        }
      },
      "finance_category": "capital",
      "finance_interval": "daily",
      "finance_period_start_date": "Thu, 12 Jun 2025 00:00:00 GMT",
      "finance_period_end_date": "Thu, 12 Jun 2025 23:59:59 GMT",
      "finance_period_day": 163
    },
    {
      "_id": "507f1f77bcf86cd799439098",
      "_created": "Fri, 13 Jun 2025 08:00:00 GMT",
      "_updated": "Fri, 13 Jun 2025 08:00:00 GMT",
      "_etag": "b2c3d4e5f67890123456789012345678",
      "creditor": "686e6ed854377058c2dd10bd",
      "currency": "SEK",
      "payout_reference": "65432",
      "ready_for_payout": true,
      "payout_date": "Fri, 13 Jun 2025 00:00:00 GMT",
      "amount": 3000.0,
      "vat_amount": 0.0,
      "total_amount": 3000.0,
      "summary": {
        "interest": {
          "count": 8,
          "amount": 3000.0,
          "vat_amount": 0.0,
          "total_amount": 3000.0
        }
      },
      "finance_category": "interest",
      "finance_interval": "daily",
      "finance_period_start_date": "Thu, 12 Jun 2025 00:00:00 GMT",
      "finance_period_end_date": "Thu, 12 Jun 2025 23:59:59 GMT",
      "finance_period_day": 163
    }
  ]
}

Fältet summary visar uppdelningen per artikeltyp. Notera att varje utbetalning endast innehåller en finanskategori (kapital, ränta, avgifter, etc.) - utbetalningar är alltid separerade per kategori.

Scenario 2: Visa utbetalningsdetaljer

Hämta de individuella transaktionsspecifikationerna för en specifik utbetalning.

typescript
const token = await auth.getValidToken()

// Steg 1: Hämta utbetalningen
const payoutId = '507f1f77bcf86cd799439099'
const payoutResponse = await axios.get(
  `https://api-sandbox.amili.se/finance--payouts/${payoutId}`,
  {
    headers: {
      'X-API-Key': token,
    },
  }
)

console.log('Payout total:', payoutResponse.data.total_amount)
console.log('Breakdown:', payoutResponse.data.summary)

// Steg 2: Hämta alla specifikationer för denna utbetalning
const query = encodeURIComponent(
  JSON.stringify({
    payout: payoutId,
  })
)

const specsResponse = await axios.get(
  `https://api-sandbox.amili.se/finance--payout-specifications?where=${query}&max_results=100`,
  {
    headers: {
      'X-API-Key': token,
    },
  }
)

console.log('Specifications:', specsResponse.data._items)
python
import json

token = auth.get_valid_token()

# Steg 1: Hämta utbetalningen
payout_id = '507f1f77bcf86cd799439099'
payout_response = requests.get(
  f'https://api-sandbox.amili.se/finance--payouts/{payout_id}',
  headers={'X-API-Key': token}
)
payout_response.raise_for_status()
payout = payout_response.json()

print(f"Payout total: {payout['total_amount']}")
print(f"Breakdown: {payout['summary']}")

# Steg 2: Hämta alla specifikationer för denna utbetalning
query = json.dumps({
  "payout": payout_id
})

specs_response = requests.get(
  'https://api-sandbox.amili.se/finance--payout-specifications',
  params={
    'where': query,
    'max_results': 100
  },
  headers={'X-API-Key': token}
)
specs_response.raise_for_status()
specifications = specs_response.json()['_items']

print(f"Found {len(specifications)} transaction specifications")

Payout Response:

json
{
  "_id": "507f1f77bcf86cd799439099",
  "_created": "Fri, 13 Jun 2025 08:00:00 GMT",
  "_updated": "Fri, 13 Jun 2025 08:00:00 GMT",
  "_etag": "a1b2c3d4e5f678901234567890123456",
  "creditor": "686e6ed854377058c2dd10bd",
  "currency": "SEK",
  "payout_reference": "123456",
  "ready_for_payout": true,
  "payout_date": "Fri, 13 Jun 2025 00:00:00 GMT",
  "amount": 12000.0,
  "vat_amount": 0.0,
  "total_amount": 12000.0,
  "summary": {
    "capital": {
      "count": 12,
      "amount": 12000.0,
      "vat_amount": 0.0,
      "total_amount": 12000.0
    }
  },
  "finance_category": "capital",
  "finance_interval": "daily",
  "finance_period_start_date": "Thu, 12 Jun 2025 00:00:00 GMT",
  "finance_period_end_date": "Thu, 12 Jun 2025 23:59:59 GMT",
  "finance_period_day": 163
}

Specifications Response:

json
{
  "_items": [
    {
      "_id": "507f1f77bcf86cd799439011",
      "_created": "Wed, 11 Jun 2025 12:00:00 GMT",
      "_updated": "Fri, 13 Jun 2025 08:00:00 GMT",
      "_etag": "c1d2e3f4567890123456789012345678",
      "payout": "507f1f77bcf86cd799439099",
      "payout_reference": "123456",
      "payout_date": "Fri, 13 Jun 2025 00:00:00 GMT",
      "amount": 1064.0,
      "vat_amount": 0.0,
      "total_amount": 1064.0,
      "article": "capital",
      "state": "reminder",
      "booking_date": "Wed, 11 Jun 2025 00:00:00 GMT",
      "finance_category": "capital",
      "invoice_number": "INV-2025-020",
      "reference_number": "25020",
      "references": {
        "case": "507f1f77bcf86cd799439050"
      }
    },
    {
      "_id": "507f1f77bcf86cd799439012",
      "_created": "Tue, 10 Jun 2025 14:00:00 GMT",
      "_updated": "Fri, 13 Jun 2025 08:00:00 GMT",
      "_etag": "d2e3f45678901234567890123456789a",
      "payout": "507f1f77bcf86cd799439099",
      "payout_reference": "123456",
      "payout_date": "Fri, 13 Jun 2025 00:00:00 GMT",
      "amount": 500.0,
      "vat_amount": 0.0,
      "total_amount": 500.0,
      "article": "capital",
      "state": "reminder",
      "booking_date": "Tue, 10 Jun 2025 00:00:00 GMT",
      "finance_category": "capital",
      "invoice_number": "INV-2025-019",
      "reference_number": "25019",
      "references": {
        "case": "507f1f77bcf86cd799439051"
      }
    }
  ],
  "_meta": {
    "page": 1,
    "max_results": 100,
    "total": 12
  }
}

Varje specifikation inkluderar:

  • references.case - Länk tillbaka till caset
  • invoice_number - Ursprungligt fakturanummer
  • booking_date - När transaktionen bokfördes
  • state - Case-status när specifikationen skapades
  • article - Typ av transaktion (kapital, ränta, påminnelse, etc.)
  • finance_category - Finanskategori som matchar föräldrarutbetalningen

Notera att alla specifikationer i detta svar har finance_category: "capital" eftersom de tillhör en kapitalutbetalning. Utbetalningar är alltid separerade per kategori.

Scenario 3: Fråga specifikationer direkt

Om du behöver transaktionsdata utan att först fråga utbetalningar kan du fråga specifikationer direkt. Detta är användbart för finansiella rapporter, revisioner eller när du söker efter specifika transaktioner.

Exempel: Hämta alla specifikationer för en borgenär i ett datumintervall

typescript
const token = await auth.getValidToken()

const query = encodeURIComponent(
  JSON.stringify({
    creditor: '686e6ed854377058c2dd10bd',
    booking_date: {
      $gte: 'Mon, 01 Jun 2025 00:00:00 GMT',
      $lte: 'Mon, 30 Jun 2025 23:59:59 GMT',
    },
  })
)

const projection = encodeURIComponent(
  JSON.stringify({
    booking_date: 1,
    article: 1,
    state: 1,
    total_amount: 1,
    amount: 1,
    vat_amount: 1,
    finance_category: 1,
    payout_reference: 1,
    reference_number: 1,
    invoice_number: 1,
  })
)

const response = await axios.get(
  `https://api-sandbox.amili.se/finance--payout-specifications?where=${query}&projection=${projection}&sort=-booking_date&max_results=100`,
  {
    headers: {
      'X-API-Key': token,
    },
  }
)

console.log('Specifications:', response.data._items)
python
import json

token = auth.get_valid_token()

query = json.dumps({
  "creditor": "686e6ed854377058c2dd10bd",
  "booking_date": {
    "$gte": "Mon, 01 Jun 2025 00:00:00 GMT",
    "$lte": "Mon, 30 Jun 2025 23:59:59 GMT"
  }
})

projection = json.dumps({
  "booking_date": 1,
  "article": 1,
  "state": 1,
  "total_amount": 1,
  "amount": 1,
  "vat_amount": 1,
  "finance_category": 1,
  "payout_reference": 1,
  "reference_number": 1,
  "invoice_number": 1
})

response = requests.get(
  'https://api-sandbox.amili.se/finance--payout-specifications',
  params={
    'where': query,
    'projection': projection,
    'sort': '-booking_date',
    'max_results': 100
  },
  headers={'X-API-Key': token}
)
response.raise_for_status()
specifications = response.json()['_items']

print(f"Found {len(specifications)} specifications")

Response:

json
{
  "_items": [
    {
      "_id": "507f1f77bcf86cd799439011",
      "_created": "Wed, 11 Jun 2025 12:00:00 GMT",
      "_updated": "Wed, 11 Jun 2025 12:00:00 GMT",
      "_etag": "e3f456789012345678901234567890ab",
      "amount": 60.0,
      "vat_amount": 15.0,
      "total_amount": 75.0,
      "article": "reminder",
      "state": "reminder",
      "booking_date": "Wed, 11 Jun 2025 00:00:00 GMT",
      "finance_category": "creditor_commission",
      "payout_reference": "112233",
      "invoice_number": "INV-2025-020",
      "reference_number": "25020"
    },
    {
      "_id": "507f1f77bcf86cd799439012",
      "_created": "Wed, 11 Jun 2025 12:00:00 GMT",
      "_updated": "Wed, 11 Jun 2025 12:00:00 GMT",
      "_etag": "f4567890123456789012345678901abc",
      "amount": 1064.0,
      "vat_amount": 0.0,
      "total_amount": 1064.0,
      "article": "capital",
      "state": "reminder",
      "booking_date": "Wed, 11 Jun 2025 00:00:00 GMT",
      "finance_category": "capital",
      "payout_reference": "65432",
      "invoice_number": "INV-2025-020",
      "reference_number": "25020"
    },
    {
      "_id": "507f1f77bcf86cd799439013",
      "_created": "Thu, 05 Jun 2025 10:00:00 GMT",
      "_updated": "Thu, 05 Jun 2025 10:00:00 GMT",
      "_etag": "56789012345678901234567890abcdef",
      "amount": 10000.0,
      "vat_amount": 0.0,
      "total_amount": 10000.0,
      "article": "capital",
      "state": "reminder",
      "booking_date": "Thu, 05 Jun 2025 00:00:00 GMT",
      "finance_category": "capital",
      "payout_reference": "65432",
      "invoice_number": "INV-2025-019",
      "reference_number": "25019"
    }
  ],
  "_meta": {
    "page": 1,
    "max_results": 100,
    "total": 45
  }
}

Detta tillvägagångssätt är användbart när du behöver:

  • Generera finansiella rapporter för en specifik period
  • Granska transaktioner utan att behöva utbetalningsaggregering
  • Söka efter specifika fakturanummer eller referensnummer
  • Filtrera efter artikeltyp, status eller finanskategori

Sammanfattning

Finansutbetalningssystemet ger flexibilitet i hur du kommer åt finansiell data:

Använd GET /finance--payouts när:

  • Du behöver aggregerade totaler för utbetalningar
  • Du vill se uppdelningen per artikeltyp (använd summary)
  • Du kontrollerar utbetalningsstatus eller exportdatum
  • Du bygger en översiktsdashboard för utbetalningar

Använd GET /finance--payout-specifications när:

  • Du behöver transaktionsdetaljer
  • Du vill spåra tillbaka till specifika case
  • Du genererar detaljerade finansiella rapporter
  • Du behöver granska individuella transaktioner

Använd båda endpoints när:

  • Du behöver ett komplett revisionsspår (utbetalning → specifikationer)
  • Du stämmer av betalningar med bankexporter
  • Du behöver både sammanfattnings- och detaljvyer

För komplett endpoint-dokumentation, se: