System-til-system-kaldet er beskyttet med Java Web Tokens (JWT). Den kaldende part veksler først sit OCES3 certifikater til en JWT ved at kalde Skatteforvaltningens Billetautomat. Går kaldet godt, vil resultatet være en JWT, altså en adgangsbillet.
Ved kald til Billetautomat skal der skelnes mellem, om det er den indberetningspligtige selv eller det er en datacentral, som har fået delegeret rettigheder af den indberetningspligtige, der foretager kaldet.
Kald til Billetautomaten fra den indberetningspligtige selv
Et curl eksempel på, hvordan sådan et kald fra den indberetningspligtige kan ske, er:
jwtbillet=$(curl --cert-type P12 --cert b2b.p12:'<PASSWORD>' -k -X POST "https://oces.billetautomat.skat.dk/auth/realms/oces/certificates/cert" -H "Content-Type: application/json" -d '{ "client_id": "api-gateway", "nonce":"${uuid}" }' | jq -r '.access_token')
I eksemplet indeholder b2b.p12 det kaldende systems certifikat. Client_id er det udleverede klient-id fra DUPLA, og udfyldes altid med 'api-gateway'. Nonce er et UUID V4 som klienten har ansvaret for at generere.
I skal hente en token for hver gang I indberetter.
I skal sende et unikt UUID for hver klient (indberetningspligtig). Det er generelt en god idé at bruge et unikt UUID ved hvert kald til brug for sporbarhed.
Kald til Billetautomaten fra en datacentral, på vegne af en indberetningspligtig
Hvis ikke det er den indberetningspligtige selv, der indberetter, men der indberettes på vegne af en indberetningspligtig, skal det angives i kaldet, at man indberetter på vegne af og angiv SEnummer for den man indberetter på vegne af.
Et eksempel curl kald kunne se sådan ud:
jwtbillet=$(curl --cert-type P12 --cert b2b.p12:'<PASSWORD>' -k -X POST "https://oces.billetautomat.skat.dk/auth/realms/oces/certificates/cert" -H "Content-Type: application/json" -d '{ "client_id": "api-gateway", "nonce":"${uuid}", "paa_vegne_af_se":"12345678" }' | jq -r '.access_token')
I eksemplet indeholder b2b.p12 det kaldende systems certifikat. Client_id er det udleverede klient-id fra DUPLA, og udfyldes altid med 'api-gateway'. Nonce er et UUID V4 som klienten har ansvaret for at generere. Paa_vegne_af_se udfyldes med cvr-nr. for den indberetningspligtige på hvis vegne, der indberettes.
I skal hente en token for hver gang I indberetter.
I skal sende et unikt UUID for hver klient (indberetningspligtig). Det er generelt en god idé at bruge et unikt UUID ved hvert kald til brug for sporbarhed.