diff --git a/lib/command-handler/buy.js b/lib/command-handler/buy.js
index 836a93e..d3dc3ca 100644
--- a/lib/command-handler/buy.js
+++ b/lib/command-handler/buy.js
@@ -1,5 +1,6 @@
 // const moment = require('moment');
 
+const config = require('komodo-sdk/config');
 const logger = require('komodo-sdk/logger');
 
 const commands = require('../command-group');
@@ -7,7 +8,8 @@ const commandError = require('./error');
 const destinationCorrector = require('../destination-corrector');
 const coreapi = require('../coreapi');
 
-const coreEndpoint = '/prepaid/buy';
+const coreEndpointAuto = '/buy-or-pay';
+const coreEndpointBuy = '/prepaid/buy';
 
 /*
 function generateRequestId(product, destination) {
@@ -49,6 +51,7 @@ function execute(tokens, params, cb) {
         postpaid: 0
     };
 
+    const coreEndpoint = config.buy_only_prepaid ? coreEndpointBuy : coreEndpointAuto;
     coreapi(coreEndpoint, coreParams, 'GET', cb);
 }
 
diff --git a/lib/coreapi/request.js b/lib/coreapi/request.js
index 2a7e8a3..610d257 100644
--- a/lib/coreapi/request.js
+++ b/lib/coreapi/request.js
@@ -1,12 +1,14 @@
 // const PRODUCTION = process.env.NODE_ENV === 'production';
 
 const request = require('request');
+const uniqid = require('uniqid');
 
 const coreUrl = require('komodo-sdk/core-url');
 const logger = require('komodo-sdk/logger');
 const commandError = require('../command-handler/error');
 
 function execute(coreEndpoint, params, httpMethod, cb) {
+    const xid = uniqid();
 
     const requestOptions = {
         url: coreUrl + coreEndpoint,
@@ -20,7 +22,9 @@ function execute(coreEndpoint, params, httpMethod, cb) {
         requestOptions.data = params;
     }
 
-    logger.verbose('COREAPI-REQUEST: Requesting to core', {url: requestOptions.url, http_method: httpMethod, params: params});
+    logger.verbose('COREAPI-REQUEST: Requesting to core', {
+        xid, url: requestOptions.url, http_method: httpMethod, params: params,
+    });
 
     request(requestOptions, function(err, res, body) {
         const responseParams = {
@@ -30,11 +34,18 @@ function execute(coreEndpoint, params, httpMethod, cb) {
         }
 
         if (err) {
+            logger.warn('ERROR on requesting to CORE', {
+                xid, eCode: err.code, eMessage: err.message,
+            });
             cb(commandError.ERR_INVALID_CORE_RESPONSE, null, responseParams);
             return;
         }
 
         if (res.statusCode !== 200) {
+            logger.warn('Invalid HTTP status from CORE', {
+                xid, httpStatus: res.statusCode,
+            });
+
             cb(commandError.ERR_INVALID_CORE_HTTP_STATUS_RESPONSE, null, responseParams);
             return;
         }
@@ -43,14 +54,20 @@ function execute(coreEndpoint, params, httpMethod, cb) {
             var coreResponseObject = JSON.parse(body);
         }
         catch(e) {
-            logger.verbose(commandError.ERR_INVALID_CORE_RESPONSE, {body: body})
+            logger.warn(commandError.ERR_INVALID_CORE_RESPONSE, {
+                xid, eCode: e.code, eMessage: e.message, body: body
+            });
             cb(commandError.ERR_INVALID_CORE_RESPONSE, null, responseParams);
             return;
         }
 
+        logger.verbose('Got CORE response', {
+            xid, coreResponseObject,
+        });
+
         cb(err, coreResponseObject, responseParams);
     })
-    
+
 }
 
 module.exports = execute;
\ No newline at end of file