DLL Finkok

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

MANUAL PARA LA CREACIÓN DE UN XML DE CFDI CON

COMPLEMENTO DE PAGOS

Se inicia declarando la variable CFDs a partir de la clase Complemento Pagos, la cual dará
acceso a los métodos de dicha clase.

Nombre del
Descripción
nodo o atributo
Este nodo se compone de tres atributos esenciales, los cuales hacen
referencia a la fecha en donde se deberá establecer y precisar la fecha
Nodo:
actual, el lugar en donde se expide el comprobante y la serie que se
Comprobante
le asignará a dicho comprobante.

Fecha El atributo Fecha obtiene la fecha actual, arrogando como resultado el


siguiente formato: “AAAA-MM-DDTHH:MM:SS”.

LugarExpedicion En el atributo LugarExpedicion se debe registrar el código postal del


lugar de expedición del comprobante, el cual debe corresponder con
una clave de código postal incluida en el catálogo.

Serie Uso opcional, atributo para precisar la serie para control interno del
contribuyente.

Ejemplo:
Dim CFDs As New CFDI3_VB.cfdiPagos
With CFDs
.Comprobante(Fecha:=FormatDateTime(Now, DateFormat.GeneralDate),
LugarDeExpedicion:="67800", Serie:="A")

Nombre del
Descripción
nodo o atributo
En este nodo se debe expresar la información de los comprobantes
Nodo:
fiscales relacionados. El valor que le asigne deberá corroborarlo en el
AgregarCFDIRe
catálogo del SAT en el apartado “c_TipoRelacion”.
lacionados

Ejemplo:
.AgregarCFDIRelacionados("04")
Nombre del
Descripción
nodo o atributo
Este nodo se debe expresar la información de los comprobantes
Nodo:
fiscales relacionados con el que se está generando, se deben
AgregarCFDIRe
expresar tanto los números de los nodos de CFDIRelacionado, como
lacionado
comprobantes se requieran relacionar.
UUID A este atributo UUID se debe registrar el folio fiscal, es decir el UUID
de un comprobante fiscal relacionado con el presente comprobante.

Ejemplo:
.AgregarCFDIRelacionado(UUID:="12322CDA-6EE9-45A1-A0A0-DD402176714C")

Nombre del
Descripción
nodo o atributo
En este nodo se tendrá que representar los datos o información del
Nodo:
contribuyente quien emite el comprobante fiscal de pagos.
AgregarEmisor
Rfc El atributo Rfc, en caso de que el emisor sea una persona física, este
campo debe contener una longitud de 13 posiciones, tratándose de
personas morales debe contener 12 posiciones únicamente.

RegimenFiscal En el atributo RegimenFiscal se debe especificar la clave del régimen


fiscal del contribuyente emisor bajo el cual se está emitiendo el
comprobante. Las claves de los regímenes se encuentran incluidas en
el catálogo “c_RegimenFiscal” publicado en el portal del SAT.

Nombre En el atributo Nombre se puede registrar el nombre, denominación o


razón social del emisor de dicho comprobante.

Ejemplo:
.AgregarEmisor(Rfc:="ACO560518KW7", RegimenFiscal:="601", Nombre:="Acciones Calificadoras O")

Nombre del
Descripción
nodo o atributo
Nodo: En este nodo se tendrá que representar los datos o información del
AgregarRecept contribuyente quien recibe el comprobante fiscal de pagos.
or
Rfc El atributo Rfc, el RFC debe estar contenido en la lista de RFC (I_RFC)
inscritos no cancelados en el SAT, en caso de que sea diferente del
RFC genérico. En caso de que el receptor sea una persona física, este
campo debe contener una longitud de 13 posiciones, tratándose de
personas morales debe contener 12 posiciones únicamente.
UsoCFDI En el atributo UsoCFDI se debe registrar la clave que corresponda al
uso que le dará al comprobante fiscal el receptor. La clave que solicite
el receptor, bien sea física o moral que se registre en este campo,
debe corresponder con los valores indicados en el catálogo
“c_UsoCFDI”.

Nombre En el atributo Nombre se puede registrar el nombre, denominación o


razón social del receptor de dicho comprobante.

Ejemplo:
.AgregarReceptor(Rfc:="TUCA2107035N9", UsoCFDI:="P01", Nombre:="RAUL SALDIVAR")

Crear un objeto de tipo lista:

En la línea siguiente se crea un objeto de tipo lista, la cual almacena Documentos relacionados
de un pago, en caso de que existan 2 nodos Pago, se debe declarar un objeto de ese mismo
tipo y proceder a llenar los datos para el mismo nodo pago.
Ejemplo:
Dim DoctoRel As New List(Of PagosPagoDoctoRelacionado)

Llamar el objeto y proceder al llenado de la lista:

Nombre del
objeto y Descripción
atributos
Una vez creado el objeto de tipo lista, se debe invocar el objeto y
Objeto: agregarle los datos o atributos necesarios con sus respectivos valores
DoctoRel que contendrá la lista.

Folio Uso opcional, tipo String, acepta una longitud máxima de 40


caracteres.

IdDocumento Atributo requerido, tipo String para expresar el identificador del


documento relacionado con el pago.

