1. Home
  2. Servicios
  3. Timbrado V4
  4. Timbrado Por Lotes
  1. Home
  2. SW API´S
  3. Timbrado Por Lotes

Timbrado Por Lotes

El servicio por lotes es un servicio BATCH que realiza el timbrado masivo de comprobantes previamente sellados CFDI 4.0 en formato XML.

En ambiente de pruebas se pueden usar certificados reales, pero recomendamos hacer uso de los CSD de pruebas.

💡Nota Importante: 👉 Para utilizar este servicio, es necesario configurar previamente tu usuario y contar con un webhook que cumpla con las especificaciones indicadas en esta documentación.
Escríbenos a soporte@sw.com.mx para compartirte más información, ten en cuenta que el proceso de integración puede tomar tiempo.

🛜Webhook

A continuación, se describen las características del evento que el servicio de timbrado por lotes envía a tu Webhook.

💡Nota Importante: 👉 Las URL enviadas a tu webhook tienen una vigencia promedio de 72 horas.
POST /batch/webhook HTTP/1.1
Host: {{url_webhook_client}}
Authorization: Basic dXNlcpoiYXNs
Content-Type: application/json
Content-Length: 70
{
  "urlOutput": "",
  "urlReport": "",
  "urlReportError": ""
}

🌐URL´s

🛠️ Pruebas:
🚀 Productivo:

📁Timbrado por Lotes

Servicio BATCH que timbra un lotes de comprobantes CFDI 4.0 previamente sellados en formato XML comprimidos dentro de un archivo .zip.

🔗 Endpoint

MétodoRuta
POST/BatchService.svc?wsdl

🔐 Autenticación y Headers

HeaderValue
Content-Typetext/xml;charset=”utf-8″
SOAPActionhttp://tempuri.org/IBatchService/ProcessBatchV3

📍 Parámetros

PropiedadUsoDescripción
tokenRequeridoBearer Token
originalFileNameRequeridoNombre del archivo zip que contiene los XML
generatePdfOpcionalIndica si el proceso se realizará generando PDF o no (true o false)
pdfTemplateIdOpcionalIndica la plantilla genérica con la que requiere generar los PDF. Si tienes plantilla a la medida contáctate con soporte técnico.
contentRequeridoArchivo zip en base 64

Ejemplo Request

curl --location --request POST 'http://pruebascfdi.smartweb.com.mx:8080/BatchService.svc' \
--header 'SOAPAction: http://tempuri.org/IBatchService/ProcessBatchV3' \
--header 'Content-Type: text/xml;charset="utf-8"' \
--data '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
   <soapenv:Header/>
   <soapenv:Body>
      <tem:ProcessBatchV3>
         <tem:token>T2lYQ0t4L...</tem:token>
         <tem:originalFileName>lotes.zip</tem:originalFileName>
         <tem:generatePdf>true</tem:generatePdf>
        <tem:pdfTemplateId>cfdi40</tem:pdfTemplateId>
         <tem:content>UEsDBBQAAAAIABp...</tem:content>
      </tem:ProcessBatchV3>
   </soapenv:Body>
</soapenv:Envelope>'

Ejemplo Response

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body>
        <ProcessBatchV3Response xmlns="http://tempuri.org/">
            <ProcessBatchV3Result>34cbebe9-681e-4ea2-8ab9-548457d1866e</ProcessBatchV3Result>
        </ProcessBatchV3Response>
    </s:Body>
</s:Envelope>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body>
        <s:Fault>
            <faultcode xmlns:a="http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher">a:InternalServiceFault</faultcode>
            <faultstring xml:lang="en-US">Batch999 : El archivo ya fue enviado anteriormente.</faultstring>
            <detail>
                <ExceptionDetail xmlns="http://schemas.datacontract.org/2004/07/System.ServiceModel" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
                    <HelpLink i:nil="true"/>
                    <InnerException i:nil="true"/>
                    <Message>Batch999 : El archivo ya fue enviado anteriormente.</Message>
                    <StackTrace>   at InvoiceProcessor.Service.BatchService.ProcessBatchV3(String token, String originalFileName, String generatePdf, String pdfTemplateId, String companyName, Byte[] content) in D:\a\1\s\BatchStamp\InvoiceProcessor.Service\BatchService.svc.cs:line 274&#xD;
   at SyncInvokeProcessBatchV3(Object , Object[] , Object[] )&#xD;
   at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]&amp; outputs)&#xD;
   at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&amp; rpc)&#xD;
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&amp; rpc)&#xD;
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc&amp; rpc)&#xD;
   at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)</StackTrace>
                    <Type>System.Web.Services.Protocols.SoapException</Type>
                </ExceptionDetail>
            </detail>
        </s:Fault>
    </s:Body>
</s:Envelope>
AtributoTipoDescripción
ProcessBatchV3ResultStringID de la petición realizada.
faultstringStringMensaje de error presentado en el petición.
La respuesta que retorna el servicio es un XML.


En SW® somos mejores para TI, es por ello que tu opinión es muy importantepor favor ayúdanos calificando este artículo y dejando tus comentarios.

How useful was this post?

Click on a star to rate it!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

Updated on agosto 12, 2025

Related Articles