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.
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:
http://pruebascfdi.smartweb.com.mx:8080
📄
🚀 Productivo:
http://batchstamp.smartweb.com.mx:8080
📄
📁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étodo | Ruta |
---|---|
POST | /BatchService.svc?wsdl |
🔐 Autenticación y Headers
Header | Value |
---|---|
Content-Type | text/xml;charset=”utf-8″ |
SOAPAction | http://tempuri.org/IBatchService/ProcessBatchV3 |
📍 Parámetros
Propiedad | Uso | Descripción |
---|---|---|
token | Requerido | Bearer Token |
originalFileName | Requerido | Nombre del archivo zip que contiene los XML |
generatePdf | Opcional | Indica si el proceso se realizará generando PDF o no (true o false) |
pdfTemplateId | Opcional | Indica la plantilla genérica con la que requiere generar los PDF. Si tienes plantilla a la medida contáctate con soporte técnico. |
content | Requerido | Archivo 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
 at SyncInvokeProcessBatchV3(Object , Object[] , Object[] )
 at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
 at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
 at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
 at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
 at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)</StackTrace> <Type>System.Web.Services.Protocols.SoapException</Type> </ExceptionDetail> </detail> </s:Fault> </s:Body> </s:Envelope>
Atributo | Tipo | Descripción |
---|---|---|
ProcessBatchV3Result | String | ID de la petición realizada. |
faultstring | String | Mensaje de error presentado en el petición. |
En SW® somos mejores para TI, es por ello que tu opinión es muy importante, por favor ayúdanos calificando este artículo y dejando tus comentarios.