Ejemplos / Resumen diario (RC) / Caso 17 de 21
Resumen diario que anula una boleta
Anula la boleta B001-2 del resumen de dos boletas: la misma línea, con los mismos importes, y estado 3 en lugar de 1.
Firma este JSON con el certificado de prueba y tu DigestValue tiene que ser K1ZRusF6NsOrJPZsjMDz3MEfo4A=. El sello es ese valor, dibujado.
Los tres archivos, en el repositorio: el JSON de entrada, el XML sin firmar y el XML firmado.
A diferencia de la factura, no vuelve con la CDR: sunat-sdk summary devuelve un ticket, y con sunat-sdk ticket preguntas hasta que la traiga; con 98 se pregunta otra vez, no se reenvía. Desde PHP, con summary() y ticket() (Paso a producción).
Entrada en JSON
Marcadas, las líneas que cambian respecto del caso más parecido, Resumen diario de dos boletas; lo igual queda plegado.
{ "kind": "summary", "number": "3",MostrarOcultar las líneas 4 a 23
"generation_date": "2026-10-15", "reference_date": "2026-10-14", "currency": "PEN", "issuer": { "ruc": "20123456789", "legal_name": "EMPRESA DEMO ORACULO S.A.C.", "trade_name": "DEMO ORACULO", "email": "facturacion@example.com", "telephone": "014000000", "address": { "ubigeo": "150101", "country_code": "PE", "department": "LIMA", "province": "LIMA", "district": "LIMA", "urbanization": "-", "street": "AV. EJEMPLO 123", "establishment_code": "0000" } }, "lines": [ { "document_type": "03", "document_number": "B001-2", "status": "3", "customer_document_type": "1", "customer_document_number": "87654321", "total": "59.00", "taxed": "50.00", "igv": "9.00" } ]}XML sin firmar
Marcadas, las líneas que cambian respecto de Resumen diario de dos boletas.
<?xml version="1.0" encoding="utf-8"?><SummaryDocuments xmlns="urn:sunat:names:specification:ubl:peru:schema:xsd:SummaryDocuments-1" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:sac="urn:sunat:names:specification:ubl:peru:schema:xsd:SunatAggregateComponents-1"> <ext:UBLExtensions> <ext:UBLExtension> <ext:ExtensionContent/> </ext:UBLExtension> </ext:UBLExtensions> <cbc:UBLVersionID>2.0</cbc:UBLVersionID> <cbc:CustomizationID>1.1</cbc:CustomizationID> <cbc:ID>RC-20261015-3</cbc:ID>MostrarOcultar las líneas 11 a 37
<cbc:ReferenceDate>2026-10-14</cbc:ReferenceDate> <cbc:IssueDate>2026-10-15</cbc:IssueDate> <cac:Signature> <cbc:ID>IDSignKG</cbc:ID> <cac:SignatoryParty> <cac:PartyIdentification> <cbc:ID>20123456789</cbc:ID> </cac:PartyIdentification> <cac:PartyName> <cbc:Name><![CDATA[EMPRESA DEMO ORACULO S.A.C.]]></cbc:Name> </cac:PartyName> </cac:SignatoryParty> <cac:DigitalSignatureAttachment> <cac:ExternalReference> <cbc:URI>#signatureKG</cbc:URI> </cac:ExternalReference> </cac:DigitalSignatureAttachment> </cac:Signature> <cac:AccountingSupplierParty> <cbc:CustomerAssignedAccountID>20123456789</cbc:CustomerAssignedAccountID> <cbc:AdditionalAccountID>6</cbc:AdditionalAccountID> <cac:Party> <cac:PartyLegalEntity> <cbc:RegistrationName><![CDATA[EMPRESA DEMO ORACULO S.A.C.]]></cbc:RegistrationName> </cac:PartyLegalEntity> </cac:Party> </cac:AccountingSupplierParty> <sac:SummaryDocumentsLine> <cbc:LineID>1</cbc:LineID> <cbc:DocumentTypeCode>03</cbc:DocumentTypeCode> <cbc:ID>B001-2</cbc:ID> <cac:AccountingCustomerParty> <cbc:CustomerAssignedAccountID>87654321</cbc:CustomerAssignedAccountID> <cbc:AdditionalAccountID>1</cbc:AdditionalAccountID> </cac:AccountingCustomerParty> <cac:Status> <cbc:ConditionCode>3</cbc:ConditionCode> </cac:Status> <sac:TotalAmount currencyID="PEN">59.00</sac:TotalAmount> <sac:BillingPayment> <cbc:PaidAmount currencyID="PEN">50.00</cbc:PaidAmount> <cbc:InstructionID>01</cbc:InstructionID> </sac:BillingPayment> <cac:TaxTotal> <cbc:TaxAmount currencyID="PEN">9.00</cbc:TaxAmount> <cac:TaxSubtotal> <cbc:TaxAmount currencyID="PEN">9.00</cbc:TaxAmount> <cac:TaxCategory> <cac:TaxScheme> <cbc:ID>1000</cbc:ID> <cbc:Name>IGV</cbc:Name> <cbc:TaxTypeCode>VAT</cbc:TaxTypeCode> </cac:TaxScheme> </cac:TaxCategory> </cac:TaxSubtotal> </cac:TaxTotal> </sac:SummaryDocumentsLine></SummaryDocuments>Formateado para leerlo. «Copiar» copia el archivo tal como está en el repositorio, en una línea.
<?xml version="1.0" encoding="utf-8"?><SummaryDocuments xmlns="urn:sunat:names:specification:ubl:peru:schema:xsd:SummaryDocuments-1" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:sac="urn:sunat:names:specification:ubl:peru:schema:xsd:SunatAggregateComponents-1"><ext:UBLExtensions><ext:UBLExtension><ext:ExtensionContent/></ext:UBLExtension></ext:UBLExtensions><cbc:UBLVersionID>2.0</cbc:UBLVersionID><cbc:CustomizationID>1.1</cbc:CustomizationID><cbc:ID>RC-20261015-3</cbc:ID><cbc:ReferenceDate>2026-10-14</cbc:ReferenceDate><cbc:IssueDate>2026-10-15</cbc:IssueDate><cac:Signature><cbc:ID>IDSignKG</cbc:ID><cac:SignatoryParty><cac:PartyIdentification><cbc:ID>20123456789</cbc:ID></cac:PartyIdentification><cac:PartyName><cbc:Name><![CDATA[EMPRESA DEMO ORACULO S.A.C.]]></cbc:Name></cac:PartyName></cac:SignatoryParty><cac:DigitalSignatureAttachment><cac:ExternalReference><cbc:URI>#signatureKG</cbc:URI></cac:ExternalReference></cac:DigitalSignatureAttachment></cac:Signature><cac:AccountingSupplierParty><cbc:CustomerAssignedAccountID>20123456789</cbc:CustomerAssignedAccountID><cbc:AdditionalAccountID>6</cbc:AdditionalAccountID><cac:Party><cac:PartyLegalEntity><cbc:RegistrationName><![CDATA[EMPRESA DEMO ORACULO S.A.C.]]></cbc:RegistrationName></cac:PartyLegalEntity></cac:Party></cac:AccountingSupplierParty><sac:SummaryDocumentsLine><cbc:LineID>1</cbc:LineID><cbc:DocumentTypeCode>03</cbc:DocumentTypeCode><cbc:ID>B001-2</cbc:ID><cac:AccountingCustomerParty><cbc:CustomerAssignedAccountID>87654321</cbc:CustomerAssignedAccountID><cbc:AdditionalAccountID>1</cbc:AdditionalAccountID></cac:AccountingCustomerParty><cac:Status><cbc:ConditionCode>3</cbc:ConditionCode></cac:Status><sac:TotalAmount currencyID="PEN">59.00</sac:TotalAmount><sac:BillingPayment><cbc:PaidAmount currencyID="PEN">50.00</cbc:PaidAmount><cbc:InstructionID>01</cbc:InstructionID></sac:BillingPayment><cac:TaxTotal><cbc:TaxAmount currencyID="PEN">9.00</cbc:TaxAmount><cac:TaxSubtotal><cbc:TaxAmount currencyID="PEN">9.00</cbc:TaxAmount><cac:TaxCategory><cac:TaxScheme><cbc:ID>1000</cbc:ID><cbc:Name>IGV</cbc:Name><cbc:TaxTypeCode>VAT</cbc:TaxTypeCode></cac:TaxScheme></cac:TaxCategory></cac:TaxSubtotal></cac:TaxTotal></sac:SummaryDocumentsLine></SummaryDocuments>Firma
Firmado con el certificado de prueba del SDK, el que baja la guía de inicio.
K1ZRusF6NsOrJPZsjMDz3MEfo4A=
Si tu DigestValue es este, tu XML es el mismo que el del SDK. Con el certificado de prueba el SignatureValue también coincide; con el tuyo cambia, porque depende de tu clave.
- DigestValue
K1ZRusF6NsOrJPZsjMDz3MEfo4A=- SignatureValue
1DMtqqf07UoqlApGJHVbj4Myrc7JyHobudNKX/qFrWduqyftDgq7JrnrCKSGHUa5DEGG7EskmO5Ku2nTWvdivZ43BU9rmNPm7mAQT2wYOpnVAhw8R0UqvajXqX9ejgNB6mc0Gz2a/4wxs4k9M/WNbzbmsuf4vUCqqobZ0qr0sU55H9zUkQrdpsklmC+P8SseA0ROOekDp6UKoUgu1VTUQLEmQDOojI7ZvydaxepdcyWOCZo4L6qUo4PlCeX2yUFC893MUV/k7HJheP6PcS2uHGCTAY9ZahmOiyXzCGKLm/VWy7/bUtKuj82ly2bPad8MhGY4Pds9LI52LJH9ZF6UWg==
XML firmado
<?xml version="1.0" encoding="utf-8"?><SummaryDocuments xmlns="urn:sunat:names:specification:ubl:peru:schema:xsd:SummaryDocuments-1" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:sac="urn:sunat:names:specification:ubl:peru:schema:xsd:SunatAggregateComponents-1"> <ext:UBLExtensions> <ext:UBLExtension> <ext:ExtensionContent> <ds:Signature Id="signatureKG"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> <ds:Reference URI=""> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <ds:DigestValue>K1ZRusF6NsOrJPZsjMDz3MEfo4A=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue>1DMtqqf07UoqlApGJHVbj4Myrc7JyHobudNKX/qFrWduqyftDgq7JrnrCKSGHUa5DEGG7EskmO5Ku2nTWvdivZ43BU9rmNPm7mAQT2wYOpnVAhw8R0UqvajXqX9ejgNB6mc0Gz2a/4wxs4k9M/WNbzbmsuf4vUCqqobZ0qr0sU55H9zUkQrdpsklmC+P8SseA0ROOekDp6UKoUgu1VTUQLEmQDOojI7ZvydaxepdcyWOCZo4L6qUo4PlCeX2yUFC893MUV/k7HJheP6PcS2uHGCTAY9ZahmOiyXzCGKLm/VWy7/bUtKuj82ly2bPad8MhGY4Pds9LI52LJH9ZF6UWg==</ds:SignatureValue> <ds:KeyInfo> <ds:X509Data> <ds:X509Certificate>MIID8zCCAtugAwIBAgIUY968iRS4gHDjt9RwTaDaujmFLO0wDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlBFMS8wLQYDVQQKDCZURVNUIE9OTFkgLSBOT1QgVkFMSUQgRk9SIEFOWSBUQVhQQVlFUjESMBAGA1UECwwJVEVTVCBPTkxZMRQwEgYDVQQFEwsyMDAwMDAwMDAwMTEeMBwGA1UEAwwVVEVTVCBPTkxZIDIwMDAwMDAwMDAxMB4XDTI2MTAxNTIxMjc0NVoXDTM2MTAxMjIxMjc0NVowgYgxCzAJBgNVBAYTAlBFMS8wLQYDVQQKDCZURVNUIE9OTFkgLSBOT1QgVkFMSUQgRk9SIEFOWSBUQVhQQVlFUjESMBAGA1UECwwJVEVTVCBPTkxZMRQwEgYDVQQFEwsyMDAwMDAwMDAwMTEeMBwGA1UEAwwVVEVTVCBPTkxZIDIwMDAwMDAwMDAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6GZTtpFyih4C6ETakE6Q4+SFBFWJ/TQi2pbxJRD7GkQ1tKeB+ENcBk8EjnOocxdYWvSBpOd9UYkpc2C+jlbVWd04ey8psznwCHzJJ1+qgQqVI8PpH5A4eEw5LGXupHmnJSYpGXFGIJ6+tlJRqvZbq7RTh7Rpxs4DkCjUhUke/BKIZahYDzSGFLlsWx01Dq8Xeb6xF2sLlZXy/b0MvRZAe7I/xplIftS/rrDQ/rE5DfS0Dibayc/uNIRw1+NiKpT0wwY/VCzRQrM27dG7sTyhNAy6C3vtRmO5Bl9+0wrXldZcR4VSm1yrg65KRWv6DNcG2MkxRYBphaM+sJfkNECs6wIDAQABo1MwUTAdBgNVHQ4EFgQUE359gu7BEXWLRhx+VNBeec2Pp/kwHwYDVR0jBBgwFoAUE359gu7BEXWLRhx+VNBeec2Pp/kwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAzjWgukifoL9gZckM2jWW7a+N6+5W/0EkGJVFV9RbCceNpDpdMyVD4QyVm1nOJ/bQzOLdDnjyD3J34/1pEwo/hS/HehPy50twvf/uKEwPU4TNQTyjChnM3k+IX7cOusuPIBsC6trufeHOSky5lWiKWusMHo8VsPvVinE0n/RqTo47enHPFa6huF3egiQEJ6H+lxerXvWT8IkaGFA2YKjAGGsenlCSw9rRGX4tzQtUkJx0oFaEZGNpq+OYr334J3cZp9LskUFnrvRoAz3Fk8HdbVlfQTovFunFY9VzxbKjBfyWa6hymTxcvBR9x4ZfUKM9P3REeBKaTWdqe2oz4d6LLA==</ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </ds:Signature> </ext:ExtensionContent> </ext:UBLExtension> </ext:UBLExtensions> <cbc:UBLVersionID>2.0</cbc:UBLVersionID> <cbc:CustomizationID>1.1</cbc:CustomizationID> <cbc:ID>RC-20261015-3</cbc:ID> <cbc:ReferenceDate>2026-10-14</cbc:ReferenceDate> <cbc:IssueDate>2026-10-15</cbc:IssueDate> <cac:Signature> <cbc:ID>IDSignKG</cbc:ID> <cac:SignatoryParty> <cac:PartyIdentification> <cbc:ID>20123456789</cbc:ID> </cac:PartyIdentification> <cac:PartyName> <cbc:Name><![CDATA[EMPRESA DEMO ORACULO S.A.C.]]></cbc:Name>Mostrar las 48 líneas restantes (88 en total)
</cac:PartyName> </cac:SignatoryParty> <cac:DigitalSignatureAttachment> <cac:ExternalReference> <cbc:URI>#signatureKG</cbc:URI> </cac:ExternalReference> </cac:DigitalSignatureAttachment> </cac:Signature> <cac:AccountingSupplierParty> <cbc:CustomerAssignedAccountID>20123456789</cbc:CustomerAssignedAccountID> <cbc:AdditionalAccountID>6</cbc:AdditionalAccountID> <cac:Party> <cac:PartyLegalEntity> <cbc:RegistrationName><![CDATA[EMPRESA DEMO ORACULO S.A.C.]]></cbc:RegistrationName> </cac:PartyLegalEntity> </cac:Party> </cac:AccountingSupplierParty> <sac:SummaryDocumentsLine> <cbc:LineID>1</cbc:LineID> <cbc:DocumentTypeCode>03</cbc:DocumentTypeCode> <cbc:ID>B001-2</cbc:ID> <cac:AccountingCustomerParty> <cbc:CustomerAssignedAccountID>87654321</cbc:CustomerAssignedAccountID> <cbc:AdditionalAccountID>1</cbc:AdditionalAccountID> </cac:AccountingCustomerParty> <cac:Status> <cbc:ConditionCode>3</cbc:ConditionCode> </cac:Status> <sac:TotalAmount currencyID="PEN">59.00</sac:TotalAmount> <sac:BillingPayment> <cbc:PaidAmount currencyID="PEN">50.00</cbc:PaidAmount> <cbc:InstructionID>01</cbc:InstructionID> </sac:BillingPayment> <cac:TaxTotal> <cbc:TaxAmount currencyID="PEN">9.00</cbc:TaxAmount> <cac:TaxSubtotal> <cbc:TaxAmount currencyID="PEN">9.00</cbc:TaxAmount> <cac:TaxCategory> <cac:TaxScheme> <cbc:ID>1000</cbc:ID> <cbc:Name>IGV</cbc:Name> <cbc:TaxTypeCode>VAT</cbc:TaxTypeCode> </cac:TaxScheme> </cac:TaxCategory> </cac:TaxSubtotal> </cac:TaxTotal> </sac:SummaryDocumentsLine></SummaryDocuments>Formateado para leerlo. «Copiar» copia el archivo tal como está en el repositorio.
<?xml version="1.0" encoding="utf-8"?> <SummaryDocuments xmlns="urn:sunat:names:specification:ubl:peru:schema:xsd:SummaryDocuments-1" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:sac="urn:sunat:names:specification:ubl:peru:schema:xsd:SunatAggregateComponents-1"><ext:UBLExtensions><ext:UBLExtension><ext:ExtensionContent><ds:Signature Id="signatureKG"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><ds:Reference URI=""><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><ds:DigestValue>K1ZRusF6NsOrJPZsjMDz3MEfo4A=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>1DMtqqf07UoqlApGJHVbj4Myrc7JyHobudNKX/qFrWduqyftDgq7JrnrCKSGHUa5DEGG7EskmO5Ku2nTWvdivZ43BU9rmNPm7mAQT2wYOpnVAhw8R0UqvajXqX9ejgNB6mc0Gz2a/4wxs4k9M/WNbzbmsuf4vUCqqobZ0qr0sU55H9zUkQrdpsklmC+P8SseA0ROOekDp6UKoUgu1VTUQLEmQDOojI7ZvydaxepdcyWOCZo4L6qUo4PlCeX2yUFC893MUV/k7HJheP6PcS2uHGCTAY9ZahmOiyXzCGKLm/VWy7/bUtKuj82ly2bPad8MhGY4Pds9LI52LJH9ZF6UWg==</ds:SignatureValue><ds:KeyInfo><ds:X509Data><ds:X509Certificate>MIID8zCCAtugAwIBAgIUY968iRS4gHDjt9RwTaDaujmFLO0wDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlBFMS8wLQYDVQQKDCZURVNUIE9OTFkgLSBOT1QgVkFMSUQgRk9SIEFOWSBUQVhQQVlFUjESMBAGA1UECwwJVEVTVCBPTkxZMRQwEgYDVQQFEwsyMDAwMDAwMDAwMTEeMBwGA1UEAwwVVEVTVCBPTkxZIDIwMDAwMDAwMDAxMB4XDTI2MTAxNTIxMjc0NVoXDTM2MTAxMjIxMjc0NVowgYgxCzAJBgNVBAYTAlBFMS8wLQYDVQQKDCZURVNUIE9OTFkgLSBOT1QgVkFMSUQgRk9SIEFOWSBUQVhQQVlFUjESMBAGA1UECwwJVEVTVCBPTkxZMRQwEgYDVQQFEwsyMDAwMDAwMDAwMTEeMBwGA1UEAwwVVEVTVCBPTkxZIDIwMDAwMDAwMDAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6GZTtpFyih4C6ETakE6Q4+SFBFWJ/TQi2pbxJRD7GkQ1tKeB+ENcBk8EjnOocxdYWvSBpOd9UYkpc2C+jlbVWd04ey8psznwCHzJJ1+qgQqVI8PpH5A4eEw5LGXupHmnJSYpGXFGIJ6+tlJRqvZbq7RTh7Rpxs4DkCjUhUke/BKIZahYDzSGFLlsWx01Dq8Xeb6xF2sLlZXy/b0MvRZAe7I/xplIftS/rrDQ/rE5DfS0Dibayc/uNIRw1+NiKpT0wwY/VCzRQrM27dG7sTyhNAy6C3vtRmO5Bl9+0wrXldZcR4VSm1yrg65KRWv6DNcG2MkxRYBphaM+sJfkNECs6wIDAQABo1MwUTAdBgNVHQ4EFgQUE359gu7BEXWLRhx+VNBeec2Pp/kwHwYDVR0jBBgwFoAUE359gu7BEXWLRhx+VNBeec2Pp/kwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAzjWgukifoL9gZckM2jWW7a+N6+5W/0EkGJVFV9RbCceNpDpdMyVD4QyVm1nOJ/bQzOLdDnjyD3J34/1pEwo/hS/HehPy50twvf/uKEwPU4TNQTyjChnM3k+IX7cOusuPIBsC6trufeHOSky5lWiKWusMHo8VsPvVinE0n/RqTo47enHPFa6huF3egiQEJ6H+lxerXvWT8IkaGFA2YKjAGGsenlCSw9rRGX4tzQtUkJx0oFaEZGNpq+OYr334J3cZp9LskUFnrvRoAz3Fk8HdbVlfQTovFunFY9VzxbKjBfyWa6hymTxcvBR9x4ZfUKM9P3REeBKaTWdqe2oz4d6LLA==</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature></ext:ExtensionContent></ext:UBLExtension></ext:UBLExtensions><cbc:UBLVersionID>2.0</cbc:UBLVersionID><cbc:CustomizationID>1.1</cbc:CustomizationID><cbc:ID>RC-20261015-3</cbc:ID><cbc:ReferenceDate>2026-10-14</cbc:ReferenceDate><cbc:IssueDate>2026-10-15</cbc:IssueDate><cac:Signature><cbc:ID>IDSignKG</cbc:ID><cac:SignatoryParty><cac:PartyIdentification><cbc:ID>20123456789</cbc:ID></cac:PartyIdentification><cac:PartyName><cbc:Name><![CDATA[EMPRESA DEMO ORACULO S.A.C.]]></cbc:Name></cac:PartyName></cac:SignatoryParty><cac:DigitalSignatureAttachment><cac:ExternalReference><cbc:URI>#signatureKG</cbc:URI></cac:ExternalReference></cac:DigitalSignatureAttachment></cac:Signature><cac:AccountingSupplierParty><cbc:CustomerAssignedAccountID>20123456789</cbc:CustomerAssignedAccountID><cbc:AdditionalAccountID>6</cbc:AdditionalAccountID><cac:Party><cac:PartyLegalEntity><cbc:RegistrationName><![CDATA[EMPRESA DEMO ORACULO S.A.C.]]></cbc:RegistrationName></cac:PartyLegalEntity></cac:Party></cac:AccountingSupplierParty><sac:SummaryDocumentsLine><cbc:LineID>1</cbc:LineID><cbc:DocumentTypeCode>03</cbc:DocumentTypeCode><cbc:ID>B001-2</cbc:ID><cac:AccountingCustomerParty><cbc:CustomerAssignedAccountID>87654321</cbc:CustomerAssignedAccountID><cbc:AdditionalAccountID>1</cbc:AdditionalAccountID></cac:AccountingCustomerParty><cac:Status><cbc:ConditionCode>3</cbc:ConditionCode></cac:Status><sac:TotalAmount currencyID="PEN">59.00</sac:TotalAmount><sac:BillingPayment><cbc:PaidAmount currencyID="PEN">50.00</cbc:PaidAmount><cbc:InstructionID>01</cbc:InstructionID></sac:BillingPayment><cac:TaxTotal><cbc:TaxAmount currencyID="PEN">9.00</cbc:TaxAmount><cac:TaxSubtotal><cbc:TaxAmount currencyID="PEN">9.00</cbc:TaxAmount><cac:TaxCategory><cac:TaxScheme><cbc:ID>1000</cbc:ID><cbc:Name>IGV</cbc:Name><cbc:TaxTypeCode>VAT</cbc:TaxTypeCode></cac:TaxScheme></cac:TaxCategory></cac:TaxSubtotal></cac:TaxTotal></sac:SummaryDocumentsLine></SummaryDocuments>Reproducirlo
Con el SDK instalado como dice la guía de inicio, baja el caso y el certificado de prueba:
curl -fsSL --remote-name-all \ https://fe.kembec.com/sdk/v0.1.0-beta.5/rc-receipt-void.json \ https://fe.kembec.com/sdk/v0.1.0-beta.5/test-cert.pem \ https://fe.kembec.com/sdk/v0.1.0-beta.5/test-key.pemFírmalo como en la guía: tu DigestValue tiene que ser el de arriba.
PHP
En firmar.php, la línea del JSON queda así:
$factura = file_get_contents(__DIR__ . '/rc-receipt-void.json');php firmar.phpJavaScript
En firmar.mjs, la línea del JSON queda así:
const built = JSON.parse(sdk.build(leer('rc-receipt-void.json')));node firmar.mjsPython
En firmar.py, la línea del JSON queda así:
built = sunat_sdk.build(leer('rc-receipt-void.json'))python firmar.pyCLI
sunat-sdk build < rc-receipt-void.json \ | sunat-sdk sign --cert test-cert.pem --key test-key.pem > firmada.jsongrep -o '"digest_value":"[^"]*"' firmada.jsongrep -q '"digest_value":"K1ZRusF6NsOrJPZsjMDz3MEfo4A="' firmada.json && echo "digest ok"