Características Técnicas del archivo prototipo para la ... · Cuenta de banco en la cual se...
Transcript of Características Técnicas del archivo prototipo para la ... · Cuenta de banco en la cual se...
Características Técnicas del archivo prototipo para la importación de documentos [SQL-Facturak].
Contenido Control de Versiones ................................................................................................................................................... 2
Objetivo ............................................................................................................................................................................. 3
Interface Genérica SQL-[Facturak]. .................................................................................................................. 3
Reglas Generales: ..................................................................................................................................................... 3
Descripción de los campos de PagoEncabezado .............................................................................................. 4
Descripción de los campos de PagoDetalle ..................................................................................................... 15
Script para la construcción de las tablas para documentos previos a factura (Pago) ................... 23
Ejemplo sentencia SQL ............................................................................................................................................ 26
Control de Versiones Fecha Versión Descripción Realizó Revisó
2017-08-18 1.0.0 Creación del documento.
2017-10-31 1.0.1 Se agrega campo EmisorRFC para poder usar en
interfaz multiempresa
Ing. Adelfo Gallardo
Objetivo
Interface Genérica SQL-[Facturak]. Al optar por el protocolo de comunicación mediante esquema de tablas genéricas de SQL entre
el [ERP] de la Empresa y el sistema de Facturación Electrónica Facturak, el cliente deberá llenar las
tablas de documentos previos a facturación mediante las siguientes indicaciones:
Reglas Generales: 1. Debe generar las estructuras de las tablas de documentos previos a facturar en el servidor SQL
utilizando el script proporcionado más adelante en el punto (Script para la construcción de
las tablas para documentos previos a factura (Pago)) de este manual.
2. Una vez ejecutado el script deberá verificar que las tablas se hayan creado.
3. El script genera 2 tablas, las cuales se definen a continuación:
a) PagoEncabezado: Esta tabla contiene todos los campos que deben llenarse dentro del
encabezado de la factura (Pago). La especificación y descripción de los campos se
especifica más adelante en el punto (a) de este manual.
b) PagoDetalle: Esta tabla contiene todos los campos que deben llenarse dentro del detalle de
la factura (Pago). En esta sección se llena la información de los conceptos que componen la
factura. La especificación y descripción de los campos se especifica más adelante en el
punto (b) de este manual.
4. Deberá llenar todos los campos que se especifican en esta documentación, deberá tener
cuidado de no omitir ningún campo que viene considerado como campo obligatorio.
5. En caso de uno utilizar un campo que no es obligatorio (opcional) puede dejarlo vacio con el
valor NULL o con el string vacio (“”). En el caso de que sea un campo numérico favor de
especificar 0.
6. Se debe dejar un registro en PagoEncabezado por cada factura (pago), y N registros para
PagoDetalle, dependiendo de los conceptos que requiere en su factura (Pago).
7. Existen unos campos cuyo nombre inicia con la palabra “Facturak”, ejemplo:
FacturakProcesado, FacturakFolio, etc. Dichos campos son de uso interno de facturak por lo
que solo deberá utilizarlos para lectura.
Descripción de los campos de PagoEncabezado
No. Campo Descripción Tamaño ¿Obligatorio?
1 Versión Versión del
complemento de pago
Debe tener el valor 1.0.
Valor
Alfanumérico
1-10
Caracteres
SI
2 NoDeControl Numero de Factura o
Folio emitido por el
[ERP].
Valor
Alfanumérico
1-50
Caracteres
SI
3 CuentaPago
Cuenta de banco en la
cual se recibe el pago,
registrado en el catálogo
de cuentas contables de
CXC.
Valor
Alfanumérico
1-50
Caracteres
NO
4 EmisorRFC Campo que sirve para
especificar el RFC de la
empresa emisora de este
pago, se usa para
interfaces
multiempresas.
Valor
Alfanumérico
1-50
caracteres
NO
5 RFC Rfc del cliente. Valor
Alfanumérico
1-10
Caracteres
SI
6 RazonSocial Nombre del cliente. Valor
Alfanumérico
1-10
Caracteres
SI
7 ReceptorEmail Email del cliente. Valor
Alfanumérico
1-50
Caracteres
NO
8 FechaPago Se debe registrar la fecha y hora en la que el beneficiario recibe el pago. Se expresa en la forma aaaa-mm-ddThh:mm:ss, de acuerdo con la especificación ISO 8601. En caso de no contar con la hora se debe registrar 12:00:00.
Valor
permitido
yyyyMMdd
HH:mm:ss
SI
9 *FormaDePagoP Forma de pago de la
factura como Efectivo,
cheque, etc. Favor de
consultar documento
anexo con los catálogos.
(01 - Efectivo), Catálogo
publicado en el portal
del SAT.
Valor
alfanumérico
1-50
Caracteres
SI
10 *MonedaP Tipo de moneda a
facturar. MXN, USD.
Valor
alfanumérico
SI
(MXN – Peso Mexicano,
USD – Dólar Americano),
Catálogo publicado en el
portal del SAT.
1-50
Caracteres
11 TipoCambioP Paridad o tipo de cambio
a utilizar en la factura. Si
no se especifica valor se
considera valor 1.
Valores
permitidos
0.00-
9999999.99
NO
12 IdSucursal Número de identificación
de la sucursal que expide
la factura
Valores
permitidos
0.00-
9999999.99
SI
13 NumOperacion Se puede registrar 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 o identificación análogo que permita identificar la operación correspondiente al pago efectuado.
Valor
Alfanumérico
1-100
Caracteres
NO
14 RfcEmisorCtaOrd Se puede registrar la clave del RFC de la entidad emisora de la cuenta origen, es decir, la operadora, el banco, la
Valor
Alfanumérico
1-50
Caracteres
NO
institución financiera, emisor de monedero electrónico, etc., en caso de ser residente en el extranjero se debe registrar la clave en el RFC genérica XEXX010101000, en caso de que éste no se utilice, la clave en el RFC que se registre debe estar en la lista de claves en el RFC inscritas en el SAT.
15 NomBancoOrdExt Se puede registrar el nombre del banco ordenante, es requerido en caso de ser extranjero, considerar las reglas de obligatoriedad de acuerdo con la columna Nombre del Banco emisor de la cuenta ordenante en caso de extranjero del catálogo c_FormaPago publicado en el Portal del SAT.
Valor
Alfanumérico
1-50
Caracteres
NO
16 CtaOrdenante Se puede registrar el número de la cuenta con la que se realizó el pago, considerar las reglas de obligatoriedad de acuerdo con la columna Cuenta Ordenante del catálogo
Valor
Alfanumérico
10-50
Caracteres
NO
c_FormaPago publicado en el Portal del SAT.
17 RfcEmisorCtaBen Se puede registrar la clave en el RFC de la entidad operadora de la cuenta destino, es decir, la operadora, el banco, la institución financiera, emisor de monedero electrónico, etc. Considerar las reglas de obligatoriedad de acuerdo con la columna RFC del Emisor Cuenta del beneficiario del catálogo c_FormaPago publicado en el Portal del SAT.
Valor
Alfanumérico
1-50
Caracteres
NO
18 CtaBeneficiario Se puede registrar el número de cuenta en donde se recibió el pago. Considerar las reglas de
obligatoriedad de
acuerdo con la columna
Cuenta de Benenficiario
del catálogo
c_FormaPago publicado
en el Portal del SAT.
Valor
Alfanumérico
10-50
Caracteres
NO
19 TipoCadPago Se puede registrar la clave del tipo de cadena de pago que genera la entidad receptora del pago.
Valor
Alfanumérico
1-50
Caracteres
NO
Considerar las reglas de obligatoriedad de acuerdo con la columna Tipo Cadena Pago del catálogo c_FormaPago publicado en el Portal del SAT. Las diferentes claves de tipo cadena se encuentran incluidas en el catálogo c_TipoCadenaPago. Si existe este campo es
obligatorio registrar los
campos CertificadoPago,
CadenaPago y SelloPago,
en otro caso estos
campos no deben existir.
20 CertPago Es el certificado que corresponde al pago, como una cadena de texto en formato base 64 y es requerido en caso de que el campo “TipoCadPago” contenga información.
Valor
Alfanumérico
1-50
Caracteres
NO
21 CadPago Es la cadena original del comprobante de pago generado por la entidad emisora de la cuenta beneficiaria. Es requerido en caso de que el campo TipoCadPago contenga información.
Valor
Alfanumérico
1-50
Caracteres
NO
22 SelloPago Es el sello digital que se asocie al pago. La entidad que emite el comprobante de pago,
Valor
Alfanumérico
NO
ingresa una cadena original y el sello digital en una sección de dicho comprobante, este sello digital es el que se debe registrar en este campo. Debe ser expresado como una cadena de texto en formato base 64. Es requerido en caso de que el campo TipoCadPago contenga información.
1-50
Caracteres
23 Monto Se debe registrar el importe del pago, este debe ser mayor a cero “0”. La suma de los valores registrados en el nodo DoctoRelacionado, campo ImpPagado, debe ser menor o igual que el valor de este campo.
Valores
permitidos
0.00-
9999999.99
NO
24 Estatus Se puede registrar el carácter “C” indicando que es un pago a cancelar, Caso contrario indica que es un pago a timbrar, por default este campo viene vacío.
Valor
alfanumérico
0-5 Caracteres
NO
25 Observaciones Campo de observaciones adicionales de la Factura.
Valor
alfanumérico
0-500
Caracteres
NO
26 Observaciones2 Campo de observaciones adicionales de la Factura.
Valor
alfanumérico
NO
0-500
Caracteres
27 Observaciones3 Campo de observaciones adicionales de la Factura.
Valor
alfanumérico
0-500
Caracteres
NO
28 Observaciones4 Campo de observaciones adicionales de la Factura.
Valor
alfanumérico
0-500
Caracteres
NO
29 Observaciones5 Campo de observaciones adicionales de la Factura.
Valor
alfanumérico
0-500
Caracteres
NO
30 Observaciones6 Campo de observaciones adicionales de la Factura.
Valor
alfanumérico
0-500
Caracteres
NO
31 Observaciones7 Campo de observaciones adicionales de la Factura.
Valor
alfanumérico
0-500
Caracteres
NO
32 Observaciones8 Campo de observaciones adicionales de la Factura.
Valor
alfanumérico
0-500
Caracteres
NO
33 Observaciones9 Campo de observaciones adicionales de la Factura.
Valor
alfanumérico
NO
0-500
Caracteres
34 Observaciones10 Campo de observaciones adicionales de la Factura.
Valor
alfanumérico
0-500
Caracteres
NO
35 Extranumerico Valor numérico extra, para incluir en la información del comprobante.
Valor
alfanumérico
0-500
Caracteres
NO
36 Extranumerico2 Valor numérico extra, para incluir en la información del comprobante.
Valor
alfanumérico
0-500
Caracteres
NO
37 Extranumerico3 Valor numérico extra, para incluir en la información del comprobante.
Valor
alfanumérico
0-500
Caracteres
NO
38 Extranumerico4 Valor numérico extra, para incluir en la información del comprobante.
Valor
alfanumérico
0-500
Caracteres
NO
39 Extranumerico5 Valor numérico extra, para incluir en la información del comprobante.
Valor
alfanumérico
0-500
Caracteres
NO
40 Extranumerico6 Valor numérico extra, para incluir en la información del comprobante.
Valor
alfanumérico
0-500
Caracteres
NO
41 Extranumerico7 Valor numérico extra, para incluir en la información del comprobante.
Valor
alfanumérico
0-500
Caracteres
NO
42 Extranumerico8 Valor numérico extra, para incluir en la información del comprobante.
Valor
alfanumérico
0-500
Caracteres
NO
43 Extranumerico9 Valor numérico extra, para incluir en la información del comprobante.
Valor
alfanumérico
0-500
Caracteres
NO
44 Extranumerico10 Valor numérico extra, para incluir en la información del comprobante.
Valor
alfanumérico
0-500
Caracteres
NO
45 TipoRelacionCFDIRelacionado Valor alfanumérico para indicar el tipo de relación que aplicará a otro documento.
Valor
alfanumérico
0-10
Caracteres
NO
46 UUIDCFDIRelacionado Valor alfanumérico para indicar el UUID al cual se relaciona el documento.
Valor alfanumérico 0-500 Caracteres
NO
47 IDCliente Clave o identificador del
Cliente, es requerido
cuando varios clientes
comparten el mismo
RFC.
Nota: la clave o identificador también debe ser asignado a los clientes del catálogo de Facturak en la casilla Clave [Cliente].
Valor
alfanumérico
12-13 Caracteres
NO
48 EsEditable Indica si la prefactura
podrá ser editada antes
de generar el CFD
0 = No editable
1 = Editable
NO
Descripción de los campos de PagoDetalle
No. Campo Descripción Tamaño ¿Obligatorio?
1 idDocumento Se debe registrar el folio fiscal (UUID) de un CFDI relacionado con el presente comprobante. (Factura a Pagar)
Valor
Alfanumérico 1-
50 Caracteres
SI
2 NoDeControl Id del pago que genera el cliente, llenar este campo en caso de no especificar el idDocumento (UUID).
Valor
Alfanumérico 1-
50 Caracteres
No
3 Serie Serie de facturas a
utilizar para la
generación de CFD.
Ejemplo “AAA”
Valor
Alfanumérico 1-
50 Caracteres
SI
4 Folio No. de Folio por asignar
al CFD.
Nota: Solo se especifica
cuando el consecutivo
será generado por el
[ERP] origen. Por
default especificar 0
para que Facturak
asigne el consecutivo.
Valor
Alfanumérico 1-
50 Caracteres
SI
5 *MonedaDR Tipo de moneda a
facturar. MXN, USD.
(MXN – Peso Mexicano,
USD – Dólar
Americano), Catálogo
publicado en el portal
del SAT.
Valor
Alfanumérico 1-
30 Caracteres
SI
6 *MetodoDePagoDR Se puede registrar la
clave que corresponda
dependiendo de si se
paga en una sola
exhibición o en
parcialidades, las
distintas claves
de método de pago se
encuentran incluidas en
el catálogo
c_MetodoPago. Ejemplo:
PUE (Pago en una sola
exhibición), PPD (Pago
en parcialidades o
diferido)
Valor
Alfanumérico 1-
50 Caracteres
SI
7 TipoCambioDR Paridad o tipo de
cambio a utilizar en la
factura. Si no se
especifica valor se
considera valor 1.
Valores
permitidos
0.00-
9999999.99
NO
8 NumParcialidad Es el número de parcialidad que corresponde al pago. Es requerido cuando MetodoDePagoDR contiene “PPD” (Pago en parcialidades o diferido).
En el caso de que el
pago sea diferido, en
este campo se debe
registrar el valor “1”.
Valores
permitidos
0.00-
9999999.99
SI
9 ImpSaldoAnt Es el monto del saldo insoluto de la parcialidad anterior. Es requerido cuando MetodoDePagoDR contiene “PPD” (Pago en parcialidades o diferido). En el caso de que sea la primera parcialidad este campo debe contener el importe total del documento relacionado. En el caso de que se reciba el pago diferido, se debe registrar el monto total de la operación del documento relacionado. Este dato debe ser
mayor a 0.
Valores
permitidos
0.00-
9999999.99
SI
10 ImpPagado Es el importe pagado que corresponde al documento relacionado. Este dato es obligatorio cuando exista más de un documento relacionado
Valores
permitidos
0.00-
9999999.99
SI
o cuando existe un documento relacionado y el campo TipoCambioDR tiene un valor. * Si existe solo un documento relacionado es opcional. * Si se registra un valor en este campo, el importe pagado debe ser mayor a 0. * El importe pagado debe corresponder al tipo de moneda registrado en el campo MonedaDR del documento relacionado.
11 ImpSaldoInsoluto Es la diferencia entre el importe del saldo anterior y el monto del pago. Es requerido cuando MetodoDePagoDR contiene “PPD” (Pago en parcialidades o diferido). * Debe ser mayor o igual a 0 y debe calcularse de
Valores
permitidos
0.00-
9999999.99
SI
los campos: ImpSaldoAnt menos el ImpPagado. * Si el campo ImpPagado no existe en el caso de que solo se registre un documento relacionado, debe calcularse de los campos: ImpSaldoAnt menos el Monto, considerando la conversión a MonedaDR. * Considerar que este importe debe corresponder al tipo de moneda registrado en el campo MonedaDR del documento relacionado.
12 Observaciones Campo de observaciones adicionales de la Factura (Pago)
Valor
alfanumérico
0-500 Caracteres
NO
13 Observaciones2 Campo de observaciones adicionales de la Factura (Pago)
Valor
alfanumérico
0-500 Caracteres
NO
14 Observaciones3 Campo de observaciones adicionales de la Factura (Pago)
Valor
alfanumérico
0-500 Caracteres
NO
15 Observaciones4 Campo de observaciones adicionales de la Factura (Pago)
Valor
alfanumérico
0-500 Caracteres
NO
16 Observaciones5 Campo de observaciones adicionales de la Factura (Pago)
Valor
alfanumérico
0-500 Caracteres
NO
17 Observaciones6 Campo de observaciones adicionales de la Factura (Pago)
Valor
alfanumérico
0-500 Caracteres
NO
18 Observaciones7 Campo de observaciones adicionales de la Factura (Pago)
Valor
alfanumérico
0-500 Caracteres
NO
19 Observaciones8 Campo de observaciones adicionales de la Factura (Pago)
Valor
alfanumérico
0-500 Caracteres
NO
20 Observaciones9 Campo de observaciones adicionales de la Factura (Pago)
Valor
alfanumérico
0-500 Caracteres
NO
21 Observaciones10 Campo de observaciones adicionales de la Factura (Pago).
Valor
alfanumérico
0-500 Caracteres
NO
22 Extranumerico Valor numérico extra, para incluir en la información del comprobante.
Valores
permitidos
0.0- 9999999.99
1.0-
NO
23 Extranumerico2 Valor numérico extra, para incluir en la información del comprobante.
Valores
permitidos
0.0- 9999999.99
1.0-
NO
24 Extranumerico3 Valor numérico extra, para incluir en la información del comprobante.
Valores
permitidos
0.0- 9999999.99
NO
1.0-
25 Extranumerico4 Valor numérico extra, para incluir en la información del comprobante.
Valores
permitidos
0.0- 9999999.99
NO
26 Extranumerico5 Valor numérico extra, para incluir en la información del comprobante.
Valores
permitidos
0.0- 9999999.99
NO
27 Extranumerico6 Valor numérico extra, para incluir en la información del comprobante.
Valores
permitidos
0.00-
9999999.99
NO
28 Extranumerico7 Valor numérico extra, para incluir en la información del comprobante.
Valores
permitidos
0.00-
9999999.99
NO
29 Extranumerico8 Valor numérico extra, para incluir en la información del comprobante.
Valores
permitidos
0.00-
9999999.99
NO
30 Extranumerico9 Valor numérico extra, para incluir en la información del comprobante.
Valores
permitidos
0.00-
9999999.99
NO
31 Extranumerico10 Valor numérico extra, para incluir en la
Valores
permitidos NO
información del comprobante.
0.00-
9999999.99
Script para la construcción de las tablas para documentos previos a factura
(Pago) create table PagoEncabezado ( Num_Doc bigint primary key identity(1,1), [Version] nvarchar(10) not null, NoDeControl nvarchar(50) not null, CuentaPago nvarchar(50) null, EmisorRFC nvarchar(50) null, RFC nvarchar(50) not null, RazonSocial nvarchar(50) not null, ReceptorEmail nvarchar(50) null, FechaPago datetime not null, FormaDePagoP nvarchar(10) not null, MonedaP nvarchar(5) not null foreign key references Moneda(Abreviacion), TipoCambioP float default (1), IdSucursal int not null, NumOperacion nvarchar(50) null, RfcEmisorCtaOrd nvarchar(50) null, NomBancoOrdExt nvarchar(50) null, CtaOrdenante nvarchar(50) null, RfcEmisorCtaBen nvarchar(50) null, CtaBeneficiario nvarchar(50) null, TipoCadPago nvarchar(10) null, CertPago nvarchar(50) null, CadPago nvarchar(50) null, SelloPago nvarchar(50) null, Monto float default (0) null, FacturakProcesado bit null, FacturakError bit null, FacturakErrorMessage nvarchar(MAX) null, FacturakFolio int null, FacturakSerie nvarchar(10) null, FacturakSerieFolio nvarchar(20) null, FacturakXml nvarchar(max), FacturakUUID nvarchar(50), FacturakFhaHoraCFD datetime, FacturakFileNameTXT nvarchar(50) null, Estatus nvarchar(5) null, Observaciones nvarchar(500) null, Observaciones2 nvarchar(500) null, Observaciones3 nvarchar(500) null, Observaciones4 nvarchar(500) null, Observaciones5 nvarchar(500) null, Observaciones6 nvarchar(500) null, Observaciones7 nvarchar(500) null,
Observaciones8 nvarchar(500) null, Observaciones9 nvarchar(500) null, Observaciones10 nvarchar(500) null, Extranumerico int null, Extranumerico2 int null, Extranumerico3 int null, Extranumerico4 int null, Extranumerico5 int null, Extranumerico6 int null, Extranumerico7 int null, Extranumerico8 int null, Extranumerico9 int null, Extranumerico10 int null, ERPProcesado bit null, TipoRelacionCFDIRelacionado nvarchar(10), UUIDCFDIRelacionado nvarchar(500), IDCliente int, EsEditable bit null default (0) )
create table PagoDetalle ( Num_Doc bigint primary key identity(1,1), IDEncabezado bigint not null foreign key references PagoEncabezado(Num_Doc), idDocumento nvarchar(50) not null, NoControl nvarchar(50) null, Serie nvarchar(50), Folio nvarchar(50), MonedaDR nvarchar(5) not null foreign key references Moneda(Abreviacion), MetodoDePagoDR nvarchar(50), TipoCambioDR float, NumParcialidad integer, impSaldoAnt float, ImpPagado float, ImpSaldoInsoluto float, Observaciones nvarchar(500) null, Observaciones2 nvarchar(500) null, Observaciones3 nvarchar(500) null, Observaciones4 nvarchar(500) null, Observaciones5 nvarchar(500) null, Observaciones6 nvarchar(500) null, Observaciones7 nvarchar(500) null, Observaciones8 nvarchar(500) null, Observaciones9 nvarchar(500) null, Observaciones10 nvarchar(500) null, Extranumerico int null, Extranumerico2 int null, Extranumerico3 int null, Extranumerico4 int null, Extranumerico5 int null,
Extranumerico6 int null, Extranumerico7 int null, Extranumerico8 int null, Extranumerico9 int null, Extranumerico10 int null )
Ejemplo sentencia SQL Encabezado
insert into PagoEncabezado values ('1.0','1','1141000001', ‘NTE0604065E9’,'XAXX010101000','Público en General','[email protected]','2017-08-17 05:29:50','01','MXN',1,'1','','','','','','','','','','',580,0,0,'',0,'','','','','','','','','','','','','','','','','',0,0,0,0,0,0,0,0,0,0,0,'','',0,0) Detalle insert into PagoDetalle values ('805B6DE9-7B77-194F-9694-E12C48BCF38A', '','AAA',32,'MXN','PPD',1,1,580,580,0,'','','','','','','','','','',0,0,0,0,0,0,0,0,0,0)