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:
| Behov | Endpoint | Användningsfall |
|---|---|---|
| Endast totala belopp | GET /finance--payouts | Visa utbetalningstotaler och status |
| Uppdelning per artikel | GET /finance--payouts (använd summary-fältet) | Se hur mycket kapital, ränta, avgifter, etc. |
| Individuella transaktioner | GET /finance--payout-specifications | Spåra tillbaka till specifika case och fakturor |
| Komplett revisionsspår | Båda endpoints | Hä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.
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)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:
{
"_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.
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)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:
{
"_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:
{
"_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 casetinvoice_number- Ursprungligt fakturanummerbooking_date- När transaktionen bokfördesstate- Case-status när specifikationen skapadesarticle- 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
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)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:
{
"_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:
