Ejemplos / Factura (01)
Factura en dólares con IGV
Una factura en dólares con líneas gravadas, la moneda que va en todas las cifras.
1. Entrada
El comprobante en JSON, tal como está en fixtures/01-invoice-usd.json.
{
"kind": "invoice",
"ubl_version": "2.1",
"operation_type": "0101",
"document_type": "01",
"series": "F001",
"number": "5",
"issue_date": "2026-10-15T10:30:00-05:00",
"currency": "USD",
"payment_terms": {
"type": "Contado"
},
"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"
}
},
"customer": {
"document_type": "6",
"document_number": "20000000001",
"legal_name": "CLIENTE DEMO S.A.",
"address": {
"ubigeo": "150122",
"country_code": "PE",
"department": "LIMA",
"province": "LIMA",
"district": "MIRAFLORES",
"street": "CALLE CLIENTE 456"
}
},
"totals": {
"taxed": "250.00",
"igv": "45.00",
"total_taxes": "45.00",
"sale_value": "250.00",
"subtotal": "295.00",
"payable": "295.00"
},
"lines": [
{
"unit": "NIU",
"quantity": "1",
"product_code": "SUB001",
"sunat_product_code": "10191509",
"description": "Suscripcion anual de software",
"unit_value": "250.00",
"igv_base": "250.00",
"igv_rate": "18.00",
"igv": "45.00",
"affectation": "10",
"total_taxes": "45.00",
"unit_price": "295.00",
"line_value": "250.00"
}
],
"legends": [
{
"code": "1000",
"value": "SON DOSCIENTOS NOVENTA Y CINCO CON 00/100 DOLARES AMERICANOS"
}
]
}
2. XML sin firmar
Mostrar el XML sin firmar (4,831 caracteres)
<?xml version="1.0" encoding="utf-8"?><Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" 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"><ext:UBLExtensions><ext:UBLExtension><ext:ExtensionContent/></ext:UBLExtension></ext:UBLExtensions><cbc:UBLVersionID>2.1</cbc:UBLVersionID><cbc:CustomizationID>2.0</cbc:CustomizationID><cbc:ID>F001-5</cbc:ID><cbc:IssueDate>2026-10-15</cbc:IssueDate><cbc:IssueTime>10:30:00</cbc:IssueTime><cbc:InvoiceTypeCode listID="0101">01</cbc:InvoiceTypeCode><cbc:Note languageLocaleID="1000"><![CDATA[SON DOSCIENTOS NOVENTA Y CINCO CON 00/100 DOLARES AMERICANOS]]></cbc:Note><cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode><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><cac:Party><cac:PartyIdentification><cbc:ID schemeID="6">20123456789</cbc:ID></cac:PartyIdentification><cac:PartyName><cbc:Name><![CDATA[DEMO ORACULO]]></cbc:Name></cac:PartyName><cac:PartyLegalEntity><cbc:RegistrationName><![CDATA[EMPRESA DEMO ORACULO S.A.C.]]></cbc:RegistrationName><cac:RegistrationAddress><cbc:ID>150101</cbc:ID><cbc:AddressTypeCode>0000</cbc:AddressTypeCode><cbc:CitySubdivisionName>-</cbc:CitySubdivisionName><cbc:CityName>LIMA</cbc:CityName><cbc:CountrySubentity>LIMA</cbc:CountrySubentity><cbc:District>LIMA</cbc:District><cac:AddressLine><cbc:Line><![CDATA[AV. EJEMPLO 123]]></cbc:Line></cac:AddressLine><cac:Country><cbc:IdentificationCode>PE</cbc:IdentificationCode></cac:Country></cac:RegistrationAddress></cac:PartyLegalEntity><cac:Contact><cbc:Telephone>014000000</cbc:Telephone><cbc:ElectronicMail>facturacion@example.com</cbc:ElectronicMail></cac:Contact></cac:Party></cac:AccountingSupplierParty><cac:AccountingCustomerParty><cac:Party><cac:PartyIdentification><cbc:ID schemeID="6">20000000001</cbc:ID></cac:PartyIdentification><cac:PartyLegalEntity><cbc:RegistrationName><![CDATA[CLIENTE DEMO S.A.]]></cbc:RegistrationName><cac:RegistrationAddress><cbc:ID>150122</cbc:ID><cac:AddressLine><cbc:Line><![CDATA[CALLE CLIENTE 456]]></cbc:Line></cac:AddressLine><cac:Country><cbc:IdentificationCode>PE</cbc:IdentificationCode></cac:Country></cac:RegistrationAddress></cac:PartyLegalEntity></cac:Party></cac:AccountingCustomerParty><cac:PaymentTerms><cbc:ID>FormaPago</cbc:ID><cbc:PaymentMeansID>Contado</cbc:PaymentMeansID></cac:PaymentTerms><cac:TaxTotal><cbc:TaxAmount currencyID="USD">45.00</cbc:TaxAmount><cac:TaxSubtotal><cbc:TaxableAmount currencyID="USD">250.00</cbc:TaxableAmount><cbc:TaxAmount currencyID="USD">45.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><cac:LegalMonetaryTotal><cbc:LineExtensionAmount currencyID="USD">250.00</cbc:LineExtensionAmount><cbc:TaxInclusiveAmount currencyID="USD">295.00</cbc:TaxInclusiveAmount><cbc:PayableAmount currencyID="USD">295.00</cbc:PayableAmount></cac:LegalMonetaryTotal><cac:InvoiceLine><cbc:ID>1</cbc:ID><cbc:InvoicedQuantity unitCode="NIU">1</cbc:InvoicedQuantity><cbc:LineExtensionAmount currencyID="USD">250.00</cbc:LineExtensionAmount><cac:PricingReference><cac:AlternativeConditionPrice><cbc:PriceAmount currencyID="USD">295</cbc:PriceAmount><cbc:PriceTypeCode>01</cbc:PriceTypeCode></cac:AlternativeConditionPrice></cac:PricingReference><cac:TaxTotal><cbc:TaxAmount currencyID="USD">45.00</cbc:TaxAmount><cac:TaxSubtotal><cbc:TaxableAmount currencyID="USD">250.00</cbc:TaxableAmount><cbc:TaxAmount currencyID="USD">45.00</cbc:TaxAmount><cac:TaxCategory><cbc:Percent>18</cbc:Percent><cbc:TaxExemptionReasonCode>10</cbc:TaxExemptionReasonCode><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><cac:Item><cbc:Description><![CDATA[Suscripcion anual de software]]></cbc:Description><cac:SellersItemIdentification><cbc:ID>SUB001</cbc:ID></cac:SellersItemIdentification><cac:CommodityClassification><cbc:ItemClassificationCode>10191509</cbc:ItemClassificationCode></cac:CommodityClassification></cac:Item><cac:Price><cbc:PriceAmount currencyID="USD">250</cbc:PriceAmount></cac:Price></cac:InvoiceLine></Invoice>3. Firma
Firmado con el certificado de prueba del repositorio, tests/vectors/test-cert/. No es un certificado de contribuyente.
- DigestValue
YPlRHpk5ZtC9hO1e6zfGATqVJAI=- SignatureValue
FUygIcmCThRyRWNdkLDxlJKJyEimIjqlKQuTJM/7PMklRqGukzVlYOyncR2fP6qPqbXVxq0tON8GBvKz+0wmb9lVJsguuwMJzLBzJjWg6GTTVL/ZSJ/9qICqkx0iUlOSkHbqDB6D0zqz2Az+uoD4nAfj1+1jcjiqM/zhs2wZ+wuZdGTmb8ExGIBAUA/UN3z61/sqBwxg2DqSRRBK34jstg16AhRzNkG+/qtjBuZ4cHlrY5qI/YdN2SK3EKv25lZeI0SvGc2J7cJHKEy5fa6QWl0kQ3rE7AvEib3MmIVygLJzJSKEjGvz+pRENTupm5FB/FZjexZQYdVXGix7aBnZlw==
Mostrar el XML firmado
<?xml version="1.0" encoding="utf-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" 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"><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>YPlRHpk5ZtC9hO1e6zfGATqVJAI=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>FUygIcmCThRyRWNdkLDxlJKJyEimIjqlKQuTJM/7PMklRqGukzVlYOyncR2fP6qPqbXVxq0tON8GBvKz+0wmb9lVJsguuwMJzLBzJjWg6GTTVL/ZSJ/9qICqkx0iUlOSkHbqDB6D0zqz2Az+uoD4nAfj1+1jcjiqM/zhs2wZ+wuZdGTmb8ExGIBAUA/UN3z61/sqBwxg2DqSRRBK34jstg16AhRzNkG+/qtjBuZ4cHlrY5qI/YdN2SK3EKv25lZeI0SvGc2J7cJHKEy5fa6QWl0kQ3rE7AvEib3MmIVygLJzJSKEjGvz+pRENTupm5FB/FZjexZQYdVXGix7aBnZlw==</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.1</cbc:UBLVersionID><cbc:CustomizationID>2.0</cbc:CustomizationID><cbc:ID>F001-5</cbc:ID><cbc:IssueDate>2026-10-15</cbc:IssueDate><cbc:IssueTime>10:30:00</cbc:IssueTime><cbc:InvoiceTypeCode listID="0101">01</cbc:InvoiceTypeCode><cbc:Note languageLocaleID="1000"><![CDATA[SON DOSCIENTOS NOVENTA Y CINCO CON 00/100 DOLARES AMERICANOS]]></cbc:Note><cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode><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><cac:Party><cac:PartyIdentification><cbc:ID schemeID="6">20123456789</cbc:ID></cac:PartyIdentification><cac:PartyName><cbc:Name><![CDATA[DEMO ORACULO]]></cbc:Name></cac:PartyName><cac:PartyLegalEntity><cbc:RegistrationName><![CDATA[EMPRESA DEMO ORACULO S.A.C.]]></cbc:RegistrationName><cac:RegistrationAddress><cbc:ID>150101</cbc:ID><cbc:AddressTypeCode>0000</cbc:AddressTypeCode><cbc:CitySubdivisionName>-</cbc:CitySubdivisionName><cbc:CityName>LIMA</cbc:CityName><cbc:CountrySubentity>LIMA</cbc:CountrySubentity><cbc:District>LIMA</cbc:District><cac:AddressLine><cbc:Line><![CDATA[AV. EJEMPLO 123]]></cbc:Line></cac:AddressLine><cac:Country><cbc:IdentificationCode>PE</cbc:IdentificationCode></cac:Country></cac:RegistrationAddress></cac:PartyLegalEntity><cac:Contact><cbc:Telephone>014000000</cbc:Telephone><cbc:ElectronicMail>facturacion@example.com</cbc:ElectronicMail></cac:Contact></cac:Party></cac:AccountingSupplierParty><cac:AccountingCustomerParty><cac:Party><cac:PartyIdentification><cbc:ID schemeID="6">20000000001</cbc:ID></cac:PartyIdentification><cac:PartyLegalEntity><cbc:RegistrationName><![CDATA[CLIENTE DEMO S.A.]]></cbc:RegistrationName><cac:RegistrationAddress><cbc:ID>150122</cbc:ID><cac:AddressLine><cbc:Line><![CDATA[CALLE CLIENTE 456]]></cbc:Line></cac:AddressLine><cac:Country><cbc:IdentificationCode>PE</cbc:IdentificationCode></cac:Country></cac:RegistrationAddress></cac:PartyLegalEntity></cac:Party></cac:AccountingCustomerParty><cac:PaymentTerms><cbc:ID>FormaPago</cbc:ID><cbc:PaymentMeansID>Contado</cbc:PaymentMeansID></cac:PaymentTerms><cac:TaxTotal><cbc:TaxAmount currencyID="USD">45.00</cbc:TaxAmount><cac:TaxSubtotal><cbc:TaxableAmount currencyID="USD">250.00</cbc:TaxableAmount><cbc:TaxAmount currencyID="USD">45.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><cac:LegalMonetaryTotal><cbc:LineExtensionAmount currencyID="USD">250.00</cbc:LineExtensionAmount><cbc:TaxInclusiveAmount currencyID="USD">295.00</cbc:TaxInclusiveAmount><cbc:PayableAmount currencyID="USD">295.00</cbc:PayableAmount></cac:LegalMonetaryTotal><cac:InvoiceLine><cbc:ID>1</cbc:ID><cbc:InvoicedQuantity unitCode="NIU">1</cbc:InvoicedQuantity><cbc:LineExtensionAmount currencyID="USD">250.00</cbc:LineExtensionAmount><cac:PricingReference><cac:AlternativeConditionPrice><cbc:PriceAmount currencyID="USD">295</cbc:PriceAmount><cbc:PriceTypeCode>01</cbc:PriceTypeCode></cac:AlternativeConditionPrice></cac:PricingReference><cac:TaxTotal><cbc:TaxAmount currencyID="USD">45.00</cbc:TaxAmount><cac:TaxSubtotal><cbc:TaxableAmount currencyID="USD">250.00</cbc:TaxableAmount><cbc:TaxAmount currencyID="USD">45.00</cbc:TaxAmount><cac:TaxCategory><cbc:Percent>18</cbc:Percent><cbc:TaxExemptionReasonCode>10</cbc:TaxExemptionReasonCode><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><cac:Item><cbc:Description><![CDATA[Suscripcion anual de software]]></cbc:Description><cac:SellersItemIdentification><cbc:ID>SUB001</cbc:ID></cac:SellersItemIdentification><cac:CommodityClassification><cbc:ItemClassificationCode>10191509</cbc:ItemClassificationCode></cac:CommodityClassification></cac:Item><cac:Price><cbc:PriceAmount currencyID="USD">250</cbc:PriceAmount></cac:Price></cac:InvoiceLine></Invoice>
Reproducirlo con el binario
sunat-sdk build < fixtures/01-invoice-usd.json
# {"file_name": "...", "xml": "<XML sin firmar>"}
sunat-sdk sign --cert tests/vectors/test-cert/test-cert.pem --key tests/vectors/test-cert/test-key.pem < firma.json
# firma.json: {"xml": "<XML sin firmar de la salida anterior>"}Los pasos completos, con los entornos y las credenciales, están en la guía de inicio.