Partneronboarding
Den här guiden beskriver hur en partnerplattform skapar ett nytt borgenärskonto åt en kund. Partnern skapar kontot, en inledande borgenär och tillhörande användare via API:et.
Den här guiden använder AuthTokenProvider för autentisering i exempel — se autentiseringsguiden för konfigurationsdetaljer.
Översikt
Det finns två sätt att onboarda en ny borgenär, beroende på om partnern samlar in nödvändiga uppgifter i förväg eller delegerar det steget till klientanvändaren via Amili-appen.
Alternativ A — Aktivera via Amili-appen: Partnern skapar kontot med en inaktiv borgenär och hänvisar klientanvändaren till att slutföra konfigurationen i Amili-appen. Fält som krävs för aktivering — såsom utbetalningsinformation och avsändaradress — behöver inte anges i detta steg, eftersom klientanvändaren tillhandahåller dem under onboardingflödet i Amili-appen.
Alternativ B — Direktaktivering: Partnern samlar in all nödvändig information i förväg och skapar kontot med en redan aktiv borgenär. Kontot följer standardavtalet enligt partnerinställningarna.
Vid alternativ A avslutas partnerns API-ansvar efter att kontot och användaren skapats — alla återstående steg sker i Amili-appen.
Steg 1: Skapa kontot
Använd Account endpoint för att skapa kontot och dess inledande borgenär i ett enda anrop. Fältet initial_creditor_data är ett skrivskyddat objekt som bearbetas server-side för att skapa borgenären — det lagras inte i kontodokumentet.
Alternativ A: Skapa konto med partiell data
Borgenären skapas i inaktivt tillstånd. Fält som krävs för aktivering — standard_debt_description, sender_address, invoice_address och payout_details — utelämnas här och samlas in från klientanvändaren under Amili-appens onboardingflöde.
Onboardingflaggor
När en partner har configuration.force_creditor_onboarding aktiverat (konfigurerat av Amili), får nya konton automatiskt flaggan enable_creditor_onboarding. Detta talar om för Amili-appen att visa onboardingflödet i gränssnittet när klientanvändaren loggar in för första gången.
Om ditt partnerkonto inte är konfigurerat med force_creditor_onboarding kan du ange enable_creditor_onboarding: true explicit på kontot.
const accountData = {
partner: '674dbeab08847b9501cc9130',
name: 'Exempel Företag AB',
organization_no: '556123-4567',
agreement_address: {
address_line_1: 'Storgatan 1',
zip_code: '11122',
city: 'Stockholm',
country: 'SE',
},
initial_creditor_data: {
is_active: false,
},
}
const token = await auth.getValidToken()
const response = await axios.post(
'https://api-sandbox.amili.se/accounts',
accountData,
{
headers: {
'X-API-Key': token,
'Content-Type': 'application/json',
},
}
)account_data = {
"partner": "674dbeab08847b9501cc9130",
"name": "Exempel Företag AB",
"organization_no": "556123-4567",
"agreement_address": {
"address_line_1": "Storgatan 1",
"zip_code": "11122",
"city": "Stockholm",
"country": "SE",
},
"initial_creditor_data": {
"is_active": False,
},
}
token = auth.get_valid_token()
response = requests.post(
"https://api-sandbox.amili.se/accounts",
json=account_data,
headers={
"X-API-Key": token,
"Content-Type": "application/json",
},
)
response.raise_for_status()
result = response.json()Alternativ B: Skapa konto med komplett data
Borgenären skapas i aktivt tillstånd. Alla fält som krävs för aktivering måste anges i förväg: standard_debt_description, sender_address, invoice_address och payout_details (med minst en valuta och kontotyp).
const accountData = {
partner: '674dbeab08847b9501cc9130',
name: 'Exempel Företag AB',
organization_no: '556123-4567',
agreement_address: {
address_line_1: 'Storgatan 1',
zip_code: '11122',
city: 'Stockholm',
country: 'SE',
},
initial_creditor_data: {
is_active: true,
standard_debt_description: 'Obetalda fakturor',
sender_address: {
address_line_1: 'Storgatan 1',
zip_code: '11122',
city: 'Stockholm',
country: 'SE',
},
invoice_address: {
address_line_1: 'Storgatan 1',
zip_code: '11122',
city: 'Stockholm',
country: 'SE',
},
payout_details: {
sek: {
bankgiro: '12312312',
},
},
},
}
const token = await auth.getValidToken()
const response = await axios.post(
'https://api-sandbox.amili.se/accounts',
accountData,
{
headers: {
'X-API-Key': token,
'Content-Type': 'application/json',
},
}
)account_data = {
"partner": "674dbeab08847b9501cc9130",
"name": "Exempel Företag AB",
"organization_no": "556123-4567",
"agreement_address": {
"address_line_1": "Storgatan 1",
"zip_code": "11122",
"city": "Stockholm",
"country": "SE",
},
"initial_creditor_data": {
"is_active": True,
"standard_debt_description": "Obetalda fakturor",
"sender_address": {
"address_line_1": "Storgatan 1",
"zip_code": "11122",
"city": "Stockholm",
"country": "SE",
},
"invoice_address": {
"address_line_1": "Storgatan 1",
"zip_code": "11122",
"city": "Stockholm",
"country": "SE",
},
"payout_details": {
"sek": {
"bankgiro": "12312312",
},
},
},
}
token = auth.get_valid_token()
response = requests.post(
"https://api-sandbox.amili.se/accounts",
json=account_data,
headers={
"X-API-Key": token,
"Content-Type": "application/json",
},
)
response.raise_for_status()
result = response.json()Svar
Båda alternativen returnerar samma svarsstruktur, inklusive det nya konto-ID:t och ID:t för den inledande borgenären:
{
"_id": "674dbeaf08847b9501cc9132",
"_creditor": "674dbeb208847b9501cc9138",
"_status": "OK",
"_created": "Tue, 07 Oct 2025 08:00:00 GMT",
"_updated": "Tue, 07 Oct 2025 08:00:00 GMT",
"_etag": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"
}Viktiga ID:n i svaret
_id— Konto-ID:t. Spara detta för framtida API-anrop som kräver enaccount-referens._creditor— Det inledande borgenärs-ID:t. Spara detta för att följa upp onboardingstatus och registrera ärenden när borgenären är aktiv.
Spara båda ID:n. Borgenärs-ID:t behövs i synnerhet för alla efterföljande ärende- och fakturaregistreringar.
Steg 2: Skapa klientanvändare
Skapa minst en kontoadministratör för att ge klienten tillgång till kontot.
const accountId = '674dbeaf08847b9501cc9132'
const token = await auth.getValidToken()
// Hitta account_admin-åtkomstgruppen för det nya kontot
const where = encodeURIComponent(
JSON.stringify({ account: accountId, type: 'account_admin' })
)
const groupsResponse = await axios.get(
`https://api-sandbox.amili.se/access--groups?where=${where}`,
{ headers: { 'X-API-Key': token } }
)
const accountAdminGroupId = groupsResponse.data._items[0]._id
// Skapa klientanvändaren
const userResponse = await axios.post(
'https://api-sandbox.amili.se/users',
{
account: accountId,
name: 'Anna Andersson',
email_data: { email: 'anna.andersson@example.com' },
is_enabled: true,
oauth_type: 'google',
email_oauth: 'anna.andersson@example.com',
data_access: [{ access_group: accountAdminGroupId }],
},
{ headers: { 'X-API-Key': token, 'Content-Type': 'application/json' } }
)import json
account_id = '674dbeaf08847b9501cc9132'
token = auth.get_valid_token()
headers = {'X-API-Key': token, 'Content-Type': 'application/json'}
# Hitta account_admin-åtkomstgruppen för det nya kontot
where = json.dumps({'account': account_id, 'type': 'account_admin'})
groups_response = requests.get(
'https://api-sandbox.amili.se/access--groups',
params={'where': where},
headers=headers,
)
groups_response.raise_for_status()
account_admin_group_id = groups_response.json()['_items'][0]['_id']
# Skapa klientanvändaren
user_response = requests.post(
'https://api-sandbox.amili.se/users',
json={
'account': account_id,
'name': 'Anna Andersson',
'email_data': {'email': 'anna.andersson@example.com'},
'is_enabled': True,
'oauth_type': 'google',
'email_oauth': 'anna.andersson@example.com',
'data_access': [{'access_group': account_admin_group_id}],
},
headers=headers,
)
user_response.raise_for_status()Se Användarhantering för mer information om åtkomstgruppstyper och hur du skapar borgenärsnivå-användare efter att onboarding är slutförd.
Steg 3: Slutförande av onboarding via Amili-appen
Endast alternativ A
Det här steget gäller när du använder alternativ A (aktivera via Amili-appen). För alternativ B är borgenären redan aktiv efter steg 1 och inga ytterligare åtgärder krävs.
Hänvisa klientanvändaren till Amili-appen
När kontot och användaren har skapats hänvisar du klientanvändaren till Amili-appen (t.ex. https://app-sandbox.amili.se för sandbox). När de loggar in identifierar appen automatiskt det pågående onboardingtillståndet och vägleder dem genom processen, som inkluderar:
- Bekräftelse av företagsuppgifter och konfigurering av utbetalningsinformation (bankkonto, avsändaradress, fakturaadress)
- Genomläsning och signering av det juridiska avtalet med BankID eller Visma e-sign
När klientanvändaren har slutfört dessa steg aktiveras borgenären och partnern kan börja registrera fakturor och ärenden mot den via API:et.
App-URL:er
För korrekt app-URL för din miljö, se sidan Miljöer.
Kontrollera aktiveringsstatus
Borgenären som skapades i steg 1 har is_active: false tills onboarding är slutförd. Försök att registrera fakturor eller ärenden mot en inaktiv borgenär avvisas av API:et.
Ett bra mönster är att kontrollera borgenärens aktiveringsstatus i början av en klientanvändarsession — eller lättjefullt, vid den punkt där klientanvändaren försöker utföra en åtgärd som kräver en aktiv borgenär. Hämta borgenären med dess ID och inspektera fältet is_active:
GET /creditors/{creditor_id}Om is_active är false, visa ett meddelande till klientanvändaren som förklarar att konfigurationen inte är slutförd och hänvisa dem tillbaka till Amili-appen för att slutföra onboarding.
Detta är en engångskontroll per session, inte en återkommande pollingloop.
