API-dokumentation
Kleevos integrations-API
Använd Kleevo v1 API för att ladda upp dokument, skapa signeringsförfrågningar, följa status, skicka påminnelser samt avbryta eller radera dokument.
Skaffa en API-nyckel
Logga in i Kleevo, öppna Inställningar och skapa en nyckel under API-nycklar. Ge nyckeln ett namn som identifierar systemet som använder den, till exempel Production CRM eller Staging.
Den fullständiga nyckeln visas bara en gång när den skapas. Lagra den i en serverbaserad hemlighetshanterare och exponera den aldrig i webbläsarkod, mobilappar eller publika kodarkiv.
Autentisering
Skicka API-nyckeln med varje v1-anrop med antingen headern X-API-Key eller en bearer token-header.
X-API-Key: kleevo_sk_din_nyckel
# eller
Authorization: Bearer kleevo_sk_din_nyckelAPI-nycklar agerar som användaren som skapade dem. Dokument som skapas via API:t visas i den användarens Kleevo-dashboard.
Bas-URL
https://api.kleevo.se/v1Skicka ett dokument
v1 API:t använder samma uppladdningssessionsflöde som Kleevos webbapp. Skapa först en uppladdningssession, ladda sedan upp dokumentet till den returnerade försignerade URL:en och skapa därefter signeringsförfrågan med uppladdningssessionens ID.
För interaktiva integrationer bör du starta uppladdningen så snart användaren väljer en PDF, i stället för att vänta tills användaren klickar på Skicka. Medan användaren fyller i mottagare, meddelande, utgångsdatum och andra obligatoriska fält kan ditt system skapa uppladdningssessionen och ladda upp dokumentet i bakgrunden. Då känns det sista skicka-steget betydligt snabbare.
Om användaren avbryter eller lämnar flödet innan signeringsförfrågan skapas, kassera den väntande uppladdningssessionen med DELETE /v1/uploads/{id}. Väntande uppladdade dokument raderas också automatiskt efter 30 minuter om de inte används.
1. Skapa en uppladdningssession
curl -X POST https://api.kleevo.se/v1/uploads \
-H "X-API-Key: kleevo_sk_din_nyckel"{
"id": "4b77f61d-6a4e-4f64-9292-f6ee7fd11423",
"contentType": "application/pdf",
"uploadUrl": "https://...",
"createdAt": "2026-06-29T08:15:00Z",
"expiresAt": "2026-06-29T08:45:00Z"
}2. Ladda upp dokumentet
curl -X PUT "https://returnerad-upload-url" \
-H "Content-Type: application/pdf" \
--data-binary @anstallningsavtal.pdf3. Skapa signeringsförfrågan
curl -X POST https://api.kleevo.se/v1/documents \
-H "X-API-Key: kleevo_sk_din_nyckel" \
-H "Content-Type: application/json" \
-d '{
"uploadSessionId": "4b77f61d-6a4e-4f64-9292-f6ee7fd11423",
"documentName": "Anstallningsavtal.pdf",
"sender": {
"name": "Anna Andersson",
"email": "anna@example.com",
"timeZoneId": "Europe/Stockholm",
"organization": {
"name": "Example AB",
"number": "559000-0000",
"address": "Kungsgatan 1",
"zipcode": "111 43",
"city": "Stockholm"
}
},
"signers": [
{
"name": "Erik Svensson",
"email": "erik@example.com",
"phone": "+46701234567"
}
],
"signingOrder": "AnyOrder",
"signingMethod": "Draw",
"excludeSocialSecurityNumber": false,
"sendCompletedDocumentToSigners": true,
"expiresAt": "2026-07-29",
"message": "Please review and sign."
}'Använd Sequential när signerare måste signera en i taget. Använd BankId som signeringsmetod när BankID-signering är aktiverat för ditt flöde.
Fält i skickaförfrågan
uploadSessionIdObligatorisktDet ID som returneras av POST /v1/uploads efter att dokumentet har laddats upp.
documentNameObligatorisktFilnamnet som visas för avsändare och signerare. Inkludera filändelsen .pdf.
sender.nameObligatorisktNamn på personen eller kontot som skickar dokumentet.
sender.emailObligatorisktAvsändarens e-postadress.
sender.timeZoneIdValfrittIANA-tidszon som fallback för oautentiserade utskick, till exempel Europe/Stockholm. Utskick med API-nyckel använder kontots tidszon från inställningarna. Saknade oautentiserade värden blir UTC när fältet utelämnas.
sender.organizationValfrittValfria företagsuppgifter som visas i signeringscertifikatet och kommunikationen. Varje underfält är valfritt: name, number, address, zipcode och city.
signersObligatorisktEn eller flera signerare. Varje signerare kräver name. Ange email för e-postinbjudningar och phone när SMS- eller BankID-flöden behöver ett telefonnummer.
signingOrderObligatorisktAnvänd AnyOrder eller Sequential. Med Sequential bjuds signerare in i samma ordning som de förekommer i arrayen signers. Nästa signerare bjuds in först efter att aktuell signerare har slutfört signeringen. Om det bara finns en signerare behandlar Kleevo dokumentet som AnyOrder.
signingMethodObligatorisktAnvänd Draw eller BankId.
excludeSocialSecurityNumberObligatorisktBooleskt värde som används av BankID-signeringsflöden.
sendCompletedDocumentToSignersObligatorisktBooleskt värde som styr om signerare får en nedladdningslänk till den färdiga PDF-filen. Avsändaren får alltid e-postmeddelandet med det färdiga dokumentet.
expiresAtObligatorisktUtgångsdatum i formatet YYYY-MM-DD.
messageValfrittValfritt meddelande som inkluderas i signeringsinbjudningar.
Ändpunkter
/v1/uploadsSkapa en tillfällig uppladdningssession för dokument och få en försignerad uppladdnings-URL.
/v1/uploads/{id}Hämta metadata för en väntande uppladdningssession.
/v1/uploads/{id}Kassera en väntande uppladdningssession.
/v1/documentsLista dokument som skapats av API-nyckelns användare.
/v1/documentsSkicka ett dokument för signering med en uppladdad dokumentsession.
/v1/documents/{id}Hämta dokumentdetaljer och signerarlänkar.
/v1/documents/{id}/remindersSkicka påminnelser till berättigade väntande signerare.
/v1/documents/{id}/cancelAvbryt ett väntande dokument.
/v1/documents/{id}Radera ett dokument och dess lagrade artefakter.
Anropsbegränsningar
API-anrop begränsas för att skydda tjänstens stabilitet. Gränser kan variera mellan ändpunkter och kontokonfiguration, så klienter bör kunna försöka igen med backoff.
När en gräns nås returnerar API:t 429 Too Many Requests med ett JSON-svar. När det är tillgängligt innehåller svaret även headern Retry-After med antal sekunder att vänta innan ett nytt försök.
{
"message": "Too many requests. Please try again later."
}Fel och utgångstid
Om du skickar ett dokument efter att uppladdningssessionen har gått ut, skapa en ny uppladdningssession, ladda upp dokumentet igen och försök skicka dokumentförfrågan på nytt.
{
"code": "upload_session_expired",
"message": "The temporary document upload expired."
}Ett 409-svar betyder att uppladdningen saknas, är ofullständig, har gått ut eller inte längre kan användas. Ett 400-svar betyder att request body inte klarade valideringen.