Autentificering
Hvert kald til Auditply API bærer to ting:
- en API-nøgle, der fastlægger virksomheden og hvilke dele af API'et nøglen må bruge (scopes), og
- en handlende bruger, som kaldet udføres på vegne af. Brugerens egne rettigheder i Auditply afgør, hvad kaldet må.
Adgang kræver, at begge dele holder: nøglen har scopet, brugeren tilhører nøglens virksomhed, og brugeren har selv rettigheden. Et scope alene giver aldrig adgang.
API-nøgler
API-nøgler oprettes i Auditply via brugermenuen — klik på dit navn nederst i sidemenuen og vælg API-nøgler. Menupunktet vises kun for brugere med API-adgang; kontakt Auditply for at få adgang. Når en nøgle oprettes, vises den fulde nøgle kun én gang — gem den et sikkert sted. En nøgles scopes kan ikke ændres bagefter: opret en ny nøgle og tilbagekald den gamle.
Nøgle-format
Alle nøgler starter med præfikset ap_live_ efterfulgt af 64 hexadecimale tegn:
ap_live_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2
Headere
| Header | Påkrævet | Indhold |
|---|---|---|
X-API-Key | Altid | API-nøglen |
X-On-Behalf-Of-User | På alle endpoints undtagen POST /users/resolve | Det numeriske Auditply-bruger-id for den bruger, kaldet udføres på vegne af |
Brugerens id finder du med POST /users/resolve, som slår en bruger op på e-mail.
- curl
- JavaScript
- Python
curl https://auditply.dk/api/v1/kyc/cases \
-H "X-API-Key: ap_live_a1b2c3d4e5f6..." \
-H "X-On-Behalf-Of-User: 42"
const response = await fetch("https://auditply.dk/api/v1/kyc/cases", {
headers: {
"X-API-Key": process.env.AUDITPLY_API_KEY,
"X-On-Behalf-Of-User": "42",
},
});
const data = await response.json();
console.log(data);
import requests
import os
response = requests.get(
"https://auditply.dk/api/v1/kyc/cases",
headers={
"X-API-Key": os.environ["AUDITPLY_API_KEY"],
"X-On-Behalf-Of-User": "42",
},
)
data = response.json()
print(data)
Hvert kald logges med både nøgle og handlende bruger.
Når ingen rådgiver handler
Sker noget uden en rådgiver — fx når en kunde selv lægger sit pas op i jeres system, eller når et synkroniseringsjob kører — sendes id'et på virksomhedens integrationsbruger. Den oprettes af Auditply ved opstart af integrationen, kan ikke logge ind og står som den handlende i Auditplys log og på dannede dokumenter som PEP-erklæringen. Brug ikke sagens KYC-ansvarlige til det, for så tilskrives rådgiveren handlinger, vedkommende ikke har foretaget.
Scopes
Hver API-nøgle tildeles et sæt scopes, der bestemmer hvilke endpoints den kan tilgå:
| Scope | Adgang til |
|---|---|
kyc:read | Læs KYC-sager, kunder, personer, risikovurderinger og status |
kyc:write | Opret og opdatér KYC-sager, ansvarlig og personer |
kyc:documents | Upload, erstat og træk KYC-dokumenter tilbage |
users:lookup | Slå en bruger i virksomheden op på e-mail |
Hvert endpoint angiver desuden den brugerrettighed, den handlende bruger skal have — fx kyc_cases_view for at læse sager.
Fejl
| Kode | HTTP | Årsag |
|---|---|---|
MISSING_API_KEY | 401 | Ingen X-API-Key |
INVALID_API_KEY | 401 | Nøglen er ugyldig, udløbet eller tilbagekaldt |
INSUFFICIENT_SCOPE | 403 | Nøglen mangler endpointets scope |
MISSING_ON_BEHALF_OF | 400 | Ingen X-On-Behalf-Of-User |
INVALID_ON_BEHALF_OF | 403 | Brugeren findes ikke i nøglens virksomhed. Svaret er det samme uanset årsag |
INSUFFICIENT_USER_PERMISSION | 403 | Brugeren mangler rettigheden. details.missing_permissions lister hvilke |
{
"error": {
"code": "INSUFFICIENT_USER_PERMISSION",
"message": "The acting user does not have permission to perform this action.",
"status": 403,
"details": { "missing_permissions": ["kyc_cases_view"] }
}
}
:::warning Opbevar din nøgle sikkert Gem aldrig din API-nøgle i kildekode, Git-repositories eller frontend-applikationer. Brug miljøvariabler eller en secrets manager. :::