Problema al timbrar factura (Service Layer)

Hola a todos, me presento en el foro de Ayuda SAP, me llamo Eduardo López del Castillo, soy desarrollador en una empresa donde ocupan SAP B1 en México , me encuentro trabajando en una implementacion de SAP con Service Layer a una pagina web.

Mi backend esta implementado en Fast API donde me conecto al service layer.

Tengo un detalle al momento de crear facturas por medio de Service Layer, si bien la factura puedo crearla sin problemas tomando como base las ofertas de venta , el problema surge al intentar crearla timbrada al SAT , es decir, intento llamar al Electronic File Manager, pero siempre falla a pesar de enviar los mismos campos que encuentro en la respuesta de facturas creadas desde SAP GUI.

Voy a compartir un pedazo del payload que mando a mi backend.

─── PAYLOAD FACTURA ─────────────────────────────────────

payload: dict = {

    "CardCode": cardcode,

    "DocDate": today,

    "DocDueDate": today,

    "TaxDate": data.tax_date or today,

    "PaymentGroupCode": payment_group_code,

    "PaymentMethod": PAYMENT_METHODS_OPYM.get(pm, ""),

    "U_B1SYS_MainUsage": invoice_data.get("cfdi_uso") or "S01",

    "U_CP": invoice_data.get("cp_fiscal") or cp,

    "FederalTaxID": invoice_data.get("lictradnum") or "XAXX010101000",

    "U_TRANSPORTES": invoice_data.get("reg_fiscal") or "616",

    "U_fpago": invoice_data.get("forma_pago") or ("PPD" if pm == "POR DEFINIR" else "PUE"),

    "EDocGenerationType": "edgt_Generate",

     "U_MetPago": "01", #METODO DE PAGO EFECTIVO PARA PASAR EL CAMPO

     

     "ShipToCode": "DIR",

     "PayToCode": "DIR",

     

    \# Fuerza el CP en la dirección de entrega

    "AddressExtension": {

        "ShipToZipCode": invoice_data.get("cp_fiscal") or cp,

        "BillToZipCode": invoice_data.get("cp_fiscal") or cp,

    },

    

    #Intentar timbrar factura 

    "ElectronicProtocols": \[

    {

        "ProtocolCode": "edpc_CFDI",

        "GenerationType": "edgt_Generate",

        "MappingID": 27,

        "TestingMode": "tNO",

        "PaymentMethod": "01",

        "CFDiExport": "01",

    }

\],

    "DocumentLines": document_lines,

}

El flujo de mi endpoint que consulta al service layer se resume en

  1. Consultar la info completa de la oferta de venta de donde proviene.
  2. Crear la factura sin pagar ( De hecho aqui tuve otro problema y es que tuve que poner el payment_Group_code o metodo de pago de la seccion finanzas como -1 o Cash basic ya que no me dejaba crearla y pagarla al mismo tiempo)
  3. Se intenta timbrar (lo omito para seguir haciendo pruebas)
  4. Se hace el pago de la factura
  5. Finaliza ( me da la factura con el pago recibido)

El caso es que por algun motivo el timbrado siempre falla aunque ya llene todos los campos que pide regularmente y el mensaje de error es muy generico, siempre el mismo

Can not call the Electronic File Manager y es todo.

¿Alguien ha pasado por el mismo problema al hacer implementaciones de Service Layer con las facturas?
¿Como puedo resolverlo?