Yo le di la vuelta de esta forma:
* Ejemplo
? CFDIStatus("HDM001017AS1", "PEMN760615JDA", 10.00, "3A2B22BC-41FA-0931-33D9-1259FCE21F02")
FUNCTION CFDIStatus
LPARAMETERS tcRFCEmisor, tcRFCReceptor, txTotal, tcUUID
IF VARTYPE(tcRFCEmisor) # "C" THEN
tcRFCEmisor = ""
ENDIF
IF VARTYPE(tcRFCReceptor) # "C" THEN
tcRFCReceptor = ""
ENDIF
DO CASE
CASE VARTYPE(txTotal) == "N"
txTotal = STR(txTotal,20,6)
CASE VARTYPE(txTotal) == "C"
txTotal = ALLTRIM(txTotal)
OTHERWISE
txTotal = ""
ENDCASE
IF VARTYPE(tcUUID) # "C" THEN
tcUUID = ""
ENDIF
SET MESSAGE TO "GET -> SAT.ConsultaCFDIService ..."
TRY
loHT = CREATEOBJECT("MSXML2.XMLHTTP")
CATCH TO oErr
THIS.ERRORNO = oErr.ERRORNO
THIS.ERRORMESSAGE = oErr.MESSAGE
ENDTRY
LOCAL lcURL AS STRING
lcURL = lcURL + "re=" + tcRFCEmisor + "&rr=" + tcRFCReceptor + "&tt=" + txTotal + "&id=" + tcUUID
loHT.OPEN("GET",lcURL ,.f.)
loHT.setRequestHeader("Content-Type", "text/html")
loHT.SEND()
lcReturn = loHT.ResponseText
LOCAL lcEstado AS STRING
lcEstado = ""
LOCAL lnPos AS INTEGER
lnPos = AT("'Estado'",lcReturn)
IF lnPos > 0 THEN
lcReturn = RIGHT(lcReturn, LEN(lcReturn)-lnPos)
lnPos = AT(":",lcReturn)
IF lnPos > 0 THEN
lcReturn = ALLTRIM(RIGHT(lcReturn, LEN(lcReturn)-lnPos))
lnPos = AT("'",lcReturn)
IF lnPos > 0 THEN
lcReturn = ALLTRIM(RIGHT(lcReturn, LEN(lcReturn)-lnPos))
lnPos = AT("'",lcReturn)
IF lnPos > 0 THEN
lcReturn = LEFT(lcReturn,lnPos-1)
lcEstado = lcReturn
ENDIF
ENDIF
ENDIF
ENDIF
SET MESSAGE TO "GET -> SAT.ConsultaCFDIService: (" + tcUUID + ") Status=" + lcEstado
RETURN lcEstado
ENDFUNC