Transcript

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 ..................................................................................................... 11

Script para la construcción de las tablas para documentos previos a factura (Pago) ................... 18

Ejemplo sentencia SQL ............................................................................................................................................ 20

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

Valor permitido

yyyyMMdd

HH:mm:ss

SI

no contar con la hora se debe registrar 12:00:00.

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.

(MXN – Peso Mexicano, USD – Dólar

Americano), Catálogo publicado en

el portal del SAT.

Valor

alfanumérico

1-50 Caracteres

SI

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

Valor NO

origen, es decir, la operadora, el banco, la 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.

Alfanumérico 1-

50 Caracteres

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 c_FormaPago publicado en el Portal del SAT.

Valor

Alfanumérico 10-

50 Caracteres

NO

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

Valor

Alfanumérico 1-

50 Caracteres

NO

c_FormaPago publicado en el Portal del SAT.

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. 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.

Valor

Alfanumérico 1-

50 Caracteres

NO

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, 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.

Valor

Alfanumérico 1-

50 Caracteres

NO

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

0-500 Caracteres

NO

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

0-500 Caracteres

NO

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

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

Valor

Alfanumérico 1-

30 Caracteres

SI

Americano), Catálogo

publicado en el portal

del SAT.

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 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

Valores

permitidos

0.00-9999999.99

SI

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 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.

Valores

permitidos

0.00-9999999.99

SI

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

NO

1.0-

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

1.0-

NO

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

Valores

permitidos NO

comprobante. 0.00-

9999999.99

31 Extranumerico10 Valor numérico extra, para incluir en la información del comprobante.

Valores

permitidos

0.00-

9999999.99

NO

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 )

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) 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)


Recommended