DECLARE l_token_url VARCHAR2(32767) := 'https://cacm-api-stage.ascend/auth/v2/login'; l_client_id VARCHAR2(32767) := 'ex*********vc'; l_client_secret VARCHAR2(32767) := '20*********J'; l_flow_type VARCHAR2(32767) := 'OAUTH_CLIENT_CRED'; l_wallet_path VARCHAR2(32767) := 'file:' || CCM_INT_API_PKG.GET_DB_DIRECTORY_PATH('DATA_PUMP_DIR'); l_access_token VARCHAR2(32767); l_vcHeaderName VARCHAR2(32767); l_vcHeaderValue VARCHAR2(32767); BEGIN APEX_DEBUG_MESSAGE.ENABLE_DEBUG_MESSAGES(p_level => 4); BEGIN apex_web_service.oauth_authenticate( p_token_url => l_token_url, p_client_id => l_client_id, p_client_secret => l_client_secret, p_flow_type => l_flow_type, p_wallet_path => l_wallet_path ); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line('Error: ' || SQLERRM); RETURN; END; DBMS_OUTPUT.put_line('Response Headers: '); FOR i IN 1.. apex_web_service.g_headers.count LOOP l_vcHeaderName := apex_web_service.g_headers(i).name; l_vcHeaderValue := apex_web_service.g_headers(i).value; DBMS_OUTPUT.put_line(l_vcHeaderName || ' : ' || l_vcHeaderValue); END LOOP; l_access_token := apex_web_service.g_oauth_token.token; DBMS_OUTPUT.put_line('Access Token: ' || l_access_token); DBMS_OUTPUT.put_line('Status Code: ' || APEX_WEB_SERVICE.G_STATUS_CODE); DBMS_OUTPUT.put_line('Reason Phrase: ' || APEX_WEB_SERVICE.G_REASON_PHRASE); APEX_DEBUG_MESSAGE.DISABLE_DEBUG_MESSAGES(); END; Output: --------------------------------- Error: ORA-20001: Authentication failed. Statement processed. 1.11 seconds