Authentication

De X-Bol-Authorization header wordt op een specifieke manier opgebouwd. Hieronder volgt het formaat en een uitleg hoe de header stap voor stap wordt opgebouwd.

public_key:hash

Stap 1 – De API keys

Om te beginnen zijn de API keys uit het verkoperaccount vereist voor de authenticatie. Voor onderstaande voorbeelden zullen we een voorbeeld public- en private key gebruiken zodat het proces nagebootst kan worden.

Let op: het is niet de bedoeling om deze API keys te gebruiken aangezien het voorbeelden zijn.

Public key:
oRNWbHFXtAECmhnZmEndcjLIaSKbRMVE

Private key:
MaQHPOnmYkPZNgeRziPnQyyOJYytUbcFBVJBvbMKoDdpPqaZbaOiLUTWzPAkpPsZFZbJHrcoltdgpZolyNcgvvBaKcmkqFjucFzXhDONTsPAtHHyccQlLUZpkOuywMiOycDWcCySFsgpDiyGnCWCZJkNTtVdPxbSUTWVIFQiUxaPDYDXRQAVVTbSVZArAZkaLDLOoOvPzxSdhnkkJWzlQDkqsXNKfAIgAldrmyfROSyCGMCfvzdQdUQEaYZTPEoA

Stap 2 – Opbouw van de signature string

De signature string wordt uit verschillende variabelen opgebouwd, hieronder staat het formaat:

http_verb +'\n\n'+ content_type +'\n'+ x_bol_date +'\n'+ 'x-bol-date:'+ x_bol_date +'\n'+ uri

Let op: ‘\n\’ staat voor een new line. 

Hieronder staan alle variabelen die gebruikt worden om tot de signature string te komen.

Veld Waarde
http_verb GET
content_type application/xml
x_bol_date Wed, 17 Feb 2016 00:00:00 GMT
uri /services/rest/orders/v2 – Let op: de uri begint na de root endpoint en parameters moeten niet meegenomen worden.

Example

GET

application/xml
Wed, 17 Feb 2016 00:00:00 GMT
x-bol-date:Wed, 17 Feb 2016 00:00:00 GMT
/services/rest/orders/v2

Stap 3 – HMAC (SHA-256)

Het resultaat uit stap 2 wordt vervolgens gehashed met HMAC (SHA-256). Hieronder volgt het resultaat:

ž¬ËZõÈÕàazÑÇ“EÛuy…/ׂ–‚s>/ÑÛ

Stap 4 – Base 64

Het resultaat uit stap 3 wordt vervolgens gehashed met Base 64. Hieronder volgt het resultaat:

nqzLWvXI1eBhBXrRx5NF23V5hS8Q1xWCloJzPi/RAts=

Stap 5 – Samenvoegen

Als laatste stap wordt het resultaat van stap 4 (de hash) samengevoegd met de public key. Hieronder volgt het formaat en het definitieve resultaat.

public_key:hash
oRNWbHFXtAECmhnZmEndcjLIaSKbRMVE:nqzLWvXI1eBhBXrRx5NF23V5hS8Q1xWCloJzPi/RAts=

Voorbeeldcode