Sample code for 30+ languages & platforms
B4X

ABN AMRO OAuth2 Client Credentials Authentication

See more ABN AMRO Examples

Demonstrates how to obtain an access token for an ABN AMRO online API using OAuth2 with the Client Credentials flow.

Chilkat B4X Downloads

B4X
Dim success As Boolean = False

'  This example requires the Chilkat API to have been previously unlocked.
'  See Global Unlock Sample for sample code.

'  This example sends the following CURL request:

'  	curl -X POST -k https://auth-sandbox.connect.abnamro.com:8443/as/token.oauth2 \
'  	-v \
'  	--cert TPPCertificate.crt \
'  	--key TPPprivateKey.key \
'  	-H 'Cache-Control: no-cache' \
'  	-H 'Content-Type: application/x-www-form-urlencoded' \
'  	-d 'grant_type=client_credentials&client_id=TPP_test&scope=psd2:payment:sepa:write psd2:payment:sepa:read'

Dim cert As ChilkatCert
cert.Initialize("cert")
success = cert.LoadFromFile("qa_data/certs/TPPCertificate.cer")
If success = False Then
    Log(cert.LastErrorText)
    Return
End If


Dim bdKey As ChilkatBinData
bdKey.Initialize
success = bdKey.LoadFile("qa_data/certs/TPPprivateKey.key")

Dim privKey As ChilkatPrivateKey
privKey.Initialize("privKey")
success = privKey.LoadAnyFormat(bdKey, "passwordIfNeeded")
If success = False Then
    Log(privKey.LastErrorText)
    Return
End If


success = cert.SetPrivateKey(privKey)
If success = False Then
    Log(cert.LastErrorText)
    Return
End If


Dim http As ChilkatHttp
http.Initialize("http")

success = http.SetSslClientCert(cert)
If success = False Then
    Log(http.LastErrorText)
    Return
End If


Dim req As ChilkatHttpRequest
req.Initialize
req.AddParam("grant_type", "client_credentials")
req.AddParam("client_id", "TPP_test")
req.AddParam("scope", "psd2:payment:sepa:write psd2:payment:sepa:read")

req.HttpVerb = "POST"
req.ContentType = "application/x-www-form-urlencoded"

Dim resp As ChilkatHttpResponse
resp.Initialize
success = http.HttpReq("https://auth-sandbox.connect.abnamro.com:8443/as/token.oauth2", req, resp)
If success = False Then
    Log(http.LastErrorText)
    Return
End If


If resp.StatusCode <> 200 Then
    Log(resp.BodyStr)
    Return
End If


'  Get the JSON result:
'  {"access_token":"TIhycwl8rfrZPkXGw15mwldASAAK","token_type":"Bearer","expires_in":7200}
Dim json As ChilkatJsonObject
json.Initialize
json.Load(resp.BodyStr)
Log("access_token: " & json.StringOf("access_token"))
Log("token_type: " & json.StringOf("token_type"))
Log("expires_in: " & json.StringOf("expires_in"))