ediverse Explorer la plateforme

À la une PEPPOL BIS Billing 3.0 L’obligation européenne d’e-invoicing arrive : France sept 2026, Belgique janv 2026, Allemagne 2025.

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 :

xmlfactura-pe-ublPE21.xml
<?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.
textsunat-cpe-flow.txt
┌─────────────┐    ┌──────────────────┐    ┌─────────────┐
│ 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

  1. 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.
  2. 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:TaxExemptionReasonCode et le type d'opération fait échouer la signature côté SUNAT.
  3. 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.
  4. 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.
  5. 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