Pérou — SUNAT, Comprobante de Pago Electrónico
Le Pérou a déployé son mandat universel de Comprobante de Pago Electrónico (CPE) par la SUNAT en 2018. Le format est UBL-PE 2.1, un profil péruvien d'UBL 2.1 enrichi de catalogues officiels SUNAT, avec signature XML obligatoire et hash de validation côté SUNAT (CDR).
Timeline réglementaire
- 13 août 2010 — RS 188-2010/SUNAT. Premier cadre du CPE en mode volontaire avec le SEE-SOL.
- 13 novembre 2014 — RS 300-2014/SUNAT. Cadre des Operadores de Servicios Electrónicos (OSE) pour les PSE privés.
- 1er juillet 2015 — Mandat principales contribuables. Obligation pour les Principales Contribuyentes Nacionales (PRICOS).
- 26 novembre 2015 — RS 339-2015/SUNAT. Création du registre OSE et obligations techniques.
- 1er janvier 2018 — Mise en service universelle. Obligation CPE étendue à toutes les entreprises ayant un CA annuel > 150 UIT (≈ 600 000 PEN).
- 10 mai 2019 — RS 097-2019/SUNAT. Catalogue de codes SUNAT consolidé (Cat01–Cat51), source de référence pour types de document, moyens de paiement, unités, devises, etc.
- 2022 — Abaissement progressif du seuil. Le seuil descend à 75 UIT, puis 23 UIT (≈ 121 000 PEN) en 2024 pour les micro-entreprises.
- 2025-2026 — Boleta de venta électronique obligatoire B2C. Extension progressive aux Boletas (B2C consommateurs finaux) avec reporting temps réel pour les commerces.
Schéma technique
Le format est UBL-PE 2.1, profil péruvien d'OASIS UBL 2.1 avec extensions SUNAT (UBL Extensions pour la signature XMLDSig). Particularités :
- Encoding ISO-8859-1 — l'XML doit être déclaré avec l'encodage Latin-1, pas UTF-8 (sinon rejet code 2335).
-
CustomizationID
2.0— version courante du profil péruvien. - ProfileID selon le scénario (Catalogo 51) : 0101 (vente domestique), 0200 (export), 0301 (interne lié à services), etc.
- Schemas catalogues SUNAT : Catalogo 01 (type de document), Catalogo 06 (type d'identité — 6 pour RUC, 1 pour DNI), Catalogo 07 (codes IGV — 1000 standard 18 %, 9995 exonération), etc.
-
ds:Signature : bloc XMLDSig obligatoire dans
UBLExtensions/UBLExtension/ExtensionContent, avec certificat X.509 délivré par AC reconnue.
Exemple minimal d'une factura electrónica 01 :
<?xml version="1.0" encoding="ISO-8859-1"?>
<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:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<cbc:UBLVersionID>2.1</cbc:UBLVersionID>
<cbc:CustomizationID>2.0</cbc:CustomizationID>
<cbc:ProfileID schemeAgencyName="PE:SUNAT"
schemeURI="urn:pe:gob:sunat:cpe:see:gem:catalogos:catalogo51">0101</cbc:ProfileID>
<cbc:ID>F001-00000142</cbc:ID>
<cbc:IssueDate>2026-05-16</cbc:IssueDate>
<cbc:IssueTime>10:30:00</cbc:IssueTime>
<cbc:InvoiceTypeCode listAgencyName="PE:SUNAT"
listName="Tipo de Documento"
listURI="urn:pe:gob:sunat:cpe:see:gem:catalogos:catalogo01">01</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>PEN</cbc:DocumentCurrencyCode>
<cac:AccountingSupplierParty>
<cac:Party>
<cac:PartyIdentification>
<cbc:ID schemeID="6">20100070970</cbc:ID>
</cac:PartyIdentification>
<cac:PartyLegalEntity>
<cbc:RegistrationName>EDIVERSE DEMO PERU S.A.C.</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty>
<cac:Party>
<cac:PartyIdentification>
<cbc:ID schemeID="6">20505425042</cbc:ID>
</cac:PartyIdentification>
<cac:PartyLegalEntity>
<cbc:RegistrationName>CLIENTE DEMO S.A.C.</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingCustomerParty>
</Invoice>Flux de soumission
Le vendeur signe le UBL-PE puis l'envoie compressé (.zip)
via :
- SEE-SOL : portail SUNAT direct (web ou API), gratuit pour faibles volumes.
- SEE-OSE : Operador de Servicios Electrónicos privé certifié par SUNAT. L'OSE valide, transmet à SUNAT et retourne le CDR.
- SEE-Empresa : intégration directe (très grandes entreprises) avec les serveurs SUNAT.
┌─────────────┐ ┌──────────────────┐ ┌─────────────┐
│ Vendedor PE │───>│ SEE-SOL portal │───>│ Acheteur PE │
│ (UBL-PE) │ │ (SUNAT) ou OSE │ │ (download) │
│ + ds:Sign. │ │ certifié │ │ │
└─────────────┘ └────────┬─────────┘ └─────────────┘
│
▼
┌──────────────────┐
│ CDR (Constancia │ ← XML signé SUNAT
│ de Recepción) │ acceptation/rejet
└──────────────────┘SUNAT (ou l'OSE) retourne synchroniquement la CDR (Constancia de Recepción), un XML signé qui acte : acceptation (code 0), rejet avec motif (code > 0), ou observations non bloquantes. Une CDR rejetée invalide la facture : il faut corriger et re-soumettre, et si elle a déjà été remise à l'acheteur, émettre une Nota de Crédito.
Validation
- Portail SUNAT CPE : sunat.gob.pe/cpe — programme et catalogues officiels.
- Consulta CPE en ligne : e-consulta.sunat.gob.pe — vérification publique de validité.
- Registre OSE — liste officielle des Operadores de Servicios Electrónicos certifiés (Sovos, Nubefact, Efact…).
- INDECOPI : indecopi.gob.pe — autorité accréditant les AC pour signatures XML.
Pièges courants
- Encoding ISO-8859-1 obligatoire. La SUNAT rejette les UBL-PE encodés en UTF-8 (code 2335) — c'est l'un des rares mandats encore en Latin-1 en 2026. Les caractères ñ, á, í, etc. doivent être encodés correctement, sans BOM.
-
Catálogo SUNAT et codes IGV. Chaque ligne avec IGV doit
référencer un code dans le Catalogue 07 (1000 = gravado standard 18 %,
9995 = exonerado, etc.). Un mismatch entre
cbc:TaxExemptionReasonCodeet le type d'opération fait échouer la signature côté SUNAT. - CDR avec observations vs CDR avec rejet. La CDR peut contenir des observations non bloquantes (codes 4xxx) — la facture est valide mais SUNAT signale un point à corriger. Les rejets (codes 2xxx, 3xxx) invalident la facture. Beaucoup d'intégrations confondent les deux et bricolent des re-soumissions inutiles.
- Boleta de venta vs Factura. La Factura (01) est pour transactions B2B avec RUC acheteur ; la Boleta (03) pour Consumidor Final (DNI ou anonyme). Émettre une Factura pour un consommateur final ou une Boleta entre entreprises sont des erreurs structurelles fréquentes.
- OSE vs SEE-SOL — choix architectural. Le SEE-SOL est gratuit mais limité en volume et latency. Au-delà de quelques centaines de CPE/jour, l'OSE est requis. Une PME qui passe le cap doit migrer son flux — anticiper la bascule en sortie de seuil.
Liens transverses
- UBL — standard OASIS de base.
- Argentine — comparaison Cono Sur.
- Chili — comparaison DTE / Pacifique sud.
- Colombie — autre profil UBL andin (DIAN).
- Sources officielles : sunat.gob.pe/cpe, e-consulta.sunat.gob.pe.