public IHttpActionResult cancelRedeem([FromBody] clsCancelRedeemRequest body)
        {
            try
            {
                string  jsonMasuk = JsonConvert.SerializeObject(body);
                CFungsi fungsi    = new CFungsi();
                fungsi.tracelog("CANCEL REDEEM MASUK : " + jsonMasuk);


                reqCore_cancelRedeem reqCore = new reqCore_cancelRedeem();
                reqCore.invoice_number = body.invoice_number;
                reqCore.id_bucket      = body.token;

                string JsonCoreReq          = JsonConvert.SerializeObject(reqCore);
                MyPoinCore.service2 service = new MyPoinCore.service2();
                fungsi.tracelog("CANCEL REDEEM POINT REQUEST CORE : " + service.Url + " " + JsonCoreReq);
                string[] respCore = service.cancel_redeem_point(JsonCoreReq);
                fungsi.tracelog("CANCEL REDEEM POINT RESPONSE CORE : " + respCore[0] + "//" + respCore[1] + "//" + respCore[2]);


                if (respCore[0] == "0")
                {
                    respCore_cancelRedeem cRespCore = JsonConvert.DeserializeObject <respCore_cancelRedeem>(respCore[1]);


                    clsCancelRedeemResponse response = new clsCancelRedeemResponse();

                    //crespCore dimasukin ke response
                    response.membership.balance       = 0;
                    response.membership.created       = "";
                    response.membership.referral_code = "";
                    response.membership.stamps        = cRespCore.membership.point;
                    response.membership.start_date    = "";
                    response.membership.status        = 1;
                    //response.membership.tags

                    //response.redemption.extra_data

                    response.redemption.id = int.Parse(cRespCore.redemption_point.id);
                    //response.redemption.reward
                    response.redemption.stamps_used = cRespCore.redemption_point.point_used;
                    response.redemption.status      = cRespCore.redemption_point.status;


                    return(Json(response));
                }
                else
                {
                    fungsi.tracelog("CANCEL REDEEM RETURN " + respCore[1]);

                    return(ResponseMessage(Request.CreateResponse(HttpStatusCode.BadRequest, respCore[1])));
                }
            }
            catch (Exception ex)
            {
                CFungsi fungsi = new CFungsi();
                fungsi.tracelog("error at CANCEL redeem flexible " + ex.Message + " -- " + ex.StackTrace);
                return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message)));
            }
        }