Sample code for 30+ languages & platforms
Lianja

Banco Inter OAuth2 Client Credentials

Generate an OAuth2 access token needed to consume the Inter APIs.

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

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

loHttp = createobject("CkHttp")

// First load the certificate and private key, and set as the HTTP object's client certificate.
loCert = createobject("CkCert")
llSuccess = loCert.LoadFromFile("<nome arquivo certificado>.crt")
if (llSuccess = .F.) then
    ? loCert.LastErrorText
    release loHttp
    release loCert
    return
endif

loBdPrivKey = createobject("CkBinData")
llSuccess = loBdPrivKey.LoadFile("<nome arquivo chave privada>.key")
if (llSuccess = .F.) then
    ? "Failed to load <nome"
    release loHttp
    release loCert
    release loBdPrivKey
    return
endif

loPrivKey = createobject("CkPrivateKey")
llSuccess = loPrivKey.LoadAnyFormat(loBdPrivKey,"")
if (llSuccess = .F.) then
    ? loPrivKey.LastErrorText
    release loHttp
    release loCert
    release loBdPrivKey
    release loPrivKey
    return
endif

llSuccess = loCert.SetPrivateKey(loPrivKey)
if (llSuccess = .F.) then
    ? loCert.LastErrorText
    release loHttp
    release loCert
    release loBdPrivKey
    release loPrivKey
    return
endif

llSuccess = loHttp.SetSslClientCert(loCert)
if (llSuccess = .F.) then
    ? loHttp.LastErrorText
    release loHttp
    release loCert
    release loBdPrivKey
    release loPrivKey
    return
endif

loReq = createobject("CkHttpRequest")
loReq.HttpVerb = "POST"
loReq.Path = "/oauth/v2/token"
loReq.ContentType = "application/x-www-form-urlencoded"
loReq.AddParam("grant_type","client_credentials")
// Requested scopes in OAuth2 are typically SPACE separated.
loReq.AddParam("scope","boleto-cobranca.read boleto-cobranca.write")
loReq.AddHeader("accept","application/json")

loResp = createobject("CkHttpResponse")
llSuccess = loHttp.HttpReq("https://cdpj.partners.bancointer.com.br/oauth/v2/token",loReq,loResp)
if (llSuccess = .F.) then
    ? loHttp.LastErrorText
    release loHttp
    release loCert
    release loBdPrivKey
    release loPrivKey
    release loReq
    release loResp
    return
endif

loJResp = createobject("CkJsonObject")
loResp.GetBodyJson(loJResp)
loJResp.EmitCompact = .F.

? "Response Body:"
? loJResp.Emit()

lnRespStatusCode = loResp.StatusCode
? "Response Status Code = " + str(lnRespStatusCode)
if (lnRespStatusCode >= 400) then
    ? "Response Header:"
    ? loResp.Header
    ? "Failed."
    release loHttp
    release loCert
    release loBdPrivKey
    release loPrivKey
    release loReq
    release loResp
    release loJResp
    return
endif

llSuccess = loJResp.WriteFile("qa_data/tokens/banco_inter_client_credentials.json")
if (llSuccess = .F.) then
    ? "Failed to save JSON access token file."
    release loHttp
    release loCert
    release loBdPrivKey
    release loPrivKey
    release loReq
    release loResp
    release loJResp
    return
endif

? "Success."


release loHttp
release loCert
release loBdPrivKey
release loPrivKey
release loReq
release loResp
release loJResp