Authenticatiestrings genereren (REST API)

Laatst bijgewerkt: 7 oktober 2026

Sommige REST-endpoints maken gevoelige operaties mogelijk, zoals het plaatsen van orders of het aanvragen van een opname van een digitale asset. Deze privé-endpoints kunnen daarom alleen worden aangeroepen via versleutelde verzoeken; in elk verzoek moet een authenticatiestring (authent) zijn opgenomen. authent wordt berekend op basis van de volgende invoerwaarden:

PostData

postData is een „&"-aaneenschakeling in de vorm = en is specifiek voor elk REST-endpoint.

Bijvoorbeeld

Om het endpoint orderbook te gebruiken, kies je het argument symbol met de waarde
fi_xbtusd_180615. postData is dan gelijk aan symbol=fi_xbtusd_180615.

Update van de authenticatiestroom voor v3-endpoints: Met ingang van 20 februari 2024 werken we de authenticatiestroom voor onze /derivatives/* (v3)-endpoints bij, om aan te sluiten bij best practices en een hogere beveiligingsstandaard te waarborgen. (details hieronder)

Wijzigingen in de PostData-generatie:


- Vóór de release: Gebruikers moesten querystring-parameters hashen vóór url-encoding voor het genereren van Authent, bijv. `greeting=hello world`.


- Na de release: Het authenticatieproces vereist nu het hashen van de volledige, url-gecodeerde URI-component zoals die in het verzoek voorkomt, bijv. `greeting=hello%20world`. Deze methode verbetert de beveiliging en sluit aan bij best practices.
Deze update is met name relevant voor het v3 batchorder-endpoint, dat een JSON-body in de queryparameters accepteert.


Achterwaartse compatibiliteit en toekomstplannen:


Voorlopig is deze wijziging achterwaarts compatibel. Het platform accepteert beide hierboven beschreven methoden voor PostData-generatie. We streven er echter naar de oude methode (het hashen van gedecodeerde querystring-parameters) in de toekomst uit te faseren om de hoogste beveiligingsstandaarden te handhaven. We zullen ruim van tevoren mededeling doen van deze wijziging en raden alle gebruikers ten zeerste aan zo snel mogelijk over te stappen op de nieuwe methode om een ononderbroken dienstverlening te garanderen.

Nonce

Nonce is een continu oplopende gehele-getalparameter. Een goede Nonce is je systeemtijd in
milliseconden (in stringformaat). Ons systeem tolereert Nonces die korte tijd niet in volgorde zijn. Nonce is niet verplicht.

Voorbeeld 1415957147987

Veel authenticatieproblemen hangen samen met een onjuiste Nonce. Een nieuw API-sleutelpaar reset de Nonce automatisch en lost deze problemen op.

Endpoint-pad

endpointPath is de URL-extensie van het endpoint.

Voorbeeld /api/v3/orderbook

API Secret

De api_secret verkrijg je zoals beschreven in de vorige sectie.

Bijvoorbeeld

rttp4AzwRfYEdQ7R7X8Z/04Y4TZPa97pqCypi3xXxAqftygftnI6H9yGV+O
cUOOJeFtZkr8mVwbAndU3Kz4Q+eG

Op basis van deze invoerwaarden moet authent als volgt worden berekend:

  1. 1

    Samenvoegen

    postData

    +

    nonce

    +

    endpointPath

  2. 2

    Hash het resultaat van stap 1 met het SHA-256-algoritme

  3. 3

    Base64-decodeer je api_secret

  4. 4

    Gebruik het resultaat van stap 3 om het resultaat van stap 2 te hashen met het HMAC-SHA-512-algoritme

  5. 5

    Base64-codeer het resultaat van stap 4

Bijvoorbeeld

Hieronder staat een implementatie van authent in Java. Zie voor volledige werkende voorbeelden in verschillende programmeertalen de sectie Aanvullende bronnen. public static String getAuthent(String postData, String nonce, String endpointPath, String secretKeyBase64)
{
Mac mac512;
MessageDigest sha256;
try {
SecretKey secretKey = new SecretKeySpec 
(Base64.decode(secretKeyBase64.getBytes()), HMAC_SHA_512);
mac512 = Mac.getInstance(HMAC_SHA_512);
mac512.init(secretKey);
sha256 = MessageDigest.getInstance("SHA-256");
} catch (IOException e) {
...
} catch (InvalidKeyException e) {
...
} catch (NoSuchAlgorithmException e) {
...
} sha256.update(postData.getBytes());
sha256.update(nonce.getBytes());
sha256.update(endpointPath.getBytes());
mac512.update(sha256.digest());
return Base64.encodeBytes(mac512.doFinal()).trim();
}