Diese Version ist veraltet geworden; Verwenden Sie das Modul Efacturacolombia_V2.v2, um die Unterzeichnung der vorherigen Validierungsversion zu implementieren .
Efakturacolombia. Es handelt sich um eine inoffizielle Buchhandlung, die in C#entwickelt wurde und die Signal XML -Dokumente (Rechnungen und Lastschriftnotizen) ermöglicht, die dem Dian of Columbia für den elektronischen Abrechnungsprozess vorgelegt werden.
Seit dem 1. Januar 2019 wird die elektronische Abrechnung für Steuerzahler in Kolumbien obligatorisch sein, und derzeit haben viele Unternehmen und obligatorische Personen dies nicht umgesetzt.
Obwohl die vom Dian bereitgestellten technischen Informationen ausreichen sollten, ist das Finden von .NET -Ressourcen für diesen Prozess als ziemlich schwierig. Die Erzeugung von XML -Dokumenten und Webdiensten kann mühsam sein, kann jedoch ohne Unannehmlichkeiten erfolgen. Das vom Dian verlangte Unternehmen kann jedoch extrem schwierig sein, um teure Lösungen zu erwerben.
Diese Buchhandlung wird mit dem Ziel veröffentlicht, die Implementierung auf .NET -Plattformen zu ermöglichen.
Um elektronische Dokumente (Rechnungen und Notizen von Debit/Kredit) vor dem Dian zu generieren, zu unterschreiben und auszugeben, müssen die folgenden Anforderungen erfüllt werden:
Weitere Informationen finden Sie in den Ressourcen in Dian - Elektronische Abrechnung.
Die FirmaElectronica enthält eine einfache Methode (in drei Varianten) zur Unterzeichnung der elektronischen Dokumente, die die daraus resultierenden Bytes zurückgibt:
using eFacturacionColombia ;
using eFacturacionColombia . Firma ;
// crear instancia
var firma = new FirmaElectronica
{
RolFirmante = RolFirmante . FACTURANTE ,
RutaCertificado = "path/to/certificate.p12" ,
ClaveCertificado = "password here"
} ;
// usar horario colombiano
var fecha = DateTimeHelper . GetColombianDate ( ) ;
// variante 1:
// firmar archivo
var archivoXml = new FileInfo ( "path/to/unsigned-factura.xml" ) ;
var bytesArchivoFirmado = firma . Firmar ( archivoXml , TipoDocumento . FACTURA , fecha ) ;
// variante 2:
// firmar contenido
var contenidoXml = "<?xml ..." ;
var bytesContenidoFirmado = firma . Firmar ( contenidoXml , TipoDocumento . FACTURA , fecha ) ;
// variante 3:
// firmar bytes
var bytesXml = new byte [ 13042 ] ;
var bytesXmlFirmado = firma . Firmar ( bytesXml , TipoDocumento . FACTURA , fecha ) ;
// guardar xml (opcional)
File . WriteAllBytes ( "path/to/signed-factura.xml" , bytesXmlFirmado ) ;Wenn die technische Validierung des Unternehmens den folgenden Fehler generiert (aus dem Webdienst):
com.indra.mmdd.signature.exceptions.ValidateException: xades4j.verification.CertRefUtils$1: Verification failed for property 'SigningCertificate': Invalid issue name
Dies bedeutet, dass der von der Bibliothek generierte Zertifikat des Unternehmens nicht gültig ist, in diesem Fall Anfrage des Anbieters des Zertifikats in der gültigen Kette und mit der EmisorCertificado der FirmaElectronica manuell zuweisen:
var firma = new FirmaElectronica
{
RolFirmante = RolFirmante . FACTURANTE ,
RutaCertificado = "path/to/certificate.p12" ,
ClaveCertificado = "password here" ,
EmisorCertificado = "C=CO,L=Bogota D.C.,O=..."
} ; HINWEIS: Der durch den Prozess resultierende Prozess sollte nicht geändert werden (übertragen sie an eine andere Codierung oder das Laden in einem XmlDocument ), bevor sie gespeichert oder komprimiert werden, um sie an den Dian zu senden, weil sie das Unternehmen ungültig machen.
Dieses Projekt verwendet die folgenden Buchhandlungen:
Obwohl dieses Repository nicht aus offener Kontribution stammt, kann es beigetragen werden:
Miguel huertas [email protected]
Überprüfen Sie Details im Bachelor -Archiv.
Der Autor dieses Projekts bietet aus zeitlichen Gründen keine Unterstützung für die Umsetzung, es sei denn, es ist etwas Einfaches (ohne verpflichtet zu sein).
Auf der anderen Seite stellt der Autor dieses Projekts eine .NET -Zahlungslösung für den gesamten elektronischen Abrechnungsverfahren sowie eine Beratung für seine Implementierung zur Verfügung .