Impagado Se debe registrar el importe pagado para el documento relacionado,


no se permite ingresar valores negativos.

MonedaDR Atributo requerido para identificar la clave de la moneda utilizada en


los importes del documento relacionado.
MetodoDePago Atributo requerido para identificar la clave de la moneda utilizada en
DR los importes del documento relacionado.

TipoCambioDR Atributo condicional para expresar el tipo de cambio conforme con la


moneda registrada en el documento relacionado. Es requerido cuando
la moneda del documento relacionado es distinta a la moneda de
pago.

TipoCambioSpe En caso de que el nodo DoctoRelacionado lleve el atributo


cified TipoCambioDR se debe agregar TipoCambioSpecified y asignarle el
valor True para que aparezca en el XML.

NumParcialidad Condicional, en este atributo se especifica el número de parcialidades


que corresponde al pago. Requerido cuando MetodoDePagoDR
contiene “PPD”.

ImpSaldoAnt Atributo para especificar el total del saldo anterior.

ImpSaldoInsolut Atributo para especificar el saldo restante entre el importe del saldo
o anterior y el monto de pago.

Ejemplo:
DoctoRel.Add(New PagosPagoDoctoRelacionado With {.Folio = "1", .IdDocumento = "12322CDA-6EE9-45A1-
A0A0-DD402176714C", .ImpPagado = "500.00", .MonedaDR = "MXN", .MetodoDePagoDR =
"PPD", .TipoCambioDR = 1, .TipoCambioDRSpecified = True, .NumParcialidad = "2", .ImpSaldoAnt =
"1500.00", .ImpSaldoInsoluto = "1000.00"})

Una vez generada la lista con la información del nodo DoctoRelacionado, procederemos a
crear el .nodoPago en el cual se agrega el parámetro DoctoRelacion que se le asignará la lista
DoctoRel que se creó anteriormente.
Nombre del
nodo y Descripción
atributos
Una vez creado el objeto de tipo lista, se debe invocar el objeto y
Nodo: agregarle los datos o atributos necesarios con sus respectivos valores
nodoPago que contendrá la lista.

FechaP Requerido donde se debe registrar la clave de la forma de pago.

FormaDePagoP Atributo requerido, tipo String para expresar el identificador del


documento relacionado con el pago.

MonedaP Atributo requerido para identificar la clave de la moneda utilizada para


realizar el pago, cuando se usa moneda nacional se registra MXN.
Monto Atributo requerido para expresar el importe del pago.

NumOperacion Uso opcional, tipo string, expresa el número de cheque, número de


autorización, número de referencia, clave de rastreo en caso de ser
SPEI, línea de captura o algún número de referencia análogo que
identifique la operación que ampara el pago efectuado.

DoctoRelacion Se le deberá asignar como valor la lista DoctoRel que se creo


anteriormente.

TipoCambio Se puede registrar el tipo de cambio conforme a la moneda registrada


en el comprobante. Este campo es requerido cuando la clave de
moneda es distinta de “MXN” (Peso Mexicano) y a la clave “XXX” (Los
códigos asignados para las transacciones en que intervenga ninguna
moneda).

Ejemplo:
.nodoPago(FechaP:="2017-11-14T12:15:00", FormaDePagoP:="02", MonedaP:="USD", Monto:="500.00",
NumOperacion:="01", DocRelacion:=DoctoRel, TipoCambio:="18.68")

Posteriormente se crean variables de tipo string en las cuales tendremos que asignarle como
valores los datos e información de nuestros archivos.

Nombre de las
Descripción
variables
username Asignar como valor el correo electrónico de la cuenta registrada en
FINKOK.

password La contraseña que se asignó a dicha cuenta.

Path Se le deberá ingresar la ruta de la carpeta en la que se encuentren los


certificados.

CertFile Especificar la ruta donde se encuentre su certificado, es decir su


archivo con extensión .cer

KeyFile Especificar la ruta donde se encuentre su archivo con extensión .key


(Generalmente los archivos .cer y .key se encuentran en la misma
ruta).

KeyPass Asignarle como valor la contraseña de el certificado.


Ejemplo:
Dim username As String = "[email protected]"
Dim password As String = "p4s5w0Rd!"
Dim Path As String = ("C:\Certificados")
Dim CertFile As String = IO.Path.Combine(Path, "ACO560518KW7.cer")
Dim KeyFile As String = IO.Path.Combine(Path, "ACO560518KW7.key")
Dim KeyPass As String = "12345678a"

Finalmente se especifica la rutina que realiza la función de crear el XML asignándo todos los
parámetros creados en el paso anterior, ademas añadiendo la Ruta (especificar la dirección en
donde queremos guardar el archivo XML) y nameXML(asignándole como valor el nombre que
recibirá el archivo xml).
Si todo es correcto mostrará el mensaje “Generación correcta” en caso contrario se mostrará
“incorrecta” por lo que deberá verificar que todos los parámetros sean correctos.

If CFDs.CrearFacturaXML(username, password, KeyFile, KeyPass, CertFile, Errores:="",


Ruta:="C:\SalidaDLL", nameXML:="Pagos") Then
MsgBox("Generación correcta")
Else
MsgBox("incorrecta")
End If

También podría gustarte