Creditor and User Management Example
Diagrammet nedan visar den grundläggande sekvensen av API-anrop för att hantera användare inom en ny Creditor, med varje steg beskrivet i följande sektioner.
En Account API user skapar en ny Creditor med alla obligatoriska aktiveringsfält. När en Creditor skapas genereras access groups automatiskt för den Creditor:n baserat på Account (eller Partner när det är tillämpligt). Flödet visar därefter hur du hämtar dessa access groups och använder dem för att skapa två typer av users: en Creditor admin som kan skapa nya users och en vanlig Creditor user som kan hantera cases för Creditor:n.
Steg-för-steg-guide
Alla API-requests kräver en giltig autentiseringstoken i X-API-Key header. För detaljer om autentiseringsprocessen och tokenhantering, se Authentication documentation.
I denna guide använder vi AuthTokenProvider-klassen (dokumenterad i autentiseringsguiden) för att hantera tokenhantering.
1. Skapa en Creditor
Skapa en ny Creditor med Creditor endpoint. Så länge en Creditor är inaktiv kan inga Case registrations skapas för den. För att aktivera en Creditor är följande fält obligatoriska: payout_details, sender_address, invoice_address och standard_debt_description.
const creditorData = {
account: '6662fb1df4d1eaf404cb08de',
name: 'Acme Inc',
organization_no: '1122334455',
is_active: true,
standard_debt_description: 'Standard skuldbeskrivning på Konto',
description: 'Testing',
sender_address: {
address_line_1: 'Redaregatan 50',
zip_code: '25236',
city: 'Helsingborg',
country: 'SE',
},
invoice_address: {
address_line_1: 'Redaregatan 50',
zip_code: '25236',
city: 'Helsingborg',
country: 'SE',
},
payout_details: {
sek: {
bankgiro: '12312312',
},
},
}
const token = await auth.getValidToken()
const response = await axios.post(
'https://api-sandbox.amili.se/creditors',
creditorData,
{
headers: {
'X-API-Key': token,
'Content-Type': 'application/json',
},
}
)creditor_data = {
"account": "6662fb1df4d1eaf404cb08de",
"name": "Acme Inc",
"organization_no": "1122334455",
"is_active": True,
"standard_debt_description": "Standard skuldbeskrivning på Konto",
"description": "Testing",
"sender_address": {
"address_line_1": "Redaregatan 50",
"zip_code": "25236",
"city": "Helsingborg",
"country": "SE"
},
"invoice_address": {
"address_line_1": "Redaregatan 50",
"zip_code": "25236",
"city": "Helsingborg",
"country": "SE"
},
"payout_details": {
"sek": {
"bankgiro": "12312312"
}
}
}
token = auth.get_valid_token()
response = requests.post(
'https://api-sandbox.amili.se/creditors',
json=creditor_data,
headers={
'X-API-Key': token,
'Content-Type': 'application/json'
}
)
response.raise_for_status()
result = response.json()Svaret kommer att vara:
{
"_updated": "Tue, 11 Nov 2025 12:22:34 GMT",
"_created": "Tue, 11 Nov 2025 12:22:34 GMT",
"_etag": "2646bc714fe277d4e317cfaddaeb450a34f28053",
"_id": "69132a8bc9ea54f691cc407c",
"_status": "OK"
}2. Hämta tillgängliga Access Groups
Hämta de tillgängliga access groups genom att filtrera på ditt Account eller på den nyligen skapade Creditor:n. Detta ger en lista över access groups med type: api_user, account_admin, admin och user. Access groups sätts normalt på Account- eller Partner-nivå. När en Creditor skapas genereras access groups för admin och user automatiskt för den Creditor:n. För mer information, se Access Group documentation.
const token = await auth.getValidToken()
const query = encodeURIComponent(
JSON.stringify({ account: '6662fb1df4d1eaf404cb08de' })
)
const response = await axios.get(
`https://api-sandbox.amili.se/access--groups?where=${query}`,
{
headers: {
'X-API-Key': token,
},
}
)import json
token = auth.get_valid_token()
query = json.dumps({'account': '6662fb1df4d1eaf404cb08de'})
response = requests.get(
'https://api-sandbox.amili.se/access--groups',
params={'where': query},
headers={'X-API-Key': token}
)
response.raise_for_status()
result = response.json()Svaret kommer att vara:
{
"_items": [
{
"_id": "6662fb1df4d1eaf404cb08e0",
"account": "6662fb1df4d1eaf404cb08de",
"name": "account_admin",
"type": "account_admin",
"access_group_template": "65a961d89cbd399b9a0c7693",
"access_rights": {
// Omitted for readability
},
"_updated": "Wed, 05 Nov 2025 19:07:19 GMT",
"_created": "Fri, 07 Jun 2024 12:20:45 GMT",
"_etag": "32f9bf44c64a4491893cfef2d77541e1",
"account_name": "API integrationstester AB"
},
{
"_id": "6662fb1df4d1eaf404cb08e1",
"account": "6662fb1df4d1eaf404cb08de",
"name": "api_user",
"type": "api_user",
"access_group_template": "65a961d89cbd399b9a0c7693",
"access_rights": {
// Omitted for readability
},
"_updated": "Wed, 05 Nov 2025 19:07:20 GMT",
"_created": "Fri, 07 Jun 2024 12:20:45 GMT",
"_etag": "4ec054f2713045e8a1475a64241839ee",
"account_name": "API integrationstester AB"
},
{
"_id": "69132a8bc9ea54f691cc407e",
"account": "6662fb1df4d1eaf404cb08de",
"creditor": "69132a8bc9ea54f691cc407c",
"name": "admin",
"type": "admin",
"access_group_template": "65a961d89cbd399b9a0c7693",
"access_rights": {
// Omitted for readability
},
"_updated": "Tue, 11 Nov 2025 12:22:35 GMT",
"_created": "Tue, 11 Nov 2025 12:22:35 GMT",
"_etag": "37c057233c9644f499fe69ad35244a88",
"account_name": "API integrationstester AB",
"creditor_name": "Acme Inc"
},
{
"_id": "69132a8bc9ea54f691cc407f",
"account": "6662fb1df4d1eaf404cb08de",
"creditor": "69132a8bc9ea54f691cc407c",
"name": "user",
"type": "user",
"access_group_template": "65a961d89cbd399b9a0c7693",
"access_rights": {
// Omitted for readability
},
"_updated": "Tue, 11 Nov 2025 12:22:35 GMT",
"_created": "Tue, 11 Nov 2025 12:22:35 GMT",
"_etag": "2e59604d1cbd4707babe30e7fbeeb1c3",
"account_name": "API integrationstester AB",
"creditor_name": "Acme Inc"
}
],
"_meta": {
"page": 1,
"max_results": 25,
"total": 4
}
}3. Skapa en Creditor Admin
Skapa en Creditor admin user med Users endpoint. Använd ID:t för access group med type: admin från föregående steg.
const adminUserData = {
account: '6662fb1df4d1eaf404cb08de',
name: 'Jon Doe',
email_data: {
email: 'jon.doe@google.com',
},
is_enabled: true,
oauth_type: 'google',
email_oauth: 'jon.doe@google.com',
data_access: [
{
access_group: '69132a8bc9ea54f691cc407e',
},
],
}
const token = await auth.getValidToken()
const response = await axios.post(
'https://api-sandbox.amili.se/users',
adminUserData,
{
headers: {
'X-API-Key': token,
'Content-Type': 'application/json',
},
}
)admin_user_data = {
"account": "6662fb1df4d1eaf404cb08de",
"name": "Jon Doe",
"email_data": {
"email": "jon.doe@google.com"
},
"is_enabled": True,
"oauth_type": "google",
"email_oauth": "jon.doe@google.com",
"data_access": [{
"access_group": "69132a8bc9ea54f691cc407e"
}]
}
token = auth.get_valid_token()
response = requests.post(
'https://api-sandbox.amili.se/users',
json=admin_user_data,
headers={
'X-API-Key': token,
'Content-Type': 'application/json'
}
)
response.raise_for_status()
result = response.json()Svaret kommer att vara:
{
"_updated": "Tue, 11 Nov 2025 12:58:28 GMT",
"_created": "Tue, 11 Nov 2025 12:58:28 GMT",
"_etag": "8f24ed684144a3572083739483e0c3bf05571f8b",
"_id": "691332f4f22afe6587de55ea",
"_status": "OK"
}4. Skapa en Creditor User
Skapa en vanlig Creditor user som kan hantera cases för Creditor:n med Users endpoint. Använd ID:t för access group med type: user från steg 2.
const userData = {
account: '6662fb1df4d1eaf404cb08de',
name: 'Jane Doe',
email_data: {
email: 'jane.doe@google.com',
},
is_enabled: true,
oauth_type: 'google',
email_oauth: 'jane.doe@google.com',
data_access: [
{
access_group: '69132a8bc9ea54f691cc407f',
},
],
}
const token = await auth.getValidToken()
const response = await axios.post(
'https://api-sandbox.amili.se/users',
userData,
{
headers: {
'X-API-Key': token,
'Content-Type': 'application/json',
},
}
)user_data = {
"account": "6662fb1df4d1eaf404cb08de",
"name": "Jane Doe",
"email_data": {
"email": "jane.doe@google.com"
},
"is_enabled": True,
"oauth_type": "google",
"email_oauth": "jane.doe@google.com",
"data_access": [{
"access_group": "69132a8bc9ea54f691cc407f"
}]
}
token = auth.get_valid_token()
response = requests.post(
'https://api-sandbox.amili.se/users',
json=user_data,
headers={
'X-API-Key': token,
'Content-Type': 'application/json'
}
)
response.raise_for_status()
result = response.json()Svaret kommer att vara:
{
"_updated": "Tue, 11 Nov 2025 12:59:48 GMT",
"_created": "Tue, 11 Nov 2025 12:59:48 GMT",
"_etag": "ee7b9a1da5bb6d04f0792f9ffda1ee3d609e0001",
"_id": "69133344698d69d986cbad08",
"_status": "OK"
}